From 7f09859be28be7dd5a51d3448dd3d9cbe8d28c14 Mon Sep 17 00:00:00 2001 From: Vlad Gribinchuk Date: Fri, 28 Sep 2018 13:30:48 +0300 Subject: [PATCH 0001/1039] Settings for the "Minimum Support Area" and "Minimum Support Interface Area" features --- resources/definitions/fdmprinter.def.json | 58 +++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 823635a62a..cd489126bf 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4083,6 +4083,20 @@ "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false }, + "minimum_support_area": + { + "label": "Minimum Support Area", + "description": "Minimum area size for support polygons. Polygons which area is smaller than this value will not be generated.", + "unit": "mm²", + "type": "float", + "default_value": 0.0, + "minimum_value": "0", + "enabled": "support_enable", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": true, + "fabricate_enabled": true, + "intermediate_enabled": true + }, "support_interface_enable": { "label": "Enable Support Interface", @@ -4322,6 +4336,50 @@ } } }, + "minimum_interface_area": + { + "label": "Minimum Support Interface Area", + "description": "Minimum area size for support interface polygons. Polygons which area are smaller than this value will not be generated.", + "unit": "mm²", + "type": "float", + "default_value": 1.0, + "minimum_value": "0", + "minimum_value_warning": "minimum_support_area", + "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "support_interface_enable and (support_enable or support_tree_enable)", + "settable_per_mesh": true, + "children": + { + "minimum_roof_area": + { + "label": "Minimum Support Roof Area", + "description": "Minimum area size for the roofs of the support. Polygons which area are smaller than this value will not be generated.", + "unit": "mm²", + "type": "float", + "default_value": 1.0, + "value": "extruderValue(support_roof_extruder_nr, 'minimum_interface_area')", + "minimum_value": "0", + "minimum_value_warning": "minimum_support_area", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "support_roof_enable and (support_enable or support_tree_enable)", + "settable_per_mesh": true + }, + "minimum_bottom_area": + { + "label": "Minimum Support Floor Area", + "description": "Minimum area size for the floors of the support. Polygons which area are smaller than this value will not be generated.", + "unit": "mm²", + "type": "float", + "default_value": 1.0, + "value": "extruderValue(support_bottom_extruder_nr, 'minimum_interface_area')", + "minimum_value": "0", + "minimum_value_warning": "minimum_support_area", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", + "settable_per_mesh": true + } + } + }, "support_fan_enable": { "label": "Fan Speed Override", From 193f11385168d1b0ca015127cfc46ac607a1d2a6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 8 Oct 2018 10:33:01 +0200 Subject: [PATCH 0002/1039] Clean up Cura.qml: - Create a Skeleton folder where the main parts of the application will be stored. - Separate the top menus to a different file. Contributes to CURA-5784. --- cura/CuraApplication.py | 4 +- resources/qml/Cura.qml | 259 ++------------------- resources/qml/Skeleton/ApplicationMenu.qml | 234 +++++++++++++++++++ 3 files changed, 251 insertions(+), 246 deletions(-) create mode 100644 resources/qml/Skeleton/ApplicationMenu.qml diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 67bdd5805e..1990fd1b36 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -617,9 +617,7 @@ class CuraApplication(QtApplication): self._message_box_callback(button, *self._message_box_callback_arguments) self._message_box_callback = None self._message_box_callback_arguments = [] - - showPrintMonitor = pyqtSignal(bool, arguments = ["show"]) - + def setSaveDataEnabled(self, enabled: bool) -> None: self._save_data_enabled = enabled diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index b3367471ad..380e425ef5 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -11,28 +11,21 @@ import UM 1.3 as UM import Cura 1.1 as Cura import "Menus" +import "Skeleton" UM.MainWindow { id: base - //: Cura application window title - title: catalog.i18nc("@title:window","Ultimaker Cura"); - viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) - property bool showPrintMonitor: false + // Cura application window title + title: catalog.i18nc("@title:window", "Ultimaker Cura") + viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) backgroundColor: UM.Theme.getColor("viewport_background") - // This connection is here to support legacy printer output devices that use the showPrintMonitor signal on Application to switch to the monitor stage - // It should be phased out in newer plugin versions. - Connections + + UM.I18nCatalog { - target: CuraApplication - onShowPrintMonitor: { - if (show) { - UM.Controller.setActiveStage("MonitorStage") - } else { - UM.Controller.setActiveStage("PrepareStage") - } - } + id: catalog + name:"cura" } onWidthChanged: @@ -72,12 +65,12 @@ UM.MainWindow Item { - id: backgroundItem; - anchors.fill: parent; - UM.I18nCatalog{id: catalog; name:"cura"} + id: backgroundItem + anchors.fill: parent signal hasMesh(string name) //this signal sends the filebase name so it can be used for the JobSpecs.qml - function getMeshName(path){ + function getMeshName(path) + { //takes the path the complete path of the meshname and returns only the filebase var fileName = path.slice(path.lastIndexOf("/") + 1) var fileBase = fileName.slice(0, fileName.indexOf(".")) @@ -85,238 +78,18 @@ UM.MainWindow } //DeleteSelection on the keypress backspace event - Keys.onPressed: { + Keys.onPressed: + { if (event.key == Qt.Key_Backspace) { Cura.Actions.deleteSelection.trigger() } } - UM.ApplicationMenu + ApplicationMenu { id: menu window: base - - Menu - { - id: fileMenu - title: catalog.i18nc("@title:menu menubar:toplevel","&File"); - MenuItem - { - id: newProjectMenu - action: Cura.Actions.newProject; - } - - MenuItem - { - id: openMenu - action: Cura.Actions.open; - } - - RecentFilesMenu { } - - MenuItem - { - id: saveWorkspaceMenu - text: catalog.i18nc("@title:menu menubar:file","&Save...") - onTriggered: - { - var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; - if(UM.Preferences.getValue("cura/dialog_on_project_save")) - { - saveWorkspaceDialog.args = args; - saveWorkspaceDialog.open() - } - else - { - UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) - } - } - } - - MenuSeparator { } - - MenuItem - { - id: saveAsMenu - text: catalog.i18nc("@title:menu menubar:file", "&Export...") - onTriggered: - { - var localDeviceId = "local_file"; - UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}); - } - } - - MenuItem - { - id: exportSelectionMenu - text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection..."); - enabled: UM.Selection.hasSelection; - iconName: "document-save-as"; - onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}); - } - - MenuSeparator { } - - MenuItem - { - id: reloadAllMenu - action: Cura.Actions.reloadAll; - } - - MenuSeparator { } - - MenuItem { action: Cura.Actions.quit; } - } - - Menu - { - title: catalog.i18nc("@title:menu menubar:toplevel","&Edit"); - - MenuItem { action: Cura.Actions.undo; } - MenuItem { action: Cura.Actions.redo; } - MenuSeparator { } - MenuItem { action: Cura.Actions.selectAll; } - MenuItem { action: Cura.Actions.arrangeAll; } - MenuItem { action: Cura.Actions.deleteSelection; } - MenuItem { action: Cura.Actions.deleteAll; } - MenuItem { action: Cura.Actions.resetAllTranslation; } - MenuItem { action: Cura.Actions.resetAll; } - MenuSeparator { } - MenuItem { action: Cura.Actions.groupObjects;} - MenuItem { action: Cura.Actions.mergeObjects;} - MenuItem { action: Cura.Actions.unGroupObjects;} - } - - ViewMenu { title: catalog.i18nc("@title:menu", "&View") } - - Menu - { - id: settingsMenu - title: catalog.i18nc("@title:menu", "&Settings") - - PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") } - - Instantiator - { - model: Cura.ExtrudersModel { simpleNames: true } - Menu { - title: model.name - - NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } - MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index } - - MenuSeparator - { - visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Set as Active Extruder") - onTriggered: Cura.MachineManager.setExtruderIndex(model.index) - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Enable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) - visible: !Cura.MachineManager.getExtruder(model.index).isEnabled - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Disable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) - visible: Cura.MachineManager.getExtruder(model.index).isEnabled - enabled: Cura.MachineManager.numberExtrudersEnabled > 1 - } - - } - onObjectAdded: settingsMenu.insertItem(index, object) - onObjectRemoved: settingsMenu.removeItem(object) - } - - // TODO Only show in dev mode. Remove check when feature ready - BuildplateMenu { title: catalog.i18nc("@title:menu", "&Build plate"); visible: CuraSDKVersion == "dev" ? Cura.MachineManager.hasVariantBuildplates : false } - ProfileMenu { title: catalog.i18nc("@title:settings", "&Profile"); } - - MenuSeparator { } - - MenuItem { action: Cura.Actions.configureSettingVisibility } - } - - Menu - { - id: extension_menu - title: catalog.i18nc("@title:menu menubar:toplevel","E&xtensions"); - - Instantiator - { - id: extensions - model: UM.ExtensionModel { } - - Menu - { - id: sub_menu - title: model.name; - visible: actions != null - enabled: actions != null - Instantiator - { - model: actions - MenuItem - { - text: model.text - onTriggered: extensions.model.subMenuTriggered(name, model.text) - } - onObjectAdded: sub_menu.insertItem(index, object) - onObjectRemoved: sub_menu.removeItem(object) - } - } - - onObjectAdded: extension_menu.insertItem(index, object) - onObjectRemoved: extension_menu.removeItem(object) - } - } - - Menu - { - id: plugin_menu - title: catalog.i18nc("@title:menu menubar:toplevel", "&Toolbox") - - MenuItem { action: Cura.Actions.browsePackages } - } - - Menu - { - id: preferencesMenu - title: catalog.i18nc("@title:menu menubar:toplevel","P&references"); - - MenuItem { action: Cura.Actions.preferences; } - } - - Menu - { - id: helpMenu - title: catalog.i18nc("@title:menu menubar:toplevel","&Help"); - - MenuItem { action: Cura.Actions.showProfileFolder; } - MenuItem { action: Cura.Actions.documentation; } - MenuItem { action: Cura.Actions.reportBug; } - MenuSeparator { } - MenuItem { action: Cura.Actions.about; } - } - } - - UM.SettingPropertyProvider - { - id: machineExtruderCount - - containerStack: Cura.MachineManager.activeMachine - key: "machine_extruder_count" - watchedProperties: [ "value" ] - storeIndex: 0 } Item diff --git a/resources/qml/Skeleton/ApplicationMenu.qml b/resources/qml/Skeleton/ApplicationMenu.qml new file mode 100644 index 0000000000..9abaa80f2a --- /dev/null +++ b/resources/qml/Skeleton/ApplicationMenu.qml @@ -0,0 +1,234 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.1 +import QtQuick.Dialogs 1.2 + +import UM 1.3 as UM +import Cura 1.1 as Cura + +import "../Menus" + +UM.ApplicationMenu +{ + id: menu + + Menu + { + id: fileMenu + title: catalog.i18nc("@title:menu menubar:toplevel","&File") + + MenuItem + { + id: newProjectMenu + action: Cura.Actions.newProject + } + + MenuItem + { + id: openMenu + action: Cura.Actions.open + } + + RecentFilesMenu { } + + MenuItem + { + id: saveWorkspaceMenu + text: catalog.i18nc("@title:menu menubar:file","&Save...") + onTriggered: + { + var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; + if(UM.Preferences.getValue("cura/dialog_on_project_save")) + { + saveWorkspaceDialog.args = args + saveWorkspaceDialog.open() + } + else + { + UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + } + } + } + + MenuSeparator { } + + MenuItem + { + id: saveAsMenu + text: catalog.i18nc("@title:menu menubar:file", "&Export...") + onTriggered: + { + var localDeviceId = "local_file" + UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + } + } + + MenuItem + { + id: exportSelectionMenu + text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") + enabled: UM.Selection.hasSelection + iconName: "document-save-as" + onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + } + + MenuSeparator { } + + MenuItem + { + id: reloadAllMenu + action: Cura.Actions.reloadAll + } + + MenuSeparator { } + + MenuItem { action: Cura.Actions.quit } + } + + Menu + { + title: catalog.i18nc("@title:menu menubar:toplevel","&Edit") + + MenuItem { action: Cura.Actions.undo } + MenuItem { action: Cura.Actions.redo } + MenuSeparator { } + MenuItem { action: Cura.Actions.selectAll } + MenuItem { action: Cura.Actions.arrangeAll } + MenuItem { action: Cura.Actions.deleteSelection } + MenuItem { action: Cura.Actions.deleteAll } + MenuItem { action: Cura.Actions.resetAllTranslation } + MenuItem { action: Cura.Actions.resetAll } + MenuSeparator { } + MenuItem { action: Cura.Actions.groupObjects } + MenuItem { action: Cura.Actions.mergeObjects } + MenuItem { action: Cura.Actions.unGroupObjects } + } + + ViewMenu { title: catalog.i18nc("@title:menu", "&View") } + + Menu + { + id: settingsMenu + title: catalog.i18nc("@title:menu", "&Settings") + + PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") } + + Instantiator + { + model: Cura.ExtrudersModel { simpleNames: true } + Menu { + title: model.name + + NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } + MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index } + + MenuSeparator + { + visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Set as Active Extruder") + onTriggered: Cura.MachineManager.setExtruderIndex(model.index) + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Enable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) + visible: !Cura.MachineManager.getExtruder(model.index).isEnabled + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Disable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) + visible: Cura.MachineManager.getExtruder(model.index).isEnabled + enabled: Cura.MachineManager.numberExtrudersEnabled > 1 + } + + } + onObjectAdded: settingsMenu.insertItem(index, object) + onObjectRemoved: settingsMenu.removeItem(object) + } + + // TODO Only show in dev mode. Remove check when feature ready + BuildplateMenu + { + title: catalog.i18nc("@title:menu", "&Build plate") + visible: CuraSDKVersion == "dev" && Cura.MachineManager.hasVariantBuildplates + } + ProfileMenu { title: catalog.i18nc("@title:settings", "&Profile") } + + MenuSeparator { } + + MenuItem { action: Cura.Actions.configureSettingVisibility } + } + + Menu + { + id: extension_menu + title: catalog.i18nc("@title:menu menubar:toplevel","E&xtensions") + + Instantiator + { + id: extensions + model: UM.ExtensionModel { } + + Menu + { + id: sub_menu + title: model.name; + visible: actions != null + enabled: actions != null + Instantiator + { + model: actions + MenuItem + { + text: model.text + onTriggered: extensions.model.subMenuTriggered(name, model.text) + } + onObjectAdded: sub_menu.insertItem(index, object) + onObjectRemoved: sub_menu.removeItem(object) + } + } + + onObjectAdded: extension_menu.insertItem(index, object) + onObjectRemoved: extension_menu.removeItem(object) + } + } + + Menu + { + id: plugin_menu + title: catalog.i18nc("@title:menu menubar:toplevel", "&Toolbox") + + MenuItem { action: Cura.Actions.browsePackages } + } + + Menu + { + id: preferencesMenu + title: catalog.i18nc("@title:menu menubar:toplevel","P&references") + + MenuItem { action: Cura.Actions.preferences } + } + + Menu + { + id: helpMenu + title: catalog.i18nc("@title:menu menubar:toplevel","&Help") + + MenuItem { action: Cura.Actions.showProfileFolder } + MenuItem { action: Cura.Actions.documentation } + MenuItem { action: Cura.Actions.reportBug } + MenuSeparator { } + MenuItem { action: Cura.Actions.about } + } +} \ No newline at end of file From 8bdd27183fcb318cf76c1c5f5aab1b0e7507e4f7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 8 Oct 2018 10:59:46 +0200 Subject: [PATCH 0003/1039] Move TopBar to the Skeleton folder. Clean up the Cura.qml even more by moving some components to the ApplicationMenu, where they are called. Contributes to CURA-5784. --- resources/qml/Cura.qml | 35 -- .../{ => Dialogs}/WorkspaceSummaryDialog.qml | 0 resources/qml/Skeleton/ApplicationMenu.qml | 413 ++++++++++-------- resources/qml/{ => Skeleton}/Topbar.qml | 3 +- 4 files changed, 229 insertions(+), 222 deletions(-) rename resources/qml/{ => Dialogs}/WorkspaceSummaryDialog.qml (100%) rename resources/qml/{ => Skeleton}/Topbar.qml (99%) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 380e425ef5..18280ea4ae 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -183,7 +183,6 @@ UM.MainWindow bottom: parent.bottom; left: parent.left; } - } Topbar @@ -340,13 +339,6 @@ UM.MainWindow } } - WorkspaceSummaryDialog - { - id: saveWorkspaceDialog - property var args - onYes: UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) - } - Connections { target: Cura.Actions.preferences @@ -359,33 +351,6 @@ UM.MainWindow onShowPreferencesWindow: preferences.visible = true } - MessageDialog - { - id: newProjectDialog - modality: Qt.ApplicationModal - title: catalog.i18nc("@title:window", "New project") - text: catalog.i18nc("@info:question", "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings.") - standardButtons: StandardButton.Yes | StandardButton.No - icon: StandardIcon.Question - onYes: - { - CuraApplication.deleteAll(); - Cura.Actions.resetProfile.trigger(); - } - } - - Connections - { - target: Cura.Actions.newProject - onTriggered: - { - if(Printer.platformActivity || Cura.MachineManager.hasUserSettings) - { - newProjectDialog.visible = true - } - } - } - Connections { target: Cura.Actions.addProfile diff --git a/resources/qml/WorkspaceSummaryDialog.qml b/resources/qml/Dialogs/WorkspaceSummaryDialog.qml similarity index 100% rename from resources/qml/WorkspaceSummaryDialog.qml rename to resources/qml/Dialogs/WorkspaceSummaryDialog.qml diff --git a/resources/qml/Skeleton/ApplicationMenu.qml b/resources/qml/Skeleton/ApplicationMenu.qml index 9abaa80f2a..97d8f7ca7e 100644 --- a/resources/qml/Skeleton/ApplicationMenu.qml +++ b/resources/qml/Skeleton/ApplicationMenu.qml @@ -11,224 +11,267 @@ import UM 1.3 as UM import Cura 1.1 as Cura import "../Menus" +import "../Dialogs" -UM.ApplicationMenu +Item { id: menu + width: applicationMenu.width + height: applicationMenu.height + property alias window: applicationMenu.window - Menu + UM.ApplicationMenu { - id: fileMenu - title: catalog.i18nc("@title:menu menubar:toplevel","&File") + id: applicationMenu - MenuItem + Menu { - id: newProjectMenu - action: Cura.Actions.newProject - } + id: fileMenu + title: catalog.i18nc("@title:menu menubar:toplevel","&File") - MenuItem - { - id: openMenu - action: Cura.Actions.open - } - - RecentFilesMenu { } - - MenuItem - { - id: saveWorkspaceMenu - text: catalog.i18nc("@title:menu menubar:file","&Save...") - onTriggered: + MenuItem { - var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; - if(UM.Preferences.getValue("cura/dialog_on_project_save")) + id: newProjectMenu + action: Cura.Actions.newProject + } + + MenuItem + { + id: openMenu + action: Cura.Actions.open + } + + RecentFilesMenu { } + + MenuItem + { + id: saveWorkspaceMenu + text: catalog.i18nc("@title:menu menubar:file","&Save...") + onTriggered: { - saveWorkspaceDialog.args = args - saveWorkspaceDialog.open() - } - else - { - UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; + if(UM.Preferences.getValue("cura/dialog_on_project_save")) + { + saveWorkspaceDialog.args = args + saveWorkspaceDialog.open() + } + else + { + UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + } } } - } - MenuSeparator { } + MenuSeparator { } - MenuItem - { - id: saveAsMenu - text: catalog.i18nc("@title:menu menubar:file", "&Export...") - onTriggered: + MenuItem { - var localDeviceId = "local_file" - UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + id: saveAsMenu + text: catalog.i18nc("@title:menu menubar:file", "&Export...") + onTriggered: + { + var localDeviceId = "local_file" + UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + } } - } - MenuItem - { - id: exportSelectionMenu - text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") - enabled: UM.Selection.hasSelection - iconName: "document-save-as" - onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) - } - - MenuSeparator { } - - MenuItem - { - id: reloadAllMenu - action: Cura.Actions.reloadAll - } - - MenuSeparator { } - - MenuItem { action: Cura.Actions.quit } - } - - Menu - { - title: catalog.i18nc("@title:menu menubar:toplevel","&Edit") - - MenuItem { action: Cura.Actions.undo } - MenuItem { action: Cura.Actions.redo } - MenuSeparator { } - MenuItem { action: Cura.Actions.selectAll } - MenuItem { action: Cura.Actions.arrangeAll } - MenuItem { action: Cura.Actions.deleteSelection } - MenuItem { action: Cura.Actions.deleteAll } - MenuItem { action: Cura.Actions.resetAllTranslation } - MenuItem { action: Cura.Actions.resetAll } - MenuSeparator { } - MenuItem { action: Cura.Actions.groupObjects } - MenuItem { action: Cura.Actions.mergeObjects } - MenuItem { action: Cura.Actions.unGroupObjects } - } - - ViewMenu { title: catalog.i18nc("@title:menu", "&View") } - - Menu - { - id: settingsMenu - title: catalog.i18nc("@title:menu", "&Settings") - - PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") } - - Instantiator - { - model: Cura.ExtrudersModel { simpleNames: true } - Menu { - title: model.name - - NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } - MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index } - - MenuSeparator - { - visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Set as Active Extruder") - onTriggered: Cura.MachineManager.setExtruderIndex(model.index) - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Enable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) - visible: !Cura.MachineManager.getExtruder(model.index).isEnabled - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Disable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) - visible: Cura.MachineManager.getExtruder(model.index).isEnabled - enabled: Cura.MachineManager.numberExtrudersEnabled > 1 - } - - } - onObjectAdded: settingsMenu.insertItem(index, object) - onObjectRemoved: settingsMenu.removeItem(object) - } - - // TODO Only show in dev mode. Remove check when feature ready - BuildplateMenu - { - title: catalog.i18nc("@title:menu", "&Build plate") - visible: CuraSDKVersion == "dev" && Cura.MachineManager.hasVariantBuildplates - } - ProfileMenu { title: catalog.i18nc("@title:settings", "&Profile") } - - MenuSeparator { } - - MenuItem { action: Cura.Actions.configureSettingVisibility } - } - - Menu - { - id: extension_menu - title: catalog.i18nc("@title:menu menubar:toplevel","E&xtensions") - - Instantiator - { - id: extensions - model: UM.ExtensionModel { } - - Menu + MenuItem { - id: sub_menu - title: model.name; - visible: actions != null - enabled: actions != null - Instantiator - { - model: actions + id: exportSelectionMenu + text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") + enabled: UM.Selection.hasSelection + iconName: "document-save-as" + onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + } + + MenuSeparator { } + + MenuItem + { + id: reloadAllMenu + action: Cura.Actions.reloadAll + } + + MenuSeparator { } + + MenuItem { action: Cura.Actions.quit } + } + + Menu + { + title: catalog.i18nc("@title:menu menubar:toplevel","&Edit") + + MenuItem { action: Cura.Actions.undo } + MenuItem { action: Cura.Actions.redo } + MenuSeparator { } + MenuItem { action: Cura.Actions.selectAll } + MenuItem { action: Cura.Actions.arrangeAll } + MenuItem { action: Cura.Actions.deleteSelection } + MenuItem { action: Cura.Actions.deleteAll } + MenuItem { action: Cura.Actions.resetAllTranslation } + MenuItem { action: Cura.Actions.resetAll } + MenuSeparator { } + MenuItem { action: Cura.Actions.groupObjects } + MenuItem { action: Cura.Actions.mergeObjects } + MenuItem { action: Cura.Actions.unGroupObjects } + } + + ViewMenu { title: catalog.i18nc("@title:menu", "&View") } + + Menu + { + id: settingsMenu + title: catalog.i18nc("@title:menu", "&Settings") + + PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") } + + Instantiator + { + model: Cura.ExtrudersModel { simpleNames: true } + Menu { + title: model.name + + NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } + MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index } + + MenuSeparator + { + visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials + } + MenuItem { - text: model.text - onTriggered: extensions.model.subMenuTriggered(name, model.text) + text: catalog.i18nc("@action:inmenu", "Set as Active Extruder") + onTriggered: Cura.MachineManager.setExtruderIndex(model.index) } - onObjectAdded: sub_menu.insertItem(index, object) - onObjectRemoved: sub_menu.removeItem(object) + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Enable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) + visible: !Cura.MachineManager.getExtruder(model.index).isEnabled + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Disable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) + visible: Cura.MachineManager.getExtruder(model.index).isEnabled + enabled: Cura.MachineManager.numberExtrudersEnabled > 1 + } + } + onObjectAdded: settingsMenu.insertItem(index, object) + onObjectRemoved: settingsMenu.removeItem(object) } - onObjectAdded: extension_menu.insertItem(index, object) - onObjectRemoved: extension_menu.removeItem(object) + // TODO Only show in dev mode. Remove check when feature ready + BuildplateMenu + { + title: catalog.i18nc("@title:menu", "&Build plate") + visible: CuraSDKVersion == "dev" && Cura.MachineManager.hasVariantBuildplates + } + ProfileMenu { title: catalog.i18nc("@title:settings", "&Profile") } + + MenuSeparator { } + + MenuItem { action: Cura.Actions.configureSettingVisibility } + } + + Menu + { + id: extension_menu + title: catalog.i18nc("@title:menu menubar:toplevel","E&xtensions") + + Instantiator + { + id: extensions + model: UM.ExtensionModel { } + + Menu + { + id: sub_menu + title: model.name; + visible: actions != null + enabled: actions != null + Instantiator + { + model: actions + MenuItem + { + text: model.text + onTriggered: extensions.model.subMenuTriggered(name, model.text) + } + onObjectAdded: sub_menu.insertItem(index, object) + onObjectRemoved: sub_menu.removeItem(object) + } + } + + onObjectAdded: extension_menu.insertItem(index, object) + onObjectRemoved: extension_menu.removeItem(object) + } + } + + Menu + { + id: plugin_menu + title: catalog.i18nc("@title:menu menubar:toplevel", "&Toolbox") + + MenuItem { action: Cura.Actions.browsePackages } + } + + Menu + { + id: preferencesMenu + title: catalog.i18nc("@title:menu menubar:toplevel","P&references") + + MenuItem { action: Cura.Actions.preferences } + } + + Menu + { + id: helpMenu + title: catalog.i18nc("@title:menu menubar:toplevel","&Help") + + MenuItem { action: Cura.Actions.showProfileFolder } + MenuItem { action: Cura.Actions.documentation } + MenuItem { action: Cura.Actions.reportBug } + MenuSeparator { } + MenuItem { action: Cura.Actions.about } } } - Menu + WorkspaceSummaryDialog { - id: plugin_menu - title: catalog.i18nc("@title:menu menubar:toplevel", "&Toolbox") - - MenuItem { action: Cura.Actions.browsePackages } + id: saveWorkspaceDialog + property var args + onYes: UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) } - Menu + MessageDialog { - id: preferencesMenu - title: catalog.i18nc("@title:menu menubar:toplevel","P&references") - - MenuItem { action: Cura.Actions.preferences } + id: newProjectDialog + modality: Qt.ApplicationModal + title: catalog.i18nc("@title:window", "New project") + text: catalog.i18nc("@info:question", "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings.") + standardButtons: StandardButton.Yes | StandardButton.No + icon: StandardIcon.Question + onYes: + { + CuraApplication.deleteAll(); + Cura.Actions.resetProfile.trigger(); + } } - Menu + Connections { - id: helpMenu - title: catalog.i18nc("@title:menu menubar:toplevel","&Help") - - MenuItem { action: Cura.Actions.showProfileFolder } - MenuItem { action: Cura.Actions.documentation } - MenuItem { action: Cura.Actions.reportBug } - MenuSeparator { } - MenuItem { action: Cura.Actions.about } + target: Cura.Actions.newProject + onTriggered: + { + if(Printer.platformActivity || Cura.MachineManager.hasUserSettings) + { + newProjectDialog.visible = true + } + } } } \ No newline at end of file diff --git a/resources/qml/Topbar.qml b/resources/qml/Skeleton/Topbar.qml similarity index 99% rename from resources/qml/Topbar.qml rename to resources/qml/Skeleton/Topbar.qml index 17819dbd27..d27d9865b8 100644 --- a/resources/qml/Topbar.qml +++ b/resources/qml/Skeleton/Topbar.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -8,7 +8,6 @@ import QtQuick.Layouts 1.1 import UM 1.4 as UM import Cura 1.0 as Cura -import "Menus" Rectangle { From 3acfdadd12c8a0f5b136cb94d011cf6ccfebc693 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 8 Oct 2018 11:31:53 +0200 Subject: [PATCH 0004/1039] Organize the components in a Column. Separate the TopHeader and place it below the application menu, using all the width. Contributes to CURA-5784. --- resources/qml/Cura.qml | 104 +++++++++--------- .../Skeleton/{Topbar.qml => TopHeader.qml} | 0 2 files changed, 53 insertions(+), 51 deletions(-) rename resources/qml/Skeleton/{Topbar.qml => TopHeader.qml} (100%) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 18280ea4ae..62ec4799c9 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -63,7 +63,7 @@ UM.MainWindow CuraApplication.purgeWindows() } - Item + Column { id: backgroundItem anchors.fill: parent @@ -92,19 +92,25 @@ UM.MainWindow window: base } + TopHeader + { + id: topHeader + anchors.left: parent.left + anchors.right: parent.right + } + Item { - id: contentItem; + id: contentItem - y: menu.height - width: parent.width; - height: parent.height - menu.height; + width: parent.width + height: parent.height - menu.height - topHeader.height Keys.forwardTo: menu DropArea { - anchors.fill: parent; + anchors.fill: parent onDropped: { if (drop.urls.length > 0) @@ -137,69 +143,61 @@ UM.MainWindow id: jobSpecs anchors { - bottom: parent.bottom; - right: sidebar.left; - bottomMargin: UM.Theme.getSize("default_margin").height; - rightMargin: UM.Theme.getSize("default_margin").width; + bottom: parent.bottom + right: sidebar.left + bottomMargin: UM.Theme.getSize("default_margin").height + rightMargin: UM.Theme.getSize("default_margin").width } } Button { - id: openFileButton; - text: catalog.i18nc("@action:button","Open File"); + id: openFileButton + text: catalog.i18nc("@action:button","Open File") iconSource: UM.Theme.getIcon("load") style: UM.Theme.styles.tool_button tooltip: "" anchors { - top: topbar.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - left: parent.left; + top: parent.top + topMargin: UM.Theme.getSize("default_margin").height + left: parent.left } - action: Cura.Actions.open; + action: Cura.Actions.open } Toolbar { - id: toolbar; + id: toolbar property int mouseX: base.mouseX property int mouseY: base.mouseY anchors { - top: openFileButton.bottom; - topMargin: UM.Theme.getSize("window_margin").height; - left: parent.left; + top: openFileButton.bottom + topMargin: UM.Theme.getSize("window_margin").height + left: parent.left } } ObjectsList { - id: objectsList; - visible: UM.Preferences.getValue("cura/use_multi_build_plate"); + id: objectsList + visible: UM.Preferences.getValue("cura/use_multi_build_plate") anchors { - bottom: parent.bottom; - left: parent.left; + bottom: parent.bottom + left: parent.left } } - Topbar - { - id: topbar - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - } - Loader { id: main anchors { - top: topbar.bottom + top: parent.top bottom: parent.bottom left: parent.left right: sidebar.left @@ -220,26 +218,30 @@ UM.MainWindow { id: sidebar - property bool collapsed: false; - property var initialWidth: UM.Theme.getSize("sidebar").width; + property bool collapsed: false + property var initialWidth: UM.Theme.getSize("sidebar").width - function callExpandOrCollapse() { - if (collapsed) { - sidebar.visible = true; - sidebar.initialWidth = UM.Theme.getSize("sidebar").width; - viewportRect = Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0); + function callExpandOrCollapse() + { + if (collapsed) + { + sidebar.visible = true + sidebar.initialWidth = UM.Theme.getSize("sidebar").width + viewportRect = Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) expandSidebarAnimation.start(); - } else { - viewportRect = Qt.rect(0, 0, 1, 1.0); - collapseSidebarAnimation.start(); } - collapsed = !collapsed; - UM.Preferences.setValue("cura/sidebar_collapsed", collapsed); + else + { + viewportRect = Qt.rect(0, 0, 1, 1.0) + collapseSidebarAnimation.start() + } + collapsed = !collapsed + UM.Preferences.setValue("cura/sidebar_collapsed", collapsed) } anchors { - top: topbar.top + top: parent.top bottom: parent.bottom } @@ -265,13 +267,13 @@ UM.MainWindow Component.onCompleted: { - var sidebar_collapsed = UM.Preferences.getValue("cura/sidebar_collapsed"); + var sidebar_collapsed = UM.Preferences.getValue("cura/sidebar_collapsed") if (sidebar_collapsed) { - sidebar.collapsed = true; + sidebar.collapsed = true viewportRect = Qt.rect(0, 0, 1, 1.0) - collapseSidebarAnimation.start(); + collapseSidebarAnimation.start() } } @@ -290,8 +292,8 @@ UM.MainWindow { horizontalCenter: parent.horizontalCenter horizontalCenterOffset: -(Math.round(UM.Theme.getSize("sidebar").width / 2)) - top: parent.verticalCenter; - bottom: parent.bottom; + top: parent.verticalCenter + bottom: parent.bottom bottomMargin: UM.Theme.getSize("default_margin").height } } diff --git a/resources/qml/Skeleton/Topbar.qml b/resources/qml/Skeleton/TopHeader.qml similarity index 100% rename from resources/qml/Skeleton/Topbar.qml rename to resources/qml/Skeleton/TopHeader.qml From 075a9a161fb77c999ad432666cd9b6d943f52cad Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 8 Oct 2018 12:57:16 +0200 Subject: [PATCH 0005/1039] Create a component for the Views selector. This component contains the list of the views and also the shortcuts for the camera position. The theme colors, sizes and the styles have been updated. Contributes to CURA-5784. --- .../resources/qml/ToolboxTabButton.qml | 6 +- resources/qml/Cura.qml | 12 + .../ConfigurationMenu/ConfigurationItem.qml | 4 +- resources/qml/Skeleton/ApplicationViews.qml | 108 +++++++++ resources/qml/Skeleton/OrientationViews.qml | 56 +++++ resources/qml/Skeleton/TopHeader.qml | 208 ++---------------- resources/themes/cura-dark/theme.json | 15 +- resources/themes/cura-light/styles.qml | 106 ++------- resources/themes/cura-light/theme.json | 24 +- 9 files changed, 235 insertions(+), 304 deletions(-) create mode 100644 resources/qml/Skeleton/ApplicationViews.qml create mode 100644 resources/qml/Skeleton/OrientationViews.qml diff --git a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml index 22fb6d73ca..58149e419a 100644 --- a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml @@ -32,15 +32,15 @@ Button { if(control.hovered) { - return UM.Theme.getColor("topbar_button_text_hovered"); + return UM.Theme.getColor("toolbox_header_button_text_hovered"); } if(control.active) { - return UM.Theme.getColor("topbar_button_text_active"); + return UM.Theme.getColor("toolbox_header_button_text_active"); } else { - return UM.Theme.getColor("topbar_button_text_inactive"); + return UM.Theme.getColor("toolbox_header_button_text_inactive"); } } font: control.enabled ? (control.active ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium")) : UM.Theme.getFont("default_italic") diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 62ec4799c9..b7245b1b65 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -191,6 +191,18 @@ UM.MainWindow } } + ApplicationViews + { + id: applicationViews + + visible: UM.Controller.activeStage.stageId != "MonitorStage" + anchors + { + top: parent.top + right: sidebar.left + } + } + Loader { id: main diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 942dd81d9c..517b69428e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -77,8 +77,8 @@ Rectangle UM.RecolorImage { id: buildplateIcon anchors.left: parent.left - width: UM.Theme.getSize("topbar_button_icon").width - height: UM.Theme.getSize("topbar_button_icon").height + width: UM.Theme.getSize("topheader_button_icon").width + height: UM.Theme.getSize("topheader_button_icon").height sourceSize.width: width sourceSize.height: height source: UM.Theme.getIcon("buildplate") diff --git a/resources/qml/Skeleton/ApplicationViews.qml b/resources/qml/Skeleton/ApplicationViews.qml new file mode 100644 index 0000000000..8e0b6efc0b --- /dev/null +++ b/resources/qml/Skeleton/ApplicationViews.qml @@ -0,0 +1,108 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 +import QtQuick.Layouts 1.1 + +import UM 1.4 as UM +import Cura 1.0 as Cura + +// This item contains the views selector, a combobox that is dinamically created from +// the list of available Views (packages that create different visualizactions of the +// scene. Aside the selector, there is a row of buttons that change the orientation of the view. +Item +{ + id: applicationViewsSelector + + height: UM.Theme.getSize("views_selector").height + + OrientationViews + { + id: orientationViews + + anchors { + verticalCenter: parent.verticalCenter + right: viewModeButton.left + rightMargin: UM.Theme.getSize("default_margin").width + } + } + + ComboBox + { + id: viewModeButton + + anchors { + verticalCenter: parent.verticalCenter + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + } + + style: UM.Theme.styles.combobox + + model: UM.ViewModel { } + textRole: "name" + + // update the model's active index + function updateItemActiveFlags () + { + currentIndex = getActiveIndex() + for (var i = 0; i < model.rowCount(); i++) + { + model.getItem(i).active = (i == currentIndex) + } + } + + // get the index of the active model item on start + function getActiveIndex () + { + for (var i = 0; i < model.rowCount(); i++) + { + if (model.getItem(i).active) { + return i + } + } + return 0 + } + + // set the active index + function setActiveIndex (index) + { + UM.Controller.setActiveView(index) + // the connection to UM.ActiveView will trigger update so there is no reason to call it manually here + } + + onCurrentIndexChanged: + { + if (model.getItem(currentIndex).id != undefined) + { + viewModeButton.setActiveIndex(model.getItem(currentIndex).id) + } + } + currentIndex: getActiveIndex() + + // watch the active view proxy for changes made from the menu item + Connections + { + target: UM.ActiveView + onActiveViewChanged: viewModeButton.updateItemActiveFlags() + } + } + + Loader + { + id: viewPanel + + anchors.top: viewModeButton.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.right: viewModeButton.right + + property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) + + height: childrenRect.height + width: childrenRect.width + + source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" + } +} diff --git a/resources/qml/Skeleton/OrientationViews.qml b/resources/qml/Skeleton/OrientationViews.qml new file mode 100644 index 0000000000..d1b370ed71 --- /dev/null +++ b/resources/qml/Skeleton/OrientationViews.qml @@ -0,0 +1,56 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.4 as UM + +// View orientation Item +Row +{ + id: viewOrientationControl + + spacing: 2 * screenScaleFactor + + // #1 3d view + Button + { + iconSource: UM.Theme.getIcon("view_3d") + style: UM.Theme.styles.small_tool_button + onClicked:UM.Controller.rotateView("3d", 0) + } + + // #2 Front view + Button + { + iconSource: UM.Theme.getIcon("view_front") + style: UM.Theme.styles.small_tool_button + onClicked: UM.Controller.rotateView("home", 0) + } + + // #3 Top view + Button + { + iconSource: UM.Theme.getIcon("view_top") + style: UM.Theme.styles.small_tool_button + onClicked: UM.Controller.rotateView("y", 90) + } + + // #4 Left view + Button + { + iconSource: UM.Theme.getIcon("view_left") + style: UM.Theme.styles.small_tool_button + onClicked: UM.Controller.rotateView("x", 90) + } + + // #5 Right view + Button + { + iconSource: UM.Theme.getIcon("view_right") + style: UM.Theme.styles.small_tool_button + onClicked: UM.Controller.rotateView("x", -90) + } +} diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index d27d9865b8..bdc9afd0cc 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -12,38 +12,9 @@ import Cura 1.0 as Cura Rectangle { id: base - anchors.left: parent.left - anchors.right: parent.right - height: UM.Theme.getSize("sidebar_header").height - color: UM.Controller.activeStage.stageId == "MonitorStage" ? UM.Theme.getColor("topbar_background_color_monitoring") : UM.Theme.getColor("topbar_background_color") - property bool printerConnected: Cura.MachineManager.printerConnected - property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands - - property int rightMargin: UM.Theme.getSize("sidebar").width + UM.Theme.getSize("default_margin").width; - property int allItemsWidth: 0; - - function updateMarginsAndSizes() { - if (UM.Preferences.getValue("cura/sidebar_collapsed")) - { - rightMargin = UM.Theme.getSize("default_margin").width; - } - else - { - rightMargin = UM.Theme.getSize("sidebar").width + UM.Theme.getSize("default_margin").width; - } - allItemsWidth = ( - logo.width + UM.Theme.getSize("topbar_logo_right_margin").width + - UM.Theme.getSize("topbar_logo_right_margin").width + stagesMenuContainer.width + - UM.Theme.getSize("default_margin").width + viewModeButton.width + - rightMargin); - } - - UM.I18nCatalog - { - id: catalog - name:"cura" - } + height: UM.Theme.getSize("topheader").height + color: UM.Theme.getColor("topheader_background") Image { @@ -52,36 +23,36 @@ Rectangle anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter - source: UM.Theme.getImage("logo"); - width: UM.Theme.getSize("logo").width; - height: UM.Theme.getSize("logo").height; + source: UM.Theme.getImage("logo") + width: UM.Theme.getSize("logo").width + height: UM.Theme.getSize("logo").height - sourceSize.width: width; - sourceSize.height: height; + sourceSize.width: width + sourceSize.height: height } Row { id: stagesMenuContainer anchors.left: logo.right - anchors.leftMargin: UM.Theme.getSize("topbar_logo_right_margin").width + anchors.leftMargin: UM.Theme.getSize("topheader_logo_right_margin").width spacing: UM.Theme.getSize("default_margin").width - // The topbar is dynamically filled with all available stages + // The topheader is dynamically filled with all available stages Repeater { id: stagesMenu - model: UM.StageModel{} + model: UM.StageModel { } delegate: Button { text: model.name checkable: true checked: model.active - exclusiveGroup: topbarMenuGroup - style: (model.stage.iconSource != "") ? UM.Theme.styles.topbar_header_tab_no_overlay : UM.Theme.styles.topbar_header_tab - height: UM.Theme.getSize("sidebar_header").height + exclusiveGroup: topheaderMenuGroup + style: UM.Theme.styles.topheader_tab + height: UM.Theme.getSize("topheader").height onClicked: UM.Controller.setActiveStage(model.id) iconSource: model.stage.iconSource @@ -90,157 +61,6 @@ Rectangle } } - ExclusiveGroup { id: topbarMenuGroup } + ExclusiveGroup { id: topheaderMenuGroup } } - - // View orientation Item - Row - { - id: viewOrientationControl - height: 30 - - spacing: 2 - visible: UM.Controller.activeStage.stageId != "MonitorStage" - - anchors - { - verticalCenter: base.verticalCenter - right: viewModeButton.left - rightMargin: UM.Theme.getSize("default_margin").width - } - - // #1 3d view - Button - { - iconSource: UM.Theme.getIcon("view_3d") - style: UM.Theme.styles.small_tool_button - anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked:UM.Controller.rotateView("3d", 0) - visible: base.width - allItemsWidth - 4 * this.width > 0 - } - - // #2 Front view - Button - { - iconSource: UM.Theme.getIcon("view_front") - style: UM.Theme.styles.small_tool_button - anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked: UM.Controller.rotateView("home", 0); - visible: base.width - allItemsWidth - 3 * this.width > 0 - } - - // #3 Top view - Button - { - iconSource: UM.Theme.getIcon("view_top") - style: UM.Theme.styles.small_tool_button - anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked: UM.Controller.rotateView("y", 90) - visible: base.width - allItemsWidth - 2 * this.width > 0 - } - - // #4 Left view - Button - { - iconSource: UM.Theme.getIcon("view_left") - style: UM.Theme.styles.small_tool_button - anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked: UM.Controller.rotateView("x", 90) - visible: base.width - allItemsWidth - 1 * this.width > 0 - } - - // #5 Right view - Button - { - iconSource: UM.Theme.getIcon("view_right") - style: UM.Theme.styles.small_tool_button - anchors.verticalCenter: viewOrientationControl.verticalCenter - onClicked: UM.Controller.rotateView("x", -90) - visible: base.width - allItemsWidth > 0 - } - } - - ComboBox - { - id: viewModeButton - - anchors { - verticalCenter: parent.verticalCenter - right: parent.right - rightMargin: rightMargin - } - - style: UM.Theme.styles.combobox - visible: UM.Controller.activeStage.stageId != "MonitorStage" - - model: UM.ViewModel { } - textRole: "name" - - // update the model's active index - function updateItemActiveFlags () { - currentIndex = getActiveIndex() - for (var i = 0; i < model.rowCount(); i++) { - model.getItem(i).active = (i == currentIndex) - } - } - - // get the index of the active model item on start - function getActiveIndex () { - for (var i = 0; i < model.rowCount(); i++) { - if (model.getItem(i).active) { - return i - } - } - return 0 - } - - // set the active index - function setActiveIndex (index) { - UM.Controller.setActiveView(index) - // the connection to UM.ActiveView will trigger update so there is no reason to call it manually here - } - - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id != undefined) - viewModeButton.setActiveIndex(model.getItem(currentIndex).id) - } - currentIndex: getActiveIndex() - - // watch the active view proxy for changes made from the menu item - Connections - { - target: UM.ActiveView - onActiveViewChanged: viewModeButton.updateItemActiveFlags() - } - } - - Loader - { - id: view_panel - - anchors.top: viewModeButton.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.right: viewModeButton.right - - property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) - - height: childrenRect.height - width: childrenRect.width - - source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : ""; - } - - // Expand or collapse sidebar - Connections - { - target: Cura.Actions.expandSidebar - onTriggered: updateMarginsAndSizes() - } - - Component.onCompleted: - { - updateMarginsAndSizes(); - } - } diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 26e6c2ac8b..fa0da2851e 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -15,12 +15,11 @@ "border": [127, 127, 127, 255], "secondary": [241, 242, 242, 255], - "topbar_background_color": [0, 0, 0, 0], - "topbar_background_color_monitoring": [31, 36, 39, 255], + "topheader_background": [31, 36, 39, 255], - "topbar_button_text_active": [255, 255, 255, 255], - "topbar_button_text_inactive": [128, 128, 128, 255], - "topbar_button_text_hovered": [255, 255, 255, 255], + "topheader_button_text_active": [255, 255, 255, 255], + "topheader_button_text_inactive": [128, 128, 128, 255], + "topheader_button_text_hovered": [255, 255, 255, 255], "text": [255, 255, 255, 204], "text_detail": [255, 255, 255, 172], @@ -221,6 +220,10 @@ "quality_slider_available": [255, 255, 255, 255], "quality_slider_handle": [255, 255, 255, 255], "quality_slider_handle_hover": [127, 127, 127, 255], - "quality_slider_text": [255, 255, 255, 255] + "quality_slider_text": [255, 255, 255, 255], + + "toolbox_header_button_text_active": [255, 255, 255, 255], + "toolbox_header_button_text_inactive": [128, 128, 128, 255], + "toolbox_header_button_text_hovered": [255, 255, 255, 255] } } diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index b71ddd2d86..b54d12e07b 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -90,85 +90,11 @@ QtObject { } } - property Component topbar_header_tab_no_overlay: Component { - ButtonStyle { - background: Rectangle { - implicitHeight: Theme.getSize("topbar_button").height - implicitWidth: Theme.getSize("topbar_button").width - color: "transparent" - anchors.fill: parent - - Rectangle - { - id: underline - - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - width: parent.width - height: Theme.getSize("sidebar_header_highlight").height - color: control.checked ? UM.Theme.getColor("sidebar_header_highlight") : UM.Theme.getColor("sidebar_header_highlight_hover") - visible: control.hovered || control.checked - } - } - - label: Rectangle { - implicitHeight: Theme.getSize("topbar_button_icon").height - implicitWidth: Theme.getSize("topbar_button").width - color: "transparent" - anchors.fill: parent - - Item - { - anchors.centerIn: parent - width: Math.round(textLabel.width + icon.width + Theme.getSize("default_margin").width / 2) - Label - { - id: textLabel - text: control.text - anchors.right: icon.visible ? icon.left : parent.right - anchors.rightMargin: icon.visible ? Math.round(Theme.getSize("default_margin").width / 2) : 0 - anchors.verticalCenter: parent.verticalCenter; - font: control.checked ? UM.Theme.getFont("large") : UM.Theme.getFont("large_nonbold") - color: - { - if(control.hovered) - { - return UM.Theme.getColor("topbar_button_text_hovered"); - } - if(control.checked) - { - return UM.Theme.getColor("topbar_button_text_active"); - } - else - { - return UM.Theme.getColor("topbar_button_text_inactive"); - } - } - } - Image - { - id: icon - visible: control.iconSource != "" - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - opacity: !control.enabled ? 0.2 : 1.0 - source: control.iconSource - width: visible ? Theme.getSize("topbar_button_icon").width : 0 - height: Theme.getSize("topbar_button_icon").height - - sourceSize: Theme.getSize("topbar_button_icon") - } - } - } - } - } - - property Component topbar_header_tab: Component { + property Component topheader_tab: Component { ButtonStyle { background: Item { - implicitHeight: Theme.getSize("topbar_button").height - implicitWidth: Theme.getSize("topbar_button").width + Theme.getSize("topbar_button_icon").width + implicitHeight: Theme.getSize("topheader_button").height + implicitWidth: Theme.getSize("topheader_button").width + Theme.getSize("topheader_button_icon").width Rectangle { id: buttonFace; @@ -182,7 +108,7 @@ QtObject { anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom - width: Theme.getSize("topbar_button").width + Theme.getSize("topbar_button_icon").width + width: Theme.getSize("topheader_button").width + Theme.getSize("topheader_button_icon").width height: Theme.getSize("sidebar_header_highlight").height color: control.checked ? UM.Theme.getColor("sidebar_header_highlight") : UM.Theme.getColor("sidebar_header_highlight_hover") visible: control.hovered || control.checked @@ -192,14 +118,14 @@ QtObject { label: Item { - implicitHeight: Theme.getSize("topbar_button_icon").height - implicitWidth: Theme.getSize("topbar_button").width + Theme.getSize("topbar_button_icon").width + implicitHeight: Theme.getSize("topheader_button_icon").height + implicitWidth: Theme.getSize("topheader_button").width + Theme.getSize("topheader_button_icon").width Item { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter; width: childrenRect.width - height: Theme.getSize("topbar_button_icon").height + height: Theme.getSize("topheader_button_icon").height Label { id: button_label @@ -210,15 +136,15 @@ QtObject { { if(control.hovered) { - return UM.Theme.getColor("topbar_button_text_hovered"); + return UM.Theme.getColor("topheader_button_text_hovered"); } if(control.checked) { - return UM.Theme.getColor("topbar_button_text_active"); + return UM.Theme.getColor("topheader_button_text_active"); } else { - return UM.Theme.getColor("topbar_button_text_inactive"); + return UM.Theme.getColor("topheader_button_text_inactive"); } } } @@ -231,10 +157,10 @@ QtObject { color: UM.Theme.getColor("text_emphasis") opacity: !control.enabled ? 0.2 : 1.0 source: control.iconSource - width: visible ? Theme.getSize("topbar_button_icon").width : 0 - height: Theme.getSize("topbar_button_icon").height + width: visible ? Theme.getSize("topheader_button_icon").width : 0 + height: Theme.getSize("topheader_button_icon").height - sourceSize: Theme.getSize("topbar_button_icon") + sourceSize: Theme.getSize("topheader_button_icon") } UM.RecolorImage { @@ -245,10 +171,10 @@ QtObject { color: control.overlayColor opacity: !control.enabled ? 0.2 : 1.0 source: control.overlayIconSource - width: visible ? Theme.getSize("topbar_button_icon").width : 0 - height: Theme.getSize("topbar_button_icon").height + width: visible ? Theme.getSize("topheader_button_icon").width : 0 + height: Theme.getSize("topheader_button_icon").height - sourceSize: Theme.getSize("topbar_button_icon") + sourceSize: Theme.getSize("topheader_button_icon") } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 43d892c34c..74644c4de9 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -79,12 +79,11 @@ "border": [127, 127, 127, 255], "secondary": [245, 245, 245, 255], - "topbar_background_color": [255, 255, 255, 0], - "topbar_background_color_monitoring": [255, 255, 255, 255], + "topheader_background": [255, 255, 255, 255], - "topbar_button_text_active": [0, 0, 0, 255], - "topbar_button_text_inactive": [128, 128, 128, 255], - "topbar_button_text_hovered": [0, 0, 0, 255], + "topheader_button_text_active": [0, 0, 0, 255], + "topheader_button_text_inactive": [128, 128, 128, 255], + "topheader_button_text_hovered": [0, 0, 0, 255], "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], @@ -317,6 +316,10 @@ "printer_config_matched": [12, 169, 227, 255], "printer_config_mismatch": [127, 127, 127, 255], + "toolbox_header_button_text_active": [0, 0, 0, 255], + "toolbox_header_button_text_inactive": [128, 128, 128, 255], + "toolbox_header_button_text_hovered": [0, 0, 0, 255], + "favorites_header_bar": [245, 245, 245, 255], "favorites_header_hover": [245, 245, 245, 255], "favorites_header_text": [31, 36, 39, 255], @@ -332,6 +335,13 @@ "sizes": { "window_minimum_size": [70, 50], + "topheader": [0.0, 4.0], + "topheader_logo_right_margin": [3, 0], + "topheader_button": [8, 4], + "topheader_button_icon": [1.2, 1.2], + + "views_selector": [0.0, 4.0], + "default_lining": [0.08, 0.08], "default_arrow": [0.8, 0.8], "logo": [7.6, 1.6], @@ -390,10 +400,6 @@ "printer_status_icon": [1.8, 1.8], "printer_sync_icon": [1.2, 1.2], - "topbar_logo_right_margin": [3, 0], - "topbar_button": [8, 4], - "topbar_button_icon": [1.2, 1.2], - "button_tooltip": [1.0, 1.3], "button_tooltip_arrow": [0.25, 0.25], From 41add97b135482b19b23246793d52d32b992a7d0 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 8 Oct 2018 14:50:13 +0200 Subject: [PATCH 0006/1039] Add Toolbox shortcut to the TopHeader and align the stage tabs to the center. Contributes to CURA-5784. --- resources/qml/Cura.qml | 13 ----------- resources/qml/Skeleton/ApplicationMenu.qml | 27 +++++++++++++++++++--- resources/qml/Skeleton/TopHeader.qml | 26 +++++++++++++++++---- resources/themes/cura-light/theme.json | 1 - 4 files changed, 46 insertions(+), 21 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index b7245b1b65..445bfb6ec9 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -422,19 +422,6 @@ UM.MainWindow } } - UM.ExtensionModel { - id: curaExtensions - } - - // show the plugin browser dialog - Connections - { - target: Cura.Actions.browsePackages - onTriggered: { - curaExtensions.callExtensionMethod("Toolbox", "browsePackages") - } - } - Timer { id: createProfileTimer diff --git a/resources/qml/Skeleton/ApplicationMenu.qml b/resources/qml/Skeleton/ApplicationMenu.qml index 97d8f7ca7e..a8774e8ceb 100644 --- a/resources/qml/Skeleton/ApplicationMenu.qml +++ b/resources/qml/Skeleton/ApplicationMenu.qml @@ -180,7 +180,7 @@ Item Menu { - id: extension_menu + id: extensionMenu title: catalog.i18nc("@title:menu menubar:toplevel","E&xtensions") Instantiator @@ -207,8 +207,8 @@ Item } } - onObjectAdded: extension_menu.insertItem(index, object) - onObjectRemoved: extension_menu.removeItem(object) + onObjectAdded: extensionMenu.insertItem(index, object) + onObjectRemoved: extensionMenu.removeItem(object) } } @@ -241,6 +241,10 @@ Item } } + // ############################################################################################### + // Definition of other components that are linked to the menus + // ############################################################################################### + WorkspaceSummaryDialog { id: saveWorkspaceDialog @@ -263,6 +267,14 @@ Item } } + UM.ExtensionModel { + id: curaExtensions + } + + // ############################################################################################### + // Definition of all the connections + // ############################################################################################### + Connections { target: Cura.Actions.newProject @@ -274,4 +286,13 @@ Item } } } + + // show the plugin browser dialog + Connections + { + target: Cura.Actions.browsePackages + onTriggered: { + curaExtensions.callExtensionMethod("Toolbox", "browsePackages") + } + } } \ No newline at end of file diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index bdc9afd0cc..bf92fbb41d 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -33,15 +33,19 @@ Rectangle Row { - id: stagesMenuContainer - anchors.left: logo.right - anchors.leftMargin: UM.Theme.getSize("topheader_logo_right_margin").width + id: stagesListContainer + + anchors + { + horizontalCenter: parent.horizontalCenter + leftMargin: UM.Theme.getSize("default_margin").width + } spacing: UM.Theme.getSize("default_margin").width // The topheader is dynamically filled with all available stages Repeater { - id: stagesMenu + id: stagesHeader model: UM.StageModel { } @@ -63,4 +67,18 @@ Rectangle ExclusiveGroup { id: topheaderMenuGroup } } + + // Shortcut button to quick access the Toolbox + Button + { + id: toolboxShortcutButton + text: catalog.i18nc("@action:button", "Toolbox") + anchors + { + right: parent.right + leftMargin: UM.Theme.getSize("default_margin").width + } + style: UM.Theme.styles.topheader_tab + action: Cura.Actions.browsePackages + } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 74644c4de9..f5372bbb0f 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -336,7 +336,6 @@ "window_minimum_size": [70, 50], "topheader": [0.0, 4.0], - "topheader_logo_right_margin": [3, 0], "topheader_button": [8, 4], "topheader_button_icon": [1.2, 1.2], From 2ffcf03f43e7c68a57471123a2a221be13d964d1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 8 Oct 2018 17:35:24 +0200 Subject: [PATCH 0007/1039] Create an AvatarImage component that will show the profile image of the user. Still WIP. Create an AccountWidget (WIP) that shows the avatar image and the dropdown menu to manage accounts. Contributes to CURA-5784. --- resources/qml/Skeleton/ApplicationViews.qml | 2 + resources/qml/Skeleton/TopHeader.qml | 17 ++++- .../qml/Skeleton/components/AccountWidget.qml | 71 ++++++++++++++++++ .../qml/Skeleton/components/AvatarImage.qml | 42 +++++++++++ .../{ => components}/OrientationViews.qml | 0 .../themes/cura-light/icons/circle_mask.svg | 64 ++++++++++++++++ .../cura-light/images/avatar_default.png | Bin 0 -> 3115 bytes 7 files changed, 193 insertions(+), 3 deletions(-) create mode 100644 resources/qml/Skeleton/components/AccountWidget.qml create mode 100644 resources/qml/Skeleton/components/AvatarImage.qml rename resources/qml/Skeleton/{ => components}/OrientationViews.qml (100%) create mode 100644 resources/themes/cura-light/icons/circle_mask.svg create mode 100644 resources/themes/cura-light/images/avatar_default.png diff --git a/resources/qml/Skeleton/ApplicationViews.qml b/resources/qml/Skeleton/ApplicationViews.qml index 8e0b6efc0b..25c2ff9983 100644 --- a/resources/qml/Skeleton/ApplicationViews.qml +++ b/resources/qml/Skeleton/ApplicationViews.qml @@ -9,6 +9,8 @@ import QtQuick.Layouts 1.1 import UM 1.4 as UM import Cura 1.0 as Cura +import "components" + // This item contains the views selector, a combobox that is dinamically created from // the list of available Views (packages that create different visualizactions of the // scene. Aside the selector, there is a row of buttons that change the orientation of the view. diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index bf92fbb41d..c2e03aa04b 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -4,11 +4,12 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 import UM 1.4 as UM import Cura 1.0 as Cura +import "components" + Rectangle { id: base @@ -75,10 +76,20 @@ Rectangle text: catalog.i18nc("@action:button", "Toolbox") anchors { - right: parent.right - leftMargin: UM.Theme.getSize("default_margin").width + right: accountWidget.left + rightMargin: UM.Theme.getSize("default_margin").width } style: UM.Theme.styles.topheader_tab action: Cura.Actions.browsePackages } + + AccountWidget + { + id: accountWidget + anchors + { + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + } + } } diff --git a/resources/qml/Skeleton/components/AccountWidget.qml b/resources/qml/Skeleton/components/AccountWidget.qml new file mode 100644 index 0000000000..3d33aeaf27 --- /dev/null +++ b/resources/qml/Skeleton/components/AccountWidget.qml @@ -0,0 +1,71 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.4 as UM + +Item +{ + id: base + height: UM.Theme.getSize("topheader").height + width: UM.Theme.getSize("topheader").height + + AvatarImage + { + id: avatar + width: Math.round(0.8 * parent.width) + height: Math.round(0.8 * parent.height) + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + } + + MouseArea + { + anchors.fill: avatar + onClicked: + { + // Collapse/Expand the dropdown panel + accountManagementPanel.visible = !accountManagementPanel.visible + } + } + + UM.PointingRectangle + { + id: accountManagementPanel + + width: 250 + height: 250 + + anchors + { + top: parent.bottom + topMargin: UM.Theme.getSize("default_margin").height + right: parent.right + } + + target: Qt.point(parent.width / 2, parent.bottom) + arrowSize: UM.Theme.getSize("default_arrow").width + + visible: false + opacity: visible ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 100 } } + + color: UM.Theme.getColor("tool_panel_background") + borderColor: UM.Theme.getColor("lining") + borderWidth: UM.Theme.getSize("default_lining").width + + Loader + { + id: panel + sourceComponent: login + } + } + + Component + { + id: login + Label {text: "HOLA"} + } +} \ No newline at end of file diff --git a/resources/qml/Skeleton/components/AvatarImage.qml b/resources/qml/Skeleton/components/AvatarImage.qml new file mode 100644 index 0000000000..52e2757cbf --- /dev/null +++ b/resources/qml/Skeleton/components/AvatarImage.qml @@ -0,0 +1,42 @@ +// Copyright (c) 2018 Ultimaker B.V. +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtGraphicalEffects 1.0 + +import UM 1.4 as UM + +Item +{ + id: avatar + + Image + { + id: profileImage + source: UM.Theme.getImage("avatar_default") + sourceSize: Qt.size(parent.width, parent.height) + width: parent.width + height: parent.height + fillMode: Image.PreserveAspectCrop + visible: false + } + + UM.RecolorImage + { + id: profileImageMask + source: UM.Theme.getIcon("circle_mask") + sourceSize: Qt.size(parent.width, parent.height) + width: parent.width + height: parent.height + color: UM.Theme.getColor("topheader_background") + visible: false + } + + OpacityMask + { + anchors.fill: profileImage + source: profileImage + maskSource: profileImageMask + cached: true + invert: false + } +} \ No newline at end of file diff --git a/resources/qml/Skeleton/OrientationViews.qml b/resources/qml/Skeleton/components/OrientationViews.qml similarity index 100% rename from resources/qml/Skeleton/OrientationViews.qml rename to resources/qml/Skeleton/components/OrientationViews.qml diff --git a/resources/themes/cura-light/icons/circle_mask.svg b/resources/themes/cura-light/icons/circle_mask.svg new file mode 100644 index 0000000000..d5bfe53a97 --- /dev/null +++ b/resources/themes/cura-light/icons/circle_mask.svg @@ -0,0 +1,64 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/resources/themes/cura-light/images/avatar_default.png b/resources/themes/cura-light/images/avatar_default.png new file mode 100644 index 0000000000000000000000000000000000000000..0c306680f721dba0de73fb7be90fe5c548608692 GIT binary patch literal 3115 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 Date: Tue, 9 Oct 2018 10:50:34 +0300 Subject: [PATCH 0008/1039] JSON settings for "Support Interface Offset" feature --- resources/definitions/fdmprinter.def.json | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 305d841175..2d71187be6 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4336,6 +4336,50 @@ } } }, + "support_interface_offset": + { + "label": "Support Interface Offset", + "description": "Amount of offset applied to the support interface polygons.", + "unit": "mm", + "type": "float", + "minimum_value": "0", + "default_value": 0.0, + "limit_to_extruder": "support_interface_extruder_nr", + "enabled": "support_interface_enable and (support_enable or support_tree_enable)", + "settable_per_mesh": false, + "settable_per_extruder": true, + "children": + { + "support_roof_offset": + { + "label": "Support Roof Offset", + "description": "Amount of offset applied to the roofs of the support.", + "unit": "mm", + "type": "float", + "minimum_value": "0", + "default_value": 0.0, + "value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')", + "limit_to_extruder": "support_roof_extruder_nr", + "enabled": "support_roof_enable and (support_enable or support_tree_enable)", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_bottom_offset": + { + "label": "Support Floor Offset", + "description": "Amount of offset applied to the floors of the support.", + "unit": "mm", + "type": "float", + "minimum_value": "0", + "default_value": 0.0, + "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')", + "limit_to_extruder": "support_bottom_extruder_nr", + "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } + }, "support_fan_enable": { "label": "Fan Speed Override", From 77a1b08f38f67524e36d296dcb93899505f8a9b5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 9 Oct 2018 15:58:13 +0200 Subject: [PATCH 0009/1039] Add the callout panel to the account panel, with the two components that will show up when the user is logged in or when not. Contributes to CURA-5784. --- .../components => Accounts}/AccountWidget.qml | 32 ++++++---- .../components => Accounts}/AvatarImage.qml | 4 +- .../qml/Accounts/GeneralManagementWidget.qml | 23 +++++++ .../qml/Accounts/UserManagementWidget.qml | 33 ++++++++++ resources/qml/Cura.qml | 1 + resources/qml/Skeleton/ApplicationViews.qml | 2 +- resources/qml/Skeleton/TopHeader.qml | 2 +- resources/qml/components/ActionButton.qml | 61 +++++++++++++++++++ .../components/OrientationViews.qml | 0 9 files changed, 143 insertions(+), 15 deletions(-) rename resources/qml/{Skeleton/components => Accounts}/AccountWidget.qml (60%) rename resources/qml/{Skeleton/components => Accounts}/AvatarImage.qml (88%) create mode 100644 resources/qml/Accounts/GeneralManagementWidget.qml create mode 100644 resources/qml/Accounts/UserManagementWidget.qml create mode 100644 resources/qml/components/ActionButton.qml rename resources/qml/{Skeleton => }/components/OrientationViews.qml (100%) diff --git a/resources/qml/Skeleton/components/AccountWidget.qml b/resources/qml/Accounts/AccountWidget.qml similarity index 60% rename from resources/qml/Skeleton/components/AccountWidget.qml rename to resources/qml/Accounts/AccountWidget.qml index 3d33aeaf27..89f9acd8cc 100644 --- a/resources/qml/Skeleton/components/AccountWidget.qml +++ b/resources/qml/Accounts/AccountWidget.qml @@ -5,10 +5,14 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import UM 1.4 as UM +import Cura 1.1 as Cura Item { - id: base + id: accountWidget + property var profile: Cura.API.account.userProfile + property var loggedIn: Cura.API.account.isLoggedIn + property var logoutCallback: Cura.API.account.logout height: UM.Theme.getSize("topheader").height width: UM.Theme.getSize("topheader").height @@ -19,24 +23,21 @@ Item height: Math.round(0.8 * parent.height) anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter + source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") } MouseArea { - anchors.fill: avatar - onClicked: - { - // Collapse/Expand the dropdown panel - accountManagementPanel.visible = !accountManagementPanel.visible - } + anchors.fill: parent + onClicked: accountManagementPanel.visible = !accountManagementPanel.visible // Collapse/Expand the dropdown panel } UM.PointingRectangle { id: accountManagementPanel - width: 250 - height: 250 + width: panel.width + height: panel.height anchors { @@ -56,16 +57,23 @@ Item borderColor: UM.Theme.getColor("lining") borderWidth: UM.Theme.getSize("default_lining").width + // Shows the user management options or general options to create account Loader { id: panel - sourceComponent: login + sourceComponent: loggedIn ? userManagementWidget : generalManagementWidget } } Component { - id: login - Label {text: "HOLA"} + id: userManagementWidget + UserManagementWidget { } + } + + Component + { + id: generalManagementWidget + GeneralManagementWidget { } } } \ No newline at end of file diff --git a/resources/qml/Skeleton/components/AvatarImage.qml b/resources/qml/Accounts/AvatarImage.qml similarity index 88% rename from resources/qml/Skeleton/components/AvatarImage.qml rename to resources/qml/Accounts/AvatarImage.qml index 52e2757cbf..18ac19a45d 100644 --- a/resources/qml/Skeleton/components/AvatarImage.qml +++ b/resources/qml/Accounts/AvatarImage.qml @@ -9,10 +9,12 @@ Item { id: avatar + property var source + Image { id: profileImage - source: UM.Theme.getImage("avatar_default") + source: avatar.source ? avatar.source : UM.Theme.getImage("avatar_default") sourceSize: Qt.size(parent.width, parent.height) width: parent.width height: parent.height diff --git a/resources/qml/Accounts/GeneralManagementWidget.qml b/resources/qml/Accounts/GeneralManagementWidget.qml new file mode 100644 index 0000000000..2bb0c89f98 --- /dev/null +++ b/resources/qml/Accounts/GeneralManagementWidget.qml @@ -0,0 +1,23 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.4 as UM +import Cura 1.1 as Cura + +import "../components" + +Column +{ + ActionButton + { + text: catalog.i18nc("@button", "Sign In") + color: "transparent" + hoverColor: "transparent" + textColor: UM.Theme.getColor("text") + textHoverColor: UM.Theme.getColor("text_link") + onClicked: Cura.API.account.login() + } +} \ No newline at end of file diff --git a/resources/qml/Accounts/UserManagementWidget.qml b/resources/qml/Accounts/UserManagementWidget.qml new file mode 100644 index 0000000000..24f4966679 --- /dev/null +++ b/resources/qml/Accounts/UserManagementWidget.qml @@ -0,0 +1,33 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.4 as UM +import Cura 1.1 as Cura + +import "../components" + +Column +{ + ActionButton + { + text: catalog.i18nc("@button", "Manage Profile") + color: "transparent" + hoverColor: "transparent" + textColor: UM.Theme.getColor("text") + textHoverColor: UM.Theme.getColor("text_link") + onClicked: Qt.openUrlExternally("https://account.ultimaker.com") + } + + ActionButton + { + text: catalog.i18nc("@button", "Sign Out") + color: "transparent" + hoverColor: "transparent" + textColor: UM.Theme.getColor("text") + textHoverColor: UM.Theme.getColor("text_link") + onClicked: Cura.API.account.logout() + } +} \ No newline at end of file diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 445bfb6ec9..16bae8aa3b 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -105,6 +105,7 @@ UM.MainWindow width: parent.width height: parent.height - menu.height - topHeader.height + z: topHeader.z - 1 Keys.forwardTo: menu diff --git a/resources/qml/Skeleton/ApplicationViews.qml b/resources/qml/Skeleton/ApplicationViews.qml index 25c2ff9983..b3d08ab627 100644 --- a/resources/qml/Skeleton/ApplicationViews.qml +++ b/resources/qml/Skeleton/ApplicationViews.qml @@ -9,7 +9,7 @@ import QtQuick.Layouts 1.1 import UM 1.4 as UM import Cura 1.0 as Cura -import "components" +import "../components" // This item contains the views selector, a combobox that is dinamically created from // the list of available Views (packages that create different visualizactions of the diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index c2e03aa04b..fedb00898f 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -8,7 +8,7 @@ import QtQuick.Controls.Styles 1.1 import UM 1.4 as UM import Cura 1.0 as Cura -import "components" +import "../Accounts" Rectangle { diff --git a/resources/qml/components/ActionButton.qml b/resources/qml/components/ActionButton.qml new file mode 100644 index 0000000000..02c279a458 --- /dev/null +++ b/resources/qml/components/ActionButton.qml @@ -0,0 +1,61 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.3 + +import UM 1.1 as UM + +Button +{ + id: button + property alias cursorShape: mouseArea.cursorShape + property var iconSource: "" + property var color: UM.Theme.getColor("primary") + property var hoverColor: UM.Theme.getColor("primary_hover") + property var disabledColor: color + property var textColor: UM.Theme.getColor("button_text") + property var textHoverColor: UM.Theme.getColor("button_text_hover") + property var textDisabledColor: textColor + property var textFont: UM.Theme.getFont("action_button") + + contentItem: Row + { + UM.RecolorImage + { + id: buttonIcon + source: button.iconSource + width: 16 * screenScaleFactor + height: 16 * screenScaleFactor + sourceSize.width: width + sourceSize.height: height + color: button.hovered ? button.textHoverColor : button.textColor + visible: button.iconSource != "" + } + + Label + { + id: buttonText + text: button.text + color: button.enabled ? (button.hovered ? button.textHoverColor : button.textColor): button.textDisabledColor + font: button.textFont + visible: button.text != "" + renderType: Text.NativeRendering + } + } + + background: Rectangle + { + color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor + } + + MouseArea + { + id: mouseArea + anchors.fill: parent + onPressed: mouse.accepted = false + hoverEnabled: true + cursorShape: button.enabled ? (hovered ? Qt.PointingHandCursor : Qt.ArrowCursor) : Qt.ForbiddenCursor + } +} diff --git a/resources/qml/Skeleton/components/OrientationViews.qml b/resources/qml/components/OrientationViews.qml similarity index 100% rename from resources/qml/Skeleton/components/OrientationViews.qml rename to resources/qml/components/OrientationViews.qml From 49e96980f124381410b3e6f34cd1c9c1737178d0 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 9 Oct 2018 17:11:01 +0200 Subject: [PATCH 0010/1039] Store the dialogs in a folder called Dialogs. Contributes to CURA-5784. --- resources/qml/{Accounts => Account}/AccountWidget.qml | 0 resources/qml/{Accounts => Account}/AvatarImage.qml | 0 resources/qml/{Accounts => Account}/GeneralManagementWidget.qml | 0 resources/qml/{Accounts => Account}/UserManagementWidget.qml | 0 resources/qml/Cura.qml | 1 + resources/qml/{ => Dialogs}/AboutDialog.qml | 0 resources/qml/{ => Dialogs}/AddMachineDialog.qml | 0 resources/qml/{ => Dialogs}/AskOpenAsProjectOrModelsDialog.qml | 0 .../qml/{ => Dialogs}/DiscardOrKeepProfileChangesDialog.qml | 0 .../qml/{ => Dialogs}/OpenFilesIncludingProjectsDialog.qml | 0 resources/qml/Menus/RecentFilesMenu.qml | 2 ++ resources/qml/Skeleton/TopHeader.qml | 2 +- 12 files changed, 4 insertions(+), 1 deletion(-) rename resources/qml/{Accounts => Account}/AccountWidget.qml (100%) rename resources/qml/{Accounts => Account}/AvatarImage.qml (100%) rename resources/qml/{Accounts => Account}/GeneralManagementWidget.qml (100%) rename resources/qml/{Accounts => Account}/UserManagementWidget.qml (100%) rename resources/qml/{ => Dialogs}/AboutDialog.qml (100%) rename resources/qml/{ => Dialogs}/AddMachineDialog.qml (100%) rename resources/qml/{ => Dialogs}/AskOpenAsProjectOrModelsDialog.qml (100%) rename resources/qml/{ => Dialogs}/DiscardOrKeepProfileChangesDialog.qml (100%) rename resources/qml/{ => Dialogs}/OpenFilesIncludingProjectsDialog.qml (100%) diff --git a/resources/qml/Accounts/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml similarity index 100% rename from resources/qml/Accounts/AccountWidget.qml rename to resources/qml/Account/AccountWidget.qml diff --git a/resources/qml/Accounts/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml similarity index 100% rename from resources/qml/Accounts/AvatarImage.qml rename to resources/qml/Account/AvatarImage.qml diff --git a/resources/qml/Accounts/GeneralManagementWidget.qml b/resources/qml/Account/GeneralManagementWidget.qml similarity index 100% rename from resources/qml/Accounts/GeneralManagementWidget.qml rename to resources/qml/Account/GeneralManagementWidget.qml diff --git a/resources/qml/Accounts/UserManagementWidget.qml b/resources/qml/Account/UserManagementWidget.qml similarity index 100% rename from resources/qml/Accounts/UserManagementWidget.qml rename to resources/qml/Account/UserManagementWidget.qml diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 16bae8aa3b..2af085fee7 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -10,6 +10,7 @@ import QtQuick.Dialogs 1.2 import UM 1.3 as UM import Cura 1.1 as Cura +import "Dialogs" import "Menus" import "Skeleton" diff --git a/resources/qml/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml similarity index 100% rename from resources/qml/AboutDialog.qml rename to resources/qml/Dialogs/AboutDialog.qml diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/Dialogs/AddMachineDialog.qml similarity index 100% rename from resources/qml/AddMachineDialog.qml rename to resources/qml/Dialogs/AddMachineDialog.qml diff --git a/resources/qml/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/Dialogs/AskOpenAsProjectOrModelsDialog.qml similarity index 100% rename from resources/qml/AskOpenAsProjectOrModelsDialog.qml rename to resources/qml/Dialogs/AskOpenAsProjectOrModelsDialog.qml diff --git a/resources/qml/DiscardOrKeepProfileChangesDialog.qml b/resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml similarity index 100% rename from resources/qml/DiscardOrKeepProfileChangesDialog.qml rename to resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml diff --git a/resources/qml/OpenFilesIncludingProjectsDialog.qml b/resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml similarity index 100% rename from resources/qml/OpenFilesIncludingProjectsDialog.qml rename to resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml diff --git a/resources/qml/Menus/RecentFilesMenu.qml b/resources/qml/Menus/RecentFilesMenu.qml index 12f53fb517..0f1f67b6fa 100644 --- a/resources/qml/Menus/RecentFilesMenu.qml +++ b/resources/qml/Menus/RecentFilesMenu.qml @@ -7,6 +7,8 @@ import QtQuick.Controls 1.1 import UM 1.3 as UM import Cura 1.0 as Cura +import "../Dialogs" + Menu { id: menu diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index fedb00898f..5013c12703 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -8,7 +8,7 @@ import QtQuick.Controls.Styles 1.1 import UM 1.4 as UM import Cura 1.0 as Cura -import "../Accounts" +import "../Account" Rectangle { From 0df7fa1a6cb4e2ac0284fb9300c3025a692bab0a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 10 Oct 2018 11:04:08 +0200 Subject: [PATCH 0011/1039] Add style to the top header tabs. Contributes to CURA-5784. --- resources/qml/Skeleton/TopHeader.qml | 3 +- resources/themes/cura-light/images/logo.svg | 200 +++++++++++++++----- resources/themes/cura-light/styles.qml | 109 ++++------- resources/themes/cura-light/theme.json | 12 +- 4 files changed, 195 insertions(+), 129 deletions(-) diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index 5013c12703..8cb568df4d 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -41,7 +41,6 @@ Rectangle horizontalCenter: parent.horizontalCenter leftMargin: UM.Theme.getSize("default_margin").width } - spacing: UM.Theme.getSize("default_margin").width // The topheader is dynamically filled with all available stages Repeater @@ -52,7 +51,7 @@ Rectangle delegate: Button { - text: model.name + text: model.name.toUpperCase() checkable: true checked: model.active exclusiveGroup: topheaderMenuGroup diff --git a/resources/themes/cura-light/images/logo.svg b/resources/themes/cura-light/images/logo.svg index 5fa5895443..89692f8295 100644 --- a/resources/themes/cura-light/images/logo.svg +++ b/resources/themes/cura-light/images/logo.svg @@ -1,4 +1,6 @@ + + + id="svg8" + inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" + sodipodi:docname="logo.svg"> + + + id="metadata5"> @@ -26,47 +49,124 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index b54d12e07b..ba0350fd4b 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -90,92 +90,57 @@ QtObject { } } - property Component topheader_tab: Component { - ButtonStyle { - background: Item { - implicitHeight: Theme.getSize("topheader_button").height - implicitWidth: Theme.getSize("topheader_button").width + Theme.getSize("topheader_button_icon").width + property Component topheader_tab: Component + { + ButtonStyle + { + // This property will be back-propagated when the width of the label is calculated + property var buttonWidth: 0 - Rectangle { - id: buttonFace; - anchors.fill: parent; + background: Rectangle + { + id: buttonFace + implicitHeight: control.height + implicitWidth: buttonWidth + color: control.checked ? UM.Theme.getColor("topheader_button_background_active") : UM.Theme.getColor("topheader_button_background_inactive") - color: "transparent" - Behavior on color { ColorAnimation { duration: 50; } } - - Rectangle { - id: underline; - - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: parent.bottom - width: Theme.getSize("topheader_button").width + Theme.getSize("topheader_button_icon").width - height: Theme.getSize("sidebar_header_highlight").height - color: control.checked ? UM.Theme.getColor("sidebar_header_highlight") : UM.Theme.getColor("sidebar_header_highlight_hover") - visible: control.hovered || control.checked - } - } + Behavior on color { ColorAnimation { duration: 50 } } } label: Item { - implicitHeight: Theme.getSize("topheader_button_icon").height - implicitWidth: Theme.getSize("topheader_button").width + Theme.getSize("topheader_button_icon").width - Item + id: contents + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + height: control.height + width: buttonLabel.width + 4 * UM.Theme.getSize("default_margin").width + + Label { + id: buttonLabel + text: control.text + anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter; - width: childrenRect.width - height: Theme.getSize("topheader_button_icon").height - Label + font: UM.Theme.getFont("medium_bold") + color: { - id: button_label - text: control.text; - anchors.verticalCenter: parent.verticalCenter; - font: control.checked ? UM.Theme.getFont("large") : UM.Theme.getFont("large_nonbold") - color: + if (control.checked) { - if(control.hovered) + return UM.Theme.getColor("topheader_button_text_active") + } + else + { + if (control.hovered) { - return UM.Theme.getColor("topheader_button_text_hovered"); - } - if(control.checked) - { - return UM.Theme.getColor("topheader_button_text_active"); - } - else - { - return UM.Theme.getColor("topheader_button_text_inactive"); + return UM.Theme.getColor("topheader_button_text_hovered") } + return UM.Theme.getColor("topheader_button_text_inactive") } } - UM.RecolorImage - { - visible: control.iconSource != "" - id: icon - anchors.left: button_label.right - anchors.leftMargin: (icon.visible || overlayIcon.visible) ? Theme.getSize("default_margin").width : 0 - color: UM.Theme.getColor("text_emphasis") - opacity: !control.enabled ? 0.2 : 1.0 - source: control.iconSource - width: visible ? Theme.getSize("topheader_button_icon").width : 0 - height: Theme.getSize("topheader_button_icon").height - - sourceSize: Theme.getSize("topheader_button_icon") - } - UM.RecolorImage - { - id: overlayIcon - anchors.left: button_label.right - anchors.leftMargin: (icon.visible || overlayIcon.visible) ? Theme.getSize("default_margin").width : 0 - visible: control.overlayIconSource != "" && control.iconSource != "" - color: control.overlayColor - opacity: !control.enabled ? 0.2 : 1.0 - source: control.overlayIconSource - width: visible ? Theme.getSize("topheader_button_icon").width : 0 - height: Theme.getSize("topheader_button_icon").height - - sourceSize: Theme.getSize("topheader_button_icon") - } + } + Component.onCompleted: + { + buttonWidth = width } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index f5372bbb0f..e49824ae74 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -79,11 +79,13 @@ "border": [127, 127, 127, 255], "secondary": [245, 245, 245, 255], - "topheader_background": [255, 255, 255, 255], + "topheader_background": [12, 169, 227, 255], - "topheader_button_text_active": [0, 0, 0, 255], - "topheader_button_text_inactive": [128, 128, 128, 255], + "topheader_button_text_active": [12, 169, 227, 255], + "topheader_button_text_inactive": [255, 255, 255, 255], "topheader_button_text_hovered": [0, 0, 0, 255], + "topheader_button_background_active": [255, 255, 255, 255], + "topheader_button_background_inactive": [255, 255, 255, 0], "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], @@ -335,7 +337,7 @@ "sizes": { "window_minimum_size": [70, 50], - "topheader": [0.0, 4.0], + "topheader": [0.0, 4.5], "topheader_button": [8, 4], "topheader_button_icon": [1.2, 1.2], @@ -343,7 +345,7 @@ "default_lining": [0.08, 0.08], "default_arrow": [0.8, 0.8], - "logo": [7.6, 1.6], + "logo": [8, 2.4], "default_margin": [1.0, 1.0], "wide_margin": [2.0, 2.0], From b89c220a4d43e423432af9b4b032de077727fcbf Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 10 Oct 2018 11:17:09 +0200 Subject: [PATCH 0012/1039] Add linings between tabs in the top header. Contributes to CURA-5784. --- resources/themes/cura-light/styles.qml | 34 ++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index ba0350fd4b..b08d9e8728 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -97,14 +97,38 @@ QtObject { // This property will be back-propagated when the width of the label is calculated property var buttonWidth: 0 - background: Rectangle + background: Item { - id: buttonFace implicitHeight: control.height - implicitWidth: buttonWidth - color: control.checked ? UM.Theme.getColor("topheader_button_background_active") : UM.Theme.getColor("topheader_button_background_inactive") + implicitWidth: buttonWidth + 2 * UM.Theme.getSize("default_lining").width - Behavior on color { ColorAnimation { duration: 50 } } + Rectangle + { + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + implicitHeight: parent.height - 2 * UM.Theme.getSize("default_margin").width + implicitWidth: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("topheader_button_background_active") + visible: !control.checked + } + Rectangle + { + id: buttonFace + implicitHeight: parent.height + implicitWidth: parent.width + color: control.checked ? UM.Theme.getColor("topheader_button_background_active") : UM.Theme.getColor("topheader_button_background_inactive") + + Behavior on color { ColorAnimation { duration: 50 } } + } + Rectangle + { + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + implicitHeight: parent.height - 2 * UM.Theme.getSize("default_margin").width + implicitWidth: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("topheader_button_background_active") + visible: !control.checked + } } label: Item From b3fc76092d4b957ac0462910a49b2244a982654b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 10 Oct 2018 14:01:34 +0200 Subject: [PATCH 0013/1039] Removed unused EngineLog --- resources/qml/Actions.qml | 9 ------- resources/qml/Cura.qml | 5 ---- resources/qml/EngineLog.qml | 53 ------------------------------------- 3 files changed, 67 deletions(-) delete mode 100644 resources/qml/EngineLog.qml diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 7d898eed2c..1b1881ab76 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -58,7 +58,6 @@ Item property alias preferences: preferencesAction; - property alias showEngineLog: showEngineLogAction; property alias showProfileFolder: showProfileFolderAction; property alias documentation: documentationAction; property alias reportBug: reportBugAction; @@ -396,14 +395,6 @@ Item shortcut: StandardKey.New } - Action - { - id: showEngineLogAction; - text: catalog.i18nc("@action:inmenu menubar:help","Show Engine &Log..."); - iconName: "view-list-text"; - shortcut: StandardKey.WhatsThis; - } - Action { id: showProfileFolderAction; diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 2af085fee7..0a6e054a5f 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -655,11 +655,6 @@ UM.MainWindow } } - EngineLog - { - id: engineLog; - } - Connections { target: Cura.Actions.showProfileFolder diff --git a/resources/qml/EngineLog.qml b/resources/qml/EngineLog.qml deleted file mode 100644 index 965587b59e..0000000000 --- a/resources/qml/EngineLog.qml +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Layouts 1.1 - -import UM 1.1 as UM - -UM.Dialog -{ - id: dialog; - - //: Engine Log dialog title - title: catalog.i18nc("@title:window","Engine Log"); - - modality: Qt.NonModal; - - TextArea - { - id: textArea - anchors.fill: parent; - - Timer - { - id: updateTimer; - interval: 1000; - running: false; - repeat: true; - onTriggered: textArea.text = CuraApplication.getEngineLog(); - } - UM.I18nCatalog{id: catalog; name:"cura"} - } - - rightButtons: Button - { - //: Close engine log button - text: catalog.i18nc("@action:button","Close"); - onClicked: dialog.visible = false; - } - - onVisibleChanged: - { - if(visible) - { - textArea.text = CuraApplication.getEngineLog(); - updateTimer.start(); - } else - { - updateTimer.stop(); - } - } -} From 1ed3558b9a0489a8c479e30170040ec74ec7cb2b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 10 Oct 2018 14:21:09 +0200 Subject: [PATCH 0014/1039] Move ViewOrientationControl to lower left corner This also renames the component to better reflect what it is (the old name implied that it had something to do with orientation views, wheres it's actually a set of controls to change orientation) CURA-5772 --- resources/qml/Cura.qml | 17 ++++++++++++++++- resources/qml/Skeleton/ApplicationViews.qml | 10 ---------- ...ionViews.qml => ViewOrientationControls.qml} | 3 ++- 3 files changed, 18 insertions(+), 12 deletions(-) rename resources/qml/components/{OrientationViews.qml => ViewOrientationControls.qml} (95%) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 0a6e054a5f..50419067b4 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -13,6 +13,7 @@ import Cura 1.1 as Cura import "Dialogs" import "Menus" import "Skeleton" +import "components" UM.MainWindow { @@ -197,7 +198,7 @@ UM.MainWindow { id: applicationViews - visible: UM.Controller.activeStage.stageId != "MonitorStage" + anchors { top: parent.top @@ -311,6 +312,20 @@ UM.MainWindow bottomMargin: UM.Theme.getSize("default_margin").height } } + + + ViewOrientationControls + { + id: viewOrientationControls + + anchors + { + left: parent.left + margins: UM.Theme.getSize("default_margin").width + + bottom: parent.bottom + } + } } } diff --git a/resources/qml/Skeleton/ApplicationViews.qml b/resources/qml/Skeleton/ApplicationViews.qml index b3d08ab627..94315a73fb 100644 --- a/resources/qml/Skeleton/ApplicationViews.qml +++ b/resources/qml/Skeleton/ApplicationViews.qml @@ -20,16 +20,6 @@ Item height: UM.Theme.getSize("views_selector").height - OrientationViews - { - id: orientationViews - - anchors { - verticalCenter: parent.verticalCenter - right: viewModeButton.left - rightMargin: UM.Theme.getSize("default_margin").width - } - } ComboBox { diff --git a/resources/qml/components/OrientationViews.qml b/resources/qml/components/ViewOrientationControls.qml similarity index 95% rename from resources/qml/components/OrientationViews.qml rename to resources/qml/components/ViewOrientationControls.qml index d1b370ed71..bf56ef2997 100644 --- a/resources/qml/components/OrientationViews.qml +++ b/resources/qml/components/ViewOrientationControls.qml @@ -13,7 +13,8 @@ Row id: viewOrientationControl spacing: 2 * screenScaleFactor - + height: childrenRect.height + width: childrenRect.width // #1 3d view Button { From 5befc0b256f93a4ad5d0199eccfcd5a023aa2be9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 10 Oct 2018 16:34:55 +0200 Subject: [PATCH 0015/1039] Restyle the dropdown of the accounts, with information about the user and available operations that can be done when the user is logged in or not. Contributes to CURA-5784. --- resources/qml/Account/AccountDetails.qml | 77 +++++++++++++++++++ resources/qml/Account/AccountWidget.qml | 23 ++---- resources/qml/Account/AvatarImage.qml | 12 +++ .../qml/Account/GeneralManagementWidget.qml | 23 ------ resources/qml/Account/GeneralOperations.qml | 35 +++++++++ .../qml/Account/UserManagementWidget.qml | 33 -------- resources/qml/Account/UserOperations.qml | 35 +++++++++ resources/qml/Skeleton/TopHeader.qml | 24 +++++- resources/qml/components/ActionButton.qml | 4 + .../cura-light/icons/circle_outline.svg | 64 +++++++++++++++ resources/themes/cura-light/styles.qml | 8 ++ resources/themes/cura-light/theme.json | 5 ++ 12 files changed, 267 insertions(+), 76 deletions(-) create mode 100644 resources/qml/Account/AccountDetails.qml delete mode 100644 resources/qml/Account/GeneralManagementWidget.qml create mode 100644 resources/qml/Account/GeneralOperations.qml delete mode 100644 resources/qml/Account/UserManagementWidget.qml create mode 100644 resources/qml/Account/UserOperations.qml create mode 100644 resources/themes/cura-light/icons/circle_outline.svg diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml new file mode 100644 index 0000000000..ab1ccc15df --- /dev/null +++ b/resources/qml/Account/AccountDetails.qml @@ -0,0 +1,77 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 + +import UM 1.4 as UM +import Cura 1.1 as Cura + +import "../components" + +Column +{ + property var profile: null + property var loggedIn: false + + padding: 2 * UM.Theme.getSize("default_margin").height + spacing: 2 * UM.Theme.getSize("default_margin").height + + AvatarImage + { + id: avatar + width: 75 * screenScaleFactor + height: 75 * screenScaleFactor + anchors.horizontalCenter: parent.horizontalCenter + source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") + outlineColor: loggedIn ? UM.Theme.getColor("account_widget_ouline_active") : UM.Theme.getColor("account_widget_ouline_inactive") + } + + Label + { + id: message + anchors.horizontalCenter: parent.horizontalCenter + visible: !loggedIn + text: catalog.i18nc("@label", "Please login or create an account to 
enjoy all features of Ultimaker Cura") + } + + Column + { + id: userInformation + anchors.horizontalCenter: parent.horizontalCenter + visible: loggedIn + + Label + { + anchors.horizontalCenter: parent.horizontalCenter + text: loggedIn ? profile["username"] : "" + font: UM.Theme.getFont("large") + } + + Label + { + anchors.horizontalCenter: parent.horizontalCenter + text: "email.address@hardcoded.is" + font: UM.Theme.getFont("default") + } + } + + Loader + { + id: accountEntryPoints + anchors.horizontalCenter: parent.horizontalCenter + sourceComponent: loggedIn ? userOperations : generalOperations + } + + Component + { + id: userOperations + UserOperations { } + } + + Component + { + id: generalOperations + GeneralOperations { } + } +} \ No newline at end of file diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index 89f9acd8cc..1d9541de2c 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -1,8 +1,8 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 1.1 +import QtQuick 2.7 +import QtQuick.Controls 2.1 import UM 1.4 as UM import Cura 1.1 as Cura @@ -12,7 +12,6 @@ Item id: accountWidget property var profile: Cura.API.account.userProfile property var loggedIn: Cura.API.account.isLoggedIn - property var logoutCallback: Cura.API.account.logout height: UM.Theme.getSize("topheader").height width: UM.Theme.getSize("topheader").height @@ -24,6 +23,7 @@ Item anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") + outlineColor: loggedIn ? UM.Theme.getColor("account_widget_ouline_active") : UM.Theme.getColor("account_widget_ouline_inactive") } MouseArea @@ -58,22 +58,11 @@ Item borderWidth: UM.Theme.getSize("default_lining").width // Shows the user management options or general options to create account - Loader + AccountDetails { id: panel - sourceComponent: loggedIn ? userManagementWidget : generalManagementWidget + profile: Cura.API.account.userProfile + loggedIn: Cura.API.account.isLoggedIn } } - - Component - { - id: userManagementWidget - UserManagementWidget { } - } - - Component - { - id: generalManagementWidget - GeneralManagementWidget { } - } } \ No newline at end of file diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index 18ac19a45d..96c3cd2330 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -10,6 +10,8 @@ Item id: avatar property var source + property var fallbackSource: UM.Theme.getImage("avatar_default") + property var outlineColor: UM.Theme.getColor("account_widget_ouline_active") Image { @@ -41,4 +43,14 @@ Item cached: true invert: false } + + UM.RecolorImage + { + id: profileImageOutline + source: UM.Theme.getIcon("circle_outline") + sourceSize: Qt.size(parent.width, parent.height) + width: parent.width + height: parent.height + color: avatar.outlineColor + } } \ No newline at end of file diff --git a/resources/qml/Account/GeneralManagementWidget.qml b/resources/qml/Account/GeneralManagementWidget.qml deleted file mode 100644 index 2bb0c89f98..0000000000 --- a/resources/qml/Account/GeneralManagementWidget.qml +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 1.1 - -import UM 1.4 as UM -import Cura 1.1 as Cura - -import "../components" - -Column -{ - ActionButton - { - text: catalog.i18nc("@button", "Sign In") - color: "transparent" - hoverColor: "transparent" - textColor: UM.Theme.getColor("text") - textHoverColor: UM.Theme.getColor("text_link") - onClicked: Cura.API.account.login() - } -} \ No newline at end of file diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml new file mode 100644 index 0000000000..d224de44bb --- /dev/null +++ b/resources/qml/Account/GeneralOperations.qml @@ -0,0 +1,35 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.4 as UM +import Cura 1.1 as Cura + +import "../components" + +Row +{ + spacing: UM.Theme.getSize("default_margin").width + + ActionButton + { + width: UM.Theme.getSize("account_button").width + height: UM.Theme.getSize("account_button").height + text: catalog.i18nc("@button", "Create account") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("text_link") + textHoverColor: UM.Theme.getColor("text") + onClicked: Qt.openUrlExternally("https://account.ultimaker.com") + } + + ActionButton + { + width: UM.Theme.getSize("account_button").width + height: UM.Theme.getSize("account_button").height + text: catalog.i18nc("@button", "Login") + onClicked: Cura.API.account.login() + } +} \ No newline at end of file diff --git a/resources/qml/Account/UserManagementWidget.qml b/resources/qml/Account/UserManagementWidget.qml deleted file mode 100644 index 24f4966679..0000000000 --- a/resources/qml/Account/UserManagementWidget.qml +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 1.1 - -import UM 1.4 as UM -import Cura 1.1 as Cura - -import "../components" - -Column -{ - ActionButton - { - text: catalog.i18nc("@button", "Manage Profile") - color: "transparent" - hoverColor: "transparent" - textColor: UM.Theme.getColor("text") - textHoverColor: UM.Theme.getColor("text_link") - onClicked: Qt.openUrlExternally("https://account.ultimaker.com") - } - - ActionButton - { - text: catalog.i18nc("@button", "Sign Out") - color: "transparent" - hoverColor: "transparent" - textColor: UM.Theme.getColor("text") - textHoverColor: UM.Theme.getColor("text_link") - onClicked: Cura.API.account.logout() - } -} \ No newline at end of file diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml new file mode 100644 index 0000000000..1704254ed3 --- /dev/null +++ b/resources/qml/Account/UserOperations.qml @@ -0,0 +1,35 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.4 as UM +import Cura 1.1 as Cura + +import "../components" + +Row +{ + spacing: UM.Theme.getSize("default_margin").width + + ActionButton + { + width: UM.Theme.getSize("account_button").width + height: UM.Theme.getSize("account_button").height + text: catalog.i18nc("@button", "Manage account") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("text_link") + textHoverColor: UM.Theme.getColor("text") + onClicked: Qt.openUrlExternally("https://account.ultimaker.com") + } + + ActionButton + { + width: UM.Theme.getSize("account_button").width + height: UM.Theme.getSize("account_button").height + text: catalog.i18nc("@button", "Logout") + onClicked: Cura.API.account.logout() + } +} \ No newline at end of file diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index 8cb568df4d..c24fe86af0 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -1,13 +1,14 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.7 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import UM 1.4 as UM import Cura 1.0 as Cura +import "../components" import "../Account" Rectangle @@ -72,13 +73,30 @@ Rectangle Button { id: toolboxShortcutButton - text: catalog.i18nc("@action:button", "Toolbox") anchors { right: accountWidget.left rightMargin: UM.Theme.getSize("default_margin").width + verticalCenter: parent.verticalCenter + } + style: ButtonStyle + { + background: Rectangle + { + color: control.hovered ? UM.Theme.getColor("secondary") : UM.Theme.getColor("topheader_button_background_active") + radius: 2 * screenScaleFactor + } + + label: Label + { + text: catalog.i18nc("@action:button", "Toolbox") + color: UM.Theme.getColor("topheader_button_text_active") + font: UM.Theme.getFont("action_button") + renderType: Text.NativeRendering + anchors.verticalCenter: control.verticalCenter + } + } - style: UM.Theme.styles.topheader_tab action: Cura.Actions.browsePackages } diff --git a/resources/qml/components/ActionButton.qml b/resources/qml/components/ActionButton.qml index 02c279a458..b49e3f1dcb 100644 --- a/resources/qml/components/ActionButton.qml +++ b/resources/qml/components/ActionButton.qml @@ -19,6 +19,7 @@ Button property var textHoverColor: UM.Theme.getColor("button_text_hover") property var textDisabledColor: textColor property var textFont: UM.Theme.getFont("action_button") + property var cornerRadius: 2 * screenScaleFactor contentItem: Row { @@ -32,6 +33,7 @@ Button sourceSize.height: height color: button.hovered ? button.textHoverColor : button.textColor visible: button.iconSource != "" + anchors.verticalCenter: parent.verticalCenter } Label @@ -42,12 +44,14 @@ Button font: button.textFont visible: button.text != "" renderType: Text.NativeRendering + anchors.verticalCenter: parent.verticalCenter } } background: Rectangle { color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor + radius: cornerRadius } MouseArea diff --git a/resources/themes/cura-light/icons/circle_outline.svg b/resources/themes/cura-light/icons/circle_outline.svg new file mode 100644 index 0000000000..4d0b0e4eb0 --- /dev/null +++ b/resources/themes/cura-light/icons/circle_outline.svg @@ -0,0 +1,64 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index b08d9e8728..939399efc8 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -90,6 +90,14 @@ QtObject { } } + property Component action_button: Component + { + ButtonStyle + { + + } + } + property Component topheader_tab: Component { ButtonStyle diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e49824ae74..285d2724a0 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -87,6 +87,9 @@ "topheader_button_background_active": [255, 255, 255, 255], "topheader_button_background_inactive": [255, 255, 255, 0], + "account_widget_ouline_active": [9, 140, 188, 255], + "account_widget_ouline_inactive": [175, 175, 175, 255], + "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], "text_link": [12, 169, 227, 255], @@ -341,6 +344,8 @@ "topheader_button": [8, 4], "topheader_button_icon": [1.2, 1.2], + "account_button": [12, 3], + "views_selector": [0.0, 4.0], "default_lining": [0.08, 0.08], From 85436c1469142301ea02cc647df70e42a9eaba7c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 11 Oct 2018 10:29:59 +0200 Subject: [PATCH 0016/1039] Move machine selector to own component & new location This also simplifies & cleans up the actually used QML CURA-5772 --- resources/qml/Cura.qml | 8 ++++ resources/qml/PrepareSidebar.qml | 39 ++------------- .../MachineAndConfigurationSelector.qml | 48 +++++++++++++++++++ 3 files changed, 60 insertions(+), 35 deletions(-) create mode 100644 resources/qml/components/MachineAndConfigurationSelector.qml diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 50419067b4..f040469916 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -169,6 +169,14 @@ UM.MainWindow action: Cura.Actions.open } + MachineAndConfigurationSelector + { + anchors.left: openFileButton.right + //anchors.right: sidebar.left + anchors.leftMargin: UM.Theme.getSize("default_margin").height + anchors.top: openFileButton.top + } + Toolbar { id: toolbar diff --git a/resources/qml/PrepareSidebar.qml b/resources/qml/PrepareSidebar.qml index fe0fb033f7..a44f3fad7d 100644 --- a/resources/qml/PrepareSidebar.qml +++ b/resources/qml/PrepareSidebar.qml @@ -9,6 +9,8 @@ import UM 1.2 as UM import Cura 1.0 as Cura import "Menus" import "Menus/ConfigurationMenu" +import "components" + Rectangle { @@ -19,7 +21,6 @@ Rectangle property bool hideView: Cura.MachineManager.activeMachineName == "" // Is there an output device for this printer? - property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" property bool printerConnected: Cura.MachineManager.printerConnected property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null @@ -85,41 +86,11 @@ Rectangle } } - MachineSelection - { - id: machineSelection - width: base.width - configSelection.width - separator.width - height: UM.Theme.getSize("sidebar_header").height - anchors.top: base.top - anchors.left: parent.left - } - - Rectangle - { - id: separator - visible: configSelection.visible - width: visible ? Math.round(UM.Theme.getSize("sidebar_lining_thin").height / 2) : 0 - height: UM.Theme.getSize("sidebar_header").height - color: UM.Theme.getColor("sidebar_lining_thin") - anchors.left: machineSelection.right - } - - ConfigurationSelection - { - id: configSelection - visible: isNetworkPrinter && printerConnected - width: visible ? Math.round(base.width * 0.15) : 0 - height: UM.Theme.getSize("sidebar_header").height - anchors.top: base.top - anchors.right: parent.right - panelWidth: base.width - } - SidebarHeader { id: header width: parent.width visible: !hideSettings && (machineExtruderCount.properties.value > 1 || Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariants) - anchors.top: machineSelection.bottom + anchors.top: parent.top onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() @@ -160,10 +131,9 @@ Rectangle } // Settings mode selection toggle - Rectangle + Item { id: settingsModeSelection - color: "transparent" width: Math.round(parent.width * 0.55) height: UM.Theme.getSize("sidebar_header_mode_toggle").height @@ -328,7 +298,6 @@ Rectangle anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height height: timeDetails.height + costSpec.height width: base.width - (saveButton.buttonRowWidth + UM.Theme.getSize("sidebar_margin").width) - clip: true Label { diff --git a/resources/qml/components/MachineAndConfigurationSelector.qml b/resources/qml/components/MachineAndConfigurationSelector.qml new file mode 100644 index 0000000000..5b919c42d8 --- /dev/null +++ b/resources/qml/components/MachineAndConfigurationSelector.qml @@ -0,0 +1,48 @@ +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 + +import UM 1.2 as UM +import Cura 1.0 as Cura +import "../Menus" +import "../Menus/ConfigurationMenu" +import ".." + +Rectangle +{ + color: UM.Theme.getColor("sidebar_lining_thin") + + implicitHeight: UM.Theme.getSize("sidebar_header").height + implicitWidth: UM.Theme.getSize("sidebar").width + + property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" + property bool printerConnected: Cura.MachineManager.printerConnected + + MachineSelection + { + id: machineSelection + anchors + { + left: parent.left + right: configSelection.left + rightMargin: UM.Theme.getSize("sidebar_lining_thin").height / 2 + top: parent.top + bottom: parent.bottom + } + } + + ConfigurationSelection + { + id: configSelection + visible: isNetworkPrinter && printerConnected + width: visible ? Math.round(parent.width * 0.15) : 0 + panelWidth: parent.width + anchors + { + right: parent.right + top: parent.top + bottom: parent.bottom + } + } +} \ No newline at end of file From cc6d5617eefe9431012bbf98496743c4c11723c4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 11 Oct 2018 10:41:29 +0200 Subject: [PATCH 0017/1039] Update documentation & typing CURA-5772 --- cura/Stages/CuraStage.py | 19 ++++++++++++++----- resources/qml/PrepareSidebar.qml | 6 ++++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/cura/Stages/CuraStage.py b/cura/Stages/CuraStage.py index b2f6d61799..774a5a6e76 100644 --- a/cura/Stages/CuraStage.py +++ b/cura/Stages/CuraStage.py @@ -5,19 +5,28 @@ from PyQt5.QtCore import pyqtProperty, QUrl from UM.Stage import Stage +# Since Cura has a few pre-defined "space claims" for the locations of certain components, we've provided some structure +# to indicate this. +# * The StageMenuComponent is the horizontal area below the stage bar. This should be used to show stage specific +# buttons and elements. This component will be drawn over the bar & main component. +# * The MainComponent is the component that will be drawn starting from the bottom of the stageBar and fills the rest +# of the screen. class CuraStage(Stage): - - def __init__(self, parent = None): + def __init__(self, parent = None) -> None: super().__init__(parent) @pyqtProperty(str, constant = True) - def stageId(self): + def stageId(self) -> str: return self.getPluginId() @pyqtProperty(QUrl, constant = True) - def mainComponent(self): + def mainComponent(self) -> QUrl: return self.getDisplayComponent("main") @pyqtProperty(QUrl, constant = True) - def sidebarComponent(self): + def sidebarComponent(self) -> QUrl: return self.getDisplayComponent("sidebar") + + @pyqtProperty(QUrl, constant=True) + def stageMenuComponent(self) -> QUrl: + return self.getDisplayComponent("menu") \ No newline at end of file diff --git a/resources/qml/PrepareSidebar.qml b/resources/qml/PrepareSidebar.qml index a44f3fad7d..7c99e6e145 100644 --- a/resources/qml/PrepareSidebar.qml +++ b/resources/qml/PrepareSidebar.qml @@ -86,7 +86,8 @@ Rectangle } } - SidebarHeader { + SidebarHeader + { id: header width: parent.width visible: !hideSettings && (machineExtruderCount.properties.value > 1 || Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariants) @@ -96,7 +97,8 @@ Rectangle onHideTooltip: base.hideTooltip() } - Rectangle { + Rectangle + { id: headerSeparator width: parent.width visible: settingsModeSelection.visible && header.visible From f18d490ca1037296b4c507481058f1372cbe2ca3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 11 Oct 2018 13:08:57 +0200 Subject: [PATCH 0018/1039] Move extruderIcon to it's own location This also simplifies the qml that actually handles the display CURA-5772 --- resources/qml/ExtruderIcon.qml | 56 ++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 resources/qml/ExtruderIcon.qml diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml new file mode 100644 index 0000000000..2c2edcb492 --- /dev/null +++ b/resources/qml/ExtruderIcon.qml @@ -0,0 +1,56 @@ +import QtQuick 2.7 +import QtQuick.Controls 1.1 +import UM 1.2 as UM + +Item +{ + + id: extruderIconItem + + implicitWidth: UM.Theme.getSize("button").width + implicitHeight: implicitWidth + + property bool checked: true + property alias material_color: materialColorCircle.color + property alias text_color: extruderNumberText.color + + UM.RecolorImage + { + id: mainCircle + anchors.fill: parent + + sourceSize.width: parent.width + sourceSize.height: parent.width + source: UM.Theme.getIcon("extruder_button") + color: extruderNumberText.color + } + + Label + { + id: extruderNumberText + anchors.centerIn: parent + text: index + 1; + font: UM.Theme.getFont("default_bold") + } + + // Material colour circle + // Only draw the filling colour of the material inside the SVG border. + Rectangle + { + id: materialColorCircle + + anchors + { + right: parent.right + } + + width: Math.round(parent.width * 0.35) + height: Math.round(parent.height * 0.35) + radius: Math.round(width / 2) + + border.width: 1 + border.color: UM.Theme.getColor("extruder_button_material_border") + + opacity: !extruderIconItem.checked ? 0.6 : 1.0 + } +} \ No newline at end of file From a861b88de11ed317f32523e233eb0a3a0252aca9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 11 Oct 2018 15:03:37 +0200 Subject: [PATCH 0019/1039] Move most of the sidebarHeader items to materialAndVariantSelector CURA-5772 --- resources/qml/MaterialAndVariantSelector.qml | 349 +++++++++++++++++++ 1 file changed, 349 insertions(+) create mode 100644 resources/qml/MaterialAndVariantSelector.qml diff --git a/resources/qml/MaterialAndVariantSelector.qml b/resources/qml/MaterialAndVariantSelector.qml new file mode 100644 index 0000000000..3d2ef2e98f --- /dev/null +++ b/resources/qml/MaterialAndVariantSelector.qml @@ -0,0 +1,349 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +import "Menus" // TODO: This needs to be fixed in the qmldir! + +Rectangle +{ + implicitWidth: parent.width + implicitHeight: parent.height + + id: base + + color: "purple" + // Height has an extra 2x margin for the top & bottom margin. + height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width + + Cura.ExtrudersModel { id: extrudersModel; } + + ListView + { + // Horizontal list that shows the extruders + id: extrudersList + visible: extrudersModel.items.length > 1 + property var index: 0 + + height: UM.Theme.getSize("sidebar_header_mode_tabs").height + boundsBehavior: Flickable.StopAtBounds + + anchors + { + left: parent.left + right: parent.right + top: parent.top + margins: UM.Theme.getSize("sidebar_margin").width + } + + ExclusiveGroup { id: extruderMenuGroup; } + + orientation: ListView.Horizontal + + model: extrudersModel + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + } + + delegate: Button + { + height: parent.height + width: Math.round(ListView.view.width / extrudersModel.rowCount()) + + text: model.name + tooltip: model.name + exclusiveGroup: extruderMenuGroup + checked: Cura.ExtruderManager.activeExtruderIndex == index + + property bool extruder_enabled: true + + MouseArea // TODO; This really should be fixed. It makes absolutely no sense to have a button AND a mouse area. + { + anchors.fill: parent + acceptedButtons: Qt.LeftButton | Qt.RightButton + onClicked: { + switch (mouse.button) { + case Qt.LeftButton: + extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled + if (extruder_enabled) + { + forceActiveFocus(); // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + Cura.ExtruderManager.setActiveExtruderIndex(index); + } + break; + case Qt.RightButton: + extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled + extruderMenu.popup(); + break; + } + + } + } + + Menu + { + id: extruderMenu + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Enable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) + visible: !extruder_enabled // using an intermediate variable prevents an empty popup that occured now and then + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Disable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) + visible: extruder_enabled + enabled: Cura.MachineManager.numberExtrudersEnabled > 1 + } + } + + style: ButtonStyle + { + background: Rectangle + { + anchors.fill: parent + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: { + if (Cura.MachineManager.getExtruder(index).isEnabled) + { + if(control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border") + } + return UM.Theme.getColor("action_button_border") + } + return UM.Theme.getColor("action_button_disabled_border") + } + color: { + if (Cura.MachineManager.getExtruder(index).isEnabled) + { + if(control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered") + } + return UM.Theme.getColor("action_button") + } + return UM.Theme.getColor("action_button_disabled") + } + Behavior on color { ColorAnimation { duration: 50; } } + + Item + { + id: extruderButtonFace + anchors.centerIn: parent + width: childrenRect.width + + Label + { + // Static text that holds the "Extruder" label + id: extruderStaticText + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + + color: { + if (Cura.MachineManager.getExtruder(index).isEnabled) + { + if(control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text") + } + return UM.Theme.getColor("action_button_text") + } + return UM.Theme.getColor("action_button_disabled_text") + } + + font: UM.Theme.getFont("large_nonbold") + text: catalog.i18nc("@label", "Extruder") + visible: width < (control.width - extruderIconItem.width - UM.Theme.getSize("default_margin").width) + elide: Text.ElideRight + } + + ExtruderIcon + { + // Round icon with the extruder number and material color indicator. + anchors.verticalCenter: parent.verticalCenter + anchors.left: extruderStaticText.right + width: control.height - Math.round(UM.Theme.getSize("default_margin").width / 2) + height: width + + checked: control.checked + material_color: model.color + text_color: extruderStaticText.color + } + } + } + + label: Item {} + } + } + } + + Item + { + id: materialRow + height: UM.Theme.getSize("sidebar_setup").height + visible: Cura.MachineManager.hasMaterials + + anchors + { + left: parent.left + right: parent.right + top: extrudersList.bottom + margins: UM.Theme.getSize("sidebar_margin").width + } + + Label + { + id: materialLabel + text: catalog.i18nc("@label", "Material"); + width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) + height: parent.height + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + } + + ToolButton + { + id: materialSelection + + property var activeExtruder: Cura.MachineManager.activeStack + property var hasActiveExtruder: activeExtruder != null + property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" + + text: currentRootMaterialName + tooltip: currentRootMaterialName + visible: Cura.MachineManager.hasMaterials + + enabled: !extrudersList.visible || Cura.ExtruderManager.activeExtruderIndex > -1 + + height: UM.Theme.getSize("setting_control").height + width: Math.round(parent.width * 0.7) + UM.Theme.getSize("sidebar_margin").width + anchors.right: parent.right + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + menu: MaterialMenu + { + extruderIndex: Cura.ExtruderManager.activeExtruderIndex + } + + property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true + property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported + } + } + + Item + { + id: variantRow + height: UM.Theme.getSize("sidebar_setup").height + visible: Cura.MachineManager.hasVariants + + anchors + { + left: parent.left + right: parent.right + top: materialRow.bottom + margins: UM.Theme.getSize("sidebar_margin").width + } + + Label + { + id: variantLabel + text: Cura.MachineManager.activeDefinitionVariantsName; + width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) + height: parent.height + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + } + + ToolButton + { + id: variantSelection + text: Cura.MachineManager.activeVariantName + tooltip: Cura.MachineManager.activeVariantName; + visible: Cura.MachineManager.hasVariants + + height: UM.Theme.getSize("setting_control").height + width: Math.round(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) + anchors.right: parent.right + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + + menu: NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } + } + } + + Item + { + id: materialCompatibilityLink + height: UM.Theme.getSize("sidebar_setup").height + + anchors.right: parent.right + anchors.top: variantRow.bottom + anchors.margins: UM.Theme.getSize("sidebar_margin").width + UM.RecolorImage + { + id: warningImage + + anchors.right: materialInfoLabel.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + source: UM.Theme.getIcon("warning") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + + sourceSize.width: width + sourceSize.height: height + + color: UM.Theme.getColor("material_compatibility_warning") + + visible: !Cura.MachineManager.isCurrentSetupSupported + } + + Label + { + id: materialInfoLabel + wrapMode: Text.WordWrap + text: "" + catalog.i18nc("@label", "Check compatibility") + "" + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + linkColor: UM.Theme.getColor("text_link") + + verticalAlignment: Text.AlignTop + + anchors.right: parent.right + + MouseArea + { + anchors.fill: parent + + onClicked: { + // open the material URL with web browser + Qt.openUrlExternally("https://ultimaker.com/incoming-links/cura/material-compatibilty"); + } + } + } + } + +} \ No newline at end of file From 9ab0fdfb68e12576977e226103c88f428f4cbce3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 11 Oct 2018 15:03:37 +0200 Subject: [PATCH 0020/1039] Move most of the sidebarHeader items to materialAndVariantSelector CURA-5772 --- resources/qml/MaterialAndVariantSelector.qml | 349 +++++++++++++++++++ 1 file changed, 349 insertions(+) create mode 100644 resources/qml/MaterialAndVariantSelector.qml diff --git a/resources/qml/MaterialAndVariantSelector.qml b/resources/qml/MaterialAndVariantSelector.qml new file mode 100644 index 0000000000..8acaba9ec7 --- /dev/null +++ b/resources/qml/MaterialAndVariantSelector.qml @@ -0,0 +1,349 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +import "Menus" // TODO: This needs to be fixed in the qmldir! + +Rectangle +{ + implicitWidth: parent.width + implicitHeight: parent.height + + id: base + color: UM.Theme.getColor("sidebar") + + // Height has an extra 2x margin for the top & bottom margin. + height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width + + Cura.ExtrudersModel { id: extrudersModel; } + + ListView + { + // Horizontal list that shows the extruders + id: extrudersList + visible: extrudersModel.items.length > 1 + property var index: 0 + + height: UM.Theme.getSize("sidebar_header_mode_tabs").height + boundsBehavior: Flickable.StopAtBounds + + anchors + { + left: parent.left + right: parent.right + top: parent.top + margins: UM.Theme.getSize("sidebar_margin").width + } + + ExclusiveGroup { id: extruderMenuGroup; } + + orientation: ListView.Horizontal + + model: extrudersModel + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + } + + delegate: Button + { + height: parent.height + width: Math.round(ListView.view.width / extrudersModel.rowCount()) + + text: model.name + tooltip: model.name + exclusiveGroup: extruderMenuGroup + checked: Cura.ExtruderManager.activeExtruderIndex == index + + property bool extruder_enabled: true + + MouseArea // TODO; This really should be fixed. It makes absolutely no sense to have a button AND a mouse area. + { + anchors.fill: parent + acceptedButtons: Qt.LeftButton | Qt.RightButton + onClicked: { + switch (mouse.button) { + case Qt.LeftButton: + extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled + if (extruder_enabled) + { + forceActiveFocus(); // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + Cura.ExtruderManager.setActiveExtruderIndex(index); + } + break; + case Qt.RightButton: + extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled + extruderMenu.popup(); + break; + } + + } + } + + Menu + { + id: extruderMenu + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Enable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) + visible: !extruder_enabled // using an intermediate variable prevents an empty popup that occured now and then + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Disable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) + visible: extruder_enabled + enabled: Cura.MachineManager.numberExtrudersEnabled > 1 + } + } + + style: ButtonStyle + { + background: Rectangle + { + anchors.fill: parent + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: { + if (Cura.MachineManager.getExtruder(index).isEnabled) + { + if(control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border") + } + return UM.Theme.getColor("action_button_border") + } + return UM.Theme.getColor("action_button_disabled_border") + } + color: { + if (Cura.MachineManager.getExtruder(index).isEnabled) + { + if(control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered") + } + return UM.Theme.getColor("action_button") + } + return UM.Theme.getColor("action_button_disabled") + } + Behavior on color { ColorAnimation { duration: 50; } } + + Item + { + id: extruderButtonFace + anchors.centerIn: parent + width: childrenRect.width + + Label + { + // Static text that holds the "Extruder" label + id: extruderStaticText + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + + color: { + if (Cura.MachineManager.getExtruder(index).isEnabled) + { + if(control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text") + } + return UM.Theme.getColor("action_button_text") + } + return UM.Theme.getColor("action_button_disabled_text") + } + + font: UM.Theme.getFont("large_nonbold") + text: catalog.i18nc("@label", "Extruder") + visible: width < (control.width - extruderIconItem.width - UM.Theme.getSize("default_margin").width) + elide: Text.ElideRight + } + + ExtruderIcon + { + // Round icon with the extruder number and material color indicator. + anchors.verticalCenter: parent.verticalCenter + anchors.left: extruderStaticText.right + width: control.height - Math.round(UM.Theme.getSize("default_margin").width / 2) + height: width + + checked: control.checked + material_color: model.color + text_color: extruderStaticText.color + } + } + } + + label: Item {} + } + } + } + + Item + { + id: materialRow + height: UM.Theme.getSize("sidebar_setup").height + visible: Cura.MachineManager.hasMaterials + + anchors + { + left: parent.left + right: parent.right + top: extrudersList.bottom + margins: UM.Theme.getSize("sidebar_margin").width + } + + Label + { + id: materialLabel + text: catalog.i18nc("@label", "Material"); + width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) + height: parent.height + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + } + + ToolButton + { + id: materialSelection + + property var activeExtruder: Cura.MachineManager.activeStack + property var hasActiveExtruder: activeExtruder != null + property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" + + text: currentRootMaterialName + tooltip: currentRootMaterialName + visible: Cura.MachineManager.hasMaterials + + enabled: !extrudersList.visible || Cura.ExtruderManager.activeExtruderIndex > -1 + + height: UM.Theme.getSize("setting_control").height + width: Math.round(parent.width * 0.7) + UM.Theme.getSize("sidebar_margin").width + anchors.right: parent.right + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + menu: MaterialMenu + { + extruderIndex: Cura.ExtruderManager.activeExtruderIndex + } + + property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true + property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported + } + } + + Item + { + id: variantRow + height: UM.Theme.getSize("sidebar_setup").height + visible: Cura.MachineManager.hasVariants + + anchors + { + left: parent.left + right: parent.right + top: materialRow.bottom + margins: UM.Theme.getSize("sidebar_margin").width + } + + Label + { + id: variantLabel + text: Cura.MachineManager.activeDefinitionVariantsName; + width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) + height: parent.height + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + } + + ToolButton + { + id: variantSelection + text: Cura.MachineManager.activeVariantName + tooltip: Cura.MachineManager.activeVariantName; + visible: Cura.MachineManager.hasVariants + + height: UM.Theme.getSize("setting_control").height + width: Math.round(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) + anchors.right: parent.right + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + + menu: NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } + } + } + + Item + { + id: materialCompatibilityLink + height: UM.Theme.getSize("sidebar_setup").height + + anchors.right: parent.right + anchors.top: variantRow.bottom + anchors.margins: UM.Theme.getSize("sidebar_margin").width + UM.RecolorImage + { + id: warningImage + + anchors.right: materialInfoLabel.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width + + source: UM.Theme.getIcon("warning") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + + sourceSize.width: width + sourceSize.height: height + + color: UM.Theme.getColor("material_compatibility_warning") + + visible: !Cura.MachineManager.isCurrentSetupSupported + } + + Label + { + id: materialInfoLabel + wrapMode: Text.WordWrap + text: "" + catalog.i18nc("@label", "Check compatibility") + "" + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + linkColor: UM.Theme.getColor("text_link") + + verticalAlignment: Text.AlignTop + + anchors.right: parent.right + + MouseArea + { + anchors.fill: parent + + onClicked: { + // open the material URL with web browser + Qt.openUrlExternally("https://ultimaker.com/incoming-links/cura/material-compatibilty"); + } + } + } + } + +} \ No newline at end of file From bb7582159910728976e4e020d0b61de2b0b08ce2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 11 Oct 2018 13:44:10 +0200 Subject: [PATCH 0021/1039] Fix some code style Contributes to issue CURA-5784. --- resources/qml/Cura.qml | 22 ++++++++++++--------- resources/qml/Skeleton/ApplicationMenu.qml | 12 +++++------ resources/qml/Skeleton/ApplicationViews.qml | 16 ++++++++------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index f040469916..8369c2a743 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -27,21 +27,25 @@ UM.MainWindow UM.I18nCatalog { id: catalog - name:"cura" + name: "cura" } onWidthChanged: { // If slidebar is collapsed then it should be invisible // otherwise after the main_window resize the sidebar will be fully re-drawn - if (sidebar.collapsed){ - if (sidebar.visible == true){ + if (sidebar.collapsed) + { + if (sidebar.visible == true) + { sidebar.visible = false sidebar.initialWidth = 0 } } - else{ - if (sidebar.visible == false){ + else + { + if (sidebar.visible == false) + { sidebar.visible = true sidebar.initialWidth = UM.Theme.getSize("sidebar").width } @@ -156,7 +160,7 @@ UM.MainWindow Button { id: openFileButton - text: catalog.i18nc("@action:button","Open File") + text: catalog.i18nc("@action:button", "Open File") iconSource: UM.Theme.getIcon("load") style: UM.Theme.styles.tool_button tooltip: "" @@ -352,10 +356,10 @@ UM.MainWindow { //; Remove & re-add the general page as we want to use our own instead of uranium standard. removePage(0); - insertPage(0, catalog.i18nc("@title:tab","General"), Qt.resolvedUrl("Preferences/GeneralPage.qml")); + insertPage(0, catalog.i18nc("@title:tab", "General"), Qt.resolvedUrl("Preferences/GeneralPage.qml")); removePage(1); - insertPage(1, catalog.i18nc("@title:tab","Settings"), Qt.resolvedUrl("Preferences/SettingVisibilityPage.qml")); + insertPage(1, catalog.i18nc("@title:tab", "Settings"), Qt.resolvedUrl("Preferences/SettingVisibilityPage.qml")); insertPage(2, catalog.i18nc("@title:tab", "Printers"), Qt.resolvedUrl("Preferences/MachinesPage.qml")); @@ -528,7 +532,7 @@ UM.MainWindow id: openDialog; //: File open dialog title - title: catalog.i18nc("@title:window","Open file(s)") + title: catalog.i18nc("@title:window", "Open file(s)") modality: UM.Application.platform == "linux" ? Qt.NonModal : Qt.WindowModal; selectMultiple: true nameFilters: UM.MeshFileHandler.supportedReadFileTypes; diff --git a/resources/qml/Skeleton/ApplicationMenu.qml b/resources/qml/Skeleton/ApplicationMenu.qml index a8774e8ceb..00859e2a45 100644 --- a/resources/qml/Skeleton/ApplicationMenu.qml +++ b/resources/qml/Skeleton/ApplicationMenu.qml @@ -27,7 +27,7 @@ Item Menu { id: fileMenu - title: catalog.i18nc("@title:menu menubar:toplevel","&File") + title: catalog.i18nc("@title:menu menubar:toplevel", "&File") MenuItem { @@ -46,7 +46,7 @@ Item MenuItem { id: saveWorkspaceMenu - text: catalog.i18nc("@title:menu menubar:file","&Save...") + text: catalog.i18nc("@title:menu menubar:file", "&Save...") onTriggered: { var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; @@ -99,7 +99,7 @@ Item Menu { - title: catalog.i18nc("@title:menu menubar:toplevel","&Edit") + title: catalog.i18nc("@title:menu menubar:toplevel", "&Edit") MenuItem { action: Cura.Actions.undo } MenuItem { action: Cura.Actions.redo } @@ -181,7 +181,7 @@ Item Menu { id: extensionMenu - title: catalog.i18nc("@title:menu menubar:toplevel","E&xtensions") + title: catalog.i18nc("@title:menu menubar:toplevel", "E&xtensions") Instantiator { @@ -223,7 +223,7 @@ Item Menu { id: preferencesMenu - title: catalog.i18nc("@title:menu menubar:toplevel","P&references") + title: catalog.i18nc("@title:menu menubar:toplevel", "P&references") MenuItem { action: Cura.Actions.preferences } } @@ -231,7 +231,7 @@ Item Menu { id: helpMenu - title: catalog.i18nc("@title:menu menubar:toplevel","&Help") + title: catalog.i18nc("@title:menu menubar:toplevel", "&Help") MenuItem { action: Cura.Actions.showProfileFolder } MenuItem { action: Cura.Actions.documentation } diff --git a/resources/qml/Skeleton/ApplicationViews.qml b/resources/qml/Skeleton/ApplicationViews.qml index 94315a73fb..eb8ab16fae 100644 --- a/resources/qml/Skeleton/ApplicationViews.qml +++ b/resources/qml/Skeleton/ApplicationViews.qml @@ -11,9 +11,9 @@ import Cura 1.0 as Cura import "../components" -// This item contains the views selector, a combobox that is dinamically created from -// the list of available Views (packages that create different visualizactions of the -// scene. Aside the selector, there is a row of buttons that change the orientation of the view. +// This item contains the views selector, a combobox that is dynamically created from +// the list of available Views (packages that create different visualizations of the +// scene). Aside from the selector, there is a row of buttons that change the orientation of the view. Item { id: applicationViewsSelector @@ -25,7 +25,8 @@ Item { id: viewModeButton - anchors { + anchors + { verticalCenter: parent.verticalCenter right: parent.right rightMargin: UM.Theme.getSize("default_margin").width @@ -51,15 +52,16 @@ Item { for (var i = 0; i < model.rowCount(); i++) { - if (model.getItem(i).active) { - return i + if (model.getItem(i).active) + { + return i; } } return 0 } // set the active index - function setActiveIndex (index) + function setActiveIndex(index) { UM.Controller.setActiveView(index) // the connection to UM.ActiveView will trigger update so there is no reason to call it manually here From 10de312647a1e38db0ae6c24b0d06b3e807f7f37 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 12 Oct 2018 13:28:08 +0200 Subject: [PATCH 0022/1039] Added QMLDIR so we can specify cura specific QML components for plugins This ensures that we can be way more explicit with what QML components we see as re-usable CURA-5772 --- resources/qml/qmldir | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 resources/qml/qmldir diff --git a/resources/qml/qmldir b/resources/qml/qmldir new file mode 100644 index 0000000000..5083b5e80a --- /dev/null +++ b/resources/qml/qmldir @@ -0,0 +1,5 @@ +module Cura + +MachineAndConfigurationSelector 1.0 components/MachineAndConfigurationSelector.qml +MaterialAndVariantSelector 1.0 MaterialAndVariantSelector.qml +ProfileAndSettingComponent 1.0 ProfileAndSettingComponent.qml \ No newline at end of file From 7d5472b09fe0a0fc524b36ab9c9d85e54c68d241 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 12 Oct 2018 13:29:57 +0200 Subject: [PATCH 0023/1039] Moved the prepareMenu into the prepare stage plugin CURA-5772 --- plugins/PrepareStage/PrepareMenu.qml | 42 ++++++++++++++++++++++++++++ plugins/PrepareStage/PrepareStage.py | 6 +++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 plugins/PrepareStage/PrepareMenu.qml diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml new file mode 100644 index 0000000000..eb09326524 --- /dev/null +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -0,0 +1,42 @@ +import QtQuick 2.7 + +import QtQuick.Controls 1.4 + +import UM 1.3 as UM +import Cura 1.1 as Cura + + +Row +{ + spacing: UM.Theme.getSize("default_margin").width + + UM.I18nCatalog + { + id: catalog + name:"cura" + } + + Button + { + id: openFileButton; + text: catalog.i18nc("@action:button", "Open File"); + iconSource: UM.Theme.getIcon("load") + style: UM.Theme.styles.tool_button + tooltip: "" + action: Cura.Actions.open; + } + + Cura.MachineAndConfigurationSelector + { + } + + Cura.MaterialAndVariantSelector + { + width: UM.Theme.getSize("sidebar").width + } + + Cura.ProfileAndSettingComponent + { + width: UM.Theme.getSize("sidebar").width + } +} \ No newline at end of file diff --git a/plugins/PrepareStage/PrepareStage.py b/plugins/PrepareStage/PrepareStage.py index c3c9f0a1f8..b22f3385b8 100644 --- a/plugins/PrepareStage/PrepareStage.py +++ b/plugins/PrepareStage/PrepareStage.py @@ -2,13 +2,14 @@ # Cura is released under the terms of the LGPLv3 or higher. import os.path from UM.Application import Application +from UM.PluginRegistry import PluginRegistry from UM.Resources import Resources from cura.Stages.CuraStage import CuraStage + ## Stage for preparing model (slicing). class PrepareStage(CuraStage): - def __init__(self, parent = None): super().__init__(parent) Application.getInstance().engineCreatedSignal.connect(self._engineCreated) @@ -16,4 +17,7 @@ class PrepareStage(CuraStage): def _engineCreated(self): sidebar_component_path = os.path.join(Resources.getPath(Application.getInstance().ResourceTypes.QmlFiles), "PrepareSidebar.qml") + + menu_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("PrepareStage"), "PrepareMenu.qml") + self.addDisplayComponent("menu", menu_component_path) self.addDisplayComponent("sidebar", sidebar_component_path) From 11a08d0e472612b7c5377273cf2435c1a17cb3c4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 12 Oct 2018 13:32:23 +0200 Subject: [PATCH 0024/1039] Move whole bunch of QML components to their new locations The tooltips are still not working correctly, it might be that it needs rework CURA-5772 --- resources/qml/Cura.qml | 149 +++++--- resources/qml/ExtruderIcon.qml | 1 - resources/qml/MaterialAndVariantSelector.qml | 2 +- ...bar.qml => ProfileAndSettingComponent.qml} | 330 ++++++------------ resources/qml/ProgressAndSaveWidget.qml | 237 +++++++++++++ resources/qml/SaveButton.qml | 165 +++++---- resources/qml/Settings/SettingView.qml | 9 +- resources/qml/SidebarHeader.qml | 3 +- resources/qml/Skeleton/TopHeader.qml | 3 +- 9 files changed, 536 insertions(+), 363 deletions(-) rename resources/qml/{PrepareSidebar.qml => ProfileAndSettingComponent.qml} (66%) create mode 100644 resources/qml/ProgressAndSaveWidget.qml diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 8369c2a743..f89f8d63dd 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -21,36 +21,45 @@ UM.MainWindow // Cura application window title title: catalog.i18nc("@title:window", "Ultimaker Cura") - viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) + //viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) + viewportRect: Qt.rect(0, 0, 1.0, 1.0) backgroundColor: UM.Theme.getColor("viewport_background") UM.I18nCatalog { id: catalog - name: "cura" + name:"cura" } - onWidthChanged: + function showTooltip(item, position, text) + { + tooltip.text = text; + position = item.mapToItem(backgroundItem, position.x - UM.Theme.getSize("default_arrow").width, position.y); + tooltip.show(position); + } + + function hideTooltip() + { + tooltip.hide(); + } + + /*onWidthChanged: { // If slidebar is collapsed then it should be invisible // otherwise after the main_window resize the sidebar will be fully re-drawn - if (sidebar.collapsed) - { - if (sidebar.visible == true) - { + if (sidebar.collapsed){ + if (sidebar.visible == true){ sidebar.visible = false sidebar.initialWidth = 0 } } - else - { - if (sidebar.visible == false) - { + else{ + if (sidebar.visible == false){ sidebar.visible = true sidebar.initialWidth = UM.Theme.getSize("sidebar").width } } - } + }*/ Component.onCompleted: { @@ -69,11 +78,16 @@ UM.MainWindow CuraApplication.purgeWindows() } - Column + Item { id: backgroundItem anchors.fill: parent + SidebarTooltip + { + id: tooltip + } + signal hasMesh(string name) //this signal sends the filebase name so it can be used for the JobSpecs.qml function getMeshName(path) { @@ -94,26 +108,34 @@ UM.MainWindow ApplicationMenu { - id: menu + id: applicationMenu window: base } TopHeader { id: topHeader - anchors.left: parent.left - anchors.right: parent.right + anchors + { + left: parent.left + right: parent.right + top: applicationMenu.bottom + } } Item { id: contentItem - width: parent.width - height: parent.height - menu.height - topHeader.height - z: topHeader.z - 1 + anchors + { + top: topHeader.bottom + bottom: parent.bottom + left: parent.left + right: parent.right + } - Keys.forwardTo: menu + Keys.forwardTo: applicationMenu DropArea { @@ -145,41 +167,39 @@ UM.MainWindow } } + Loader + { + // The stage menu is, as the name implies, a menu that is defined by the active stage. + // Note that this menu does not need to be set at all! It's perfectly acceptable to have a stage + // without this menu! + id: stageMenu + + anchors + { + left: parent.left + right: parent.right + top: parent.top + margins: UM.Theme.getSize("default_margin").height + } + + height: 50 + + source: UM.Controller.activeStage.stageMenuComponent + } + JobSpecs { id: jobSpecs anchors { bottom: parent.bottom - right: sidebar.left + //right: sidebar.left bottomMargin: UM.Theme.getSize("default_margin").height rightMargin: UM.Theme.getSize("default_margin").width } } - Button - { - id: openFileButton - text: catalog.i18nc("@action:button", "Open File") - iconSource: UM.Theme.getIcon("load") - style: UM.Theme.styles.tool_button - tooltip: "" - anchors - { - top: parent.top - topMargin: UM.Theme.getSize("default_margin").height - left: parent.left - } - action: Cura.Actions.open - } - MachineAndConfigurationSelector - { - anchors.left: openFileButton.right - //anchors.right: sidebar.left - anchors.leftMargin: UM.Theme.getSize("default_margin").height - anchors.top: openFileButton.top - } Toolbar { @@ -189,7 +209,7 @@ UM.MainWindow property int mouseY: base.mouseY anchors { - top: openFileButton.bottom + top: stageMenu.bottom topMargin: UM.Theme.getSize("window_margin").height left: parent.left } @@ -206,7 +226,7 @@ UM.MainWindow } } - ApplicationViews + /*ApplicationViews { id: applicationViews @@ -216,7 +236,7 @@ UM.MainWindow top: parent.top right: sidebar.left } - } + }*/ Loader { @@ -227,7 +247,7 @@ UM.MainWindow top: parent.top bottom: parent.bottom left: parent.left - right: sidebar.left + right: parent.right } MouseArea @@ -241,7 +261,7 @@ UM.MainWindow source: UM.Controller.activeStage.mainComponent } - Loader + /*Loader { id: sidebar @@ -311,7 +331,7 @@ UM.MainWindow acceptedButtons: Qt.AllButtons onWheel: wheel.accepted = true } - } + }*/ UM.MessageStack { @@ -338,15 +358,33 @@ UM.MainWindow bottom: parent.bottom } } + + + ProgressAndSaveWidget + { + anchors.right: parent.right + anchors.bottom: parent.bottom + width: UM.Theme.getSize("sidebar").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + onShowTooltip: + { + base.showTooltip(item, location, text) + } + onHideTooltip: + { + base.hideTooltip() + } + } } } // Expand or collapse sidebar - Connections + /*Connections { target: Cura.Actions.expandSidebar onTriggered: sidebar.callExpandOrCollapse() - } + }*/ UM.PreferencesDialog { @@ -356,10 +394,10 @@ UM.MainWindow { //; Remove & re-add the general page as we want to use our own instead of uranium standard. removePage(0); - insertPage(0, catalog.i18nc("@title:tab", "General"), Qt.resolvedUrl("Preferences/GeneralPage.qml")); + insertPage(0, catalog.i18nc("@title:tab","General"), Qt.resolvedUrl("Preferences/GeneralPage.qml")); removePage(1); - insertPage(1, catalog.i18nc("@title:tab", "Settings"), Qt.resolvedUrl("Preferences/SettingVisibilityPage.qml")); + insertPage(1, catalog.i18nc("@title:tab","Settings"), Qt.resolvedUrl("Preferences/SettingVisibilityPage.qml")); insertPage(2, catalog.i18nc("@title:tab", "Printers"), Qt.resolvedUrl("Preferences/MachinesPage.qml")); @@ -532,7 +570,7 @@ UM.MainWindow id: openDialog; //: File open dialog title - title: catalog.i18nc("@title:window", "Open file(s)") + title: catalog.i18nc("@title:window","Open file(s)") modality: UM.Application.platform == "linux" ? Qt.NonModal : Qt.WindowModal; selectMultiple: true nameFilters: UM.MeshFileHandler.supportedReadFileTypes; @@ -638,7 +676,8 @@ UM.MainWindow modality: Qt.ApplicationModal } - MessageDialog { + MessageDialog + { id: infoMultipleFilesWithGcodeDialog title: catalog.i18nc("@title:window", "Open File(s)") icon: StandardIcon.Information diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 2c2edcb492..580ff5dce9 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -4,7 +4,6 @@ import UM 1.2 as UM Item { - id: extruderIconItem implicitWidth: UM.Theme.getSize("button").width diff --git a/resources/qml/MaterialAndVariantSelector.qml b/resources/qml/MaterialAndVariantSelector.qml index 325ffa85a5..fff3ef1100 100644 --- a/resources/qml/MaterialAndVariantSelector.qml +++ b/resources/qml/MaterialAndVariantSelector.qml @@ -17,7 +17,7 @@ Rectangle id: base color: UM.Theme.getColor("sidebar") - + // Height has an extra 2x margin for the top & bottom margin. height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width diff --git a/resources/qml/PrepareSidebar.qml b/resources/qml/ProfileAndSettingComponent.qml similarity index 66% rename from resources/qml/PrepareSidebar.qml rename to resources/qml/ProfileAndSettingComponent.qml index 7c99e6e145..33c2f37fb1 100644 --- a/resources/qml/PrepareSidebar.qml +++ b/resources/qml/ProfileAndSettingComponent.qml @@ -16,14 +16,10 @@ Rectangle { id: base + height: childrenRect.height + property int currentModeIndex: -1 property bool hideSettings: PrintInformation.preSliced - property bool hideView: Cura.MachineManager.activeMachineName == "" - - // Is there an output device for this printer? - property bool printerConnected: Cura.MachineManager.printerConnected - property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands - property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null property variant printDuration: PrintInformation.currentPrintTime property variant printMaterialLengths: PrintInformation.materialLengths @@ -34,7 +30,8 @@ Rectangle color: UM.Theme.getColor("sidebar") UM.I18nCatalog { id: catalog; name:"cura"} - Timer { + Timer + { id: tooltipDelayTimer interval: 500 repeat: false @@ -59,7 +56,8 @@ Rectangle tooltip.hide(); } - function strPadLeft(string, pad, length) { + function strPadLeft(string, pad, length) + { return (new Array(length + 1).join(pad) + string).slice(-length); } @@ -86,35 +84,9 @@ Rectangle } } - SidebarHeader - { - id: header - width: parent.width - visible: !hideSettings && (machineExtruderCount.properties.value > 1 || Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariants) - anchors.top: parent.top - - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - - Rectangle - { - id: headerSeparator - width: parent.width - visible: settingsModeSelection.visible && header.visible - height: visible ? UM.Theme.getSize("sidebar_lining").height : 0 - color: UM.Theme.getColor("sidebar_lining") - anchors.top: header.bottom - anchors.topMargin: visible ? UM.Theme.getSize("sidebar_margin").height : 0 - } - onCurrentModeIndexChanged: { UM.Preferences.setValue("cura/active_mode", currentModeIndex); - if(modesListModel.count > base.currentModeIndex) - { - sidebarContents.replace(modesListModel.get(base.currentModeIndex).item, { "replace": true }) - } } Label @@ -122,176 +94,129 @@ Rectangle id: settingsModeLabel text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox", "Print Setup disabled\nG-code files cannot be modified") renderType: Text.NativeRendering - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width - anchors.top: hideSettings ? machineSelection.bottom : headerSeparator.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + + anchors + { + left: parent.left + top: parent.top + margins: UM.Theme.getSize("sidebar_margin").width + } + width: Math.round(parent.width * 0.45) + height: contentHeight font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") - visible: !hideView } - // Settings mode selection toggle - Item - { - id: settingsModeSelection + ListView + { + // Settings mode selection toggle + id: settingsModeSelection + model: modesListModel width: Math.round(parent.width * 0.55) height: UM.Theme.getSize("sidebar_header_mode_toggle").height anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height - anchors.top: - { - if (settingsModeLabel.contentWidth >= parent.width - width - UM.Theme.getSize("sidebar_margin").width * 2) - { - return settingsModeLabel.bottom; - } - else - { - return headerSeparator.bottom; - } - } - visible: !hideSettings && !hideView - - Component - { - id: wizardDelegate - - Button - { - id: control - - height: settingsModeSelection.height - width: Math.round(parent.width / 2) - - anchors.left: parent.left - anchors.leftMargin: model.index * Math.round(settingsModeSelection.width / 2) - anchors.verticalCenter: parent.verticalCenter - - ButtonGroup.group: modeMenuGroup - - checkable: true - checked: base.currentModeIndex == index - onClicked: base.currentModeIndex = index - - onHoveredChanged: - { - if (hovered) - { - tooltipDelayTimer.item = settingsModeSelection - tooltipDelayTimer.text = model.tooltipText - tooltipDelayTimer.start() - } - else - { - tooltipDelayTimer.stop() - base.hideTooltip() - } - } - - background: Rectangle - { - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border"): UM.Theme.getColor("action_button_border") - - // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - } - - contentItem: Label - { - text: model.text - font: UM.Theme.getFont("default") - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - renderType: Text.NativeRendering - elide: Text.ElideRight - color: - { - if(control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text"); - } - return UM.Theme.getColor("action_button_text"); - } - } - } - } + anchors.top: settingsModeLabel.top ButtonGroup { id: modeMenuGroup } - ListView + delegate: Button { - id: modesList - model: modesListModel - delegate: wizardDelegate - anchors.top: parent.top + id: control + + height: settingsModeSelection.height + width: Math.round(parent.width / 2) + anchors.left: parent.left - width: parent.width - } - } + anchors.leftMargin: model.index * Math.round(settingsModeSelection.width / 2) + anchors.verticalCenter: parent.verticalCenter - StackView - { - id: sidebarContents + ButtonGroup.group: modeMenuGroup - anchors.bottom: footerSeparator.top - anchors.top: settingsModeSelection.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height - anchors.left: base.left - anchors.right: base.right - visible: !hideSettings + checkable: true + checked: base.currentModeIndex == index + onClicked: base.currentModeIndex = index - replaceEnter: Transition { - PropertyAnimation { - property: "opacity" - from: 0 - to:1 - duration: 100 + onHoveredChanged: + { + if (hovered) + { + tooltipDelayTimer.item = settingsModeSelection + tooltipDelayTimer.text = model.tooltipText + tooltipDelayTimer.start() + } + else + { + tooltipDelayTimer.stop() + base.hideTooltip() + } + } + + background: Rectangle + { + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border"): UM.Theme.getColor("action_button_border") + + // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + } + + contentItem: Label + { + text: model.text + font: UM.Theme.getFont("default") + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + renderType: Text.NativeRendering + elide: Text.ElideRight + color: + { + if(control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } } } - - replaceExit: Transition { - PropertyAnimation { - property: "opacity" - from: 1 - to:0 - duration: 100 - } - } - } - - Loader - { - anchors.bottom: footerSeparator.top - anchors.top: headerSeparator.bottom - anchors.left: base.left - anchors.right: base.right - source: "SidebarContents.qml" - } - - Rectangle - { - id: footerSeparator - width: parent.width - height: UM.Theme.getSize("sidebar_lining").height - color: UM.Theme.getColor("sidebar_lining") - anchors.bottom: printSpecs.top - anchors.bottomMargin: Math.round(UM.Theme.getSize("sidebar_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize) } Item + { + id: sidebarContents + anchors.top: settingsModeSelection.bottom + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.left: parent.left + anchors.right: parent.right + height: 500 + + // We load both of them at once (instead of using a loader) because the advanced sidebar can take + // quite some time to load. So in this case we sacrifice memory for speed. + SidebarAdvanced + { + anchors.fill: parent + visible: currentModeIndex == 1 + } + + SidebarSimple + { + anchors.fill: parent + visible: currentModeIndex != 1 + } + } + + /*Item { id: printSpecs anchors.left: parent.left @@ -499,22 +424,23 @@ Rectangle } } } - } + }*/ // SaveButton is actually the bottom footer panel. - SaveButton + /*SaveButton { id: saveButton implicitWidth: base.width anchors.top: footerSeparator.bottom anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.bottom: parent.bottom - } + }*/ + /* SidebarTooltip { id: tooltip - } + }*/ // Setting mode: Recommended or Custom ListModel @@ -522,35 +448,15 @@ Rectangle id: modesListModel } - SidebarSimple - { - id: sidebarSimple - visible: false - - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - - SidebarAdvanced - { - id: sidebarAdvanced - visible: false - - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - Component.onCompleted: { modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), - tooltipText: catalog.i18nc("@tooltip", "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality."), - item: sidebarSimple + tooltipText: catalog.i18nc("@tooltip", "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality.") }) modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), - tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process."), - item: sidebarAdvanced + tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process.") }) var index = Math.round(UM.Preferences.getValue("cura/active_mode")) @@ -564,24 +470,4 @@ Rectangle currentModeIndex = 0; } } - - UM.SettingPropertyProvider - { - id: machineExtruderCount - - containerStack: Cura.MachineManager.activeMachine - key: "machine_extruder_count" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: machineHeatedBed - - containerStack: Cura.MachineManager.activeMachine - key: "machine_heated_bed" - watchedProperties: [ "value" ] - storeIndex: 0 - } } diff --git a/resources/qml/ProgressAndSaveWidget.qml b/resources/qml/ProgressAndSaveWidget.qml new file mode 100644 index 0000000000..88819af759 --- /dev/null +++ b/resources/qml/ProgressAndSaveWidget.qml @@ -0,0 +1,237 @@ +// Copyright (c) 2017 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.0 +import QtQuick.Layouts 1.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +Rectangle +{ + id: base + + // We need a whole lot of print duration information. + property variant printDuration: PrintInformation.currentPrintTime + + // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. + signal showTooltip(Item item, point location, string text) + signal hideTooltip() + + // Also add an extra margin, as we ant some breathing room around the edges. + height: childrenRect.height + UM.Theme.getSize("sidebar_margin").height + Label + { + id: timeDetails + anchors.left: parent.left + anchors.bottom: costSpec.top + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + + font: UM.Theme.getFont("large") + color: UM.Theme.getColor("text_subtext") + text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label Hours and minutes", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short) + renderType: Text.NativeRendering + + MouseArea + { + id: timeDetailsMouseArea + anchors.fill: parent + hoverEnabled: true + + onEntered: + { + if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) + { + // All the time information for the different features is achieved + var print_time = PrintInformation.getFeaturePrintTimes(); + var total_seconds = parseInt(base.printDuration.getDisplayString(UM.DurationFormat.Seconds)) + + // A message is created and displayed when the user hover the time label + var tooltip_html = "%1
".arg(catalog.i18nc("@tooltip", "Time specification")); + for(var feature in print_time) + { + if(!print_time[feature].isTotalDurationZero) + { + tooltip_html += "" + + "".arg(print_time[feature].getDisplayString(UM.DurationFormat.ISO8601).slice(0,-3)) + + "".arg(Math.round(100 * parseInt(print_time[feature].getDisplayString(UM.DurationFormat.Seconds)) / total_seconds)) + + ""; + } + } + tooltip_html += "
" + feature + ":  %1  %1%
"; + //print("trying to show tooltip", base, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), tooltip_html) + base.showTooltip(parent, Qt.point(0, 0), tooltip_html); + } + } + onExited: + { + base.hideTooltip(); + } + } + } + + Label + { + function formatRow(items) + { + var row_html = ""; + for(var item = 0; item < items.length; item++) + { + if (item == 0) + { + row_html += "%1".arg(items[item]); + } + else + { + row_html += "  %1".arg(items[item]); + } + } + row_html += ""; + return row_html; + } + + function getSpecsData() + { + var lengths = []; + var total_length = 0; + var weights = []; + var total_weight = 0; + var costs = []; + var total_cost = 0; + var some_costs_known = false; + var names = []; + if(base.printMaterialLengths) + { + for(var index = 0; index < base.printMaterialLengths.length; index++) + { + if(base.printMaterialLengths[index] > 0) + { + names.push(base.printMaterialNames[index]); + lengths.push(base.printMaterialLengths[index].toFixed(2)); + weights.push(String(Math.round(base.printMaterialWeights[index]))); + var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); + costs.push(cost); + if(cost > 0) + { + some_costs_known = true; + } + + total_length += base.printMaterialLengths[index]; + total_weight += base.printMaterialWeights[index]; + total_cost += base.printMaterialCosts[index]; + } + } + } + if(lengths.length == 0) + { + lengths = ["0.00"]; + weights = ["0"]; + costs = ["0.00"]; + } + + var tooltip_html = "%1
".arg(catalog.i18nc("@label", "Cost specification")); + for(var index = 0; index < lengths.length; index++) + { + tooltip_html += formatRow([ + "%1:".arg(names[index]), + catalog.i18nc("@label m for meter", "%1m").arg(lengths[index]), + catalog.i18nc("@label g for grams", "%1g").arg(weights[index]), + "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(costs[index]), + ]); + } + if(lengths.length > 1) + { + tooltip_html += formatRow([ + catalog.i18nc("@label", "Total:"), + catalog.i18nc("@label m for meter", "%1m").arg(total_length.toFixed(2)), + catalog.i18nc("@label g for grams", "%1g").arg(Math.round(total_weight)), + "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(total_cost.toFixed(2)), + ]); + } + tooltip_html += "
"; + tooltipText = tooltip_html; + + return tooltipText + } + + id: costSpec + + anchors.left: parent.left + anchors.bottom: parent.bottom + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + + font: UM.Theme.getFont("very_small") + renderType: Text.NativeRendering + color: UM.Theme.getColor("text_subtext") + elide: Text.ElideMiddle + width: parent.width + property string tooltipText + text: + { + var lengths = []; + var weights = []; + var costs = []; + var someCostsKnown = false; + if(base.printMaterialLengths) { + for(var index = 0; index < base.printMaterialLengths.length; index++) + { + if(base.printMaterialLengths[index] > 0) + { + lengths.push(base.printMaterialLengths[index].toFixed(2)); + weights.push(String(Math.round(base.printMaterialWeights[index]))); + var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); + costs.push(cost); + if(cost > 0) + { + someCostsKnown = true; + } + } + } + } + if(lengths.length == 0) + { + lengths = ["0.00"]; + weights = ["0"]; + costs = ["0.00"]; + } + var result = lengths.join(" + ") + "m / ~ " + weights.join(" + ") + "g"; + if(someCostsKnown) + { + result += " / ~ " + costs.join(" + ") + " " + UM.Preferences.getValue("cura/currency"); + } + return result; + } + + MouseArea + { + id: costSpecMouseArea + anchors.fill: parent + hoverEnabled: true + + onEntered: + { + + if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) + { + var show_data = costSpec.getSpecsData() + + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), show_data); + } + } + onExited: + { + base.hideTooltip(); + } + } + } + + SaveButton + { + id: saveButton + width: parent.width + height: 100 + anchors.bottom: parent.bottom + } +} \ No newline at end of file diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 2a0a523026..8c561b0d00 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -9,7 +9,9 @@ import QtQuick.Layouts 1.1 import UM 1.1 as UM import Cura 1.0 as Cura -Item { +// This widget does so much more than "just" being a save button, so it should be refactored at some point in time. +Item +{ id: base; UM.I18nCatalog { id: catalog; name:"cura"} @@ -27,10 +29,6 @@ Item { return catalog.i18nc("@label:PrintjobStatus", "Please load a 3D model"); } - if (base.backendState == "undefined") { - return "" - } - switch(base.backendState) { case 1: @@ -48,19 +46,23 @@ Item { } } - function sliceOrStopSlicing() { + function sliceOrStopSlicing() + { try { - if ([1, 5].indexOf(base.backendState) != -1) { + if ([1, 5].indexOf(base.backendState) != -1) + { CuraApplication.backend.forceSlice(); } else { CuraApplication.backend.stopSlicing(); } - } catch (e) { + } catch (e) + { console.log('Could not start or stop slicing', e) } } - Label { + Label + { id: statusLabel width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width anchors.top: parent.top @@ -72,7 +74,8 @@ Item { text: statusText; } - Rectangle { + Rectangle + { id: progressBar width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width height: UM.Theme.getSize("progressbar").height @@ -83,32 +86,37 @@ Item { radius: UM.Theme.getSize("progressbar_radius").width color: UM.Theme.getColor("progressbar_background") - Rectangle { + Rectangle + { width: Math.max(parent.width * base.progress) height: parent.height color: UM.Theme.getColor("progressbar_control") radius: UM.Theme.getSize("progressbar_radius").width - visible: (base.backendState != "undefined" && base.backendState == 2) ? true : false + visible: base.backendState == 2 } } // Shortcut for "save as/print/..." - Action { + Action + { shortcut: "Ctrl+P" onTriggered: { // only work when the button is enabled - if (saveToButton.enabled) { + if (saveToButton.enabled) + { saveToButton.clicked(); } // prepare button - if (prepareButton.enabled) { + if (prepareButton.enabled) + { sliceOrStopSlicing(); } } } - Item { + Item + { id: saveRow width: { // using childrenRect.width directly causes a binding loop, because setting the width affects the childrenRect @@ -129,7 +137,8 @@ Item { anchors.right: parent.right clip: true - Row { + Row + { id: additionalComponentsRow anchors.top: parent.top anchors.right: saveToButton.visible ? saveToButton.left : (prepareButton.visible ? prepareButton.left : parent.right) @@ -138,24 +147,30 @@ Item { spacing: UM.Theme.getSize("default_margin").width } - Component.onCompleted: { + Component.onCompleted: + { saveRow.addAdditionalComponents("saveButton") } - Connections { + Connections + { target: CuraApplication onAdditionalComponentsChanged: saveRow.addAdditionalComponents("saveButton") } - function addAdditionalComponents (areaId) { - if(areaId == "saveButton") { - for (var component in CuraApplication.additionalComponents["saveButton"]) { + function addAdditionalComponents (areaId) + { + if(areaId == "saveButton") + { + for (var component in CuraApplication.additionalComponents["saveButton"]) + { CuraApplication.additionalComponents["saveButton"][component].parent = additionalComponentsRow } } } - Connections { + Connections + { target: UM.Preferences onPreferenceChanged: { @@ -166,13 +181,14 @@ Item { } // Prepare button, only shows if auto_slice is off - Button { + Button + { id: prepareButton tooltip: [1, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@info:tooltip","Slice current printjob") : catalog.i18nc("@info:tooltip","Cancel slicing process") // 1 = not started, 2 = Processing - enabled: base.backendState != "undefined" && ([1, 2].indexOf(base.backendState) != -1) && base.activity - visible: base.backendState != "undefined" && !autoSlice && ([1, 2, 4].indexOf(base.backendState) != -1) && base.activity + enabled: ([1, 2].indexOf(base.backendState) != -1) && base.activity + visible: !autoSlice && ([1, 2, 4].indexOf(base.backendState) != -1) && base.activity property bool autoSlice height: UM.Theme.getSize("save_button_save_to_button").height @@ -236,11 +252,12 @@ Item { text: control.text; } } - label: Item { } + label: Item {} } } - Button { + Button + { id: saveToButton tooltip: UM.OutputDeviceManager.activeDeviceDescription; @@ -262,7 +279,8 @@ Item { { "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats }); } - style: ButtonStyle { + style: ButtonStyle + { background: Rectangle { border.width: UM.Theme.getSize("default_lining").width @@ -296,17 +314,7 @@ Item { Label { id: actualLabel anchors.centerIn: parent - color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled_text"); - else if(control.pressed) - return UM.Theme.getColor("print_button_ready_text"); - else if(control.hovered) - return UM.Theme.getColor("print_button_ready_text"); - else - return UM.Theme.getColor("print_button_ready_text"); - } + color:control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") font: UM.Theme.getFont("action_button") text: control.text; } @@ -324,36 +332,49 @@ Item { anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width width: UM.Theme.getSize("save_button_save_to_button").height height: UM.Theme.getSize("save_button_save_to_button").height + // 3 = Done, 5 = Disabled - enabled: base.backendState != "undefined" && (base.backendState == 3 || base.backendState == 5) && base.activity == true - visible: base.backendState != "undefined" && (devicesModel.deviceCount > 1) && (base.backendState == 3 || base.backendState == 5) && base.activity == true + enabled: (base.backendState == 3 || base.backendState == 5) && base.activity == true + visible: (devicesModel.deviceCount > 1) && (base.backendState == 3 || base.backendState == 5) && base.activity == true - style: ButtonStyle { - background: Rectangle { + style: ButtonStyle + { + background: Rectangle + { id: deviceSelectionIcon border.width: UM.Theme.getSize("default_lining").width border.color: { if(!control.enabled) - return UM.Theme.getColor("action_button_disabled_border"); - else if(control.pressed) - return UM.Theme.getColor("print_button_ready_pressed_border"); - else if(control.hovered) - return UM.Theme.getColor("print_button_ready_hovered_border"); - else - return UM.Theme.getColor("print_button_ready_border"); + { + return UM.Theme.getColor("action_button_disabled_border") + } else if(control.pressed) + { + return UM.Theme.getColor("print_button_ready_pressed_border") + } else if(control.hovered) + { + return UM.Theme.getColor("print_button_ready_hovered_border") + } else + { + return UM.Theme.getColor("print_button_ready_border") + } } color: { if(!control.enabled) - return UM.Theme.getColor("action_button_disabled"); - else if(control.pressed) - return UM.Theme.getColor("print_button_ready_pressed"); - else if(control.hovered) - return UM.Theme.getColor("print_button_ready_hovered"); - else - return UM.Theme.getColor("print_button_ready"); + { + return UM.Theme.getColor("action_button_disabled") + } else if(control.pressed) + { + return UM.Theme.getColor("print_button_ready_pressed") + } else if(control.hovered) + { + return UM.Theme.getColor("print_button_ready_hovered") + } else + { + return UM.Theme.getColor("print_button_ready") + } } Behavior on color { ColorAnimation { duration: 50; } } anchors.left: parent.left @@ -361,40 +382,34 @@ Item { width: parent.height height: parent.height - UM.RecolorImage { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height sourceSize.width: width sourceSize.height: height - color: - { - if(!control.enabled) - return UM.Theme.getColor("action_button_disabled_text"); - else if(control.pressed) - return UM.Theme.getColor("print_button_ready_text"); - else if(control.hovered) - return UM.Theme.getColor("print_button_ready_text"); - else - return UM.Theme.getColor("print_button_ready_text"); - } + color: control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") source: UM.Theme.getIcon("arrow_bottom"); } } - label: Label{ } } - menu: Menu { + menu: Menu + { id: devicesMenu; - Instantiator { + Instantiator + { model: devicesModel; - MenuItem { + MenuItem + { text: model.description checkable: true; checked: model.id == UM.OutputDeviceManager.activeDevice; exclusiveGroup: devicesMenuGroup; - onTriggered: { + onTriggered: + { UM.OutputDeviceManager.setActiveDevice(model.id); } } diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index da50b430ac..5a6811926e 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -25,7 +25,6 @@ Item { id: globalProfileRow height: UM.Theme.getSize("sidebar_setup").height - visible: !sidebar.hideSettings anchors { @@ -54,7 +53,6 @@ Item id: globalProfileSelection text: generateActiveQualityText() - enabled: !header.currentExtruderVisible || header.currentExtruderIndex > -1 width: Math.round(parent.width * 0.55) height: UM.Theme.getSize("setting_control").height anchors.left: globalProfileLabel.right @@ -177,9 +175,7 @@ Item right: settingVisibilityMenu.left rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) } - height: visible ? UM.Theme.getSize("setting_control").height : 0 - Behavior on height { NumberAnimation { duration: 100 } } - + height: UM.Theme.getSize("setting_control").height Timer { id: settingsSearchTimer @@ -292,8 +288,7 @@ Item anchors.bottom: parent.bottom; anchors.right: parent.right; anchors.left: parent.left; - anchors.topMargin: filterContainer.visible ? UM.Theme.getSize("sidebar_margin").height : 0 - Behavior on anchors.topMargin { NumberAnimation { duration: 100 } } + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height style: UM.Theme.styles.scrollview; flickableItem.flickableDirection: Flickable.VerticalFlick; diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index df4f493ea5..15ca60e6e3 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -90,7 +90,8 @@ Column } } - Rectangle { + Rectangle + { id: headerSeparator width: parent.width visible: printerTypeSelectionRow.visible diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index c24fe86af0..f08a0aaca3 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -15,7 +15,8 @@ Rectangle { id: base - height: UM.Theme.getSize("topheader").height + implicitHeight: UM.Theme.getSize("topheader").height + implicitWidth: UM.Theme.getSize("topheader").width color: UM.Theme.getColor("topheader_background") Image From 2fce1e433a4c732462310c24c63970752e6fcd43 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 09:49:08 +0200 Subject: [PATCH 0025/1039] Fix the tooltips for time estimations CURA-5772 --- resources/qml/ProgressAndSaveWidget.qml | 3 +-- resources/qml/SidebarTooltip.qml | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/qml/ProgressAndSaveWidget.qml b/resources/qml/ProgressAndSaveWidget.qml index 88819af759..2fa5cf6149 100644 --- a/resources/qml/ProgressAndSaveWidget.qml +++ b/resources/qml/ProgressAndSaveWidget.qml @@ -60,8 +60,7 @@ Rectangle } } tooltip_html += ""; - //print("trying to show tooltip", base, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), tooltip_html) - base.showTooltip(parent, Qt.point(0, 0), tooltip_html); + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), tooltip_html); } } onExited: diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/SidebarTooltip.qml index 29199481f6..4fa4ef9dd7 100644 --- a/resources/qml/SidebarTooltip.qml +++ b/resources/qml/SidebarTooltip.qml @@ -36,7 +36,7 @@ UM.PointingRectangle { } } base.opacity = 1; - target = Qt.point(40 , position.y + Math.round(UM.Theme.getSize("tooltip_arrow_margins").height / 2)) + target = Qt.point(position.x + 1, position.y + Math.round(UM.Theme.getSize("tooltip_arrow_margins").height / 2)) } function hide() { From fc1faf79f5dec5dc9271e5ee7fe89079161dae5a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 09:52:48 +0200 Subject: [PATCH 0026/1039] Cleanup unused code CURA-5772 --- resources/qml/Cura.qml | 118 +---------------------------------------- 1 file changed, 2 insertions(+), 116 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index f89f8d63dd..8955cb9598 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -21,7 +21,6 @@ UM.MainWindow // Cura application window title title: catalog.i18nc("@title:window", "Ultimaker Cura") - //viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) viewportRect: Qt.rect(0, 0, 1.0, 1.0) backgroundColor: UM.Theme.getColor("viewport_background") @@ -43,24 +42,6 @@ UM.MainWindow tooltip.hide(); } - /*onWidthChanged: - { - // If slidebar is collapsed then it should be invisible - // otherwise after the main_window resize the sidebar will be fully re-drawn - if (sidebar.collapsed){ - if (sidebar.visible == true){ - sidebar.visible = false - sidebar.initialWidth = 0 - } - } - else{ - if (sidebar.visible == false){ - sidebar.visible = true - sidebar.initialWidth = UM.Theme.getSize("sidebar").width - } - } - }*/ - Component.onCompleted: { CuraApplication.setMinimumWindowSize(UM.Theme.getSize("window_minimum_size")) @@ -193,14 +174,11 @@ UM.MainWindow anchors { bottom: parent.bottom - //right: sidebar.left bottomMargin: UM.Theme.getSize("default_margin").height rightMargin: UM.Theme.getSize("default_margin").width } } - - Toolbar { id: toolbar @@ -226,18 +204,6 @@ UM.MainWindow } } - /*ApplicationViews - { - id: applicationViews - - - anchors - { - top: parent.top - right: sidebar.left - } - }*/ - Loader { id: main @@ -261,78 +227,6 @@ UM.MainWindow source: UM.Controller.activeStage.mainComponent } - /*Loader - { - id: sidebar - - property bool collapsed: false - property var initialWidth: UM.Theme.getSize("sidebar").width - - function callExpandOrCollapse() - { - if (collapsed) - { - sidebar.visible = true - sidebar.initialWidth = UM.Theme.getSize("sidebar").width - viewportRect = Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) - expandSidebarAnimation.start(); - } - else - { - viewportRect = Qt.rect(0, 0, 1, 1.0) - collapseSidebarAnimation.start() - } - collapsed = !collapsed - UM.Preferences.setValue("cura/sidebar_collapsed", collapsed) - } - - anchors - { - top: parent.top - bottom: parent.bottom - } - - width: initialWidth - x: base.width - sidebar.width - source: UM.Controller.activeStage.sidebarComponent - - NumberAnimation { - id: collapseSidebarAnimation - target: sidebar - properties: "x" - to: base.width - duration: 100 - } - - NumberAnimation { - id: expandSidebarAnimation - target: sidebar - properties: "x" - to: base.width - sidebar.width - duration: 100 - } - - Component.onCompleted: - { - var sidebar_collapsed = UM.Preferences.getValue("cura/sidebar_collapsed") - - if (sidebar_collapsed) - { - sidebar.collapsed = true - viewportRect = Qt.rect(0, 0, 1, 1.0) - collapseSidebarAnimation.start() - } - } - - MouseArea - { - visible: UM.Controller.activeStage.sidebarComponent != "" - anchors.fill: parent - acceptedButtons: Qt.AllButtons - onWheel: wheel.accepted = true - } - }*/ - UM.MessageStack { anchors @@ -345,7 +239,6 @@ UM.MainWindow } } - ViewOrientationControls { id: viewOrientationControls @@ -359,7 +252,6 @@ UM.MainWindow } } - ProgressAndSaveWidget { anchors.right: parent.right @@ -379,13 +271,6 @@ UM.MainWindow } } - // Expand or collapse sidebar - /*Connections - { - target: Cura.Actions.expandSidebar - onTriggered: sidebar.callExpandOrCollapse() - }*/ - UM.PreferencesDialog { id: preferences @@ -509,7 +394,8 @@ UM.MainWindow } } - ContextMenu { + ContextMenu + { id: contextMenu } From 8cac5e1de214b34ad39328fe93b29a9bfe270afe Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 10:26:27 +0200 Subject: [PATCH 0027/1039] Removed the components qml dir We can consider putting components into their own folder, but we first should have a clear definition of what they are / should be. CURA-5772 --- resources/qml/Account/AccountDetails.qml | 2 -- resources/qml/Account/GeneralOperations.qml | 6 ++---- resources/qml/Account/UserOperations.qml | 6 ++---- resources/qml/{components => }/ActionButton.qml | 0 resources/qml/Cura.qml | 1 - .../{components => }/MachineAndConfigurationSelector.qml | 5 ++--- resources/qml/ProfileAndSettingComponent.qml | 2 -- resources/qml/Skeleton/ApplicationViews.qml | 1 - resources/qml/Skeleton/TopHeader.qml | 1 - resources/qml/{components => }/ViewOrientationControls.qml | 0 resources/qml/qmldir | 5 +++-- 11 files changed, 9 insertions(+), 20 deletions(-) rename resources/qml/{components => }/ActionButton.qml (100%) rename resources/qml/{components => }/MachineAndConfigurationSelector.qml (94%) rename resources/qml/{components => }/ViewOrientationControls.qml (100%) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index ab1ccc15df..4d6b0a314b 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -7,8 +7,6 @@ import QtQuick.Controls 2.1 import UM 1.4 as UM import Cura 1.1 as Cura -import "../components" - Column { property var profile: null diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml index d224de44bb..1f3cd51f26 100644 --- a/resources/qml/Account/GeneralOperations.qml +++ b/resources/qml/Account/GeneralOperations.qml @@ -7,13 +7,11 @@ import QtQuick.Controls 1.1 import UM 1.4 as UM import Cura 1.1 as Cura -import "../components" - Row { spacing: UM.Theme.getSize("default_margin").width - ActionButton + Cura.ActionButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height @@ -25,7 +23,7 @@ Row onClicked: Qt.openUrlExternally("https://account.ultimaker.com") } - ActionButton + Cura.ActionButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index 1704254ed3..ffcf518b6e 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -7,13 +7,11 @@ import QtQuick.Controls 1.1 import UM 1.4 as UM import Cura 1.1 as Cura -import "../components" - Row { spacing: UM.Theme.getSize("default_margin").width - ActionButton + Cura.ActionButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height @@ -25,7 +23,7 @@ Row onClicked: Qt.openUrlExternally("https://account.ultimaker.com") } - ActionButton + Cura.ActionButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height diff --git a/resources/qml/components/ActionButton.qml b/resources/qml/ActionButton.qml similarity index 100% rename from resources/qml/components/ActionButton.qml rename to resources/qml/ActionButton.qml diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 8955cb9598..304f78e633 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -13,7 +13,6 @@ import Cura 1.1 as Cura import "Dialogs" import "Menus" import "Skeleton" -import "components" UM.MainWindow { diff --git a/resources/qml/components/MachineAndConfigurationSelector.qml b/resources/qml/MachineAndConfigurationSelector.qml similarity index 94% rename from resources/qml/components/MachineAndConfigurationSelector.qml rename to resources/qml/MachineAndConfigurationSelector.qml index 5b919c42d8..15b9ca6dd6 100644 --- a/resources/qml/components/MachineAndConfigurationSelector.qml +++ b/resources/qml/MachineAndConfigurationSelector.qml @@ -5,9 +5,8 @@ import QtQuick 2.7 import UM 1.2 as UM import Cura 1.0 as Cura -import "../Menus" -import "../Menus/ConfigurationMenu" -import ".." +import "Menus" +import "Menus/ConfigurationMenu" Rectangle { diff --git a/resources/qml/ProfileAndSettingComponent.qml b/resources/qml/ProfileAndSettingComponent.qml index 33c2f37fb1..dbded90576 100644 --- a/resources/qml/ProfileAndSettingComponent.qml +++ b/resources/qml/ProfileAndSettingComponent.qml @@ -9,8 +9,6 @@ import UM 1.2 as UM import Cura 1.0 as Cura import "Menus" import "Menus/ConfigurationMenu" -import "components" - Rectangle { diff --git a/resources/qml/Skeleton/ApplicationViews.qml b/resources/qml/Skeleton/ApplicationViews.qml index eb8ab16fae..d91837a2db 100644 --- a/resources/qml/Skeleton/ApplicationViews.qml +++ b/resources/qml/Skeleton/ApplicationViews.qml @@ -9,7 +9,6 @@ import QtQuick.Layouts 1.1 import UM 1.4 as UM import Cura 1.0 as Cura -import "../components" // This item contains the views selector, a combobox that is dynamically created from // the list of available Views (packages that create different visualizations of the diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index f08a0aaca3..7344d01436 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -8,7 +8,6 @@ import QtQuick.Controls.Styles 1.1 import UM 1.4 as UM import Cura 1.0 as Cura -import "../components" import "../Account" Rectangle diff --git a/resources/qml/components/ViewOrientationControls.qml b/resources/qml/ViewOrientationControls.qml similarity index 100% rename from resources/qml/components/ViewOrientationControls.qml rename to resources/qml/ViewOrientationControls.qml diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 5083b5e80a..b9306b14bc 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -1,5 +1,6 @@ module Cura -MachineAndConfigurationSelector 1.0 components/MachineAndConfigurationSelector.qml +MachineAndConfigurationSelector 1.0 MachineAndConfigurationSelector.qml MaterialAndVariantSelector 1.0 MaterialAndVariantSelector.qml -ProfileAndSettingComponent 1.0 ProfileAndSettingComponent.qml \ No newline at end of file +ProfileAndSettingComponent 1.0 ProfileAndSettingComponent.qml +ActionButton 1.0 ActionButton.qml \ No newline at end of file From d2baef97c4e2d014884e22537330e4ecc4b34cf5 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 11:07:03 +0200 Subject: [PATCH 0028/1039] Fix tooltips for settings CURA-5772 --- plugins/PrepareStage/PrepareMenu.qml | 12 +- resources/qml/Cura.qml | 8 +- resources/qml/ProfileAndSettingComponent.qml | 246 +------------------ 3 files changed, 24 insertions(+), 242 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index eb09326524..353c4df51a 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -10,6 +10,10 @@ Row { spacing: UM.Theme.getSize("default_margin").width + // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. + signal showTooltip(Item item, point location, string text) + signal hideTooltip() + UM.I18nCatalog { id: catalog @@ -18,12 +22,12 @@ Row Button { - id: openFileButton; - text: catalog.i18nc("@action:button", "Open File"); + id: openFileButton + text: catalog.i18nc("@action:button", "Open File") iconSource: UM.Theme.getIcon("load") style: UM.Theme.styles.tool_button tooltip: "" - action: Cura.Actions.open; + action: Cura.Actions.open } Cura.MachineAndConfigurationSelector @@ -38,5 +42,7 @@ Row Cura.ProfileAndSettingComponent { width: UM.Theme.getSize("sidebar").width + onShowTooltip: parent.showTooltip(item, location, text) + onHideTooltip: parent.hideTooltip() } } \ No newline at end of file diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 304f78e633..97cdc94d64 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -163,10 +163,16 @@ UM.MainWindow } height: 50 - source: UM.Controller.activeStage.stageMenuComponent } + Connections + { + target: stageMenu.item + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltop: base.hideTooltip() + } + JobSpecs { id: jobSpecs diff --git a/resources/qml/ProfileAndSettingComponent.qml b/resources/qml/ProfileAndSettingComponent.qml index dbded90576..b367c1130f 100644 --- a/resources/qml/ProfileAndSettingComponent.qml +++ b/resources/qml/ProfileAndSettingComponent.qml @@ -28,6 +28,10 @@ Rectangle color: UM.Theme.getColor("sidebar") UM.I18nCatalog { id: catalog; name:"cura"} + // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. + signal showTooltip(Item item, point location, string text) + signal hideTooltip() + Timer { id: tooltipDelayTimer @@ -42,18 +46,6 @@ Rectangle } } - function showTooltip(item, position, text) - { - tooltip.text = text; - position = item.mapToItem(base, position.x - UM.Theme.getSize("default_arrow").width, position.y); - tooltip.show(position); - } - - function hideTooltip() - { - tooltip.hide(); - } - function strPadLeft(string, pad, length) { return (new Array(length + 1).join(pad) + string).slice(-length); @@ -205,241 +197,19 @@ Rectangle { anchors.fill: parent visible: currentModeIndex == 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() } SidebarSimple { anchors.fill: parent visible: currentModeIndex != 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() } } - /*Item - { - id: printSpecs - anchors.left: parent.left - anchors.bottom: parent.bottom - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height - height: timeDetails.height + costSpec.height - width: base.width - (saveButton.buttonRowWidth + UM.Theme.getSize("sidebar_margin").width) - - Label - { - id: timeDetails - anchors.left: parent.left - anchors.bottom: costSpec.top - font: UM.Theme.getFont("large") - color: UM.Theme.getColor("text_subtext") - text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label Hours and minutes", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short) - renderType: Text.NativeRendering - - MouseArea - { - id: timeDetailsMouseArea - anchors.fill: parent - hoverEnabled: true - - onEntered: - { - if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) - { - // All the time information for the different features is achieved - var print_time = PrintInformation.getFeaturePrintTimes(); - var total_seconds = parseInt(base.printDuration.getDisplayString(UM.DurationFormat.Seconds)) - - // A message is created and displayed when the user hover the time label - var tooltip_html = "%1
".arg(catalog.i18nc("@tooltip", "Time specification")); - for(var feature in print_time) - { - if(!print_time[feature].isTotalDurationZero) - { - tooltip_html += "" + - "".arg(print_time[feature].getDisplayString(UM.DurationFormat.ISO8601).slice(0,-3)) + - "".arg(Math.round(100 * parseInt(print_time[feature].getDisplayString(UM.DurationFormat.Seconds)) / total_seconds)) + - ""; - } - } - tooltip_html += "
" + feature + ":  %1  %1%
"; - - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), tooltip_html); - } - } - onExited: - { - base.hideTooltip(); - } - } - } - - Label - { - function formatRow(items) - { - var row_html = ""; - for(var item = 0; item < items.length; item++) - { - if (item == 0) - { - row_html += "%1".arg(items[item]); - } - else - { - row_html += "  %1".arg(items[item]); - } - } - row_html += ""; - return row_html; - } - - function getSpecsData() - { - var lengths = []; - var total_length = 0; - var weights = []; - var total_weight = 0; - var costs = []; - var total_cost = 0; - var some_costs_known = false; - var names = []; - if(base.printMaterialLengths) - { - for(var index = 0; index < base.printMaterialLengths.length; index++) - { - if(base.printMaterialLengths[index] > 0) - { - names.push(base.printMaterialNames[index]); - lengths.push(base.printMaterialLengths[index].toFixed(2)); - weights.push(String(Math.round(base.printMaterialWeights[index]))); - var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); - costs.push(cost); - if(cost > 0) - { - some_costs_known = true; - } - - total_length += base.printMaterialLengths[index]; - total_weight += base.printMaterialWeights[index]; - total_cost += base.printMaterialCosts[index]; - } - } - } - if(lengths.length == 0) - { - lengths = ["0.00"]; - weights = ["0"]; - costs = ["0.00"]; - } - - var tooltip_html = "%1
".arg(catalog.i18nc("@label", "Cost specification")); - for(var index = 0; index < lengths.length; index++) - { - tooltip_html += formatRow([ - "%1:".arg(names[index]), - catalog.i18nc("@label m for meter", "%1m").arg(lengths[index]), - catalog.i18nc("@label g for grams", "%1g").arg(weights[index]), - "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(costs[index]), - ]); - } - if(lengths.length > 1) - { - tooltip_html += formatRow([ - catalog.i18nc("@label", "Total:"), - catalog.i18nc("@label m for meter", "%1m").arg(total_length.toFixed(2)), - catalog.i18nc("@label g for grams", "%1g").arg(Math.round(total_weight)), - "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(total_cost.toFixed(2)), - ]); - } - tooltip_html += "
"; - tooltipText = tooltip_html; - - return tooltipText - } - - id: costSpec - anchors.left: parent.left - anchors.bottom: parent.bottom - font: UM.Theme.getFont("very_small") - renderType: Text.NativeRendering - color: UM.Theme.getColor("text_subtext") - elide: Text.ElideMiddle - width: parent.width - property string tooltipText - text: - { - var lengths = []; - var weights = []; - var costs = []; - var someCostsKnown = false; - if(base.printMaterialLengths) { - for(var index = 0; index < base.printMaterialLengths.length; index++) - { - if(base.printMaterialLengths[index] > 0) - { - lengths.push(base.printMaterialLengths[index].toFixed(2)); - weights.push(String(Math.round(base.printMaterialWeights[index]))); - var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); - costs.push(cost); - if(cost > 0) - { - someCostsKnown = true; - } - } - } - } - if(lengths.length == 0) - { - lengths = ["0.00"]; - weights = ["0"]; - costs = ["0.00"]; - } - var result = lengths.join(" + ") + "m / ~ " + weights.join(" + ") + "g"; - if(someCostsKnown) - { - result += " / ~ " + costs.join(" + ") + " " + UM.Preferences.getValue("cura/currency"); - } - return result; - } - MouseArea - { - id: costSpecMouseArea - anchors.fill: parent - hoverEnabled: true - - onEntered: - { - - if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) - { - var show_data = costSpec.getSpecsData() - - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), show_data); - } - } - onExited: - { - base.hideTooltip(); - } - } - } - }*/ - - // SaveButton is actually the bottom footer panel. - /*SaveButton - { - id: saveButton - implicitWidth: base.width - anchors.top: footerSeparator.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height - anchors.bottom: parent.bottom - }*/ - - /* - SidebarTooltip - { - id: tooltip - }*/ - // Setting mode: Recommended or Custom ListModel { From 0a1dad92ea50beeab3bdf7fc487e4d48e1169142 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 13:41:44 +0200 Subject: [PATCH 0029/1039] Change AvatarImage so it uses aliases instead of properties I've changed this because it makes for much cleaner QML CURA-5772 --- resources/qml/Account/AvatarImage.qml | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index 96c3cd2330..0e0d182018 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -7,19 +7,19 @@ import UM 1.4 as UM Item { + // This item shows the provided image while applying a round mask to it. + // It also shows a round border around it. The color is defined by the outlineColor property. + id: avatar - property var source - property var fallbackSource: UM.Theme.getImage("avatar_default") - property var outlineColor: UM.Theme.getColor("account_widget_ouline_active") + property alias source: profileImage.source + property alias outlineColor: profileImageOutline.color Image { id: profileImage - source: avatar.source ? avatar.source : UM.Theme.getImage("avatar_default") - sourceSize: Qt.size(parent.width, parent.height) - width: parent.width - height: parent.height + source: UM.Theme.getImage("avatar_default") + anchors.fill: parent fillMode: Image.PreserveAspectCrop visible: false } @@ -29,8 +29,7 @@ Item id: profileImageMask source: UM.Theme.getIcon("circle_mask") sourceSize: Qt.size(parent.width, parent.height) - width: parent.width - height: parent.height + anchors.fill: parent color: UM.Theme.getColor("topheader_background") visible: false } @@ -49,8 +48,7 @@ Item id: profileImageOutline source: UM.Theme.getIcon("circle_outline") sourceSize: Qt.size(parent.width, parent.height) - width: parent.width - height: parent.height - color: avatar.outlineColor + anchors.fill: parent + color: UM.Theme.getColor("account_widget_ouline_active") } } \ No newline at end of file From 62c99804381a0d8647791b888cf163499a22a5ca Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 14:07:01 +0200 Subject: [PATCH 0030/1039] Move SidebarTooltip so that it's no longer ocluded by other objects CURA-5772 --- resources/qml/Cura.qml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 97cdc94d64..bf71bd8d94 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -63,11 +63,6 @@ UM.MainWindow id: backgroundItem anchors.fill: parent - SidebarTooltip - { - id: tooltip - } - signal hasMesh(string name) //this signal sends the filebase name so it can be used for the JobSpecs.qml function getMeshName(path) { @@ -274,6 +269,11 @@ UM.MainWindow } } } + + SidebarTooltip + { + id: tooltip + } } UM.PreferencesDialog From f6ae19003ba77a5da9d8a8a90016422f0b9ef297 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 14:07:30 +0200 Subject: [PATCH 0031/1039] The AccountDetails Panel is now an actual popup This ensures that it's always visible (previously it was ocluded by the StageMenu) CURA-5772 --- resources/qml/Account/AccountWidget.qml | 65 ++++++++++++------------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index 1d9541de2c..1b4e6de1b2 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -7,62 +7,59 @@ import QtQuick.Controls 2.1 import UM 1.4 as UM import Cura 1.1 as Cura -Item +Button { id: accountWidget property var profile: Cura.API.account.userProfile property var loggedIn: Cura.API.account.isLoggedIn - height: UM.Theme.getSize("topheader").height - width: UM.Theme.getSize("topheader").height + + implicitHeight: UM.Theme.getSize("topheader").height + implicitWidth: UM.Theme.getSize("topheader").height + AvatarImage { id: avatar + + width: Math.round(0.8 * parent.width) height: Math.round(0.8 * parent.height) anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter + source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") outlineColor: loggedIn ? UM.Theme.getColor("account_widget_ouline_active") : UM.Theme.getColor("account_widget_ouline_inactive") } - MouseArea + background: Item {} + + onClicked: popup.open() + + Popup { - anchors.fill: parent - onClicked: accountManagementPanel.visible = !accountManagementPanel.visible // Collapse/Expand the dropdown panel - } + id: popup - UM.PointingRectangle - { - id: accountManagementPanel + y: parent.height + UM.Theme.getSize("default_arrow").height + x: (parent.width - width) - width: panel.width - height: panel.height - - anchors - { - top: parent.bottom - topMargin: UM.Theme.getSize("default_margin").height - right: parent.right - } - - target: Qt.point(parent.width / 2, parent.bottom) - arrowSize: UM.Theme.getSize("default_arrow").width - - visible: false - opacity: visible ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 100 } } - - color: UM.Theme.getColor("tool_panel_background") - borderColor: UM.Theme.getColor("lining") - borderWidth: UM.Theme.getSize("default_lining").width - - // Shows the user management options or general options to create account - AccountDetails + contentItem: AccountDetails { id: panel profile: Cura.API.account.userProfile loggedIn: Cura.API.account.isLoggedIn } + + background: UM.PointingRectangle + { + opacity: visible ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 100 } } + color: UM.Theme.getColor("tool_panel_background") + borderColor: UM.Theme.getColor("lining") + borderWidth: UM.Theme.getSize("default_lining").width + + target: Qt.point(width - (accountWidget.width / 2), -10) + + arrowSize: UM.Theme.getSize("default_arrow").width + } } -} \ No newline at end of file +} From 4e432a5f06c5726f4c83e8127636470867274631 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 14:21:03 +0200 Subject: [PATCH 0032/1039] Remove SidebarHeader It has been replaced by others, so we don't need it anymore CURA-5772 --- resources/qml/SidebarHeader.qml | 618 -------------------------------- 1 file changed, 618 deletions(-) delete mode 100644 resources/qml/SidebarHeader.qml diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml deleted file mode 100644 index 15ca60e6e3..0000000000 --- a/resources/qml/SidebarHeader.qml +++ /dev/null @@ -1,618 +0,0 @@ -// Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -import "Menus" - -Column -{ - id: base; - - property int currentExtruderIndex: Cura.ExtruderManager.activeExtruderIndex; - property bool currentExtruderVisible: extrudersList.visible; - property bool printerConnected: Cura.MachineManager.printerConnected - property bool hasManyPrinterTypes: - { - if (printerConnected) - { - if (Cura.MachineManager.printerOutputDevices[0].connectedPrintersTypeCount != null) - { - return Cura.MachineManager.printerOutputDevices[0].connectedPrintersTypeCount.length > 1; - } - } - return false; - } - property bool buildplateCompatibilityError: !Cura.MachineManager.variantBuildplateCompatible && !Cura.MachineManager.variantBuildplateUsable - property bool buildplateCompatibilityWarning: Cura.MachineManager.variantBuildplateUsable - - spacing: Math.round(UM.Theme.getSize("sidebar_margin").width * 0.9) - - signal showTooltip(Item item, point location, string text) - signal hideTooltip() - - Item - { - id: initialSeparator - anchors - { - left: parent.left - right: parent.right - } - visible: printerTypeSelectionRow.visible || buildplateRow.visible || extruderSelectionRow.visible - height: UM.Theme.getSize("default_lining").height - width: height - } - - // Printer Type Row - Item - { - id: printerTypeSelectionRow - height: UM.Theme.getSize("sidebar_setup").height - visible: printerConnected && hasManyPrinterTypes && !sidebar.hideSettings - - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width - } - - Label - { - id: configurationLabel - text: catalog.i18nc("@label", "Printer type"); - width: Math.round(parent.width * 0.4 - UM.Theme.getSize("default_margin").width) - height: parent.height - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - ToolButton - { - id: printerTypeSelection - text: Cura.MachineManager.activeMachineDefinitionName - tooltip: Cura.MachineManager.activeMachineDefinitionName - height: UM.Theme.getSize("setting_control").height - width: Math.round(parent.width * 0.7) + UM.Theme.getSize("sidebar_margin").width - anchors.right: parent.right - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - - menu: PrinterTypeMenu { } - } - } - - Rectangle - { - id: headerSeparator - width: parent.width - visible: printerTypeSelectionRow.visible - height: visible ? UM.Theme.getSize("sidebar_lining").height : 0 - color: UM.Theme.getColor("sidebar_lining") - } - - // Extruder Row - Item - { - id: extruderSelectionRow - width: parent.width - height: Math.round(UM.Theme.getSize("sidebar_tabs").height * 2 / 3) - visible: machineExtruderCount.properties.value > 1 - - anchors - { - left: parent.left - leftMargin: Math.round(UM.Theme.getSize("sidebar_margin").width * 0.7) - right: parent.right - rightMargin: Math.round(UM.Theme.getSize("sidebar_margin").width * 0.7) - topMargin: UM.Theme.getSize("sidebar_margin").height - } - - ListView - { - id: extrudersList - property var index: 0 - - height: UM.Theme.getSize("sidebar_header_mode_tabs").height - width: Math.round(parent.width) - boundsBehavior: Flickable.StopAtBounds - - anchors - { - left: parent.left - leftMargin: Math.round(UM.Theme.getSize("default_margin").width / 2) - right: parent.right - rightMargin: Math.round(UM.Theme.getSize("default_margin").width / 2) - verticalCenter: parent.verticalCenter - } - - ExclusiveGroup { id: extruderMenuGroup; } - - orientation: ListView.Horizontal - - model: Cura.ExtrudersModel { id: extrudersModel; } - - Connections - { - target: Cura.MachineManager - onGlobalContainerChanged: forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - } - - delegate: Button - { - height: ListView.view.height - width: Math.round(ListView.view.width / extrudersModel.rowCount()) - - text: model.name - tooltip: model.name - exclusiveGroup: extruderMenuGroup - checked: base.currentExtruderIndex == index - - property bool extruder_enabled: true - - MouseArea - { - anchors.fill: parent - acceptedButtons: Qt.LeftButton | Qt.RightButton - onClicked: { - switch (mouse.button) { - case Qt.LeftButton: - extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled - if (extruder_enabled) - { - forceActiveFocus(); // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - Cura.ExtruderManager.setActiveExtruderIndex(index); - } - break; - case Qt.RightButton: - extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled - extruderMenu.popup(); - break; - } - - } - } - - Menu - { - id: extruderMenu - - MenuItem { - text: catalog.i18nc("@action:inmenu", "Enable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) - visible: !extruder_enabled // using an intermediate variable prevents an empty popup that occured now and then - } - - MenuItem { - text: catalog.i18nc("@action:inmenu", "Disable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) - visible: extruder_enabled - enabled: Cura.MachineManager.numberExtrudersEnabled > 1 - } - } - - style: ButtonStyle - { - background: Item - { - function buttonBackgroundColor(index) - { - var extruder = Cura.MachineManager.getExtruder(index) - if (extruder.isEnabled) { - return (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : - control.hovered ? UM.Theme.getColor("action_button_hovered") : - UM.Theme.getColor("action_button") - } else { - return UM.Theme.getColor("action_button_disabled") - } - } - - function buttonBorderColor(index) - { - var extruder = Cura.MachineManager.getExtruder(index) - if (extruder.isEnabled) { - return (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : - control.hovered ? UM.Theme.getColor("action_button_hovered_border") : - UM.Theme.getColor("action_button_border") - } else { - return UM.Theme.getColor("action_button_disabled_border") - } - } - - function buttonColor(index) { - var extruder = Cura.MachineManager.getExtruder(index); - if (extruder.isEnabled) - { - return ( - control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : - UM.Theme.getColor("action_button_text"); - } else { - return UM.Theme.getColor("action_button_disabled_text"); - } - } - - Rectangle - { - anchors.fill: parent - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: buttonBorderColor(index) - color: buttonBackgroundColor(index) - Behavior on color { ColorAnimation { duration: 50; } } - } - - Item - { - id: extruderButtonFace - anchors.centerIn: parent - - width: { - var extruderTextWidth = extruderStaticText.visible ? extruderStaticText.width : 0; - var iconWidth = extruderIconItem.width; - return Math.round(extruderTextWidth + iconWidth + UM.Theme.getSize("default_margin").width / 2); - } - - // Static text "Extruder" - Label - { - id: extruderStaticText - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - - color: buttonColor(index) - - font: UM.Theme.getFont("large_nonbold") - text: catalog.i18nc("@label", "Extruder") - visible: width < (control.width - extruderIconItem.width - UM.Theme.getSize("default_margin").width) - elide: Text.ElideRight - } - - // Everything for the extruder icon - Item - { - id: extruderIconItem - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - - property var sizeToUse: - { - var minimumWidth = control.width < UM.Theme.getSize("button").width ? control.width : UM.Theme.getSize("button").width; - var minimumHeight = control.height < UM.Theme.getSize("button").height ? control.height : UM.Theme.getSize("button").height; - var minimumSize = minimumWidth < minimumHeight ? minimumWidth : minimumHeight; - minimumSize -= Math.round(UM.Theme.getSize("default_margin").width / 2); - return minimumSize; - } - - width: sizeToUse - height: sizeToUse - - UM.RecolorImage { - id: mainCircle - anchors.fill: parent - - sourceSize.width: parent.width - sourceSize.height: parent.width - source: UM.Theme.getIcon("extruder_button") - - color: extruderNumberText.color - } - - Label - { - id: extruderNumberText - anchors.centerIn: parent - text: index + 1; - color: buttonColor(index) - font: UM.Theme.getFont("default_bold") - } - - // Material colour circle - // Only draw the filling colour of the material inside the SVG border. - Rectangle - { - id: materialColorCircle - - anchors - { - right: parent.right - top: parent.top - rightMargin: Math.round(parent.sizeToUse * 0.01) - topMargin: Math.round(parent.sizeToUse * 0.05) - } - - color: model.color - - width: Math.round(parent.width * 0.35) - height: Math.round(parent.height * 0.35) - radius: Math.round(width / 2) - - border.width: 1 - border.color: UM.Theme.getColor("extruder_button_material_border") - - opacity: !control.checked ? 0.6 : 1.0 - } - } - } - } - label: Item {} - } - } - } - } - - Item - { - id: variantRowSpacer - height: Math.round(UM.Theme.getSize("sidebar_margin").height / 4) - width: height - visible: !extruderSelectionRow.visible && !initialSeparator.visible - } - - // Material Row - Item - { - id: materialRow - height: UM.Theme.getSize("sidebar_setup").height - visible: Cura.MachineManager.hasMaterials && !sidebar.hideSettings - - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width - } - - Label - { - id: materialLabel - text: catalog.i18nc("@label", "Material"); - width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) - height: parent.height - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - ToolButton - { - id: materialSelection - - property var activeExtruder: Cura.MachineManager.activeStack - property var hasActiveExtruder: activeExtruder != null - property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" - - text: currentRootMaterialName - tooltip: currentRootMaterialName - visible: Cura.MachineManager.hasMaterials - enabled: !extrudersList.visible || base.currentExtruderIndex > -1 - height: UM.Theme.getSize("setting_control").height - width: Math.round(parent.width * 0.7) + UM.Theme.getSize("sidebar_margin").width - anchors.right: parent.right - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - menu: MaterialMenu - { - extruderIndex: base.currentExtruderIndex - } - - property var valueError: !isMaterialSupported() - property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - - function isMaterialSupported () - { - if (!hasActiveExtruder) - { - return false; - } - return Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") == "True" - } - } - } - - //Variant row - Item - { - id: variantRow - height: UM.Theme.getSize("sidebar_setup").height - visible: Cura.MachineManager.hasVariants && !sidebar.hideSettings - - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width - } - - Label - { - id: variantLabel - text: Cura.MachineManager.activeDefinitionVariantsName; - width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) - height: parent.height - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - ToolButton - { - id: variantSelection - text: Cura.MachineManager.activeVariantName - tooltip: Cura.MachineManager.activeVariantName; - visible: Cura.MachineManager.hasVariants - - height: UM.Theme.getSize("setting_control").height - width: Math.round(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) - anchors.right: parent.right - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - - menu: NozzleMenu { extruderIndex: base.currentExtruderIndex } - } - } - - Rectangle - { - id: buildplateSeparator - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width - width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width - visible: buildplateRow.visible - height: visible ? UM.Theme.getSize("sidebar_lining_thin").height : 0 - color: UM.Theme.getColor("sidebar_lining") - } - - //Buildplate row - Item - { - id: buildplateRow - height: UM.Theme.getSize("sidebar_setup").height - // TODO Only show in dev mode. Remove check when feature ready - visible: CuraSDKVersion == "dev" ? Cura.MachineManager.hasVariantBuildplates && !sidebar.hideSettings : false - - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width - } - - Label - { - id: bulidplateLabel - text: catalog.i18nc("@label", "Build plate"); - width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) - height: parent.height - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - ToolButton - { - id: buildplateSelection - text: Cura.MachineManager.activeVariantBuildplateName - tooltip: Cura.MachineManager.activeVariantBuildplateName - visible: Cura.MachineManager.hasVariantBuildplates - - height: UM.Theme.getSize("setting_control").height - width: Math.floor(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) - anchors.right: parent.right - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - - menu: BuildplateMenu {} - - property var valueError: !Cura.MachineManager.variantBuildplateCompatible && !Cura.MachineManager.variantBuildplateUsable - property var valueWarning: Cura.MachineManager.variantBuildplateUsable - } - } - - // Material info row - Item - { - id: materialInfoRow - height: Math.round(UM.Theme.getSize("sidebar_setup").height / 2) - visible: (Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariantBuildplates) && !sidebar.hideSettings - - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width - } - - // TODO This was added to replace the buildplate selector. Remove this component when the feature is ready - Label - { - id: materialCompatibilityLabel - y: -Math.round(UM.Theme.getSize("sidebar_margin").height / 3) - anchors.left: parent.left - width: parent.width - materialCompatibilityLink.width - text: catalog.i18nc("@label", "Use glue with this material combination") - font: UM.Theme.getFont("very_small") - color: UM.Theme.getColor("text") - visible: CuraSDKVersion == "dev" ? false : buildplateCompatibilityError || buildplateCompatibilityWarning - wrapMode: Text.WordWrap - opacity: 0.5 - } - - Item - { - id: materialCompatibilityLink - height: UM.Theme.getSize("sidebar_setup").height - anchors.right: parent.right - width: childrenRect.width + UM.Theme.getSize("default_margin").width - - UM.RecolorImage { - id: warningImage - anchors.right: materialInfoLabel.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: parent.Bottom - source: UM.Theme.getIcon("warning") - width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height - sourceSize.width: width - sourceSize.height: height - color: UM.Theme.getColor("material_compatibility_warning") - visible: !Cura.MachineManager.isCurrentSetupSupported || buildplateCompatibilityError || buildplateCompatibilityWarning - } - - Label { - id: materialInfoLabel - wrapMode: Text.WordWrap - text: "" + catalog.i18nc("@label", "Check compatibility") + "" - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - linkColor: UM.Theme.getColor("text_link") - verticalAlignment: Text.AlignTop - anchors.top: parent.top - anchors.right: parent.right - anchors.bottom: parent.bottom - - MouseArea { - anchors.fill: parent - hoverEnabled: true - onClicked: { - // open the material URL with web browser - var url = "https://ultimaker.com/incoming-links/cura/material-compatibilty" - Qt.openUrlExternally(url); - } - onEntered: { - var content = catalog.i18nc("@tooltip", "Click to check the material compatibility on Ultimaker.com."); - base.showTooltip( - materialInfoRow, - Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), - catalog.i18nc("@tooltip", content) - ); - } - onExited: base.hideTooltip(); - } - } - } - } - - UM.SettingPropertyProvider - { - id: machineExtruderCount - - containerStack: Cura.MachineManager.activeMachine - key: "machine_extruder_count" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.I18nCatalog { id: catalog; name:"cura" } -} From 1e3a9ff57cabc85ef2cea5c0346d620e57f48493 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 14:23:42 +0200 Subject: [PATCH 0033/1039] Removed the expandSidebar action Since we don't even have a sidebar anymore, there is no point in expanding it. --- resources/qml/Actions.qml | 9 --------- resources/qml/Menus/ViewMenu.qml | 6 ++---- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 1b1881ab76..30295f6e9b 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -23,8 +23,6 @@ Item property alias viewLeftSideCamera: viewLeftSideCameraAction; property alias viewRightSideCamera: viewRightSideCameraAction; - property alias expandSidebar: expandSidebarAction; - property alias deleteSelection: deleteSelectionAction; property alias centerSelection: centerSelectionAction; property alias multiplySelection: multiplySelectionAction; @@ -415,11 +413,4 @@ Item text: catalog.i18nc("@action:menu", "Browse packages...") iconName: "plugins_browse" } - - Action - { - id: expandSidebarAction; - text: catalog.i18nc("@action:inmenu menubar:view","Expand/Collapse Sidebar"); - shortcut: "Ctrl+E"; - } } diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index 9a2e603673..593bd63bcc 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -44,7 +44,8 @@ Menu MenuItem { action: Cura.Actions.viewRightSideCamera; } } - MenuSeparator { + MenuSeparator + { visible: UM.Preferences.getValue("cura/use_multi_build_plate") } @@ -72,8 +73,5 @@ Menu MenuSeparator {} - MenuItem { action: Cura.Actions.expandSidebar; } - - MenuSeparator {} MenuItem { action: Cura.Actions.toggleFullScreen; } } From a473a46a35c360605226c0cf71f7efed51ced0fc Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 15:07:46 +0200 Subject: [PATCH 0034/1039] Add a bit more documentation to explain what the elements do CURA-5772 --- resources/qml/Cura.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index bf71bd8d94..df5995de39 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -114,6 +114,7 @@ UM.MainWindow DropArea { + // The drop area is here to handle files being dropped onto Cura. anchors.fill: parent onDropped: { @@ -181,6 +182,8 @@ UM.MainWindow Toolbar { + // The toolbar is the left bar that is populated by all the tools (which are dynamicly populated by + // plugins) id: toolbar property int mouseX: base.mouseX @@ -206,6 +209,7 @@ UM.MainWindow Loader { + // A stage can control this area. If nothing is set, it will therefor show the 3D view. id: main anchors From a7edd893d796df3c9537ca58c4794f1aaac7b43e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 15:08:58 +0200 Subject: [PATCH 0035/1039] Change the order in which ViewOrientationControls and ProgressAndSaveWidget are drawn. This will ensure that if a stage sets a mainComponent that it won't have any other items drawn over it. CURA-5772 --- resources/qml/Cura.qml | 60 +++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index df5995de39..39443f9b0b 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -207,6 +207,36 @@ UM.MainWindow } } + ViewOrientationControls + { + id: viewOrientationControls + + anchors + { + left: parent.left + margins: UM.Theme.getSize("default_margin").width + + bottom: parent.bottom + } + } + + ProgressAndSaveWidget + { + anchors.right: parent.right + anchors.bottom: parent.bottom + width: UM.Theme.getSize("sidebar").width + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + onShowTooltip: + { + base.showTooltip(item, location, text) + } + onHideTooltip: + { + base.hideTooltip() + } + } + Loader { // A stage can control this area. If nothing is set, it will therefor show the 3D view. @@ -242,36 +272,6 @@ UM.MainWindow bottomMargin: UM.Theme.getSize("default_margin").height } } - - ViewOrientationControls - { - id: viewOrientationControls - - anchors - { - left: parent.left - margins: UM.Theme.getSize("default_margin").width - - bottom: parent.bottom - } - } - - ProgressAndSaveWidget - { - anchors.right: parent.right - anchors.bottom: parent.bottom - width: UM.Theme.getSize("sidebar").width - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height - onShowTooltip: - { - base.showTooltip(item, location, text) - } - onHideTooltip: - { - base.hideTooltip() - } - } } SidebarTooltip From 1c70a62df67918acb63ff233daa650c506f2ec7c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 15:10:50 +0200 Subject: [PATCH 0036/1039] Fix typo Derp. CURA-5772 --- resources/qml/Cura.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 39443f9b0b..517affe1b1 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -166,7 +166,7 @@ UM.MainWindow { target: stageMenu.item onShowTooltip: base.showTooltip(item, location, text) - onHideTooltop: base.hideTooltip() + onHideTooltip: base.hideTooltip() } JobSpecs From cd5a0a84a80ae0de2ed518cc18e3e19a67c88f79 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 15:14:05 +0200 Subject: [PATCH 0037/1039] Horizontally align the prepare menu bar CURA-5772 --- plugins/PrepareStage/PrepareMenu.qml | 51 +++++++++++++++------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 353c4df51a..ea247bf258 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -6,10 +6,9 @@ import UM 1.3 as UM import Cura 1.1 as Cura -Row +Item { - spacing: UM.Theme.getSize("default_margin").width - + id: prepareMenu // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. signal showTooltip(Item item, point location, string text) signal hideTooltip() @@ -20,29 +19,35 @@ Row name:"cura" } - Button + Row { - id: openFileButton - text: catalog.i18nc("@action:button", "Open File") - iconSource: UM.Theme.getIcon("load") - style: UM.Theme.styles.tool_button - tooltip: "" - action: Cura.Actions.open - } + spacing: UM.Theme.getSize("default_margin").width + anchors.horizontalCenter: parent.horizontalCenter - Cura.MachineAndConfigurationSelector - { - } + Button + { + id: openFileButton + text: catalog.i18nc("@action:button", "Open File") + iconSource: UM.Theme.getIcon("load") + style: UM.Theme.styles.tool_button + tooltip: "" + action: Cura.Actions.open + } - Cura.MaterialAndVariantSelector - { - width: UM.Theme.getSize("sidebar").width - } + Cura.MachineAndConfigurationSelector + { + } - Cura.ProfileAndSettingComponent - { - width: UM.Theme.getSize("sidebar").width - onShowTooltip: parent.showTooltip(item, location, text) - onHideTooltip: parent.hideTooltip() + Cura.MaterialAndVariantSelector + { + width: UM.Theme.getSize("sidebar").width + } + + Cura.ProfileAndSettingComponent + { + width: UM.Theme.getSize("sidebar").width + onShowTooltip: prepareMenu.showTooltip(item, location, text) + onHideTooltip: prepareMenu.hideTooltip() + } } } \ No newline at end of file From 2455961ac7c63dba6fa5970506fd0b3e79310c91 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 15:16:28 +0200 Subject: [PATCH 0038/1039] Vertically allign the toolbar CURA-5772 --- resources/qml/Cura.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 517affe1b1..bb94435c69 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -189,9 +189,9 @@ UM.MainWindow property int mouseX: base.mouseX property int mouseY: base.mouseY - anchors { - top: stageMenu.bottom - topMargin: UM.Theme.getSize("window_margin").height + anchors + { + verticalCenter: parent.verticalCenter left: parent.left } } From 553e29b9b801d8c6679382f2fe29b4a17a4da72d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 15 Oct 2018 15:32:50 +0200 Subject: [PATCH 0039/1039] Fix QML warnings CURA-5772 --- resources/qml/Cura.qml | 6 +++--- resources/qml/MaterialAndVariantSelector.qml | 5 ++++- resources/qml/ProgressAndSaveWidget.qml | 2 +- resources/qml/Skeleton/TopHeader.qml | 1 - 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index bb94435c69..a3746a557b 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -159,7 +159,7 @@ UM.MainWindow } height: 50 - source: UM.Controller.activeStage.stageMenuComponent + source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : "" } Connections @@ -252,13 +252,13 @@ UM.MainWindow MouseArea { - visible: UM.Controller.activeStage.mainComponent != "" + visible: parent.source != "" anchors.fill: parent acceptedButtons: Qt.AllButtons onWheel: wheel.accepted = true } - source: UM.Controller.activeStage.mainComponent + source: UM.Controller.activeStage != null ? UM.Controller.activeStage.mainComponent : "" } UM.MessageStack diff --git a/resources/qml/MaterialAndVariantSelector.qml b/resources/qml/MaterialAndVariantSelector.qml index fff3ef1100..31a898f8ae 100644 --- a/resources/qml/MaterialAndVariantSelector.qml +++ b/resources/qml/MaterialAndVariantSelector.qml @@ -174,15 +174,18 @@ Rectangle font: UM.Theme.getFont("large_nonbold") text: catalog.i18nc("@label", "Extruder") - visible: width < (control.width - extruderIconItem.width - UM.Theme.getSize("default_margin").width) + visible: width < (control.width - extruderIcon.width - UM.Theme.getSize("default_margin").width) elide: Text.ElideRight } ExtruderIcon { // Round icon with the extruder number and material color indicator. + id: extruderIcon + anchors.verticalCenter: parent.verticalCenter anchors.left: extruderStaticText.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width width: control.height - Math.round(UM.Theme.getSize("default_margin").width / 2) height: width diff --git a/resources/qml/ProgressAndSaveWidget.qml b/resources/qml/ProgressAndSaveWidget.qml index 2fa5cf6149..1e82681164 100644 --- a/resources/qml/ProgressAndSaveWidget.qml +++ b/resources/qml/ProgressAndSaveWidget.qml @@ -20,7 +20,7 @@ Rectangle signal hideTooltip() // Also add an extra margin, as we ant some breathing room around the edges. - height: childrenRect.height + UM.Theme.getSize("sidebar_margin").height + height: saveButton.height + UM.Theme.getSize("sidebar_margin").height Label { id: timeDetails diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/Skeleton/TopHeader.qml index 7344d01436..867a6bafbb 100644 --- a/resources/qml/Skeleton/TopHeader.qml +++ b/resources/qml/Skeleton/TopHeader.qml @@ -93,7 +93,6 @@ Rectangle color: UM.Theme.getColor("topheader_button_text_active") font: UM.Theme.getFont("action_button") renderType: Text.NativeRendering - anchors.verticalCenter: control.verticalCenter } } From 304a9e11f3978dd4f2a30c649598583e0ddee5ee Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 17 Oct 2018 09:50:24 +0200 Subject: [PATCH 0040/1039] Moved view selection back into Cura QML It didn't make a whole lot of sense for it to be a seperate component, since it's probably going to change in the future CURA-5772 --- resources/qml/Cura.qml | 77 +++++++++++++++ resources/qml/Skeleton/ApplicationViews.qml | 101 -------------------- 2 files changed, 77 insertions(+), 101 deletions(-) delete mode 100644 resources/qml/Skeleton/ApplicationViews.qml diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index a3746a557b..a999e7deac 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -220,6 +220,83 @@ UM.MainWindow } } + ComboBox + { + // This item contains the views selector, a combobox that is dynamically created from + // the list of available Views (packages that create different visualizations of the + // scene). + id: viewModeButton + + anchors.left: viewOrientationControls.right + anchors.bottom: viewOrientationControls.bottom + + style: UM.Theme.styles.combobox + + model: UM.ViewModel { } + textRole: "name" + + // update the model's active index + function updateItemActiveFlags () + { + currentIndex = getActiveIndex() + for (var i = 0; i < model.rowCount(); i++) + { + model.getItem(i).active = (i == currentIndex) + } + } + + // get the index of the active model item on start + function getActiveIndex () + { + for (var i = 0; i < model.rowCount(); i++) + { + if (model.getItem(i).active) + { + return i; + } + } + return 0 + } + + // set the active index + function setActiveIndex(index) + { + UM.Controller.setActiveView(index) + // the connection to UM.ActiveView will trigger update so there is no reason to call it manually here + } + + onCurrentIndexChanged: + { + if (model.getItem(currentIndex).id != undefined) + { + viewModeButton.setActiveIndex(model.getItem(currentIndex).id) + } + } + currentIndex: getActiveIndex() + + // watch the active view proxy for changes made from the menu item + Connections + { + target: UM.ActiveView + onActiveViewChanged: viewModeButton.updateItemActiveFlags() + } + } + Loader + { + id: viewPanel + + anchors.bottom: viewModeButton.top + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.right: viewModeButton.right + + property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) + + height: childrenRect.height + width: childrenRect.width + + source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" + } + ProgressAndSaveWidget { anchors.right: parent.right diff --git a/resources/qml/Skeleton/ApplicationViews.qml b/resources/qml/Skeleton/ApplicationViews.qml deleted file mode 100644 index d91837a2db..0000000000 --- a/resources/qml/Skeleton/ApplicationViews.qml +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 - -import UM 1.4 as UM -import Cura 1.0 as Cura - - -// This item contains the views selector, a combobox that is dynamically created from -// the list of available Views (packages that create different visualizations of the -// scene). Aside from the selector, there is a row of buttons that change the orientation of the view. -Item -{ - id: applicationViewsSelector - - height: UM.Theme.getSize("views_selector").height - - - ComboBox - { - id: viewModeButton - - anchors - { - verticalCenter: parent.verticalCenter - right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width - } - - style: UM.Theme.styles.combobox - - model: UM.ViewModel { } - textRole: "name" - - // update the model's active index - function updateItemActiveFlags () - { - currentIndex = getActiveIndex() - for (var i = 0; i < model.rowCount(); i++) - { - model.getItem(i).active = (i == currentIndex) - } - } - - // get the index of the active model item on start - function getActiveIndex () - { - for (var i = 0; i < model.rowCount(); i++) - { - if (model.getItem(i).active) - { - return i; - } - } - return 0 - } - - // set the active index - function setActiveIndex(index) - { - UM.Controller.setActiveView(index) - // the connection to UM.ActiveView will trigger update so there is no reason to call it manually here - } - - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id != undefined) - { - viewModeButton.setActiveIndex(model.getItem(currentIndex).id) - } - } - currentIndex: getActiveIndex() - - // watch the active view proxy for changes made from the menu item - Connections - { - target: UM.ActiveView - onActiveViewChanged: viewModeButton.updateItemActiveFlags() - } - } - - Loader - { - id: viewPanel - - anchors.top: viewModeButton.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.right: viewModeButton.right - - property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) - - height: childrenRect.height - width: childrenRect.width - - source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" - } -} From 7fb72a1a58ad0d7522f53dbd00f57e44f829590c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 17 Oct 2018 16:13:43 +0200 Subject: [PATCH 0041/1039] Change Skeleton folder name to MainWindow. This folder is intended to store the files that construct the main window. All the parts. The rest of the components are stored in more specific folders. Contributes to CURA-5784. --- resources/qml/Cura.qml | 2 +- resources/qml/{Skeleton => MainWindow}/ApplicationMenu.qml | 0 resources/qml/{Skeleton => MainWindow}/TopHeader.qml | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename resources/qml/{Skeleton => MainWindow}/ApplicationMenu.qml (100%) rename resources/qml/{Skeleton => MainWindow}/TopHeader.qml (100%) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index a999e7deac..a58e7ef6fc 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -12,7 +12,7 @@ import Cura 1.1 as Cura import "Dialogs" import "Menus" -import "Skeleton" +import "MainWindow" UM.MainWindow { diff --git a/resources/qml/Skeleton/ApplicationMenu.qml b/resources/qml/MainWindow/ApplicationMenu.qml similarity index 100% rename from resources/qml/Skeleton/ApplicationMenu.qml rename to resources/qml/MainWindow/ApplicationMenu.qml diff --git a/resources/qml/Skeleton/TopHeader.qml b/resources/qml/MainWindow/TopHeader.qml similarity index 100% rename from resources/qml/Skeleton/TopHeader.qml rename to resources/qml/MainWindow/TopHeader.qml From 54554bff8920ee3e9ab85df0302a4d9e0d030722 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 09:51:04 +0200 Subject: [PATCH 0042/1039] Adjust colors to work with dark theme. Contributes to CURA-5784. --- resources/qml/Account/AccountDetails.qml | 3 + .../cura-dark/icons/tab_status_unknown.svg | 13 ---- resources/themes/cura-dark/images/logo.svg | 72 ------------------- resources/themes/cura-dark/theme.json | 2 +- 4 files changed, 4 insertions(+), 86 deletions(-) delete mode 100644 resources/themes/cura-dark/icons/tab_status_unknown.svg delete mode 100644 resources/themes/cura-dark/images/logo.svg diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index 4d6b0a314b..0ce82570a5 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -31,6 +31,7 @@ Column anchors.horizontalCenter: parent.horizontalCenter visible: !loggedIn text: catalog.i18nc("@label", "Please login or create an account to 
enjoy all features of Ultimaker Cura") + color: UM.Theme.getColor("text") } Column @@ -44,6 +45,7 @@ Column anchors.horizontalCenter: parent.horizontalCenter text: loggedIn ? profile["username"] : "" font: UM.Theme.getFont("large") + color: UM.Theme.getColor("text") } Label @@ -51,6 +53,7 @@ Column anchors.horizontalCenter: parent.horizontalCenter text: "email.address@hardcoded.is" font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") } } diff --git a/resources/themes/cura-dark/icons/tab_status_unknown.svg b/resources/themes/cura-dark/icons/tab_status_unknown.svg deleted file mode 100644 index d20218bc00..0000000000 --- a/resources/themes/cura-dark/icons/tab_status_unknown.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Unknown - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/resources/themes/cura-dark/images/logo.svg b/resources/themes/cura-dark/images/logo.svg deleted file mode 100644 index 92ffe4ca0c..0000000000 --- a/resources/themes/cura-dark/images/logo.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index fa0da2851e..99737ff8bf 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -17,7 +17,7 @@ "topheader_background": [31, 36, 39, 255], - "topheader_button_text_active": [255, 255, 255, 255], + "topheader_button_text_active": [31, 36, 39, 255], "topheader_button_text_inactive": [128, 128, 128, 255], "topheader_button_text_hovered": [255, 255, 255, 255], From 11693aad36a86ca56843f9bcf5bbbd787f8685b7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 09:51:42 +0200 Subject: [PATCH 0043/1039] Change the behaviour of the Popup, that now closes when clicking the widget if it is open. Contributes to CURA-5784. --- resources/qml/Account/AccountWidget.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index 1b4e6de1b2..d1e285e1da 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -33,7 +33,7 @@ Button background: Item {} - onClicked: popup.open() + onClicked: popup.opened ? popup.close() : popup.open() Popup { @@ -42,6 +42,8 @@ Button y: parent.height + UM.Theme.getSize("default_arrow").height x: (parent.width - width) + closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent + contentItem: AccountDetails { id: panel From a4c609d514a7687b318613d862894c67dce83b1d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 14:28:00 +0200 Subject: [PATCH 0044/1039] Remove email label from the account widget. It's not needed and it's not currently public data that is published with the user token. Contributes to CURA-5784. --- cura/OAuth2/Models.py | 2 ++ resources/qml/Account/AccountDetails.qml | 28 +++--------------------- 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/cura/OAuth2/Models.py b/cura/OAuth2/Models.py index 83fc22554f..0515e789e6 100644 --- a/cura/OAuth2/Models.py +++ b/cura/OAuth2/Models.py @@ -1,4 +1,6 @@ # Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + from typing import Optional diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index 0ce82570a5..27860cfae5 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -27,36 +27,14 @@ Column Label { - id: message + id: information anchors.horizontalCenter: parent.horizontalCenter visible: !loggedIn - text: catalog.i18nc("@label", "Please login or create an account to 
enjoy all features of Ultimaker Cura") + text: loggedIn ? profile["username"] : catalog.i18nc("@label", "Please login or create an account to 
enjoy all features of Ultimaker Cura") + font: loggedIn ? UM.Theme.getFont("large") : UM.Theme.getFont("default") color: UM.Theme.getColor("text") } - Column - { - id: userInformation - anchors.horizontalCenter: parent.horizontalCenter - visible: loggedIn - - Label - { - anchors.horizontalCenter: parent.horizontalCenter - text: loggedIn ? profile["username"] : "" - font: UM.Theme.getFont("large") - color: UM.Theme.getColor("text") - } - - Label - { - anchors.horizontalCenter: parent.horizontalCenter - text: "email.address@hardcoded.is" - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - } - Loader { id: accountEntryPoints From 1bcd134f85c2f70df31f8e61706cec8636ed3790 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 18 Oct 2018 14:30:11 +0200 Subject: [PATCH 0045/1039] Fix code style Most stuff here was recently changed. Some of it was where I found a pattern in something that was likely copy-pasted from somewhere else, so I did a global search and replace on that. Contributes to issue CURA-5784. --- .../FirmwareUpdaterMachineAction.qml | 2 +- plugins/ImageReader/ConfigUI.qml | 2 +- plugins/ModelChecker/ModelChecker.qml | 2 +- .../PostProcessingPlugin.qml | 2 +- plugins/PrepareStage/PrepareMenu.qml | 2 +- plugins/Toolbox/resources/qml/Toolbox.qml | 2 +- .../resources/qml/DiscoverUM3Action.qml | 2 +- .../resources/qml/UM3InfoComponents.qml | 2 +- .../UMOCheckupMachineAction.qml | 2 +- plugins/UserAgreement/UserAgreement.qml | 2 +- resources/qml/Account/AccountWidget.qml | 2 +- resources/qml/Actions.qml | 4 +- resources/qml/Cura.qml | 6 +- resources/qml/Dialogs/AboutDialog.qml | 52 +-- resources/qml/JobSpecs.qml | 4 +- resources/qml/MainWindow/ApplicationMenu.qml | 9 +- resources/qml/MaterialAndVariantSelector.qml | 25 +- resources/qml/MonitorButton.qml | 2 +- resources/qml/MonitorSidebar.qml | 6 +- resources/qml/Preferences/GeneralPage.qml | 4 +- resources/qml/ProfileAndSettingComponent.qml | 8 +- resources/qml/ProgressAndSaveWidget.qml | 5 +- resources/qml/SaveButton.qml | 100 +++- resources/themes/cura-light/styles.qml | 429 +++++++++++------- 24 files changed, 433 insertions(+), 243 deletions(-) diff --git a/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml b/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml index 9a56dbb20a..b5b6c15f50 100644 --- a/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml +++ b/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml @@ -22,7 +22,7 @@ Cura.MachineAction { id: firmwareUpdaterMachineAction anchors.fill: parent; - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura"} spacing: UM.Theme.getSize("default_margin").height Label diff --git a/plugins/ImageReader/ConfigUI.qml b/plugins/ImageReader/ConfigUI.qml index 12c6aa8dde..b9ff2e4453 100644 --- a/plugins/ImageReader/ConfigUI.qml +++ b/plugins/ImageReader/ConfigUI.qml @@ -20,7 +20,7 @@ UM.Dialog GridLayout { - UM.I18nCatalog{id: catalog; name:"cura"} + UM.I18nCatalog{id: catalog; name: "cura"} anchors.fill: parent; Layout.fillWidth: true columnSpacing: 16 * screenScaleFactor diff --git a/plugins/ModelChecker/ModelChecker.qml b/plugins/ModelChecker/ModelChecker.qml index 98db233bf8..5e41591d6b 100644 --- a/plugins/ModelChecker/ModelChecker.qml +++ b/plugins/ModelChecker/ModelChecker.qml @@ -16,7 +16,7 @@ Button { id: modelCheckerButton - UM.I18nCatalog{id: catalog; name:"cura"} + UM.I18nCatalog{id: catalog; name: "cura"} visible: manager.hasWarnings tooltip: catalog.i18nc("@info:tooltip", "Some things could be problematic in this print. Click to see tips for adjustment.") diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index d492e06462..10cc4cc082 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -31,7 +31,7 @@ UM.Dialog Item { - UM.I18nCatalog{id: catalog; name:"cura"} + UM.I18nCatalog{id: catalog; name: "cura"} id: base property int columnWidth: Math.round((base.width / 2) - UM.Theme.getSize("default_margin").width) property int textMargin: Math.round(UM.Theme.getSize("default_margin").width / 2) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index ea247bf258..208e7d18df 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -16,7 +16,7 @@ Item UM.I18nCatalog { id: catalog - name:"cura" + name: "cura" } Row diff --git a/plugins/Toolbox/resources/qml/Toolbox.qml b/plugins/Toolbox/resources/qml/Toolbox.qml index 4fb8192d81..29b026058c 100644 --- a/plugins/Toolbox/resources/qml/Toolbox.qml +++ b/plugins/Toolbox/resources/qml/Toolbox.qml @@ -24,7 +24,7 @@ Window UM.I18nCatalog { id: catalog - name:"cura" + name: "cura" } Item { diff --git a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml index b5b80a3010..773c38a454 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml @@ -54,7 +54,7 @@ Cura.MachineAction spacing: UM.Theme.getSize("default_margin").height SystemPalette { id: palette } - UM.I18nCatalog { id: catalog; name:"cura" } + UM.I18nCatalog { id: catalog; name: "cura" } Label { id: pageTitle diff --git a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml index a19d1be60d..d84c58daef 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml @@ -121,5 +121,5 @@ Item } } - UM.I18nCatalog{id: catalog; name:"cura"} + UM.I18nCatalog{id: catalog; name: "cura"} } diff --git a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml index 4a1d42e248..2a01cfaa40 100644 --- a/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml @@ -19,7 +19,7 @@ Cura.MachineAction property bool heatupBedStarted: false property bool printerConnected: Cura.MachineManager.printerConnected - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura"} Label { id: pageTitle diff --git a/plugins/UserAgreement/UserAgreement.qml b/plugins/UserAgreement/UserAgreement.qml index 4ee03f4ad5..2e5893fc41 100644 --- a/plugins/UserAgreement/UserAgreement.qml +++ b/plugins/UserAgreement/UserAgreement.qml @@ -36,7 +36,7 @@ UM.Dialog width: parent.width anchors.bottomMargin: UM.Theme.getSize("default_margin").height - UM.I18nCatalog { id: catalog; name:"cura" } + UM.I18nCatalog { id: catalog; name: "cura" } Button { diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index d1e285e1da..a6a79a7d29 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -40,7 +40,7 @@ Button id: popup y: parent.height + UM.Theme.getSize("default_arrow").height - x: (parent.width - width) + x: parent.width - width closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 30295f6e9b..a2b58063b4 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. pragma Singleton @@ -67,7 +67,7 @@ Item property alias browsePackages: browsePackagesAction - UM.I18nCatalog{id: catalog; name:"cura"} + UM.I18nCatalog{id: catalog; name: "cura"} Action { diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index a58e7ef6fc..2654eb3c20 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -26,7 +26,7 @@ UM.MainWindow UM.I18nCatalog { id: catalog - name:"cura" + name: "cura" } function showTooltip(item, position, text) @@ -236,7 +236,7 @@ UM.MainWindow textRole: "name" // update the model's active index - function updateItemActiveFlags () + function updateItemActiveFlags() { currentIndex = getActiveIndex() for (var i = 0; i < model.rowCount(); i++) @@ -316,7 +316,7 @@ UM.MainWindow Loader { - // A stage can control this area. If nothing is set, it will therefor show the 3D view. + // A stage can control this area. If nothing is set, it will therefore show the 3D view. id: main anchors diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index 9a7e53260b..25c9bbf74b 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -45,7 +45,7 @@ UM.Dialog anchors.topMargin: ((base.minimumWidth - width) / 2) | 0 anchors.horizontalCenter: parent.horizontalCenter - UM.I18nCatalog{id: catalog; name:"cura"} + UM.I18nCatalog{id: catalog; name: "cura"} } Label @@ -129,32 +129,32 @@ UM.Dialog } Component.onCompleted: { - projectsModel.append({ name:"Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "LGPLv3", url: "https://github.com/Ultimaker/Cura" }); - projectsModel.append({ name:"Uranium", description: catalog.i18nc("@label", "Application framework"), license: "LGPLv3", url: "https://github.com/Ultimaker/Uranium" }); - projectsModel.append({ name:"CuraEngine", description: catalog.i18nc("@label", "G-code generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" }); - projectsModel.append({ name:"libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "LGPLv3", url: "https://github.com/Ultimaker/libArcus" }); + projectsModel.append({ name: "Cura", description: catalog.i18nc("@label", "Graphical user interface"), license: "LGPLv3", url: "https://github.com/Ultimaker/Cura" }); + projectsModel.append({ name: "Uranium", description: catalog.i18nc("@label", "Application framework"), license: "LGPLv3", url: "https://github.com/Ultimaker/Uranium" }); + projectsModel.append({ name: "CuraEngine", description: catalog.i18nc("@label", "G-code generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" }); + projectsModel.append({ name: "libArcus", description: catalog.i18nc("@label", "Interprocess communication library"), license: "LGPLv3", url: "https://github.com/Ultimaker/libArcus" }); - projectsModel.append({ name:"Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" }); - projectsModel.append({ name:"Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" }); - projectsModel.append({ name:"PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" }); - projectsModel.append({ name:"SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" }); - projectsModel.append({ name:"Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" }); - projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing"), license: "BSD-new", url: "https://www.scipy.org/" }); - projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" }); - projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" }); - projectsModel.append({ name:"Shapely", description: catalog.i18nc("@label", "Support library for handling planar objects"), license: "BSD", url: "https://github.com/Toblerity/Shapely" }); - projectsModel.append({ name:"Trimesh", description: catalog.i18nc("@label", "Support library for handling triangular meshes"), license: "MIT", url: "https://trimsh.org" }); - projectsModel.append({ name:"NetworkX", description: catalog.i18nc("@label", "Support library for analysis of complex networks"), license: "3-clause BSD", url: "https://networkx.github.io/" }); - projectsModel.append({ name:"libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "LGPLv3", url: "https://github.com/ultimaker/libsavitar" }); - projectsModel.append({ name:"libCharon", description: catalog.i18nc("@label", "Support library for file metadata and streaming"), license: "LGPLv3", url: "https://github.com/ultimaker/libcharon" }); - projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" }); - projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" }); - projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" }); - projectsModel.append({ name:"Requests", description: catalog.i18nc("@Label", "Python HTTP library"), license: "GPL", url: "http://docs.python-requests.org" }); + projectsModel.append({ name: "Python", description: catalog.i18nc("@label", "Programming language"), license: "Python", url: "http://python.org/" }); + projectsModel.append({ name: "Qt5", description: catalog.i18nc("@label", "GUI framework"), license: "LGPLv3", url: "https://www.qt.io/" }); + projectsModel.append({ name: "PyQt", description: catalog.i18nc("@label", "GUI framework bindings"), license: "GPL", url: "https://riverbankcomputing.com/software/pyqt" }); + projectsModel.append({ name: "SIP", description: catalog.i18nc("@label", "C/C++ Binding library"), license: "GPL", url: "https://riverbankcomputing.com/software/sip" }); + projectsModel.append({ name: "Protobuf", description: catalog.i18nc("@label", "Data interchange format"), license: "BSD", url: "https://developers.google.com/protocol-buffers" }); + projectsModel.append({ name: "SciPy", description: catalog.i18nc("@label", "Support library for scientific computing"), license: "BSD-new", url: "https://www.scipy.org/" }); + projectsModel.append({ name: "NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" }); + projectsModel.append({ name: "NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" }); + projectsModel.append({ name: "Shapely", description: catalog.i18nc("@label", "Support library for handling planar objects"), license: "BSD", url: "https://github.com/Toblerity/Shapely" }); + projectsModel.append({ name: "Trimesh", description: catalog.i18nc("@label", "Support library for handling triangular meshes"), license: "MIT", url: "https://trimsh.org" }); + projectsModel.append({ name: "NetworkX", description: catalog.i18nc("@label", "Support library for analysis of complex networks"), license: "3-clause BSD", url: "https://networkx.github.io/" }); + projectsModel.append({ name: "libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "LGPLv3", url: "https://github.com/ultimaker/libsavitar" }); + projectsModel.append({ name: "libCharon", description: catalog.i18nc("@label", "Support library for file metadata and streaming"), license: "LGPLv3", url: "https://github.com/ultimaker/libcharon" }); + projectsModel.append({ name: "PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" }); + projectsModel.append({ name: "python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" }); + projectsModel.append({ name: "Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" }); + projectsModel.append({ name: "Requests", description: catalog.i18nc("@Label", "Python HTTP library"), license: "GPL", url: "http://docs.python-requests.org" }); - projectsModel.append({ name:"Noto Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://www.google.com/get/noto/" }); - projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" }); - projectsModel.append({ name:"AppImageKit", description: catalog.i18nc("@label", "Linux cross-distribution application deployment"), license: "MIT", url: "https://github.com/AppImage/AppImageKit" }); + projectsModel.append({ name: "Noto Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://www.google.com/get/noto/" }); + projectsModel.append({ name: "Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" }); + projectsModel.append({ name: "AppImageKit", description: catalog.i18nc("@label", "Linux cross-distribution application deployment"), license: "MIT", url: "https://github.com/AppImage/AppImageKit" }); } } } diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 1a5b604886..45111992c1 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -15,7 +15,7 @@ Item { property bool activity: CuraApplication.platformActivity property string fileBaseName: PrintInformation.baseName - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura"} height: childrenRect.height diff --git a/resources/qml/MainWindow/ApplicationMenu.qml b/resources/qml/MainWindow/ApplicationMenu.qml index 00859e2a45..e538e966fc 100644 --- a/resources/qml/MainWindow/ApplicationMenu.qml +++ b/resources/qml/MainWindow/ApplicationMenu.qml @@ -128,7 +128,8 @@ Item Instantiator { model: Cura.ExtrudersModel { simpleNames: true } - Menu { + Menu + { title: model.name NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } @@ -267,7 +268,8 @@ Item } } - UM.ExtensionModel { + UM.ExtensionModel + { id: curaExtensions } @@ -291,7 +293,8 @@ Item Connections { target: Cura.Actions.browsePackages - onTriggered: { + onTriggered: + { curaExtensions.callExtensionMethod("Toolbox", "browsePackages") } } diff --git a/resources/qml/MaterialAndVariantSelector.qml b/resources/qml/MaterialAndVariantSelector.qml index 31a898f8ae..7dfc3737c0 100644 --- a/resources/qml/MaterialAndVariantSelector.qml +++ b/resources/qml/MaterialAndVariantSelector.qml @@ -21,7 +21,7 @@ Rectangle // Height has an extra 2x margin for the top & bottom margin. height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width - Cura.ExtrudersModel { id: extrudersModel; } + Cura.ExtrudersModel { id: extrudersModel } ListView { @@ -41,7 +41,7 @@ Rectangle margins: UM.Theme.getSize("sidebar_margin").width } - ExclusiveGroup { id: extruderMenuGroup; } + ExclusiveGroup { id: extruderMenuGroup } orientation: ListView.Horizontal @@ -69,8 +69,10 @@ Rectangle { anchors.fill: parent acceptedButtons: Qt.LeftButton | Qt.RightButton - onClicked: { - switch (mouse.button) { + onClicked: + { + switch (mouse.button) + { case Qt.LeftButton: extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled if (extruder_enabled) @@ -114,7 +116,8 @@ Rectangle { anchors.fill: parent border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: { + border.color: + { if (Cura.MachineManager.getExtruder(index).isEnabled) { if(control.checked || control.pressed) @@ -128,13 +131,15 @@ Rectangle } return UM.Theme.getColor("action_button_disabled_border") } - color: { + color: + { if (Cura.MachineManager.getExtruder(index).isEnabled) { if(control.checked || control.pressed) { return UM.Theme.getColor("action_button_active"); - } else if (control.hovered) + } + else if (control.hovered) { return UM.Theme.getColor("action_button_hovered") } @@ -157,13 +162,15 @@ Rectangle anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left - color: { + color: + { if (Cura.MachineManager.getExtruder(index).isEnabled) { if(control.checked || control.pressed) { return UM.Theme.getColor("action_button_active_text"); - } else if (control.hovered) + } + else if (control.hovered) { return UM.Theme.getColor("action_button_hovered_text") } diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index aa40de11e4..efee50a2b3 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -13,7 +13,7 @@ import Cura 1.0 as Cura Item { id: base; - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura"} height: childrenRect.height + UM.Theme.getSize("sidebar_margin").height diff --git a/resources/qml/MonitorSidebar.qml b/resources/qml/MonitorSidebar.qml index 80bd5c1a2e..179fcafb53 100644 --- a/resources/qml/MonitorSidebar.qml +++ b/resources/qml/MonitorSidebar.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -31,7 +31,7 @@ Rectangle property variant printMaterialNames: PrintInformation.materialNames color: UM.Theme.getColor("sidebar") - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura"} Timer { id: tooltipDelayTimer @@ -70,7 +70,7 @@ Rectangle time -= minutes * 60 var seconds = Math.floor(time); - var finalTime = strPadLeft(hours, "0", 2) + ':' + strPadLeft(minutes,'0',2)+ ':' + strPadLeft(seconds,'0',2); + var finalTime = strPadLeft(hours, "0", 2) + ":" + strPadLeft(minutes, "0", 2) + ":" + strPadLeft(seconds, "0", 2); return finalTime; } diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 64c1246929..0e8dd1b426 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 @@ -134,7 +134,7 @@ UM.PreferencesPage UM.PluginsModel { id: plugins } //: Language selection label - UM.I18nCatalog{id: catalog; name:"cura"} + UM.I18nCatalog{id: catalog; name: "cura"} Label { diff --git a/resources/qml/ProfileAndSettingComponent.qml b/resources/qml/ProfileAndSettingComponent.qml index b367c1130f..e5a29dffad 100644 --- a/resources/qml/ProfileAndSettingComponent.qml +++ b/resources/qml/ProfileAndSettingComponent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -26,7 +26,7 @@ Rectangle property variant printMaterialNames: PrintInformation.materialNames color: UM.Theme.getColor("sidebar") - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura"} // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. signal showTooltip(Item item, point location, string text) @@ -59,7 +59,7 @@ Rectangle time -= minutes * 60 var seconds = Math.floor(time); - var finalTime = strPadLeft(hours, "0", 2) + ':' + strPadLeft(minutes,'0',2)+ ':' + strPadLeft(seconds,'0',2); + var finalTime = strPadLeft(hours, "0", 2) + ":" + strPadLeft(minutes, "0", 2) + ":" + strPadLeft(seconds, "0", 2); return finalTime; } @@ -152,7 +152,7 @@ Rectangle background: Rectangle { border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border"): UM.Theme.getColor("action_button_border") + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") diff --git a/resources/qml/ProgressAndSaveWidget.qml b/resources/qml/ProgressAndSaveWidget.qml index 1e82681164..6e8eb59482 100644 --- a/resources/qml/ProgressAndSaveWidget.qml +++ b/resources/qml/ProgressAndSaveWidget.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -173,7 +173,8 @@ Rectangle var weights = []; var costs = []; var someCostsKnown = false; - if(base.printMaterialLengths) { + if(base.printMaterialLengths) + { for(var index = 0; index < base.printMaterialLengths.length; index++) { if(base.printMaterialLengths[index] > 0) diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 8c561b0d00..5e41dd3007 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -13,7 +13,7 @@ import Cura 1.0 as Cura Item { id: base; - UM.I18nCatalog { id: catalog; name:"cura"} + UM.I18nCatalog { id: catalog; name: "cura"} property real progress: UM.Backend.progress property int backendState: UM.Backend.state @@ -36,7 +36,7 @@ Item case 2: return catalog.i18nc("@label:PrintjobStatus", "Slicing..."); case 3: - return catalog.i18nc("@label:PrintjobStatus %1 is target operation","Ready to %1").arg(UM.OutputDeviceManager.activeDeviceShortDescription); + return catalog.i18nc("@label:PrintjobStatus %1 is target operation", "Ready to %1").arg(UM.OutputDeviceManager.activeDeviceShortDescription); case 4: return catalog.i18nc("@label:PrintjobStatus", "Unable to Slice"); case 5: @@ -48,16 +48,20 @@ Item function sliceOrStopSlicing() { - try { + try + { if ([1, 5].indexOf(base.backendState) != -1) { CuraApplication.backend.forceSlice(); - } else { + } + else + { CuraApplication.backend.stopSlicing(); } - } catch (e) + } + catch (e) { - console.log('Could not start or stop slicing', e) + console.log("Could not start or stop slicing.", e) } } @@ -203,50 +207,76 @@ Item sliceOrStopSlicing(); } - style: ButtonStyle { + style: ButtonStyle + { background: Rectangle { border.width: UM.Theme.getSize("default_lining").width border.color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled_border"); + } else if(control.pressed) + { return UM.Theme.getColor("action_button_active_border"); + } else if(control.hovered) + { return UM.Theme.getColor("action_button_hovered_border"); + } else + { return UM.Theme.getColor("action_button_border"); + } } color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled"); + } else if(control.pressed) + { return UM.Theme.getColor("action_button_active"); + } else if(control.hovered) + { return UM.Theme.getColor("action_button_hovered"); + } else + { return UM.Theme.getColor("action_button"); + } } Behavior on color { ColorAnimation { duration: 50; } } implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) - Label { + Label + { id: actualLabel anchors.centerIn: parent color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled_text"); + } else if(control.pressed) + { return UM.Theme.getColor("action_button_active_text"); + } else if(control.hovered) + { return UM.Theme.getColor("action_button_hovered_text"); + } else + { return UM.Theme.getColor("action_button_text"); + } } font: UM.Theme.getFont("action_button") text: control.text; @@ -287,43 +317,61 @@ Item border.color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled_border"); + } else if(control.pressed) + { return UM.Theme.getColor("print_button_ready_pressed_border"); + } else if(control.hovered) + { return UM.Theme.getColor("print_button_ready_hovered_border"); + } else + { return UM.Theme.getColor("print_button_ready_border"); + } } color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled"); + } else if(control.pressed) + { return UM.Theme.getColor("print_button_ready_pressed"); + } else if(control.hovered) + { return UM.Theme.getColor("print_button_ready_hovered"); + } else + { return UM.Theme.getColor("print_button_ready"); + } } Behavior on color { ColorAnimation { duration: 50; } } implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) - Label { + Label + { id: actualLabel anchors.centerIn: parent - color:control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") + color: control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") font: UM.Theme.getFont("action_button") - text: control.text; + text: control.text } } label: Item { } } } - Button { + Button + { id: deviceSelectionMenu tooltip: catalog.i18nc("@info:tooltip","Select the active output device"); anchors.top: parent.top @@ -349,13 +397,16 @@ Item if(!control.enabled) { return UM.Theme.getColor("action_button_disabled_border") - } else if(control.pressed) + } + else if(control.pressed) { return UM.Theme.getColor("print_button_ready_pressed_border") - } else if(control.hovered) + } + else if(control.hovered) { return UM.Theme.getColor("print_button_ready_hovered_border") - } else + } + else { return UM.Theme.getColor("print_button_ready_border") } @@ -365,13 +416,16 @@ Item if(!control.enabled) { return UM.Theme.getColor("action_button_disabled") - } else if(control.pressed) + } + else if(control.pressed) { return UM.Theme.getColor("print_button_ready_pressed") - } else if(control.hovered) + } + else if(control.hovered) { return UM.Theme.getColor("print_button_ready_hovered") - } else + } + else { return UM.Theme.getColor("print_button_ready") } @@ -391,7 +445,7 @@ Item sourceSize.width: width sourceSize.height: height color: control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") - source: UM.Theme.getIcon("arrow_bottom"); + source: UM.Theme.getIcon("arrow_bottom") } } } @@ -406,8 +460,8 @@ Item { text: model.description checkable: true; - checked: model.id == UM.OutputDeviceManager.activeDevice; - exclusiveGroup: devicesMenuGroup; + checked: model.id == UM.OutputDeviceManager.activeDevice + exclusiveGroup: devicesMenuGroup onTriggered: { UM.OutputDeviceManager.setActiveDevice(model.id); @@ -416,9 +470,9 @@ Item onObjectAdded: devicesMenu.insertItem(index, object) onObjectRemoved: devicesMenu.removeItem(object) } - ExclusiveGroup { id: devicesMenuGroup; } + ExclusiveGroup { id: devicesMenuGroup } } } - UM.OutputDevicesModel { id: devicesModel; } + UM.OutputDevicesModel { id: devicesModel } } } diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 939399efc8..58e6d2cf4d 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 @@ -7,10 +7,14 @@ import QtQuick.Controls.Styles 1.1 import UM 1.1 as UM -QtObject { - property Component sidebar_header_button: Component { - ButtonStyle { - background: Rectangle { +QtObject +{ + property Component sidebar_header_button: Component + { + ButtonStyle + { + background: Rectangle + { color: { if(control.enabled) @@ -61,7 +65,8 @@ QtObject { return Theme.getColor("setting_control_disabled_border"); } } - UM.RecolorImage { + UM.RecolorImage + { id: downArrow anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right @@ -73,7 +78,8 @@ QtObject { color: control.enabled ? Theme.getColor("setting_category_text") : Theme.getColor("setting_category_disabled_text") source: Theme.getIcon("arrow_bottom") } - Label { + Label + { id: sidebarComboBoxLabel color: control.enabled ? Theme.getColor("setting_control_text") : Theme.getColor("setting_control_disabled_text") text: control.text; @@ -158,33 +164,37 @@ QtObject { { if (control.checked) { - return UM.Theme.getColor("topheader_button_text_active") + return UM.Theme.getColor("topheader_button_text_active"); } else { if (control.hovered) { - return UM.Theme.getColor("topheader_button_text_hovered") + return UM.Theme.getColor("topheader_button_text_hovered"); } - return UM.Theme.getColor("topheader_button_text_inactive") + return UM.Theme.getColor("topheader_button_text_inactive"); } } } Component.onCompleted: { - buttonWidth = width + buttonWidth = width; } } } } - property Component tool_button: Component { - ButtonStyle { - background: Item { + property Component tool_button: Component + { + ButtonStyle + { + background: Item + { implicitWidth: Theme.getSize("button").width; implicitHeight: Theme.getSize("button").height; - UM.PointingRectangle { + UM.PointingRectangle + { id: button_tooltip anchors.left: parent.right @@ -203,7 +213,8 @@ QtObject { Behavior on width { NumberAnimation { duration: 100; } } Behavior on opacity { NumberAnimation { duration: 100; } } - Label { + Label + { id: button_tip anchors.horizontalCenter: parent.horizontalCenter @@ -215,7 +226,8 @@ QtObject { } } - Rectangle { + Rectangle + { id: buttonFace; anchors.fill: parent; @@ -249,7 +261,8 @@ QtObject { border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? 2 * screenScaleFactor : 0 border.color: Theme.getColor("tool_button_border") - UM.RecolorImage { + UM.RecolorImage + { id: tool_button_arrow anchors.right: parent.right; anchors.rightMargin: Theme.getSize("button").width - Math.round(Theme.getSize("button_icon").width / 4) @@ -284,8 +297,10 @@ QtObject { } } - label: Item { - UM.RecolorImage { + label: Item + { + UM.RecolorImage + { anchors.centerIn: parent; opacity: !control.enabled ? 0.2 : 1.0 source: control.iconSource; @@ -317,13 +332,17 @@ QtObject { } } - property Component small_tool_button: Component { - ButtonStyle { - background: Item { + property Component small_tool_button: Component + { + ButtonStyle + { + background: Item + { implicitWidth: Theme.getSize("small_button").width; implicitHeight: Theme.getSize("small_button").height; - Rectangle { + Rectangle + { id: smallButtonFace; anchors.fill: parent; @@ -357,7 +376,8 @@ QtObject { border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? 2 * screenScaleFactor : 0 border.color: Theme.getColor("tool_button_border") - UM.RecolorImage { + UM.RecolorImage + { id: smallToolButtonArrow width: 5 @@ -389,13 +409,15 @@ QtObject { } } - label: Item { - UM.RecolorImage { - anchors.centerIn: parent; + label: Item + { + UM.RecolorImage + { + anchors.centerIn: parent opacity: !control.enabled ? 0.2 : 1.0 source: control.iconSource; - width: Theme.getSize("small_button_icon").width; - height: Theme.getSize("small_button_icon").height; + width: Theme.getSize("small_button_icon").width + height: Theme.getSize("small_button_icon").height color: { if(control.checkable && control.checked && control.hovered) @@ -422,14 +444,18 @@ QtObject { } } - property Component progressbar: Component{ - ProgressBarStyle { - background: Rectangle { + property Component progressbar: Component + { + ProgressBarStyle + { + background: Rectangle + { implicitWidth: Theme.getSize("message").width - (Theme.getSize("default_margin").width * 2) implicitHeight: Theme.getSize("progressbar").height color: control.hasOwnProperty("backgroundColor") ? control.backgroundColor : Theme.getColor("progressbar_background") } - progress: Rectangle { + progress: Rectangle + { color: { if(control.indeterminate) @@ -446,14 +472,16 @@ QtObject { } } radius: Theme.getSize("progressbar_radius").width - Rectangle{ + Rectangle + { radius: Theme.getSize("progressbar_radius").width color: control.hasOwnProperty("controlColor") ? control.controlColor : Theme.getColor("progressbar_control") width: Theme.getSize("progressbar_control").width height: Theme.getSize("progressbar_control").height visible: control.indeterminate - SequentialAnimation on x { + SequentialAnimation on x + { id: xAnim property int animEndPoint: Theme.getSize("message").width - Math.round((Theme.getSize("default_margin").width * 2.5)) - Theme.getSize("progressbar_control").width running: control.indeterminate && control.visible @@ -466,59 +494,88 @@ QtObject { } } - property Component sidebar_category: Component { - ButtonStyle { - background: Rectangle { - anchors.fill: parent; + property Component sidebar_category: Component + { + ButtonStyle + { + background: Rectangle + { + anchors.fill: parent anchors.left: parent.left anchors.leftMargin: Theme.getSize("sidebar_margin").width anchors.right: parent.right anchors.rightMargin: Theme.getSize("sidebar_margin").width - implicitHeight: Theme.getSize("section").height; - color: { - if(control.color) { + implicitHeight: Theme.getSize("section").height + color: + { + if(control.color) + { return control.color; - } else if(!control.enabled) { + } + else if(!control.enabled) + { return Theme.getColor("setting_category_disabled"); - } else if(control.hovered && control.checkable && control.checked) { + } + else if(control.hovered && control.checkable && control.checked) + { return Theme.getColor("setting_category_active_hover"); - } else if(control.pressed || (control.checkable && control.checked)) { + } + else if(control.pressed || (control.checkable && control.checked)) + { return Theme.getColor("setting_category_active"); - } else if(control.hovered) { + } + else if(control.hovered) + { return Theme.getColor("setting_category_hover"); - } else { + } + else + { return Theme.getColor("setting_category"); } } Behavior on color { ColorAnimation { duration: 50; } } - Rectangle { + Rectangle + { height: Theme.getSize("default_lining").height width: parent.width anchors.bottom: parent.bottom - color: { - if(!control.enabled) { + color: + { + if(!control.enabled) + { return Theme.getColor("setting_category_disabled_border"); - } else if((control.hovered || control.activeFocus) && control.checkable && control.checked) { + } + else if((control.hovered || control.activeFocus) && control.checkable && control.checked) + { return Theme.getColor("setting_category_active_hover_border"); - } else if(control.pressed || (control.checkable && control.checked)) { + } + else if(control.pressed || (control.checkable && control.checked)) + { return Theme.getColor("setting_category_active_border"); - } else if(control.hovered || control.activeFocus) { + } + else if(control.hovered || control.activeFocus) + { return Theme.getColor("setting_category_hover_border"); - } else { + } + else + { return Theme.getColor("setting_category_border"); } } } } - label: Item { - anchors.fill: parent; + label: Item + { + anchors.fill: parent anchors.left: parent.left - Item{ - id: icon; + Item + { + id: icon anchors.left: parent.left height: parent.height width: Theme.getSize("section_icon_column").width - UM.RecolorImage { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left anchors.leftMargin: Theme.getSize("sidebar_margin").width @@ -553,15 +610,17 @@ QtObject { } } - Label { - anchors { - left: icon.right; - leftMargin: Theme.getSize("default_margin").width; - right: parent.right; - verticalCenter: parent.verticalCenter; + Label + { + anchors + { + left: icon.right + leftMargin: Theme.getSize("default_margin").width + right: parent.right + verticalCenter: parent.verticalCenter } - text: control.text; - font: Theme.getFont("setting_category"); + text: control.text + font: Theme.getFont("setting_category") color: { if(!control.enabled) @@ -585,10 +644,11 @@ QtObject { return Theme.getColor("setting_category_text"); } } - fontSizeMode: Text.HorizontalFit; + fontSizeMode: Text.HorizontalFit minimumPointSize: 8 } - UM.RecolorImage { + UM.RecolorImage + { id: category_arrow anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right @@ -626,20 +686,24 @@ QtObject { } } - property Component scrollview: Component { - ScrollViewStyle { + property Component scrollview: Component + { + ScrollViewStyle + { decrementControl: Item { } incrementControl: Item { } transientScrollBars: false - scrollBarBackground: Rectangle { + scrollBarBackground: Rectangle + { implicitWidth: Theme.getSize("scrollbar").width radius: Math.round(implicitWidth / 2) color: Theme.getColor("scrollbar_background"); } - handle: Rectangle { + handle: Rectangle + { id: scrollViewHandle implicitWidth: Theme.getSize("scrollbar").width; radius: Math.round(implicitWidth / 2) @@ -650,10 +714,13 @@ QtObject { } } - property Component combobox: Component { - ComboBoxStyle { + property Component combobox: Component + { + ComboBoxStyle + { - background: Rectangle { + background: Rectangle + { implicitHeight: Theme.getSize("setting_control").height; implicitWidth: Theme.getSize("setting_control").width; @@ -664,28 +731,31 @@ QtObject { border.color: control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border"); } - label: Item { + label: Item + { - Label { - anchors.left: parent.left; + Label + { + anchors.left: parent.left anchors.leftMargin: Theme.getSize("default_lining").width - anchors.right: downArrow.left; - anchors.rightMargin: Theme.getSize("default_lining").width; - anchors.verticalCenter: parent.verticalCenter; + anchors.right: downArrow.left + anchors.rightMargin: Theme.getSize("default_lining").width + anchors.verticalCenter: parent.verticalCenter - text: control.currentText; + text: control.currentText font: Theme.getFont("default"); - color: !enabled ? Theme.getColor("setting_control_disabled_text") : Theme.getColor("setting_control_text"); + color: !enabled ? Theme.getColor("setting_control_disabled_text") : Theme.getColor("setting_control_text") - elide: Text.ElideRight; - verticalAlignment: Text.AlignVCenter; + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter } - UM.RecolorImage { + UM.RecolorImage + { id: downArrow - anchors.right: parent.right; - anchors.rightMargin: Theme.getSize("default_lining").width * 2; - anchors.verticalCenter: parent.verticalCenter; + anchors.right: parent.right + anchors.rightMargin: Theme.getSize("default_lining").width * 2 + anchors.verticalCenter: parent.verticalCenter source: Theme.getIcon("arrow_bottom") width: Theme.getSize("standard_arrow").width @@ -700,19 +770,24 @@ QtObject { } // Combobox with items with colored rectangles - property Component combobox_color: Component { + property Component combobox_color: Component + { - ComboBoxStyle { + ComboBoxStyle + { - background: Rectangle { + background: Rectangle + { color: !enabled ? UM.Theme.getColor("setting_control_disabled") : control._hovered ? UM.Theme.getColor("setting_control_highlight") : UM.Theme.getColor("setting_control") border.width: UM.Theme.getSize("default_lining").width border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control._hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") } - label: Item { + label: Item + { - Label { + Label + { anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_lining").width anchors.right: swatch.left @@ -727,7 +802,8 @@ QtObject { verticalAlignment: Text.AlignVCenter } - Rectangle { + Rectangle + { id: swatch height: Math.round(UM.Theme.getSize("setting_control").height / 2) width: height @@ -740,7 +816,8 @@ QtObject { color: (control.color_override !== "") ? control.color_override : control.color } - UM.RecolorImage { + UM.RecolorImage + { id: downArrow anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 @@ -758,22 +835,26 @@ QtObject { } } - property Component checkbox: Component { - CheckBoxStyle { + property Component checkbox: Component + { + CheckBoxStyle + { background: Item { } - indicator: Rectangle { - implicitWidth: Theme.getSize("checkbox").width; - implicitHeight: Theme.getSize("checkbox").height; + indicator: Rectangle + { + implicitWidth: Theme.getSize("checkbox").width + implicitHeight: Theme.getSize("checkbox").height - color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox"); + color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox") Behavior on color { ColorAnimation { duration: 50; } } radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : 0 - border.width: Theme.getSize("default_lining").width; - border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border"); + border.width: Theme.getSize("default_lining").width + border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border") - UM.RecolorImage { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2.5) @@ -786,7 +867,8 @@ QtObject { Behavior on opacity { NumberAnimation { duration: 100; } } } } - label: Label { + label: Label + { text: control.text color: Theme.getColor("checkbox_text") font: Theme.getFont("default") @@ -795,12 +877,15 @@ QtObject { } } - property Component partially_checkbox: Component { - CheckBoxStyle { + property Component partially_checkbox: Component + { + CheckBoxStyle + { background: Item { } - indicator: Rectangle { - implicitWidth: Theme.getSize("checkbox").width; - implicitHeight: Theme.getSize("checkbox").height; + indicator: Rectangle + { + implicitWidth: Theme.getSize("checkbox").width + implicitHeight: Theme.getSize("checkbox").height color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox"); Behavior on color { ColorAnimation { duration: 50; } } @@ -810,7 +895,8 @@ QtObject { border.width: Theme.getSize("default_lining").width; border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border"); - UM.RecolorImage { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2.5) @@ -818,50 +904,60 @@ QtObject { sourceSize.width: width sourceSize.height: width color: Theme.getColor("checkbox_mark") - source: { - if (control.checkbox_state == 2){ - return Theme.getIcon("solid") + source: + { + if (control.checkbox_state == 2) + { + return Theme.getIcon("solid"); } - else{ - return control.exclusiveGroup ? Theme.getIcon("dot") : Theme.getIcon("check") + else + { + return control.exclusiveGroup ? Theme.getIcon("dot") : Theme.getIcon("check"); } } opacity: control.checked Behavior on opacity { NumberAnimation { duration: 100; } } } } - label: Label { - text: control.text; - color: Theme.getColor("checkbox_text"); - font: Theme.getFont("default"); + label: Label + { + text: control.text + color: Theme.getColor("checkbox_text") + font: Theme.getFont("default") } } } - property Component slider: Component { - SliderStyle { - groove: Rectangle { - implicitWidth: control.width; - implicitHeight: Theme.getSize("slider_groove").height; + property Component slider: Component + { + SliderStyle + { + groove: Rectangle + { + implicitWidth: control.width + implicitHeight: Theme.getSize("slider_groove").height - color: Theme.getColor("slider_groove"); - border.width: Theme.getSize("default_lining").width; - border.color: Theme.getColor("slider_groove_border"); + color: Theme.getColor("slider_groove") + border.width: Theme.getSize("default_lining").width + border.color: Theme.getColor("slider_groove_border") - radius: Math.round(width / 2); + radius: Math.round(width / 2) - Rectangle { - anchors { - left: parent.left; - top: parent.top; - bottom: parent.bottom; + Rectangle + { + anchors + { + left: parent.left + top: parent.top + bottom: parent.bottom } color: Theme.getColor("slider_groove_fill"); width: Math.round((control.value / (control.maximumValue - control.minimumValue)) * parent.width); radius: Math.round(width / 2); } } - handle: Rectangle { + handle: Rectangle + { width: Theme.getSize("slider_handle").width; height: Theme.getSize("slider_handle").height; color: control.hovered ? Theme.getColor("slider_handle_hover") : Theme.getColor("slider_handle"); @@ -873,11 +969,13 @@ QtObject { } } - property Component text_field: Component { - TextFieldStyle { - textColor: Theme.getColor("setting_control_text"); + property Component text_field: Component + { + TextFieldStyle + { + textColor: Theme.getColor("setting_control_text") placeholderTextColor: Theme.getColor("setting_control_text") - font: Theme.getFont("default"); + font: Theme.getFont("default") background: Rectangle { @@ -889,7 +987,8 @@ QtObject { color: Theme.getColor("setting_validation_ok"); - Label { + Label + { anchors.right: parent.right; anchors.rightMargin: Theme.getSize("setting_unit_margin").width; anchors.verticalCenter: parent.verticalCenter; @@ -902,7 +1001,8 @@ QtObject { } } - property Component sidebar_action_button: Component { + property Component sidebar_action_button: Component + { ButtonStyle { background: Rectangle @@ -911,26 +1011,42 @@ QtObject { border.color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled_border"); + } else if(control.pressed) + { return UM.Theme.getColor("action_button_active_border"); + } else if(control.hovered) + { return UM.Theme.getColor("action_button_hovered_border"); + } else + { return UM.Theme.getColor("action_button_border"); + } } color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled"); + } else if(control.pressed) + { return UM.Theme.getColor("action_button_active"); + } else if(control.hovered) + { return UM.Theme.getColor("action_button_hovered"); + } else + { return UM.Theme.getColor("action_button"); + } } - Behavior on color { ColorAnimation { duration: 50; } } + Behavior on color { ColorAnimation { duration: 50 } } implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) @@ -941,13 +1057,21 @@ QtObject { color: { if(!control.enabled) + { return UM.Theme.getColor("action_button_disabled_text"); + } else if(control.pressed) + { return UM.Theme.getColor("action_button_active_text"); + } else if(control.hovered) + { return UM.Theme.getColor("action_button_hovered_text"); + } else + { return UM.Theme.getColor("action_button_text"); + } } font: UM.Theme.getFont("action_button") text: control.text @@ -957,7 +1081,8 @@ QtObject { } } - property Component toolbox_action_button: Component { + property Component toolbox_action_button: Component + { ButtonStyle { background: Rectangle @@ -968,17 +1093,17 @@ QtObject { { if (control.installed) { - return UM.Theme.getColor("action_button_disabled") + return UM.Theme.getColor("action_button_disabled"); } else { if (control.hovered) { - return UM.Theme.getColor("primary_hover") + return UM.Theme.getColor("primary_hover"); } else { - return UM.Theme.getColor("primary") + return UM.Theme.getColor("primary"); } } @@ -991,17 +1116,17 @@ QtObject { { if (control.installed) { - return UM.Theme.getColor("action_button_disabled_text") + return UM.Theme.getColor("action_button_disabled_text"); } else { if (control.hovered) { - return UM.Theme.getColor("button_text_hover") + return UM.Theme.getColor("button_text_hover"); } else { - return UM.Theme.getColor("button_text") + return UM.Theme.getColor("button_text"); } } } From 237c360a88897a34ea7abf365c584b9ee04180a9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 15:18:00 +0200 Subject: [PATCH 0046/1039] The size of the avatar image is now themed. Some other small fixes in the AccountDetails componenent were done. Contributes to CURA-5784. --- resources/qml/Account/AccountDetails.qml | 8 ++++---- resources/qml/Account/AvatarImage.qml | 2 ++ resources/themes/cura-light/styles.qml | 2 +- resources/themes/cura-light/theme.json | 2 ++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index 27860cfae5..10ee5016cd 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -18,8 +18,8 @@ Column AvatarImage { id: avatar - width: 75 * screenScaleFactor - height: 75 * screenScaleFactor + width: UM.Theme.getSize("avatar_image").width + height: UM.Theme.getSize("avatar_image").height anchors.horizontalCenter: parent.horizontalCenter source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") outlineColor: loggedIn ? UM.Theme.getColor("account_widget_ouline_active") : UM.Theme.getColor("account_widget_ouline_inactive") @@ -29,8 +29,8 @@ Column { id: information anchors.horizontalCenter: parent.horizontalCenter - visible: !loggedIn - text: loggedIn ? profile["username"] : catalog.i18nc("@label", "Please login or create an account to 
enjoy all features of Ultimaker Cura") + horizontalAlignment: Text.AlignHCenter + text: loggedIn ? profile["username"] : catalog.i18nc("@label", "Please log in or create an account to\nenjoy all features of Ultimaker Cura.") font: loggedIn ? UM.Theme.getFont("large") : UM.Theme.getFont("default") color: UM.Theme.getColor("text") } diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index 0e0d182018..333bce29d7 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -1,4 +1,6 @@ // Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.7 import QtQuick.Controls 2.1 import QtGraphicalEffects 1.0 diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 939399efc8..1164b84332 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.1 diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 285d2724a0..43a0b628b5 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -488,6 +488,8 @@ "toolbox_action_button": [8.0, 2.5], "toolbox_loader": [2.0, 2.0], + "avatar_image": [6.8, 6.8], + "drop_shadow_radius": [1.0, 1.0] } } From 119638efa1fa71492648b0305df87bdea23bad12 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 15:35:21 +0200 Subject: [PATCH 0047/1039] Adjust outline color for the avatar image. Following the colors in the designs. Contributes to CURA-5784. --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 43a0b628b5..16cb17756d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -88,7 +88,7 @@ "topheader_button_background_inactive": [255, 255, 255, 0], "account_widget_ouline_active": [9, 140, 188, 255], - "account_widget_ouline_inactive": [175, 175, 175, 255], + "account_widget_ouline_inactive": [229, 229, 229, 255], "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], From 0a07f48375bb47976d32194ece31c0d5c7038dbe Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 15:38:24 +0200 Subject: [PATCH 0048/1039] Fix typo in a theme's key. Contributes to CURA-5784. --- resources/qml/Account/AccountDetails.qml | 2 +- resources/qml/Account/AccountWidget.qml | 2 +- resources/themes/cura-light/theme.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index 10ee5016cd..18f11622fd 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -22,7 +22,7 @@ Column height: UM.Theme.getSize("avatar_image").height anchors.horizontalCenter: parent.horizontalCenter source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") - outlineColor: loggedIn ? UM.Theme.getColor("account_widget_ouline_active") : UM.Theme.getColor("account_widget_ouline_inactive") + outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") } Label diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index a6a79a7d29..6374aaad69 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -28,7 +28,7 @@ Button anchors.horizontalCenter: parent.horizontalCenter source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") - outlineColor: loggedIn ? UM.Theme.getColor("account_widget_ouline_active") : UM.Theme.getColor("account_widget_ouline_inactive") + outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") } background: Item {} diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 16cb17756d..07eab72afb 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -87,8 +87,8 @@ "topheader_button_background_active": [255, 255, 255, 255], "topheader_button_background_inactive": [255, 255, 255, 0], - "account_widget_ouline_active": [9, 140, 188, 255], - "account_widget_ouline_inactive": [229, 229, 229, 255], + "account_widget_outline_active": [9, 140, 188, 255], + "account_widget_outline_inactive": [229, 229, 229, 255], "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], From fdfa81b2b8cf69d78897961f6985bf6ed8b941e0 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 16:06:21 +0200 Subject: [PATCH 0049/1039] Make some items' size dependent on parent's. Also make the ActionButton more themable. Contributes to CURA-5784. --- resources/qml/Account/AccountDetails.qml | 1 + resources/qml/Account/AccountWidget.qml | 1 - resources/qml/ActionButton.qml | 21 +++++++++++---------- resources/themes/cura-light/theme.json | 2 ++ 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index 18f11622fd..cc065fc0dd 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -30,6 +30,7 @@ Column id: information anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter + renderType: Text.NativeRendering text: loggedIn ? profile["username"] : catalog.i18nc("@label", "Please log in or create an account to\nenjoy all features of Ultimaker Cura.") font: loggedIn ? UM.Theme.getFont("large") : UM.Theme.getFont("default") color: UM.Theme.getColor("text") diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index 6374aaad69..70ee6c86da 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -21,7 +21,6 @@ Button { id: avatar - width: Math.round(0.8 * parent.width) height: Math.round(0.8 * parent.height) anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index b49e3f1dcb..44299d3734 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -11,28 +11,28 @@ Button { id: button property alias cursorShape: mouseArea.cursorShape - property var iconSource: "" + property alias iconSource: buttonIcon.source + property alias textFont: buttonText.font + property alias cornerRadius: backgroundRect.radius property var color: UM.Theme.getColor("primary") property var hoverColor: UM.Theme.getColor("primary_hover") property var disabledColor: color property var textColor: UM.Theme.getColor("button_text") property var textHoverColor: UM.Theme.getColor("button_text_hover") property var textDisabledColor: textColor - property var textFont: UM.Theme.getFont("action_button") - property var cornerRadius: 2 * screenScaleFactor contentItem: Row { UM.RecolorImage { id: buttonIcon - source: button.iconSource - width: 16 * screenScaleFactor - height: 16 * screenScaleFactor + source: "" + height: Math.round(0.6 * parent.height) + width: height sourceSize.width: width sourceSize.height: height color: button.hovered ? button.textHoverColor : button.textColor - visible: button.iconSource != "" + visible: source != "" anchors.verticalCenter: parent.verticalCenter } @@ -41,8 +41,8 @@ Button id: buttonText text: button.text color: button.enabled ? (button.hovered ? button.textHoverColor : button.textColor): button.textDisabledColor - font: button.textFont - visible: button.text != "" + font: UM.Theme.getFont("action_button") + visible: text != "" renderType: Text.NativeRendering anchors.verticalCenter: parent.verticalCenter } @@ -50,8 +50,9 @@ Button background: Rectangle { + id: backgroundRect color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor - radius: cornerRadius + radius: UM.Theme.getSize("action_button_radius").width } MouseArea diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 07eab72afb..3325312e8b 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -490,6 +490,8 @@ "avatar_image": [6.8, 6.8], + "action_button_radius": [0.25, 0.25], + "drop_shadow_radius": [1.0, 1.0] } } From 1cc7e0e586604ddf16b2931e1bcffbadb53c7f80 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 16:33:13 +0200 Subject: [PATCH 0050/1039] Set the height of the stage menu in the theme instead of hardcoded. I also adjusted a bit the design to fulfill the requirments from UX/UI team. Contributes to CURA-5772. --- cura/Stages/CuraStage.py | 5 +++-- plugins/PrepareStage/PrepareMenu.qml | 8 +++++++- resources/qml/Cura.qml | 17 ++++++++++++++--- resources/themes/cura-light/theme.json | 2 ++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/cura/Stages/CuraStage.py b/cura/Stages/CuraStage.py index 774a5a6e76..e8537fb6b9 100644 --- a/cura/Stages/CuraStage.py +++ b/cura/Stages/CuraStage.py @@ -1,5 +1,6 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. + from PyQt5.QtCore import pyqtProperty, QUrl from UM.Stage import Stage @@ -27,6 +28,6 @@ class CuraStage(Stage): def sidebarComponent(self) -> QUrl: return self.getDisplayComponent("sidebar") - @pyqtProperty(QUrl, constant=True) + @pyqtProperty(QUrl, constant = True) def stageMenuComponent(self) -> QUrl: return self.getDisplayComponent("menu") \ No newline at end of file diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 208e7d18df..10ff0b2310 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -21,7 +21,6 @@ Item Row { - spacing: UM.Theme.getSize("default_margin").width anchors.horizontalCenter: parent.horizontalCenter Button @@ -34,6 +33,13 @@ Item action: Cura.Actions.open } + Item + { + id: spacing + width: UM.Theme.getSize("default_margin").width + height: parent.height + } + Cura.MachineAndConfigurationSelector { } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 2654eb3c20..d9113ca448 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -20,7 +20,6 @@ UM.MainWindow // Cura application window title title: catalog.i18nc("@title:window", "Ultimaker Cura") - viewportRect: Qt.rect(0, 0, 1.0, 1.0) backgroundColor: UM.Theme.getColor("viewport_background") UM.I18nCatalog @@ -143,6 +142,19 @@ UM.MainWindow } } + Rectangle + { + anchors + { + left: parent.left + right: parent.right + top: parent.top + } + visible: stageMenu.source != "" + height: Math.round(UM.Theme.getSize("stage_menu").height / 2) + color: UM.Theme.getColor("topheader_background") + } + Loader { // The stage menu is, as the name implies, a menu that is defined by the active stage. @@ -155,10 +167,9 @@ UM.MainWindow left: parent.left right: parent.right top: parent.top - margins: UM.Theme.getSize("default_margin").height } - height: 50 + height: UM.Theme.getSize("stage_menu").height source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : "" } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 3325312e8b..d26c872b00 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -344,6 +344,8 @@ "topheader_button": [8, 4], "topheader_button_icon": [1.2, 1.2], + "stage_menu": [0.0, 4.5], + "account_button": [12, 3], "views_selector": [0.0, 4.0], From 8df3eb33d45fd89bc4e7b0789ba03cfdc1020c4f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 16:51:32 +0200 Subject: [PATCH 0051/1039] Minor changes: remove empty lines, small changes in the anchors, ... Contributes to CURA-5772. --- resources/qml/Account/AccountDetails.qml | 2 +- resources/qml/Account/AccountWidget.qml | 1 - resources/qml/Cura.qml | 9 +-------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index cc065fc0dd..9cd9b91949 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -38,7 +38,7 @@ Column Loader { - id: accountEntryPoints + id: accountOperations anchors.horizontalCenter: parent.horizontalCenter sourceComponent: loggedIn ? userOperations : generalOperations } diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index 70ee6c86da..d6d4728e7e 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -16,7 +16,6 @@ Button implicitHeight: UM.Theme.getSize("topheader").height implicitWidth: UM.Theme.getSize("topheader").height - AvatarImage { id: avatar diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index d9113ca448..52ff99ad9b 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -187,7 +187,6 @@ UM.MainWindow { bottom: parent.bottom bottomMargin: UM.Theme.getSize("default_margin").height - rightMargin: UM.Theme.getSize("default_margin").width } } @@ -330,13 +329,7 @@ UM.MainWindow // A stage can control this area. If nothing is set, it will therefore show the 3D view. id: main - anchors - { - top: parent.top - bottom: parent.bottom - left: parent.left - right: parent.right - } + anchors.fill: parent MouseArea { From 93b04190f803b16e8409ac94f843f2605a347ed8 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 17:13:15 +0200 Subject: [PATCH 0052/1039] Change name of some components to make them more indicative of what they do. Contributes to CURA-5772. --- plugins/PrepareStage/PrepareMenu.qml | 23 +++++++-- ...or.qml => CustomConfigurationSelector.qml} | 0 .../qml/MachineAndConfigurationSelector.qml | 47 ------------------- ...chineSelection.qml => MachineSelector.qml} | 0 ...ion.qml => QuickConfigurationSelector.qml} | 0 ...ngComponent.qml => PrintSetupSelector.qml} | 0 resources/qml/qmldir | 7 +-- 7 files changed, 23 insertions(+), 54 deletions(-) rename resources/qml/{MaterialAndVariantSelector.qml => CustomConfigurationSelector.qml} (100%) delete mode 100644 resources/qml/MachineAndConfigurationSelector.qml rename resources/qml/{MachineSelection.qml => MachineSelector.qml} (100%) rename resources/qml/Menus/ConfigurationMenu/{ConfigurationSelection.qml => QuickConfigurationSelector.qml} (100%) rename resources/qml/{ProfileAndSettingComponent.qml => PrintSetupSelector.qml} (100%) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 10ff0b2310..8d0f03ec2f 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -13,6 +13,9 @@ Item signal showTooltip(Item item, point location, string text) signal hideTooltip() + property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" + property bool printerConnected: Cura.MachineManager.printerConnected + UM.I18nCatalog { id: catalog @@ -37,19 +40,31 @@ Item { id: spacing width: UM.Theme.getSize("default_margin").width - height: parent.height + height: prepareMenu.height } - Cura.MachineAndConfigurationSelector + Cura.MachineSelector { + id: machineSelection + width: UM.Theme.getSize("sidebar").width + height: prepareMenu.height } - Cura.MaterialAndVariantSelector + Cura.QuickConfigurationSelector + { + id: configSelection + visible: isNetworkPrinter && printerConnected + width: visible ? Math.round(machineSelection.width * 0.15) : 0 + panelWidth: machineSelection.width + height: prepareMenu.height + } + + Cura.CustomConfigurationSelector { width: UM.Theme.getSize("sidebar").width } - Cura.ProfileAndSettingComponent + Cura.PrintSetupSelector { width: UM.Theme.getSize("sidebar").width onShowTooltip: prepareMenu.showTooltip(item, location, text) diff --git a/resources/qml/MaterialAndVariantSelector.qml b/resources/qml/CustomConfigurationSelector.qml similarity index 100% rename from resources/qml/MaterialAndVariantSelector.qml rename to resources/qml/CustomConfigurationSelector.qml diff --git a/resources/qml/MachineAndConfigurationSelector.qml b/resources/qml/MachineAndConfigurationSelector.qml deleted file mode 100644 index 15b9ca6dd6..0000000000 --- a/resources/qml/MachineAndConfigurationSelector.qml +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 - -import UM 1.2 as UM -import Cura 1.0 as Cura -import "Menus" -import "Menus/ConfigurationMenu" - -Rectangle -{ - color: UM.Theme.getColor("sidebar_lining_thin") - - implicitHeight: UM.Theme.getSize("sidebar_header").height - implicitWidth: UM.Theme.getSize("sidebar").width - - property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" - property bool printerConnected: Cura.MachineManager.printerConnected - - MachineSelection - { - id: machineSelection - anchors - { - left: parent.left - right: configSelection.left - rightMargin: UM.Theme.getSize("sidebar_lining_thin").height / 2 - top: parent.top - bottom: parent.bottom - } - } - - ConfigurationSelection - { - id: configSelection - visible: isNetworkPrinter && printerConnected - width: visible ? Math.round(parent.width * 0.15) : 0 - panelWidth: parent.width - anchors - { - right: parent.right - top: parent.top - bottom: parent.bottom - } - } -} \ No newline at end of file diff --git a/resources/qml/MachineSelection.qml b/resources/qml/MachineSelector.qml similarity index 100% rename from resources/qml/MachineSelection.qml rename to resources/qml/MachineSelector.qml diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationSelection.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml similarity index 100% rename from resources/qml/Menus/ConfigurationMenu/ConfigurationSelection.qml rename to resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml diff --git a/resources/qml/ProfileAndSettingComponent.qml b/resources/qml/PrintSetupSelector.qml similarity index 100% rename from resources/qml/ProfileAndSettingComponent.qml rename to resources/qml/PrintSetupSelector.qml diff --git a/resources/qml/qmldir b/resources/qml/qmldir index b9306b14bc..10e103d9ef 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -1,6 +1,7 @@ module Cura -MachineAndConfigurationSelector 1.0 MachineAndConfigurationSelector.qml -MaterialAndVariantSelector 1.0 MaterialAndVariantSelector.qml -ProfileAndSettingComponent 1.0 ProfileAndSettingComponent.qml +MachineSelector 1.0 MachineSelector.qml +QuickConfigurationSelector 1.0 QuickConfigurationSelector.qml +CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml +PrintSetupSelector 1.0 PrintSetupSelector.qml ActionButton 1.0 ActionButton.qml \ No newline at end of file From 84adfa14ee73ef09831197c464ca847b5543f1de Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 17:26:10 +0200 Subject: [PATCH 0053/1039] Add license to the top of a file Contributes to CURA-5772. --- resources/qml/ExtruderIcon.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 580ff5dce9..e4161e0058 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -1,3 +1,6 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.7 import QtQuick.Controls 1.1 import UM 1.2 as UM @@ -47,7 +50,7 @@ Item height: Math.round(parent.height * 0.35) radius: Math.round(width / 2) - border.width: 1 + border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("extruder_button_material_border") opacity: !extruderIconItem.checked ? 0.6 : 1.0 From bf6817ce7a68c2e7f0b347ca98062e913a7a35e4 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 17:38:23 +0200 Subject: [PATCH 0054/1039] Reduce the size of the ApplicationMenu.qml file by moving some components out to different files. Contributes to CURA-5772. --- resources/qml/MainWindow/ApplicationMenu.qml | 136 +------------------ resources/qml/Menus/FileMenu.qml | 81 +++++++++++ resources/qml/Menus/SettingsMenu.qml | 69 ++++++++++ 3 files changed, 153 insertions(+), 133 deletions(-) create mode 100644 resources/qml/Menus/FileMenu.qml create mode 100644 resources/qml/Menus/SettingsMenu.qml diff --git a/resources/qml/MainWindow/ApplicationMenu.qml b/resources/qml/MainWindow/ApplicationMenu.qml index e538e966fc..d3bc115419 100644 --- a/resources/qml/MainWindow/ApplicationMenu.qml +++ b/resources/qml/MainWindow/ApplicationMenu.qml @@ -24,78 +24,7 @@ Item { id: applicationMenu - Menu - { - id: fileMenu - title: catalog.i18nc("@title:menu menubar:toplevel", "&File") - - MenuItem - { - id: newProjectMenu - action: Cura.Actions.newProject - } - - MenuItem - { - id: openMenu - action: Cura.Actions.open - } - - RecentFilesMenu { } - - MenuItem - { - id: saveWorkspaceMenu - text: catalog.i18nc("@title:menu menubar:file", "&Save...") - onTriggered: - { - var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; - if(UM.Preferences.getValue("cura/dialog_on_project_save")) - { - saveWorkspaceDialog.args = args - saveWorkspaceDialog.open() - } - else - { - UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) - } - } - } - - MenuSeparator { } - - MenuItem - { - id: saveAsMenu - text: catalog.i18nc("@title:menu menubar:file", "&Export...") - onTriggered: - { - var localDeviceId = "local_file" - UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) - } - } - - MenuItem - { - id: exportSelectionMenu - text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") - enabled: UM.Selection.hasSelection - iconName: "document-save-as" - onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) - } - - MenuSeparator { } - - MenuItem - { - id: reloadAllMenu - action: Cura.Actions.reloadAll - } - - MenuSeparator { } - - MenuItem { action: Cura.Actions.quit } - } + FileMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&File") } Menu { @@ -116,68 +45,9 @@ Item MenuItem { action: Cura.Actions.unGroupObjects } } - ViewMenu { title: catalog.i18nc("@title:menu", "&View") } + ViewMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&View") } - Menu - { - id: settingsMenu - title: catalog.i18nc("@title:menu", "&Settings") - - PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") } - - Instantiator - { - model: Cura.ExtrudersModel { simpleNames: true } - Menu - { - title: model.name - - NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } - MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index } - - MenuSeparator - { - visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Set as Active Extruder") - onTriggered: Cura.MachineManager.setExtruderIndex(model.index) - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Enable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) - visible: !Cura.MachineManager.getExtruder(model.index).isEnabled - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Disable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) - visible: Cura.MachineManager.getExtruder(model.index).isEnabled - enabled: Cura.MachineManager.numberExtrudersEnabled > 1 - } - - } - onObjectAdded: settingsMenu.insertItem(index, object) - onObjectRemoved: settingsMenu.removeItem(object) - } - - // TODO Only show in dev mode. Remove check when feature ready - BuildplateMenu - { - title: catalog.i18nc("@title:menu", "&Build plate") - visible: CuraSDKVersion == "dev" && Cura.MachineManager.hasVariantBuildplates - } - ProfileMenu { title: catalog.i18nc("@title:settings", "&Profile") } - - MenuSeparator { } - - MenuItem { action: Cura.Actions.configureSettingVisibility } - } + SettingsMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&Settings") } Menu { diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml new file mode 100644 index 0000000000..955ac89693 --- /dev/null +++ b/resources/qml/Menus/FileMenu.qml @@ -0,0 +1,81 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +Menu +{ + id: base + title: catalog.i18nc("@title:menu menubar:toplevel", "&File") + + MenuItem + { + id: newProjectMenu + action: Cura.Actions.newProject + } + + MenuItem + { + id: openMenu + action: Cura.Actions.open + } + + RecentFilesMenu { } + + MenuItem + { + id: saveWorkspaceMenu + text: catalog.i18nc("@title:menu menubar:file", "&Save...") + onTriggered: + { + var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" }; + if(UM.Preferences.getValue("cura/dialog_on_project_save")) + { + saveWorkspaceDialog.args = args + saveWorkspaceDialog.open() + } + else + { + UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args) + } + } + } + + MenuSeparator { } + + MenuItem + { + id: saveAsMenu + text: catalog.i18nc("@title:menu menubar:file", "&Export...") + onTriggered: + { + var localDeviceId = "local_file" + UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + } + } + + MenuItem + { + id: exportSelectionMenu + text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...") + enabled: UM.Selection.hasSelection + iconName: "document-save-as" + onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"}) + } + + MenuSeparator { } + + MenuItem + { + id: reloadAllMenu + action: Cura.Actions.reloadAll + } + + MenuSeparator { } + + MenuItem { action: Cura.Actions.quit } +} \ No newline at end of file diff --git a/resources/qml/Menus/SettingsMenu.qml b/resources/qml/Menus/SettingsMenu.qml new file mode 100644 index 0000000000..79f8c5b7bf --- /dev/null +++ b/resources/qml/Menus/SettingsMenu.qml @@ -0,0 +1,69 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +Menu +{ + id: base + title: catalog.i18nc("@title:menu menubar:toplevel", "&Settings") + + PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") } + + Instantiator + { + model: Cura.ExtrudersModel { simpleNames: true } + Menu + { + title: model.name + + NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } + MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index } + + MenuSeparator + { + visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Set as Active Extruder") + onTriggered: Cura.MachineManager.setExtruderIndex(model.index) + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Enable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) + visible: !Cura.MachineManager.getExtruder(model.index).isEnabled + } + + MenuItem + { + text: catalog.i18nc("@action:inmenu", "Disable Extruder") + onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) + visible: Cura.MachineManager.getExtruder(model.index).isEnabled + enabled: Cura.MachineManager.numberExtrudersEnabled > 1 + } + + } + onObjectAdded: base.insertItem(index, object) + onObjectRemoved: base.removeItem(object) + } + + // TODO Only show in dev mode. Remove check when feature ready + BuildplateMenu + { + title: catalog.i18nc("@title:menu", "&Build plate") + visible: CuraSDKVersion == "dev" && Cura.MachineManager.hasVariantBuildplates + } + ProfileMenu { title: catalog.i18nc("@title:settings", "&Profile") } + + MenuSeparator { } + + MenuItem { action: Cura.Actions.configureSettingVisibility } +} \ No newline at end of file From 176c7bfc22ea4972ce194c07301b9e75ca28331f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 17:48:03 +0200 Subject: [PATCH 0055/1039] Small fixes in the CustomConfigurationSelector file Contributes to CURA-5772. --- resources/qml/CustomConfigurationSelector.qml | 26 +++++++++---------- resources/qml/qmldir | 4 ++- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/resources/qml/CustomConfigurationSelector.qml b/resources/qml/CustomConfigurationSelector.qml index 7dfc3737c0..9a3f91e6a3 100644 --- a/resources/qml/CustomConfigurationSelector.qml +++ b/resources/qml/CustomConfigurationSelector.qml @@ -8,8 +8,6 @@ import QtQuick.Controls.Styles 1.1 import UM 1.2 as UM import Cura 1.0 as Cura -import "Menus" // TODO: This needs to be fixed in the qmldir! - Rectangle { implicitWidth: parent.width @@ -77,16 +75,15 @@ Rectangle extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled if (extruder_enabled) { - forceActiveFocus(); // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - Cura.ExtruderManager.setActiveExtruderIndex(index); + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + Cura.ExtruderManager.setActiveExtruderIndex(index) } - break; + break case Qt.RightButton: extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled - extruderMenu.popup(); - break; + extruderMenu.popup() + break } - } } @@ -122,8 +119,9 @@ Rectangle { if(control.checked || control.pressed) { - return UM.Theme.getColor("action_button_active_border"); - } else if (control.hovered) + return UM.Theme.getColor("action_button_active_border") + } + else if (control.hovered) { return UM.Theme.getColor("action_button_hovered_border") } @@ -252,7 +250,7 @@ Rectangle anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; - menu: MaterialMenu + menu: Cura.MaterialMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } @@ -300,7 +298,7 @@ Rectangle style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; - menu: NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } + menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } } } @@ -348,12 +346,12 @@ Rectangle { anchors.fill: parent - onClicked: { + onClicked: + { // open the material URL with web browser Qt.openUrlExternally("https://ultimaker.com/incoming-links/cura/material-compatibilty"); } } } } - } diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 10e103d9ef..2681da00e1 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -4,4 +4,6 @@ MachineSelector 1.0 MachineSelector.qml QuickConfigurationSelector 1.0 QuickConfigurationSelector.qml CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml PrintSetupSelector 1.0 PrintSetupSelector.qml -ActionButton 1.0 ActionButton.qml \ No newline at end of file +ActionButton 1.0 ActionButton.qml +MaterialMenu 1.0 MaterialMenu.qml +NozzleMenu 1.0 NozzleMenu.qml \ No newline at end of file From 66147f4172f1162a5a5a604742186f91e3025c4a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 17:49:56 +0200 Subject: [PATCH 0056/1039] Remove unused style button. Contributes to CURA-5772. --- resources/themes/cura-light/styles.qml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 58e6d2cf4d..074ceb4200 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -96,14 +96,6 @@ QtObject } } - property Component action_button: Component - { - ButtonStyle - { - - } - } - property Component topheader_tab: Component { ButtonStyle From 405e4c5bbd73eb60b8b27822e3e30890ecdb97aa Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 18 Oct 2018 17:52:42 +0200 Subject: [PATCH 0057/1039] Correct year, we live now in 2018 (keep it in mind) Contributes to CURA-5772. --- resources/qml/MachineSelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 7a8a6b476b..49fbf16e19 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 From 6f12197cead700d53666f0f9007b895f830e0fd5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 19 Oct 2018 13:41:32 +0200 Subject: [PATCH 0058/1039] Don't use an image to create a mask but a circle. Contributes to CURA-5772. --- resources/qml/Account/AvatarImage.qml | 12 ++-- .../themes/cura-light/icons/circle_mask.svg | 64 ----------------- .../cura-light/icons/circle_outline.svg | 68 ++----------------- 3 files changed, 8 insertions(+), 136 deletions(-) delete mode 100644 resources/themes/cura-light/icons/circle_mask.svg diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index 333bce29d7..21adbcb7c3 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -26,31 +26,27 @@ Item visible: false } - UM.RecolorImage + Rectangle { id: profileImageMask - source: UM.Theme.getIcon("circle_mask") - sourceSize: Qt.size(parent.width, parent.height) anchors.fill: parent - color: UM.Theme.getColor("topheader_background") - visible: false + radius: width } OpacityMask { - anchors.fill: profileImage + anchors.fill: parent source: profileImage maskSource: profileImageMask cached: true - invert: false } UM.RecolorImage { id: profileImageOutline + anchors.fill: parent source: UM.Theme.getIcon("circle_outline") sourceSize: Qt.size(parent.width, parent.height) - anchors.fill: parent color: UM.Theme.getColor("account_widget_ouline_active") } } \ No newline at end of file diff --git a/resources/themes/cura-light/icons/circle_mask.svg b/resources/themes/cura-light/icons/circle_mask.svg deleted file mode 100644 index d5bfe53a97..0000000000 --- a/resources/themes/cura-light/icons/circle_mask.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/resources/themes/cura-light/icons/circle_outline.svg b/resources/themes/cura-light/icons/circle_outline.svg index 4d0b0e4eb0..3a8fb197f3 100644 --- a/resources/themes/cura-light/icons/circle_outline.svg +++ b/resources/themes/cura-light/icons/circle_outline.svg @@ -1,64 +1,4 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - + + + + \ No newline at end of file From 15b35da612e773bb78827ae7bd5940c33cd85717 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 19 Oct 2018 16:40:21 +0200 Subject: [PATCH 0059/1039] Change the TopHeader name to MainWindowHeader, since there is nothing more on the top than the header. Contributes to CURA-5784. --- resources/qml/Account/AccountWidget.qml | 4 ++-- resources/qml/Account/GeneralOperations.qml | 4 ++-- resources/qml/Account/UserOperations.qml | 4 ++-- resources/qml/Cura.qml | 8 +++---- .../{TopHeader.qml => MainWindowHeader.qml} | 22 +++++++++---------- .../ConfigurationMenu/ConfigurationItem.qml | 4 ++-- resources/themes/cura-dark/theme.json | 9 ++++---- resources/themes/cura-light/styles.qml | 14 ++++++------ resources/themes/cura-light/theme.json | 19 ++++++++-------- 9 files changed, 43 insertions(+), 45 deletions(-) rename resources/qml/MainWindow/{TopHeader.qml => MainWindowHeader.qml} (76%) diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index d6d4728e7e..fc99273119 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -13,8 +13,8 @@ Button property var profile: Cura.API.account.userProfile property var loggedIn: Cura.API.account.isLoggedIn - implicitHeight: UM.Theme.getSize("topheader").height - implicitWidth: UM.Theme.getSize("topheader").height + implicitHeight: UM.Theme.getSize("main_window_header").height + implicitWidth: UM.Theme.getSize("main_window_header").height AvatarImage { diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml index 1f3cd51f26..6bc94dd830 100644 --- a/resources/qml/Account/GeneralOperations.qml +++ b/resources/qml/Account/GeneralOperations.qml @@ -18,8 +18,8 @@ Row text: catalog.i18nc("@button", "Create account") color: UM.Theme.getColor("secondary") hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("text_link") - textHoverColor: UM.Theme.getColor("text") + textColor: UM.Theme.getColor("main_window_header_button_text_active") + textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") onClicked: Qt.openUrlExternally("https://account.ultimaker.com") } diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index ffcf518b6e..a12bfbf6d7 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -18,8 +18,8 @@ Row text: catalog.i18nc("@button", "Manage account") color: UM.Theme.getColor("secondary") hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("text_link") - textHoverColor: UM.Theme.getColor("text") + textColor: UM.Theme.getColor("main_window_header_button_text_active") + textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") onClicked: Qt.openUrlExternally("https://account.ultimaker.com") } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 52ff99ad9b..474f93afa4 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -86,9 +86,9 @@ UM.MainWindow window: base } - TopHeader + MainWindowHeader { - id: topHeader + id: mainWindowHeader anchors { left: parent.left @@ -103,7 +103,7 @@ UM.MainWindow anchors { - top: topHeader.bottom + top: mainWindowHeader.bottom bottom: parent.bottom left: parent.left right: parent.right @@ -152,7 +152,7 @@ UM.MainWindow } visible: stageMenu.source != "" height: Math.round(UM.Theme.getSize("stage_menu").height / 2) - color: UM.Theme.getColor("topheader_background") + color: UM.Theme.getColor("main_window_header_background") } Loader diff --git a/resources/qml/MainWindow/TopHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml similarity index 76% rename from resources/qml/MainWindow/TopHeader.qml rename to resources/qml/MainWindow/MainWindowHeader.qml index 867a6bafbb..b90968c606 100644 --- a/resources/qml/MainWindow/TopHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -2,7 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 -import QtQuick.Controls 1.1 +import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.1 import UM 1.4 as UM @@ -14,9 +14,9 @@ Rectangle { id: base - implicitHeight: UM.Theme.getSize("topheader").height - implicitWidth: UM.Theme.getSize("topheader").width - color: UM.Theme.getColor("topheader_background") + implicitHeight: UM.Theme.getSize("main_window_header").height + implicitWidth: UM.Theme.getSize("main_window_header").width + color: UM.Theme.getColor("main_window_header_background") Image { @@ -43,7 +43,7 @@ Rectangle leftMargin: UM.Theme.getSize("default_margin").width } - // The topheader is dynamically filled with all available stages + // The main window header is dynamically filled with all available stages Repeater { id: stagesHeader @@ -55,9 +55,9 @@ Rectangle text: model.name.toUpperCase() checkable: true checked: model.active - exclusiveGroup: topheaderMenuGroup - style: UM.Theme.styles.topheader_tab - height: UM.Theme.getSize("topheader").height + exclusiveGroup: mainWindowHeaderMenuGroup + style: UM.Theme.styles.main_window_header_tab + height: UM.Theme.getSize("main_window_header").height onClicked: UM.Controller.setActiveStage(model.id) iconSource: model.stage.iconSource @@ -66,7 +66,7 @@ Rectangle } } - ExclusiveGroup { id: topheaderMenuGroup } + ExclusiveGroup { id: mainWindowHeaderMenuGroup } } // Shortcut button to quick access the Toolbox @@ -83,14 +83,14 @@ Rectangle { background: Rectangle { - color: control.hovered ? UM.Theme.getColor("secondary") : UM.Theme.getColor("topheader_button_background_active") + color: control.hovered ? UM.Theme.getColor("secondary") : UM.Theme.getColor("main_window_header_button_background_active") radius: 2 * screenScaleFactor } label: Label { text: catalog.i18nc("@action:button", "Toolbox") - color: UM.Theme.getColor("topheader_button_text_active") + color: UM.Theme.getColor("main_window_header_button_text_active") font: UM.Theme.getFont("action_button") renderType: Text.NativeRendering } diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 517b69428e..37d851a35d 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -77,8 +77,8 @@ Rectangle UM.RecolorImage { id: buildplateIcon anchors.left: parent.left - width: UM.Theme.getSize("topheader_button_icon").width - height: UM.Theme.getSize("topheader_button_icon").height + width: UM.Theme.getSize("main_window_header_button_icon").width + height: UM.Theme.getSize("main_window_header_button_icon").height sourceSize.width: width sourceSize.height: height source: UM.Theme.getIcon("buildplate") diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 99737ff8bf..897d09ccf2 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -15,11 +15,10 @@ "border": [127, 127, 127, 255], "secondary": [241, 242, 242, 255], - "topheader_background": [31, 36, 39, 255], - - "topheader_button_text_active": [31, 36, 39, 255], - "topheader_button_text_inactive": [128, 128, 128, 255], - "topheader_button_text_hovered": [255, 255, 255, 255], + "main_window_header_background": [31, 36, 39, 255], + "main_window_header_button_text_active": [31, 36, 39, 255], + "main_window_header_button_text_inactive": [128, 128, 128, 255], + "main_window_header_button_text_hovered": [255, 255, 255, 255], "text": [255, 255, 255, 204], "text_detail": [255, 255, 255, 172], diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 074ceb4200..e6e5bd7fda 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -96,7 +96,7 @@ QtObject } } - property Component topheader_tab: Component + property Component main_window_header_tab: Component { ButtonStyle { @@ -114,7 +114,7 @@ QtObject anchors.verticalCenter: parent.verticalCenter implicitHeight: parent.height - 2 * UM.Theme.getSize("default_margin").width implicitWidth: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("topheader_button_background_active") + color: UM.Theme.getColor("main_window_header_button_background_active") visible: !control.checked } Rectangle @@ -122,7 +122,7 @@ QtObject id: buttonFace implicitHeight: parent.height implicitWidth: parent.width - color: control.checked ? UM.Theme.getColor("topheader_button_background_active") : UM.Theme.getColor("topheader_button_background_inactive") + color: control.checked ? UM.Theme.getColor("main_window_header_button_background_active") : UM.Theme.getColor("main_window_header_button_background_inactive") Behavior on color { ColorAnimation { duration: 50 } } } @@ -132,7 +132,7 @@ QtObject anchors.verticalCenter: parent.verticalCenter implicitHeight: parent.height - 2 * UM.Theme.getSize("default_margin").width implicitWidth: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("topheader_button_background_active") + color: UM.Theme.getColor("main_window_header_button_background_active") visible: !control.checked } } @@ -156,15 +156,15 @@ QtObject { if (control.checked) { - return UM.Theme.getColor("topheader_button_text_active"); + return UM.Theme.getColor("main_window_header_button_text_active"); } else { if (control.hovered) { - return UM.Theme.getColor("topheader_button_text_hovered"); + return UM.Theme.getColor("main_window_header_button_text_hovered"); } - return UM.Theme.getColor("topheader_button_text_inactive"); + return UM.Theme.getColor("main_window_header_button_text_inactive"); } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d26c872b00..d72493ec89 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -79,13 +79,12 @@ "border": [127, 127, 127, 255], "secondary": [245, 245, 245, 255], - "topheader_background": [12, 169, 227, 255], - - "topheader_button_text_active": [12, 169, 227, 255], - "topheader_button_text_inactive": [255, 255, 255, 255], - "topheader_button_text_hovered": [0, 0, 0, 255], - "topheader_button_background_active": [255, 255, 255, 255], - "topheader_button_background_inactive": [255, 255, 255, 0], + "main_window_header_background": [12, 169, 227, 255], + "main_window_header_button_text_active": [12, 169, 227, 255], + "main_window_header_button_text_inactive": [255, 255, 255, 255], + "main_window_header_button_text_hovered": [0, 0, 0, 255], + "main_window_header_button_background_active": [255, 255, 255, 255], + "main_window_header_button_background_inactive": [255, 255, 255, 0], "account_widget_outline_active": [9, 140, 188, 255], "account_widget_outline_inactive": [229, 229, 229, 255], @@ -340,9 +339,9 @@ "sizes": { "window_minimum_size": [70, 50], - "topheader": [0.0, 4.5], - "topheader_button": [8, 4], - "topheader_button_icon": [1.2, 1.2], + "main_window_header": [0.0, 4.5], + "main_window_header_button": [8, 4], + "main_window_header_button_icon": [1.2, 1.2], "stage_menu": [0.0, 4.5], From 17b77c58eff28e52f9d070cbc5a80c3dd5fcc4ec Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 19 Oct 2018 17:03:48 +0200 Subject: [PATCH 0060/1039] Make the spacing between the orientation controls be dependent on the theme. --- resources/qml/ViewOrientationControls.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/ViewOrientationControls.qml b/resources/qml/ViewOrientationControls.qml index bf56ef2997..acf75b1b48 100644 --- a/resources/qml/ViewOrientationControls.qml +++ b/resources/qml/ViewOrientationControls.qml @@ -12,9 +12,10 @@ Row { id: viewOrientationControl - spacing: 2 * screenScaleFactor + spacing: UM.Theme.getSize("narrow_margin").width height: childrenRect.height width: childrenRect.width + // #1 3d view Button { From 17732b116935eabf8e61accec56b44f324ea73db Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 19 Oct 2018 17:03:48 +0200 Subject: [PATCH 0061/1039] Make the spacing between the orientation controls be dependent on the theme. Contributes to CURA-5772. --- resources/qml/ViewOrientationControls.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/ViewOrientationControls.qml b/resources/qml/ViewOrientationControls.qml index bf56ef2997..acf75b1b48 100644 --- a/resources/qml/ViewOrientationControls.qml +++ b/resources/qml/ViewOrientationControls.qml @@ -12,9 +12,10 @@ Row { id: viewOrientationControl - spacing: 2 * screenScaleFactor + spacing: UM.Theme.getSize("narrow_margin").width height: childrenRect.height width: childrenRect.width + // #1 3d view Button { From 69fc1e5bfb85b7fc71c1b50b24a03b8ceae54981 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 22 Oct 2018 10:30:06 +0200 Subject: [PATCH 0062/1039] Reuse ActionButton component to create the toolbox shortcut. Contributes to CURA-5784. --- resources/qml/MainWindow/MainWindowHeader.qml | 27 +++++-------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index b90968c606..3de4dc7865 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -70,33 +70,20 @@ Rectangle } // Shortcut button to quick access the Toolbox - Button + Cura.ActionButton { - id: toolboxShortcutButton anchors { right: accountWidget.left rightMargin: UM.Theme.getSize("default_margin").width verticalCenter: parent.verticalCenter } - style: ButtonStyle - { - background: Rectangle - { - color: control.hovered ? UM.Theme.getColor("secondary") : UM.Theme.getColor("main_window_header_button_background_active") - radius: 2 * screenScaleFactor - } - - label: Label - { - text: catalog.i18nc("@action:button", "Toolbox") - color: UM.Theme.getColor("main_window_header_button_text_active") - font: UM.Theme.getFont("action_button") - renderType: Text.NativeRendering - } - - } - action: Cura.Actions.browsePackages + text: catalog.i18nc("@action:button", "Toolbox") + color: UM.Theme.getColor("main_window_header_button_background_active") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("main_window_header_button_text_active") + textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") + onClicked: Cura.Actions.browsePackages.trigger() } AccountWidget From dbb62f2490c76e482320bbbfe419b91498eee147 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 22 Oct 2018 11:31:19 +0200 Subject: [PATCH 0063/1039] Add default icons for the avatar. Contributes to CURA-5784. --- resources/qml/Account/AccountDetails.qml | 2 +- resources/qml/Account/AccountWidget.qml | 2 +- resources/qml/Account/AvatarImage.qml | 2 +- .../cura-light/images/avatar_default.png | Bin 3115 -> 0 bytes .../cura-light/images/avatar_default.svg | 76 ++++++++++++++++++ .../cura-light/images/avatar_no_user.svg | 76 ++++++++++++++++++ 6 files changed, 155 insertions(+), 3 deletions(-) delete mode 100644 resources/themes/cura-light/images/avatar_default.png create mode 100644 resources/themes/cura-light/images/avatar_default.svg create mode 100644 resources/themes/cura-light/images/avatar_no_user.svg diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index 9cd9b91949..a88fb77956 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -21,7 +21,7 @@ Column width: UM.Theme.getSize("avatar_image").width height: UM.Theme.getSize("avatar_image").height anchors.horizontalCenter: parent.horizontalCenter - source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") + source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user") outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") } diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index fc99273119..f54cf366e0 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -25,7 +25,7 @@ Button anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_default") + source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user") outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") } diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index 21adbcb7c3..c730ef428f 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -20,8 +20,8 @@ Item Image { id: profileImage - source: UM.Theme.getImage("avatar_default") anchors.fill: parent + source: UM.Theme.getImage("avatar_default") fillMode: Image.PreserveAspectCrop visible: false } diff --git a/resources/themes/cura-light/images/avatar_default.png b/resources/themes/cura-light/images/avatar_default.png deleted file mode 100644 index 0c306680f721dba0de73fb7be90fe5c548608692..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3115 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 + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/resources/themes/cura-light/images/avatar_no_user.svg b/resources/themes/cura-light/images/avatar_no_user.svg new file mode 100644 index 0000000000..bef9cb52db --- /dev/null +++ b/resources/themes/cura-light/images/avatar_no_user.svg @@ -0,0 +1,76 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + From bf1c23243e3c46a465121b8248483c272be61830 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 24 Oct 2018 09:55:51 +0200 Subject: [PATCH 0064/1039] Modify the styles to match the requirements. Contributes to CURA-5784. --- resources/qml/ActionButton.qml | 7 +++ resources/qml/MainWindow/MainWindowHeader.qml | 18 +++++-- resources/themes/cura-dark/theme.json | 2 - resources/themes/cura-light/images/logo.svg | 12 ++--- resources/themes/cura-light/styles.qml | 47 +++++++++---------- resources/themes/cura-light/theme.json | 18 +++++-- 6 files changed, 61 insertions(+), 43 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 44299d3734..a8ad94474e 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -20,6 +20,9 @@ Button property var textColor: UM.Theme.getColor("button_text") property var textHoverColor: UM.Theme.getColor("button_text_hover") property var textDisabledColor: textColor + property var outlineColor: color + property var outlineHoverColor: hoverColor + property var outlineDisabledColor: outlineColor contentItem: Row { @@ -34,6 +37,7 @@ Button color: button.hovered ? button.textHoverColor : button.textColor visible: source != "" anchors.verticalCenter: parent.verticalCenter + Behavior on color { ColorAnimation { duration: 50 } } } Label @@ -53,6 +57,9 @@ Button id: backgroundRect color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor radius: UM.Theme.getSize("action_button_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor + Behavior on color { ColorAnimation { duration: 50 } } } MouseArea diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 3de4dc7865..92d9d8ee26 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -36,10 +36,12 @@ Rectangle Row { id: stagesListContainer + spacing: Math.round(UM.Theme.getSize("default_margin").width / 2) anchors { horizontalCenter: parent.horizontalCenter + verticalCenter: parent.verticalCenter leftMargin: UM.Theme.getSize("default_margin").width } @@ -55,9 +57,10 @@ Rectangle text: model.name.toUpperCase() checkable: true checked: model.active + anchors.verticalCenter: parent.verticalCenter exclusiveGroup: mainWindowHeaderMenuGroup style: UM.Theme.styles.main_window_header_tab - height: UM.Theme.getSize("main_window_header").height + height: Math.round(0.56 * UM.Theme.getSize("main_window_header").height) onClicked: UM.Controller.setActiveStage(model.id) iconSource: model.stage.iconSource @@ -78,11 +81,16 @@ Rectangle rightMargin: UM.Theme.getSize("default_margin").width verticalCenter: parent.verticalCenter } + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@action:button", "Toolbox") - color: UM.Theme.getColor("main_window_header_button_background_active") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("main_window_header_button_text_active") - textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") + height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) + color: UM.Theme.getColor("main_window_header_secondary_button_background_active") + hoverColor: UM.Theme.getColor("main_window_header_secondary_button_background_hovered") + outlineColor: UM.Theme.getColor("main_window_header_secondary_button_outline_active") + outlineHoverColor: UM.Theme.getColor("main_window_header_secondary_button_outline_hovered") + textColor: UM.Theme.getColor("main_window_header_secondary_button_text_active") + textHoverColor: UM.Theme.getColor("main_window_header_secondary_button_text_hovered") onClicked: Cura.Actions.browsePackages.trigger() } diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 897d09ccf2..1625750a19 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -15,8 +15,6 @@ "border": [127, 127, 127, 255], "secondary": [241, 242, 242, 255], - "main_window_header_background": [31, 36, 39, 255], - "main_window_header_button_text_active": [31, 36, 39, 255], "main_window_header_button_text_inactive": [128, 128, 128, 255], "main_window_header_button_text_hovered": [255, 255, 255, 255], diff --git a/resources/themes/cura-light/images/logo.svg b/resources/themes/cura-light/images/logo.svg index 89692f8295..55842ef530 100644 --- a/resources/themes/cura-light/images/logo.svg +++ b/resources/themes/cura-light/images/logo.svg @@ -25,11 +25,11 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.35" - inkscape:cx="-64.285714" - inkscape:cy="560" + inkscape:zoom="1.979899" + inkscape:cx="97.165681" + inkscape:cy="69.313647" inkscape:document-units="mm" - inkscape:current-layer="layer1" + inkscape:current-layer="g4570" showgrid="false" inkscape:window-width="1920" inkscape:window-height="1137" @@ -45,7 +45,7 @@ image/svg+xml - + @@ -61,7 +61,7 @@ id="polygon4506" points="741.8,410.8 781.7,410.8 801.9,390.6 801.9,350.7 762,350.7 741.8,370.9 " class="st0" - style="fill:#333333" /> + style="fill:#3282ff;fill-opacity:1" /> Date: Wed, 24 Oct 2018 11:28:52 +0200 Subject: [PATCH 0065/1039] Add pointing hand cursor shape when hovering the AccountWidget. Contributes to CURA-5784. --- resources/qml/Account/AccountWidget.qml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index f54cf366e0..eb58d66773 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -29,6 +29,15 @@ Button outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") } + MouseArea + { + id: mouseArea + anchors.fill: parent + onPressed: mouse.accepted = false + hoverEnabled: true + cursorShape: accountWidget.enabled ? (hovered ? Qt.PointingHandCursor : Qt.ArrowCursor) : Qt.ForbiddenCursor + } + background: Item {} onClicked: popup.opened ? popup.close() : popup.open() From 103024f919e0a94b937b915f44799a22fc0a5652 Mon Sep 17 00:00:00 2001 From: Sacha Telgenhof Oude Koehorst Date: Wed, 24 Oct 2018 23:22:22 +0900 Subject: [PATCH 0066/1039] Reduced the number of polygons of the Ender-3 logo in the mesh bed in order to reduce file size of the STL. Also made the Ender logo punched through so it is a bit more noticeable on the build shader. --- resources/meshes/creality_ender3_platform.stl | 65532 ++++------------ 1 file changed, 13306 insertions(+), 52226 deletions(-) diff --git a/resources/meshes/creality_ender3_platform.stl b/resources/meshes/creality_ender3_platform.stl index b362330c9c..4c3699a530 100644 --- a/resources/meshes/creality_ender3_platform.stl +++ b/resources/meshes/creality_ender3_platform.stl @@ -1,43990 +1,14828 @@ solid OpenSCAD_Model - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.3736 -10.7173 -0.2 - vertex 19.6895 -11.13 -0.2 - vertex 19.6819 -11.0243 -0.2 + vertex -36.5262 -13.4531 -3 + vertex -35.4871 -14.1281 -3 + vertex -35.6081 -14.799 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.4763 -10.749 -0.2 - vertex 19.6819 -11.0243 -0.2 - vertex 19.6583 -10.9333 -0.2 + vertex -35.4871 -14.1281 -3 + vertex -35.9073 -13.512 -3 + vertex -35.5739 -13.718 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.557 -10.7956 -0.2 - vertex 19.6583 -10.9333 -0.2 - vertex 19.6172 -10.8571 -0.2 + vertex -35.4871 -14.1281 -3 + vertex -36.5262 -13.4531 -3 + vertex -35.9073 -13.512 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.6895 -11.13 -0.2 - vertex 19.3736 -10.7173 -0.2 - vertex 19.6598 -11.2975 -0.2 + vertex -37.2393 -13.2576 -3 + vertex -35.6081 -14.799 -3 + vertex -37.0548 -18.7102 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.6583 -10.9333 -0.2 - vertex 19.557 -10.7956 -0.2 - vertex 19.4763 -10.749 -0.2 + vertex -35.6081 -14.799 -3 + vertex -37.2393 -13.2576 -3 + vertex -36.5262 -13.4531 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.6819 -11.0243 -0.2 - vertex 19.4763 -10.749 -0.2 - vertex 19.3736 -10.7173 -0.2 + vertex -37.0548 -18.7102 -3 + vertex -37.5366 -12.7854 -3 + vertex -37.2393 -13.2576 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.0963 -10.6988 -0.2 - vertex 19.6598 -11.2975 -0.2 - vertex 19.3736 -10.7173 -0.2 + vertex -37.3951 -12.1929 -3 + vertex -38.3729 23.836 -3 + vertex -37.6991 23.0789 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.6598 -11.2975 -0.2 - vertex 19.0963 -10.6988 -0.2 - vertex 19.5653 -11.6083 -0.2 + vertex -37.3951 -12.1929 -3 + vertex -38.8382 24.6102 -3 + vertex -38.3729 23.836 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 18.7132 -10.7406 -0.2 - vertex 19.5653 -11.6083 -0.2 - vertex 19.0963 -10.6988 -0.2 + vertex -37.3951 -12.1929 -3 + vertex -39.1303 25.4589 -3 + vertex -38.8382 24.6102 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 18.2126 -10.843 -0.2 - vertex 19.5653 -11.6083 -0.2 - vertex 18.7132 -10.7406 -0.2 + vertex -47.2102 -36.2359 -3 + vertex -37.5366 -12.7854 -3 + vertex -39.9072 -25.4747 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.5653 -11.6083 -0.2 - vertex 18.2126 -10.843 -0.2 - vertex 19.1479 -12.7477 -0.2 + vertex -39.9072 -25.4747 -3 + vertex -37.5366 -12.7854 -3 + vertex -37.0548 -18.7102 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 17.5824 -11.0066 -0.2 - vertex 19.1479 -12.7477 -0.2 - vertex 18.2126 -10.843 -0.2 + vertex -30.0976 22.0525 -3 + vertex -29.0303 22.3563 -3 + vertex -28.3511 21.9725 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 16.811 -11.2316 -0.2 - vertex 19.1479 -12.7477 -0.2 - vertex 17.5824 -11.0066 -0.2 + vertex -30.0976 22.0525 -3 + vertex -30.3878 23.2826 -3 + vertex -29.0303 22.3563 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 19.1479 -12.7477 -0.2 - vertex 16.811 -11.2316 -0.2 - vertex 18.3699 -14.7241 -0.2 + vertex -32.1178 22.3529 -3 + vertex -30.3878 23.2826 -3 + vertex -30.0976 22.0525 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 14.1363 -14.3424 -0.2 - vertex 18.3699 -14.7241 -0.2 - vertex 16.811 -11.2316 -0.2 + vertex -31.0943 24.213 -3 + vertex -34.2108 23.023 -3 + vertex -31.2773 24.779 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 14.0967 -14.5873 -0.2 - vertex 18.3699 -14.7241 -0.2 - vertex 14.1362 -14.4186 -0.2 + vertex -34.2108 23.023 -3 + vertex -31.0943 24.213 -3 + vertex -32.1178 22.3529 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 18.3699 -14.7241 -0.2 - vertex 14.1363 -14.3424 -0.2 - vertex 14.1362 -14.4186 -0.2 + vertex -30.3878 23.2826 -3 + vertex -32.1178 22.3529 -3 + vertex -31.0943 24.213 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.7217 -12.1451 -0.2 - vertex 14.1363 -14.3424 -0.2 - vertex 16.811 -11.2316 -0.2 + vertex -26.0647 23.8437 -3 + vertex -26.0224 24.2804 -3 + vertex -24.664 24.0122 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 14.1363 -14.3424 -0.2 - vertex 13.7217 -12.1451 -0.2 - vertex 14.0881 -14.3092 -0.2 + vertex -27.3687 23.7586 -3 + vertex -26.0224 24.2804 -3 + vertex -26.0647 23.8437 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 14.0881 -14.3092 -0.2 - vertex 13.7217 -12.1451 -0.2 - vertex 14.0003 -14.2763 -0.2 + vertex -27.3687 23.7586 -3 + vertex -28.1365 24.9019 -3 + vertex -26.0224 24.2804 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 14.0003 -14.2763 -0.2 - vertex 13.7217 -12.1451 -0.2 - vertex 13.7222 -14.2141 -0.2 + vertex -28.4642 23.8513 -3 + vertex -28.1365 24.9019 -3 + vertex -27.3687 23.7586 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.4022 -12.26 -0.2 - vertex 13.7222 -14.2141 -0.2 - vertex 13.7217 -12.1451 -0.2 + vertex -29.3958 24.13 -3 + vertex -28.1365 24.9019 -3 + vertex -28.4642 23.8513 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.1153 -12.4148 -0.2 - vertex 13.7222 -14.2141 -0.2 - vertex 13.4022 -12.26 -0.2 + vertex -29.3958 24.13 -3 + vertex -29.9035 25.8898 -3 + vertex -28.1365 24.9019 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.7222 -14.2141 -0.2 - vertex 13.1153 -12.4148 -0.2 - vertex 13.3346 -14.1615 -0.2 + vertex -30.2081 24.6027 -3 + vertex -29.9035 25.8898 -3 + vertex -29.3958 24.13 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.8673 -12.6015 -0.2 - vertex 13.3346 -14.1615 -0.2 - vertex 13.1153 -12.4148 -0.2 + vertex -30.8173 24.9813 -3 + vertex -29.9035 25.8898 -3 + vertex -30.2081 24.6027 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.6645 -12.8127 -0.2 - vertex 13.3346 -14.1615 -0.2 - vertex 12.8673 -12.6015 -0.2 + vertex -31.1793 25.0376 -3 + vertex -29.9035 25.8898 -3 + vertex -30.8173 24.9813 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.513 -13.0405 -0.2 - vertex 13.3346 -14.1615 -0.2 - vertex 12.6645 -12.8127 -0.2 + vertex -29.9035 25.8898 -3 + vertex -31.1793 25.0376 -3 + vertex -31.116 26.9038 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.3346 -14.1615 -0.2 - vertex 12.513 -13.0405 -0.2 - vertex 12.8698 -14.1239 -0.2 + vertex -31.2912 27.2229 -3 + vertex -31.1793 25.0376 -3 + vertex -31.2773 24.779 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.419 -13.2773 -0.2 - vertex 12.8698 -14.1239 -0.2 - vertex 12.513 -13.0405 -0.2 + vertex -31.1793 25.0376 -3 + vertex -31.2912 27.2229 -3 + vertex -31.116 26.9038 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.3889 -13.5153 -0.2 - vertex 12.8698 -14.1239 -0.2 - vertex 12.419 -13.2773 -0.2 + vertex -22.4212 26.8695 -3 + vertex -21.4485 26.3569 -3 + vertex -22.0473 26.2369 -3 endloop endfacet - facet normal -0 -0 1 + facet normal 0 0 -1 outer loop - vertex 12.3997 -13.6324 -0.2 - vertex 12.8698 -14.1239 -0.2 - vertex 12.3889 -13.5153 -0.2 + vertex -21.4485 26.3569 -3 + vertex -22.4212 26.8695 -3 + vertex -21.2681 26.5576 -3 endloop endfacet - facet normal -0 -0 1 + facet normal 0 0 -1 outer loop - vertex 12.5013 -13.8876 -0.2 - vertex 12.8698 -14.1239 -0.2 - vertex 12.3997 -13.6324 -0.2 + vertex -24.8433 26.205 -3 + vertex -22.4212 26.8695 -3 + vertex -22.0473 26.2369 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.8698 -14.1239 -0.2 - vertex 12.6087 -14.0056 -0.2 - vertex 12.7363 -14.0885 -0.2 + vertex -27.4214 26.3653 -3 + vertex -24.3225 27.6757 -3 + vertex -24.8433 26.205 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.8698 -14.1239 -0.2 - vertex 12.5013 -13.8876 -0.2 - vertex 12.6087 -14.0056 -0.2 + vertex -23.8902 27.3484 -3 + vertex -24.8433 26.205 -3 + vertex -24.3225 27.6757 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.5013 -13.8876 -0.2 - vertex 12.3997 -13.6324 -0.2 - vertex 12.4287 -13.7469 -0.2 + vertex -22.4212 26.8695 -3 + vertex -24.8433 26.205 -3 + vertex -23.8902 27.3484 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.9185 -15.1524 -0.2 - vertex 18.3699 -14.7241 -0.2 - vertex 14.0967 -14.5873 -0.2 + vertex 0.168338 -24.355 -3 + vertex -3.89417 -22.8317 -3 + vertex -3.85646 -21.6547 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 18.3699 -14.7241 -0.2 - vertex 13.9185 -15.1524 -0.2 - vertex 17.1638 -17.7131 -0.2 + vertex -6.41168 -29.738 -3 + vertex -3.7659 -32.0301 -3 + vertex -3.99709 -33.5697 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.6397 -15.9386 -0.2 - vertex 17.1638 -17.7131 -0.2 - vertex 13.9185 -15.1524 -0.2 + vertex -3.14673 -30.0798 -3 + vertex -4.26405 -24.3543 -3 + vertex -3.89417 -22.8317 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 13.2984 -16.8469 -0.2 - vertex 17.1638 -17.7131 -0.2 - vertex 13.6397 -15.9386 -0.2 + vertex 13.2867 -16.8469 -3 + vertex 12.858 -14.1239 -3 + vertex 14.1246 -14.3424 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.5806 -18.6336 -0.2 - vertex 17.1638 -17.7131 -0.2 - vertex 13.2984 -16.8469 -0.2 + vertex 13.2867 -16.8469 -3 + vertex 12.417 -13.7469 -3 + vertex 12.858 -14.1239 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.2803 -19.3138 -0.2 - vertex 17.1638 -17.7131 -0.2 - vertex 12.5806 -18.6336 -0.2 + vertex 10.3474 -19.1774 -3 + vertex 13.2867 -16.8469 -3 + vertex 11.2177 -19.5302 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 17.1638 -17.7131 -0.2 - vertex 12.2803 -19.3138 -0.2 - vertex 14.5952 -23.8342 -0.2 + vertex 11.2177 -19.5302 -3 + vertex 13.2867 -16.8469 -3 + vertex 12.058 -19.7199 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.0697 -19.7199 -0.2 - vertex 14.5952 -23.8342 -0.2 - vertex 12.2803 -19.3138 -0.2 + vertex 12.0544 30.7144 -3 + vertex 5.19939 38.083 -3 + vertex 5.25321 38.4452 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.0185 -19.7802 -0.2 - vertex 14.5952 -23.8342 -0.2 - vertex 12.0697 -19.7199 -0.2 + vertex 11.5971 30.3591 -3 + vertex 4.72188 37.0399 -3 + vertex 5.19939 38.083 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.9563 -19.8175 -0.2 - vertex 14.5952 -23.8342 -0.2 - vertex 12.0185 -19.7802 -0.2 + vertex 11.2319 29.4873 -3 + vertex 3.57109 31.3388 -3 + vertex 11.5971 30.3591 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 -0 -1 outer loop - vertex 10.1598 -23.7848 -0.2 - vertex 14.5952 -23.8342 -0.2 - vertex 10.1807 -23.3758 -0.2 + vertex 4.30515 36.0346 -3 + vertex 11.5971 30.3591 -3 + vertex 3.93589 34.5584 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.1103 -22.7594 -0.2 - vertex 14.5952 -23.8342 -0.2 - vertex 11.9563 -19.8175 -0.2 + vertex 11.5971 30.3591 -3 + vertex 4.30515 36.0346 -3 + vertex 4.72188 37.0399 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.1103 -22.7594 -0.2 - vertex 11.9563 -19.8175 -0.2 - vertex 11.881 -19.8313 -0.2 + vertex 3.57109 31.3388 -3 + vertex 4.3138 28.4461 -3 + vertex 3.67763 29.7129 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.99008 -22.4166 -0.2 - vertex 11.881 -19.8313 -0.2 - vertex 11.7902 -19.8211 -0.2 + vertex 11.5971 30.3591 -3 + vertex 3.57109 31.3388 -3 + vertex 3.93589 34.5584 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.81668 -22.1284 -0.2 - vertex 11.7902 -19.8211 -0.2 - vertex 11.5538 -19.7266 -0.2 + vertex 7.21237 -5.88439 -3 + vertex 7.03104 -4.97268 -3 + vertex 7.79727 -5.75259 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.95745 -24.7805 -0.2 - vertex 14.5952 -23.8342 -0.2 - vertex 10.0892 -24.2416 -0.2 + vertex 5.81183 -5.98051 -3 + vertex 7.03104 -4.97268 -3 + vertex 7.21237 -5.88439 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 9.59484 -21.895 -0.2 - vertex 11.5538 -19.7266 -0.2 - vertex 11.2294 -19.5302 -0.2 + vertex 7.03104 -4.97268 -3 + vertex 5.81183 -5.98051 -3 + vertex 5.97791 -3.63939 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 14.5952 -23.8342 -0.2 - vertex 9.95745 -24.7805 -0.2 - vertex 12.8097 -28.1484 -0.2 + vertex 3.9592 -5.58648 -3 + vertex 5.97791 -3.63939 -3 + vertex 5.81183 -5.98051 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 9.46723 -21.7989 -0.2 - vertex 11.2294 -19.5302 -0.2 - vertex 11.0203 -19.4009 -0.2 + vertex 5.97791 -3.63939 -3 + vertex 3.9592 -5.58648 -3 + vertex 5.02006 -2.01238 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 9.75283 -25.4359 -0.2 - vertex 12.8097 -28.1484 -0.2 - vertex 9.95745 -24.7805 -0.2 + vertex 5.02006 -2.01238 -3 + vertex 1.09298 -4.60426 -3 + vertex 4.37015 -0.506109 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.46723 -21.7989 -0.2 - vertex 11.0203 -19.4009 -0.2 - vertex 10.8168 -19.3006 -0.2 + vertex 1.09298 -4.60426 -3 + vertex 5.02006 -2.01238 -3 + vertex 3.9592 -5.58648 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.46376 -26.2422 -0.2 - vertex 12.8097 -28.1484 -0.2 - vertex 9.75283 -25.4359 -0.2 + vertex 24.7931 16.6725 -3 + vertex 24.1542 17.4223 -3 + vertex 24.7174 17.1695 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.07864 -27.2338 -0.2 - vertex 12.8097 -28.1484 -0.2 - vertex 9.46376 -26.2422 -0.2 + vertex 23.3802 15.8262 -3 + vertex 24.1542 17.4223 -3 + vertex 24.7931 16.6725 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.8097 -28.1484 -0.2 - vertex 9.07864 -27.2338 -0.2 - vertex 12.0447 -30.0547 -0.2 + vertex 23.3802 15.8262 -3 + vertex 22.547 17.5015 -3 + vertex 24.1542 17.4223 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.46723 -21.7989 -0.2 - vertex 10.8168 -19.3006 -0.2 - vertex 10.602 -19.227 -0.2 + vertex 21.1653 14.8489 -3 + vertex 22.547 17.5015 -3 + vertex 23.3802 15.8262 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.6919 -34.4621 -0.2 - vertex 12.2468 -35.1875 -0.2 - vertex 12.2214 -34.9805 -0.2 + vertex 21.1653 14.8489 -3 + vertex 20.2159 17.5562 -3 + vertex 22.547 17.5015 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.6919 -34.4621 -0.2 - vertex 12.2214 -34.9805 -0.2 - vertex 12.1503 -34.7994 -0.2 + vertex 20.0668 14.6265 -3 + vertex 20.2159 17.5562 -3 + vertex 21.1653 14.8489 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.4668 -34.4353 -0.2 - vertex 12.2468 -35.1875 -0.2 - vertex 11.6919 -34.4621 -0.2 + vertex 18.4164 15.1559 -3 + vertex 20.2159 17.5562 -3 + vertex 20.0668 14.6265 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.2239 -35.4151 -0.2 - vertex 11.4668 -34.4353 -0.2 - vertex 12.1496 -35.6584 -0.2 + vertex 20.2159 17.5562 -3 + vertex 18.4164 15.1559 -3 + vertex 19.8437 17.7553 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.8827 -34.5351 -0.2 - vertex 12.1503 -34.7994 -0.2 - vertex 12.0364 -34.6492 -0.2 + vertex 16.5954 15.8977 -3 + vertex 19.8437 17.7553 -3 + vertex 18.4164 15.1559 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.2468 -35.1875 -0.2 - vertex 11.4668 -34.4353 -0.2 - vertex 12.2239 -35.4151 -0.2 + vertex 19.8437 17.7553 -3 + vertex 16.5954 15.8977 -3 + vertex 19.5351 18.2611 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.1503 -34.7994 -0.2 - vertex 11.8827 -34.5351 -0.2 - vertex 11.6919 -34.4621 -0.2 + vertex 15.2045 16.623 -3 + vertex 19.5351 18.2611 -3 + vertex 16.5954 15.8977 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.1496 -35.6584 -0.2 - vertex 11.4668 -34.4353 -0.2 - vertex 12.0956 -35.7642 -0.2 + vertex 19.5351 18.2611 -3 + vertex 15.2045 16.623 -3 + vertex 19.0948 20.2262 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 12.0956 -35.7642 -0.2 - vertex 11.4668 -34.4353 -0.2 - vertex 12.0181 -35.8752 -0.2 + vertex 13.99 17.4864 -3 + vertex 19.0948 20.2262 -3 + vertex 15.2045 16.623 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.143 -34.4171 -0.2 - vertex 12.0181 -35.8752 -0.2 - vertex 11.4668 -34.4353 -0.2 + vertex 19.0948 20.2262 -3 + vertex 17.155 22.8321 -3 + vertex 18.6529 22.0992 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.0181 -35.8752 -0.2 - vertex 11.143 -34.4171 -0.2 - vertex 11.8034 -36.1064 -0.2 + vertex 19.0948 20.2262 -3 + vertex 13.99 17.4864 -3 + vertex 17.155 22.8321 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.8034 -36.1064 -0.2 - vertex 11.143 -34.4171 -0.2 - vertex 11.5264 -36.339 -0.2 + vertex 12.6982 18.6425 -3 + vertex 17.155 22.8321 -3 + vertex 13.99 17.4864 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 11.016 -34.3915 -0.2 - vertex 11.5264 -36.339 -0.2 - vertex 11.143 -34.4171 -0.2 + vertex 17.155 22.8321 -3 + vertex 12.6982 18.6425 -3 + vertex 15.5055 23.4995 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.5264 -36.339 -0.2 - vertex 11.016 -34.3915 -0.2 - vertex 11.208 -36.5595 -0.2 + vertex 10.9729 20.5521 -3 + vertex 15.5055 23.4995 -3 + vertex 12.6982 18.6425 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 10.9123 -34.3507 -0.2 - vertex 11.208 -36.5595 -0.2 - vertex 11.016 -34.3915 -0.2 + vertex 15.5055 23.4995 -3 + vertex 10.9729 20.5521 -3 + vertex 14.0164 24.1527 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 10.9123 -34.3507 -0.2 - vertex 10.8691 -36.7549 -0.2 - vertex 11.208 -36.5595 -0.2 + vertex 14.0164 24.1527 -3 + vertex 10.9729 20.5521 -3 + vertex 13.0733 24.7212 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.5307 -36.9119 -0.2 - vertex 10.9123 -34.3507 -0.2 - vertex 10.832 -34.2912 -0.2 + vertex 9.71033 23.0922 -3 + vertex 13.0733 24.7212 -3 + vertex 10.9729 20.5521 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 9.71926 -37.0921 -0.2 - vertex 10.832 -34.2912 -0.2 - vertex 10.775 -34.2097 -0.2 + vertex 13.0733 24.7212 -3 + vertex 9.71033 23.0922 -3 + vertex 12.1975 25.5292 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 8.94379 -37.3156 -0.2 - vertex 10.775 -34.2097 -0.2 - vertex 10.7415 -34.103 -0.2 + vertex 12.1975 25.5292 -3 + vertex 9.07032 24.476 -3 + vertex 11.5037 26.4501 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.63949 -32.8952 -0.2 - vertex 10.7415 -34.103 -0.2 - vertex 10.7315 -33.9677 -0.2 + vertex 9.07032 24.476 -3 + vertex 12.1975 25.5292 -3 + vertex 9.71033 23.0922 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.9123 -34.3507 -0.2 - vertex 10.5307 -36.9119 -0.2 - vertex 10.8691 -36.7549 -0.2 + vertex 25.704 16.8274 -3 + vertex 26.0816 17.5963 -3 + vertex 25.8979 16.7563 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 7.97377 -29.9101 -0.2 - vertex 12.0447 -30.0547 -0.2 - vertex 9.07864 -27.2338 -0.2 + vertex 25.1513 17.7384 -3 + vertex 26.0816 17.5963 -3 + vertex 25.4738 17.2443 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.46723 -21.7989 -0.2 - vertex 10.602 -19.227 -0.2 - vertex 10.3591 -19.1774 -0.2 + vertex 26.0816 17.5963 -3 + vertex 25.704 16.8274 -3 + vertex 25.4738 17.2443 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.0892 -24.2416 -0.2 - vertex 14.5952 -23.8342 -0.2 - vertex 10.1598 -23.7848 -0.2 + vertex 26.0816 17.5963 -3 + vertex 25.1513 17.7384 -3 + vertex 25.9892 18.2943 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 12.0447 -30.0547 -0.2 - vertex 7.97377 -29.9101 -0.2 - vertex 11.5005 -31.4602 -0.2 + vertex 25.9892 18.2943 -3 + vertex 25.1513 17.7384 -3 + vertex 25.7331 18.8483 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 14.5952 -23.8342 -0.2 - vertex 10.149 -22.9513 -0.2 - vertex 10.1807 -23.3758 -0.2 + vertex 24.5942 18.0475 -3 + vertex 25.7331 18.8483 -3 + vertex 25.1513 17.7384 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 14.5952 -23.8342 -0.2 - vertex 10.1103 -22.7594 -0.2 - vertex 10.149 -22.9513 -0.2 + vertex 25.7331 18.8483 -3 + vertex 24.5942 18.0475 -3 + vertex 25.3447 19.2137 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 9.46723 -21.7989 -0.2 - vertex 10.3591 -19.1774 -0.2 - vertex 10.0711 -19.1496 -0.2 + vertex 25.3447 19.2137 -3 + vertex 24.5942 18.0475 -3 + vertex 24.8554 19.3454 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.881 -19.8313 -0.2 - vertex 10.0571 -22.5812 -0.2 - vertex 10.1103 -22.7594 -0.2 + vertex 24.5942 18.0475 -3 + vertex 23.3909 19.6849 -3 + vertex 24.8554 19.3454 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.881 -19.8313 -0.2 - vertex 9.99008 -22.4166 -0.2 - vertex 10.0571 -22.5812 -0.2 + vertex 22.335 18.2522 -3 + vertex 23.3909 19.6849 -3 + vertex 24.5942 18.0475 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 11.7902 -19.8211 -0.2 - vertex 9.90973 -22.2656 -0.2 - vertex 9.99008 -22.4166 -0.2 + vertex 23.3909 19.6849 -3 + vertex 22.335 18.2522 -3 + vertex 22.6368 20.047 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.7902 -19.8211 -0.2 - vertex 9.81668 -22.1284 -0.2 - vertex 9.90973 -22.2656 -0.2 + vertex 20.9591 18.304 -3 + vertex 22.6368 20.047 -3 + vertex 22.335 18.2522 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 9.18157 -21.6481 -0.2 - vertex 10.0711 -19.1496 -0.2 - vertex 9.72114 -19.1409 -0.2 + vertex 22.6368 20.047 -3 + vertex 20.9591 18.304 -3 + vertex 22.0911 20.5797 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.5538 -19.7266 -0.2 - vertex 9.71152 -22.0048 -0.2 - vertex 9.81668 -22.1284 -0.2 + vertex 19.8405 19.3078 -3 + vertex 22.0911 20.5797 -3 + vertex 20.9591 18.304 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.5538 -19.7266 -0.2 - vertex 9.59484 -21.895 -0.2 - vertex 9.71152 -22.0048 -0.2 + vertex 19.4421 21.9215 -3 + vertex 21.7245 21.3239 -3 + vertex 19.6596 20.6529 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.2294 -19.5302 -0.2 - vertex 9.46723 -21.7989 -0.2 - vertex 9.59484 -21.895 -0.2 + vertex 19.6596 20.6529 -3 + vertex 22.0911 20.5797 -3 + vertex 19.8405 19.3078 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.0711 -19.1496 -0.2 - vertex 9.18157 -21.6481 -0.2 - vertex 9.46723 -21.7989 -0.2 + vertex 21.7245 21.3239 -3 + vertex 19.4421 21.9215 -3 + vertex 21.508 22.3204 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 9.72114 -19.1409 -0.2 - vertex 8.85925 -21.5524 -0.2 - vertex 9.18157 -21.6481 -0.2 + vertex 19.8405 19.3078 -3 + vertex 20.9591 18.304 -3 + vertex 20.2006 18.5903 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 8.76754 -19.1712 -0.2 - vertex 8.85925 -21.5524 -0.2 - vertex 9.72114 -19.1409 -0.2 + vertex 21.508 22.3204 -3 + vertex 19.4421 21.9215 -3 + vertex 21.2518 23.2891 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 8.76754 -19.1712 -0.2 - vertex 8.50498 -21.5121 -0.2 - vertex 8.85925 -21.5524 -0.2 + vertex 22.0911 20.5797 -3 + vertex 19.6596 20.6529 -3 + vertex 21.7245 21.3239 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 7.80885 -19.2424 -0.2 - vertex 8.50498 -21.5121 -0.2 - vertex 8.76754 -19.1712 -0.2 + vertex 18.9185 22.6398 -3 + vertex 21.2518 23.2891 -3 + vertex 19.4421 21.9215 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 8.50498 -21.5121 -0.2 - vertex 7.80885 -19.2424 -0.2 - vertex 8.12348 -21.5274 -0.2 + vertex 21.2518 23.2891 -3 + vertex 18.9185 22.6398 -3 + vertex 20.762 24.0784 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 7.42262 -19.2967 -0.2 - vertex 8.12348 -21.5274 -0.2 - vertex 7.80885 -19.2424 -0.2 + vertex 20.762 24.0784 -3 + vertex 18.9185 22.6398 -3 + vertex 20.0338 24.6942 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 8.12348 -21.5274 -0.2 - vertex 7.42262 -19.2967 -0.2 - vertex 7.71946 -21.5983 -0.2 + vertex 20.0338 24.6942 -3 + vertex 18.9185 22.6398 -3 + vertex 19.062 25.1422 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 7.07441 -19.3694 -0.2 - vertex 7.71946 -21.5983 -0.2 - vertex 7.42262 -19.2967 -0.2 + vertex 17.6852 23.4449 -3 + vertex 19.062 25.1422 -3 + vertex 18.9185 22.6398 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.74616 -19.4649 -0.2 - vertex 7.71946 -21.5983 -0.2 - vertex 7.07441 -19.3694 -0.2 + vertex 17.6852 23.4449 -3 + vertex 17.2513 25.98 -3 + vertex 19.062 25.1422 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 7.71946 -21.5983 -0.2 - vertex 6.74616 -19.4649 -0.2 - vertex 7.29763 -21.7251 -0.2 + vertex 15.1211 24.4531 -3 + vertex 17.2513 25.98 -3 + vertex 17.6852 23.4449 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 6.41984 -19.5879 -0.2 - vertex 7.29763 -21.7251 -0.2 - vertex 6.74616 -19.4649 -0.2 + vertex 17.2513 25.98 -3 + vertex 15.1211 24.4531 -3 + vertex 15.7223 27.2873 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.07737 -19.7427 -0.2 - vertex 7.29763 -21.7251 -0.2 - vertex 6.41984 -19.5879 -0.2 + vertex 13.4969 25.2416 -3 + vertex 15.7223 27.2873 -3 + vertex 15.1211 24.4531 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 7.29763 -21.7251 -0.2 - vertex 6.07737 -19.7427 -0.2 - vertex 6.8627 -21.9079 -0.2 + vertex 15.7223 27.2873 -3 + vertex 13.4969 25.2416 -3 + vertex 15.122 28.0941 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.70074 -19.9339 -0.2 - vertex 6.8627 -21.9079 -0.2 - vertex 6.07737 -19.7427 -0.2 + vertex 12.5486 25.9653 -3 + vertex 15.122 28.0941 -3 + vertex 13.4969 25.2416 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.8627 -21.9079 -0.2 - vertex 5.70074 -19.9339 -0.2 - vertex 6.41939 -22.1469 -0.2 + vertex 17.1521 -17.7131 -3 + vertex 20.2954 -22.4759 -3 + vertex 19.0386 -23.7798 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.20766 -20.2058 -0.2 - vertex 6.41939 -22.1469 -0.2 - vertex 5.70074 -19.9339 -0.2 + vertex 14.5835 -23.8342 -3 + vertex 19.0386 -23.7798 -3 + vertex 17.855 -25.2923 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.41939 -22.1469 -0.2 - vertex 5.20766 -20.2058 -0.2 - vertex 5.97241 -22.4422 -0.2 + vertex 20.2954 -22.4759 -3 + vertex 17.1521 -17.7131 -3 + vertex 19.6777 -11.13 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.71458 -20.5006 -0.2 - vertex 5.97241 -22.4422 -0.2 - vertex 5.20766 -20.2058 -0.2 + vertex 14.5835 -23.8342 -3 + vertex 17.855 -25.2923 -3 + vertex 16.4055 -27.6373 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.22328 -20.8168 -0.2 - vertex 5.97241 -22.4422 -0.2 - vertex 4.71458 -20.5006 -0.2 + vertex 14.5835 -23.8342 -3 + vertex 16.4055 -27.6373 -3 + vertex 15.3794 -29.9771 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.97241 -22.4422 -0.2 - vertex 4.22328 -20.8168 -0.2 - vertex 5.52647 -22.794 -0.2 + vertex 11.4887 -31.4602 -3 + vertex 15.3794 -29.9771 -3 + vertex 14.7938 -32.2631 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 3.73558 -21.1527 -0.2 - vertex 5.52647 -22.794 -0.2 - vertex 4.22328 -20.8168 -0.2 + vertex 19.0386 -23.7798 -3 + vertex 14.5835 -23.8342 -3 + vertex 17.1521 -17.7131 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.52647 -22.794 -0.2 - vertex 3.73558 -21.1527 -0.2 - vertex 5.08628 -23.2024 -0.2 + vertex 11.871 -34.5351 -3 + vertex 14.7938 -32.2631 -3 + vertex 14.6656 -34.4466 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 3.25328 -21.5067 -0.2 - vertex 5.08628 -23.2024 -0.2 - vertex 3.73558 -21.1527 -0.2 + vertex 26.7235 1.18648 -3 + vertex 20.9081 -2.19366 -3 + vertex 21.0968 -1.15452 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.08628 -23.2024 -0.2 - vertex 3.25328 -21.5067 -0.2 - vertex 4.45147 -23.8871 -0.2 + vertex 23.0737 -20.4525 -3 + vertex 19.6777 -11.13 -3 + vertex 20.9081 -2.19366 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 2.77819 -21.8771 -0.2 - vertex 4.45147 -23.8871 -0.2 - vertex 3.25328 -21.5067 -0.2 + vertex 19.6777 -11.13 -3 + vertex 21.6367 -21.3703 -3 + vertex 20.2954 -22.4759 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 2.31211 -22.2625 -0.2 - vertex 4.45147 -23.8871 -0.2 - vertex 2.77819 -21.8771 -0.2 + vertex 20.9081 -2.19366 -3 + vertex 19.6777 -11.13 -3 + vertex 20.4179 -3.0084 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.45147 -23.8871 -0.2 - vertex 2.31211 -22.2625 -0.2 - vertex 3.85887 -24.6213 -0.2 + vertex 19.5452 -10.7956 -3 + vertex 20.4179 -3.0084 -3 + vertex 19.6777 -11.13 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.85684 -22.661 -0.2 - vertex 3.85887 -24.6213 -0.2 - vertex 2.31211 -22.2625 -0.2 + vertex 19.5452 -10.7956 -3 + vertex 19.4334 -3.80993 -3 + vertex 20.4179 -3.0084 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.4142 -23.0712 -0.2 - vertex 3.85887 -24.6213 -0.2 - vertex 1.85684 -22.661 -0.2 + vertex 17.7619 -4.80944 -3 + vertex 19.5452 -10.7956 -3 + vertex 19.0845 -10.6988 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 3.85887 -24.6213 -0.2 - vertex 1.4142 -23.0712 -0.2 - vertex 3.31148 -25.3951 -0.2 + vertex 19.5452 -10.7956 -3 + vertex 17.7619 -4.80944 -3 + vertex 19.4334 -3.80993 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.985991 -23.4913 -0.2 - vertex 3.31148 -25.3951 -0.2 - vertex 1.4142 -23.0712 -0.2 + vertex 15.0012 -6.23992 -3 + vertex 19.0845 -10.6988 -3 + vertex 16.7993 -11.2316 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.574011 -23.9198 -0.2 - vertex 3.31148 -25.3951 -0.2 - vertex 0.985991 -23.4913 -0.2 + vertex 19.0845 -10.6988 -3 + vertex 15.0012 -6.23992 -3 + vertex 17.7619 -4.80944 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 3.31148 -25.3951 -0.2 - vertex 0.574011 -23.9198 -0.2 - vertex 2.81229 -26.1986 -0.2 + vertex 12.6103 -7.15898 -3 + vertex 16.7993 -11.2316 -3 + vertex 13.71 -12.1451 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.18007 -24.355 -0.2 - vertex 2.81229 -26.1986 -0.2 - vertex 0.574011 -23.9198 -0.2 + vertex 12.6103 -7.15898 -3 + vertex 13.71 -12.1451 -3 + vertex 13.1035 -12.4147 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -0.194025 -24.7953 -0.2 - vertex 2.81229 -26.1986 -0.2 - vertex 0.18007 -24.355 -0.2 + vertex 10.2421 -7.67101 -3 + vertex 13.1035 -12.4147 -3 + vertex 12.6527 -12.8127 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 2.81229 -26.1986 -0.2 - vertex -0.194025 -24.7953 -0.2 - vertex 2.36428 -27.0218 -0.2 + vertex 16.7993 -11.2316 -3 + vertex 12.6103 -7.15898 -3 + vertex 15.0012 -6.23992 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -0.546472 -25.2391 -0.2 - vertex 2.36428 -27.0218 -0.2 - vertex -0.194025 -24.7953 -0.2 + vertex 10.2421 -7.67101 -3 + vertex 12.6527 -12.8127 -3 + vertex 12.4073 -13.2773 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex -0.875463 -25.6847 -0.2 - vertex 2.36428 -27.0218 -0.2 - vertex -0.546472 -25.2391 -0.2 + vertex 13.2867 -16.8469 -3 + vertex 10.3474 -19.1774 -3 + vertex 12.417 -13.7469 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 2.36428 -27.0218 -0.2 - vertex -0.875463 -25.6847 -0.2 - vertex 1.97046 -27.8549 -0.2 + vertex 11.2177 -19.5302 -3 + vertex 12.058 -19.7199 -3 + vertex 11.7785 -19.8211 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -1.17919 -26.1306 -0.2 - vertex 1.97046 -27.8549 -0.2 - vertex -0.875463 -25.6847 -0.2 + vertex 8.75581 -19.1712 -3 + vertex 12.417 -13.7469 -3 + vertex 10.3474 -19.1774 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -1.45361 -26.5684 -0.2 - vertex 1.97046 -27.8549 -0.2 - vertex -1.17919 -26.1306 -0.2 + vertex 7.06268 -19.3694 -3 + vertex 12.417 -13.7469 -3 + vertex 8.75581 -19.1712 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.5005 -31.4602 -0.2 - vertex 7.97377 -29.9101 -0.2 - vertex 11.1661 -32.3709 -0.2 + vertex 13.1035 -12.4147 -3 + vertex 10.2421 -7.67101 -3 + vertex 12.6103 -7.15898 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 7.44603 -31.1479 -0.2 - vertex 11.1661 -32.3709 -0.2 - vertex 7.97377 -29.9101 -0.2 + vertex 12.417 -13.7469 -3 + vertex 7.06268 -19.3694 -3 + vertex 12.4073 -13.2773 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 11.1661 -32.3709 -0.2 - vertex 7.44603 -31.1479 -0.2 - vertex 10.9267 -33.0747 -0.2 + vertex 12.4073 -13.2773 -3 + vertex 7.54923 -7.88041 -3 + vertex 10.2421 -7.67101 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 7.00854 -32.1311 -0.2 - vertex 10.9267 -33.0747 -0.2 - vertex 7.44603 -31.1479 -0.2 + vertex 12.4073 -13.2773 -3 + vertex 7.06268 -19.3694 -3 + vertex 7.54923 -7.88041 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.9267 -33.0747 -0.2 - vertex 7.00854 -32.1311 -0.2 - vertex 10.7819 -33.5982 -0.2 + vertex 5.03167 -7.88498 -3 + vertex 7.06268 -19.3694 -3 + vertex 5.689 -19.9339 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.7819 -33.5982 -0.2 - vertex 7.00854 -32.1311 -0.2 - vertex 10.7449 -33.8005 -0.2 + vertex 7.06268 -19.3694 -3 + vertex 5.03167 -7.88498 -3 + vertex 7.54923 -7.88041 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.63949 -32.8952 -0.2 - vertex 10.7449 -33.8005 -0.2 - vertex 7.00854 -32.1311 -0.2 + vertex 5.689 -19.9339 -3 + vertex 3.854 -7.59505 -3 + vertex 5.03167 -7.88498 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.7449 -33.8005 -0.2 - vertex 6.63949 -32.8952 -0.2 - vertex 10.7315 -33.9677 -0.2 + vertex 3.72385 -21.1527 -3 + vertex 3.854 -7.59505 -3 + vertex 5.689 -19.9339 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.7415 -34.103 -0.2 - vertex 6.63949 -32.8952 -0.2 - vertex 6.31707 -33.4759 -0.2 + vertex -4.06681 -20.6308 -3 + vertex 3.72385 -21.1527 -3 + vertex 1.84511 -22.661 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.832 -34.2912 -0.2 - vertex 9.93892 -37.0575 -0.2 - vertex 10.2137 -37.0171 -0.2 + vertex 3.72385 -21.1527 -3 + vertex -4.70045 -19.8327 -3 + vertex 3.854 -7.59505 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.832 -34.2912 -0.2 - vertex 10.2137 -37.0171 -0.2 - vertex 10.5307 -36.9119 -0.2 + vertex -3.85646 -21.6547 -3 + vertex 1.84511 -22.661 -3 + vertex 0.168338 -24.355 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.832 -34.2912 -0.2 - vertex 9.71926 -37.0921 -0.2 - vertex 9.93892 -37.0575 -0.2 + vertex -3.89417 -22.8317 -3 + vertex 0.168338 -24.355 -3 + vertex -1.19093 -26.1306 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.775 -34.2097 -0.2 - vertex 9.37163 -37.1827 -0.2 - vertex 9.71926 -37.0921 -0.2 + vertex 3.72385 -21.1527 -3 + vertex -4.06681 -20.6308 -3 + vertex -4.70045 -19.8327 -3 endloop endfacet - facet normal 0 -0 1 + facet normal 0 0 -1 outer loop - vertex 8.94379 -37.3156 -0.2 - vertex 10.7415 -34.103 -0.2 - vertex 6.31707 -33.4759 -0.2 + vertex -3.89417 -22.8317 -3 + vertex -1.19093 -26.1306 -3 + vertex -2.25121 -28.0146 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 10.775 -34.2097 -0.2 - vertex 8.94379 -37.3156 -0.2 - vertex 9.37163 -37.1827 -0.2 + vertex -3.89417 -22.8317 -3 + vertex -2.25121 -28.0146 -3 + vertex -3.14673 -30.0798 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.01946 -33.9088 -0.2 - vertex 8.94379 -37.3156 -0.2 - vertex 6.31707 -33.4759 -0.2 + vertex 1.84511 -22.661 -3 + vertex -3.85646 -21.6547 -3 + vertex -4.06681 -20.6308 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 8.94379 -37.3156 -0.2 - vertex 6.01946 -33.9088 -0.2 - vertex 8.4835 -37.477 -0.2 + vertex -5.57075 -19.2012 -3 + vertex 3.854 -7.59505 -3 + vertex -4.70045 -19.8327 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.87315 -34.0811 -0.2 - vertex 8.4835 -37.477 -0.2 - vertex 6.01946 -33.9088 -0.2 + vertex -6.41168 -29.738 -3 + vertex -3.14673 -30.0798 -3 + vertex -3.7659 -32.0301 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.72486 -34.2297 -0.2 - vertex 8.4835 -37.477 -0.2 - vertex 5.87315 -34.0811 -0.2 + vertex 47.2139 -19.2263 -3 + vertex 27.528 9.70386 -3 + vertex 27.6094 12.2412 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 8.4835 -37.477 -0.2 - vertex 5.72486 -34.2297 -0.2 - vertex 7.35232 -37.8908 -0.2 + vertex 28.989 -19.2301 -3 + vertex 26.953 2.16551 -3 + vertex 27.528 9.70386 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.41146 -34.4742 -0.2 - vertex 7.35232 -37.8908 -0.2 - vertex 5.72486 -34.2297 -0.2 + vertex 26.9177 3.98634 -3 + vertex 27.528 9.70386 -3 + vertex 26.953 2.16551 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.69132 -37.3222 -0.2 - vertex 7.35232 -37.8908 -0.2 - vertex 5.41146 -34.4742 -0.2 + vertex 28.989 -19.2301 -3 + vertex 26.8464 1.29842 -3 + vertex 26.953 2.16551 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 7.35232 -37.8908 -0.2 - vertex 4.69132 -37.3222 -0.2 - vertex 6.47346 -38.1927 -0.2 + vertex 28.989 -19.2301 -3 + vertex 26.7235 1.18648 -3 + vertex 26.8464 1.29842 -3 endloop endfacet - facet normal -0 -0 1 + facet normal 0 0 -1 outer loop - vertex 4.72035 -37.4346 -0.2 - vertex 6.47346 -38.1927 -0.2 - vertex 4.69132 -37.3222 -0.2 + vertex 20.9081 -2.19366 -3 + vertex 26.7235 1.18648 -3 + vertex 27.8281 -19.1444 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 6.47346 -38.1927 -0.2 - vertex 4.72035 -37.4346 -0.2 - vertex 5.81563 -38.3852 -0.2 + vertex 20.9081 -2.19366 -3 + vertex 27.8281 -19.1444 -3 + vertex 26.5413 -19.2026 -3 endloop endfacet - facet normal -0 -0 1 + facet normal -0 0 -1 outer loop - vertex 4.74716 -37.8041 -0.2 - vertex 5.81563 -38.3852 -0.2 - vertex 4.72035 -37.4346 -0.2 + vertex 26.7235 1.18648 -3 + vertex 21.0968 -1.15452 -3 + vertex 26.5455 1.2697 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.69132 -37.3222 -0.2 - vertex 5.41146 -34.4742 -0.2 - vertex 5.05744 -34.678 -0.2 + vertex 20.9081 -2.19366 -3 + vertex 26.5413 -19.2026 -3 + vertex 25.4359 -19.4082 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 -0 -1 outer loop - vertex 5.55983 -38.4413 -0.2 - vertex 4.74716 -37.8041 -0.2 - vertex 5.34756 -38.4712 -0.2 + vertex 23.9858 2.16372 -3 + vertex 26.5455 1.2697 -3 + vertex 21.0968 -1.15452 -3 endloop endfacet - facet normal -0 -0 1 + facet normal 0 0 -1 outer loop - vertex 4.76904 -38.117 -0.2 - vertex 5.34756 -38.4712 -0.2 - vertex 4.74716 -37.8041 -0.2 + vertex 26.5455 1.2697 -3 + vertex 23.9858 2.16372 -3 + vertex 25.9977 1.96397 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.34756 -38.4712 -0.2 - vertex 4.76904 -38.117 -0.2 - vertex 5.17491 -38.475 -0.2 + vertex 25.3153 2.68052 -3 + vertex 24.7523 2.4559 -3 + vertex 25.0347 2.67962 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.17491 -38.475 -0.2 - vertex 4.76904 -38.117 -0.2 - vertex 5.03796 -38.4533 -0.2 + vertex 25.9977 1.96397 -3 + vertex 24.7523 2.4559 -3 + vertex 25.3153 2.68052 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.03796 -38.4533 -0.2 - vertex 4.80226 -38.2378 -0.2 - vertex 4.93281 -38.4063 -0.2 + vertex 25.9977 1.96397 -3 + vertex 23.9858 2.16372 -3 + vertex 24.7523 2.4559 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.93281 -38.4063 -0.2 - vertex 4.80226 -38.2378 -0.2 - vertex 4.85555 -38.3343 -0.2 + vertex 20.9081 -2.19366 -3 + vertex 25.4359 -19.4082 -3 + vertex 23.0737 -20.4525 -3 endloop endfacet - facet normal -0 -0 1 + facet normal 0 0 -1 outer loop - vertex 4.80226 -38.2378 -0.2 - vertex 5.03796 -38.4533 -0.2 - vertex 4.76904 -38.117 -0.2 + vertex 23.9858 2.16372 -3 + vertex 21.0968 -1.15452 -3 + vertex 23.1222 1.97635 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 5.81563 -38.3852 -0.2 - vertex 4.74716 -37.8041 -0.2 - vertex 5.55983 -38.4413 -0.2 + vertex 21.0282 0.220415 -3 + vertex 23.1222 1.97635 -3 + vertex 21.0968 -1.15452 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 5.05744 -34.678 -0.2 - vertex 4.65588 -37.2809 -0.2 - vertex 4.69132 -37.3222 -0.2 + vertex 23.1222 1.97635 -3 + vertex 21.0282 0.220415 -3 + vertex 22.8505 1.9828 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.59905 -34.8756 -0.2 - vertex 4.65588 -37.2809 -0.2 - vertex 5.05744 -34.678 -0.2 + vertex 19.6777 -11.13 -3 + vertex 23.0737 -20.4525 -3 + vertex 21.6367 -21.3703 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 4.12685 -35.011 -0.2 - vertex 4.65588 -37.2809 -0.2 - vertex 4.59905 -34.8756 -0.2 + vertex 22.8505 1.9828 -3 + vertex 21.0282 0.220415 -3 + vertex 22.7784 2.30129 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex 3.65273 -35.0844 -0.2 - vertex 4.65588 -37.2809 -0.2 - vertex 4.12685 -35.011 -0.2 + vertex 19.4865 -0.127098 -3 + vertex 22.7784 2.30129 -3 + vertex 21.0282 0.220415 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.65588 -37.2809 -0.2 - vertex 3.65273 -35.0844 -0.2 - vertex 4.26446 -37.4494 -0.2 + vertex 22.7784 2.30129 -3 + vertex 16.0239 2.90744 -3 + vertex 21.7142 8.22365 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0 0 -1 outer loop - vertex 3.18861 -35.0966 -0.2 - vertex 4.26446 -37.4494 -0.2 - vertex 3.65273 -35.0844 -0.2 + vertex 22.7784 2.30129 -3 + vertex 19.4865 -0.127098 -3 + vertex 16.0239 2.90744 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 4.26446 -37.4494 -0.2 - vertex 3.18861 -35.0966 -0.2 - vertex 3.45158 -37.8545 -0.2 + vertex 15.3368 5.33522 -3 + vertex 21.7142 8.22365 -3 + vertex 16.0239 2.90744 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 2.7464 -35.0478 -0.2 - vertex 3.45158 -37.8545 -0.2 - vertex 3.18861 -35.0966 -0.2 + vertex 16.8564 0.883682 -3 + vertex 19.4865 -0.127098 -3 + vertex 18.2674 -0.466912 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 3.45158 -37.8545 -0.2 - vertex 2.7464 -35.0478 -0.2 - vertex 3.20396 -37.9704 -0.2 + vertex 16.8564 0.883682 -3 + vertex 18.2674 -0.466912 -3 + vertex 17.6745 -0.267811 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 3.20396 -37.9704 -0.2 - vertex 2.7464 -35.0478 -0.2 - vertex 2.93102 -38.0768 -0.2 + vertex 19.4865 -0.127098 -3 + vertex 16.8564 0.883682 -3 + vertex 16.0239 2.90744 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 2.53723 -35.0007 -0.2 - vertex 2.93102 -38.0768 -0.2 - vertex 2.7464 -35.0478 -0.2 + vertex 21.7142 8.22365 -3 + vertex 15.3368 5.33522 -3 + vertex 19.7157 9.66569 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 2.32439 -38.26 -0.2 - vertex 2.53723 -35.0007 -0.2 - vertex 2.33801 -34.9386 -0.2 + vertex 14.9551 7.69881 -3 + vertex 19.7157 9.66569 -3 + vertex 15.3368 5.33522 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 2.53723 -35.0007 -0.2 - vertex 2.32439 -38.26 -0.2 - vertex 2.93102 -38.0768 -0.2 + vertex 19.7157 9.66569 -3 + vertex 14.9551 7.69881 -3 + vertex 18.6847 10.137 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 1.66207 -38.4009 -0.2 - vertex 2.33801 -34.9386 -0.2 - vertex 2.15022 -34.8616 -0.2 + vertex 18.6847 10.137 -3 + vertex 14.9551 7.69881 -3 + vertex 17.337 10.3363 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.66207 -38.4009 -0.2 - vertex 2.15022 -34.8616 -0.2 - vertex 1.97535 -34.7696 -0.2 + vertex 14.9426 8.95486 -3 + vertex 17.337 10.3363 -3 + vertex 14.9551 7.69881 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.974434 -38.4962 -0.2 - vertex 1.97535 -34.7696 -0.2 - vertex 1.8149 -34.6627 -0.2 + vertex 17.337 10.3363 -3 + vertex 15.3572 9.74689 -3 + vertex 15.9933 10.3315 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.291868 -38.543 -0.2 - vertex 1.8149 -34.6627 -0.2 - vertex 1.67035 -34.5411 -0.2 + vertex 15.9933 10.3315 -3 + vertex 15.3572 9.74689 -3 + vertex 15.6762 10.1383 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 2.33801 -34.9386 -0.2 - vertex 1.66207 -38.4009 -0.2 - vertex 2.32439 -38.26 -0.2 + vertex 17.337 10.3363 -3 + vertex 14.9426 8.95486 -3 + vertex 15.3572 9.74689 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -0.355246 -38.538 -0.2 - vertex 1.67035 -34.5411 -0.2 - vertex 1.50339 -34.3603 -0.2 + vertex 34.7441 -22.7166 -3 + vertex 31.8275 -24.8188 -3 + vertex 32.0255 -23.3848 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -2.66982 -37.4742 -0.2 - vertex 1.50339 -34.3603 -0.2 - vertex 1.35782 -34.1559 -0.2 + vertex 29.8709 -31.8517 -3 + vertex 32.5255 -33.371 -3 + vertex 31.6707 -35.0376 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.25661 -36.6145 -0.2 - vertex 1.35782 -34.1559 -0.2 - vertex 1.23329 -33.9292 -0.2 + vertex 33.8444 -30.1753 -3 + vertex 31.4974 -26.3899 -3 + vertex 31.8275 -24.8188 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.68783 -35.5721 -0.2 - vertex 1.23329 -33.9292 -0.2 - vertex 1.1294 -33.6813 -0.2 + vertex 33.8444 -30.1753 -3 + vertex 31.2318 -26.857 -3 + vertex 31.4974 -26.3899 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.87516 -34.8013 -0.2 - vertex 1.1294 -33.6813 -0.2 - vertex 1.04578 -33.4136 -0.2 + vertex 29.8709 -31.8517 -3 + vertex 31.6707 -35.0376 -3 + vertex 30.8837 -35.7486 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.97277 -33.9877 -0.2 - vertex 1.04578 -33.4136 -0.2 - vertex 0.982074 -33.1272 -0.2 + vertex 33.8444 -30.1753 -3 + vertex 30.2029 -31.1764 -3 + vertex 30.1062 -30.7807 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 -0 -1 outer loop - vertex 1.97535 -34.7696 -0.2 - vertex 0.974434 -38.4962 -0.2 - vertex 1.66207 -38.4009 -0.2 + vertex 30.7817 -27.1595 -3 + vertex 33.8444 -30.1753 -3 + vertex 30.1062 -30.7807 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.97004 -33.2395 -0.2 - vertex 0.982074 -33.1272 -0.2 - vertex 0.937893 -32.8234 -0.2 + vertex 32.5255 -33.371 -3 + vertex 29.8709 -31.8517 -3 + vertex 30.2029 -31.1764 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.8527 -32.4651 -0.2 - vertex 0.937893 -32.8234 -0.2 - vertex 0.912865 -32.5034 -0.2 + vertex 27.8442 -34.1555 -3 + vertex 30.8837 -35.7486 -3 + vertex 29.7686 -36.0779 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.75417 -32.0301 -0.2 - vertex 0.912865 -32.5034 -0.2 - vertex 0.906618 -32.1685 -0.2 + vertex 27.8442 -34.1555 -3 + vertex 29.7686 -36.0779 -3 + vertex 29.0223 -36.3831 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.97046 -27.8549 -0.2 - vertex -1.45361 -26.5684 -0.2 - vertex 1.63381 -28.6878 -0.2 + vertex 27.8442 -34.1555 -3 + vertex 29.0223 -36.3831 -3 + vertex 28.553 -36.8405 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -1.72295 -27.0315 -0.2 - vertex 1.63381 -28.6878 -0.2 - vertex -1.45361 -26.5684 -0.2 + vertex 25.9895 -35.834 -3 + vertex 28.553 -36.8405 -3 + vertex 28.4102 -37.3704 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -2.23947 -28.0146 -0.2 - vertex 1.63381 -28.6878 -0.2 - vertex -1.72295 -27.0315 -0.2 + vertex 30.8837 -35.7486 -3 + vertex 27.8442 -34.1555 -3 + vertex 29.8709 -31.8517 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.63381 -28.6878 -0.2 - vertex -2.23947 -28.0146 -0.2 - vertex 1.35733 -29.5107 -0.2 + vertex 33.8444 -30.1753 -3 + vertex 30.7817 -27.1595 -3 + vertex 31.2318 -26.857 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -2.71481 -29.043 -0.2 - vertex 1.35733 -29.5107 -0.2 - vertex -2.23947 -28.0146 -0.2 + vertex 29.6885 -30.4984 -3 + vertex 30.7817 -27.1595 -3 + vertex 30.1062 -30.7807 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.35733 -29.5107 -0.2 - vertex -2.71481 -29.043 -0.2 - vertex 1.144 -30.3137 -0.2 + vertex 28.9763 -27.4135 -3 + vertex 29.6885 -30.4984 -3 + vertex 29.2916 -30.4642 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.144 -30.3137 -0.2 - vertex -2.71481 -29.043 -0.2 - vertex 0.99682 -31.0867 -0.2 + vertex 29.6885 -30.4984 -3 + vertex 28.9763 -27.4135 -3 + vertex 30.7817 -27.1595 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.135 -30.0798 -0.2 - vertex 0.99682 -31.0867 -0.2 - vertex -2.71481 -29.043 -0.2 + vertex 28.199 -31.2235 -3 + vertex 28.9763 -27.4135 -3 + vertex 29.2916 -30.4642 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.99682 -31.0867 -0.2 - vertex -3.135 -30.0798 -0.2 - vertex 0.918778 -31.8199 -0.2 + vertex 25.3774 -27.4375 -3 + vertex 28.199 -31.2235 -3 + vertex 26.4192 -32.7448 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.4861 -31.0878 -0.2 - vertex 0.918778 -31.8199 -0.2 - vertex -3.135 -30.0798 -0.2 + vertex 28.199 -31.2235 -3 + vertex 25.3774 -27.4375 -3 + vertex 28.9763 -27.4135 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.918778 -31.8199 -0.2 - vertex -3.4861 -31.0878 -0.2 - vertex 0.906618 -32.1685 -0.2 + vertex 24.9271 -33.7368 -3 + vertex 25.3774 -27.4375 -3 + vertex 26.4192 -32.7448 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 -1 outer loop - vertex -3.75417 -32.0301 -0.2 - vertex 0.906618 -32.1685 -0.2 - vertex -3.4861 -31.0878 -0.2 + vertex 19.5138 -29.5327 -3 + vertex 24.9271 -33.7368 -3 + vertex 23.5816 -34.2758 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.912865 -32.5034 -0.2 - vertex -3.75417 -32.0301 -0.2 - vertex -3.8527 -32.4651 -0.2 + vertex 19.3087 -31.0557 -3 + vertex 23.5816 -34.2758 -3 + vertex 22.2417 -34.4379 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.937893 -32.8234 -0.2 - vertex -3.8527 -32.4651 -0.2 - vertex -3.92523 -32.8697 -0.2 + vertex 19.3087 -31.0557 -3 + vertex 22.2417 -34.4379 -3 + vertex 21.4183 -34.349 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.937893 -32.8234 -0.2 - vertex -3.92523 -32.8697 -0.2 - vertex -3.97004 -33.2395 -0.2 + vertex 19.3085 -32.3556 -3 + vertex 21.4183 -34.349 -3 + vertex 20.6651 -34.0963 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.04578 -33.4136 -0.2 - vertex -3.97277 -33.9877 -0.2 - vertex -3.93569 -34.3989 -0.2 + vertex 23.5816 -34.2758 -3 + vertex 19.3087 -31.0557 -3 + vertex 19.5138 -29.5327 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.04578 -33.4136 -0.2 - vertex -3.93569 -34.3989 -0.2 - vertex -3.87516 -34.8013 -0.2 + vertex 19.3085 -32.3556 -3 + vertex 20.6651 -34.0963 -3 + vertex 20.0228 -33.6987 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.1294 -33.6813 -0.2 - vertex -3.87516 -34.8013 -0.2 - vertex -3.79219 -35.193 -0.2 + vertex 25.3774 -27.4375 -3 + vertex 19.9054 -28.0436 -3 + vertex 20.1129 -27.4424 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.8149 -34.6627 -0.2 - vertex 0.291868 -38.543 -0.2 - vertex 0.974434 -38.4962 -0.2 + vertex 19.3085 -32.3556 -3 + vertex 20.0228 -33.6987 -3 + vertex 19.5322 -33.1754 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.23329 -33.9292 -0.2 - vertex -3.56309 -35.9367 -0.2 - vertex -3.41901 -36.2848 -0.2 + vertex 25.3774 -27.4375 -3 + vertex 19.5138 -29.5327 -3 + vertex 19.9054 -28.0436 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.23329 -33.9292 -0.2 - vertex -3.41901 -36.2848 -0.2 - vertex -3.25661 -36.6145 -0.2 + vertex 24.9271 -33.7368 -3 + vertex 19.5138 -29.5327 -3 + vertex 25.3774 -27.4375 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.35782 -34.1559 -0.2 - vertex -3.25661 -36.6145 -0.2 - vertex -3.07693 -36.924 -0.2 + vertex 21.4183 -34.349 -3 + vertex 19.3085 -32.3556 -3 + vertex 19.3087 -31.0557 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.35782 -34.1559 -0.2 - vertex -3.07693 -36.924 -0.2 - vertex -2.88099 -37.2112 -0.2 + vertex 27.528 9.70386 -3 + vertex 26.9177 3.98634 -3 + vertex 27.209 8.08714 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.35782 -34.1559 -0.2 - vertex -2.88099 -37.2112 -0.2 - vertex -2.66982 -37.4742 -0.2 + vertex 27.209 8.08714 -3 + vertex 26.9177 3.98634 -3 + vertex 26.8985 6.51977 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.50339 -34.3603 -0.2 - vertex -2.20592 -37.9202 -0.2 - vertex -0.936529 -38.478 -0.2 + vertex 23.2082 3.44442 -3 + vertex 23.5966 4.95794 -3 + vertex 23.5377 4.18291 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex -1.19299 -38.4265 -0.2 - vertex -2.20592 -37.9202 -0.2 - vertex -1.4216 -38.36 -0.2 + vertex 23.5966 4.95794 -3 + vertex 23.2082 3.44442 -3 + vertex 23.3811 5.8089 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -1.69347 -38.2465 -0.2 - vertex -2.20592 -37.9202 -0.2 - vertex -1.95525 -38.0993 -0.2 + vertex 23.2082 3.44442 -3 + vertex 22.8875 6.77518 -3 + vertex 23.3811 5.8089 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -1.4216 -38.36 -0.2 - vertex -2.20592 -37.9202 -0.2 - vertex -1.69347 -38.2465 -0.2 + vertex 21.7142 8.22365 -3 + vertex 23.2082 3.44442 -3 + vertex 22.7784 2.30129 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex -0.936529 -38.478 -0.2 - vertex -2.20592 -37.9202 -0.2 - vertex -1.19299 -38.4265 -0.2 + vertex 23.2082 3.44442 -3 + vertex 21.7142 8.22365 -3 + vertex 22.8875 6.77518 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.50339 -34.3603 -0.2 - vertex -2.44446 -37.7112 -0.2 - vertex -2.20592 -37.9202 -0.2 + vertex 15.0577 29.0611 -3 + vertex 12.0187 29.9363 -3 + vertex 12.2907 30.5214 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.50339 -34.3603 -0.2 - vertex -0.936529 -38.478 -0.2 - vertex -0.355246 -38.538 -0.2 + vertex 11.7374 28.4518 -3 + vertex 15.122 28.0941 -3 + vertex 11.8052 27.5343 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 -0 -1 outer loop - vertex 1.50339 -34.3603 -0.2 - vertex -2.66982 -37.4742 -0.2 - vertex -2.44446 -37.7112 -0.2 + vertex 11.8088 29.3224 -3 + vertex 15.0577 29.0611 -3 + vertex 11.7374 28.4518 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.1294 -33.6813 -0.2 - vertex -3.79219 -35.193 -0.2 - vertex -3.68783 -35.5721 -0.2 + vertex 15.122 28.0941 -3 + vertex 11.7374 28.4518 -3 + vertex 15.0577 29.0611 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 1.67035 -34.5411 -0.2 - vertex -0.355246 -38.538 -0.2 - vertex 0.291868 -38.543 -0.2 + vertex 15.0577 29.0611 -3 + vertex 11.8088 29.3224 -3 + vertex 12.0187 29.9363 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0 0 -1 outer loop - vertex 0.982074 -33.1272 -0.2 - vertex -3.97004 -33.2395 -0.2 - vertex -3.98536 -33.5697 -0.2 + vertex 11.871 -34.5351 -3 + vertex 14.6656 -34.4466 -3 + vertex 12.1385 -34.7994 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 1.23329 -33.9292 -0.2 - vertex -3.68783 -35.5721 -0.2 - vertex -3.56309 -35.9367 -0.2 + vertex 14.7938 -32.2631 -3 + vertex 11.871 -34.5351 -3 + vertex 11.4887 -31.4602 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0 0 -1 outer loop - vertex 0.982074 -33.1272 -0.2 - vertex -3.98536 -33.5697 -0.2 - vertex -3.97277 -33.9877 -0.2 + vertex 15.3794 -29.9771 -3 + vertex 11.4887 -31.4602 -3 + vertex 14.5835 -23.8342 -3 endloop endfacet - facet normal -0.2949 -0.955528 0 + facet normal 0 0 -1 outer loop - vertex 19.3736 -10.7173 -0.2 - vertex 19.4763 -10.749 0 - vertex 19.3736 -10.7173 0 + vertex 10.915 -33.0747 -3 + vertex 11.871 -34.5351 -3 + vertex 11.4551 -34.4353 -3 endloop endfacet - facet normal -0.2949 -0.955528 -0 + facet normal 0 0 -1 outer loop - vertex 19.4763 -10.749 0 - vertex 19.3736 -10.7173 -0.2 - vertex 19.4763 -10.749 -0.2 + vertex 11.871 -34.5351 -3 + vertex 10.915 -33.0747 -3 + vertex 11.4887 -31.4602 -3 endloop endfacet - facet normal -0.500051 -0.865996 0 + facet normal 0 0 -1 outer loop - vertex 19.4763 -10.749 -0.2 - vertex 19.557 -10.7956 0 - vertex 19.4763 -10.749 0 + vertex 10.7197 -33.9677 -3 + vertex 11.4551 -34.4353 -3 + vertex 10.9006 -34.3507 -3 endloop endfacet - facet normal -0.500051 -0.865996 -0 + facet normal 0 0 -1 outer loop - vertex 19.557 -10.7956 0 - vertex 19.4763 -10.749 -0.2 - vertex 19.557 -10.7956 -0.2 + vertex 11.4551 -34.4353 -3 + vertex 10.7197 -33.9677 -3 + vertex 10.915 -33.0747 -3 endloop endfacet - facet normal -0.714409 -0.699729 0 + facet normal 0 0 -1 outer loop - vertex 19.6172 -10.8571 -0.2 - vertex 19.557 -10.7956 0 - vertex 19.557 -10.7956 -0.2 + vertex 14.2516 -3.15818 -3 + vertex 14.2455 -2.23644 -3 + vertex 14.333 -2.7489 -3 endloop endfacet - facet normal -0.714409 -0.699729 0 + facet normal 0 0 -1 outer loop - vertex 19.557 -10.7956 0 - vertex 19.6172 -10.8571 -0.2 - vertex 19.6172 -10.8571 0 + vertex 13.8131 -3.7697 -3 + vertex 14.2455 -2.23644 -3 + vertex 14.2516 -3.15818 -3 endloop endfacet - facet normal -0.879991 -0.47499 0 + facet normal 0 0 -1 outer loop - vertex 19.6583 -10.9333 -0.2 - vertex 19.6172 -10.8571 0 - vertex 19.6172 -10.8571 -0.2 + vertex 13.172 -4.2601 -3 + vertex 14.2455 -2.23644 -3 + vertex 13.8131 -3.7697 -3 endloop endfacet - facet normal -0.879991 -0.47499 0 + facet normal -0 0 -1 outer loop - vertex 19.6172 -10.8571 0 - vertex 19.6583 -10.9333 -0.2 - vertex 19.6583 -10.9333 0 + vertex 14.2455 -2.23644 -3 + vertex 13.172 -4.2601 -3 + vertex 13.5923 -0.94501 -3 endloop endfacet - facet normal -0.967951 -0.251138 0 + facet normal 0 0 -1 outer loop - vertex 19.6819 -11.0243 -0.2 - vertex 19.6583 -10.9333 0 - vertex 19.6583 -10.9333 -0.2 + vertex 12.4032 -4.58609 -3 + vertex 13.5923 -0.94501 -3 + vertex 13.172 -4.2601 -3 endloop endfacet - facet normal -0.967951 -0.251138 0 + facet normal 0 0 -1 outer loop - vertex 19.6583 -10.9333 0 - vertex 19.6819 -11.0243 -0.2 - vertex 19.6819 -11.0243 0 + vertex 11.5814 -4.70438 -3 + vertex 13.5923 -0.94501 -3 + vertex 12.4032 -4.58609 -3 endloop endfacet - facet normal -0.997465 -0.0711569 0 + facet normal 0 0 -1 outer loop - vertex 19.6895 -11.13 -0.2 - vertex 19.6819 -11.0243 0 - vertex 19.6819 -11.0243 -0.2 + vertex 10.2758 -4.53506 -3 + vertex 13.5923 -0.94501 -3 + vertex 11.5814 -4.70438 -3 endloop endfacet - facet normal -0.997465 -0.0711569 0 + facet normal -0 0 -1 outer loop - vertex 19.6819 -11.0243 0 - vertex 19.6895 -11.13 -0.2 - vertex 19.6895 -11.13 0 + vertex 13.5923 -0.94501 -3 + vertex 10.2758 -4.53506 -3 + vertex 12.3489 0.629998 -3 endloop endfacet - facet normal -0.984705 0.17423 0 + facet normal 0 0 -1 outer loop - vertex 19.6598 -11.2975 -0.2 - vertex 19.6895 -11.13 0 - vertex 19.6895 -11.13 -0.2 + vertex 9.01294 -4.00814 -3 + vertex 12.3489 0.629998 -3 + vertex 10.2758 -4.53506 -3 endloop endfacet - facet normal -0.984705 0.17423 0 + facet normal 0 0 -1 outer loop - vertex 19.6895 -11.13 0 - vertex 19.6598 -11.2975 -0.2 - vertex 19.6598 -11.2975 0 + vertex 7.74282 -3.09522 -3 + vertex 12.3489 0.629998 -3 + vertex 9.01294 -4.00814 -3 endloop endfacet - facet normal -0.956743 0.290933 0 + facet normal -0 0 -1 outer loop - vertex 19.5653 -11.6083 -0.2 - vertex 19.6598 -11.2975 0 - vertex 19.6598 -11.2975 -0.2 + vertex 12.3489 0.629998 -3 + vertex 7.74282 -3.09522 -3 + vertex 10.5724 2.40247 -3 endloop endfacet - facet normal -0.956743 0.290933 0 + facet normal 0 0 -1 outer loop - vertex 19.6598 -11.2975 0 - vertex 19.5653 -11.6083 -0.2 - vertex 19.5653 -11.6083 0 + vertex 6.41545 -1.76788 -3 + vertex 10.5724 2.40247 -3 + vertex 7.74282 -3.09522 -3 endloop endfacet - facet normal -0.93899 0.343946 0 + facet normal -0 0 -1 outer loop - vertex 19.1479 -12.7477 -0.2 - vertex 19.5653 -11.6083 0 - vertex 19.5653 -11.6083 -0.2 + vertex 10.5724 2.40247 -3 + vertex 6.41545 -1.76788 -3 + vertex 9.13441 3.60373 -3 endloop endfacet - facet normal -0.93899 0.343946 0 + facet normal 0 0 -1 outer loop - vertex 19.5653 -11.6083 0 - vertex 19.1479 -12.7477 -0.2 - vertex 19.1479 -12.7477 0 + vertex 4.6091 0.441775 -3 + vertex 9.13441 3.60373 -3 + vertex 6.41545 -1.76788 -3 endloop endfacet - facet normal -0.930496 0.366302 0 + facet normal -0 0 -1 outer loop - vertex 18.3699 -14.7241 -0.2 - vertex 19.1479 -12.7477 0 - vertex 19.1479 -12.7477 -0.2 + vertex 9.13441 3.60373 -3 + vertex 4.6091 0.441775 -3 + vertex 8.18559 4.25764 -3 endloop endfacet - facet normal -0.930496 0.366302 0 + facet normal 0 0 -1 outer loop - vertex 19.1479 -12.7477 0 - vertex 18.3699 -14.7241 -0.2 - vertex 18.3699 -14.7241 0 + vertex 4.39665 0.754678 -3 + vertex 8.18559 4.25764 -3 + vertex 4.6091 0.441775 -3 endloop endfacet - facet normal -0.92735 0.374196 0 + facet normal -0 0 -1 outer loop - vertex 17.1638 -17.7131 -0.2 - vertex 18.3699 -14.7241 0 - vertex 18.3699 -14.7241 -0.2 + vertex 8.18559 4.25764 -3 + vertex 4.39665 0.754678 -3 + vertex 5.26682 5.76024 -3 endloop endfacet - facet normal -0.92735 0.374196 0 + facet normal 0 0 -1 outer loop - vertex 18.3699 -14.7241 0 - vertex 17.1638 -17.7131 -0.2 - vertex 17.1638 -17.7131 0 + vertex 1.66409 7.13679 -3 + vertex 4.39665 0.754678 -3 + vertex 4.24084 0.464987 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 4.39665 0.754678 -3 + vertex 1.66409 7.13679 -3 + vertex 5.26682 5.76024 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -1.72768 -3.30659 -3 + vertex 4.37015 -0.506109 -3 + vertex 1.09298 -4.60426 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 4.37015 -0.506109 -3 + vertex -1.72768 -3.30659 -3 + vertex 4.24084 0.464987 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -3.55278 -2.51803 -3 + vertex 4.24084 0.464987 -3 + vertex -1.72768 -3.30659 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 4.24084 0.464987 -3 + vertex -3.55278 -2.51803 -3 + vertex 1.66409 7.13679 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 1.66409 7.13679 -3 + vertex -3.55278 -2.51803 -3 + vertex -0.248642 7.94666 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -0.248642 7.94666 -3 + vertex -3.55278 -2.51803 -3 + vertex -2.78119 9.30203 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -4.99153 10.6633 -3 + vertex -3.55278 -2.51803 -3 + vertex -3.71458 -2.66291 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 3.854 -7.59505 -3 + vertex -5.57075 -19.2012 -3 + vertex 1.04019 -5.91722 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 1.04019 -5.91722 -3 + vertex -5.57075 -19.2012 -3 + vertex -2.05653 -4.03047 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.1272 -19.1706 -3 + vertex -2.05653 -4.03047 -3 + vertex -5.57075 -19.2012 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -3.55278 -2.51803 -3 + vertex -4.99153 10.6633 -3 + vertex -2.78119 9.30203 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -2.05653 -4.03047 -3 + vertex -7.1272 -19.1706 -3 + vertex -3.45272 -3.03042 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.4385 -11.5861 -3 + vertex -3.45272 -3.03042 -3 + vertex -7.1272 -19.1706 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.7993 -11.4712 -3 + vertex -3.71458 -2.66291 -3 + vertex -17.4385 -11.5861 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -3.45272 -3.03042 -3 + vertex -17.4385 -11.5861 -3 + vertex -3.71458 -2.66291 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1.41055 11.926 -3 + vertex 1.8467 12.7398 -3 + vertex 1.87173 12.344 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 1.8467 12.7398 -3 + vertex 1.41055 11.926 -3 + vertex 1.50002 13.1874 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1.41055 11.926 -3 + vertex 0.918757 13.5702 -3 + vertex 1.50002 13.1874 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 0.535115 11.4454 -3 + vertex 0.918757 13.5702 -3 + vertex 1.41055 11.926 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -0.394194 11.1972 -3 + vertex 0.918757 13.5702 -3 + vertex 0.535115 11.4454 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -0.394194 11.1972 -3 + vertex -0.928844 14.138 -3 + vertex 0.918757 13.5702 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -1.46211 11.1697 -3 + vertex -0.928844 14.138 -3 + vertex -0.394194 11.1972 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -2.75335 11.3511 -3 + vertex -0.928844 14.138 -3 + vertex -1.46211 11.1697 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -2.75335 11.3511 -3 + vertex -3.65881 14.4362 -3 + vertex -0.928844 14.138 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -5.07797 11.6776 -3 + vertex -3.65881 14.4362 -3 + vertex -2.75335 11.3511 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.23385 14.4578 -3 + vertex -5.07797 11.6776 -3 + vertex -5.71478 11.6495 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.23385 14.4578 -3 + vertex -5.71478 11.6495 -3 + vertex -5.93765 11.491 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -5.07797 11.6776 -3 + vertex -7.23385 14.4578 -3 + vertex -3.65881 14.4362 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -13.7227 13.3517 -3 + vertex -3.71458 -2.66291 -3 + vertex -17.5299 12.3491 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.4385 -11.5861 -3 + vertex -7.1272 -19.1706 -3 + vertex -8.78621 -19.378 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -11.7016 -19.4898 -3 + vertex -8.78621 -19.378 -3 + vertex -10.3766 -20.1728 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -3.71458 -2.66291 -3 + vertex -13.7227 13.3517 -3 + vertex -4.99153 10.6633 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -11.7016 -19.4898 -3 + vertex -10.3766 -20.1728 -3 + vertex -11.6824 -19.9072 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -10.3766 -20.1728 -3 + vertex -11.8627 -20.4599 -3 + vertex -11.6824 -19.9072 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -11.8627 -20.4599 -3 + vertex -10.3766 -20.1728 -3 + vertex -12.0544 -21.102 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -20.6062 -18.108 -3 + vertex -22.6991 -20.0641 -3 + vertex -22.6057 -19.3555 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -23.6767 -35.9691 -3 + vertex -22.458 -35.4568 -3 + vertex -23.007 -35.8619 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.4076 -24.3815 -3 + vertex -21.28 -33.2523 -3 + vertex -23.4462 -30.738 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.28 -33.2523 -3 + vertex -23.1278 -21.2395 -3 + vertex -22.6991 -20.0641 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -22.458 -35.4568 -3 + vertex -23.6767 -35.9691 -3 + vertex -24.7956 -33.2498 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.28 -33.2523 -3 + vertex -23.8149 -31.5911 -3 + vertex -23.4462 -30.738 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.7956 -33.2498 -3 + vertex -23.6767 -35.9691 -3 + vertex -24.4194 -36.2501 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.28 -33.2523 -3 + vertex -24.7956 -33.2498 -3 + vertex -23.8149 -31.5911 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -27.2791 -36.8782 -3 + vertex -24.4194 -36.2501 -3 + vertex -24.9699 -36.888 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -27.2791 -36.8782 -3 + vertex -24.9699 -36.888 -3 + vertex -25.157 -37.5754 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -24.4194 -36.2501 -3 + vertex -27.2791 -36.8782 -3 + vertex -24.7956 -33.2498 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.299 -23.335 -3 + vertex -17.8179 -22.6324 -3 + vertex -17.2695 -22.7276 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.299 -23.335 -3 + vertex -18.3659 -22.5704 -3 + vertex -17.8179 -22.6324 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -18.5428 -26.6889 -3 + vertex -18.3659 -22.5704 -3 + vertex -17.299 -23.335 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -18.5428 -26.6889 -3 + vertex -18.6886 -22.3738 -3 + vertex -18.3659 -22.5704 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.6991 -20.0641 -3 + vertex -18.6886 -22.3738 -3 + vertex -18.5428 -26.6889 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.6991 -20.0641 -3 + vertex -18.7986 -22.0269 -3 + vertex -18.6886 -22.3738 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -18.7986 -22.0269 -3 + vertex -19.683 -17.584 -3 + vertex -19.3785 -17.1305 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -18.7986 -22.0269 -3 + vertex -20.1126 -17.9213 -3 + vertex -19.683 -17.584 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -18.7986 -22.0269 -3 + vertex -20.6062 -18.108 -3 + vertex -20.1126 -17.9213 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.6991 -20.0641 -3 + vertex -20.6062 -18.108 -3 + vertex -18.7986 -22.0269 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.6991 -20.0641 -3 + vertex -18.5428 -26.6889 -3 + vertex -21.28 -33.2523 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -20.6062 -18.108 -3 + vertex -22.6057 -19.3555 -3 + vertex -21.1029 -18.1093 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -21.1029 -18.1093 -3 + vertex -22.6057 -19.3555 -3 + vertex -21.3898 -18.0171 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.8641 -19.008 -3 + vertex -21.3898 -18.0171 -3 + vertex -22.6057 -19.3555 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -21.3898 -18.0171 -3 + vertex -22.8641 -19.008 -3 + vertex -21.538 -17.8042 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -23.4908 -18.9156 -3 + vertex -21.538 -17.8042 -3 + vertex -22.8641 -19.008 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.7956 -33.2498 -3 + vertex -21.9191 -34.6287 -3 + vertex -22.458 -35.4568 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -21.538 -17.8042 -3 + vertex -23.4908 -18.9156 -3 + vertex -21.5846 -16.4428 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.9191 -34.6287 -3 + vertex -24.7956 -33.2498 -3 + vertex -21.28 -33.2523 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -23.3419 -14.2877 -3 + vertex -21.5846 -16.4428 -3 + vertex -23.4908 -18.9156 -3 + endloop + endfacet + facet normal -0 -0 -1 + outer loop + vertex -22.1413 -14.5577 -3 + vertex -21.5846 -16.4428 -3 + vertex -23.3419 -14.2877 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.6401 -15.0493 -3 + vertex -22.1413 -14.5577 -3 + vertex -21.8106 -14.7733 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.5846 -16.4428 -3 + vertex -22.1413 -14.5577 -3 + vertex -21.6401 -15.0493 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.1111 -19.1062 -3 + vertex -23.3419 -14.2877 -3 + vertex -23.4908 -18.9156 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -26.1195 -14.1654 -3 + vertex -24.1111 -19.1062 -3 + vertex -24.7225 -19.9745 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.8809 -15.6487 -3 + vertex -24.7225 -19.9745 -3 + vertex -25.7001 -21.2849 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.1111 -19.1062 -3 + vertex -26.1195 -14.1654 -3 + vertex -23.3419 -14.2877 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -32.1593 -18.5412 -3 + vertex -25.7001 -21.2849 -3 + vertex -26.9351 -22.1109 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -32.1593 -18.5412 -3 + vertex -26.9351 -22.1109 -3 + vertex -28.6031 -22.5277 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.7225 -19.9745 -3 + vertex -30.8809 -15.6487 -3 + vertex -26.1195 -14.1654 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -26.1195 -14.1654 -3 + vertex -30.8809 -15.6487 -3 + vertex -29.5608 -14.1906 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -30.3887 -14.5514 -3 + vertex -29.5608 -14.1906 -3 + vertex -30.8809 -15.6487 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -32.1593 -18.5412 -3 + vertex -28.6031 -22.5277 -3 + vertex -30.8797 -22.6102 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -29.5608 -14.1906 -3 + vertex -30.3887 -14.5514 -3 + vertex -30.2116 -14.321 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -25.7001 -21.2849 -3 + vertex -32.1593 -18.5412 -3 + vertex -30.8809 -15.6487 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -33.3019 -21.4299 -3 + vertex -30.8797 -22.6102 -3 + vertex -32.5249 -22.5543 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.8797 -22.6102 -3 + vertex -33.3019 -21.4299 -3 + vertex -32.1593 -18.5412 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -33.3295 -22.4108 -3 + vertex -33.3019 -21.4299 -3 + vertex -32.5249 -22.5543 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -33.3019 -21.4299 -3 + vertex -33.3295 -22.4108 -3 + vertex -33.5147 -22.0719 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.78621 -19.378 -3 + vertex -17.4456 -12.0833 -3 + vertex -17.4385 -11.5861 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -19.3785 -17.1305 -3 + vertex -15.1553 -19.8912 -3 + vertex -17.9982 -20.7653 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -19.3785 -17.1305 -3 + vertex -17.9982 -20.7653 -3 + vertex -18.4336 -21.0091 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -19.3785 -17.1305 -3 + vertex -18.4336 -21.0091 -3 + vertex -18.7084 -21.5139 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -19.3785 -17.1305 -3 + vertex -18.7084 -21.5139 -3 + vertex -18.7986 -22.0269 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.1553 -19.8912 -3 + vertex -19.3785 -17.1305 -3 + vertex -17.4456 -12.0833 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.33648 -34.384 -3 + vertex -3.99709 -33.5697 -3 + vertex -7.51249 -36.3769 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.33648 -34.384 -3 + vertex -7.51249 -36.3769 -3 + vertex -7.98605 -36.0592 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -3.99709 -33.5697 -3 + vertex -8.33648 -34.384 -3 + vertex -6.41168 -29.738 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.56822 -35.3052 -3 + vertex -7.98605 -36.0592 -3 + vertex -8.51129 -35.7129 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.98605 -36.0592 -3 + vertex -8.56822 -35.3052 -3 + vertex -8.33648 -34.384 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -8.78621 -19.378 -3 + vertex -11.7016 -19.4898 -3 + vertex -11.9141 -19.2259 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.4456 -12.0833 -3 + vertex -8.78621 -19.378 -3 + vertex -11.9141 -19.2259 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.4456 -12.0833 -3 + vertex -11.9141 -19.2259 -3 + vertex -12.3137 -19.1333 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -5.93765 11.491 -3 + vertex -10.6367 14.238 -3 + vertex -7.23385 14.4578 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.4456 -12.0833 -3 + vertex -12.3137 -19.1333 -3 + vertex -15.1553 -19.8912 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -5.93765 11.491 -3 + vertex -13.7227 13.3517 -3 + vertex -10.6367 14.238 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -4.99153 10.6633 -3 + vertex -13.7227 13.3517 -3 + vertex -5.93765 11.491 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -3.71458 -2.66291 -3 + vertex -17.7993 -11.4712 -3 + vertex -17.5299 12.3491 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.7993 -11.4712 -3 + vertex -20.0298 12.0063 -3 + vertex -17.5299 12.3491 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.7993 -11.4712 -3 + vertex -22.4428 11.7593 -3 + vertex -20.0298 12.0063 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -27.1868 -11.3523 -3 + vertex -22.4428 11.7593 -3 + vertex -17.7993 -11.4712 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.4428 11.7593 -3 + vertex -27.1868 -11.3523 -3 + vertex -25.7097 11.6586 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -27.1868 -11.3523 -3 + vertex -28.6588 11.7129 -3 + vertex -25.7097 11.6586 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -34.87 -11.3196 -3 + vertex -28.6588 11.7129 -3 + vertex -27.1868 -11.3523 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -28.6588 11.7129 -3 + vertex -34.87 -11.3196 -3 + vertex -30.1182 11.9311 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -36.1936 -11.4238 -3 + vertex -30.1182 11.9311 -3 + vertex -34.87 -11.3196 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -36.792 -11.6364 -3 + vertex -30.1182 11.9311 -3 + vertex -36.1936 -11.4238 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -30.1182 11.9311 -3 + vertex -36.792 -11.6364 -3 + vertex -30.3887 12.6783 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.3887 12.6783 -3 + vertex -35.7552 21.6337 -3 + vertex -33.0651 20.3093 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -37.6991 23.0789 -3 + vertex -30.3887 12.6783 -3 + vertex -36.792 -11.6364 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -37.6991 23.0789 -3 + vertex -36.792 -11.6364 -3 + vertex -37.3951 -12.1929 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -39.1303 25.4589 -3 + vertex -37.3951 -12.1929 -3 + vertex -37.5366 -12.7854 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.3887 12.6783 -3 + vertex -37.6991 23.0789 -3 + vertex -35.7552 21.6337 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -9.69161 -22.56 -3 + vertex -8.46819 -23.4267 -3 + vertex -8.72405 -24.8218 -3 + endloop + endfacet + facet normal -0 -0 -1 + outer loop + vertex -8.78909 -22.7249 -3 + vertex -8.46819 -23.4267 -3 + vertex -9.69161 -22.56 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -12.4124 -23.7203 -3 + vertex -8.72405 -24.8218 -3 + vertex -9.55184 -27.0667 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.46819 -23.4267 -3 + vertex -8.78909 -22.7249 -3 + vertex -8.55624 -22.9989 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.72405 -24.8218 -3 + vertex -10.5461 -22.7271 -3 + vertex -9.69161 -22.56 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.72405 -24.8218 -3 + vertex -11.3967 -23.0769 -3 + vertex -10.5461 -22.7271 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.3894 -29.1914 -3 + vertex -9.55184 -27.0667 -3 + vertex -11.5932 -32.143 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.8281 -32.7116 -3 + vertex -11.5932 -32.143 -3 + vertex -12.3385 -33.8339 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -9.55184 -27.0667 -3 + vertex -14.2216 -26.3227 -3 + vertex -13.7062 -25.2068 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.8281 -32.7116 -3 + vertex -12.3385 -33.8339 -3 + vertex -13.0448 -35.0276 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -8.72405 -24.8218 -3 + vertex -12.4124 -23.7203 -3 + vertex -11.3967 -23.0769 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -13.1427 -24.3848 -3 + vertex -9.55184 -27.0667 -3 + vertex -13.7062 -25.2068 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -14.3732 -35.9691 -3 + vertex -13.0448 -35.0276 -3 + vertex -13.7203 -35.7356 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -9.55184 -27.0667 -3 + vertex -13.1427 -24.3848 -3 + vertex -12.4124 -23.7203 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -13.0448 -35.0276 -3 + vertex -14.3732 -35.9691 -3 + vertex -16.8281 -32.7116 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.8281 -32.7116 -3 + vertex -14.3732 -35.9691 -3 + vertex -14.8949 -36.1495 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -9.55184 -27.0667 -3 + vertex -15.3894 -29.1914 -3 + vertex -14.2216 -26.3227 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.5846 -36.2152 -3 + vertex -14.8949 -36.1495 -3 + vertex -15.4682 -36.5832 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.2226 -36.752 -3 + vertex -15.4682 -36.5832 -3 + vertex -15.9213 -37.1689 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.6989 -37.6188 -3 + vertex -15.9213 -37.1689 -3 + vertex -15.9433 -37.6764 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.5846 -36.2152 -3 + vertex -15.4682 -36.5832 -3 + vertex -16.2226 -36.752 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -14.8949 -36.1495 -3 + vertex -16.5846 -36.2152 -3 + vertex -16.8281 -32.7116 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -11.5932 -32.143 -3 + vertex -16.8281 -32.7116 -3 + vertex -15.3894 -29.1914 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.7285 -35.3062 -3 + vertex -16.5846 -36.2152 -3 + vertex -17.3742 -35.9691 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.7285 -35.3062 -3 + vertex -17.3742 -35.9691 -3 + vertex -17.6987 -35.8223 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -16.5846 -36.2152 -3 + vertex -17.7285 -35.3062 -3 + vertex -16.8281 -32.7116 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.4076 -24.3815 -3 + vertex -23.4462 -30.738 -3 + vertex -23.655 -30.4649 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -25.4741 -26.9141 -3 + vertex -23.655 -30.4649 -3 + vertex -24.0819 -30.2475 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.28 -33.2523 -3 + vertex -24.4076 -24.3815 -3 + vertex -23.1278 -21.2395 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -25.4741 -26.9141 -3 + vertex -24.0819 -30.2475 -3 + vertex -24.4667 -30.1541 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -26.2338 -28.3696 -3 + vertex -24.4667 -30.1541 -3 + vertex -24.8569 -30.2998 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -23.655 -30.4649 -3 + vertex -25.4741 -26.9141 -3 + vertex -24.4076 -24.3815 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.4667 -30.1541 -3 + vertex -26.2338 -28.3696 -3 + vertex -25.4741 -26.9141 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -26.8752 -29.0336 -3 + vertex -24.8569 -30.2998 -3 + vertex -26.8283 -32.1012 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.8569 -30.2998 -3 + vertex -26.8752 -29.0336 -3 + vertex -26.2338 -28.3696 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -26.8283 -32.1012 -3 + vertex -27.5872 -29.1914 -3 + vertex -26.8752 -29.0336 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -26.8283 -32.1012 -3 + vertex -28.1878 -29.097 -3 + vertex -27.5872 -29.1914 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -29.0969 -33.8499 -3 + vertex -28.1878 -29.097 -3 + vertex -26.8283 -32.1012 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.2578 -34.4631 -3 + vertex -28.1878 -29.097 -3 + vertex -29.0969 -33.8499 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -31.3644 -34.8586 -3 + vertex -28.1878 -29.097 -3 + vertex -30.2578 -34.4631 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -35.4824 -26.6225 -3 + vertex -28.1878 -29.097 -3 + vertex -31.3644 -34.8586 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -28.1878 -29.097 -3 + vertex -32.142 -25.4759 -3 + vertex -28.5713 -25.7117 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -28.1878 -29.097 -3 + vertex -35.4824 -26.6225 -3 + vertex -32.142 -25.4759 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -35.4824 -26.6225 -3 + vertex -31.3644 -34.8586 -3 + vertex -35.0529 -35.0835 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -32.142 -25.4759 -3 + vertex -35.4824 -26.6225 -3 + vertex -34.9626 -25.4747 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -38.7331 -34.5543 -3 + vertex -35.0529 -35.0835 -3 + vertex -38.4261 -34.9619 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -35.0529 -35.0835 -3 + vertex -38.7331 -34.5543 -3 + vertex -35.4824 -26.6225 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -28.5713 -25.7117 -3 + vertex -27.9105 -26.2055 -3 + vertex -28.1838 -28.4809 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -27.9105 -26.2055 -3 + vertex -28.5713 -25.7117 -3 + vertex -28.1036 -25.8829 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -28.5713 -25.7117 -3 + vertex -28.1838 -28.4809 -3 + vertex -28.1878 -29.097 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -11.1208 19.5935 -3 + vertex -11.5389 20.1801 -3 + vertex -10.9412 20.0018 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -12.0133 18.8648 -3 + vertex -11.5389 20.1801 -3 + vertex -11.1208 19.5935 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -12.0133 18.8648 -3 + vertex -12.9783 20.2187 -3 + vertex -11.5389 20.1801 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.009 16.7116 -3 + vertex -12.9783 20.2187 -3 + vertex -12.0133 18.8648 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.009 16.7116 -3 + vertex -16.3196 19.9968 -3 + vertex -12.9783 20.2187 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.0754 15.711 -3 + vertex -16.3196 19.9968 -3 + vertex -15.009 16.7116 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -20.1789 19.4139 -3 + vertex -17.0754 15.711 -3 + vertex -19.733 14.7364 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.0754 15.711 -3 + vertex -20.1789 19.4139 -3 + vertex -16.3196 19.9968 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.3118 14.0374 -3 + vertex -20.1789 19.4139 -3 + vertex -19.733 14.7364 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.3118 14.0374 -3 + vertex -24.1572 19.0472 -3 + vertex -20.1789 19.4139 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.873 13.6003 -3 + vertex -24.1572 19.0472 -3 + vertex -22.3118 14.0374 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -27.5587 18.9414 -3 + vertex -24.873 13.6003 -3 + vertex -27.4778 13.4117 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.873 13.6003 -3 + vertex -27.5587 18.9414 -3 + vertex -24.1572 19.0472 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -27.4778 13.4117 -3 + vertex -29.687 19.1409 -3 + vertex -27.5587 18.9414 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -29.9412 13.2465 -3 + vertex -29.687 19.1409 -3 + vertex -27.4778 13.4117 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.3118 13.0393 -3 + vertex -29.687 19.1409 -3 + vertex -29.9412 13.2465 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -33.0651 20.3093 -3 + vertex -30.3118 13.0393 -3 + vertex -30.3887 12.6783 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.3118 13.0393 -3 + vertex -33.0651 20.3093 -3 + vertex -29.687 19.1409 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 36.2859 -23.7121 -3 + vertex 36.104 -22.9178 -3 + vertex 36.3422 -23.0402 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 35.2001 -22.9271 -3 + vertex 36.2859 -23.7121 -3 + vertex 35.3305 -26.5156 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 36.2859 -23.7121 -3 + vertex 35.2001 -22.9271 -3 + vertex 36.104 -22.9178 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 35.3305 -26.5156 -3 + vertex 34.7441 -22.7166 -3 + vertex 35.2001 -22.9271 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 31.8275 -24.8188 -3 + vertex 34.7441 -22.7166 -3 + vertex 35.3305 -26.5156 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 31.8275 -24.8188 -3 + vertex 35.3305 -26.5156 -3 + vertex 33.8444 -30.1753 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 42.943 -20.2657 -3 + vertex 42.0238 -20.3507 -3 + vertex 42.1032 -19.4743 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 41.971 -20.8453 -3 + vertex 42.0238 -20.3507 -3 + vertex 42.943 -20.2657 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 42.0238 -20.3507 -3 + vertex 41.971 -20.8453 -3 + vertex 41.8981 -20.7296 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 47.9875 -20.1225 -3 + vertex 117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 47.8425 -21.0531 -3 + vertex 47.9875 -20.1225 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 47.5305 -21.9981 -3 + vertex 47.8425 -21.0531 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 47.0957 -22.796 -3 + vertex 47.5305 -21.9981 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 46.5684 -23.4293 -3 + vertex 47.0957 -22.796 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 37.9939 -37.5705 -3 + vertex 46.5684 -23.4293 -3 + vertex 117.5 -117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 46.5684 -23.4293 -3 + vertex 37.9939 -37.5705 -3 + vertex 45.9792 -23.8802 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 38.113 -36.8464 -3 + vertex 45.9792 -23.8802 -3 + vertex 37.9939 -37.5705 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 45.9792 -23.8802 -3 + vertex 38.113 -36.8464 -3 + vertex 45.3585 -24.1311 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 37.9618 -36.3241 -3 + vertex 45.3585 -24.1311 -3 + vertex 38.113 -36.8464 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 38.2188 -29.6614 -3 + vertex 45.3585 -24.1311 -3 + vertex 37.9618 -36.3241 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 45.3585 -24.1311 -3 + vertex 38.2188 -29.6614 -3 + vertex 44.7368 -24.1643 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 40.5923 -24.6171 -3 + vertex 44.1445 -23.9621 -3 + vertex 40.0289 -25.46 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 41.2986 -23.9223 -3 + vertex 44.1445 -23.9621 -3 + vertex 40.5923 -24.6171 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 44.1445 -23.9621 -3 + vertex 41.2986 -23.9223 -3 + vertex 43.6122 -23.5069 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 43.6122 -23.5069 -3 + vertex 41.2986 -23.9223 -3 + vertex 42.7682 -22.851 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 44.7368 -24.1643 -3 + vertex 40.0289 -25.46 -3 + vertex 44.1445 -23.9621 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 37.381 -37.9628 -3 + vertex 37.9939 -37.5705 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 35.8907 -38.1241 -3 + vertex 37.381 -37.9628 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 33.1396 -38.1555 -3 + vertex 35.8907 -38.1241 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 29.8074 -38.0948 -3 + vertex 33.1396 -38.1555 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 20.3084 -38.5182 -3 + vertex 29.8074 -38.0948 -3 + vertex 117.5 -117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 28.553 -36.8405 -3 + vertex 25.9895 -35.834 -3 + vertex 27.8442 -34.1555 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 24.0601 -37.0678 -3 + vertex 28.4102 -37.3704 -3 + vertex 28.6431 -37.8931 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 21.4079 -38.2833 -3 + vertex 29.8074 -38.0948 -3 + vertex 20.3084 -38.5182 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 28.4102 -37.3704 -3 + vertex 24.0601 -37.0678 -3 + vertex 25.9895 -35.834 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 28.6431 -37.8931 -3 + vertex 21.4079 -38.2833 -3 + vertex 24.0601 -37.0678 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 29.8074 -38.0948 -3 + vertex 21.4079 -38.2833 -3 + vertex 28.6431 -37.8931 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex 19.0956 -38.5852 -3 + vertex 20.3084 -38.5182 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 5.33583 -38.4712 -3 + vertex 19.0956 -38.5852 -3 + vertex 117.5 -117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 19.0956 -38.5852 -3 + vertex 5.33583 -38.4712 -3 + vertex 17.8945 -38.4707 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 17.8945 -38.4707 -3 + vertex 5.33583 -38.4712 -3 + vertex 16.8412 -38.0675 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 12.1385 -34.7994 -3 + vertex 14.6656 -34.4466 -3 + vertex 12.2351 -35.1874 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 14.8379 -35.6738 -3 + vertex 12.2351 -35.1874 -3 + vertex 14.6656 -34.4466 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 12.1379 -35.6584 -3 + vertex 14.8379 -35.6738 -3 + vertex 15.2376 -36.6526 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 11.1962 -36.5595 -3 + vertex 15.2376 -36.6526 -3 + vertex 15.8953 -37.4336 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 8.47177 -37.477 -3 + vertex 16.8412 -38.0675 -3 + vertex 5.33583 -38.4712 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 14.8379 -35.6738 -3 + vertex 12.1379 -35.6584 -3 + vertex 12.2351 -35.1874 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.2376 -36.6526 -3 + vertex 11.7916 -36.1064 -3 + vertex 12.1379 -35.6584 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.2376 -36.6526 -3 + vertex 11.1962 -36.5595 -3 + vertex 11.7916 -36.1064 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.8953 -37.4336 -3 + vertex 10.519 -36.9119 -3 + vertex 11.1962 -36.5595 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 10.519 -36.9119 -3 + vertex 16.8412 -38.0675 -3 + vertex 9.92719 -37.0575 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 16.8412 -38.0675 -3 + vertex 10.519 -36.9119 -3 + vertex 15.8953 -37.4336 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 9.92719 -37.0575 -3 + vertex 16.8412 -38.0675 -3 + vertex 8.47177 -37.477 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 0.962702 -38.4962 -3 + vertex 5.33583 -38.4712 -3 + vertex 117.5 -117.5 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 4.73542 -37.8041 -3 + vertex 3.43985 -37.8545 -3 + vertex 4.64415 -37.2809 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 4.84381 -38.3343 -3 + vertex 3.43985 -37.8545 -3 + vertex 4.73542 -37.8041 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 2.31266 -38.26 -3 + vertex 5.33583 -38.4712 -3 + vertex 0.962702 -38.4962 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 4.84381 -38.3343 -3 + vertex 2.31266 -38.26 -3 + vertex 3.43985 -37.8545 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 5.33583 -38.4712 -3 + vertex 2.31266 -38.26 -3 + vertex 4.84381 -38.3343 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 117.5 -117.5 -3 + vertex -0.366978 -38.538 -3 + vertex 0.962702 -38.4962 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -117.5 -117.5 -3 + vertex -0.366978 -38.538 -3 + vertex 117.5 -117.5 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -12.0013 -38.1555 -3 + vertex -0.366978 -38.538 -3 + vertex -117.5 -117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -3.14673 -30.0798 -3 + vertex -6.41168 -29.738 -3 + vertex -4.26405 -24.3543 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.51249 -36.3769 -3 + vertex -3.80393 -35.193 -3 + vertex -7.31439 -36.7536 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.31439 -36.7536 -3 + vertex -3.80393 -35.193 -3 + vertex -3.26834 -36.6145 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -3.80393 -35.193 -3 + vertex -7.51249 -36.3769 -3 + vertex -3.99709 -33.5697 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.3919 -37.1883 -3 + vertex -3.26834 -36.6145 -3 + vertex -2.45619 -37.7112 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -8.07933 -37.9462 -3 + vertex -1.43333 -38.36 -3 + vertex -8.66873 -38.0883 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -3.26834 -36.6145 -3 + vertex -7.3919 -37.1883 -3 + vertex -7.31439 -36.7536 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -2.45619 -37.7112 -3 + vertex -7.74517 -37.6801 -3 + vertex -7.3919 -37.1883 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -2.45619 -37.7112 -3 + vertex -8.07933 -37.9462 -3 + vertex -7.74517 -37.6801 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -1.43333 -38.36 -3 + vertex -8.07933 -37.9462 -3 + vertex -2.45619 -37.7112 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -8.66873 -38.0883 -3 + vertex -0.366978 -38.538 -3 + vertex -12.0013 -38.1555 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -0.366978 -38.538 -3 + vertex -8.66873 -38.0883 -3 + vertex -1.43333 -38.36 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -12.0013 -38.1555 -3 + vertex -117.5 -117.5 -3 + vertex -15.3277 -38.0928 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -15.9213 -37.1689 -3 + vertex -16.6989 -37.6188 -3 + vertex -16.2226 -36.752 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.7983 -37.9502 -3 + vertex -16.6989 -37.6188 -3 + vertex -15.9433 -37.6764 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -17.5781 -38.0841 -3 + vertex -15.3277 -38.0928 -3 + vertex -117.5 -117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.7983 -37.9502 -3 + vertex -17.033 -37.9274 -3 + vertex -16.6989 -37.6188 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -15.7983 -37.9502 -3 + vertex -17.5781 -38.0841 -3 + vertex -17.033 -37.9274 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.3277 -38.0928 -3 + vertex -17.5781 -38.0841 -3 + vertex -15.7983 -37.9502 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -17.5781 -38.0841 -3 + vertex -117.5 -117.5 -3 + vertex -20.8226 -38.1301 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -25.0608 -37.8416 -3 + vertex -27.2791 -36.8782 -3 + vertex -25.157 -37.5754 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -28.2835 -38.1638 -3 + vertex -25.0608 -37.8416 -3 + vertex -24.8096 -38.0047 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex -28.2835 -38.1638 -3 + vertex -20.8226 -38.1301 -3 + vertex -117.5 -117.5 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -25.0608 -37.8416 -3 + vertex -28.2835 -38.1638 -3 + vertex -27.2791 -36.8782 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -20.8226 -38.1301 -3 + vertex -28.2835 -38.1638 -3 + vertex -24.8096 -38.0047 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -28.2835 -38.1638 -3 + vertex -117.5 -117.5 -3 + vertex -37.632 -38.1325 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -47.8161 -37.7712 -3 + vertex -117.5 -117.5 -3 + vertex -47.9875 -37.5097 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -47.4646 -37.9547 -3 + vertex -117.5 -117.5 -3 + vertex -47.8161 -37.7712 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -37.632 -38.1325 -3 + vertex -117.5 -117.5 -3 + vertex -47.4646 -37.9547 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 47.7267 -19.5813 -3 + vertex 117.5 117.5 -3 + vertex 47.9875 -20.1225 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.5422 14.7505 -3 + vertex 47.7267 -19.5813 -3 + vertex 47.2139 -19.2263 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.528 9.70386 -3 + vertex 47.2139 -19.2263 -3 + vertex 46.2623 -19.1343 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 41.5319 -19.1343 -3 + vertex 46.2623 -19.1343 -3 + vertex 44.5909 -19.3768 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 42.1032 -19.4743 -3 + vertex 44.5909 -19.3768 -3 + vertex 42.943 -20.2657 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 44.5909 -19.3768 -3 + vertex 42.1032 -19.4743 -3 + vertex 41.8934 -19.2238 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 41.5319 -19.1343 -3 + vertex 44.5909 -19.3768 -3 + vertex 41.8934 -19.2238 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.528 9.70386 -3 + vertex 46.2623 -19.1343 -3 + vertex 41.5319 -19.1343 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 29.9429 -19.4981 -3 + vertex 41.5319 -19.1343 -3 + vertex 38.4798 -20.1181 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 30.7248 -19.9631 -3 + vertex 38.4798 -20.1181 -3 + vertex 35.5661 -21.102 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 30.7248 -19.9631 -3 + vertex 35.5661 -21.102 -3 + vertex 35.2187 -21.2043 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 31.3699 -20.64 -3 + vertex 35.2187 -21.2043 -3 + vertex 34.9156 -21.474 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 30.2029 -31.1764 -3 + vertex 33.8444 -30.1753 -3 + vertex 32.5255 -33.371 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 34.7441 -22.7166 -3 + vertex 32.0255 -23.3848 -3 + vertex 34.62 -22.2927 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 32.0232 -22.2828 -3 + vertex 34.62 -22.2927 -3 + vertex 32.0255 -23.3848 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 31.8086 -21.404 -3 + vertex 34.62 -22.2927 -3 + vertex 32.0232 -22.2828 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 34.62 -22.2927 -3 + vertex 31.8086 -21.404 -3 + vertex 34.9156 -21.474 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 31.3699 -20.64 -3 + vertex 34.9156 -21.474 -3 + vertex 31.8086 -21.404 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 35.2187 -21.2043 -3 + vertex 31.3699 -20.64 -3 + vertex 30.7248 -19.9631 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 38.4798 -20.1181 -3 + vertex 30.7248 -19.9631 -3 + vertex 29.9429 -19.4981 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.528 9.70386 -3 + vertex 41.5319 -19.1343 -3 + vertex 29.9429 -19.4981 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.528 9.70386 -3 + vertex 29.9429 -19.4981 -3 + vertex 28.989 -19.2301 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 26.7235 1.18648 -3 + vertex 28.989 -19.2301 -3 + vertex 27.8281 -19.1444 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 47.2139 -19.2263 -3 + vertex 27.6094 12.2412 -3 + vertex 27.5422 14.7505 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 47.7267 -19.5813 -3 + vertex 27.5422 14.7505 -3 + vertex 117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 26.4742 18.624 -3 + vertex 27.5422 14.7505 -3 + vertex 27.1755 15.8473 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 26.4742 18.624 -3 + vertex 27.1755 15.8473 -3 + vertex 26.6933 17.4601 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.5422 14.7505 -3 + vertex 26.4742 18.624 -3 + vertex 117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 25.9424 19.4837 -3 + vertex 117.5 117.5 -3 + vertex 26.4742 18.624 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 21.8319 23.6658 -3 + vertex 25.9424 19.4837 -3 + vertex 25.0752 20.0627 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 22.0827 22.427 -3 + vertex 25.0752 20.0627 -3 + vertex 23.8499 20.3844 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 22.2698 21.5943 -3 + vertex 23.8499 20.3844 -3 + vertex 23.1387 20.59 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 22.2698 21.5943 -3 + vertex 23.1387 20.59 -3 + vertex 22.6169 20.9877 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 23.8499 20.3844 -3 + vertex 22.2698 21.5943 -3 + vertex 22.0827 22.427 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 25.0752 20.0627 -3 + vertex 22.0827 22.427 -3 + vertex 21.8319 23.6658 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 25.9424 19.4837 -3 + vertex 21.8319 23.6658 -3 + vertex 21.2755 24.568 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 25.9424 19.4837 -3 + vertex 21.2755 24.568 -3 + vertex 117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.3134 30.0845 -3 + vertex 21.2755 24.568 -3 + vertex 20.1819 25.3734 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.4783 29.8698 -3 + vertex 20.1819 25.3734 -3 + vertex 18.3193 26.3216 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.4783 29.8698 -3 + vertex 18.3193 26.3216 -3 + vertex 17.0772 26.9817 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.6084 29.1601 -3 + vertex 17.0772 26.9817 -3 + vertex 16.2688 27.6146 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.6084 29.1601 -3 + vertex 16.2688 27.6146 -3 + vertex 15.808 28.3106 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 17.0772 26.9817 -3 + vertex 15.6084 29.1601 -3 + vertex 15.4783 29.8698 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.3134 30.0845 -3 + vertex 20.1819 25.3734 -3 + vertex 15.4783 29.8698 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 21.2755 24.568 -3 + vertex 15.3134 30.0845 -3 + vertex 117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 12.0123 26.7794 -3 + vertex 15.122 28.0941 -3 + vertex 12.5486 25.9653 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 11.8052 27.5343 -3 + vertex 15.122 28.0941 -3 + vertex 12.0123 26.7794 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.0577 29.0611 -3 + vertex 12.2907 30.5214 -3 + vertex 15.1584 29.8123 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.1584 29.8123 -3 + vertex 12.2907 30.5214 -3 + vertex 15.3134 30.0845 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 12.0544 30.7144 -3 + vertex 15.3134 30.0845 -3 + vertex 12.2907 30.5214 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.3134 30.0845 -3 + vertex 12.0544 30.7144 -3 + vertex 5.25321 38.4452 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 5.19939 38.083 -3 + vertex 12.0544 30.7144 -3 + vertex 11.5971 30.3591 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 8.51885 25.3107 -3 + vertex 11.5037 26.4501 -3 + vertex 9.07032 24.476 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 11.5037 26.4501 -3 + vertex 8.51885 25.3107 -3 + vertex 11.1066 27.3577 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 7.91411 25.7528 -3 + vertex 11.1066 27.3577 -3 + vertex 8.51885 25.3107 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 11.1066 27.3577 -3 + vertex 7.91411 25.7528 -3 + vertex 11.0411 28.3898 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 7.11433 25.9588 -3 + vertex 11.0411 28.3898 -3 + vertex 7.91411 25.7528 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 5.72413 26.6445 -3 + vertex 11.0411 28.3898 -3 + vertex 7.11433 25.9588 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 11.0411 28.3898 -3 + vertex 5.72413 26.6445 -3 + vertex 11.2319 29.4873 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 5.72413 26.6445 -3 + vertex 7.11433 25.9588 -3 + vertex 6.4022 26.1795 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 4.3138 28.4461 -3 + vertex 11.2319 29.4873 -3 + vertex 5.72413 26.6445 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 3.57109 31.3388 -3 + vertex 11.2319 29.4873 -3 + vertex 4.3138 28.4461 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.3134 30.0845 -3 + vertex 5.25321 38.4452 -3 + vertex 5.15152 38.5852 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 15.3134 30.0845 -3 + vertex 5.15152 38.5852 -3 + vertex 117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -0.115935 27.2162 -3 + vertex 1.04836 28.6106 -3 + vertex 0.858783 27.1101 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -0.786632 27.5359 -3 + vertex 1.04836 28.6106 -3 + vertex -0.115935 27.2162 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -1.46161 28.0795 -3 + vertex 1.04836 28.6106 -3 + vertex -0.786632 27.5359 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 1.04836 28.6106 -3 + vertex -1.46161 28.0795 -3 + vertex 1.1273 29.8907 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -2.77953 29.7664 -3 + vertex 1.1273 29.8907 -3 + vertex -1.46161 28.0795 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 1.1273 29.8907 -3 + vertex -2.77953 29.7664 -3 + vertex 1.37489 31.173 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -3.97987 32.1322 -3 + vertex 1.37489 31.173 -3 + vertex -2.77953 29.7664 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1.37489 31.173 -3 + vertex -3.97987 32.1322 -3 + vertex 2.44067 33.9939 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -4.97284 35.0324 -3 + vertex 2.44067 33.9939 -3 + vertex -3.97987 32.1322 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -5.55994 36.5001 -3 + vertex 2.44067 33.9939 -3 + vertex -4.97284 35.0324 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 2.44067 33.9939 -3 + vertex -5.55994 36.5001 -3 + vertex 4.08079 37.0842 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 4.08079 37.0842 -3 + vertex -5.55994 36.5001 -3 + vertex 5.15152 38.5852 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -5.8163 36.5812 -3 + vertex 5.15152 38.5852 -3 + vertex -5.55994 36.5001 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -117.5 117.5 -3 + vertex 5.15152 38.5852 -3 + vertex -5.8163 36.5812 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.25507 27.2437 -3 + vertex -6.28322 28.2565 -3 + vertex -6.38329 27.6173 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -6.28322 28.2565 -3 + vertex -8.80952 27.3973 -3 + vertex -6.22131 31.7226 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -7.25507 27.2437 -3 + vertex -6.38329 27.6173 -3 + vertex -6.55612 27.3597 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -6.28322 28.2565 -3 + vertex -7.25507 27.2437 -3 + vertex -8.80952 27.3973 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -11.546 27.7352 -3 + vertex -6.22131 31.7226 -3 + vertex -8.80952 27.3973 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -6.22131 31.7226 -3 + vertex -11.546 27.7352 -3 + vertex -6.055 36.2349 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -13.5562 27.8374 -3 + vertex -6.055 36.2349 -3 + vertex -11.546 27.7352 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -15.2376 27.7001 -3 + vertex -6.055 36.2349 -3 + vertex -13.5562 27.8374 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -20.8096 27.6578 -3 + vertex -6.055 36.2349 -3 + vertex -15.2376 27.7001 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -20.8096 27.6578 -3 + vertex -15.2376 27.7001 -3 + vertex -16.9875 27.3196 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -19.9485 27.2141 -3 + vertex -16.9875 27.3196 -3 + vertex -19.335 26.703 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -20.8096 27.6578 -3 + vertex -16.9875 27.3196 -3 + vertex -19.9485 27.2141 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.4093 27.9007 -3 + vertex -6.055 36.2349 -3 + vertex -20.8096 27.6578 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -6.055 36.2349 -3 + vertex -22.4093 27.9007 -3 + vertex -5.8163 36.5812 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.3632 27.9554 -3 + vertex -5.8163 36.5812 -3 + vertex -22.4093 27.9007 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -30.666 27.4912 -3 + vertex -5.8163 36.5812 -3 + vertex -24.3632 27.9554 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -24.3225 27.6757 -3 + vertex -27.4214 26.3653 -3 + vertex -24.3632 27.9554 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -29.2879 26.9865 -3 + vertex -24.3632 27.9554 -3 + vertex -27.4214 26.3653 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -24.3632 27.9554 -3 + vertex -29.2879 26.9865 -3 + vertex -30.666 27.4912 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -31.2177 27.4629 -3 + vertex -5.8163 36.5812 -3 + vertex -30.666 27.4912 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -5.8163 36.5812 -3 + vertex -31.2177 27.4629 -3 + vertex -117.5 117.5 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -31.2773 24.779 -3 + vertex -34.2108 23.023 -3 + vertex -31.2912 27.2229 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -36.1697 23.9798 -3 + vertex -31.2912 27.2229 -3 + vertex -34.2108 23.023 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -37.7877 25.1404 -3 + vertex -31.2912 27.2229 -3 + vertex -36.1697 23.9798 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -31.2912 27.2229 -3 + vertex -37.7877 25.1404 -3 + vertex -31.2177 27.4629 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -38.5782 25.7376 -3 + vertex -31.2177 27.4629 -3 + vertex -37.7877 25.1404 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -39.0347 25.8392 -3 + vertex -31.2177 27.4629 -3 + vertex -38.5782 25.7376 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -31.2177 27.4629 -3 + vertex -39.0347 25.8392 -3 + vertex -117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -47.2102 -36.2359 -3 + vertex -39.9072 -25.4747 -3 + vertex -42.237 -30.9405 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -47.2102 -36.2359 -3 + vertex -42.237 -30.9405 -3 + vertex -43.2543 -33.2915 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -46.1801 -35.8499 -3 + vertex -43.2543 -33.2915 -3 + vertex -44.1198 -34.7306 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -46.1801 -35.8499 -3 + vertex -44.1198 -34.7306 -3 + vertex -45.0296 -35.5019 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -43.2543 -33.2915 -3 + vertex -46.1801 -35.8499 -3 + vertex -47.2102 -36.2359 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -37.5366 -12.7854 -3 + vertex -47.2102 -36.2359 -3 + vertex -47.8577 -36.863 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -37.5366 -12.7854 -3 + vertex -47.8577 -36.863 -3 + vertex -39.1303 25.4589 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -117.5 -117.5 -3 + vertex -47.8577 -36.863 -3 + vertex -47.9875 -37.5097 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -47.8577 -36.863 -3 + vertex -117.5 -117.5 -3 + vertex -117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -47.8577 -36.863 -3 + vertex -117.5 117.5 -3 + vertex -39.1303 25.4589 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 5.15152 38.5852 -3 + vertex -117.5 117.5 -3 + vertex 117.5 117.5 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -39.1303 25.4589 -3 + vertex -117.5 117.5 -3 + vertex -39.0347 25.8392 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 40.0289 -25.46 -3 + vertex 44.7368 -24.1643 -3 + vertex 38.2188 -29.6614 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 36.8272 -33.2656 -3 + vertex 37.9618 -36.3241 -3 + vertex 37.1913 -36.0604 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 37.9618 -36.3241 -3 + vertex 36.8272 -33.2656 -3 + vertex 38.2188 -29.6614 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 36.2918 -35.0946 -3 + vertex 37.1913 -36.0604 -3 + vertex 36.3972 -35.7834 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 37.1913 -36.0604 -3 + vertex 36.2918 -35.0946 -3 + vertex 36.8272 -33.2656 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 9.72145 16.1788 -3 + vertex 9.76373 17.1908 -3 + vertex 10.4258 16.5104 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 8.86535 15.8492 -3 + vertex 9.76373 17.1908 -3 + vertex 9.72145 16.1788 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 8.028 17.0592 -3 + vertex 9.76373 17.1908 -3 + vertex 8.86535 15.8492 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex 9.76373 17.1908 -3 + vertex 8.028 17.0592 -3 + vertex 8.30319 18.4459 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 7.15178 18.7442 -3 + vertex 8.30319 18.4459 -3 + vertex 8.028 17.0592 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 8.30319 18.4459 -3 + vertex 7.15178 18.7442 -3 + vertex 7.1994 19.1268 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -10.5829 24.4 -3 + vertex -11.2742 24.7069 -3 + vertex -10.6709 24.5009 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -14.1729 23.8467 -3 + vertex -11.2742 24.7069 -3 + vertex -10.5829 24.4 -3 + endloop + endfacet + facet normal -0 0 -1 + outer loop + vertex -11.2742 24.7069 -3 + vertex -14.1729 23.8467 -3 + vertex -13.9393 24.99 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -14.1729 23.8467 -3 + vertex -16.6107 24.7853 -3 + vertex -13.9393 24.99 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -19.3275 23.0662 -3 + vertex -16.6107 24.7853 -3 + vertex -14.1729 23.8467 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -19.3275 23.0662 -3 + vertex -20.4324 24.2101 -3 + vertex -16.6107 24.7853 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -21.5591 22.7309 -3 + vertex -20.4324 24.2101 -3 + vertex -19.3275 23.0662 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.0432 22.8497 -3 + vertex -20.4324 24.2101 -3 + vertex -21.5591 22.7309 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -22.6641 23.2546 -3 + vertex -20.4324 24.2101 -3 + vertex -22.0432 22.8497 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex -20.4324 24.2101 -3 + vertex -22.6641 23.2546 -3 + vertex -23.3809 23.8604 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 24.4233 -24.8188 -3 + vertex 27.3613 -24.0204 -3 + vertex 27.2283 -24.8188 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 26.0804 -21.8157 -3 + vertex 27.3613 -24.0204 -3 + vertex 24.4233 -24.8188 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.3668 -22.8574 -3 + vertex 26.0804 -21.8157 -3 + vertex 26.9354 -22.1189 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 27.3613 -24.0204 -3 + vertex 26.0804 -21.8157 -3 + vertex 27.3668 -22.8574 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 26.0804 -21.8157 -3 + vertex 24.4233 -24.8188 -3 + vertex 24.8153 -21.9586 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 24.4233 -24.8188 -3 + vertex 23.7526 -22.3987 -3 + vertex 24.8153 -21.9586 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 24.4233 -24.8188 -3 + vertex 22.6861 -23.3258 -3 + vertex 23.7526 -22.3987 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 22.6861 -23.3258 -3 + vertex 24.4233 -24.8188 -3 + vertex 21.6183 -24.6221 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 7.70773 -21.5983 -3 + vertex 10.169 -23.3758 -3 + vertex 10.0775 -24.2416 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 6.85097 -21.9079 -3 + vertex 10.0775 -24.2416 -3 + vertex 9.7411 -25.4359 -3 + endloop + endfacet + facet normal 0 -0 -1 + outer loop + vertex 8.49325 -21.5121 -3 + vertex 10.169 -23.3758 -3 + vertex 7.70773 -21.5983 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 10.169 -23.3758 -3 + vertex 8.49325 -21.5121 -3 + vertex 10.0454 -22.5812 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 10.0454 -22.5812 -3 + vertex 9.16984 -21.6481 -3 + vertex 9.69979 -22.0048 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 3.84714 -24.6213 -3 + vertex 9.7411 -25.4359 -3 + vertex 7.96204 -29.9101 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 10.0775 -24.2416 -3 + vertex 6.85097 -21.9079 -3 + vertex 7.70773 -21.5983 -3 + endloop + endfacet + facet normal -0 -0 -1 + outer loop + vertex 9.16984 -21.6481 -3 + vertex 10.0454 -22.5812 -3 + vertex 8.49325 -21.5121 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1.3456 -29.5107 -3 + vertex 7.96204 -29.9101 -3 + vertex 6.30534 -33.4759 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 9.7411 -25.4359 -3 + vertex 5.96068 -22.4422 -3 + vertex 6.85097 -21.9079 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 0.901133 -32.5034 -3 + vertex 6.30534 -33.4759 -3 + vertex 5.71313 -34.2297 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 9.7411 -25.4359 -3 + vertex 5.07455 -23.2024 -3 + vertex 5.96068 -22.4422 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 0.901133 -32.5034 -3 + vertex 5.71313 -34.2297 -3 + vertex 5.04571 -34.678 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 0.901133 -32.5034 -3 + vertex 5.04571 -34.678 -3 + vertex 4.11511 -35.011 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 9.7411 -25.4359 -3 + vertex 3.84714 -24.6213 -3 + vertex 5.07455 -23.2024 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 0.901133 -32.5034 -3 + vertex 4.11511 -35.011 -3 + vertex 3.17687 -35.0966 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 7.96204 -29.9101 -3 + vertex 2.80055 -26.1986 -3 + vertex 3.84714 -24.6213 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1.11766 -33.6813 -3 + vertex 3.17687 -35.0966 -3 + vertex 2.32628 -34.9386 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 7.96204 -29.9101 -3 + vertex 1.95873 -27.8549 -3 + vertex 2.80055 -26.1986 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 1.11766 -33.6813 -3 + vertex 2.32628 -34.9386 -3 + vertex 1.65861 -34.5411 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 7.96204 -29.9101 -3 + vertex 1.3456 -29.5107 -3 + vertex 1.95873 -27.8549 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 3.17687 -35.0966 -3 + vertex 1.11766 -33.6813 -3 + vertex 0.901133 -32.5034 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 6.30534 -33.4759 -3 + vertex 0.985088 -31.0867 -3 + vertex 1.3456 -29.5107 -3 + endloop + endfacet + facet normal 0 0 -1 + outer loop + vertex 6.30534 -33.4759 -3 + vertex 0.901133 -32.5034 -3 + vertex 0.985088 -31.0867 -3 + endloop + endfacet + facet normal -0.929682 -0.368364 0 + outer loop + vertex 19.6777 -11.13 -3 + vertex 19.5452 -10.7956 0 + vertex 19.5452 -10.7956 -3 + endloop + endfacet + facet normal -0.929682 -0.368364 0 + outer loop + vertex 19.5452 -10.7956 0 + vertex 19.6777 -11.13 -3 + vertex 19.6777 -11.13 0 + endloop + endfacet + facet normal -0.933646 0.358197 0 + outer loop + vertex 17.1521 -17.7131 -3 + vertex 19.6777 -11.13 0 + vertex 19.6777 -11.13 -3 + endloop + endfacet + facet normal -0.933646 0.358197 0 + outer loop + vertex 19.6777 -11.13 0 + vertex 17.1521 -17.7131 -3 + vertex 17.1521 -17.7131 0 endloop endfacet facet normal -0.922106 0.386938 0 outer loop - vertex 14.5952 -23.8342 -0.2 - vertex 17.1638 -17.7131 0 - vertex 17.1638 -17.7131 -0.2 + vertex 14.5835 -23.8342 -3 + vertex 17.1521 -17.7131 0 + vertex 17.1521 -17.7131 -3 endloop endfacet facet normal -0.922106 0.386938 0 outer loop - vertex 17.1638 -17.7131 0 - vertex 14.5952 -23.8342 -0.2 - vertex 14.5952 -23.8342 0 + vertex 17.1521 -17.7131 0 + vertex 14.5835 -23.8342 -3 + vertex 14.5835 -23.8342 0 endloop endfacet - facet normal -0.923985 0.382428 0 + facet normal -0.926605 0.376035 0 outer loop - vertex 12.8097 -28.1484 -0.2 - vertex 14.5952 -23.8342 0 - vertex 14.5952 -23.8342 -0.2 + vertex 11.4887 -31.4602 -3 + vertex 14.5835 -23.8342 0 + vertex 14.5835 -23.8342 -3 endloop endfacet - facet normal -0.923985 0.382428 0 + facet normal -0.926605 0.376035 0 outer loop - vertex 14.5952 -23.8342 0 - vertex 12.8097 -28.1484 -0.2 - vertex 12.8097 -28.1484 0 + vertex 14.5835 -23.8342 0 + vertex 11.4887 -31.4602 -3 + vertex 11.4887 -31.4602 0 endloop endfacet - facet normal -0.928075 0.372394 0 + facet normal -0.942271 0.334852 0 outer loop - vertex 12.0447 -30.0547 -0.2 - vertex 12.8097 -28.1484 0 - vertex 12.8097 -28.1484 -0.2 + vertex 10.915 -33.0747 -3 + vertex 11.4887 -31.4602 0 + vertex 11.4887 -31.4602 -3 endloop endfacet - facet normal -0.928075 0.372394 0 + facet normal -0.942271 0.334852 0 outer loop - vertex 12.8097 -28.1484 0 - vertex 12.0447 -30.0547 -0.2 - vertex 12.0447 -30.0547 0 + vertex 11.4887 -31.4602 0 + vertex 10.915 -33.0747 -3 + vertex 10.915 -33.0747 0 endloop endfacet - facet normal -0.932522 0.361114 0 + facet normal -0.976917 0.213621 0 outer loop - vertex 11.5005 -31.4602 -0.2 - vertex 12.0447 -30.0547 0 - vertex 12.0447 -30.0547 -0.2 + vertex 10.7197 -33.9677 -3 + vertex 10.915 -33.0747 0 + vertex 10.915 -33.0747 -3 endloop endfacet - facet normal -0.932522 0.361114 0 + facet normal -0.976917 0.213621 0 outer loop - vertex 12.0447 -30.0547 0 - vertex 11.5005 -31.4602 -0.2 - vertex 11.5005 -31.4602 0 + vertex 10.915 -33.0747 0 + vertex 10.7197 -33.9677 -3 + vertex 10.7197 -33.9677 0 endloop endfacet - facet normal -0.938737 0.344634 0 + facet normal -0.904266 -0.42697 0 outer loop - vertex 11.1661 -32.3709 -0.2 - vertex 11.5005 -31.4602 0 - vertex 11.5005 -31.4602 -0.2 + vertex 10.9006 -34.3507 -3 + vertex 10.7197 -33.9677 0 + vertex 10.7197 -33.9677 -3 endloop endfacet - facet normal -0.938737 0.344634 0 + facet normal -0.904266 -0.42697 0 outer loop - vertex 11.5005 -31.4602 0 - vertex 11.1661 -32.3709 -0.2 - vertex 11.1661 -32.3709 0 + vertex 10.7197 -33.9677 0 + vertex 10.9006 -34.3507 -3 + vertex 10.9006 -34.3507 0 endloop endfacet - facet normal -0.946728 0.322034 0 + facet normal -0.15089 -0.988551 0 outer loop - vertex 10.9267 -33.0747 -0.2 - vertex 11.1661 -32.3709 0 - vertex 11.1661 -32.3709 -0.2 + vertex 10.9006 -34.3507 -3 + vertex 11.4551 -34.4353 0 + vertex 10.9006 -34.3507 0 endloop endfacet - facet normal -0.946728 0.322034 0 + facet normal -0.15089 -0.988551 -0 outer loop - vertex 11.1661 -32.3709 0 - vertex 10.9267 -33.0747 -0.2 - vertex 10.9267 -33.0747 0 + vertex 11.4551 -34.4353 0 + vertex 10.9006 -34.3507 -3 + vertex 11.4551 -34.4353 -3 endloop endfacet - facet normal -0.963806 0.266603 0 + facet normal -0.233297 -0.972406 0 outer loop - vertex 10.7819 -33.5982 -0.2 - vertex 10.9267 -33.0747 0 - vertex 10.9267 -33.0747 -0.2 + vertex 11.4551 -34.4353 -3 + vertex 11.871 -34.5351 0 + vertex 11.4551 -34.4353 0 endloop endfacet - facet normal -0.963806 0.266603 0 + facet normal -0.233297 -0.972406 -0 outer loop - vertex 10.9267 -33.0747 0 - vertex 10.7819 -33.5982 -0.2 - vertex 10.7819 -33.5982 0 + vertex 11.871 -34.5351 0 + vertex 11.4551 -34.4353 -3 + vertex 11.871 -34.5351 -3 endloop endfacet - facet normal -0.983685 0.179901 0 + facet normal -0.702731 -0.711456 0 outer loop - vertex 10.7449 -33.8005 -0.2 - vertex 10.7819 -33.5982 0 - vertex 10.7819 -33.5982 -0.2 + vertex 11.871 -34.5351 -3 + vertex 12.1385 -34.7994 0 + vertex 11.871 -34.5351 0 endloop endfacet - facet normal -0.983685 0.179901 0 + facet normal -0.702731 -0.711456 -0 outer loop - vertex 10.7819 -33.5982 0 - vertex 10.7449 -33.8005 -0.2 - vertex 10.7449 -33.8005 0 + vertex 12.1385 -34.7994 0 + vertex 11.871 -34.5351 -3 + vertex 12.1385 -34.7994 -3 endloop endfacet - facet normal -0.996773 0.0802779 0 + facet normal -0.970405 -0.241485 0 outer loop - vertex 10.7315 -33.9677 -0.2 - vertex 10.7449 -33.8005 0 - vertex 10.7449 -33.8005 -0.2 + vertex 12.2351 -35.1874 -3 + vertex 12.1385 -34.7994 0 + vertex 12.1385 -34.7994 -3 endloop endfacet - facet normal -0.996773 0.0802779 0 + facet normal -0.970405 -0.241485 0 outer loop - vertex 10.7449 -33.8005 0 - vertex 10.7315 -33.9677 -0.2 - vertex 10.7315 -33.9677 0 + vertex 12.1385 -34.7994 0 + vertex 12.2351 -35.1874 -3 + vertex 12.2351 -35.1874 0 endloop endfacet - facet normal -0.997256 -0.0740364 0 + facet normal -0.979345 0.202199 0 outer loop - vertex 10.7415 -34.103 -0.2 - vertex 10.7315 -33.9677 0 - vertex 10.7315 -33.9677 -0.2 + vertex 12.1379 -35.6584 -3 + vertex 12.2351 -35.1874 0 + vertex 12.2351 -35.1874 -3 endloop endfacet - facet normal -0.997256 -0.0740364 0 + facet normal -0.979345 0.202199 0 outer loop - vertex 10.7315 -33.9677 0 - vertex 10.7415 -34.103 -0.2 - vertex 10.7415 -34.103 0 + vertex 12.2351 -35.1874 0 + vertex 12.1379 -35.6584 -3 + vertex 12.1379 -35.6584 0 endloop endfacet - facet normal -0.954067 -0.299593 0 + facet normal -0.791253 0.611489 0 outer loop - vertex 10.775 -34.2097 -0.2 - vertex 10.7415 -34.103 0 - vertex 10.7415 -34.103 -0.2 + vertex 11.7916 -36.1064 -3 + vertex 12.1379 -35.6584 0 + vertex 12.1379 -35.6584 -3 endloop endfacet - facet normal -0.954067 -0.299593 0 + facet normal -0.791253 0.611489 0 outer loop - vertex 10.7415 -34.103 0 - vertex 10.775 -34.2097 -0.2 - vertex 10.775 -34.2097 0 + vertex 12.1379 -35.6584 0 + vertex 11.7916 -36.1064 -3 + vertex 11.7916 -36.1064 0 endloop endfacet - facet normal -0.81961 -0.572921 0 + facet normal -0.605591 0.795776 0 outer loop - vertex 10.832 -34.2912 -0.2 - vertex 10.775 -34.2097 0 - vertex 10.775 -34.2097 -0.2 + vertex 11.7916 -36.1064 -3 + vertex 11.1962 -36.5595 0 + vertex 11.7916 -36.1064 0 endloop endfacet - facet normal -0.81961 -0.572921 0 + facet normal -0.605591 0.795776 0 outer loop - vertex 10.775 -34.2097 0 - vertex 10.832 -34.2912 -0.2 - vertex 10.832 -34.2912 0 + vertex 11.1962 -36.5595 0 + vertex 11.7916 -36.1064 -3 + vertex 11.1962 -36.5595 -3 endloop endfacet - facet normal -0.595252 -0.803539 0 + facet normal -0.461492 0.887144 0 outer loop - vertex 10.832 -34.2912 -0.2 - vertex 10.9123 -34.3507 0 - vertex 10.832 -34.2912 0 + vertex 11.1962 -36.5595 -3 + vertex 10.519 -36.9119 0 + vertex 11.1962 -36.5595 0 endloop endfacet - facet normal -0.595252 -0.803539 -0 + facet normal -0.461492 0.887144 0 outer loop - vertex 10.9123 -34.3507 0 - vertex 10.832 -34.2912 -0.2 - vertex 10.9123 -34.3507 -0.2 + vertex 10.519 -36.9119 0 + vertex 11.1962 -36.5595 -3 + vertex 10.519 -36.9119 -3 endloop endfacet - facet normal -0.366659 -0.930355 0 + facet normal -0.238946 0.971033 0 outer loop - vertex 10.9123 -34.3507 -0.2 - vertex 11.016 -34.3915 0 - vertex 10.9123 -34.3507 0 + vertex 10.519 -36.9119 -3 + vertex 9.92719 -37.0575 0 + vertex 10.519 -36.9119 0 endloop endfacet - facet normal -0.366659 -0.930355 -0 + facet normal -0.238946 0.971033 0 outer loop - vertex 11.016 -34.3915 0 - vertex 10.9123 -34.3507 -0.2 - vertex 11.016 -34.3915 -0.2 + vertex 9.92719 -37.0575 0 + vertex 10.519 -36.9119 -3 + vertex 9.92719 -37.0575 -3 endloop endfacet - facet normal -0.197016 -0.9804 0 + facet normal -0.276943 0.960886 0 outer loop - vertex 11.016 -34.3915 -0.2 - vertex 11.143 -34.4171 0 - vertex 11.016 -34.3915 0 + vertex 9.92719 -37.0575 -3 + vertex 8.47177 -37.477 0 + vertex 9.92719 -37.0575 0 endloop endfacet - facet normal -0.197016 -0.9804 -0 + facet normal -0.276943 0.960886 0 outer loop - vertex 11.143 -34.4171 0 - vertex 11.016 -34.3915 -0.2 - vertex 11.143 -34.4171 -0.2 + vertex 8.47177 -37.477 0 + vertex 9.92719 -37.0575 -3 + vertex 8.47177 -37.477 -3 endloop endfacet - facet normal -0.0562764 -0.998415 0 + facet normal -0.302213 0.95324 0 outer loop - vertex 11.143 -34.4171 -0.2 - vertex 11.4668 -34.4353 0 - vertex 11.143 -34.4171 0 + vertex 8.47177 -37.477 -3 + vertex 5.33583 -38.4712 0 + vertex 8.47177 -37.477 0 endloop endfacet - facet normal -0.0562764 -0.998415 -0 + facet normal -0.302213 0.95324 0 outer loop - vertex 11.4668 -34.4353 0 - vertex 11.143 -34.4171 -0.2 - vertex 11.4668 -34.4353 -0.2 + vertex 5.33583 -38.4712 0 + vertex 8.47177 -37.477 -3 + vertex 5.33583 -38.4712 -3 endloop endfacet - facet normal -0.118118 -0.993 0 + facet normal 0.267926 0.96344 -0 outer loop - vertex 11.4668 -34.4353 -0.2 - vertex 11.6919 -34.4621 0 - vertex 11.4668 -34.4353 0 + vertex 5.33583 -38.4712 -3 + vertex 4.84381 -38.3343 0 + vertex 5.33583 -38.4712 0 endloop endfacet - facet normal -0.118118 -0.993 -0 + facet normal 0.267926 0.96344 0 outer loop - vertex 11.6919 -34.4621 0 - vertex 11.4668 -34.4353 -0.2 - vertex 11.6919 -34.4621 -0.2 + vertex 4.84381 -38.3343 0 + vertex 5.33583 -38.4712 -3 + vertex 4.84381 -38.3343 -3 endloop endfacet - facet normal -0.357337 -0.933976 0 + facet normal 0.979739 0.200279 0 outer loop - vertex 11.6919 -34.4621 -0.2 - vertex 11.8827 -34.5351 0 - vertex 11.6919 -34.4621 0 + vertex 4.84381 -38.3343 0 + vertex 4.73542 -37.8041 -3 + vertex 4.73542 -37.8041 0 endloop endfacet - facet normal -0.357337 -0.933976 -0 + facet normal 0.979739 0.200279 0 outer loop - vertex 11.8827 -34.5351 0 - vertex 11.6919 -34.4621 -0.2 - vertex 11.8827 -34.5351 -0.2 + vertex 4.73542 -37.8041 -3 + vertex 4.84381 -38.3343 0 + vertex 4.84381 -38.3343 -3 endloop endfacet - facet normal -0.596054 -0.802944 0 + facet normal 0.985121 0.171864 0 outer loop - vertex 11.8827 -34.5351 -0.2 - vertex 12.0364 -34.6492 0 - vertex 11.8827 -34.5351 0 + vertex 4.73542 -37.8041 0 + vertex 4.64415 -37.2809 -3 + vertex 4.64415 -37.2809 0 endloop endfacet - facet normal -0.596054 -0.802944 -0 + facet normal 0.985121 0.171864 0 outer loop - vertex 12.0364 -34.6492 0 - vertex 11.8827 -34.5351 -0.2 - vertex 12.0364 -34.6492 -0.2 + vertex 4.64415 -37.2809 -3 + vertex 4.73542 -37.8041 0 + vertex 4.73542 -37.8041 -3 endloop endfacet - facet normal -0.796902 -0.604109 0 + facet normal -0.43 0.902829 0 outer loop - vertex 12.1503 -34.7994 -0.2 - vertex 12.0364 -34.6492 0 - vertex 12.0364 -34.6492 -0.2 + vertex 4.64415 -37.2809 -3 + vertex 3.43985 -37.8545 0 + vertex 4.64415 -37.2809 0 endloop endfacet - facet normal -0.796902 -0.604109 0 + facet normal -0.43 0.902829 0 outer loop - vertex 12.0364 -34.6492 0 - vertex 12.1503 -34.7994 -0.2 - vertex 12.1503 -34.7994 0 + vertex 3.43985 -37.8545 0 + vertex 4.64415 -37.2809 -3 + vertex 3.43985 -37.8545 -3 endloop endfacet - facet normal -0.930863 -0.365367 0 + facet normal -0.338512 0.940962 0 outer loop - vertex 12.2214 -34.9805 -0.2 - vertex 12.1503 -34.7994 0 - vertex 12.1503 -34.7994 -0.2 + vertex 3.43985 -37.8545 -3 + vertex 2.31266 -38.26 0 + vertex 3.43985 -37.8545 0 endloop endfacet - facet normal -0.930863 -0.365367 0 + facet normal -0.338512 0.940962 0 outer loop - vertex 12.1503 -34.7994 0 - vertex 12.2214 -34.9805 -0.2 - vertex 12.2214 -34.9805 0 + vertex 2.31266 -38.26 0 + vertex 3.43985 -37.8545 -3 + vertex 2.31266 -38.26 -3 endloop endfacet - facet normal -0.992505 -0.122206 0 + facet normal -0.172368 0.985033 0 outer loop - vertex 12.2468 -35.1875 -0.2 - vertex 12.2214 -34.9805 0 - vertex 12.2214 -34.9805 -0.2 + vertex 2.31266 -38.26 -3 + vertex 0.962702 -38.4962 0 + vertex 2.31266 -38.26 0 endloop endfacet - facet normal -0.992505 -0.122206 0 + facet normal -0.172368 0.985033 0 outer loop - vertex 12.2214 -34.9805 0 - vertex 12.2468 -35.1875 -0.2 - vertex 12.2468 -35.1875 0 + vertex 0.962702 -38.4962 0 + vertex 2.31266 -38.26 -3 + vertex 0.962702 -38.4962 -3 endloop endfacet - facet normal -0.994949 0.100386 0 + facet normal -0.0313759 0.999508 0 outer loop - vertex 12.2239 -35.4151 -0.2 - vertex 12.2468 -35.1875 0 - vertex 12.2468 -35.1875 -0.2 + vertex 0.962702 -38.4962 -3 + vertex -0.366978 -38.538 0 + vertex 0.962702 -38.4962 0 endloop endfacet - facet normal -0.994949 0.100386 0 + facet normal -0.0313759 0.999508 0 outer loop - vertex 12.2468 -35.1875 0 - vertex 12.2239 -35.4151 -0.2 - vertex 12.2239 -35.4151 0 + vertex -0.366978 -38.538 0 + vertex 0.962702 -38.4962 -3 + vertex -0.366978 -38.538 -3 endloop endfacet - facet normal -0.956433 0.291953 0 + facet normal 0.16461 0.986359 -0 outer loop - vertex 12.1496 -35.6584 -0.2 - vertex 12.2239 -35.4151 0 - vertex 12.2239 -35.4151 -0.2 + vertex -0.366978 -38.538 -3 + vertex -1.43333 -38.36 0 + vertex -0.366978 -38.538 0 endloop endfacet - facet normal -0.956433 0.291953 0 + facet normal 0.16461 0.986359 0 outer loop - vertex 12.2239 -35.4151 0 - vertex 12.1496 -35.6584 -0.2 - vertex 12.1496 -35.6584 0 + vertex -1.43333 -38.36 0 + vertex -0.366978 -38.538 -3 + vertex -1.43333 -38.36 -3 endloop endfacet - facet normal -0.890412 0.455156 0 + facet normal 0.535641 0.844446 -0 outer loop - vertex 12.0956 -35.7642 -0.2 - vertex 12.1496 -35.6584 0 - vertex 12.1496 -35.6584 -0.2 + vertex -1.43333 -38.36 -3 + vertex -2.45619 -37.7112 0 + vertex -1.43333 -38.36 0 endloop endfacet - facet normal -0.890412 0.455156 0 + facet normal 0.535641 0.844446 0 outer loop - vertex 12.1496 -35.6584 0 - vertex 12.0956 -35.7642 -0.2 - vertex 12.0956 -35.7642 0 + vertex -2.45619 -37.7112 0 + vertex -1.43333 -38.36 -3 + vertex -2.45619 -37.7112 -3 endloop endfacet - facet normal -0.820093 0.572231 0 + facet normal 0.80363 0.595129 0 outer loop - vertex 12.0181 -35.8752 -0.2 - vertex 12.0956 -35.7642 0 - vertex 12.0956 -35.7642 -0.2 + vertex -2.45619 -37.7112 0 + vertex -3.26834 -36.6145 -3 + vertex -3.26834 -36.6145 0 endloop endfacet - facet normal -0.820093 0.572231 0 + facet normal 0.80363 0.595129 0 outer loop - vertex 12.0956 -35.7642 0 - vertex 12.0181 -35.8752 -0.2 - vertex 12.0181 -35.8752 0 + vertex -3.26834 -36.6145 -3 + vertex -2.45619 -37.7112 0 + vertex -2.45619 -37.7112 -3 endloop endfacet - facet normal -0.732832 0.680409 0 + facet normal 0.935783 0.352578 0 outer loop - vertex 11.8034 -36.1064 -0.2 - vertex 12.0181 -35.8752 0 - vertex 12.0181 -35.8752 -0.2 + vertex -3.26834 -36.6145 0 + vertex -3.80393 -35.193 -3 + vertex -3.80393 -35.193 0 endloop endfacet - facet normal -0.732832 0.680409 0 + facet normal 0.935783 0.352578 0 outer loop - vertex 12.0181 -35.8752 0 - vertex 11.8034 -36.1064 -0.2 - vertex 11.8034 -36.1064 0 + vertex -3.80393 -35.193 -3 + vertex -3.26834 -36.6145 0 + vertex -3.26834 -36.6145 -3 endloop endfacet - facet normal -0.642938 0.765918 0 + facet normal 0.992994 0.118162 0 outer loop - vertex 11.8034 -36.1064 -0.2 - vertex 11.5264 -36.339 0 - vertex 11.8034 -36.1064 0 + vertex -3.80393 -35.193 0 + vertex -3.99709 -33.5697 -3 + vertex -3.99709 -33.5697 0 endloop endfacet - facet normal -0.642938 0.765918 0 + facet normal 0.992994 0.118162 0 outer loop - vertex 11.5264 -36.339 0 - vertex 11.8034 -36.1064 -0.2 - vertex 11.5264 -36.339 -0.2 + vertex -3.99709 -33.5697 -3 + vertex -3.80393 -35.193 0 + vertex -3.80393 -35.193 -3 endloop endfacet - facet normal -0.569468 0.822014 0 + facet normal 0.988913 -0.148494 0 outer loop - vertex 11.5264 -36.339 -0.2 - vertex 11.208 -36.5595 0 - vertex 11.5264 -36.339 0 + vertex -3.99709 -33.5697 0 + vertex -3.7659 -32.0301 -3 + vertex -3.7659 -32.0301 0 endloop endfacet - facet normal -0.569468 0.822014 0 + facet normal 0.988913 -0.148494 0 outer loop - vertex 11.208 -36.5595 0 - vertex 11.5264 -36.339 -0.2 - vertex 11.208 -36.5595 -0.2 + vertex -3.7659 -32.0301 -3 + vertex -3.99709 -33.5697 0 + vertex -3.99709 -33.5697 -3 endloop endfacet - facet normal -0.499497 0.866315 0 + facet normal 0.953123 -0.302584 0 outer loop - vertex 11.208 -36.5595 -0.2 - vertex 10.8691 -36.7549 0 - vertex 11.208 -36.5595 0 + vertex -3.7659 -32.0301 0 + vertex -3.14673 -30.0798 -3 + vertex -3.14673 -30.0798 0 endloop endfacet - facet normal -0.499497 0.866315 0 + facet normal 0.953123 -0.302584 0 outer loop - vertex 10.8691 -36.7549 0 - vertex 11.208 -36.5595 -0.2 - vertex 10.8691 -36.7549 -0.2 + vertex -3.14673 -30.0798 -3 + vertex -3.7659 -32.0301 0 + vertex -3.7659 -32.0301 -3 endloop endfacet - facet normal -0.420709 0.907196 0 + facet normal 0.917453 -0.397844 0 outer loop - vertex 10.8691 -36.7549 -0.2 - vertex 10.5307 -36.9119 0 - vertex 10.8691 -36.7549 0 + vertex -3.14673 -30.0798 0 + vertex -2.25121 -28.0146 -3 + vertex -2.25121 -28.0146 0 endloop endfacet - facet normal -0.420709 0.907196 0 + facet normal 0.917453 -0.397844 0 outer loop - vertex 10.5307 -36.9119 0 - vertex 10.8691 -36.7549 -0.2 - vertex 10.5307 -36.9119 -0.2 + vertex -2.25121 -28.0146 -3 + vertex -3.14673 -30.0798 0 + vertex -3.14673 -30.0798 -3 endloop endfacet - facet normal -0.315116 0.949053 0 + facet normal 0.871478 -0.490435 0 outer loop - vertex 10.5307 -36.9119 -0.2 - vertex 10.2137 -37.0171 0 - vertex 10.5307 -36.9119 0 + vertex -2.25121 -28.0146 0 + vertex -1.19093 -26.1306 -3 + vertex -1.19093 -26.1306 0 endloop endfacet - facet normal -0.315116 0.949053 0 + facet normal 0.871478 -0.490435 0 outer loop - vertex 10.2137 -37.0171 0 - vertex 10.5307 -36.9119 -0.2 - vertex 10.2137 -37.0171 -0.2 + vertex -1.19093 -26.1306 -3 + vertex -2.25121 -28.0146 0 + vertex -2.25121 -28.0146 -3 endloop endfacet - facet normal -0.145343 0.989381 0 + facet normal 0.794031 -0.607877 0 outer loop - vertex 10.2137 -37.0171 -0.2 - vertex 9.93892 -37.0575 0 - vertex 10.2137 -37.0171 0 + vertex -1.19093 -26.1306 0 + vertex 0.168338 -24.355 -3 + vertex 0.168338 -24.355 0 endloop endfacet - facet normal -0.145343 0.989381 0 + facet normal 0.794031 -0.607877 0 outer loop - vertex 9.93892 -37.0575 0 - vertex 10.2137 -37.0171 -0.2 - vertex 9.93892 -37.0575 -0.2 + vertex 0.168338 -24.355 -3 + vertex -1.19093 -26.1306 0 + vertex -1.19093 -26.1306 -3 endloop endfacet - facet normal -0.15554 0.98783 0 + facet normal 0.710709 -0.703486 0 outer loop - vertex 9.93892 -37.0575 -0.2 - vertex 9.71926 -37.0921 0 - vertex 9.93892 -37.0575 0 + vertex 0.168338 -24.355 0 + vertex 1.84511 -22.661 -3 + vertex 1.84511 -22.661 0 endloop endfacet - facet normal -0.15554 0.98783 0 + facet normal 0.710709 -0.703486 0 outer loop - vertex 9.71926 -37.0921 0 - vertex 9.93892 -37.0575 -0.2 - vertex 9.71926 -37.0921 -0.2 + vertex 1.84511 -22.661 -3 + vertex 0.168338 -24.355 0 + vertex 0.168338 -24.355 -3 endloop endfacet - facet normal -0.252236 0.967666 0 + facet normal 0.626061 -0.779774 0 outer loop - vertex 9.71926 -37.0921 -0.2 - vertex 9.37163 -37.1827 0 - vertex 9.71926 -37.0921 0 + vertex 1.84511 -22.661 -3 + vertex 3.72385 -21.1527 0 + vertex 1.84511 -22.661 0 endloop endfacet - facet normal -0.252236 0.967666 0 + facet normal 0.626061 -0.779774 0 outer loop - vertex 9.37163 -37.1827 0 - vertex 9.71926 -37.0921 -0.2 - vertex 9.37163 -37.1827 -0.2 + vertex 3.72385 -21.1527 0 + vertex 1.84511 -22.661 -3 + vertex 3.72385 -21.1527 -3 endloop endfacet - facet normal -0.296619 0.954996 0 + facet normal 0.527042 -0.849839 0 outer loop - vertex 9.37163 -37.1827 -0.2 - vertex 8.94379 -37.3156 0 - vertex 9.37163 -37.1827 0 + vertex 3.72385 -21.1527 -3 + vertex 5.689 -19.9339 0 + vertex 3.72385 -21.1527 0 endloop endfacet - facet normal -0.296619 0.954996 0 + facet normal 0.527042 -0.849839 0 outer loop - vertex 8.94379 -37.3156 0 - vertex 9.37163 -37.1827 -0.2 - vertex 8.94379 -37.3156 -0.2 + vertex 5.689 -19.9339 0 + vertex 3.72385 -21.1527 -3 + vertex 5.689 -19.9339 -3 endloop endfacet - facet normal -0.330869 0.943677 0 + facet normal 0.380142 -0.924928 0 outer loop - vertex 8.94379 -37.3156 -0.2 - vertex 8.4835 -37.477 0 - vertex 8.94379 -37.3156 0 + vertex 5.689 -19.9339 -3 + vertex 7.06268 -19.3694 0 + vertex 5.689 -19.9339 0 endloop endfacet - facet normal -0.330869 0.943677 0 + facet normal 0.380142 -0.924928 0 outer loop - vertex 8.4835 -37.477 0 - vertex 8.94379 -37.3156 -0.2 - vertex 8.4835 -37.477 -0.2 + vertex 7.06268 -19.3694 0 + vertex 5.689 -19.9339 -3 + vertex 7.06268 -19.3694 -3 endloop endfacet - facet normal -0.343608 0.939113 0 + facet normal 0.11624 -0.993221 0 outer loop - vertex 8.4835 -37.477 -0.2 - vertex 7.35232 -37.8908 0 - vertex 8.4835 -37.477 0 + vertex 7.06268 -19.3694 -3 + vertex 8.75581 -19.1712 0 + vertex 7.06268 -19.3694 0 endloop endfacet - facet normal -0.343608 0.939113 0 + facet normal 0.11624 -0.993221 0 outer loop - vertex 7.35232 -37.8908 0 - vertex 8.4835 -37.477 -0.2 - vertex 7.35232 -37.8908 -0.2 + vertex 8.75581 -19.1712 0 + vertex 7.06268 -19.3694 -3 + vertex 8.75581 -19.1712 -3 endloop endfacet - facet normal -0.324819 0.945776 0 + facet normal -0.00391511 -0.999992 0 outer loop - vertex 7.35232 -37.8908 -0.2 - vertex 6.47346 -38.1927 0 - vertex 7.35232 -37.8908 0 + vertex 8.75581 -19.1712 -3 + vertex 10.3474 -19.1774 0 + vertex 8.75581 -19.1712 0 endloop endfacet - facet normal -0.324819 0.945776 0 + facet normal -0.00391511 -0.999992 -0 outer loop - vertex 6.47346 -38.1927 0 - vertex 7.35232 -37.8908 -0.2 - vertex 6.47346 -38.1927 -0.2 + vertex 10.3474 -19.1774 0 + vertex 8.75581 -19.1712 -3 + vertex 10.3474 -19.1774 -3 endloop endfacet - facet normal -0.280895 0.959739 0 + facet normal -0.375648 -0.926763 0 outer loop - vertex 6.47346 -38.1927 -0.2 - vertex 5.81563 -38.3852 0 - vertex 6.47346 -38.1927 0 + vertex 10.3474 -19.1774 -3 + vertex 11.2177 -19.5302 0 + vertex 10.3474 -19.1774 0 endloop endfacet - facet normal -0.280895 0.959739 0 + facet normal -0.375648 -0.926763 -0 outer loop - vertex 5.81563 -38.3852 0 - vertex 6.47346 -38.1927 -0.2 - vertex 5.81563 -38.3852 -0.2 + vertex 11.2177 -19.5302 0 + vertex 10.3474 -19.1774 -3 + vertex 11.2177 -19.5302 -3 endloop endfacet - facet normal -0.214328 0.976762 0 + facet normal -0.460444 -0.887689 0 outer loop - vertex 5.81563 -38.3852 -0.2 - vertex 5.55983 -38.4413 0 - vertex 5.81563 -38.3852 0 + vertex 11.2177 -19.5302 -3 + vertex 11.7785 -19.8211 0 + vertex 11.2177 -19.5302 0 endloop endfacet - facet normal -0.214328 0.976762 0 + facet normal -0.460444 -0.887689 -0 outer loop - vertex 5.55983 -38.4413 0 - vertex 5.81563 -38.3852 -0.2 - vertex 5.55983 -38.4413 -0.2 + vertex 11.7785 -19.8211 0 + vertex 11.2177 -19.5302 -3 + vertex 11.7785 -19.8211 -3 endloop endfacet - facet normal -0.139165 0.990269 0 + facet normal 0.340288 -0.940321 0 outer loop - vertex 5.55983 -38.4413 -0.2 - vertex 5.34756 -38.4712 0 - vertex 5.55983 -38.4413 0 + vertex 11.7785 -19.8211 -3 + vertex 12.058 -19.7199 0 + vertex 11.7785 -19.8211 0 endloop endfacet - facet normal -0.139165 0.990269 0 + facet normal 0.340288 -0.940321 0 outer loop - vertex 5.34756 -38.4712 0 - vertex 5.55983 -38.4413 -0.2 - vertex 5.34756 -38.4712 -0.2 + vertex 12.058 -19.7199 0 + vertex 11.7785 -19.8211 -3 + vertex 12.058 -19.7199 -3 endloop endfacet - facet normal -0.0224422 0.999748 0 + facet normal 0.919444 -0.393221 0 outer loop - vertex 5.34756 -38.4712 -0.2 - vertex 5.17491 -38.475 0 - vertex 5.34756 -38.4712 0 + vertex 12.058 -19.7199 0 + vertex 13.2867 -16.8469 -3 + vertex 13.2867 -16.8469 0 endloop endfacet - facet normal -0.0224422 0.999748 0 + facet normal 0.919444 -0.393221 0 outer loop - vertex 5.17491 -38.475 0 - vertex 5.34756 -38.4712 -0.2 - vertex 5.17491 -38.475 -0.2 + vertex 13.2867 -16.8469 -3 + vertex 12.058 -19.7199 0 + vertex 12.058 -19.7199 -3 endloop endfacet - facet normal 0.156812 0.987628 -0 + facet normal 0.948333 -0.317278 0 outer loop - vertex 5.17491 -38.475 -0.2 - vertex 5.03796 -38.4533 0 - vertex 5.17491 -38.475 0 + vertex 13.2867 -16.8469 0 + vertex 14.1246 -14.3424 -3 + vertex 14.1246 -14.3424 0 endloop endfacet - facet normal 0.156812 0.987628 0 + facet normal 0.948333 -0.317278 0 outer loop - vertex 5.03796 -38.4533 0 - vertex 5.17491 -38.475 -0.2 - vertex 5.03796 -38.4533 -0.2 + vertex 14.1246 -14.3424 -3 + vertex 13.2867 -16.8469 0 + vertex 13.2867 -16.8469 -3 endloop endfacet - facet normal 0.408161 0.91291 -0 + facet normal 0.170025 0.98544 -0 outer loop - vertex 5.03796 -38.4533 -0.2 - vertex 4.93281 -38.4063 0 - vertex 5.03796 -38.4533 0 + vertex 14.1246 -14.3424 -3 + vertex 12.858 -14.1239 0 + vertex 14.1246 -14.3424 0 endloop endfacet - facet normal 0.408161 0.91291 0 + facet normal 0.170025 0.98544 0 outer loop - vertex 4.93281 -38.4063 0 - vertex 5.03796 -38.4533 -0.2 - vertex 4.93281 -38.4063 -0.2 + vertex 12.858 -14.1239 0 + vertex 14.1246 -14.3424 -3 + vertex 12.858 -14.1239 -3 endloop endfacet - facet normal 0.681473 0.731843 -0 + facet normal 0.649749 0.760149 -0 outer loop - vertex 4.93281 -38.4063 -0.2 - vertex 4.85555 -38.3343 0 - vertex 4.93281 -38.4063 0 + vertex 12.858 -14.1239 -3 + vertex 12.417 -13.7469 0 + vertex 12.858 -14.1239 0 endloop endfacet - facet normal 0.681473 0.731843 0 + facet normal 0.649749 0.760149 0 outer loop - vertex 4.85555 -38.3343 0 - vertex 4.93281 -38.4063 -0.2 - vertex 4.85555 -38.3343 -0.2 + vertex 12.417 -13.7469 0 + vertex 12.858 -14.1239 -3 + vertex 12.417 -13.7469 -3 endloop endfacet - facet normal 0.875472 0.48327 0 + facet normal 0.999788 0.0206018 0 outer loop - vertex 4.85555 -38.3343 0 - vertex 4.80226 -38.2378 -0.2 - vertex 4.80226 -38.2378 0 + vertex 12.417 -13.7469 0 + vertex 12.4073 -13.2773 -3 + vertex 12.4073 -13.2773 0 endloop endfacet - facet normal 0.875472 0.48327 0 + facet normal 0.999788 0.0206018 0 outer loop - vertex 4.80226 -38.2378 -0.2 - vertex 4.85555 -38.3343 0 - vertex 4.85555 -38.3343 -0.2 + vertex 12.4073 -13.2773 -3 + vertex 12.417 -13.7469 0 + vertex 12.417 -13.7469 -3 endloop endfacet - facet normal 0.964192 0.265205 0 + facet normal 0.884204 -0.467101 0 outer loop - vertex 4.80226 -38.2378 0 - vertex 4.76904 -38.117 -0.2 - vertex 4.76904 -38.117 0 + vertex 12.4073 -13.2773 0 + vertex 12.6527 -12.8127 -3 + vertex 12.6527 -12.8127 0 endloop endfacet - facet normal 0.964192 0.265205 0 + facet normal 0.884204 -0.467101 0 outer loop - vertex 4.76904 -38.117 -0.2 - vertex 4.80226 -38.2378 0 - vertex 4.80226 -38.2378 -0.2 + vertex 12.6527 -12.8127 -3 + vertex 12.4073 -13.2773 0 + vertex 12.4073 -13.2773 -3 endloop endfacet - facet normal 0.997564 0.069762 0 + facet normal 0.661795 -0.749685 0 outer loop - vertex 4.76904 -38.117 0 - vertex 4.74716 -37.8041 -0.2 - vertex 4.74716 -37.8041 0 + vertex 12.6527 -12.8127 -3 + vertex 13.1035 -12.4147 0 + vertex 12.6527 -12.8127 0 endloop endfacet - facet normal 0.997564 0.069762 0 + facet normal 0.661795 -0.749685 0 outer loop - vertex 4.74716 -37.8041 -0.2 - vertex 4.76904 -38.117 0 - vertex 4.76904 -38.117 -0.2 + vertex 13.1035 -12.4147 0 + vertex 12.6527 -12.8127 -3 + vertex 13.1035 -12.4147 -3 endloop endfacet - facet normal 0.997378 0.0723715 0 + facet normal 0.406349 -0.913718 0 outer loop - vertex 4.74716 -37.8041 0 - vertex 4.72035 -37.4346 -0.2 - vertex 4.72035 -37.4346 0 + vertex 13.1035 -12.4147 -3 + vertex 13.71 -12.1451 0 + vertex 13.1035 -12.4147 0 endloop endfacet - facet normal 0.997378 0.0723715 0 + facet normal 0.406349 -0.913718 0 outer loop - vertex 4.72035 -37.4346 -0.2 - vertex 4.74716 -37.8041 0 - vertex 4.74716 -37.8041 -0.2 + vertex 13.71 -12.1451 0 + vertex 13.1035 -12.4147 -3 + vertex 13.71 -12.1451 -3 endloop endfacet - facet normal 0.968245 0.250005 0 + facet normal 0.283559 -0.958955 0 outer loop - vertex 4.72035 -37.4346 0 - vertex 4.69132 -37.3222 -0.2 - vertex 4.69132 -37.3222 0 + vertex 13.71 -12.1451 -3 + vertex 16.7993 -11.2316 0 + vertex 13.71 -12.1451 0 endloop endfacet - facet normal 0.968245 0.250005 0 + facet normal 0.283559 -0.958955 0 outer loop - vertex 4.69132 -37.3222 -0.2 - vertex 4.72035 -37.4346 0 - vertex 4.72035 -37.4346 -0.2 + vertex 16.7993 -11.2316 0 + vertex 13.71 -12.1451 -3 + vertex 16.7993 -11.2316 -3 endloop endfacet - facet normal 0.758745 0.651387 0 + facet normal 0.227026 -0.973889 0 outer loop - vertex 4.69132 -37.3222 0 - vertex 4.65588 -37.2809 -0.2 - vertex 4.65588 -37.2809 0 + vertex 16.7993 -11.2316 -3 + vertex 19.0845 -10.6988 0 + vertex 16.7993 -11.2316 0 endloop endfacet - facet normal 0.758745 0.651387 0 + facet normal 0.227026 -0.973889 0 outer loop - vertex 4.65588 -37.2809 -0.2 - vertex 4.69132 -37.3222 0 - vertex 4.69132 -37.3222 -0.2 + vertex 19.0845 -10.6988 0 + vertex 16.7993 -11.2316 -3 + vertex 19.0845 -10.6988 -3 endloop endfacet - facet normal -0.395389 0.918514 0 + facet normal -0.20555 -0.978647 0 outer loop - vertex 4.65588 -37.2809 -0.2 - vertex 4.26446 -37.4494 0 - vertex 4.65588 -37.2809 0 + vertex 19.0845 -10.6988 -3 + vertex 19.5452 -10.7956 0 + vertex 19.0845 -10.6988 0 endloop endfacet - facet normal -0.395389 0.918514 0 + facet normal -0.20555 -0.978647 -0 outer loop - vertex 4.26446 -37.4494 0 - vertex 4.65588 -37.2809 -0.2 - vertex 4.26446 -37.4494 -0.2 + vertex 19.5452 -10.7956 0 + vertex 19.0845 -10.6988 -3 + vertex 19.5452 -10.7956 -3 endloop endfacet - facet normal -0.446029 0.895018 0 + facet normal -0.339851 0.940479 0 outer loop - vertex 4.26446 -37.4494 -0.2 - vertex 3.45158 -37.8545 0 - vertex 4.26446 -37.4494 0 + vertex 7.70773 -21.5983 -3 + vertex 6.85097 -21.9079 0 + vertex 7.70773 -21.5983 0 endloop endfacet - facet normal -0.446029 0.895018 0 + facet normal -0.339851 0.940479 0 outer loop - vertex 3.45158 -37.8545 0 - vertex 4.26446 -37.4494 -0.2 - vertex 3.45158 -37.8545 -0.2 + vertex 6.85097 -21.9079 0 + vertex 7.70773 -21.5983 -3 + vertex 6.85097 -21.9079 -3 endloop endfacet - facet normal -0.42381 0.905751 0 + facet normal -0.514575 0.857445 0 outer loop - vertex 3.45158 -37.8545 -0.2 - vertex 3.20396 -37.9704 0 - vertex 3.45158 -37.8545 0 + vertex 6.85097 -21.9079 -3 + vertex 5.96068 -22.4422 0 + vertex 6.85097 -21.9079 0 endloop endfacet - facet normal -0.42381 0.905751 0 + facet normal -0.514575 0.857445 0 outer loop - vertex 3.20396 -37.9704 0 - vertex 3.45158 -37.8545 -0.2 - vertex 3.20396 -37.9704 -0.2 + vertex 5.96068 -22.4422 0 + vertex 6.85097 -21.9079 -3 + vertex 5.96068 -22.4422 -3 endloop endfacet - facet normal -0.363414 0.931628 0 + facet normal -0.651148 0.758951 0 outer loop - vertex 3.20396 -37.9704 -0.2 - vertex 2.93102 -38.0768 0 - vertex 3.20396 -37.9704 0 + vertex 5.96068 -22.4422 -3 + vertex 5.07455 -23.2024 0 + vertex 5.96068 -22.4422 0 endloop endfacet - facet normal -0.363414 0.931628 0 + facet normal -0.651148 0.758951 0 outer loop - vertex 2.93102 -38.0768 0 - vertex 3.20396 -37.9704 -0.2 - vertex 2.93102 -38.0768 -0.2 + vertex 5.07455 -23.2024 0 + vertex 5.96068 -22.4422 -3 + vertex 5.07455 -23.2024 -3 endloop endfacet - facet normal -0.289057 0.957312 0 + facet normal -0.756285 0.654243 0 outer loop - vertex 2.93102 -38.0768 -0.2 - vertex 2.32439 -38.26 0 - vertex 2.93102 -38.0768 0 + vertex 3.84714 -24.6213 -3 + vertex 5.07455 -23.2024 0 + vertex 5.07455 -23.2024 -3 endloop endfacet - facet normal -0.289057 0.957312 0 + facet normal -0.756285 0.654243 0 outer loop - vertex 2.32439 -38.26 0 - vertex 2.93102 -38.0768 -0.2 - vertex 2.32439 -38.26 -0.2 + vertex 5.07455 -23.2024 0 + vertex 3.84714 -24.6213 -3 + vertex 3.84714 -24.6213 0 endloop endfacet - facet normal -0.208009 0.978127 0 + facet normal -0.833253 0.552891 0 outer loop - vertex 2.32439 -38.26 -0.2 - vertex 1.66207 -38.4009 0 - vertex 2.32439 -38.26 0 + vertex 2.80055 -26.1986 -3 + vertex 3.84714 -24.6213 0 + vertex 3.84714 -24.6213 -3 endloop endfacet - facet normal -0.208009 0.978127 0 + facet normal -0.833253 0.552891 0 outer loop - vertex 1.66207 -38.4009 0 - vertex 2.32439 -38.26 -0.2 - vertex 1.66207 -38.4009 -0.2 + vertex 3.84714 -24.6213 0 + vertex 2.80055 -26.1986 -3 + vertex 2.80055 -26.1986 0 endloop endfacet - facet normal -0.13739 0.990517 0 + facet normal -0.891463 0.453094 0 outer loop - vertex 1.66207 -38.4009 -0.2 - vertex 0.974434 -38.4962 0 - vertex 1.66207 -38.4009 0 + vertex 1.95873 -27.8549 -3 + vertex 2.80055 -26.1986 0 + vertex 2.80055 -26.1986 -3 endloop endfacet - facet normal -0.13739 0.990517 0 + facet normal -0.891463 0.453094 0 outer loop - vertex 0.974434 -38.4962 0 - vertex 1.66207 -38.4009 -0.2 - vertex 0.974434 -38.4962 -0.2 + vertex 2.80055 -26.1986 0 + vertex 1.95873 -27.8549 -3 + vertex 1.95873 -27.8549 0 endloop endfacet - facet normal -0.0683412 0.997662 0 + facet normal -0.937776 0.347241 0 outer loop - vertex 0.974434 -38.4962 -0.2 - vertex 0.291868 -38.543 0 - vertex 0.974434 -38.4962 0 + vertex 1.3456 -29.5107 -3 + vertex 1.95873 -27.8549 0 + vertex 1.95873 -27.8549 -3 endloop endfacet - facet normal -0.0683412 0.997662 0 + facet normal -0.937776 0.347241 0 outer loop - vertex 0.291868 -38.543 0 - vertex 0.974434 -38.4962 -0.2 - vertex 0.291868 -38.543 -0.2 + vertex 1.95873 -27.8549 0 + vertex 1.3456 -29.5107 -3 + vertex 1.3456 -29.5107 0 endloop endfacet - facet normal 0.00775161 0.99997 -0 + facet normal -0.97482 0.222992 0 outer loop - vertex 0.291868 -38.543 -0.2 - vertex -0.355246 -38.538 0 - vertex 0.291868 -38.543 0 + vertex 0.985088 -31.0867 -3 + vertex 1.3456 -29.5107 0 + vertex 1.3456 -29.5107 -3 endloop endfacet - facet normal 0.00775161 0.99997 0 + facet normal -0.97482 0.222992 0 outer loop - vertex -0.355246 -38.538 0 - vertex 0.291868 -38.543 -0.2 - vertex -0.355246 -38.538 -0.2 + vertex 1.3456 -29.5107 0 + vertex 0.985088 -31.0867 -3 + vertex 0.985088 -31.0867 0 endloop endfacet - facet normal 0.10258 0.994725 -0 + facet normal -0.998249 0.0591584 0 outer loop - vertex -0.355246 -38.538 -0.2 - vertex -0.936529 -38.478 0 - vertex -0.355246 -38.538 0 + vertex 0.901133 -32.5034 -3 + vertex 0.985088 -31.0867 0 + vertex 0.985088 -31.0867 -3 endloop endfacet - facet normal 0.10258 0.994725 0 + facet normal -0.998249 0.0591584 0 outer loop - vertex -0.936529 -38.478 0 - vertex -0.355246 -38.538 -0.2 - vertex -0.936529 -38.478 -0.2 + vertex 0.985088 -31.0867 0 + vertex 0.901133 -32.5034 -3 + vertex 0.901133 -32.5034 0 endloop endfacet - facet normal 0.197071 0.980389 -0 + facet normal -0.983521 -0.180795 0 outer loop - vertex -0.936529 -38.478 -0.2 - vertex -1.19299 -38.4265 0 - vertex -0.936529 -38.478 0 + vertex 1.11766 -33.6813 -3 + vertex 0.901133 -32.5034 0 + vertex 0.901133 -32.5034 -3 endloop endfacet - facet normal 0.197071 0.980389 0 + facet normal -0.983521 -0.180795 0 outer loop - vertex -1.19299 -38.4265 0 - vertex -0.936529 -38.478 -0.2 - vertex -1.19299 -38.4265 -0.2 + vertex 0.901133 -32.5034 0 + vertex 1.11766 -33.6813 -3 + vertex 1.11766 -33.6813 0 endloop endfacet - facet normal 0.279186 0.960237 -0 + facet normal -0.846397 -0.532553 0 outer loop - vertex -1.19299 -38.4265 -0.2 - vertex -1.4216 -38.36 0 - vertex -1.19299 -38.4265 0 + vertex 1.65861 -34.5411 -3 + vertex 1.11766 -33.6813 0 + vertex 1.11766 -33.6813 -3 endloop endfacet - facet normal 0.279186 0.960237 0 + facet normal -0.846397 -0.532553 0 outer loop - vertex -1.4216 -38.36 0 - vertex -1.19299 -38.4265 -0.2 - vertex -1.4216 -38.36 -0.2 + vertex 1.11766 -33.6813 0 + vertex 1.65861 -34.5411 -3 + vertex 1.65861 -34.5411 0 endloop endfacet - facet normal 0.385209 0.92283 -0 + facet normal -0.511641 -0.859199 0 outer loop - vertex -1.4216 -38.36 -0.2 - vertex -1.69347 -38.2465 0 - vertex -1.4216 -38.36 0 + vertex 1.65861 -34.5411 -3 + vertex 2.32628 -34.9386 0 + vertex 1.65861 -34.5411 0 endloop endfacet - facet normal 0.385209 0.92283 0 + facet normal -0.511641 -0.859199 -0 outer loop - vertex -1.69347 -38.2465 0 - vertex -1.4216 -38.36 -0.2 - vertex -1.69347 -38.2465 -0.2 + vertex 2.32628 -34.9386 0 + vertex 1.65861 -34.5411 -3 + vertex 2.32628 -34.9386 -3 endloop endfacet - facet normal 0.490243 0.871586 -0 + facet normal -0.182531 -0.9832 0 outer loop - vertex -1.69347 -38.2465 -0.2 - vertex -1.95525 -38.0993 0 - vertex -1.69347 -38.2465 0 + vertex 2.32628 -34.9386 -3 + vertex 3.17687 -35.0966 0 + vertex 2.32628 -34.9386 0 endloop endfacet - facet normal 0.490243 0.871586 0 + facet normal -0.182531 -0.9832 -0 outer loop - vertex -1.95525 -38.0993 0 - vertex -1.69347 -38.2465 -0.2 - vertex -1.95525 -38.0993 -0.2 + vertex 3.17687 -35.0966 0 + vertex 2.32628 -34.9386 -3 + vertex 3.17687 -35.0966 -3 endloop endfacet - facet normal 0.581299 0.81369 -0 + facet normal 0.0908592 -0.995864 0 outer loop - vertex -1.95525 -38.0993 -0.2 - vertex -2.20592 -37.9202 0 - vertex -1.95525 -38.0993 0 + vertex 3.17687 -35.0966 -3 + vertex 4.11511 -35.011 0 + vertex 3.17687 -35.0966 0 endloop endfacet - facet normal 0.581299 0.81369 0 + facet normal 0.0908592 -0.995864 0 outer loop - vertex -2.20592 -37.9202 0 - vertex -1.95525 -38.0993 -0.2 - vertex -2.20592 -37.9202 -0.2 + vertex 4.11511 -35.011 0 + vertex 3.17687 -35.0966 -3 + vertex 4.11511 -35.011 -3 endloop endfacet - facet normal 0.65901 0.752134 -0 + facet normal 0.336892 -0.941543 0 outer loop - vertex -2.20592 -37.9202 -0.2 - vertex -2.44446 -37.7112 0 - vertex -2.20592 -37.9202 0 + vertex 4.11511 -35.011 -3 + vertex 5.04571 -34.678 0 + vertex 4.11511 -35.011 0 endloop endfacet - facet normal 0.65901 0.752134 0 + facet normal 0.336892 -0.941543 0 outer loop - vertex -2.44446 -37.7112 0 - vertex -2.20592 -37.9202 -0.2 - vertex -2.44446 -37.7112 -0.2 + vertex 5.04571 -34.678 0 + vertex 4.11511 -35.011 -3 + vertex 5.04571 -34.678 -3 endloop endfacet - facet normal 0.724655 0.689112 0 + facet normal 0.557528 -0.830158 0 outer loop - vertex -2.44446 -37.7112 0 - vertex -2.66982 -37.4742 -0.2 - vertex -2.66982 -37.4742 0 + vertex 5.04571 -34.678 -3 + vertex 5.71313 -34.2297 0 + vertex 5.04571 -34.678 0 endloop endfacet - facet normal 0.724655 0.689112 0 + facet normal 0.557528 -0.830158 0 outer loop - vertex -2.66982 -37.4742 -0.2 - vertex -2.44446 -37.7112 0 - vertex -2.44446 -37.7112 -0.2 + vertex 5.71313 -34.2297 0 + vertex 5.04571 -34.678 -3 + vertex 5.71313 -34.2297 -3 endloop endfacet - facet normal 0.779827 0.625996 0 + facet normal 0.786383 -0.61774 0 outer loop - vertex -2.66982 -37.4742 0 - vertex -2.88099 -37.2112 -0.2 - vertex -2.88099 -37.2112 0 + vertex 5.71313 -34.2297 0 + vertex 6.30534 -33.4759 -3 + vertex 6.30534 -33.4759 0 endloop endfacet - facet normal 0.779827 0.625996 0 + facet normal 0.786383 -0.61774 0 outer loop - vertex -2.88099 -37.2112 -0.2 - vertex -2.66982 -37.4742 0 - vertex -2.66982 -37.4742 -0.2 + vertex 6.30534 -33.4759 -3 + vertex 5.71313 -34.2297 0 + vertex 5.71313 -34.2297 -3 endloop endfacet - facet normal 0.826071 0.563566 0 + facet normal 0.906895 -0.421357 0 outer loop - vertex -2.88099 -37.2112 0 - vertex -3.07693 -36.924 -0.2 - vertex -3.07693 -36.924 0 + vertex 6.30534 -33.4759 0 + vertex 7.96204 -29.9101 -3 + vertex 7.96204 -29.9101 0 endloop endfacet - facet normal 0.826071 0.563566 0 + facet normal 0.906895 -0.421357 0 outer loop - vertex -3.07693 -36.924 -0.2 - vertex -2.88099 -37.2112 0 - vertex -2.88099 -37.2112 -0.2 + vertex 7.96204 -29.9101 -3 + vertex 6.30534 -33.4759 0 + vertex 6.30534 -33.4759 -3 endloop endfacet - facet normal 0.864772 0.502165 0 + facet normal 0.929235 -0.36949 0 outer loop - vertex -3.07693 -36.924 0 - vertex -3.25661 -36.6145 -0.2 - vertex -3.25661 -36.6145 0 + vertex 7.96204 -29.9101 0 + vertex 9.7411 -25.4359 -3 + vertex 9.7411 -25.4359 0 endloop endfacet - facet normal 0.864772 0.502165 0 + facet normal 0.929235 -0.36949 0 outer loop - vertex -3.25661 -36.6145 -0.2 - vertex -3.07693 -36.924 0 - vertex -3.07693 -36.924 -0.2 + vertex 9.7411 -25.4359 -3 + vertex 7.96204 -29.9101 0 + vertex 7.96204 -29.9101 -3 endloop endfacet - facet normal 0.897098 0.441832 0 + facet normal 0.962546 -0.271117 0 outer loop - vertex -3.25661 -36.6145 0 - vertex -3.41901 -36.2848 -0.2 - vertex -3.41901 -36.2848 0 + vertex 9.7411 -25.4359 0 + vertex 10.0775 -24.2416 -3 + vertex 10.0775 -24.2416 0 endloop endfacet - facet normal 0.897098 0.441832 0 + facet normal 0.962546 -0.271117 0 outer loop - vertex -3.41901 -36.2848 -0.2 - vertex -3.25661 -36.6145 0 - vertex -3.25661 -36.6145 -0.2 + vertex 10.0775 -24.2416 -3 + vertex 9.7411 -25.4359 0 + vertex 9.7411 -25.4359 -3 endloop endfacet - facet normal 0.923982 0.382435 0 + facet normal 0.994463 -0.105087 0 outer loop - vertex -3.41901 -36.2848 0 - vertex -3.56309 -35.9367 -0.2 - vertex -3.56309 -35.9367 0 + vertex 10.0775 -24.2416 0 + vertex 10.169 -23.3758 -3 + vertex 10.169 -23.3758 0 endloop endfacet - facet normal 0.923982 0.382435 0 + facet normal 0.994463 -0.105087 0 outer loop - vertex -3.56309 -35.9367 -0.2 - vertex -3.41901 -36.2848 0 - vertex -3.41901 -36.2848 -0.2 + vertex 10.169 -23.3758 -3 + vertex 10.0775 -24.2416 0 + vertex 10.0775 -24.2416 -3 endloop endfacet - facet normal 0.946149 0.323732 0 + facet normal 0.988121 0.153677 0 outer loop - vertex -3.56309 -35.9367 0 - vertex -3.68783 -35.5721 -0.2 - vertex -3.68783 -35.5721 0 + vertex 10.169 -23.3758 0 + vertex 10.0454 -22.5812 -3 + vertex 10.0454 -22.5812 0 endloop endfacet - facet normal 0.946149 0.323732 0 + facet normal 0.988121 0.153677 0 outer loop - vertex -3.68783 -35.5721 -0.2 - vertex -3.56309 -35.9367 0 - vertex -3.56309 -35.9367 -0.2 + vertex 10.0454 -22.5812 -3 + vertex 10.169 -23.3758 0 + vertex 10.169 -23.3758 -3 endloop endfacet - facet normal 0.964131 0.265426 0 + facet normal 0.857617 0.514289 0 outer loop - vertex -3.68783 -35.5721 0 - vertex -3.79219 -35.193 -0.2 - vertex -3.79219 -35.193 0 + vertex 10.0454 -22.5812 0 + vertex 9.69979 -22.0048 -3 + vertex 9.69979 -22.0048 0 endloop endfacet - facet normal 0.964131 0.265426 0 + facet normal 0.857617 0.514289 0 outer loop - vertex -3.79219 -35.193 -0.2 - vertex -3.68783 -35.5721 0 - vertex -3.68783 -35.5721 -0.2 + vertex 9.69979 -22.0048 -3 + vertex 10.0454 -22.5812 0 + vertex 10.0454 -22.5812 -3 endloop endfacet - facet normal 0.978298 0.207204 0 + facet normal 0.558467 0.829527 -0 outer loop - vertex -3.79219 -35.193 0 - vertex -3.87516 -34.8013 -0.2 - vertex -3.87516 -34.8013 0 + vertex 9.69979 -22.0048 -3 + vertex 9.16984 -21.6481 0 + vertex 9.69979 -22.0048 0 endloop endfacet - facet normal 0.978298 0.207204 0 + facet normal 0.558467 0.829527 0 outer loop - vertex -3.87516 -34.8013 -0.2 - vertex -3.79219 -35.193 0 - vertex -3.79219 -35.193 -0.2 + vertex 9.16984 -21.6481 0 + vertex 9.69979 -22.0048 -3 + vertex 9.16984 -21.6481 -3 endloop endfacet - facet normal 0.988873 0.148763 0 + facet normal 0.196985 0.980407 -0 outer loop - vertex -3.87516 -34.8013 0 - vertex -3.93569 -34.3989 -0.2 - vertex -3.93569 -34.3989 0 + vertex 9.16984 -21.6481 -3 + vertex 8.49325 -21.5121 0 + vertex 9.16984 -21.6481 0 endloop endfacet - facet normal 0.988873 0.148763 0 + facet normal 0.196985 0.980407 0 outer loop - vertex -3.93569 -34.3989 -0.2 - vertex -3.87516 -34.8013 0 - vertex -3.87516 -34.8013 -0.2 + vertex 8.49325 -21.5121 0 + vertex 9.16984 -21.6481 -3 + vertex 8.49325 -21.5121 -3 endloop endfacet - facet normal 0.995959 0.0898073 0 + facet normal -0.109065 0.994035 0 outer loop - vertex -3.93569 -34.3989 0 - vertex -3.97277 -33.9877 -0.2 - vertex -3.97277 -33.9877 0 + vertex 8.49325 -21.5121 -3 + vertex 7.70773 -21.5983 0 + vertex 8.49325 -21.5121 0 endloop endfacet - facet normal 0.995959 0.0898073 0 + facet normal -0.109065 0.994035 0 outer loop - vertex -3.97277 -33.9877 -0.2 - vertex -3.93569 -34.3989 0 - vertex -3.93569 -34.3989 -0.2 + vertex 7.70773 -21.5983 0 + vertex 8.49325 -21.5121 -3 + vertex 7.70773 -21.5983 -3 endloop endfacet - facet normal 0.999547 0.0300979 0 + facet normal -0.270451 -0.962734 0 outer loop - vertex -3.97277 -33.9877 0 - vertex -3.98536 -33.5697 -0.2 - vertex -3.98536 -33.5697 0 + vertex 28.989 -19.2301 -3 + vertex 29.9429 -19.4981 0 + vertex 28.989 -19.2301 0 endloop endfacet - facet normal 0.999547 0.0300979 0 + facet normal -0.270451 -0.962734 -0 outer loop - vertex -3.98536 -33.5697 -0.2 - vertex -3.97277 -33.9877 0 - vertex -3.97277 -33.9877 -0.2 + vertex 29.9429 -19.4981 0 + vertex 28.989 -19.2301 -3 + vertex 29.9429 -19.4981 -3 endloop endfacet - facet normal 0.998925 -0.0463463 0 + facet normal -0.511153 -0.85949 0 outer loop - vertex -3.98536 -33.5697 0 - vertex -3.97004 -33.2395 -0.2 - vertex -3.97004 -33.2395 0 + vertex 29.9429 -19.4981 -3 + vertex 30.7248 -19.9631 0 + vertex 29.9429 -19.4981 0 endloop endfacet - facet normal 0.998925 -0.0463463 0 + facet normal -0.511153 -0.85949 -0 outer loop - vertex -3.97004 -33.2395 -0.2 - vertex -3.98536 -33.5697 0 - vertex -3.98536 -33.5697 -0.2 + vertex 30.7248 -19.9631 0 + vertex 29.9429 -19.4981 -3 + vertex 30.7248 -19.9631 -3 endloop endfacet - facet normal 0.99274 -0.120283 0 + facet normal -0.723919 -0.689885 0 outer loop - vertex -3.97004 -33.2395 0 - vertex -3.92523 -32.8697 -0.2 - vertex -3.92523 -32.8697 0 + vertex 31.3699 -20.64 -3 + vertex 30.7248 -19.9631 0 + vertex 30.7248 -19.9631 -3 endloop endfacet - facet normal 0.99274 -0.120283 0 + facet normal -0.723919 -0.689885 0 outer loop - vertex -3.92523 -32.8697 -0.2 - vertex -3.97004 -33.2395 0 - vertex -3.97004 -33.2395 -0.2 + vertex 30.7248 -19.9631 0 + vertex 31.3699 -20.64 -3 + vertex 31.3699 -20.64 0 endloop endfacet - facet normal 0.984312 -0.176435 0 + facet normal -0.867187 -0.497983 0 outer loop - vertex -3.92523 -32.8697 0 - vertex -3.8527 -32.4651 -0.2 - vertex -3.8527 -32.4651 0 + vertex 31.8086 -21.404 -3 + vertex 31.3699 -20.64 0 + vertex 31.3699 -20.64 -3 endloop endfacet - facet normal 0.984312 -0.176435 0 + facet normal -0.867187 -0.497983 0 outer loop - vertex -3.8527 -32.4651 -0.2 - vertex -3.92523 -32.8697 0 - vertex -3.92523 -32.8697 -0.2 + vertex 31.3699 -20.64 0 + vertex 31.8086 -21.404 -3 + vertex 31.8086 -21.404 0 endloop endfacet - facet normal 0.975291 -0.220925 0 + facet normal -0.971458 -0.237212 0 outer loop - vertex -3.8527 -32.4651 0 - vertex -3.75417 -32.0301 -0.2 - vertex -3.75417 -32.0301 0 + vertex 32.0232 -22.2828 -3 + vertex 31.8086 -21.404 0 + vertex 31.8086 -21.404 -3 endloop endfacet - facet normal 0.975291 -0.220925 0 + facet normal -0.971458 -0.237212 0 outer loop - vertex -3.75417 -32.0301 -0.2 - vertex -3.8527 -32.4651 0 - vertex -3.8527 -32.4651 -0.2 + vertex 31.8086 -21.404 0 + vertex 32.0232 -22.2828 -3 + vertex 32.0232 -22.2828 0 endloop endfacet - facet normal 0.96184 -0.273613 0 + facet normal -0.999998 -0.00210454 0 outer loop - vertex -3.75417 -32.0301 0 - vertex -3.4861 -31.0878 -0.2 - vertex -3.4861 -31.0878 0 + vertex 32.0255 -23.3848 -3 + vertex 32.0232 -22.2828 0 + vertex 32.0232 -22.2828 -3 endloop endfacet - facet normal 0.96184 -0.273613 0 + facet normal -0.999998 -0.00210454 0 outer loop - vertex -3.4861 -31.0878 -0.2 - vertex -3.75417 -32.0301 0 - vertex -3.75417 -32.0301 -0.2 + vertex 32.0232 -22.2828 0 + vertex 32.0255 -23.3848 -3 + vertex 32.0255 -23.3848 0 endloop endfacet - facet normal 0.944354 -0.328931 0 + facet normal -0.990595 0.136824 0 outer loop - vertex -3.4861 -31.0878 0 - vertex -3.135 -30.0798 -0.2 - vertex -3.135 -30.0798 0 + vertex 31.8275 -24.8188 -3 + vertex 32.0255 -23.3848 0 + vertex 32.0255 -23.3848 -3 endloop endfacet - facet normal 0.944354 -0.328931 0 + facet normal -0.990595 0.136824 0 outer loop - vertex -3.135 -30.0798 -0.2 - vertex -3.4861 -31.0878 0 - vertex -3.4861 -31.0878 -0.2 + vertex 32.0255 -23.3848 0 + vertex 31.8275 -24.8188 -3 + vertex 31.8275 -24.8188 0 endloop endfacet - facet normal 0.926769 -0.375632 0 + facet normal -0.978641 0.205575 0 outer loop - vertex -3.135 -30.0798 0 - vertex -2.71481 -29.043 -0.2 - vertex -2.71481 -29.043 0 + vertex 31.4974 -26.3899 -3 + vertex 31.8275 -24.8188 0 + vertex 31.8275 -24.8188 -3 endloop endfacet - facet normal 0.926769 -0.375632 0 + facet normal -0.978641 0.205575 0 outer loop - vertex -2.71481 -29.043 -0.2 - vertex -3.135 -30.0798 0 - vertex -3.135 -30.0798 -0.2 + vertex 31.8275 -24.8188 0 + vertex 31.4974 -26.3899 -3 + vertex 31.4974 -26.3899 0 endloop endfacet - facet normal 0.907733 -0.419549 0 + facet normal -0.869264 0.494348 0 outer loop - vertex -2.71481 -29.043 0 - vertex -2.23947 -28.0146 -0.2 - vertex -2.23947 -28.0146 0 + vertex 31.2318 -26.857 -3 + vertex 31.4974 -26.3899 0 + vertex 31.4974 -26.3899 -3 endloop endfacet - facet normal 0.907733 -0.419549 0 + facet normal -0.869264 0.494348 0 outer loop - vertex -2.23947 -28.0146 -0.2 - vertex -2.71481 -29.043 0 - vertex -2.71481 -29.043 -0.2 + vertex 31.4974 -26.3899 0 + vertex 31.2318 -26.857 -3 + vertex 31.2318 -26.857 0 endloop endfacet - facet normal 0.885263 -0.46509 0 + facet normal -0.557816 0.829965 0 outer loop - vertex -2.23947 -28.0146 0 - vertex -1.72295 -27.0315 -0.2 - vertex -1.72295 -27.0315 0 + vertex 31.2318 -26.857 -3 + vertex 30.7817 -27.1595 0 + vertex 31.2318 -26.857 0 endloop endfacet - facet normal 0.885263 -0.46509 0 + facet normal -0.557816 0.829965 0 outer loop - vertex -1.72295 -27.0315 -0.2 - vertex -2.23947 -28.0146 0 - vertex -2.23947 -28.0146 -0.2 + vertex 30.7817 -27.1595 0 + vertex 31.2318 -26.857 -3 + vertex 30.7817 -27.1595 -3 endloop endfacet - facet normal 0.8644 -0.502806 0 + facet normal -0.13929 0.990252 0 outer loop - vertex -1.72295 -27.0315 0 - vertex -1.45361 -26.5684 -0.2 - vertex -1.45361 -26.5684 0 + vertex 30.7817 -27.1595 -3 + vertex 28.9763 -27.4135 0 + vertex 30.7817 -27.1595 0 endloop endfacet - facet normal 0.8644 -0.502806 0 + facet normal -0.13929 0.990252 0 outer loop - vertex -1.45361 -26.5684 -0.2 - vertex -1.72295 -27.0315 0 - vertex -1.72295 -27.0315 -0.2 + vertex 28.9763 -27.4135 0 + vertex 30.7817 -27.1595 -3 + vertex 28.9763 -27.4135 -3 endloop endfacet - facet normal 0.847345 -0.531043 0 + facet normal -0.00668289 0.999978 0 outer loop - vertex -1.45361 -26.5684 0 - vertex -1.17919 -26.1306 -0.2 - vertex -1.17919 -26.1306 0 + vertex 28.9763 -27.4135 -3 + vertex 25.3774 -27.4375 0 + vertex 28.9763 -27.4135 0 endloop endfacet - facet normal 0.847345 -0.531043 0 + facet normal -0.00668289 0.999978 0 outer loop - vertex -1.17919 -26.1306 -0.2 - vertex -1.45361 -26.5684 0 - vertex -1.45361 -26.5684 -0.2 - endloop - endfacet - facet normal 0.82644 -0.563025 0 - outer loop - vertex -1.17919 -26.1306 0 - vertex -0.875463 -25.6847 -0.2 - vertex -0.875463 -25.6847 0 - endloop - endfacet - facet normal 0.82644 -0.563025 0 - outer loop - vertex -0.875463 -25.6847 -0.2 - vertex -1.17919 -26.1306 0 - vertex -1.17919 -26.1306 -0.2 - endloop - endfacet - facet normal 0.8045 -0.593952 0 - outer loop - vertex -0.875463 -25.6847 0 - vertex -0.546472 -25.2391 -0.2 - vertex -0.546472 -25.2391 0 - endloop - endfacet - facet normal 0.8045 -0.593952 0 - outer loop - vertex -0.546472 -25.2391 -0.2 - vertex -0.875463 -25.6847 0 - vertex -0.875463 -25.6847 -0.2 - endloop - endfacet - facet normal 0.783077 -0.621924 0 - outer loop - vertex -0.546472 -25.2391 0 - vertex -0.194025 -24.7953 -0.2 - vertex -0.194025 -24.7953 0 - endloop - endfacet - facet normal 0.783077 -0.621924 0 - outer loop - vertex -0.194025 -24.7953 -0.2 - vertex -0.546472 -25.2391 0 - vertex -0.546472 -25.2391 -0.2 - endloop - endfacet - facet normal 0.762077 -0.647486 0 - outer loop - vertex -0.194025 -24.7953 0 - vertex 0.18007 -24.355 -0.2 - vertex 0.18007 -24.355 0 - endloop - endfacet - facet normal 0.762077 -0.647486 0 - outer loop - vertex 0.18007 -24.355 -0.2 - vertex -0.194025 -24.7953 0 - vertex -0.194025 -24.7953 -0.2 - endloop - endfacet - facet normal 0.74138 -0.671085 0 - outer loop - vertex 0.18007 -24.355 0 - vertex 0.574011 -23.9198 -0.2 - vertex 0.574011 -23.9198 0 - endloop - endfacet - facet normal 0.74138 -0.671085 0 - outer loop - vertex 0.574011 -23.9198 -0.2 - vertex 0.18007 -24.355 0 - vertex 0.18007 -24.355 -0.2 - endloop - endfacet - facet normal 0.720855 -0.693086 0 - outer loop - vertex 0.574011 -23.9198 0 - vertex 0.985991 -23.4913 -0.2 - vertex 0.985991 -23.4913 0 - endloop - endfacet - facet normal 0.720855 -0.693086 0 - outer loop - vertex 0.985991 -23.4913 -0.2 - vertex 0.574011 -23.9198 0 - vertex 0.574011 -23.9198 -0.2 - endloop - endfacet - facet normal 0.700344 -0.713805 0 - outer loop - vertex 0.985991 -23.4913 -0.2 - vertex 1.4142 -23.0712 0 - vertex 0.985991 -23.4913 0 - endloop - endfacet - facet normal 0.700344 -0.713805 0 - outer loop - vertex 1.4142 -23.0712 0 - vertex 0.985991 -23.4913 -0.2 - vertex 1.4142 -23.0712 -0.2 - endloop - endfacet - facet normal 0.679685 -0.733504 0 - outer loop - vertex 1.4142 -23.0712 -0.2 - vertex 1.85684 -22.661 0 - vertex 1.4142 -23.0712 0 - endloop - endfacet - facet normal 0.679685 -0.733504 0 - outer loop - vertex 1.85684 -22.661 0 - vertex 1.4142 -23.0712 -0.2 - vertex 1.85684 -22.661 -0.2 - endloop - endfacet - facet normal 0.658698 -0.752407 0 - outer loop - vertex 1.85684 -22.661 -0.2 - vertex 2.31211 -22.2625 0 - vertex 1.85684 -22.661 0 - endloop - endfacet - facet normal 0.658698 -0.752407 0 - outer loop - vertex 2.31211 -22.2625 0 - vertex 1.85684 -22.661 -0.2 - vertex 2.31211 -22.2625 -0.2 - endloop - endfacet - facet normal 0.637189 -0.770708 0 - outer loop - vertex 2.31211 -22.2625 -0.2 - vertex 2.77819 -21.8771 0 - vertex 2.31211 -22.2625 0 - endloop - endfacet - facet normal 0.637189 -0.770708 0 - outer loop - vertex 2.77819 -21.8771 0 - vertex 2.31211 -22.2625 -0.2 - vertex 2.77819 -21.8771 -0.2 - endloop - endfacet - facet normal 0.614941 -0.788573 0 - outer loop - vertex 2.77819 -21.8771 -0.2 - vertex 3.25328 -21.5067 0 - vertex 2.77819 -21.8771 0 - endloop - endfacet - facet normal 0.614941 -0.788573 0 - outer loop - vertex 3.25328 -21.5067 0 - vertex 2.77819 -21.8771 -0.2 - vertex 3.25328 -21.5067 -0.2 - endloop - endfacet - facet normal 0.591711 -0.80615 0 - outer loop - vertex 3.25328 -21.5067 -0.2 - vertex 3.73558 -21.1527 0 - vertex 3.25328 -21.5067 0 - endloop - endfacet - facet normal 0.591711 -0.80615 0 - outer loop - vertex 3.73558 -21.1527 0 - vertex 3.25328 -21.5067 -0.2 - vertex 3.73558 -21.1527 -0.2 - endloop - endfacet - facet normal 0.567228 -0.823561 0 - outer loop - vertex 3.73558 -21.1527 -0.2 - vertex 4.22328 -20.8168 0 - vertex 3.73558 -21.1527 0 - endloop - endfacet - facet normal 0.567228 -0.823561 0 - outer loop - vertex 4.22328 -20.8168 0 - vertex 3.73558 -21.1527 -0.2 - vertex 4.22328 -20.8168 -0.2 - endloop - endfacet - facet normal 0.541167 -0.840915 0 - outer loop - vertex 4.22328 -20.8168 -0.2 - vertex 4.71458 -20.5006 0 - vertex 4.22328 -20.8168 0 - endloop - endfacet - facet normal 0.541167 -0.840915 0 - outer loop - vertex 4.71458 -20.5006 0 - vertex 4.22328 -20.8168 -0.2 - vertex 4.71458 -20.5006 -0.2 - endloop - endfacet - facet normal 0.513171 -0.858287 0 - outer loop - vertex 4.71458 -20.5006 -0.2 - vertex 5.20766 -20.2058 0 - vertex 4.71458 -20.5006 0 - endloop - endfacet - facet normal 0.513171 -0.858287 0 - outer loop - vertex 5.20766 -20.2058 0 - vertex 4.71458 -20.5006 -0.2 - vertex 5.20766 -20.2058 -0.2 - endloop - endfacet - facet normal 0.482795 -0.875733 0 - outer loop - vertex 5.20766 -20.2058 -0.2 - vertex 5.70074 -19.9339 0 - vertex 5.20766 -20.2058 0 - endloop - endfacet - facet normal 0.482795 -0.875733 0 - outer loop - vertex 5.70074 -19.9339 0 - vertex 5.20766 -20.2058 -0.2 - vertex 5.70074 -19.9339 -0.2 - endloop - endfacet - facet normal 0.452672 -0.891677 0 - outer loop - vertex 5.70074 -19.9339 -0.2 - vertex 6.07737 -19.7427 0 - vertex 5.70074 -19.9339 0 - endloop - endfacet - facet normal 0.452672 -0.891677 0 - outer loop - vertex 6.07737 -19.7427 0 - vertex 5.70074 -19.9339 -0.2 - vertex 6.07737 -19.7427 -0.2 - endloop - endfacet - facet normal 0.411982 -0.911192 0 - outer loop - vertex 6.07737 -19.7427 -0.2 - vertex 6.41984 -19.5879 0 - vertex 6.07737 -19.7427 0 - endloop - endfacet - facet normal 0.411982 -0.911192 0 - outer loop - vertex 6.41984 -19.5879 0 - vertex 6.07737 -19.7427 -0.2 - vertex 6.41984 -19.5879 -0.2 - endloop - endfacet - facet normal 0.352601 -0.935774 0 - outer loop - vertex 6.41984 -19.5879 -0.2 - vertex 6.74616 -19.4649 0 - vertex 6.41984 -19.5879 0 - endloop - endfacet - facet normal 0.352601 -0.935774 0 - outer loop - vertex 6.74616 -19.4649 0 - vertex 6.41984 -19.5879 -0.2 - vertex 6.74616 -19.4649 -0.2 - endloop - endfacet - facet normal 0.279545 -0.960133 0 - outer loop - vertex 6.74616 -19.4649 -0.2 - vertex 7.07441 -19.3694 0 - vertex 6.74616 -19.4649 0 - endloop - endfacet - facet normal 0.279545 -0.960133 0 - outer loop - vertex 7.07441 -19.3694 0 - vertex 6.74616 -19.4649 -0.2 - vertex 7.07441 -19.3694 -0.2 - endloop - endfacet - facet normal 0.204293 -0.97891 0 - outer loop - vertex 7.07441 -19.3694 -0.2 - vertex 7.42262 -19.2967 0 - vertex 7.07441 -19.3694 0 - endloop - endfacet - facet normal 0.204293 -0.97891 0 - outer loop - vertex 7.42262 -19.2967 0 - vertex 7.07441 -19.3694 -0.2 - vertex 7.42262 -19.2967 -0.2 - endloop - endfacet - facet normal 0.139108 -0.990277 0 - outer loop - vertex 7.42262 -19.2967 -0.2 - vertex 7.80885 -19.2424 0 - vertex 7.42262 -19.2967 0 - endloop - endfacet - facet normal 0.139108 -0.990277 0 - outer loop - vertex 7.80885 -19.2424 0 - vertex 7.42262 -19.2967 -0.2 - vertex 7.80885 -19.2424 -0.2 - endloop - endfacet - facet normal 0.0740931 -0.997251 0 - outer loop - vertex 7.80885 -19.2424 -0.2 - vertex 8.76754 -19.1712 0 - vertex 7.80885 -19.2424 0 - endloop - endfacet - facet normal 0.0740931 -0.997251 0 - outer loop - vertex 8.76754 -19.1712 0 - vertex 7.80885 -19.2424 -0.2 - vertex 8.76754 -19.1712 -0.2 - endloop - endfacet - facet normal 0.0317962 -0.999494 0 - outer loop - vertex 8.76754 -19.1712 -0.2 - vertex 9.72114 -19.1409 0 - vertex 8.76754 -19.1712 0 - endloop - endfacet - facet normal 0.0317962 -0.999494 0 - outer loop - vertex 9.72114 -19.1409 0 - vertex 8.76754 -19.1712 -0.2 - vertex 9.72114 -19.1409 -0.2 - endloop - endfacet - facet normal -0.0248159 -0.999692 0 - outer loop - vertex 9.72114 -19.1409 -0.2 - vertex 10.0711 -19.1496 0 - vertex 9.72114 -19.1409 0 - endloop - endfacet - facet normal -0.0248159 -0.999692 -0 - outer loop - vertex 10.0711 -19.1496 0 - vertex 9.72114 -19.1409 -0.2 - vertex 10.0711 -19.1496 -0.2 - endloop - endfacet - facet normal -0.0963554 -0.995347 0 - outer loop - vertex 10.0711 -19.1496 -0.2 - vertex 10.3591 -19.1774 0 - vertex 10.0711 -19.1496 0 - endloop - endfacet - facet normal -0.0963554 -0.995347 -0 - outer loop - vertex 10.3591 -19.1774 0 - vertex 10.0711 -19.1496 -0.2 - vertex 10.3591 -19.1774 -0.2 - endloop - endfacet - facet normal -0.199823 -0.979832 0 - outer loop - vertex 10.3591 -19.1774 -0.2 - vertex 10.602 -19.227 0 - vertex 10.3591 -19.1774 0 - endloop - endfacet - facet normal -0.199823 -0.979832 -0 - outer loop - vertex 10.602 -19.227 0 - vertex 10.3591 -19.1774 -0.2 - vertex 10.602 -19.227 -0.2 - endloop - endfacet - facet normal -0.324456 -0.945901 0 - outer loop - vertex 10.602 -19.227 -0.2 - vertex 10.8168 -19.3006 0 - vertex 10.602 -19.227 0 - endloop - endfacet - facet normal -0.324456 -0.945901 -0 - outer loop - vertex 10.8168 -19.3006 0 - vertex 10.602 -19.227 -0.2 - vertex 10.8168 -19.3006 -0.2 - endloop - endfacet - facet normal -0.441937 -0.897046 0 - outer loop - vertex 10.8168 -19.3006 -0.2 - vertex 11.0203 -19.4009 0 - vertex 10.8168 -19.3006 0 - endloop - endfacet - facet normal -0.441937 -0.897046 -0 - outer loop - vertex 11.0203 -19.4009 0 - vertex 10.8168 -19.3006 -0.2 - vertex 11.0203 -19.4009 -0.2 - endloop - endfacet - facet normal -0.525875 -0.850562 0 - outer loop - vertex 11.0203 -19.4009 -0.2 - vertex 11.2294 -19.5302 0 - vertex 11.0203 -19.4009 0 - endloop - endfacet - facet normal -0.525875 -0.850562 -0 - outer loop - vertex 11.2294 -19.5302 0 - vertex 11.0203 -19.4009 -0.2 - vertex 11.2294 -19.5302 -0.2 - endloop - endfacet - facet normal -0.518008 -0.855376 0 - outer loop - vertex 11.2294 -19.5302 -0.2 - vertex 11.5538 -19.7266 0 - vertex 11.2294 -19.5302 0 - endloop - endfacet - facet normal -0.518008 -0.855376 -0 - outer loop - vertex 11.5538 -19.7266 0 - vertex 11.2294 -19.5302 -0.2 - vertex 11.5538 -19.7266 -0.2 - endloop - endfacet - facet normal -0.370976 -0.928642 0 - outer loop - vertex 11.5538 -19.7266 -0.2 - vertex 11.7902 -19.8211 0 - vertex 11.5538 -19.7266 0 - endloop - endfacet - facet normal -0.370976 -0.928642 -0 - outer loop - vertex 11.7902 -19.8211 0 - vertex 11.5538 -19.7266 -0.2 - vertex 11.7902 -19.8211 -0.2 - endloop - endfacet - facet normal -0.111982 -0.99371 0 - outer loop - vertex 11.7902 -19.8211 -0.2 - vertex 11.881 -19.8313 0 - vertex 11.7902 -19.8211 0 - endloop - endfacet - facet normal -0.111982 -0.99371 -0 - outer loop - vertex 11.881 -19.8313 0 - vertex 11.7902 -19.8211 -0.2 - vertex 11.881 -19.8313 -0.2 - endloop - endfacet - facet normal 0.179863 -0.983692 0 - outer loop - vertex 11.881 -19.8313 -0.2 - vertex 11.9563 -19.8175 0 - vertex 11.881 -19.8313 0 - endloop - endfacet - facet normal 0.179863 -0.983692 0 - outer loop - vertex 11.9563 -19.8175 0 - vertex 11.881 -19.8313 -0.2 - vertex 11.9563 -19.8175 -0.2 - endloop - endfacet - facet normal 0.514293 -0.857615 0 - outer loop - vertex 11.9563 -19.8175 -0.2 - vertex 12.0185 -19.7802 0 - vertex 11.9563 -19.8175 0 - endloop - endfacet - facet normal 0.514293 -0.857615 0 - outer loop - vertex 12.0185 -19.7802 0 - vertex 11.9563 -19.8175 -0.2 - vertex 12.0185 -19.7802 -0.2 - endloop - endfacet - facet normal 0.762299 -0.647226 0 - outer loop - vertex 12.0185 -19.7802 0 - vertex 12.0697 -19.7199 -0.2 - vertex 12.0697 -19.7199 0 - endloop - endfacet - facet normal 0.762299 -0.647226 0 - outer loop - vertex 12.0697 -19.7199 -0.2 - vertex 12.0185 -19.7802 0 - vertex 12.0185 -19.7802 -0.2 - endloop - endfacet - facet normal 0.887752 -0.460323 0 - outer loop - vertex 12.0697 -19.7199 0 - vertex 12.2803 -19.3138 -0.2 - vertex 12.2803 -19.3138 0 - endloop - endfacet - facet normal 0.887752 -0.460323 0 - outer loop - vertex 12.2803 -19.3138 -0.2 - vertex 12.0697 -19.7199 0 - vertex 12.0697 -19.7199 -0.2 - endloop - endfacet - facet normal 0.914794 -0.403921 0 - outer loop - vertex 12.2803 -19.3138 0 - vertex 12.5806 -18.6336 -0.2 - vertex 12.5806 -18.6336 0 - endloop - endfacet - facet normal 0.914794 -0.403921 0 - outer loop - vertex 12.5806 -18.6336 -0.2 - vertex 12.2803 -19.3138 0 - vertex 12.2803 -19.3138 -0.2 - endloop - endfacet - facet normal 0.927919 -0.372782 0 - outer loop - vertex 12.5806 -18.6336 0 - vertex 13.2984 -16.8469 -0.2 - vertex 13.2984 -16.8469 0 - endloop - endfacet - facet normal 0.927919 -0.372782 0 - outer loop - vertex 13.2984 -16.8469 -0.2 - vertex 12.5806 -18.6336 0 - vertex 12.5806 -18.6336 -0.2 - endloop - endfacet - facet normal 0.936103 -0.351727 0 - outer loop - vertex 13.2984 -16.8469 0 - vertex 13.6397 -15.9386 -0.2 - vertex 13.6397 -15.9386 0 - endloop - endfacet - facet normal 0.936103 -0.351727 0 - outer loop - vertex 13.6397 -15.9386 -0.2 - vertex 13.2984 -16.8469 0 - vertex 13.2984 -16.8469 -0.2 - endloop - endfacet - facet normal 0.9425 -0.334207 0 - outer loop - vertex 13.6397 -15.9386 0 - vertex 13.9185 -15.1524 -0.2 - vertex 13.9185 -15.1524 0 - endloop - endfacet - facet normal 0.9425 -0.334207 0 - outer loop - vertex 13.9185 -15.1524 -0.2 - vertex 13.6397 -15.9386 0 - vertex 13.6397 -15.9386 -0.2 - endloop - endfacet - facet normal 0.953687 -0.300802 0 - outer loop - vertex 13.9185 -15.1524 0 - vertex 14.0967 -14.5873 -0.2 - vertex 14.0967 -14.5873 0 - endloop - endfacet - facet normal 0.953687 -0.300802 0 - outer loop - vertex 14.0967 -14.5873 -0.2 - vertex 13.9185 -15.1524 0 - vertex 13.9185 -15.1524 -0.2 - endloop - endfacet - facet normal 0.97364 -0.22809 0 - outer loop - vertex 14.0967 -14.5873 0 - vertex 14.1362 -14.4186 -0.2 - vertex 14.1362 -14.4186 0 - endloop - endfacet - facet normal 0.97364 -0.22809 0 - outer loop - vertex 14.1362 -14.4186 -0.2 - vertex 14.0967 -14.5873 0 - vertex 14.0967 -14.5873 -0.2 - endloop - endfacet - facet normal 0.999999 -0.00127602 0 - outer loop - vertex 14.1362 -14.4186 0 - vertex 14.1363 -14.3424 -0.2 - vertex 14.1363 -14.3424 0 - endloop - endfacet - facet normal 0.999999 -0.00127602 0 - outer loop - vertex 14.1363 -14.3424 -0.2 - vertex 14.1362 -14.4186 0 - vertex 14.1362 -14.4186 -0.2 - endloop - endfacet - facet normal 0.566913 0.823778 -0 - outer loop - vertex 14.1363 -14.3424 -0.2 - vertex 14.0881 -14.3092 0 - vertex 14.1363 -14.3424 0 - endloop - endfacet - facet normal 0.566913 0.823778 0 - outer loop - vertex 14.0881 -14.3092 0 - vertex 14.1363 -14.3424 -0.2 - vertex 14.0881 -14.3092 -0.2 - endloop - endfacet - facet normal 0.351025 0.936366 -0 - outer loop - vertex 14.0881 -14.3092 -0.2 - vertex 14.0003 -14.2763 0 - vertex 14.0881 -14.3092 0 - endloop - endfacet - facet normal 0.351025 0.936366 0 - outer loop - vertex 14.0003 -14.2763 0 - vertex 14.0881 -14.3092 -0.2 - vertex 14.0003 -14.2763 -0.2 - endloop - endfacet - facet normal 0.218251 0.975893 -0 - outer loop - vertex 14.0003 -14.2763 -0.2 - vertex 13.7222 -14.2141 0 - vertex 14.0003 -14.2763 0 - endloop - endfacet - facet normal 0.218251 0.975893 0 - outer loop - vertex 13.7222 -14.2141 0 - vertex 14.0003 -14.2763 -0.2 - vertex 13.7222 -14.2141 -0.2 - endloop - endfacet - facet normal 0.134641 0.990894 -0 - outer loop - vertex 13.7222 -14.2141 -0.2 - vertex 13.3346 -14.1615 0 - vertex 13.7222 -14.2141 0 - endloop - endfacet - facet normal 0.134641 0.990894 0 - outer loop - vertex 13.3346 -14.1615 0 - vertex 13.7222 -14.2141 -0.2 - vertex 13.3346 -14.1615 -0.2 - endloop - endfacet - facet normal 0.0805571 0.99675 -0 - outer loop - vertex 13.3346 -14.1615 -0.2 - vertex 12.8698 -14.1239 0 - vertex 13.3346 -14.1615 0 - endloop - endfacet - facet normal 0.0805571 0.99675 0 - outer loop - vertex 12.8698 -14.1239 0 - vertex 13.3346 -14.1615 -0.2 - vertex 12.8698 -14.1239 -0.2 - endloop - endfacet - facet normal 0.256285 0.966601 -0 - outer loop - vertex 12.8698 -14.1239 -0.2 - vertex 12.7363 -14.0885 0 - vertex 12.8698 -14.1239 0 - endloop - endfacet - facet normal 0.256285 0.966601 0 - outer loop - vertex 12.7363 -14.0885 0 - vertex 12.8698 -14.1239 -0.2 - vertex 12.7363 -14.0885 -0.2 - endloop - endfacet - facet normal 0.544571 0.838715 -0 - outer loop - vertex 12.7363 -14.0885 -0.2 - vertex 12.6087 -14.0056 0 - vertex 12.7363 -14.0885 0 - endloop - endfacet - facet normal 0.544571 0.838715 0 - outer loop - vertex 12.6087 -14.0056 0 - vertex 12.7363 -14.0885 -0.2 - vertex 12.6087 -14.0056 -0.2 - endloop - endfacet - facet normal 0.739657 0.672985 0 - outer loop - vertex 12.6087 -14.0056 0 - vertex 12.5013 -13.8876 -0.2 - vertex 12.5013 -13.8876 0 - endloop - endfacet - facet normal 0.739657 0.672985 0 - outer loop - vertex 12.5013 -13.8876 -0.2 - vertex 12.6087 -14.0056 0 - vertex 12.6087 -14.0056 -0.2 - endloop - endfacet - facet normal 0.888712 0.458466 0 - outer loop - vertex 12.5013 -13.8876 0 - vertex 12.4287 -13.7469 -0.2 - vertex 12.4287 -13.7469 0 - endloop - endfacet - facet normal 0.888712 0.458466 0 - outer loop - vertex 12.4287 -13.7469 -0.2 - vertex 12.5013 -13.8876 0 - vertex 12.5013 -13.8876 -0.2 - endloop - endfacet - facet normal 0.969282 0.245953 0 - outer loop - vertex 12.4287 -13.7469 0 - vertex 12.3997 -13.6324 -0.2 - vertex 12.3997 -13.6324 0 - endloop - endfacet - facet normal 0.969282 0.245953 0 - outer loop - vertex 12.3997 -13.6324 -0.2 - vertex 12.4287 -13.7469 0 - vertex 12.4287 -13.7469 -0.2 - endloop - endfacet - facet normal 0.995788 0.0916817 0 - outer loop - vertex 12.3997 -13.6324 0 - vertex 12.3889 -13.5153 -0.2 - vertex 12.3889 -13.5153 0 - endloop - endfacet - facet normal 0.995788 0.0916817 0 - outer loop - vertex 12.3889 -13.5153 -0.2 - vertex 12.3997 -13.6324 0 - vertex 12.3997 -13.6324 -0.2 - endloop - endfacet - facet normal 0.99207 -0.12569 0 - outer loop - vertex 12.3889 -13.5153 0 - vertex 12.419 -13.2773 -0.2 - vertex 12.419 -13.2773 0 - endloop - endfacet - facet normal 0.99207 -0.12569 0 - outer loop - vertex 12.419 -13.2773 -0.2 - vertex 12.3889 -13.5153 0 - vertex 12.3889 -13.5153 -0.2 - endloop - endfacet - facet normal 0.929521 -0.368768 0 - outer loop - vertex 12.419 -13.2773 0 - vertex 12.513 -13.0405 -0.2 - vertex 12.513 -13.0405 0 - endloop - endfacet - facet normal 0.929521 -0.368768 0 - outer loop - vertex 12.513 -13.0405 -0.2 - vertex 12.419 -13.2773 0 - vertex 12.419 -13.2773 -0.2 - endloop - endfacet - facet normal 0.832694 -0.553733 0 - outer loop - vertex 12.513 -13.0405 0 - vertex 12.6645 -12.8127 -0.2 - vertex 12.6645 -12.8127 0 - endloop - endfacet - facet normal 0.832694 -0.553733 0 - outer loop - vertex 12.6645 -12.8127 -0.2 - vertex 12.513 -13.0405 0 - vertex 12.513 -13.0405 -0.2 - endloop - endfacet - facet normal 0.721168 -0.69276 0 - outer loop - vertex 12.6645 -12.8127 0 - vertex 12.8673 -12.6015 -0.2 - vertex 12.8673 -12.6015 0 - endloop - endfacet - facet normal 0.721168 -0.69276 0 - outer loop - vertex 12.8673 -12.6015 -0.2 - vertex 12.6645 -12.8127 0 - vertex 12.6645 -12.8127 -0.2 - endloop - endfacet - facet normal 0.601691 -0.798729 0 - outer loop - vertex 12.8673 -12.6015 -0.2 - vertex 13.1153 -12.4148 0 - vertex 12.8673 -12.6015 0 - endloop - endfacet - facet normal 0.601691 -0.798729 0 - outer loop - vertex 13.1153 -12.4148 0 - vertex 12.8673 -12.6015 -0.2 - vertex 13.1153 -12.4148 -0.2 - endloop - endfacet - facet normal 0.474719 -0.880138 0 - outer loop - vertex 13.1153 -12.4148 -0.2 - vertex 13.4022 -12.26 0 - vertex 13.1153 -12.4148 0 - endloop - endfacet - facet normal 0.474719 -0.880138 0 - outer loop - vertex 13.4022 -12.26 0 - vertex 13.1153 -12.4148 -0.2 - vertex 13.4022 -12.26 -0.2 - endloop - endfacet - facet normal 0.33852 -0.940959 0 - outer loop - vertex 13.4022 -12.26 -0.2 - vertex 13.7217 -12.1451 0 - vertex 13.4022 -12.26 0 - endloop - endfacet - facet normal 0.33852 -0.940959 0 - outer loop - vertex 13.7217 -12.1451 0 - vertex 13.4022 -12.26 -0.2 - vertex 13.7217 -12.1451 -0.2 - endloop - endfacet - facet normal 0.283558 -0.958955 0 - outer loop - vertex 13.7217 -12.1451 -0.2 - vertex 16.811 -11.2316 0 - vertex 13.7217 -12.1451 0 - endloop - endfacet - facet normal 0.283558 -0.958955 0 - outer loop - vertex 16.811 -11.2316 0 - vertex 13.7217 -12.1451 -0.2 - vertex 16.811 -11.2316 -0.2 - endloop - endfacet - facet normal 0.280008 -0.959998 0 - outer loop - vertex 16.811 -11.2316 -0.2 - vertex 17.5824 -11.0066 0 - vertex 16.811 -11.2316 0 - endloop - endfacet - facet normal 0.280008 -0.959998 0 - outer loop - vertex 17.5824 -11.0066 0 - vertex 16.811 -11.2316 -0.2 - vertex 17.5824 -11.0066 -0.2 - endloop - endfacet - facet normal 0.251173 -0.967942 0 - outer loop - vertex 17.5824 -11.0066 -0.2 - vertex 18.2126 -10.843 0 - vertex 17.5824 -11.0066 0 - endloop - endfacet - facet normal 0.251173 -0.967942 0 - outer loop - vertex 18.2126 -10.843 0 - vertex 17.5824 -11.0066 -0.2 - vertex 18.2126 -10.843 -0.2 - endloop - endfacet - facet normal 0.200442 -0.979706 0 - outer loop - vertex 18.2126 -10.843 -0.2 - vertex 18.7132 -10.7406 0 - vertex 18.2126 -10.843 0 - endloop - endfacet - facet normal 0.200442 -0.979706 0 - outer loop - vertex 18.7132 -10.7406 0 - vertex 18.2126 -10.843 -0.2 - vertex 18.7132 -10.7406 -0.2 - endloop - endfacet - facet normal 0.10841 -0.994106 0 - outer loop - vertex 18.7132 -10.7406 -0.2 - vertex 19.0963 -10.6988 0 - vertex 18.7132 -10.7406 0 - endloop - endfacet - facet normal 0.10841 -0.994106 0 - outer loop - vertex 19.0963 -10.6988 0 - vertex 18.7132 -10.7406 -0.2 - vertex 19.0963 -10.6988 -0.2 - endloop - endfacet - facet normal -0.0664596 -0.997789 0 - outer loop - vertex 19.0963 -10.6988 -0.2 - vertex 19.3736 -10.7173 0 - vertex 19.0963 -10.6988 0 - endloop - endfacet - facet normal -0.0664596 -0.997789 -0 - outer loop - vertex 19.3736 -10.7173 0 - vertex 19.0963 -10.6988 -0.2 - vertex 19.3736 -10.7173 -0.2 - endloop - endfacet - facet normal -0.172939 0.984933 0 - outer loop - vertex 8.12348 -21.5274 -0.2 - vertex 7.71946 -21.5983 0 - vertex 8.12348 -21.5274 0 - endloop - endfacet - facet normal -0.172939 0.984933 0 - outer loop - vertex 7.71946 -21.5983 0 - vertex 8.12348 -21.5274 -0.2 - vertex 7.71946 -21.5983 -0.2 - endloop - endfacet - facet normal -0.287852 0.957675 0 - outer loop - vertex 7.71946 -21.5983 -0.2 - vertex 7.29763 -21.7251 0 - vertex 7.71946 -21.5983 0 - endloop - endfacet - facet normal -0.287852 0.957675 0 - outer loop - vertex 7.29763 -21.7251 0 - vertex 7.71946 -21.5983 -0.2 - vertex 7.29763 -21.7251 -0.2 - endloop - endfacet - facet normal -0.387479 0.921879 0 - outer loop - vertex 7.29763 -21.7251 -0.2 - vertex 6.8627 -21.9079 0 - vertex 7.29763 -21.7251 0 - endloop - endfacet - facet normal -0.387479 0.921879 0 - outer loop - vertex 6.8627 -21.9079 0 - vertex 7.29763 -21.7251 -0.2 - vertex 6.8627 -21.9079 -0.2 - endloop - endfacet - facet normal -0.474518 0.880246 0 - outer loop - vertex 6.8627 -21.9079 -0.2 - vertex 6.41939 -22.1469 0 - vertex 6.8627 -21.9079 0 - endloop - endfacet - facet normal -0.474518 0.880246 0 - outer loop - vertex 6.41939 -22.1469 0 - vertex 6.8627 -21.9079 -0.2 - vertex 6.41939 -22.1469 -0.2 - endloop - endfacet - facet normal -0.551235 0.83435 0 - outer loop - vertex 6.41939 -22.1469 -0.2 - vertex 5.97241 -22.4422 0 - vertex 6.41939 -22.1469 0 - endloop - endfacet - facet normal -0.551235 0.83435 0 - outer loop - vertex 5.97241 -22.4422 0 - vertex 6.41939 -22.1469 -0.2 - vertex 5.97241 -22.4422 -0.2 - endloop - endfacet - facet normal -0.619368 0.785101 0 - outer loop - vertex 5.97241 -22.4422 -0.2 - vertex 5.52647 -22.794 0 - vertex 5.97241 -22.4422 0 - endloop - endfacet - facet normal -0.619368 0.785101 0 - outer loop - vertex 5.52647 -22.794 0 - vertex 5.97241 -22.4422 -0.2 - vertex 5.52647 -22.794 -0.2 - endloop - endfacet - facet normal -0.680193 0.733033 0 - outer loop - vertex 5.52647 -22.794 -0.2 - vertex 5.08628 -23.2024 0 - vertex 5.52647 -22.794 0 - endloop - endfacet - facet normal -0.680193 0.733033 0 - outer loop - vertex 5.08628 -23.2024 0 - vertex 5.52647 -22.794 -0.2 - vertex 5.08628 -23.2024 -0.2 - endloop - endfacet - facet normal -0.733294 0.679911 0 - outer loop - vertex 4.45147 -23.8871 -0.2 - vertex 5.08628 -23.2024 0 - vertex 5.08628 -23.2024 -0.2 - endloop - endfacet - facet normal -0.733294 0.679911 0 - outer loop - vertex 5.08628 -23.2024 0 - vertex 4.45147 -23.8871 -0.2 - vertex 4.45147 -23.8871 0 - endloop - endfacet - facet normal -0.778151 0.628077 0 - outer loop - vertex 3.85887 -24.6213 -0.2 - vertex 4.45147 -23.8871 0 - vertex 4.45147 -23.8871 -0.2 - endloop - endfacet - facet normal -0.778151 0.628077 0 - outer loop - vertex 4.45147 -23.8871 0 - vertex 3.85887 -24.6213 -0.2 - vertex 3.85887 -24.6213 0 - endloop - endfacet - facet normal -0.816383 0.577511 0 - outer loop - vertex 3.31148 -25.3951 -0.2 - vertex 3.85887 -24.6213 0 - vertex 3.85887 -24.6213 -0.2 - endloop - endfacet - facet normal -0.816383 0.577511 0 - outer loop - vertex 3.85887 -24.6213 0 - vertex 3.31148 -25.3951 -0.2 - vertex 3.31148 -25.3951 0 - endloop - endfacet - facet normal -0.849413 0.527728 0 - outer loop - vertex 2.81229 -26.1986 -0.2 - vertex 3.31148 -25.3951 0 - vertex 3.31148 -25.3951 -0.2 - endloop - endfacet - facet normal -0.849413 0.527728 0 - outer loop - vertex 3.31148 -25.3951 0 - vertex 2.81229 -26.1986 -0.2 - vertex 2.81229 -26.1986 0 - endloop - endfacet - facet normal -0.878359 0.478001 0 - outer loop - vertex 2.36428 -27.0218 -0.2 - vertex 2.81229 -26.1986 0 - vertex 2.81229 -26.1986 -0.2 - endloop - endfacet - facet normal -0.878359 0.478001 0 - outer loop - vertex 2.81229 -26.1986 0 - vertex 2.36428 -27.0218 -0.2 - vertex 2.36428 -27.0218 0 - endloop - endfacet - facet normal -0.904067 0.427391 0 - outer loop - vertex 1.97046 -27.8549 -0.2 - vertex 2.36428 -27.0218 0 - vertex 2.36428 -27.0218 -0.2 - endloop - endfacet - facet normal -0.904067 0.427391 0 - outer loop - vertex 2.36428 -27.0218 0 - vertex 1.97046 -27.8549 -0.2 - vertex 1.97046 -27.8549 0 - endloop - endfacet - facet normal -0.927139 0.374717 0 - outer loop - vertex 1.63381 -28.6878 -0.2 - vertex 1.97046 -27.8549 0 - vertex 1.97046 -27.8549 -0.2 - endloop - endfacet - facet normal -0.927139 0.374717 0 - outer loop - vertex 1.97046 -27.8549 0 - vertex 1.63381 -28.6878 -0.2 - vertex 1.63381 -28.6878 0 - endloop - endfacet - facet normal -0.947927 0.318489 0 - outer loop - vertex 1.35733 -29.5107 -0.2 - vertex 1.63381 -28.6878 0 - vertex 1.63381 -28.6878 -0.2 - endloop - endfacet - facet normal -0.947927 0.318489 0 - outer loop - vertex 1.63381 -28.6878 0 - vertex 1.35733 -29.5107 -0.2 - vertex 1.35733 -29.5107 0 - endloop - endfacet - facet normal -0.966471 0.256775 0 - outer loop - vertex 1.144 -30.3137 -0.2 - vertex 1.35733 -29.5107 0 - vertex 1.35733 -29.5107 -0.2 - endloop - endfacet - facet normal -0.966471 0.256775 0 - outer loop - vertex 1.35733 -29.5107 0 - vertex 1.144 -30.3137 -0.2 - vertex 1.144 -30.3137 0 - endloop - endfacet - facet normal -0.982354 0.187033 0 - outer loop - vertex 0.99682 -31.0867 -0.2 - vertex 1.144 -30.3137 0 - vertex 1.144 -30.3137 -0.2 - endloop - endfacet - facet normal -0.982354 0.187033 0 - outer loop - vertex 1.144 -30.3137 0 - vertex 0.99682 -31.0867 -0.2 - vertex 0.99682 -31.0867 0 - endloop - endfacet - facet normal -0.994383 0.105841 0 - outer loop - vertex 0.918778 -31.8199 -0.2 - vertex 0.99682 -31.0867 0 - vertex 0.99682 -31.0867 -0.2 - endloop - endfacet - facet normal -0.994383 0.105841 0 - outer loop - vertex 0.99682 -31.0867 0 - vertex 0.918778 -31.8199 -0.2 - vertex 0.918778 -31.8199 0 - endloop - endfacet - facet normal -0.999392 0.0348629 0 - outer loop - vertex 0.906618 -32.1685 -0.2 - vertex 0.918778 -31.8199 0 - vertex 0.918778 -31.8199 -0.2 - endloop - endfacet - facet normal -0.999392 0.0348629 0 - outer loop - vertex 0.918778 -31.8199 0 - vertex 0.906618 -32.1685 -0.2 - vertex 0.906618 -32.1685 0 - endloop - endfacet - facet normal -0.999826 -0.0186499 0 - outer loop - vertex 0.912865 -32.5034 -0.2 - vertex 0.906618 -32.1685 0 - vertex 0.906618 -32.1685 -0.2 - endloop - endfacet - facet normal -0.999826 -0.0186499 0 - outer loop - vertex 0.906618 -32.1685 0 - vertex 0.912865 -32.5034 -0.2 - vertex 0.912865 -32.5034 0 - endloop - endfacet - facet normal -0.996955 -0.077982 0 - outer loop - vertex 0.937893 -32.8234 -0.2 - vertex 0.912865 -32.5034 0 - vertex 0.912865 -32.5034 -0.2 - endloop - endfacet - facet normal -0.996955 -0.077982 0 - outer loop - vertex 0.912865 -32.5034 0 - vertex 0.937893 -32.8234 -0.2 - vertex 0.937893 -32.8234 0 - endloop - endfacet - facet normal -0.98959 -0.143913 0 - outer loop - vertex 0.982074 -33.1272 -0.2 - vertex 0.937893 -32.8234 0 - vertex 0.937893 -32.8234 -0.2 - endloop - endfacet - facet normal -0.98959 -0.143913 0 - outer loop - vertex 0.937893 -32.8234 0 - vertex 0.982074 -33.1272 -0.2 - vertex 0.982074 -33.1272 0 - endloop - endfacet - facet normal -0.97614 -0.217144 0 - outer loop - vertex 1.04578 -33.4136 -0.2 - vertex 0.982074 -33.1272 0 - vertex 0.982074 -33.1272 -0.2 - endloop - endfacet - facet normal -0.97614 -0.217144 0 - outer loop - vertex 0.982074 -33.1272 0 - vertex 1.04578 -33.4136 -0.2 - vertex 1.04578 -33.4136 0 - endloop - endfacet - facet normal -0.954541 -0.298078 0 - outer loop - vertex 1.1294 -33.6813 -0.2 - vertex 1.04578 -33.4136 0 - vertex 1.04578 -33.4136 -0.2 - endloop - endfacet - facet normal -0.954541 -0.298078 0 - outer loop - vertex 1.04578 -33.4136 0 - vertex 1.1294 -33.6813 -0.2 - vertex 1.1294 -33.6813 0 - endloop - endfacet - facet normal -0.922268 -0.38655 0 - outer loop - vertex 1.23329 -33.9292 -0.2 - vertex 1.1294 -33.6813 0 - vertex 1.1294 -33.6813 -0.2 - endloop - endfacet - facet normal -0.922268 -0.38655 0 - outer loop - vertex 1.1294 -33.6813 0 - vertex 1.23329 -33.9292 -0.2 - vertex 1.23329 -33.9292 0 - endloop - endfacet - facet normal -0.876493 -0.481415 0 - outer loop - vertex 1.35782 -34.1559 -0.2 - vertex 1.23329 -33.9292 0 - vertex 1.23329 -33.9292 -0.2 - endloop - endfacet - facet normal -0.876493 -0.481415 0 - outer loop - vertex 1.23329 -33.9292 0 - vertex 1.35782 -34.1559 -0.2 - vertex 1.35782 -34.1559 0 - endloop - endfacet - facet normal -0.814521 -0.580134 0 - outer loop - vertex 1.50339 -34.3603 -0.2 - vertex 1.35782 -34.1559 0 - vertex 1.35782 -34.1559 -0.2 - endloop - endfacet - facet normal -0.814521 -0.580134 0 - outer loop - vertex 1.35782 -34.1559 0 - vertex 1.50339 -34.3603 -0.2 - vertex 1.50339 -34.3603 0 - endloop - endfacet - facet normal -0.734597 -0.678504 0 - outer loop - vertex 1.67035 -34.5411 -0.2 - vertex 1.50339 -34.3603 0 - vertex 1.50339 -34.3603 -0.2 - endloop - endfacet - facet normal -0.734597 -0.678504 0 - outer loop - vertex 1.50339 -34.3603 0 - vertex 1.67035 -34.5411 -0.2 - vertex 1.67035 -34.5411 0 - endloop - endfacet - facet normal -0.643892 -0.765116 0 - outer loop - vertex 1.67035 -34.5411 -0.2 - vertex 1.8149 -34.6627 0 - vertex 1.67035 -34.5411 0 - endloop - endfacet - facet normal -0.643892 -0.765116 -0 - outer loop - vertex 1.8149 -34.6627 0 - vertex 1.67035 -34.5411 -0.2 - vertex 1.8149 -34.6627 -0.2 - endloop - endfacet - facet normal -0.554297 -0.832319 0 - outer loop - vertex 1.8149 -34.6627 -0.2 - vertex 1.97535 -34.7696 0 - vertex 1.8149 -34.6627 0 - endloop - endfacet - facet normal -0.554297 -0.832319 -0 - outer loop - vertex 1.97535 -34.7696 0 - vertex 1.8149 -34.6627 -0.2 - vertex 1.97535 -34.7696 -0.2 - endloop - endfacet - facet normal -0.465589 -0.885001 0 - outer loop - vertex 1.97535 -34.7696 -0.2 - vertex 2.15022 -34.8616 0 - vertex 1.97535 -34.7696 0 - endloop - endfacet - facet normal -0.465589 -0.885001 -0 - outer loop - vertex 2.15022 -34.8616 0 - vertex 1.97535 -34.7696 -0.2 - vertex 2.15022 -34.8616 -0.2 - endloop - endfacet - facet normal -0.379703 -0.925108 0 - outer loop - vertex 2.15022 -34.8616 -0.2 - vertex 2.33801 -34.9386 0 - vertex 2.15022 -34.8616 0 - endloop - endfacet - facet normal -0.379703 -0.925108 -0 - outer loop - vertex 2.33801 -34.9386 0 - vertex 2.15022 -34.8616 -0.2 - vertex 2.33801 -34.9386 -0.2 - endloop - endfacet - facet normal -0.297589 -0.954694 0 - outer loop - vertex 2.33801 -34.9386 -0.2 - vertex 2.53723 -35.0007 0 - vertex 2.33801 -34.9386 0 - endloop - endfacet - facet normal -0.297589 -0.954694 -0 - outer loop - vertex 2.53723 -35.0007 0 - vertex 2.33801 -34.9386 -0.2 - vertex 2.53723 -35.0007 -0.2 - endloop - endfacet - facet normal -0.219494 -0.975614 0 - outer loop - vertex 2.53723 -35.0007 -0.2 - vertex 2.7464 -35.0478 0 - vertex 2.53723 -35.0007 0 - endloop - endfacet - facet normal -0.219494 -0.975614 -0 - outer loop - vertex 2.7464 -35.0478 0 - vertex 2.53723 -35.0007 -0.2 - vertex 2.7464 -35.0478 -0.2 - endloop - endfacet - facet normal -0.109599 -0.993976 0 - outer loop - vertex 2.7464 -35.0478 -0.2 - vertex 3.18861 -35.0966 0 - vertex 2.7464 -35.0478 0 - endloop - endfacet - facet normal -0.109599 -0.993976 -0 - outer loop - vertex 3.18861 -35.0966 0 - vertex 2.7464 -35.0478 -0.2 - vertex 3.18861 -35.0966 -0.2 - endloop - endfacet - facet normal 0.0261117 -0.999659 0 - outer loop - vertex 3.18861 -35.0966 -0.2 - vertex 3.65273 -35.0844 0 - vertex 3.18861 -35.0966 0 - endloop - endfacet - facet normal 0.0261117 -0.999659 0 - outer loop - vertex 3.65273 -35.0844 0 - vertex 3.18861 -35.0966 -0.2 - vertex 3.65273 -35.0844 -0.2 - endloop - endfacet - facet normal 0.153159 -0.988202 0 - outer loop - vertex 3.65273 -35.0844 -0.2 - vertex 4.12685 -35.011 0 - vertex 3.65273 -35.0844 0 - endloop - endfacet - facet normal 0.153159 -0.988202 0 - outer loop - vertex 4.12685 -35.011 0 - vertex 3.65273 -35.0844 -0.2 - vertex 4.12685 -35.011 -0.2 - endloop - endfacet - facet normal 0.275485 -0.961305 0 - outer loop - vertex 4.12685 -35.011 -0.2 - vertex 4.59905 -34.8756 0 - vertex 4.12685 -35.011 0 - endloop - endfacet - facet normal 0.275485 -0.961305 0 - outer loop - vertex 4.59905 -34.8756 0 - vertex 4.12685 -35.011 -0.2 - vertex 4.59905 -34.8756 -0.2 - endloop - endfacet - facet normal 0.39595 -0.918272 0 - outer loop - vertex 4.59905 -34.8756 -0.2 - vertex 5.05744 -34.678 0 - vertex 4.59905 -34.8756 0 - endloop - endfacet - facet normal 0.39595 -0.918272 0 - outer loop - vertex 5.05744 -34.678 0 - vertex 4.59905 -34.8756 -0.2 - vertex 5.05744 -34.678 -0.2 - endloop - endfacet - facet normal 0.498797 -0.866719 0 - outer loop - vertex 5.05744 -34.678 -0.2 - vertex 5.41146 -34.4742 0 - vertex 5.05744 -34.678 0 - endloop - endfacet - facet normal 0.498797 -0.866719 0 - outer loop - vertex 5.41146 -34.4742 0 - vertex 5.05744 -34.678 -0.2 - vertex 5.41146 -34.4742 -0.2 - endloop - endfacet - facet normal 0.615093 -0.788455 0 - outer loop - vertex 5.41146 -34.4742 -0.2 - vertex 5.72486 -34.2297 0 - vertex 5.41146 -34.4742 0 - endloop - endfacet - facet normal 0.615093 -0.788455 0 - outer loop - vertex 5.72486 -34.2297 0 - vertex 5.41146 -34.4742 -0.2 - vertex 5.72486 -34.2297 -0.2 - endloop - endfacet - facet normal 0.708025 -0.706188 0 - outer loop - vertex 5.72486 -34.2297 0 - vertex 5.87315 -34.0811 -0.2 - vertex 5.87315 -34.0811 0 - endloop - endfacet - facet normal 0.708025 -0.706188 0 - outer loop - vertex 5.87315 -34.0811 -0.2 - vertex 5.72486 -34.2297 0 - vertex 5.72486 -34.2297 -0.2 - endloop - endfacet - facet normal 0.762128 -0.647427 0 - outer loop - vertex 5.87315 -34.0811 0 - vertex 6.01946 -33.9088 -0.2 - vertex 6.01946 -33.9088 0 - endloop - endfacet - facet normal 0.762128 -0.647427 0 - outer loop - vertex 6.01946 -33.9088 -0.2 - vertex 5.87315 -34.0811 0 - vertex 5.87315 -34.0811 -0.2 - endloop - endfacet - facet normal 0.824099 -0.566446 0 - outer loop - vertex 6.01946 -33.9088 0 - vertex 6.31707 -33.4759 -0.2 - vertex 6.31707 -33.4759 0 - endloop - endfacet - facet normal 0.824099 -0.566446 0 - outer loop - vertex 6.31707 -33.4759 -0.2 - vertex 6.01946 -33.9088 0 - vertex 6.01946 -33.9088 -0.2 - endloop - endfacet - facet normal 0.874277 -0.485427 0 - outer loop - vertex 6.31707 -33.4759 0 - vertex 6.63949 -32.8952 -0.2 - vertex 6.63949 -32.8952 0 - endloop - endfacet - facet normal 0.874277 -0.485427 0 - outer loop - vertex 6.63949 -32.8952 -0.2 - vertex 6.31707 -33.4759 0 - vertex 6.31707 -33.4759 -0.2 - endloop - endfacet - facet normal 0.900468 -0.434923 0 - outer loop - vertex 6.63949 -32.8952 0 - vertex 7.00854 -32.1311 -0.2 - vertex 7.00854 -32.1311 0 - endloop - endfacet - facet normal 0.900468 -0.434923 0 - outer loop - vertex 7.00854 -32.1311 -0.2 - vertex 6.63949 -32.8952 0 - vertex 6.63949 -32.8952 -0.2 - endloop - endfacet - facet normal 0.913625 -0.406558 0 - outer loop - vertex 7.00854 -32.1311 0 - vertex 7.44603 -31.1479 -0.2 - vertex 7.44603 -31.1479 0 - endloop - endfacet - facet normal 0.913625 -0.406558 0 - outer loop - vertex 7.44603 -31.1479 -0.2 - vertex 7.00854 -32.1311 0 - vertex 7.00854 -32.1311 -0.2 - endloop - endfacet - facet normal 0.919886 -0.392186 0 - outer loop - vertex 7.44603 -31.1479 0 - vertex 7.97377 -29.9101 -0.2 - vertex 7.97377 -29.9101 0 - endloop - endfacet - facet normal 0.919886 -0.392186 0 - outer loop - vertex 7.97377 -29.9101 -0.2 - vertex 7.44603 -31.1479 0 - vertex 7.44603 -31.1479 -0.2 - endloop - endfacet - facet normal 0.924332 -0.381588 0 - outer loop - vertex 7.97377 -29.9101 0 - vertex 9.07864 -27.2338 -0.2 - vertex 9.07864 -27.2338 0 - endloop - endfacet - facet normal 0.924332 -0.381588 0 - outer loop - vertex 9.07864 -27.2338 -0.2 - vertex 7.97377 -29.9101 0 - vertex 7.97377 -29.9101 -0.2 - endloop - endfacet - facet normal 0.932155 -0.362059 0 - outer loop - vertex 9.07864 -27.2338 0 - vertex 9.46376 -26.2422 -0.2 - vertex 9.46376 -26.2422 0 - endloop - endfacet - facet normal 0.932155 -0.362059 0 - outer loop - vertex 9.46376 -26.2422 -0.2 - vertex 9.07864 -27.2338 0 - vertex 9.07864 -27.2338 -0.2 - endloop - endfacet - facet normal 0.941332 -0.337483 0 - outer loop - vertex 9.46376 -26.2422 0 - vertex 9.75283 -25.4359 -0.2 - vertex 9.75283 -25.4359 0 - endloop - endfacet - facet normal 0.941332 -0.337483 0 - outer loop - vertex 9.75283 -25.4359 -0.2 - vertex 9.46376 -26.2422 0 - vertex 9.46376 -26.2422 -0.2 - endloop - endfacet - facet normal 0.954562 -0.298012 0 - outer loop - vertex 9.75283 -25.4359 0 - vertex 9.95745 -24.7805 -0.2 - vertex 9.95745 -24.7805 0 - endloop - endfacet - facet normal 0.954562 -0.298012 0 - outer loop - vertex 9.95745 -24.7805 -0.2 - vertex 9.75283 -25.4359 0 - vertex 9.75283 -25.4359 -0.2 - endloop - endfacet - facet normal 0.971378 -0.237537 0 - outer loop - vertex 9.95745 -24.7805 0 - vertex 10.0892 -24.2416 -0.2 - vertex 10.0892 -24.2416 0 - endloop - endfacet - facet normal 0.971378 -0.237537 0 - outer loop - vertex 10.0892 -24.2416 -0.2 - vertex 9.95745 -24.7805 0 - vertex 9.95745 -24.7805 -0.2 - endloop - endfacet - facet normal 0.98828 -0.15265 0 - outer loop - vertex 10.0892 -24.2416 0 - vertex 10.1598 -23.7848 -0.2 - vertex 10.1598 -23.7848 0 - endloop - endfacet - facet normal 0.98828 -0.15265 0 - outer loop - vertex 10.1598 -23.7848 -0.2 - vertex 10.0892 -24.2416 0 - vertex 10.0892 -24.2416 -0.2 - endloop - endfacet - facet normal 0.998693 -0.0511194 0 - outer loop - vertex 10.1598 -23.7848 0 - vertex 10.1807 -23.3758 -0.2 - vertex 10.1807 -23.3758 0 - endloop - endfacet - facet normal 0.998693 -0.0511194 0 - outer loop - vertex 10.1807 -23.3758 -0.2 - vertex 10.1598 -23.7848 0 - vertex 10.1598 -23.7848 -0.2 - endloop - endfacet - facet normal 0.997227 0.0744219 0 - outer loop - vertex 10.1807 -23.3758 0 - vertex 10.149 -22.9513 -0.2 - vertex 10.149 -22.9513 0 - endloop - endfacet - facet normal 0.997227 0.0744219 0 - outer loop - vertex 10.149 -22.9513 -0.2 - vertex 10.1807 -23.3758 0 - vertex 10.1807 -23.3758 -0.2 - endloop - endfacet - facet normal 0.980241 0.197806 0 - outer loop - vertex 10.149 -22.9513 0 - vertex 10.1103 -22.7594 -0.2 - vertex 10.1103 -22.7594 0 - endloop - endfacet - facet normal 0.980241 0.197806 0 - outer loop - vertex 10.1103 -22.7594 -0.2 - vertex 10.149 -22.9513 0 - vertex 10.149 -22.9513 -0.2 - endloop - endfacet - facet normal 0.958253 0.285922 0 - outer loop - vertex 10.1103 -22.7594 0 - vertex 10.0571 -22.5812 -0.2 - vertex 10.0571 -22.5812 0 - endloop - endfacet - facet normal 0.958253 0.285922 0 - outer loop - vertex 10.0571 -22.5812 -0.2 - vertex 10.1103 -22.7594 0 - vertex 10.1103 -22.7594 -0.2 - endloop - endfacet - facet normal 0.926088 0.377307 0 - outer loop - vertex 10.0571 -22.5812 0 - vertex 9.99008 -22.4166 -0.2 - vertex 9.99008 -22.4166 0 - endloop - endfacet - facet normal 0.926088 0.377307 0 - outer loop - vertex 9.99008 -22.4166 -0.2 - vertex 10.0571 -22.5812 0 - vertex 10.0571 -22.5812 -0.2 - endloop - endfacet - facet normal 0.882715 0.469908 0 - outer loop - vertex 9.99008 -22.4166 0 - vertex 9.90973 -22.2656 -0.2 - vertex 9.90973 -22.2656 0 - endloop - endfacet - facet normal 0.882715 0.469908 0 - outer loop - vertex 9.90973 -22.2656 -0.2 - vertex 9.99008 -22.4166 0 - vertex 9.99008 -22.4166 -0.2 - endloop - endfacet - facet normal 0.827725 0.561134 0 - outer loop - vertex 9.90973 -22.2656 0 - vertex 9.81668 -22.1284 -0.2 - vertex 9.81668 -22.1284 0 - endloop - endfacet - facet normal 0.827725 0.561134 0 - outer loop - vertex 9.81668 -22.1284 -0.2 - vertex 9.90973 -22.2656 0 - vertex 9.90973 -22.2656 -0.2 - endloop - endfacet - facet normal 0.761518 0.648143 0 - outer loop - vertex 9.81668 -22.1284 0 - vertex 9.71152 -22.0048 -0.2 - vertex 9.71152 -22.0048 0 - endloop - endfacet - facet normal 0.761518 0.648143 0 - outer loop - vertex 9.71152 -22.0048 -0.2 - vertex 9.81668 -22.1284 0 - vertex 9.81668 -22.1284 -0.2 - endloop - endfacet - facet normal 0.685415 0.728153 -0 - outer loop - vertex 9.71152 -22.0048 -0.2 - vertex 9.59484 -21.895 0 - vertex 9.71152 -22.0048 0 - endloop - endfacet - facet normal 0.685415 0.728153 0 - outer loop - vertex 9.59484 -21.895 0 - vertex 9.71152 -22.0048 -0.2 - vertex 9.59484 -21.895 -0.2 - endloop - endfacet - facet normal 0.601514 0.798862 -0 - outer loop - vertex 9.59484 -21.895 -0.2 - vertex 9.46723 -21.7989 0 - vertex 9.59484 -21.895 0 - endloop - endfacet - facet normal 0.601514 0.798862 0 - outer loop - vertex 9.46723 -21.7989 0 - vertex 9.59484 -21.895 -0.2 - vertex 9.46723 -21.7989 -0.2 - endloop - endfacet - facet normal 0.467006 0.884254 -0 - outer loop - vertex 9.46723 -21.7989 -0.2 - vertex 9.18157 -21.6481 0 - vertex 9.46723 -21.7989 0 - endloop - endfacet - facet normal 0.467006 0.884254 0 - outer loop - vertex 9.18157 -21.6481 0 - vertex 9.46723 -21.7989 -0.2 - vertex 9.18157 -21.6481 -0.2 - endloop - endfacet - facet normal 0.284506 0.958674 -0 - outer loop - vertex 9.18157 -21.6481 -0.2 - vertex 8.85925 -21.5524 0 - vertex 9.18157 -21.6481 0 - endloop - endfacet - facet normal 0.284506 0.958674 0 - outer loop - vertex 8.85925 -21.5524 0 - vertex 9.18157 -21.6481 -0.2 - vertex 8.85925 -21.5524 -0.2 - endloop - endfacet - facet normal 0.112981 0.993597 -0 - outer loop - vertex 8.85925 -21.5524 -0.2 - vertex 8.50498 -21.5121 0 - vertex 8.85925 -21.5524 0 - endloop - endfacet - facet normal 0.112981 0.993597 0 - outer loop - vertex 8.50498 -21.5121 0 - vertex 8.85925 -21.5524 -0.2 - vertex 8.50498 -21.5121 -0.2 - endloop - endfacet - facet normal -0.039935 0.999202 0 - outer loop - vertex 8.50498 -21.5121 -0.2 - vertex 8.12348 -21.5274 0 - vertex 8.50498 -21.5121 0 - endloop - endfacet - facet normal -0.039935 0.999202 0 - outer loop - vertex 8.12348 -21.5274 0 - vertex 8.50498 -21.5121 -0.2 - vertex 8.12348 -21.5274 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.1179 -30.7807 -0.2 - vertex 30.2299 -31.0524 -0.2 - vertex 30.2187 -30.9454 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.1179 -30.7807 -0.2 - vertex 30.2187 -30.9454 -0.2 - vertex 30.1812 -30.855 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.2299 -31.0524 -0.2 - vertex 30.1179 -30.7807 -0.2 - vertex 30.2146 -31.1764 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.2146 -31.1764 -0.2 - vertex 30.1179 -30.7807 -0.2 - vertex 30.1726 -31.3179 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.9008 -30.6099 -0.2 - vertex 30.1726 -31.3179 -0.2 - vertex 30.1179 -30.7807 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.1726 -31.3179 -0.2 - vertex 29.9008 -30.6099 -0.2 - vertex 30.1034 -31.4773 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.7002 -30.4984 -0.2 - vertex 30.1034 -31.4773 -0.2 - vertex 29.9008 -30.6099 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.1034 -31.4773 -0.2 - vertex 29.7002 -30.4984 -0.2 - vertex 29.0845 -30.5466 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.8369 -30.6989 -0.2 - vertex 30.1034 -31.4773 -0.2 - vertex 29.0845 -30.5466 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.3033 -30.4642 -0.2 - vertex 29.7002 -30.4984 -0.2 - vertex 29.5048 -30.449 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.7002 -30.4984 -0.2 - vertex 29.3033 -30.4642 -0.2 - vertex 29.0845 -30.5466 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.1034 -31.4773 -0.2 - vertex 28.8369 -30.6989 -0.2 - vertex 29.8827 -31.8517 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.5495 -30.9236 -0.2 - vertex 29.8827 -31.8517 -0.2 - vertex 28.8369 -30.6989 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.8827 -31.8517 -0.2 - vertex 28.5495 -30.9236 -0.2 - vertex 29.5499 -32.3032 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.2108 -31.2235 -0.2 - vertex 29.5499 -32.3032 -0.2 - vertex 28.5495 -30.9236 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.5499 -32.3032 -0.2 - vertex 28.2108 -31.2235 -0.2 - vertex 29.1028 -32.8352 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 27.276 -32.055 -0.2 - vertex 29.1028 -32.8352 -0.2 - vertex 28.2108 -31.2235 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.1028 -32.8352 -0.2 - vertex 27.276 -32.055 -0.2 - vertex 28.539 -33.4515 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.539 -33.4515 -0.2 - vertex 27.276 -32.055 -0.2 - vertex 27.856 -34.1555 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.4309 -32.7448 -0.2 - vertex 27.856 -34.1555 -0.2 - vertex 27.276 -32.055 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.856 -34.1555 -0.2 - vertex 26.4309 -32.7448 -0.2 - vertex 27.3514 -34.6537 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.6577 -33.3022 -0.2 - vertex 27.3514 -34.6537 -0.2 - vertex 26.4309 -32.7448 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3514 -34.6537 -0.2 - vertex 25.6577 -33.3022 -0.2 - vertex 26.8832 -35.0925 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.2926 -33.5342 -0.2 - vertex 26.8832 -35.0925 -0.2 - vertex 25.6577 -33.3022 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8832 -35.0925 -0.2 - vertex 25.2926 -33.5342 -0.2 - vertex 26.4377 -35.4824 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.9388 -33.7368 -0.2 - vertex 26.4377 -35.4824 -0.2 - vertex 25.2926 -33.5342 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.4377 -35.4824 -0.2 - vertex 24.9388 -33.7368 -0.2 - vertex 26.0012 -35.834 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.5942 -33.911 -0.2 - vertex 26.0012 -35.834 -0.2 - vertex 24.9388 -33.7368 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0012 -35.834 -0.2 - vertex 24.5942 -33.911 -0.2 - vertex 25.5601 -36.1579 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.2566 -34.0582 -0.2 - vertex 25.5601 -36.1579 -0.2 - vertex 24.5942 -33.911 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.5601 -36.1579 -0.2 - vertex 24.2566 -34.0582 -0.2 - vertex 25.1006 -36.4644 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.9237 -34.1793 -0.2 - vertex 25.1006 -36.4644 -0.2 - vertex 24.2566 -34.0582 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.1006 -36.4644 -0.2 - vertex 23.9237 -34.1793 -0.2 - vertex 24.6091 -36.7642 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.5933 -34.2758 -0.2 - vertex 24.6091 -36.7642 -0.2 - vertex 23.9237 -34.1793 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.2634 -34.3487 -0.2 - vertex 24.6091 -36.7642 -0.2 - vertex 23.5933 -34.2758 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6091 -36.7642 -0.2 - vertex 23.2634 -34.3487 -0.2 - vertex 24.0719 -37.0678 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.9315 -34.3992 -0.2 - vertex 24.0719 -37.0678 -0.2 - vertex 23.2634 -34.3487 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.0719 -37.0678 -0.2 - vertex 22.9315 -34.3992 -0.2 - vertex 23.2902 -37.4839 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.5956 -34.4285 -0.2 - vertex 23.2902 -37.4839 -0.2 - vertex 22.9315 -34.3992 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.2534 -34.4379 -0.2 - vertex 23.2902 -37.4839 -0.2 - vertex 22.5956 -34.4285 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.2902 -37.4839 -0.2 - vertex 22.2534 -34.4379 -0.2 - vertex 22.6041 -37.8201 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.8355 -34.4151 -0.2 - vertex 22.6041 -37.8201 -0.2 - vertex 22.2534 -34.4379 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.6041 -37.8201 -0.2 - vertex 21.8355 -34.4151 -0.2 - vertex 21.9889 -38.084 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.43 -34.349 -0.2 - vertex 21.9889 -38.084 -0.2 - vertex 21.8355 -34.4151 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.43 -34.349 -0.2 - vertex 21.4197 -38.2833 -0.2 - vertex 21.9889 -38.084 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0421 -34.2419 -0.2 - vertex 21.4197 -38.2833 -0.2 - vertex 21.43 -34.349 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0421 -34.2419 -0.2 - vertex 20.8717 -38.4255 -0.2 - vertex 21.4197 -38.2833 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3202 -38.5182 -0.2 - vertex 21.0421 -34.2419 -0.2 - vertex 20.6768 -34.0963 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7403 -38.5689 -0.2 - vertex 20.6768 -34.0963 -0.2 - vertex 20.3392 -33.9144 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0421 -34.2419 -0.2 - vertex 20.3202 -38.5182 -0.2 - vertex 20.8717 -38.4255 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4669 -38.5591 -0.2 - vertex 20.3392 -33.9144 -0.2 - vertex 20.0345 -33.6987 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.8529 -38.0675 -0.2 - vertex 20.0345 -33.6987 -0.2 - vertex 19.7677 -33.4516 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.6768 -34.0963 -0.2 - vertex 19.7403 -38.5689 -0.2 - vertex 20.3202 -38.5182 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.927 -35.9398 -0.2 - vertex 19.7677 -33.4516 -0.2 - vertex 19.5439 -33.1754 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.6774 -34.4466 -0.2 - vertex 19.5439 -33.1754 -0.2 - vertex 19.466 -33.0295 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.6656 -33.913 -0.2 - vertex 19.466 -33.0295 -0.2 - vertex 19.403 -32.8415 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.73 -32.8205 -0.2 - vertex 19.403 -32.8415 -0.2 - vertex 19.3545 -32.6156 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.8056 -32.2631 -0.2 - vertex 19.3545 -32.6156 -0.2 - vertex 19.3203 -32.3556 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3392 -33.9144 -0.2 - vertex 19.1073 -38.5852 -0.2 - vertex 19.7403 -38.5689 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9098 -31.6993 -0.2 - vertex 19.3203 -32.3556 -0.2 - vertex 19.2935 -31.7496 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4186 -23.1088 -0.2 - vertex 32.0619 -22.7991 -0.2 - vertex 32.0349 -22.2828 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 32.0619 -22.7991 -0.2 - vertex 27.4186 -23.1088 -0.2 - vertex 32.0372 -23.3848 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3785 -22.8574 -0.2 - vertex 32.0349 -22.2828 -0.2 - vertex 31.9549 -21.8223 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 27.4312 -23.3865 -0.2 - vertex 32.0372 -23.3848 -0.2 - vertex 27.4186 -23.1088 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3785 -22.8574 -0.2 - vertex 31.9549 -21.8223 -0.2 - vertex 31.8204 -21.404 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 27.4161 -23.6904 -0.2 - vertex 31.9625 -24.0535 -0.2 - vertex 27.4312 -23.3865 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3785 -22.8574 -0.2 - vertex 31.8204 -21.404 -0.2 - vertex 31.6298 -21.0145 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.9625 -24.0535 -0.2 - vertex 27.4161 -23.6904 -0.2 - vertex 31.8392 -24.8188 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 27.373 -24.0204 -0.2 - vertex 31.8392 -24.8188 -0.2 - vertex 27.4161 -23.6904 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.8392 -24.8188 -0.2 - vertex 27.2401 -24.8188 -0.2 - vertex 31.6784 -25.7224 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3785 -22.8574 -0.2 - vertex 31.6298 -21.0145 -0.2 - vertex 31.3816 -20.64 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2401 -24.8188 -0.2 - vertex 31.8392 -24.8188 -0.2 - vertex 27.373 -24.0204 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3111 -22.6325 -0.2 - vertex 31.3816 -20.64 -0.2 - vertex 31.074 -20.2742 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 29.58 -27.3827 -0.2 - vertex 31.6784 -25.7224 -0.2 - vertex 27.2401 -24.8188 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 30.0709 -27.3331 -0.2 - vertex 31.6784 -25.7224 -0.2 - vertex 29.58 -27.3827 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3111 -22.6325 -0.2 - vertex 31.074 -20.2742 -0.2 - vertex 30.7365 -19.9631 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 30.4717 -27.2602 -0.2 - vertex 31.6003 -26.0834 -0.2 - vertex 30.0709 -27.3331 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3111 -22.6325 -0.2 - vertex 30.7365 -19.9631 -0.2 - vertex 30.3649 -19.705 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 30.7934 -27.1595 -0.2 - vertex 31.5092 -26.3899 -0.2 - vertex 30.4717 -27.2602 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2166 -22.4344 -0.2 - vertex 30.3649 -19.705 -0.2 - vertex 29.9546 -19.4981 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 31.047 -27.0266 -0.2 - vertex 31.3939 -26.6463 -0.2 - vertex 30.7934 -27.1595 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2166 -22.4344 -0.2 - vertex 29.9546 -19.4981 -0.2 - vertex 29.5013 -19.3404 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2166 -22.4344 -0.2 - vertex 29.5013 -19.3404 -0.2 - vertex 29.0007 -19.2301 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.3939 -26.6463 -0.2 - vertex 31.047 -27.0266 -0.2 - vertex 31.2435 -26.857 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0952 -22.2631 -0.2 - vertex 29.0007 -19.2301 -0.2 - vertex 28.4483 -19.1654 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9471 -22.1189 -0.2 - vertex 28.4483 -19.1654 -0.2 - vertex 27.8398 -19.1444 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 32.0372 -23.3848 -0.2 - vertex 27.4312 -23.3865 -0.2 - vertex 31.9625 -24.0535 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.6003 -26.0834 -0.2 - vertex 30.4717 -27.2602 -0.2 - vertex 31.5092 -26.3899 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.5092 -26.3899 -0.2 - vertex 30.7934 -27.1595 -0.2 - vertex 31.3939 -26.6463 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 32.0349 -22.2828 -0.2 - vertex 27.3785 -22.8574 -0.2 - vertex 27.4186 -23.1088 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.3816 -20.64 -0.2 - vertex 27.3111 -22.6325 -0.2 - vertex 27.3785 -22.8574 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.3649 -19.705 -0.2 - vertex 27.2166 -22.4344 -0.2 - vertex 27.3111 -22.6325 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.7726 -22.0019 -0.2 - vertex 27.8398 -19.1444 -0.2 - vertex 27.1629 -19.1581 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.0007 -19.2301 -0.2 - vertex 27.0952 -22.2631 -0.2 - vertex 27.2166 -22.4344 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.4483 -19.1654 -0.2 - vertex 26.9471 -22.1189 -0.2 - vertex 27.0952 -22.2631 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.8398 -19.1444 -0.2 - vertex 26.7726 -22.0019 -0.2 - vertex 26.9471 -22.1189 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.1629 -19.1581 -0.2 - vertex 26.5717 -21.9122 -0.2 - vertex 26.7726 -22.0019 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.5531 -19.2026 -0.2 - vertex 26.5717 -21.9122 -0.2 - vertex 27.1629 -19.1581 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.5531 -19.2026 -0.2 - vertex 26.3449 -21.8501 -0.2 - vertex 26.5717 -21.9122 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.9886 -19.284 -0.2 - vertex 26.3449 -21.8501 -0.2 - vertex 26.5531 -19.2026 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.3449 -21.8501 -0.2 - vertex 25.9886 -19.284 -0.2 - vertex 26.0922 -21.8157 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.4477 -19.4082 -0.2 - vertex 26.0922 -21.8157 -0.2 - vertex 25.9886 -19.284 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0922 -21.8157 -0.2 - vertex 25.4477 -19.4082 -0.2 - vertex 25.8138 -21.8092 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.8138 -21.8092 -0.2 - vertex 25.4477 -19.4082 -0.2 - vertex 25.51 -21.8307 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.9086 -19.5812 -0.2 - vertex 25.51 -21.8307 -0.2 - vertex 25.4477 -19.4082 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.51 -21.8307 -0.2 - vertex 24.9086 -19.5812 -0.2 - vertex 25.181 -21.8805 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.3497 -19.8089 -0.2 - vertex 25.181 -21.8805 -0.2 - vertex 24.9086 -19.5812 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.181 -21.8805 -0.2 - vertex 24.3497 -19.8089 -0.2 - vertex 24.827 -21.9586 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.7493 -20.0973 -0.2 - vertex 24.827 -21.9586 -0.2 - vertex 24.3497 -19.8089 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.827 -21.9586 -0.2 - vertex 23.7493 -20.0973 -0.2 - vertex 24.5319 -22.0421 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.5319 -22.0421 -0.2 - vertex 23.7493 -20.0973 -0.2 - vertex 24.2621 -22.1397 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.0854 -20.4525 -0.2 - vertex 24.2621 -22.1397 -0.2 - vertex 23.7493 -20.0973 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.2621 -22.1397 -0.2 - vertex 23.0854 -20.4525 -0.2 - vertex 24.0091 -22.2567 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.0091 -22.2567 -0.2 - vertex 23.0854 -20.4525 -0.2 - vertex 23.7644 -22.3987 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.3543 -20.8886 -0.2 - vertex 23.7644 -22.3987 -0.2 - vertex 23.0854 -20.4525 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.7644 -22.3987 -0.2 - vertex 22.3543 -20.8886 -0.2 - vertex 23.5194 -22.5712 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.5194 -22.5712 -0.2 - vertex 22.3543 -20.8886 -0.2 - vertex 23.2657 -22.7795 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.6485 -21.3703 -0.2 - vertex 23.2657 -22.7795 -0.2 - vertex 22.3543 -20.8886 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.2657 -22.7795 -0.2 - vertex 21.6485 -21.3703 -0.2 - vertex 22.6979 -23.3258 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 20.9665 -21.899 -0.2 - vertex 22.6979 -23.3258 -0.2 - vertex 21.6485 -21.3703 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.6979 -23.3258 -0.2 - vertex 20.9665 -21.899 -0.2 - vertex 22.2832 -23.7683 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 20.3071 -22.4759 -0.2 - vertex 22.2832 -23.7683 -0.2 - vertex 20.9665 -21.899 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.2832 -23.7683 -0.2 - vertex 20.3071 -22.4759 -0.2 - vertex 21.9437 -24.1601 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.9437 -24.1601 -0.2 - vertex 20.3071 -22.4759 -0.2 - vertex 21.7143 -24.4589 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.6689 -23.1024 -0.2 - vertex 21.7143 -24.4589 -0.2 - vertex 20.3071 -22.4759 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.6784 -25.7224 -0.2 - vertex 30.0709 -27.3331 -0.2 - vertex 31.6003 -26.0834 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.58 -27.3827 -0.2 - vertex 27.2401 -24.8188 -0.2 - vertex 28.988 -27.4135 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.988 -27.4135 -0.2 - vertex 27.2401 -24.8188 -0.2 - vertex 27.4568 -27.4364 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2401 -24.8188 -0.2 - vertex 25.3891 -27.4375 -0.2 - vertex 27.4568 -27.4364 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.435 -24.8188 -0.2 - vertex 25.3891 -27.4375 -0.2 - vertex 27.2401 -24.8188 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.3459 -24.8032 -0.2 - vertex 25.3891 -27.4375 -0.2 - vertex 24.435 -24.8188 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.454 -24.761 -0.2 - vertex 25.3891 -27.4375 -0.2 - vertex 23.3459 -24.8032 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.1247 -27.4424 -0.2 - vertex 22.454 -24.761 -0.2 - vertex 21.8514 -24.6984 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.1247 -27.4424 -0.2 - vertex 21.8514 -24.6984 -0.2 - vertex 21.6873 -24.6616 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.1247 -27.4424 -0.2 - vertex 21.6873 -24.6616 -0.2 - vertex 21.63 -24.6221 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.7143 -24.4589 -0.2 - vertex 19.6689 -23.1024 -0.2 - vertex 21.6518 -24.5601 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.454 -24.761 -0.2 - vertex 20.1247 -27.4424 -0.2 - vertex 25.3891 -27.4375 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.6518 -24.5601 -0.2 - vertex 19.6689 -23.1024 -0.2 - vertex 21.63 -24.6221 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.0503 -23.7798 -0.2 - vertex 21.63 -24.6221 -0.2 - vertex 19.6689 -23.1024 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 18.4501 -24.5093 -0.2 - vertex 21.63 -24.6221 -0.2 - vertex 19.0503 -23.7798 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.63 -24.6221 -0.2 - vertex 18.4501 -24.5093 -0.2 - vertex 20.1247 -27.4424 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 17.8667 -25.2923 -0.2 - vertex 20.1247 -27.4424 -0.2 - vertex 18.4501 -24.5093 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 17.4656 -25.8764 -0.2 - vertex 20.1247 -27.4424 -0.2 - vertex 17.8667 -25.2923 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 17.0901 -26.4624 -0.2 - vertex 20.1247 -27.4424 -0.2 - vertex 17.4656 -25.8764 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.1247 -27.4424 -0.2 - vertex 17.0901 -26.4624 -0.2 - vertex 19.9171 -28.0436 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 16.7406 -27.0496 -0.2 - vertex 19.9171 -28.0436 -0.2 - vertex 17.0901 -26.4624 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.9171 -28.0436 -0.2 - vertex 16.7406 -27.0496 -0.2 - vertex 19.6992 -28.7679 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 16.4172 -27.6373 -0.2 - vertex 19.6992 -28.7679 -0.2 - vertex 16.7406 -27.0496 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6992 -28.7679 -0.2 - vertex 16.4172 -27.6373 -0.2 - vertex 19.5256 -29.5327 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 16.1203 -28.2246 -0.2 - vertex 19.5256 -29.5327 -0.2 - vertex 16.4172 -27.6373 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.8502 -28.8109 -0.2 - vertex 19.5256 -29.5327 -0.2 - vertex 16.1203 -28.2246 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5256 -29.5327 -0.2 - vertex 15.8502 -28.8109 -0.2 - vertex 19.3985 -30.306 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.6071 -29.3953 -0.2 - vertex 19.3985 -30.306 -0.2 - vertex 15.8502 -28.8109 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.3912 -29.9771 -0.2 - vertex 19.3985 -30.306 -0.2 - vertex 15.6071 -29.3953 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3985 -30.306 -0.2 - vertex 15.3912 -29.9771 -0.2 - vertex 19.3204 -31.0557 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.2028 -30.5555 -0.2 - vertex 19.3204 -31.0557 -0.2 - vertex 15.3912 -29.9771 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3204 -31.0557 -0.2 - vertex 15.2028 -30.5555 -0.2 - vertex 19.2935 -31.7496 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.0423 -31.1299 -0.2 - vertex 19.2935 -31.7496 -0.2 - vertex 15.2028 -30.5555 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.9098 -31.6993 -0.2 - vertex 19.2935 -31.7496 -0.2 - vertex 15.0423 -31.1299 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3203 -32.3556 -0.2 - vertex 14.9098 -31.6993 -0.2 - vertex 14.8056 -32.2631 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3545 -32.6156 -0.2 - vertex 14.8056 -32.2631 -0.2 - vertex 14.73 -32.8205 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.403 -32.8415 -0.2 - vertex 14.73 -32.8205 -0.2 - vertex 14.6832 -33.3707 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.403 -32.8415 -0.2 - vertex 14.6832 -33.3707 -0.2 - vertex 14.6656 -33.913 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.466 -33.0295 -0.2 - vertex 14.6656 -33.913 -0.2 - vertex 14.6774 -34.4466 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5439 -33.1754 -0.2 - vertex 14.6774 -34.4466 -0.2 - vertex 14.7369 -35.0944 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3392 -33.9144 -0.2 - vertex 18.4669 -38.5591 -0.2 - vertex 19.1073 -38.5852 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0345 -33.6987 -0.2 - vertex 18.1792 -38.5233 -0.2 - vertex 18.4669 -38.5591 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0345 -33.6987 -0.2 - vertex 17.9062 -38.4707 -0.2 - vertex 18.1792 -38.5233 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0345 -33.6987 -0.2 - vertex 17.6424 -38.4 -0.2 - vertex 17.9062 -38.4707 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0345 -33.6987 -0.2 - vertex 17.3825 -38.3101 -0.2 - vertex 17.6424 -38.4 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0345 -33.6987 -0.2 - vertex 17.1211 -38.1997 -0.2 - vertex 17.3825 -38.3101 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0345 -33.6987 -0.2 - vertex 16.8529 -38.0675 -0.2 - vertex 17.1211 -38.1997 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5439 -33.1754 -0.2 - vertex 14.7369 -35.0944 -0.2 - vertex 14.8496 -35.6738 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 16.342 -37.7658 -0.2 - vertex 16.8529 -38.0675 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5439 -33.1754 -0.2 - vertex 14.8496 -35.6738 -0.2 - vertex 14.927 -35.9398 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 16.1153 -37.6039 -0.2 - vertex 16.342 -37.7658 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 15.907 -37.4336 -0.2 - vertex 16.1153 -37.6039 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 15.7167 -37.2541 -0.2 - vertex 15.907 -37.4336 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 15.544 -37.0647 -0.2 - vertex 15.7167 -37.2541 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 15.3884 -36.8644 -0.2 - vertex 15.544 -37.0647 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 15.2493 -36.6526 -0.2 - vertex 15.3884 -36.8644 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 15.1264 -36.4284 -0.2 - vertex 15.2493 -36.6526 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 14.927 -35.9398 -0.2 - vertex 15.0191 -36.1911 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 15.0191 -36.1911 -0.2 - vertex 15.1264 -36.4284 -0.2 - endloop - endfacet - facet normal -0.116346 -0.993209 0 - outer loop - vertex 28.4483 -19.1654 -0.2 - vertex 29.0007 -19.2301 0 - vertex 28.4483 -19.1654 0 - endloop - endfacet - facet normal -0.116346 -0.993209 -0 - outer loop - vertex 29.0007 -19.2301 0 - vertex 28.4483 -19.1654 -0.2 - vertex 29.0007 -19.2301 -0.2 - endloop - endfacet - facet normal -0.215114 -0.976589 0 - outer loop - vertex 29.0007 -19.2301 -0.2 - vertex 29.5013 -19.3404 0 - vertex 29.0007 -19.2301 0 - endloop - endfacet - facet normal -0.215114 -0.976589 -0 - outer loop - vertex 29.5013 -19.3404 0 - vertex 29.0007 -19.2301 -0.2 - vertex 29.5013 -19.3404 -0.2 - endloop - endfacet - facet normal -0.328588 -0.944473 0 - outer loop - vertex 29.5013 -19.3404 -0.2 - vertex 29.9546 -19.4981 0 - vertex 29.5013 -19.3404 0 - endloop - endfacet - facet normal -0.328588 -0.944473 -0 - outer loop - vertex 29.9546 -19.4981 0 - vertex 29.5013 -19.3404 -0.2 - vertex 29.9546 -19.4981 -0.2 - endloop - endfacet - facet normal -0.450382 -0.892836 0 - outer loop - vertex 29.9546 -19.4981 -0.2 - vertex 30.3649 -19.705 0 - vertex 29.9546 -19.4981 0 - endloop - endfacet - facet normal -0.450382 -0.892836 -0 - outer loop - vertex 30.3649 -19.705 0 - vertex 29.9546 -19.4981 -0.2 - vertex 30.3649 -19.705 -0.2 - endloop - endfacet - facet normal -0.570354 -0.821399 0 - outer loop - vertex 30.3649 -19.705 -0.2 - vertex 30.7365 -19.9631 0 - vertex 30.3649 -19.705 0 - endloop - endfacet - facet normal -0.570354 -0.821399 -0 - outer loop - vertex 30.7365 -19.9631 0 - vertex 30.3649 -19.705 -0.2 - vertex 30.7365 -19.9631 -0.2 - endloop - endfacet - facet normal -0.677745 -0.735297 0 - outer loop - vertex 30.7365 -19.9631 -0.2 - vertex 31.074 -20.2742 0 - vertex 30.7365 -19.9631 0 - endloop - endfacet - facet normal -0.677745 -0.735297 -0 - outer loop - vertex 31.074 -20.2742 0 - vertex 30.7365 -19.9631 -0.2 - vertex 31.074 -20.2742 -0.2 - endloop - endfacet - facet normal -0.765393 -0.643563 0 - outer loop - vertex 31.3816 -20.64 -0.2 - vertex 31.074 -20.2742 0 - vertex 31.074 -20.2742 -0.2 - endloop - endfacet - facet normal -0.765393 -0.643563 0 - outer loop - vertex 31.074 -20.2742 0 - vertex 31.3816 -20.64 -0.2 - vertex 31.3816 -20.64 0 - endloop - endfacet - facet normal -0.833589 -0.552384 0 - outer loop - vertex 31.6298 -21.0145 -0.2 - vertex 31.3816 -20.64 0 - vertex 31.3816 -20.64 -0.2 - endloop - endfacet - facet normal -0.833589 -0.552384 0 - outer loop - vertex 31.3816 -20.64 0 - vertex 31.6298 -21.0145 -0.2 - vertex 31.6298 -21.0145 0 - endloop - endfacet - facet normal -0.898247 -0.439492 0 - outer loop - vertex 31.8204 -21.404 -0.2 - vertex 31.6298 -21.0145 0 - vertex 31.6298 -21.0145 -0.2 - endloop - endfacet - facet normal -0.898247 -0.439492 0 - outer loop - vertex 31.6298 -21.0145 0 - vertex 31.8204 -21.404 -0.2 - vertex 31.8204 -21.404 0 - endloop - endfacet - facet normal -0.951943 -0.306275 0 - outer loop - vertex 31.9549 -21.8223 -0.2 - vertex 31.8204 -21.404 0 - vertex 31.8204 -21.404 -0.2 - endloop - endfacet - facet normal -0.951943 -0.306275 0 - outer loop - vertex 31.8204 -21.404 0 - vertex 31.9549 -21.8223 -0.2 - vertex 31.9549 -21.8223 0 - endloop - endfacet - facet normal -0.985239 -0.171183 0 - outer loop - vertex 32.0349 -22.2828 -0.2 - vertex 31.9549 -21.8223 0 - vertex 31.9549 -21.8223 -0.2 - endloop - endfacet - facet normal -0.985239 -0.171183 0 - outer loop - vertex 31.9549 -21.8223 0 - vertex 32.0349 -22.2828 -0.2 - vertex 32.0349 -22.2828 0 - endloop - endfacet - facet normal -0.998641 -0.0521185 0 - outer loop - vertex 32.0619 -22.7991 -0.2 - vertex 32.0349 -22.2828 0 - vertex 32.0349 -22.2828 -0.2 - endloop - endfacet - facet normal -0.998641 -0.0521185 0 - outer loop - vertex 32.0349 -22.2828 0 - vertex 32.0619 -22.7991 -0.2 - vertex 32.0619 -22.7991 0 - endloop - endfacet - facet normal -0.999117 0.0420155 0 - outer loop - vertex 32.0372 -23.3848 -0.2 - vertex 32.0619 -22.7991 0 - vertex 32.0619 -22.7991 -0.2 - endloop - endfacet - facet normal -0.999117 0.0420155 0 - outer loop - vertex 32.0619 -22.7991 0 - vertex 32.0372 -23.3848 -0.2 - vertex 32.0372 -23.3848 0 - endloop - endfacet - facet normal -0.993814 0.111054 0 - outer loop - vertex 31.9625 -24.0535 -0.2 - vertex 32.0372 -23.3848 0 - vertex 32.0372 -23.3848 -0.2 - endloop - endfacet - facet normal -0.993814 0.111054 0 - outer loop - vertex 32.0372 -23.3848 0 - vertex 31.9625 -24.0535 -0.2 - vertex 31.9625 -24.0535 0 - endloop - endfacet - facet normal -0.98726 0.159117 0 - outer loop - vertex 31.8392 -24.8188 -0.2 - vertex 31.9625 -24.0535 0 - vertex 31.9625 -24.0535 -0.2 - endloop - endfacet - facet normal -0.98726 0.159117 0 - outer loop - vertex 31.9625 -24.0535 0 - vertex 31.8392 -24.8188 -0.2 - vertex 31.8392 -24.8188 0 - endloop - endfacet - facet normal -0.984533 0.175198 0 - outer loop - vertex 31.6784 -25.7224 -0.2 - vertex 31.8392 -24.8188 0 - vertex 31.8392 -24.8188 -0.2 - endloop - endfacet - facet normal -0.984533 0.175198 0 - outer loop - vertex 31.8392 -24.8188 0 - vertex 31.6784 -25.7224 -0.2 - vertex 31.6784 -25.7224 0 - endloop - endfacet - facet normal -0.977413 0.211338 0 - outer loop - vertex 31.6003 -26.0834 -0.2 - vertex 31.6784 -25.7224 0 - vertex 31.6784 -25.7224 -0.2 - endloop - endfacet - facet normal -0.977413 0.211338 0 - outer loop - vertex 31.6784 -25.7224 0 - vertex 31.6003 -26.0834 -0.2 - vertex 31.6003 -26.0834 0 - endloop - endfacet - facet normal -0.958488 0.285133 0 - outer loop - vertex 31.5092 -26.3899 -0.2 - vertex 31.6003 -26.0834 0 - vertex 31.6003 -26.0834 -0.2 - endloop - endfacet - facet normal -0.958488 0.285133 0 - outer loop - vertex 31.6003 -26.0834 0 - vertex 31.5092 -26.3899 -0.2 - vertex 31.5092 -26.3899 0 - endloop - endfacet - facet normal -0.912047 0.410085 0 - outer loop - vertex 31.3939 -26.6463 -0.2 - vertex 31.5092 -26.3899 0 - vertex 31.5092 -26.3899 -0.2 - endloop - endfacet - facet normal -0.912047 0.410085 0 - outer loop - vertex 31.5092 -26.3899 0 - vertex 31.3939 -26.6463 -0.2 - vertex 31.3939 -26.6463 0 - endloop - endfacet - facet normal -0.814021 0.580836 0 - outer loop - vertex 31.2435 -26.857 -0.2 - vertex 31.3939 -26.6463 0 - vertex 31.3939 -26.6463 -0.2 - endloop - endfacet - facet normal -0.814021 0.580836 0 - outer loop - vertex 31.3939 -26.6463 0 - vertex 31.2435 -26.857 -0.2 - vertex 31.2435 -26.857 0 - endloop - endfacet - facet normal -0.653404 0.75701 0 - outer loop - vertex 31.2435 -26.857 -0.2 - vertex 31.047 -27.0266 0 - vertex 31.2435 -26.857 0 - endloop - endfacet - facet normal -0.653404 0.75701 0 - outer loop - vertex 31.047 -27.0266 0 - vertex 31.2435 -26.857 -0.2 - vertex 31.047 -27.0266 -0.2 - endloop - endfacet - facet normal -0.464184 0.885739 0 - outer loop - vertex 31.047 -27.0266 -0.2 - vertex 30.7934 -27.1595 0 - vertex 31.047 -27.0266 0 - endloop - endfacet - facet normal -0.464184 0.885739 0 - outer loop - vertex 30.7934 -27.1595 0 - vertex 31.047 -27.0266 -0.2 - vertex 30.7934 -27.1595 -0.2 - endloop - endfacet - facet normal -0.298657 0.954361 0 - outer loop - vertex 30.7934 -27.1595 -0.2 - vertex 30.4717 -27.2602 0 - vertex 30.7934 -27.1595 0 - endloop - endfacet - facet normal -0.298657 0.954361 0 - outer loop - vertex 30.4717 -27.2602 0 - vertex 30.7934 -27.1595 -0.2 - vertex 30.4717 -27.2602 -0.2 - endloop - endfacet - facet normal -0.17896 0.983856 0 - outer loop - vertex 30.4717 -27.2602 -0.2 - vertex 30.0709 -27.3331 0 - vertex 30.4717 -27.2602 0 - endloop - endfacet - facet normal -0.17896 0.983856 0 - outer loop - vertex 30.0709 -27.3331 0 - vertex 30.4717 -27.2602 -0.2 - vertex 30.0709 -27.3331 -0.2 - endloop - endfacet - facet normal -0.100534 0.994934 0 - outer loop - vertex 30.0709 -27.3331 -0.2 - vertex 29.58 -27.3827 0 - vertex 30.0709 -27.3331 0 - endloop - endfacet - facet normal -0.100534 0.994934 0 - outer loop - vertex 29.58 -27.3827 0 - vertex 30.0709 -27.3331 -0.2 - vertex 29.58 -27.3827 -0.2 - endloop - endfacet - facet normal -0.0519093 0.998652 0 - outer loop - vertex 29.58 -27.3827 -0.2 - vertex 28.988 -27.4135 0 - vertex 29.58 -27.3827 0 - endloop - endfacet - facet normal -0.0519093 0.998652 0 - outer loop - vertex 28.988 -27.4135 0 - vertex 29.58 -27.3827 -0.2 - vertex 28.988 -27.4135 -0.2 - endloop - endfacet - facet normal -0.014953 0.999888 0 - outer loop - vertex 28.988 -27.4135 -0.2 - vertex 27.4568 -27.4364 0 - vertex 28.988 -27.4135 0 - endloop - endfacet - facet normal -0.014953 0.999888 0 - outer loop - vertex 27.4568 -27.4364 0 - vertex 28.988 -27.4135 -0.2 - vertex 27.4568 -27.4364 -0.2 - endloop - endfacet - facet normal -0.000556252 1 0 - outer loop - vertex 27.4568 -27.4364 -0.2 - vertex 25.3891 -27.4375 0 - vertex 27.4568 -27.4364 0 - endloop - endfacet - facet normal -0.000556252 1 0 - outer loop - vertex 25.3891 -27.4375 0 - vertex 27.4568 -27.4364 -0.2 - vertex 25.3891 -27.4375 -0.2 + vertex 25.3774 -27.4375 0 + vertex 28.9763 -27.4135 -3 + vertex 25.3774 -27.4375 -3 endloop endfacet facet normal -0.00092424 1 0 outer loop - vertex 25.3891 -27.4375 -0.2 - vertex 20.1247 -27.4424 0 - vertex 25.3891 -27.4375 0 + vertex 25.3774 -27.4375 -3 + vertex 20.1129 -27.4424 0 + vertex 25.3774 -27.4375 0 endloop endfacet facet normal -0.00092424 1 0 outer loop - vertex 20.1247 -27.4424 0 - vertex 25.3891 -27.4375 -0.2 - vertex 20.1247 -27.4424 -0.2 + vertex 20.1129 -27.4424 0 + vertex 25.3774 -27.4375 -3 + vertex 20.1129 -27.4424 -3 endloop endfacet - facet normal -0.945282 0.326254 0 + facet normal -0.945282 0.326255 0 outer loop - vertex 19.9171 -28.0436 -0.2 - vertex 20.1247 -27.4424 0 - vertex 20.1247 -27.4424 -0.2 + vertex 19.9054 -28.0436 -3 + vertex 20.1129 -27.4424 0 + vertex 20.1129 -27.4424 -3 endloop endfacet - facet normal -0.945282 0.326254 0 + facet normal -0.945282 0.326255 0 outer loop - vertex 20.1247 -27.4424 0 - vertex 19.9171 -28.0436 -0.2 - vertex 19.9171 -28.0436 0 + vertex 20.1129 -27.4424 0 + vertex 19.9054 -28.0436 -3 + vertex 19.9054 -28.0436 0 endloop endfacet - facet normal -0.957593 0.288124 0 + facet normal -0.967122 0.254313 0 outer loop - vertex 19.6992 -28.7679 -0.2 - vertex 19.9171 -28.0436 0 - vertex 19.9171 -28.0436 -0.2 + vertex 19.5138 -29.5327 -3 + vertex 19.9054 -28.0436 0 + vertex 19.9054 -28.0436 -3 endloop endfacet - facet normal -0.957593 0.288124 0 + facet normal -0.967122 0.254313 0 outer loop - vertex 19.9171 -28.0436 0 - vertex 19.6992 -28.7679 -0.2 - vertex 19.6992 -28.7679 0 + vertex 19.9054 -28.0436 0 + vertex 19.5138 -29.5327 -3 + vertex 19.5138 -29.5327 0 endloop endfacet - facet normal -0.97518 0.221412 0 + facet normal -0.991046 0.133521 0 outer loop - vertex 19.5256 -29.5327 -0.2 - vertex 19.6992 -28.7679 0 - vertex 19.6992 -28.7679 -0.2 + vertex 19.3087 -31.0557 -3 + vertex 19.5138 -29.5327 0 + vertex 19.5138 -29.5327 -3 endloop endfacet - facet normal -0.97518 0.221412 0 + facet normal -0.991046 0.133521 0 outer loop - vertex 19.6992 -28.7679 0 - vertex 19.5256 -29.5327 -0.2 - vertex 19.5256 -29.5327 0 + vertex 19.5138 -29.5327 0 + vertex 19.3087 -31.0557 -3 + vertex 19.3087 -31.0557 0 endloop endfacet - facet normal -0.986769 0.16213 0 + facet normal -1 8.95066e-05 0 outer loop - vertex 19.3985 -30.306 -0.2 - vertex 19.5256 -29.5327 0 - vertex 19.5256 -29.5327 -0.2 + vertex 19.3085 -32.3556 -3 + vertex 19.3087 -31.0557 0 + vertex 19.3087 -31.0557 -3 endloop endfacet - facet normal -0.986769 0.16213 0 + facet normal -1 8.95066e-05 0 outer loop - vertex 19.5256 -29.5327 0 - vertex 19.3985 -30.306 -0.2 - vertex 19.3985 -30.306 0 + vertex 19.3087 -31.0557 0 + vertex 19.3085 -32.3556 -3 + vertex 19.3085 -32.3556 0 endloop endfacet - facet normal -0.994613 0.103657 0 + facet normal -0.964746 -0.263183 0 outer loop - vertex 19.3204 -31.0557 -0.2 - vertex 19.3985 -30.306 0 - vertex 19.3985 -30.306 -0.2 + vertex 19.5322 -33.1754 -3 + vertex 19.3085 -32.3556 0 + vertex 19.3085 -32.3556 -3 endloop endfacet - facet normal -0.994613 0.103657 0 + facet normal -0.964746 -0.263183 0 outer loop - vertex 19.3985 -30.306 0 - vertex 19.3204 -31.0557 -0.2 - vertex 19.3204 -31.0557 0 + vertex 19.3085 -32.3556 0 + vertex 19.5322 -33.1754 -3 + vertex 19.5322 -33.1754 0 endloop endfacet - facet normal -0.999252 0.0386793 0 + facet normal -0.729596 -0.683879 0 outer loop - vertex 19.2935 -31.7496 -0.2 - vertex 19.3204 -31.0557 0 - vertex 19.3204 -31.0557 -0.2 + vertex 20.0228 -33.6987 -3 + vertex 19.5322 -33.1754 0 + vertex 19.5322 -33.1754 -3 endloop endfacet - facet normal -0.999252 0.0386793 0 + facet normal -0.729596 -0.683879 0 outer loop - vertex 19.3204 -31.0557 0 - vertex 19.2935 -31.7496 -0.2 - vertex 19.2935 -31.7496 0 + vertex 19.5322 -33.1754 0 + vertex 20.0228 -33.6987 -3 + vertex 20.0228 -33.6987 0 endloop endfacet - facet normal -0.999028 -0.0440878 0 + facet normal -0.526282 -0.85031 0 outer loop - vertex 19.3203 -32.3556 -0.2 - vertex 19.2935 -31.7496 0 - vertex 19.2935 -31.7496 -0.2 + vertex 20.0228 -33.6987 -3 + vertex 20.6651 -34.0963 0 + vertex 20.0228 -33.6987 0 endloop endfacet - facet normal -0.999028 -0.0440878 0 + facet normal -0.526282 -0.85031 -0 outer loop - vertex 19.2935 -31.7496 0 - vertex 19.3203 -32.3556 -0.2 - vertex 19.3203 -32.3556 0 + vertex 20.6651 -34.0963 0 + vertex 20.0228 -33.6987 -3 + vertex 20.6651 -34.0963 -3 endloop endfacet - facet normal -0.991457 -0.130433 0 + facet normal -0.318074 -0.948066 0 outer loop - vertex 19.3545 -32.6156 -0.2 - vertex 19.3203 -32.3556 0 - vertex 19.3203 -32.3556 -0.2 + vertex 20.6651 -34.0963 -3 + vertex 21.4183 -34.349 0 + vertex 20.6651 -34.0963 0 endloop endfacet - facet normal -0.991457 -0.130433 0 + facet normal -0.318074 -0.948066 -0 outer loop - vertex 19.3203 -32.3556 0 - vertex 19.3545 -32.6156 -0.2 - vertex 19.3545 -32.6156 0 + vertex 21.4183 -34.349 0 + vertex 20.6651 -34.0963 -3 + vertex 21.4183 -34.349 -3 endloop endfacet - facet normal -0.977754 -0.209757 0 + facet normal -0.107309 -0.994226 0 outer loop - vertex 19.403 -32.8415 -0.2 - vertex 19.3545 -32.6156 0 - vertex 19.3545 -32.6156 -0.2 + vertex 21.4183 -34.349 -3 + vertex 22.2417 -34.4379 0 + vertex 21.4183 -34.349 0 endloop endfacet - facet normal -0.977754 -0.209757 0 + facet normal -0.107309 -0.994226 -0 outer loop - vertex 19.3545 -32.6156 0 - vertex 19.403 -32.8415 -0.2 - vertex 19.403 -32.8415 0 + vertex 22.2417 -34.4379 0 + vertex 21.4183 -34.349 -3 + vertex 22.2417 -34.4379 -3 endloop endfacet - facet normal -0.948071 -0.31806 0 + facet normal 0.120086 -0.992763 0 outer loop - vertex 19.466 -33.0295 -0.2 - vertex 19.403 -32.8415 0 - vertex 19.403 -32.8415 -0.2 + vertex 22.2417 -34.4379 -3 + vertex 23.5816 -34.2758 0 + vertex 22.2417 -34.4379 0 endloop endfacet - facet normal -0.948071 -0.31806 0 + facet normal 0.120086 -0.992763 0 outer loop - vertex 19.403 -32.8415 0 - vertex 19.466 -33.0295 -0.2 - vertex 19.466 -33.0295 0 + vertex 23.5816 -34.2758 0 + vertex 22.2417 -34.4379 -3 + vertex 23.5816 -34.2758 -3 endloop endfacet - facet normal -0.882102 -0.471058 0 + facet normal 0.371865 -0.928287 0 outer loop - vertex 19.5439 -33.1754 -0.2 - vertex 19.466 -33.0295 0 - vertex 19.466 -33.0295 -0.2 + vertex 23.5816 -34.2758 -3 + vertex 24.9271 -33.7368 0 + vertex 23.5816 -34.2758 0 endloop endfacet - facet normal -0.882102 -0.471058 0 + facet normal 0.371865 -0.928287 0 outer loop - vertex 19.466 -33.0295 0 - vertex 19.5439 -33.1754 -0.2 - vertex 19.5439 -33.1754 0 + vertex 24.9271 -33.7368 0 + vertex 23.5816 -34.2758 -3 + vertex 24.9271 -33.7368 -3 endloop endfacet - facet normal -0.777019 -0.629477 0 + facet normal 0.553658 -0.832744 0 outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 19.5439 -33.1754 0 - vertex 19.5439 -33.1754 -0.2 + vertex 24.9271 -33.7368 -3 + vertex 26.4192 -32.7448 0 + vertex 24.9271 -33.7368 0 endloop endfacet - facet normal -0.777019 -0.629477 0 + facet normal 0.553658 -0.832744 0 outer loop - vertex 19.5439 -33.1754 0 - vertex 19.7677 -33.4516 -0.2 - vertex 19.7677 -33.4516 0 + vertex 26.4192 -32.7448 0 + vertex 24.9271 -33.7368 -3 + vertex 26.4192 -32.7448 -3 endloop endfacet - facet normal -0.679559 -0.73362 0 + facet normal 0.649717 -0.760176 0 outer loop - vertex 19.7677 -33.4516 -0.2 - vertex 20.0345 -33.6987 0 - vertex 19.7677 -33.4516 0 + vertex 26.4192 -32.7448 -3 + vertex 28.199 -31.2235 0 + vertex 26.4192 -32.7448 0 endloop endfacet - facet normal -0.679559 -0.73362 -0 + facet normal 0.649717 -0.760176 0 outer loop - vertex 20.0345 -33.6987 0 - vertex 19.7677 -33.4516 -0.2 - vertex 20.0345 -33.6987 -0.2 + vertex 28.199 -31.2235 0 + vertex 26.4192 -32.7448 -3 + vertex 28.199 -31.2235 -3 endloop endfacet - facet normal -0.577724 -0.816232 0 + facet normal 0.570708 -0.821153 0 outer loop - vertex 20.0345 -33.6987 -0.2 - vertex 20.3392 -33.9144 0 - vertex 20.0345 -33.6987 0 + vertex 28.199 -31.2235 -3 + vertex 29.2916 -30.4642 0 + vertex 28.199 -31.2235 0 endloop endfacet - facet normal -0.577724 -0.816232 -0 + facet normal 0.570708 -0.821153 0 outer loop - vertex 20.3392 -33.9144 0 - vertex 20.0345 -33.6987 -0.2 - vertex 20.3392 -33.9144 -0.2 + vertex 29.2916 -30.4642 0 + vertex 28.199 -31.2235 -3 + vertex 29.2916 -30.4642 -3 endloop endfacet - facet normal -0.474279 -0.880374 0 + facet normal -0.0859885 -0.996296 0 outer loop - vertex 20.3392 -33.9144 -0.2 - vertex 20.6768 -34.0963 0 - vertex 20.3392 -33.9144 0 + vertex 29.2916 -30.4642 -3 + vertex 29.6885 -30.4984 0 + vertex 29.2916 -30.4642 0 endloop endfacet - facet normal -0.474279 -0.880374 -0 + facet normal -0.0859885 -0.996296 -0 outer loop - vertex 20.6768 -34.0963 0 - vertex 20.3392 -33.9144 -0.2 - vertex 20.6768 -34.0963 -0.2 + vertex 29.6885 -30.4984 0 + vertex 29.2916 -30.4642 -3 + vertex 29.6885 -30.4984 -3 endloop endfacet - facet normal -0.370342 -0.928896 0 + facet normal -0.559844 -0.828598 0 outer loop - vertex 20.6768 -34.0963 -0.2 - vertex 21.0421 -34.2419 0 - vertex 20.6768 -34.0963 0 + vertex 29.6885 -30.4984 -3 + vertex 30.1062 -30.7807 0 + vertex 29.6885 -30.4984 0 endloop endfacet - facet normal -0.370342 -0.928896 -0 + facet normal -0.559844 -0.828598 -0 outer loop - vertex 21.0421 -34.2419 0 - vertex 20.6768 -34.0963 -0.2 - vertex 21.0421 -34.2419 -0.2 + vertex 30.1062 -30.7807 0 + vertex 29.6885 -30.4984 -3 + vertex 30.1062 -30.7807 -3 endloop endfacet - facet normal -0.266037 -0.963963 0 + facet normal -0.971403 -0.237438 0 outer loop - vertex 21.0421 -34.2419 -0.2 - vertex 21.43 -34.349 0 - vertex 21.0421 -34.2419 0 + vertex 30.2029 -31.1764 -3 + vertex 30.1062 -30.7807 0 + vertex 30.1062 -30.7807 -3 endloop endfacet - facet normal -0.266037 -0.963963 -0 + facet normal -0.971403 -0.237438 0 outer loop - vertex 21.43 -34.349 0 - vertex 21.0421 -34.2419 -0.2 - vertex 21.43 -34.349 -0.2 + vertex 30.1062 -30.7807 0 + vertex 30.2029 -31.1764 -3 + vertex 30.2029 -31.1764 0 endloop endfacet - facet normal -0.160906 -0.98697 0 + facet normal -0.897428 0.441162 0 outer loop - vertex 21.43 -34.349 -0.2 - vertex 21.8355 -34.4151 0 - vertex 21.43 -34.349 0 + vertex 29.8709 -31.8517 -3 + vertex 30.2029 -31.1764 0 + vertex 30.2029 -31.1764 -3 endloop endfacet - facet normal -0.160906 -0.98697 -0 + facet normal -0.897428 0.441162 0 outer loop - vertex 21.8355 -34.4151 0 - vertex 21.43 -34.349 -0.2 - vertex 21.8355 -34.4151 -0.2 + vertex 30.2029 -31.1764 0 + vertex 29.8709 -31.8517 -3 + vertex 29.8709 -31.8517 0 endloop endfacet - facet normal -0.0544036 -0.998519 0 + facet normal -0.750818 0.660509 0 outer loop - vertex 21.8355 -34.4151 -0.2 - vertex 22.2534 -34.4379 0 - vertex 21.8355 -34.4151 0 + vertex 27.8442 -34.1555 -3 + vertex 29.8709 -31.8517 0 + vertex 29.8709 -31.8517 -3 endloop endfacet - facet normal -0.0544036 -0.998519 -0 + facet normal -0.750818 0.660509 0 outer loop - vertex 22.2534 -34.4379 0 - vertex 21.8355 -34.4151 -0.2 - vertex 22.2534 -34.4379 -0.2 + vertex 29.8709 -31.8517 0 + vertex 27.8442 -34.1555 -3 + vertex 27.8442 -34.1555 0 endloop endfacet - facet normal 0.0273252 -0.999627 0 + facet normal -0.671006 0.741452 0 outer loop - vertex 22.2534 -34.4379 -0.2 - vertex 22.5956 -34.4285 0 - vertex 22.2534 -34.4379 0 + vertex 27.8442 -34.1555 -3 + vertex 25.9895 -35.834 0 + vertex 27.8442 -34.1555 0 endloop endfacet - facet normal 0.0273252 -0.999627 0 + facet normal -0.671006 0.741452 0 outer loop - vertex 22.5956 -34.4285 0 - vertex 22.2534 -34.4379 -0.2 - vertex 22.5956 -34.4285 -0.2 + vertex 25.9895 -35.834 0 + vertex 27.8442 -34.1555 -3 + vertex 25.9895 -35.834 -3 endloop endfacet - facet normal 0.0869987 -0.996208 0 + facet normal -0.538751 0.842465 0 outer loop - vertex 22.5956 -34.4285 -0.2 - vertex 22.9315 -34.3992 0 - vertex 22.5956 -34.4285 0 + vertex 25.9895 -35.834 -3 + vertex 24.0601 -37.0678 0 + vertex 25.9895 -35.834 0 endloop endfacet - facet normal 0.0869987 -0.996208 0 + facet normal -0.538751 0.842465 0 outer loop - vertex 22.9315 -34.3992 0 - vertex 22.5956 -34.4285 -0.2 - vertex 22.9315 -34.3992 -0.2 + vertex 24.0601 -37.0678 0 + vertex 25.9895 -35.834 -3 + vertex 24.0601 -37.0678 -3 endloop endfacet - facet normal 0.150489 -0.988612 0 + facet normal -0.416623 0.909079 0 outer loop - vertex 22.9315 -34.3992 -0.2 - vertex 23.2634 -34.3487 0 - vertex 22.9315 -34.3992 0 + vertex 24.0601 -37.0678 -3 + vertex 21.4079 -38.2833 0 + vertex 24.0601 -37.0678 0 endloop endfacet - facet normal 0.150489 -0.988612 0 + facet normal -0.416623 0.909079 0 outer loop - vertex 23.2634 -34.3487 0 - vertex 22.9315 -34.3992 -0.2 - vertex 23.2634 -34.3487 -0.2 + vertex 21.4079 -38.2833 0 + vertex 24.0601 -37.0678 -3 + vertex 21.4079 -38.2833 -3 endloop endfacet - facet normal 0.215659 -0.976469 0 + facet normal -0.208885 0.97794 0 outer loop - vertex 23.2634 -34.3487 -0.2 - vertex 23.5933 -34.2758 0 - vertex 23.2634 -34.3487 0 + vertex 21.4079 -38.2833 -3 + vertex 20.3084 -38.5182 0 + vertex 21.4079 -38.2833 0 endloop endfacet - facet normal 0.215659 -0.976469 0 + facet normal -0.208885 0.97794 0 outer loop - vertex 23.5933 -34.2758 0 - vertex 23.2634 -34.3487 -0.2 - vertex 23.5933 -34.2758 -0.2 + vertex 20.3084 -38.5182 0 + vertex 21.4079 -38.2833 -3 + vertex 20.3084 -38.5182 -3 endloop endfacet - facet normal 0.280239 -0.95993 0 + facet normal -0.0552232 0.998474 0 outer loop - vertex 23.5933 -34.2758 -0.2 - vertex 23.9237 -34.1793 0 - vertex 23.5933 -34.2758 0 + vertex 20.3084 -38.5182 -3 + vertex 19.0956 -38.5852 0 + vertex 20.3084 -38.5182 0 endloop endfacet - facet normal 0.280239 -0.95993 0 + facet normal -0.0552232 0.998474 0 outer loop - vertex 23.9237 -34.1793 0 - vertex 23.5933 -34.2758 -0.2 - vertex 23.9237 -34.1793 -0.2 + vertex 19.0956 -38.5852 0 + vertex 20.3084 -38.5182 -3 + vertex 19.0956 -38.5852 -3 endloop endfacet - facet normal 0.342076 -0.939672 0 + facet normal 0.0949344 0.995484 -0 outer loop - vertex 23.9237 -34.1793 -0.2 - vertex 24.2566 -34.0582 0 - vertex 23.9237 -34.1793 0 + vertex 19.0956 -38.5852 -3 + vertex 17.8945 -38.4707 0 + vertex 19.0956 -38.5852 0 endloop endfacet - facet normal 0.342076 -0.939672 0 + facet normal 0.0949344 0.995484 0 outer loop - vertex 24.2566 -34.0582 0 - vertex 23.9237 -34.1793 -0.2 - vertex 24.2566 -34.0582 -0.2 + vertex 17.8945 -38.4707 0 + vertex 19.0956 -38.5852 -3 + vertex 17.8945 -38.4707 -3 endloop endfacet - facet normal 0.399452 -0.916754 0 + facet normal 0.357488 0.933918 -0 outer loop - vertex 24.2566 -34.0582 -0.2 - vertex 24.5942 -33.911 0 - vertex 24.2566 -34.0582 0 + vertex 17.8945 -38.4707 -3 + vertex 16.8412 -38.0675 0 + vertex 17.8945 -38.4707 0 endloop endfacet - facet normal 0.399452 -0.916754 0 + facet normal 0.357488 0.933918 0 outer loop - vertex 24.5942 -33.911 0 - vertex 24.2566 -34.0582 -0.2 - vertex 24.5942 -33.911 -0.2 + vertex 16.8412 -38.0675 0 + vertex 17.8945 -38.4707 -3 + vertex 16.8412 -38.0675 -3 endloop endfacet - facet normal 0.451238 -0.892404 0 + facet normal 0.556683 0.830725 -0 outer loop - vertex 24.5942 -33.911 -0.2 - vertex 24.9388 -33.7368 0 - vertex 24.5942 -33.911 0 + vertex 16.8412 -38.0675 -3 + vertex 15.8953 -37.4336 0 + vertex 16.8412 -38.0675 0 endloop endfacet - facet normal 0.451238 -0.892404 0 + facet normal 0.556683 0.830725 0 outer loop - vertex 24.9388 -33.7368 0 - vertex 24.5942 -33.911 -0.2 - vertex 24.9388 -33.7368 -0.2 + vertex 15.8953 -37.4336 0 + vertex 16.8412 -38.0675 -3 + vertex 15.8953 -37.4336 -3 endloop endfacet - facet normal 0.496895 -0.867811 0 + facet normal 0.764952 0.644087 0 outer loop - vertex 24.9388 -33.7368 -0.2 - vertex 25.2926 -33.5342 0 - vertex 24.9388 -33.7368 0 + vertex 15.8953 -37.4336 0 + vertex 15.2376 -36.6526 -3 + vertex 15.2376 -36.6526 0 endloop endfacet - facet normal 0.496895 -0.867811 0 + facet normal 0.764952 0.644087 0 outer loop - vertex 25.2926 -33.5342 0 - vertex 24.9388 -33.7368 -0.2 - vertex 25.2926 -33.5342 -0.2 + vertex 15.2376 -36.6526 -3 + vertex 15.8953 -37.4336 0 + vertex 15.8953 -37.4336 -3 endloop endfacet - facet normal 0.536389 -0.843971 0 + facet normal 0.925772 0.378082 0 outer loop - vertex 25.2926 -33.5342 -0.2 - vertex 25.6577 -33.3022 0 - vertex 25.2926 -33.5342 0 + vertex 15.2376 -36.6526 0 + vertex 14.8379 -35.6738 -3 + vertex 14.8379 -35.6738 0 endloop endfacet - facet normal 0.536389 -0.843971 0 + facet normal 0.925772 0.378082 0 outer loop - vertex 25.6577 -33.3022 0 - vertex 25.2926 -33.5342 -0.2 - vertex 25.6577 -33.3022 -0.2 + vertex 14.8379 -35.6738 -3 + vertex 15.2376 -36.6526 0 + vertex 15.2376 -36.6526 -3 endloop endfacet - facet normal 0.584792 -0.811183 0 + facet normal 0.990293 0.138993 0 outer loop - vertex 25.6577 -33.3022 -0.2 - vertex 26.4309 -32.7448 0 - vertex 25.6577 -33.3022 0 + vertex 14.8379 -35.6738 0 + vertex 14.6656 -34.4466 -3 + vertex 14.6656 -34.4466 0 endloop endfacet - facet normal 0.584792 -0.811183 0 + facet normal 0.990293 0.138993 0 outer loop - vertex 26.4309 -32.7448 0 - vertex 25.6577 -33.3022 -0.2 - vertex 26.4309 -32.7448 -0.2 + vertex 14.6656 -34.4466 -3 + vertex 14.8379 -35.6738 0 + vertex 14.8379 -35.6738 -3 endloop endfacet - facet normal 0.632266 -0.774751 0 + facet normal 0.99828 -0.0586187 0 outer loop - vertex 26.4309 -32.7448 -0.2 - vertex 27.276 -32.055 0 - vertex 26.4309 -32.7448 0 + vertex 14.6656 -34.4466 0 + vertex 14.7938 -32.2631 -3 + vertex 14.7938 -32.2631 0 endloop endfacet - facet normal 0.632266 -0.774751 0 + facet normal 0.99828 -0.0586187 0 outer loop - vertex 27.276 -32.055 0 - vertex 26.4309 -32.7448 -0.2 - vertex 27.276 -32.055 -0.2 + vertex 14.7938 -32.2631 -3 + vertex 14.6656 -34.4466 0 + vertex 14.6656 -34.4466 -3 endloop endfacet - facet normal 0.66466 -0.747146 0 + facet normal 0.96872 -0.248157 0 outer loop - vertex 27.276 -32.055 -0.2 - vertex 28.2108 -31.2235 0 - vertex 27.276 -32.055 0 + vertex 14.7938 -32.2631 0 + vertex 15.3794 -29.9771 -3 + vertex 15.3794 -29.9771 0 endloop endfacet - facet normal 0.66466 -0.747146 0 + facet normal 0.96872 -0.248157 0 outer loop - vertex 28.2108 -31.2235 0 - vertex 27.276 -32.055 -0.2 - vertex 28.2108 -31.2235 -0.2 + vertex 15.3794 -29.9771 -3 + vertex 14.7938 -32.2631 0 + vertex 14.7938 -32.2631 -3 endloop endfacet - facet normal 0.662871 -0.748733 0 + facet normal 0.915816 -0.401597 0 outer loop - vertex 28.2108 -31.2235 -0.2 - vertex 28.5495 -30.9236 0 - vertex 28.2108 -31.2235 0 + vertex 15.3794 -29.9771 0 + vertex 16.4055 -27.6373 -3 + vertex 16.4055 -27.6373 0 endloop endfacet - facet normal 0.662871 -0.748733 0 + facet normal 0.915816 -0.401597 0 outer loop - vertex 28.5495 -30.9236 0 - vertex 28.2108 -31.2235 -0.2 - vertex 28.5495 -30.9236 -0.2 + vertex 16.4055 -27.6373 -3 + vertex 15.3794 -29.9771 0 + vertex 15.3794 -29.9771 -3 endloop endfacet - facet normal 0.615947 -0.787787 0 + facet normal 0.850611 -0.525795 0 outer loop - vertex 28.5495 -30.9236 -0.2 - vertex 28.8369 -30.6989 0 - vertex 28.5495 -30.9236 0 + vertex 16.4055 -27.6373 0 + vertex 17.855 -25.2923 -3 + vertex 17.855 -25.2923 0 endloop endfacet - facet normal 0.615947 -0.787787 0 + facet normal 0.850611 -0.525795 0 outer loop - vertex 28.8369 -30.6989 0 - vertex 28.5495 -30.9236 -0.2 - vertex 28.8369 -30.6989 -0.2 + vertex 17.855 -25.2923 -3 + vertex 16.4055 -27.6373 0 + vertex 16.4055 -27.6373 -3 endloop endfacet - facet normal 0.524001 -0.851718 0 + facet normal 0.787541 -0.616262 0 outer loop - vertex 28.8369 -30.6989 -0.2 - vertex 29.0845 -30.5466 0 - vertex 28.8369 -30.6989 0 + vertex 17.855 -25.2923 0 + vertex 19.0386 -23.7798 -3 + vertex 19.0386 -23.7798 0 endloop endfacet - facet normal 0.524001 -0.851718 0 + facet normal 0.787541 -0.616262 0 outer loop - vertex 29.0845 -30.5466 0 - vertex 28.8369 -30.6989 -0.2 - vertex 29.0845 -30.5466 -0.2 + vertex 19.0386 -23.7798 -3 + vertex 17.855 -25.2923 0 + vertex 17.855 -25.2923 -3 endloop endfacet - facet normal 0.352437 -0.935836 0 + facet normal 0.719973 -0.694002 0 outer loop - vertex 29.0845 -30.5466 -0.2 - vertex 29.3033 -30.4642 0 - vertex 29.0845 -30.5466 0 + vertex 19.0386 -23.7798 0 + vertex 20.2954 -22.4759 -3 + vertex 20.2954 -22.4759 0 endloop endfacet - facet normal 0.352437 -0.935836 0 + facet normal 0.719973 -0.694002 0 outer loop - vertex 29.3033 -30.4642 0 - vertex 29.0845 -30.5466 -0.2 - vertex 29.3033 -30.4642 -0.2 + vertex 20.2954 -22.4759 -3 + vertex 19.0386 -23.7798 0 + vertex 19.0386 -23.7798 -3 endloop endfacet - facet normal 0.0751321 -0.997174 0 + facet normal 0.636055 -0.771644 0 outer loop - vertex 29.3033 -30.4642 -0.2 - vertex 29.5048 -30.449 0 - vertex 29.3033 -30.4642 0 + vertex 20.2954 -22.4759 -3 + vertex 21.6367 -21.3703 0 + vertex 20.2954 -22.4759 0 endloop endfacet - facet normal 0.0751321 -0.997174 0 + facet normal 0.636055 -0.771644 0 outer loop - vertex 29.5048 -30.449 0 - vertex 29.3033 -30.4642 -0.2 - vertex 29.5048 -30.449 -0.2 + vertex 21.6367 -21.3703 0 + vertex 20.2954 -22.4759 -3 + vertex 21.6367 -21.3703 -3 endloop endfacet - facet normal -0.245256 -0.969458 0 + facet normal 0.538257 -0.842781 0 outer loop - vertex 29.5048 -30.449 -0.2 - vertex 29.7002 -30.4984 0 - vertex 29.5048 -30.449 0 + vertex 21.6367 -21.3703 -3 + vertex 23.0737 -20.4525 0 + vertex 21.6367 -21.3703 0 endloop endfacet - facet normal -0.245256 -0.969458 -0 + facet normal 0.538257 -0.842781 0 outer loop - vertex 29.7002 -30.4984 0 - vertex 29.5048 -30.449 -0.2 - vertex 29.7002 -30.4984 -0.2 + vertex 23.0737 -20.4525 0 + vertex 21.6367 -21.3703 -3 + vertex 23.0737 -20.4525 -3 endloop endfacet - facet normal -0.485575 -0.874195 0 + facet normal 0.404347 -0.914606 0 outer loop - vertex 29.7002 -30.4984 -0.2 - vertex 29.9008 -30.6099 0 - vertex 29.7002 -30.4984 0 + vertex 23.0737 -20.4525 -3 + vertex 25.4359 -19.4082 0 + vertex 23.0737 -20.4525 0 endloop endfacet - facet normal -0.485575 -0.874195 -0 + facet normal 0.404347 -0.914606 0 outer loop - vertex 29.9008 -30.6099 0 - vertex 29.7002 -30.4984 -0.2 - vertex 29.9008 -30.6099 -0.2 + vertex 25.4359 -19.4082 0 + vertex 23.0737 -20.4525 -3 + vertex 25.4359 -19.4082 -3 endloop endfacet - facet normal -0.618314 -0.785931 0 + facet normal 0.182814 -0.983148 0 outer loop - vertex 29.9008 -30.6099 -0.2 - vertex 30.1179 -30.7807 0 - vertex 29.9008 -30.6099 0 + vertex 25.4359 -19.4082 -3 + vertex 26.5413 -19.2026 0 + vertex 25.4359 -19.4082 0 endloop endfacet - facet normal -0.618314 -0.785931 -0 + facet normal 0.182814 -0.983148 0 outer loop - vertex 30.1179 -30.7807 0 - vertex 29.9008 -30.6099 -0.2 - vertex 30.1179 -30.7807 -0.2 + vertex 26.5413 -19.2026 0 + vertex 25.4359 -19.4082 -3 + vertex 26.5413 -19.2026 -3 endloop endfacet - facet normal -0.761006 -0.648745 0 + facet normal 0.0452162 -0.998977 0 outer loop - vertex 30.1812 -30.855 -0.2 - vertex 30.1179 -30.7807 0 - vertex 30.1179 -30.7807 -0.2 + vertex 26.5413 -19.2026 -3 + vertex 27.8281 -19.1444 0 + vertex 26.5413 -19.2026 0 endloop endfacet - facet normal -0.761006 -0.648745 0 + facet normal 0.0452162 -0.998977 0 outer loop - vertex 30.1179 -30.7807 0 - vertex 30.1812 -30.855 -0.2 - vertex 30.1812 -30.855 0 + vertex 27.8281 -19.1444 0 + vertex 26.5413 -19.2026 -3 + vertex 27.8281 -19.1444 -3 endloop endfacet - facet normal -0.923965 -0.382477 0 + facet normal -0.0736221 -0.997286 0 outer loop - vertex 30.2187 -30.9454 -0.2 - vertex 30.1812 -30.855 0 - vertex 30.1812 -30.855 -0.2 + vertex 27.8281 -19.1444 -3 + vertex 28.989 -19.2301 0 + vertex 27.8281 -19.1444 0 endloop endfacet - facet normal -0.923965 -0.382477 0 + facet normal -0.0736221 -0.997286 -0 outer loop - vertex 30.1812 -30.855 0 - vertex 30.2187 -30.9454 -0.2 - vertex 30.2187 -30.9454 0 + vertex 28.989 -19.2301 0 + vertex 27.8281 -19.1444 -3 + vertex 28.989 -19.2301 -3 endloop endfacet - facet normal -0.994533 -0.104423 0 + facet normal -0.382628 0.923903 0 outer loop - vertex 30.2299 -31.0524 -0.2 - vertex 30.2187 -30.9454 0 - vertex 30.2187 -30.9454 -0.2 + vertex 24.8153 -21.9586 -3 + vertex 23.7526 -22.3987 0 + vertex 24.8153 -21.9586 0 endloop endfacet - facet normal -0.994533 -0.104423 0 + facet normal -0.382628 0.923903 0 outer loop - vertex 30.2187 -30.9454 0 - vertex 30.2299 -31.0524 -0.2 - vertex 30.2299 -31.0524 0 + vertex 23.7526 -22.3987 0 + vertex 24.8153 -21.9586 -3 + vertex 23.7526 -22.3987 -3 endloop endfacet - facet normal -0.992515 0.122124 0 + facet normal -0.656055 0.754713 0 outer loop - vertex 30.2146 -31.1764 -0.2 - vertex 30.2299 -31.0524 0 - vertex 30.2299 -31.0524 -0.2 + vertex 23.7526 -22.3987 -3 + vertex 22.6861 -23.3258 0 + vertex 23.7526 -22.3987 0 endloop endfacet - facet normal -0.992515 0.122124 0 + facet normal -0.656055 0.754713 0 outer loop - vertex 30.2299 -31.0524 0 - vertex 30.2146 -31.1764 -0.2 - vertex 30.2146 -31.1764 0 + vertex 22.6861 -23.3258 0 + vertex 23.7526 -22.3987 -3 + vertex 22.6861 -23.3258 -3 endloop endfacet - facet normal -0.95856 0.284892 0 + facet normal -0.77183 0.635829 0 outer loop - vertex 30.1726 -31.3179 -0.2 - vertex 30.2146 -31.1764 0 - vertex 30.2146 -31.1764 -0.2 + vertex 21.6183 -24.6221 -3 + vertex 22.6861 -23.3258 0 + vertex 22.6861 -23.3258 -3 endloop endfacet - facet normal -0.95856 0.284892 0 + facet normal -0.77183 0.635829 0 outer loop - vertex 30.2146 -31.1764 0 - vertex 30.1726 -31.3179 -0.2 - vertex 30.1726 -31.3179 0 + vertex 22.6861 -23.3258 0 + vertex 21.6183 -24.6221 -3 + vertex 21.6183 -24.6221 0 endloop endfacet - facet normal -0.917421 0.397919 0 + facet normal -0.0699516 -0.99755 0 outer loop - vertex 30.1034 -31.4773 -0.2 - vertex 30.1726 -31.3179 0 - vertex 30.1726 -31.3179 -0.2 + vertex 21.6183 -24.6221 -3 + vertex 24.4233 -24.8188 0 + vertex 21.6183 -24.6221 0 endloop endfacet - facet normal -0.917421 0.397919 0 + facet normal -0.0699516 -0.99755 -0 outer loop - vertex 30.1726 -31.3179 0 - vertex 30.1034 -31.4773 -0.2 - vertex 30.1034 -31.4773 0 - endloop - endfacet - facet normal -0.861393 0.50794 0 - outer loop - vertex 29.8827 -31.8517 -0.2 - vertex 30.1034 -31.4773 0 - vertex 30.1034 -31.4773 -0.2 - endloop - endfacet - facet normal -0.861393 0.50794 0 - outer loop - vertex 30.1034 -31.4773 0 - vertex 29.8827 -31.8517 -0.2 - vertex 29.8827 -31.8517 0 - endloop - endfacet - facet normal -0.804973 0.593311 0 - outer loop - vertex 29.5499 -32.3032 -0.2 - vertex 29.8827 -31.8517 0 - vertex 29.8827 -31.8517 -0.2 - endloop - endfacet - facet normal -0.804973 0.593311 0 - outer loop - vertex 29.8827 -31.8517 0 - vertex 29.5499 -32.3032 -0.2 - vertex 29.5499 -32.3032 0 - endloop - endfacet - facet normal -0.76559 0.643329 0 - outer loop - vertex 29.1028 -32.8352 -0.2 - vertex 29.5499 -32.3032 0 - vertex 29.5499 -32.3032 -0.2 - endloop - endfacet - facet normal -0.76559 0.643329 0 - outer loop - vertex 29.5499 -32.3032 0 - vertex 29.1028 -32.8352 -0.2 - vertex 29.1028 -32.8352 0 - endloop - endfacet - facet normal -0.73778 0.675042 0 - outer loop - vertex 28.539 -33.4515 -0.2 - vertex 29.1028 -32.8352 0 - vertex 29.1028 -32.8352 -0.2 - endloop - endfacet - facet normal -0.73778 0.675042 0 - outer loop - vertex 29.1028 -32.8352 0 - vertex 28.539 -33.4515 -0.2 - vertex 28.539 -33.4515 0 - endloop - endfacet - facet normal -0.717743 0.696309 0 - outer loop - vertex 27.856 -34.1555 -0.2 - vertex 28.539 -33.4515 0 - vertex 28.539 -33.4515 -0.2 - endloop - endfacet - facet normal -0.717743 0.696309 0 - outer loop - vertex 28.539 -33.4515 0 - vertex 27.856 -34.1555 -0.2 - vertex 27.856 -34.1555 0 - endloop - endfacet - facet normal -0.702585 0.7116 0 - outer loop - vertex 27.856 -34.1555 -0.2 - vertex 27.3514 -34.6537 0 - vertex 27.856 -34.1555 0 - endloop - endfacet - facet normal -0.702585 0.7116 0 - outer loop - vertex 27.3514 -34.6537 0 - vertex 27.856 -34.1555 -0.2 - vertex 27.3514 -34.6537 -0.2 - endloop - endfacet - facet normal -0.683825 0.729646 0 - outer loop - vertex 27.3514 -34.6537 -0.2 - vertex 26.8832 -35.0925 0 - vertex 27.3514 -34.6537 0 - endloop - endfacet - facet normal -0.683825 0.729646 0 - outer loop - vertex 26.8832 -35.0925 0 - vertex 27.3514 -34.6537 -0.2 - vertex 26.8832 -35.0925 -0.2 - endloop - endfacet - facet normal -0.65863 0.752467 0 - outer loop - vertex 26.8832 -35.0925 -0.2 - vertex 26.4377 -35.4824 0 - vertex 26.8832 -35.0925 0 - endloop - endfacet - facet normal -0.65863 0.752467 0 - outer loop - vertex 26.4377 -35.4824 0 - vertex 26.8832 -35.0925 -0.2 - vertex 26.4377 -35.4824 -0.2 - endloop - endfacet - facet normal -0.627338 0.778747 0 - outer loop - vertex 26.4377 -35.4824 -0.2 - vertex 26.0012 -35.834 0 - vertex 26.4377 -35.4824 0 - endloop - endfacet - facet normal -0.627338 0.778747 0 - outer loop - vertex 26.0012 -35.834 0 - vertex 26.4377 -35.4824 -0.2 - vertex 26.0012 -35.834 -0.2 - endloop - endfacet - facet normal -0.591741 0.806128 0 - outer loop - vertex 26.0012 -35.834 -0.2 - vertex 25.5601 -36.1579 0 - vertex 26.0012 -35.834 0 - endloop - endfacet - facet normal -0.591741 0.806128 0 - outer loop - vertex 25.5601 -36.1579 0 - vertex 26.0012 -35.834 -0.2 - vertex 25.5601 -36.1579 -0.2 - endloop - endfacet - facet normal -0.554992 0.831856 0 - outer loop - vertex 25.5601 -36.1579 -0.2 - vertex 25.1006 -36.4644 0 - vertex 25.5601 -36.1579 0 - endloop - endfacet - facet normal -0.554992 0.831856 0 - outer loop - vertex 25.1006 -36.4644 0 - vertex 25.5601 -36.1579 -0.2 - vertex 25.1006 -36.4644 -0.2 - endloop - endfacet - facet normal -0.520754 0.853707 0 - outer loop - vertex 25.1006 -36.4644 -0.2 - vertex 24.6091 -36.7642 0 - vertex 25.1006 -36.4644 0 - endloop - endfacet - facet normal -0.520754 0.853707 0 - outer loop - vertex 24.6091 -36.7642 0 - vertex 25.1006 -36.4644 -0.2 - vertex 24.6091 -36.7642 -0.2 - endloop - endfacet - facet normal -0.492012 0.870588 0 - outer loop - vertex 24.6091 -36.7642 -0.2 - vertex 24.0719 -37.0678 0 - vertex 24.6091 -36.7642 0 - endloop - endfacet - facet normal -0.492012 0.870588 0 - outer loop - vertex 24.0719 -37.0678 0 - vertex 24.6091 -36.7642 -0.2 - vertex 24.0719 -37.0678 -0.2 - endloop - endfacet - facet normal -0.469837 0.882753 0 - outer loop - vertex 24.0719 -37.0678 -0.2 - vertex 23.2902 -37.4839 0 - vertex 24.0719 -37.0678 0 - endloop - endfacet - facet normal -0.469837 0.882753 0 - outer loop - vertex 23.2902 -37.4839 0 - vertex 24.0719 -37.0678 -0.2 - vertex 23.2902 -37.4839 -0.2 - endloop - endfacet - facet normal -0.440052 0.897972 0 - outer loop - vertex 23.2902 -37.4839 -0.2 - vertex 22.6041 -37.8201 0 - vertex 23.2902 -37.4839 0 - endloop - endfacet - facet normal -0.440052 0.897972 0 - outer loop - vertex 22.6041 -37.8201 0 - vertex 23.2902 -37.4839 -0.2 - vertex 22.6041 -37.8201 -0.2 - endloop - endfacet - facet normal -0.394271 0.918994 0 - outer loop - vertex 22.6041 -37.8201 -0.2 - vertex 21.9889 -38.084 0 - vertex 22.6041 -37.8201 0 - endloop - endfacet - facet normal -0.394271 0.918994 0 - outer loop - vertex 21.9889 -38.084 0 - vertex 22.6041 -37.8201 -0.2 - vertex 21.9889 -38.084 -0.2 - endloop - endfacet - facet normal -0.330435 0.943829 0 - outer loop - vertex 21.9889 -38.084 -0.2 - vertex 21.4197 -38.2833 0 - vertex 21.9889 -38.084 0 - endloop - endfacet - facet normal -0.330435 0.943829 0 - outer loop - vertex 21.4197 -38.2833 0 - vertex 21.9889 -38.084 -0.2 - vertex 21.4197 -38.2833 -0.2 - endloop - endfacet - facet normal -0.251155 0.967947 0 - outer loop - vertex 21.4197 -38.2833 -0.2 - vertex 20.8717 -38.4255 0 - vertex 21.4197 -38.2833 0 - endloop - endfacet - facet normal -0.251155 0.967947 0 - outer loop - vertex 20.8717 -38.4255 0 - vertex 21.4197 -38.2833 -0.2 - vertex 20.8717 -38.4255 -0.2 - endloop - endfacet - facet normal -0.165695 0.986177 0 - outer loop - vertex 20.8717 -38.4255 -0.2 - vertex 20.3202 -38.5182 0 - vertex 20.8717 -38.4255 0 - endloop - endfacet - facet normal -0.165695 0.986177 0 - outer loop - vertex 20.3202 -38.5182 0 - vertex 20.8717 -38.4255 -0.2 - vertex 20.3202 -38.5182 -0.2 - endloop - endfacet - facet normal -0.0871415 0.996196 0 - outer loop - vertex 20.3202 -38.5182 -0.2 - vertex 19.7403 -38.5689 0 - vertex 20.3202 -38.5182 0 - endloop - endfacet - facet normal -0.0871415 0.996196 0 - outer loop - vertex 19.7403 -38.5689 0 - vertex 20.3202 -38.5182 -0.2 - vertex 19.7403 -38.5689 -0.2 - endloop - endfacet - facet normal -0.0258263 0.999666 0 - outer loop - vertex 19.7403 -38.5689 -0.2 - vertex 19.1073 -38.5852 0 - vertex 19.7403 -38.5689 0 - endloop - endfacet - facet normal -0.0258263 0.999666 0 - outer loop - vertex 19.1073 -38.5852 0 - vertex 19.7403 -38.5689 -0.2 - vertex 19.1073 -38.5852 -0.2 - endloop - endfacet - facet normal 0.0407265 0.99917 -0 - outer loop - vertex 19.1073 -38.5852 -0.2 - vertex 18.4669 -38.5591 0 - vertex 19.1073 -38.5852 0 - endloop - endfacet - facet normal 0.0407265 0.99917 0 - outer loop - vertex 18.4669 -38.5591 0 - vertex 19.1073 -38.5852 -0.2 - vertex 18.4669 -38.5591 -0.2 - endloop - endfacet - facet normal 0.12356 0.992337 -0 - outer loop - vertex 18.4669 -38.5591 -0.2 - vertex 18.1792 -38.5233 0 - vertex 18.4669 -38.5591 0 - endloop - endfacet - facet normal 0.12356 0.992337 0 - outer loop - vertex 18.1792 -38.5233 0 - vertex 18.4669 -38.5591 -0.2 - vertex 18.1792 -38.5233 -0.2 - endloop - endfacet - facet normal 0.189246 0.98193 -0 - outer loop - vertex 18.1792 -38.5233 -0.2 - vertex 17.9062 -38.4707 0 - vertex 18.1792 -38.5233 0 - endloop - endfacet - facet normal 0.189246 0.98193 0 - outer loop - vertex 17.9062 -38.4707 0 - vertex 18.1792 -38.5233 -0.2 - vertex 17.9062 -38.4707 -0.2 - endloop - endfacet - facet normal 0.258743 0.965946 -0 - outer loop - vertex 17.9062 -38.4707 -0.2 - vertex 17.6424 -38.4 0 - vertex 17.9062 -38.4707 0 - endloop - endfacet - facet normal 0.258743 0.965946 0 - outer loop - vertex 17.6424 -38.4 0 - vertex 17.9062 -38.4707 -0.2 - vertex 17.6424 -38.4 -0.2 - endloop - endfacet - facet normal 0.326993 0.945027 -0 - outer loop - vertex 17.6424 -38.4 -0.2 - vertex 17.3825 -38.3101 0 - vertex 17.6424 -38.4 0 - endloop - endfacet - facet normal 0.326993 0.945027 0 - outer loop - vertex 17.3825 -38.3101 0 - vertex 17.6424 -38.4 -0.2 - vertex 17.3825 -38.3101 -0.2 - endloop - endfacet - facet normal 0.389172 0.921165 -0 - outer loop - vertex 17.3825 -38.3101 -0.2 - vertex 17.1211 -38.1997 0 - vertex 17.3825 -38.3101 0 - endloop - endfacet - facet normal 0.389172 0.921165 0 - outer loop - vertex 17.1211 -38.1997 0 - vertex 17.3825 -38.3101 -0.2 - vertex 17.1211 -38.1997 -0.2 - endloop - endfacet - facet normal 0.442006 0.897012 -0 - outer loop - vertex 17.1211 -38.1997 -0.2 - vertex 16.8529 -38.0675 0 - vertex 17.1211 -38.1997 0 - endloop - endfacet - facet normal 0.442006 0.897012 0 - outer loop - vertex 16.8529 -38.0675 0 - vertex 17.1211 -38.1997 -0.2 - vertex 16.8529 -38.0675 -0.2 - endloop - endfacet - facet normal 0.508496 0.861064 -0 - outer loop - vertex 16.8529 -38.0675 -0.2 - vertex 16.342 -37.7658 0 - vertex 16.8529 -38.0675 0 - endloop - endfacet - facet normal 0.508496 0.861064 0 - outer loop - vertex 16.342 -37.7658 0 - vertex 16.8529 -38.0675 -0.2 - vertex 16.342 -37.7658 -0.2 - endloop - endfacet - facet normal 0.581032 0.813881 -0 - outer loop - vertex 16.342 -37.7658 -0.2 - vertex 16.1153 -37.6039 0 - vertex 16.342 -37.7658 0 - endloop - endfacet - facet normal 0.581032 0.813881 0 - outer loop - vertex 16.1153 -37.6039 0 - vertex 16.342 -37.7658 -0.2 - vertex 16.1153 -37.6039 -0.2 - endloop - endfacet - facet normal 0.632987 0.774162 -0 - outer loop - vertex 16.1153 -37.6039 -0.2 - vertex 15.907 -37.4336 0 - vertex 16.1153 -37.6039 0 - endloop - endfacet - facet normal 0.632987 0.774162 0 - outer loop - vertex 15.907 -37.4336 0 - vertex 16.1153 -37.6039 -0.2 - vertex 15.907 -37.4336 -0.2 - endloop - endfacet - facet normal 0.68624 0.727375 -0 - outer loop - vertex 15.907 -37.4336 -0.2 - vertex 15.7167 -37.2541 0 - vertex 15.907 -37.4336 0 - endloop - endfacet - facet normal 0.68624 0.727375 0 - outer loop - vertex 15.7167 -37.2541 0 - vertex 15.907 -37.4336 -0.2 - vertex 15.7167 -37.2541 -0.2 - endloop - endfacet - facet normal 0.739053 0.673647 0 - outer loop - vertex 15.7167 -37.2541 0 - vertex 15.544 -37.0647 -0.2 - vertex 15.544 -37.0647 0 - endloop - endfacet - facet normal 0.739053 0.673647 0 - outer loop - vertex 15.544 -37.0647 -0.2 - vertex 15.7167 -37.2541 0 - vertex 15.7167 -37.2541 -0.2 - endloop - endfacet - facet normal 0.789576 0.613652 0 - outer loop - vertex 15.544 -37.0647 0 - vertex 15.3884 -36.8644 -0.2 - vertex 15.3884 -36.8644 0 - endloop - endfacet - facet normal 0.789576 0.613652 0 - outer loop - vertex 15.3884 -36.8644 -0.2 - vertex 15.544 -37.0647 0 - vertex 15.544 -37.0647 -0.2 - endloop - endfacet - facet normal 0.835985 0.548752 0 - outer loop - vertex 15.3884 -36.8644 0 - vertex 15.2493 -36.6526 -0.2 - vertex 15.2493 -36.6526 0 - endloop - endfacet - facet normal 0.835985 0.548752 0 - outer loop - vertex 15.2493 -36.6526 -0.2 - vertex 15.3884 -36.8644 0 - vertex 15.3884 -36.8644 -0.2 - endloop - endfacet - facet normal 0.876837 0.480788 0 - outer loop - vertex 15.2493 -36.6526 0 - vertex 15.1264 -36.4284 -0.2 - vertex 15.1264 -36.4284 0 - endloop - endfacet - facet normal 0.876837 0.480788 0 - outer loop - vertex 15.1264 -36.4284 -0.2 - vertex 15.2493 -36.6526 0 - vertex 15.2493 -36.6526 -0.2 - endloop - endfacet - facet normal 0.911228 0.411902 0 - outer loop - vertex 15.1264 -36.4284 0 - vertex 15.0191 -36.1911 -0.2 - vertex 15.0191 -36.1911 0 - endloop - endfacet - facet normal 0.911228 0.411902 0 - outer loop - vertex 15.0191 -36.1911 -0.2 - vertex 15.1264 -36.4284 0 - vertex 15.1264 -36.4284 -0.2 - endloop - endfacet - facet normal 0.938903 0.344183 0 - outer loop - vertex 15.0191 -36.1911 0 - vertex 14.927 -35.9398 -0.2 - vertex 14.927 -35.9398 0 - endloop - endfacet - facet normal 0.938903 0.344183 0 - outer loop - vertex 14.927 -35.9398 -0.2 - vertex 15.0191 -36.1911 0 - vertex 15.0191 -36.1911 -0.2 - endloop - endfacet - facet normal 0.960161 0.279447 0 - outer loop - vertex 14.927 -35.9398 0 - vertex 14.8496 -35.6738 -0.2 - vertex 14.8496 -35.6738 0 - endloop - endfacet - facet normal 0.960161 0.279447 0 - outer loop - vertex 14.8496 -35.6738 -0.2 - vertex 14.927 -35.9398 0 - vertex 14.927 -35.9398 -0.2 - endloop - endfacet - facet normal 0.981615 0.190873 0 - outer loop - vertex 14.8496 -35.6738 0 - vertex 14.7369 -35.0944 -0.2 - vertex 14.7369 -35.0944 0 - endloop - endfacet - facet normal 0.981615 0.190873 0 - outer loop - vertex 14.7369 -35.0944 -0.2 - vertex 14.8496 -35.6738 0 - vertex 14.8496 -35.6738 -0.2 - endloop - endfacet - facet normal 0.995797 0.0915901 0 - outer loop - vertex 14.7369 -35.0944 0 - vertex 14.6774 -34.4466 -0.2 - vertex 14.6774 -34.4466 0 - endloop - endfacet - facet normal 0.995797 0.0915901 0 - outer loop - vertex 14.6774 -34.4466 -0.2 - vertex 14.7369 -35.0944 0 - vertex 14.7369 -35.0944 -0.2 - endloop - endfacet - facet normal 0.999758 0.0220201 0 - outer loop - vertex 14.6774 -34.4466 0 - vertex 14.6656 -33.913 -0.2 - vertex 14.6656 -33.913 0 - endloop - endfacet - facet normal 0.999758 0.0220201 0 - outer loop - vertex 14.6656 -33.913 -0.2 - vertex 14.6774 -34.4466 0 - vertex 14.6774 -34.4466 -0.2 - endloop - endfacet - facet normal 0.999472 -0.03249 0 - outer loop - vertex 14.6656 -33.913 0 - vertex 14.6832 -33.3707 -0.2 - vertex 14.6832 -33.3707 0 - endloop - endfacet - facet normal 0.999472 -0.03249 0 - outer loop - vertex 14.6832 -33.3707 -0.2 - vertex 14.6656 -33.913 0 - vertex 14.6656 -33.913 -0.2 - endloop - endfacet - facet normal 0.996411 -0.0846524 0 - outer loop - vertex 14.6832 -33.3707 0 - vertex 14.73 -32.8205 -0.2 - vertex 14.73 -32.8205 0 - endloop - endfacet - facet normal 0.996411 -0.0846524 0 - outer loop - vertex 14.73 -32.8205 -0.2 - vertex 14.6832 -33.3707 0 - vertex 14.6832 -33.3707 -0.2 - endloop - endfacet - facet normal 0.990928 -0.134393 0 - outer loop - vertex 14.73 -32.8205 0 - vertex 14.8056 -32.2631 -0.2 - vertex 14.8056 -32.2631 0 - endloop - endfacet - facet normal 0.990928 -0.134393 0 - outer loop - vertex 14.8056 -32.2631 -0.2 - vertex 14.73 -32.8205 0 - vertex 14.73 -32.8205 -0.2 - endloop - endfacet - facet normal 0.983352 -0.181712 0 - outer loop - vertex 14.8056 -32.2631 0 - vertex 14.9098 -31.6993 -0.2 - vertex 14.9098 -31.6993 0 - endloop - endfacet - facet normal 0.983352 -0.181712 0 - outer loop - vertex 14.9098 -31.6993 -0.2 - vertex 14.8056 -32.2631 0 - vertex 14.8056 -32.2631 -0.2 - endloop - endfacet - facet normal 0.973979 -0.226639 0 - outer loop - vertex 14.9098 -31.6993 0 - vertex 15.0423 -31.1299 -0.2 - vertex 15.0423 -31.1299 0 - endloop - endfacet - facet normal 0.973979 -0.226639 0 - outer loop - vertex 15.0423 -31.1299 -0.2 - vertex 14.9098 -31.6993 0 - vertex 14.9098 -31.6993 -0.2 - endloop - endfacet - facet normal 0.963072 -0.269246 0 - outer loop - vertex 15.0423 -31.1299 0 - vertex 15.2028 -30.5555 -0.2 - vertex 15.2028 -30.5555 0 - endloop - endfacet - facet normal 0.963072 -0.269246 0 - outer loop - vertex 15.2028 -30.5555 -0.2 - vertex 15.0423 -31.1299 0 - vertex 15.0423 -31.1299 -0.2 - endloop - endfacet - facet normal 0.950861 -0.309619 0 - outer loop - vertex 15.2028 -30.5555 0 - vertex 15.3912 -29.9771 -0.2 - vertex 15.3912 -29.9771 0 - endloop - endfacet - facet normal 0.950861 -0.309619 0 - outer loop - vertex 15.3912 -29.9771 -0.2 - vertex 15.2028 -30.5555 0 - vertex 15.2028 -30.5555 -0.2 - endloop - endfacet - facet normal 0.93754 -0.347877 0 - outer loop - vertex 15.3912 -29.9771 0 - vertex 15.6071 -29.3953 -0.2 - vertex 15.6071 -29.3953 0 - endloop - endfacet - facet normal 0.93754 -0.347877 0 - outer loop - vertex 15.6071 -29.3953 -0.2 - vertex 15.3912 -29.9771 0 - vertex 15.3912 -29.9771 -0.2 - endloop - endfacet - facet normal 0.92328 -0.384128 0 - outer loop - vertex 15.6071 -29.3953 0 - vertex 15.8502 -28.8109 -0.2 - vertex 15.8502 -28.8109 0 - endloop - endfacet - facet normal 0.92328 -0.384128 0 - outer loop - vertex 15.8502 -28.8109 -0.2 - vertex 15.6071 -29.3953 0 - vertex 15.6071 -29.3953 -0.2 - endloop - endfacet - facet normal 0.908217 -0.418499 0 - outer loop - vertex 15.8502 -28.8109 0 - vertex 16.1203 -28.2246 -0.2 - vertex 16.1203 -28.2246 0 - endloop - endfacet - facet normal 0.908217 -0.418499 0 - outer loop - vertex 16.1203 -28.2246 -0.2 - vertex 15.8502 -28.8109 0 - vertex 15.8502 -28.8109 -0.2 - endloop - endfacet - facet normal 0.892471 -0.451106 0 - outer loop - vertex 16.1203 -28.2246 0 - vertex 16.4172 -27.6373 -0.2 - vertex 16.4172 -27.6373 0 - endloop - endfacet - facet normal 0.892471 -0.451106 0 - outer loop - vertex 16.4172 -27.6373 -0.2 - vertex 16.1203 -28.2246 0 - vertex 16.1203 -28.2246 -0.2 - endloop - endfacet - facet normal 0.876136 -0.482063 0 - outer loop - vertex 16.4172 -27.6373 0 - vertex 16.7406 -27.0496 -0.2 - vertex 16.7406 -27.0496 0 - endloop - endfacet - facet normal 0.876136 -0.482063 0 - outer loop - vertex 16.7406 -27.0496 -0.2 - vertex 16.4172 -27.6373 0 - vertex 16.4172 -27.6373 -0.2 - endloop - endfacet - facet normal 0.85929 -0.511489 0 - outer loop - vertex 16.7406 -27.0496 0 - vertex 17.0901 -26.4624 -0.2 - vertex 17.0901 -26.4624 0 - endloop - endfacet - facet normal 0.85929 -0.511489 0 - outer loop - vertex 17.0901 -26.4624 -0.2 - vertex 16.7406 -27.0496 0 - vertex 16.7406 -27.0496 -0.2 - endloop - endfacet - facet normal 0.841993 -0.539488 0 - outer loop - vertex 17.0901 -26.4624 0 - vertex 17.4656 -25.8764 -0.2 - vertex 17.4656 -25.8764 0 - endloop - endfacet - facet normal 0.841993 -0.539488 0 - outer loop - vertex 17.4656 -25.8764 -0.2 - vertex 17.0901 -26.4624 0 - vertex 17.0901 -26.4624 -0.2 - endloop - endfacet - facet normal 0.8243 -0.566153 0 - outer loop - vertex 17.4656 -25.8764 0 - vertex 17.8667 -25.2923 -0.2 - vertex 17.8667 -25.2923 0 - endloop - endfacet - facet normal 0.8243 -0.566153 0 - outer loop - vertex 17.8667 -25.2923 -0.2 - vertex 17.4656 -25.8764 0 - vertex 17.4656 -25.8764 -0.2 - endloop - endfacet - facet normal 0.801921 -0.59743 0 - outer loop - vertex 17.8667 -25.2923 0 - vertex 18.4501 -24.5093 -0.2 - vertex 18.4501 -24.5093 0 - endloop - endfacet - facet normal 0.801921 -0.59743 0 - outer loop - vertex 18.4501 -24.5093 -0.2 - vertex 17.8667 -25.2923 0 - vertex 17.8667 -25.2923 -0.2 - endloop - endfacet - facet normal 0.772213 -0.635364 0 - outer loop - vertex 18.4501 -24.5093 0 - vertex 19.0503 -23.7798 -0.2 - vertex 19.0503 -23.7798 0 - endloop - endfacet - facet normal 0.772213 -0.635364 0 - outer loop - vertex 19.0503 -23.7798 -0.2 - vertex 18.4501 -24.5093 0 - vertex 18.4501 -24.5093 -0.2 - endloop - endfacet - facet normal 0.738434 -0.674325 0 - outer loop - vertex 19.0503 -23.7798 0 - vertex 19.6689 -23.1024 -0.2 - vertex 19.6689 -23.1024 0 - endloop - endfacet - facet normal 0.738434 -0.674325 0 - outer loop - vertex 19.6689 -23.1024 -0.2 - vertex 19.0503 -23.7798 0 - vertex 19.0503 -23.7798 -0.2 - endloop - endfacet - facet normal 0.700496 -0.713656 0 - outer loop - vertex 19.6689 -23.1024 -0.2 - vertex 20.3071 -22.4759 0 - vertex 19.6689 -23.1024 0 - endloop - endfacet - facet normal 0.700496 -0.713656 0 - outer loop - vertex 20.3071 -22.4759 0 - vertex 19.6689 -23.1024 -0.2 - vertex 20.3071 -22.4759 -0.2 - endloop - endfacet - facet normal 0.658485 -0.752594 0 - outer loop - vertex 20.3071 -22.4759 -0.2 - vertex 20.9665 -21.899 0 - vertex 20.3071 -22.4759 0 - endloop - endfacet - facet normal 0.658485 -0.752594 0 - outer loop - vertex 20.9665 -21.899 0 - vertex 20.3071 -22.4759 -0.2 - vertex 20.9665 -21.899 -0.2 - endloop - endfacet - facet normal 0.612713 -0.790306 0 - outer loop - vertex 20.9665 -21.899 -0.2 - vertex 21.6485 -21.3703 0 - vertex 20.9665 -21.899 0 - endloop - endfacet - facet normal 0.612713 -0.790306 0 - outer loop - vertex 21.6485 -21.3703 0 - vertex 20.9665 -21.899 -0.2 - vertex 21.6485 -21.3703 -0.2 - endloop - endfacet - facet normal 0.563707 -0.825975 0 - outer loop - vertex 21.6485 -21.3703 -0.2 - vertex 22.3543 -20.8886 0 - vertex 21.6485 -21.3703 0 - endloop - endfacet - facet normal 0.563707 -0.825975 0 - outer loop - vertex 22.3543 -20.8886 0 - vertex 21.6485 -21.3703 -0.2 - vertex 22.3543 -20.8886 -0.2 - endloop - endfacet - facet normal 0.512208 -0.858861 0 - outer loop - vertex 22.3543 -20.8886 -0.2 - vertex 23.0854 -20.4525 0 - vertex 22.3543 -20.8886 0 - endloop - endfacet - facet normal 0.512208 -0.858861 0 - outer loop - vertex 23.0854 -20.4525 0 - vertex 22.3543 -20.8886 -0.2 - vertex 23.0854 -20.4525 -0.2 - endloop - endfacet - facet normal 0.471781 -0.881716 0 - outer loop - vertex 23.0854 -20.4525 -0.2 - vertex 23.7493 -20.0973 0 - vertex 23.0854 -20.4525 0 - endloop - endfacet - facet normal 0.471781 -0.881716 0 - outer loop - vertex 23.7493 -20.0973 0 - vertex 23.0854 -20.4525 -0.2 - vertex 23.7493 -20.0973 -0.2 - endloop - endfacet - facet normal 0.433016 -0.901386 0 - outer loop - vertex 23.7493 -20.0973 -0.2 - vertex 24.3497 -19.8089 0 - vertex 23.7493 -20.0973 0 - endloop - endfacet - facet normal 0.433016 -0.901386 0 - outer loop - vertex 24.3497 -19.8089 0 - vertex 23.7493 -20.0973 -0.2 - vertex 24.3497 -19.8089 -0.2 - endloop - endfacet - facet normal 0.377334 -0.926077 0 - outer loop - vertex 24.3497 -19.8089 -0.2 - vertex 24.9086 -19.5812 0 - vertex 24.3497 -19.8089 0 - endloop - endfacet - facet normal 0.377334 -0.926077 0 - outer loop - vertex 24.9086 -19.5812 0 - vertex 24.3497 -19.8089 -0.2 - vertex 24.9086 -19.5812 -0.2 - endloop - endfacet - facet normal 0.305529 -0.952183 0 - outer loop - vertex 24.9086 -19.5812 -0.2 - vertex 25.4477 -19.4082 0 - vertex 24.9086 -19.5812 0 - endloop - endfacet - facet normal 0.305529 -0.952183 0 - outer loop - vertex 25.4477 -19.4082 0 - vertex 24.9086 -19.5812 -0.2 - vertex 25.4477 -19.4082 -0.2 - endloop - endfacet - facet normal 0.223751 -0.974646 0 - outer loop - vertex 25.4477 -19.4082 -0.2 - vertex 25.9886 -19.284 0 - vertex 25.4477 -19.4082 0 - endloop - endfacet - facet normal 0.223751 -0.974646 0 - outer loop - vertex 25.9886 -19.284 0 - vertex 25.4477 -19.4082 -0.2 - vertex 25.9886 -19.284 -0.2 - endloop - endfacet - facet normal 0.142672 -0.98977 0 - outer loop - vertex 25.9886 -19.284 -0.2 - vertex 26.5531 -19.2026 0 - vertex 25.9886 -19.284 0 - endloop - endfacet - facet normal 0.142672 -0.98977 0 - outer loop - vertex 26.5531 -19.2026 0 - vertex 25.9886 -19.284 -0.2 - vertex 26.5531 -19.2026 -0.2 - endloop - endfacet - facet normal 0.072849 -0.997343 0 - outer loop - vertex 26.5531 -19.2026 -0.2 - vertex 27.1629 -19.1581 0 - vertex 26.5531 -19.2026 0 - endloop - endfacet - facet normal 0.072849 -0.997343 0 - outer loop - vertex 27.1629 -19.1581 0 - vertex 26.5531 -19.2026 -0.2 - vertex 27.1629 -19.1581 -0.2 - endloop - endfacet - facet normal 0.0202302 -0.999795 0 - outer loop - vertex 27.1629 -19.1581 -0.2 - vertex 27.8398 -19.1444 0 - vertex 27.1629 -19.1581 0 - endloop - endfacet - facet normal 0.0202302 -0.999795 0 - outer loop - vertex 27.8398 -19.1444 0 - vertex 27.1629 -19.1581 -0.2 - vertex 27.8398 -19.1444 -0.2 - endloop - endfacet - facet normal -0.0344796 -0.999405 0 - outer loop - vertex 27.8398 -19.1444 -0.2 - vertex 28.4483 -19.1654 0 - vertex 27.8398 -19.1444 0 - endloop - endfacet - facet normal -0.0344796 -0.999405 -0 - outer loop - vertex 28.4483 -19.1654 0 - vertex 27.8398 -19.1444 -0.2 - vertex 28.4483 -19.1654 -0.2 - endloop - endfacet - facet normal -0.149538 0.988756 0 - outer loop - vertex 25.51 -21.8307 -0.2 - vertex 25.181 -21.8805 0 - vertex 25.51 -21.8307 0 - endloop - endfacet - facet normal -0.149538 0.988756 0 - outer loop - vertex 25.181 -21.8805 0 - vertex 25.51 -21.8307 -0.2 - vertex 25.181 -21.8805 -0.2 - endloop - endfacet - facet normal -0.215553 0.976492 0 - outer loop - vertex 25.181 -21.8805 -0.2 - vertex 24.827 -21.9586 0 - vertex 25.181 -21.8805 0 - endloop - endfacet - facet normal -0.215553 0.976492 0 - outer loop - vertex 24.827 -21.9586 0 - vertex 25.181 -21.8805 -0.2 - vertex 24.827 -21.9586 -0.2 - endloop - endfacet - facet normal -0.27228 0.962218 0 - outer loop - vertex 24.827 -21.9586 -0.2 - vertex 24.5319 -22.0421 0 - vertex 24.827 -21.9586 0 - endloop - endfacet - facet normal -0.27228 0.962218 0 - outer loop - vertex 24.5319 -22.0421 0 - vertex 24.827 -21.9586 -0.2 - vertex 24.5319 -22.0421 -0.2 - endloop - endfacet - facet normal -0.339982 0.940432 0 - outer loop - vertex 24.5319 -22.0421 -0.2 - vertex 24.2621 -22.1397 0 - vertex 24.5319 -22.0421 0 - endloop - endfacet - facet normal -0.339982 0.940432 0 - outer loop - vertex 24.2621 -22.1397 0 - vertex 24.5319 -22.0421 -0.2 - vertex 24.2621 -22.1397 -0.2 - endloop - endfacet - facet normal -0.419841 0.907598 0 - outer loop - vertex 24.2621 -22.1397 -0.2 - vertex 24.0091 -22.2567 0 - vertex 24.2621 -22.1397 0 - endloop - endfacet - facet normal -0.419841 0.907598 0 - outer loop - vertex 24.0091 -22.2567 0 - vertex 24.2621 -22.1397 -0.2 - vertex 24.0091 -22.2567 -0.2 - endloop - endfacet - facet normal -0.501876 0.864939 0 - outer loop - vertex 24.0091 -22.2567 -0.2 - vertex 23.7644 -22.3987 0 - vertex 24.0091 -22.2567 0 - endloop - endfacet - facet normal -0.501876 0.864939 0 - outer loop - vertex 23.7644 -22.3987 0 - vertex 24.0091 -22.2567 -0.2 - vertex 23.7644 -22.3987 -0.2 - endloop - endfacet - facet normal -0.575619 0.817718 0 - outer loop - vertex 23.7644 -22.3987 -0.2 - vertex 23.5194 -22.5712 0 - vertex 23.7644 -22.3987 0 - endloop - endfacet - facet normal -0.575619 0.817718 0 - outer loop - vertex 23.5194 -22.5712 0 - vertex 23.7644 -22.3987 -0.2 - vertex 23.5194 -22.5712 -0.2 - endloop - endfacet - facet normal -0.634613 0.77283 0 - outer loop - vertex 23.5194 -22.5712 -0.2 - vertex 23.2657 -22.7795 0 - vertex 23.5194 -22.5712 0 - endloop - endfacet - facet normal -0.634613 0.77283 0 - outer loop - vertex 23.2657 -22.7795 0 - vertex 23.5194 -22.5712 -0.2 - vertex 23.2657 -22.7795 -0.2 - endloop - endfacet - facet normal -0.693326 0.720624 0 - outer loop - vertex 23.2657 -22.7795 -0.2 - vertex 22.6979 -23.3258 0 - vertex 23.2657 -22.7795 0 - endloop - endfacet - facet normal -0.693326 0.720624 0 - outer loop - vertex 22.6979 -23.3258 0 - vertex 23.2657 -22.7795 -0.2 - vertex 22.6979 -23.3258 -0.2 - endloop - endfacet - facet normal -0.729687 0.683781 0 - outer loop - vertex 22.2832 -23.7683 -0.2 - vertex 22.6979 -23.3258 0 - vertex 22.6979 -23.3258 -0.2 - endloop - endfacet - facet normal -0.729687 0.683781 0 - outer loop - vertex 22.6979 -23.3258 0 - vertex 22.2832 -23.7683 -0.2 - vertex 22.2832 -23.7683 0 - endloop - endfacet - facet normal -0.755777 0.65483 0 - outer loop - vertex 21.9437 -24.1601 -0.2 - vertex 22.2832 -23.7683 0 - vertex 22.2832 -23.7683 -0.2 - endloop - endfacet - facet normal -0.755777 0.65483 0 - outer loop - vertex 22.2832 -23.7683 0 - vertex 21.9437 -24.1601 -0.2 - vertex 21.9437 -24.1601 0 - endloop - endfacet - facet normal -0.793147 0.60903 0 - outer loop - vertex 21.7143 -24.4589 -0.2 - vertex 21.9437 -24.1601 0 - vertex 21.9437 -24.1601 -0.2 - endloop - endfacet - facet normal -0.793147 0.60903 0 - outer loop - vertex 21.9437 -24.1601 0 - vertex 21.7143 -24.4589 -0.2 - vertex 21.7143 -24.4589 0 - endloop - endfacet - facet normal -0.850912 0.525308 0 - outer loop - vertex 21.6518 -24.5601 -0.2 - vertex 21.7143 -24.4589 0 - vertex 21.7143 -24.4589 -0.2 - endloop - endfacet - facet normal -0.850912 0.525308 0 - outer loop - vertex 21.7143 -24.4589 0 - vertex 21.6518 -24.5601 -0.2 - vertex 21.6518 -24.5601 0 - endloop - endfacet - facet normal -0.943329 0.331858 0 - outer loop - vertex 21.63 -24.6221 -0.2 - vertex 21.6518 -24.5601 0 - vertex 21.6518 -24.5601 -0.2 - endloop - endfacet - facet normal -0.943329 0.331858 0 - outer loop - vertex 21.6518 -24.5601 0 - vertex 21.63 -24.6221 -0.2 - vertex 21.63 -24.6221 0 - endloop - endfacet - facet normal -0.568017 -0.823017 0 - outer loop - vertex 21.63 -24.6221 -0.2 - vertex 21.6873 -24.6616 0 - vertex 21.63 -24.6221 0 - endloop - endfacet - facet normal -0.568017 -0.823017 -0 - outer loop - vertex 21.6873 -24.6616 0 - vertex 21.63 -24.6221 -0.2 - vertex 21.6873 -24.6616 -0.2 - endloop - endfacet - facet normal -0.21919 -0.975682 0 - outer loop - vertex 21.6873 -24.6616 -0.2 - vertex 21.8514 -24.6984 0 - vertex 21.6873 -24.6616 0 - endloop - endfacet - facet normal -0.21919 -0.975682 -0 - outer loop - vertex 21.8514 -24.6984 0 - vertex 21.6873 -24.6616 -0.2 - vertex 21.8514 -24.6984 -0.2 - endloop - endfacet - facet normal -0.103226 -0.994658 0 - outer loop - vertex 21.8514 -24.6984 -0.2 - vertex 22.454 -24.761 0 - vertex 21.8514 -24.6984 0 - endloop - endfacet - facet normal -0.103226 -0.994658 -0 - outer loop - vertex 22.454 -24.761 0 - vertex 21.8514 -24.6984 -0.2 - vertex 22.454 -24.761 -0.2 - endloop - endfacet - facet normal -0.0473276 -0.998879 0 - outer loop - vertex 22.454 -24.761 -0.2 - vertex 23.3459 -24.8032 0 - vertex 22.454 -24.761 0 - endloop - endfacet - facet normal -0.0473276 -0.998879 -0 - outer loop - vertex 23.3459 -24.8032 0 - vertex 22.454 -24.761 -0.2 - vertex 23.3459 -24.8032 -0.2 - endloop - endfacet - facet normal -0.0142485 -0.999898 0 - outer loop - vertex 23.3459 -24.8032 -0.2 - vertex 24.435 -24.8188 0 - vertex 23.3459 -24.8032 0 - endloop - endfacet - facet normal -0.0142485 -0.999898 -0 - outer loop - vertex 24.435 -24.8188 0 - vertex 23.3459 -24.8032 -0.2 - vertex 24.435 -24.8188 -0.2 + vertex 24.4233 -24.8188 0 + vertex 21.6183 -24.6221 -3 + vertex 24.4233 -24.8188 -3 endloop endfacet facet normal 0 -1 0 outer loop - vertex 24.435 -24.8188 -0.2 - vertex 27.2401 -24.8188 0 - vertex 24.435 -24.8188 0 + vertex 24.4233 -24.8188 -3 + vertex 27.2283 -24.8188 0 + vertex 24.4233 -24.8188 0 endloop endfacet facet normal 0 -1 -0 outer loop - vertex 27.2401 -24.8188 0 - vertex 24.435 -24.8188 -0.2 - vertex 27.2401 -24.8188 -0.2 + vertex 27.2283 -24.8188 0 + vertex 24.4233 -24.8188 -3 + vertex 27.2283 -24.8188 -3 endloop endfacet facet normal 0.986418 -0.164252 0 outer loop - vertex 27.2401 -24.8188 0 - vertex 27.373 -24.0204 -0.2 - vertex 27.373 -24.0204 0 + vertex 27.2283 -24.8188 0 + vertex 27.3613 -24.0204 -3 + vertex 27.3613 -24.0204 0 endloop endfacet facet normal 0.986418 -0.164252 0 outer loop - vertex 27.373 -24.0204 -0.2 - vertex 27.2401 -24.8188 0 - vertex 27.2401 -24.8188 -0.2 + vertex 27.3613 -24.0204 -3 + vertex 27.2283 -24.8188 0 + vertex 27.2283 -24.8188 -3 endloop endfacet - facet normal 0.99159 -0.129416 0 + facet normal 0.999989 -0.00473466 0 outer loop - vertex 27.373 -24.0204 0 - vertex 27.4161 -23.6904 -0.2 - vertex 27.4161 -23.6904 0 + vertex 27.3613 -24.0204 0 + vertex 27.3668 -22.8574 -3 + vertex 27.3668 -22.8574 0 endloop endfacet - facet normal 0.99159 -0.129416 0 + facet normal 0.999989 -0.00473466 0 outer loop - vertex 27.4161 -23.6904 -0.2 - vertex 27.373 -24.0204 0 - vertex 27.373 -24.0204 -0.2 + vertex 27.3668 -22.8574 -3 + vertex 27.3613 -24.0204 0 + vertex 27.3613 -24.0204 -3 endloop endfacet - facet normal 0.998763 -0.0497285 0 + facet normal 0.863473 0.504395 0 outer loop - vertex 27.4161 -23.6904 0 - vertex 27.4312 -23.3865 -0.2 - vertex 27.4312 -23.3865 0 + vertex 27.3668 -22.8574 0 + vertex 26.9354 -22.1189 -3 + vertex 26.9354 -22.1189 0 endloop endfacet - facet normal 0.998763 -0.0497285 0 + facet normal 0.863473 0.504395 0 outer loop - vertex 27.4312 -23.3865 -0.2 - vertex 27.4161 -23.6904 0 - vertex 27.4161 -23.6904 -0.2 + vertex 26.9354 -22.1189 -3 + vertex 27.3668 -22.8574 0 + vertex 27.3668 -22.8574 -3 endloop endfacet - facet normal 0.998974 0.0452785 0 + facet normal 0.334224 0.942494 -0 outer loop - vertex 27.4312 -23.3865 0 - vertex 27.4186 -23.1088 -0.2 - vertex 27.4186 -23.1088 0 + vertex 26.9354 -22.1189 -3 + vertex 26.0804 -21.8157 0 + vertex 26.9354 -22.1189 0 endloop endfacet - facet normal 0.998974 0.0452785 0 + facet normal 0.334224 0.942494 0 outer loop - vertex 27.4186 -23.1088 -0.2 - vertex 27.4312 -23.3865 0 - vertex 27.4312 -23.3865 -0.2 + vertex 26.0804 -21.8157 0 + vertex 26.9354 -22.1189 -3 + vertex 26.0804 -21.8157 -3 endloop endfacet - facet normal 0.987512 0.157546 0 + facet normal -0.112261 0.993679 0 outer loop - vertex 27.4186 -23.1088 0 - vertex 27.3785 -22.8574 -0.2 - vertex 27.3785 -22.8574 0 + vertex 26.0804 -21.8157 -3 + vertex 24.8153 -21.9586 0 + vertex 26.0804 -21.8157 0 endloop endfacet - facet normal 0.987512 0.157546 0 + facet normal -0.112261 0.993679 0 outer loop - vertex 27.3785 -22.8574 -0.2 - vertex 27.4186 -23.1088 0 - vertex 27.4186 -23.1088 -0.2 - endloop - endfacet - facet normal 0.957877 0.287177 0 - outer loop - vertex 27.3785 -22.8574 0 - vertex 27.3111 -22.6325 -0.2 - vertex 27.3111 -22.6325 0 - endloop - endfacet - facet normal 0.957877 0.287177 0 - outer loop - vertex 27.3111 -22.6325 -0.2 - vertex 27.3785 -22.8574 0 - vertex 27.3785 -22.8574 -0.2 - endloop - endfacet - facet normal 0.902589 0.430503 0 - outer loop - vertex 27.3111 -22.6325 0 - vertex 27.2166 -22.4344 -0.2 - vertex 27.2166 -22.4344 0 - endloop - endfacet - facet normal 0.902589 0.430503 0 - outer loop - vertex 27.2166 -22.4344 -0.2 - vertex 27.3111 -22.6325 0 - vertex 27.3111 -22.6325 -0.2 - endloop - endfacet - facet normal 0.815851 0.578262 0 - outer loop - vertex 27.2166 -22.4344 0 - vertex 27.0952 -22.2631 -0.2 - vertex 27.0952 -22.2631 0 - endloop - endfacet - facet normal 0.815851 0.578262 0 - outer loop - vertex 27.0952 -22.2631 -0.2 - vertex 27.2166 -22.4344 0 - vertex 27.2166 -22.4344 -0.2 - endloop - endfacet - facet normal 0.697754 0.716337 -0 - outer loop - vertex 27.0952 -22.2631 -0.2 - vertex 26.9471 -22.1189 0 - vertex 27.0952 -22.2631 0 - endloop - endfacet - facet normal 0.697754 0.716337 0 - outer loop - vertex 26.9471 -22.1189 0 - vertex 27.0952 -22.2631 -0.2 - vertex 26.9471 -22.1189 -0.2 - endloop - endfacet - facet normal 0.556877 0.830595 -0 - outer loop - vertex 26.9471 -22.1189 -0.2 - vertex 26.7726 -22.0019 0 - vertex 26.9471 -22.1189 0 - endloop - endfacet - facet normal 0.556877 0.830595 0 - outer loop - vertex 26.7726 -22.0019 0 - vertex 26.9471 -22.1189 -0.2 - vertex 26.7726 -22.0019 -0.2 - endloop - endfacet - facet normal 0.40766 0.913134 -0 - outer loop - vertex 26.7726 -22.0019 -0.2 - vertex 26.5717 -21.9122 0 - vertex 26.7726 -22.0019 0 - endloop - endfacet - facet normal 0.40766 0.913134 0 - outer loop - vertex 26.5717 -21.9122 0 - vertex 26.7726 -22.0019 -0.2 - vertex 26.5717 -21.9122 -0.2 - endloop - endfacet - facet normal 0.264042 0.964511 -0 - outer loop - vertex 26.5717 -21.9122 -0.2 - vertex 26.3449 -21.8501 0 - vertex 26.5717 -21.9122 0 - endloop - endfacet - facet normal 0.264042 0.964511 0 - outer loop - vertex 26.3449 -21.8501 0 - vertex 26.5717 -21.9122 -0.2 - vertex 26.3449 -21.8501 -0.2 - endloop - endfacet - facet normal 0.134852 0.990866 -0 - outer loop - vertex 26.3449 -21.8501 -0.2 - vertex 26.0922 -21.8157 0 - vertex 26.3449 -21.8501 0 - endloop - endfacet - facet normal 0.134852 0.990866 0 - outer loop - vertex 26.0922 -21.8157 0 - vertex 26.3449 -21.8501 -0.2 - vertex 26.0922 -21.8157 -0.2 - endloop - endfacet - facet normal 0.0233803 0.999727 -0 - outer loop - vertex 26.0922 -21.8157 -0.2 - vertex 25.8138 -21.8092 0 - vertex 26.0922 -21.8157 0 - endloop - endfacet - facet normal 0.0233803 0.999727 0 - outer loop - vertex 25.8138 -21.8092 0 - vertex 26.0922 -21.8157 -0.2 - vertex 25.8138 -21.8092 -0.2 - endloop - endfacet - facet normal -0.0707205 0.997496 0 - outer loop - vertex 25.8138 -21.8092 -0.2 - vertex 25.51 -21.8307 0 - vertex 25.8138 -21.8092 0 - endloop - endfacet - facet normal -0.0707205 0.997496 0 - outer loop - vertex 25.51 -21.8307 0 - vertex 25.8138 -21.8092 -0.2 - vertex 25.51 -21.8307 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.0431 -18.7102 -0.2 - vertex -32.1476 -18.5412 -0.2 - vertex -36.5163 -17.3821 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.1476 -18.5412 -0.2 - vertex -37.0431 -18.7102 -0.2 - vertex -33.2902 -21.4299 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.2902 -21.4299 -0.2 - vertex -37.0431 -18.7102 -0.2 - vertex -33.4325 -21.7956 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.3469 -21.8682 -0.2 - vertex -33.4325 -21.7956 -0.2 - vertex -37.0431 -18.7102 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.4325 -21.7956 -0.2 - vertex -38.3469 -21.8682 -0.2 - vertex -33.503 -22.0719 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.503 -22.0719 -0.2 - vertex -38.3469 -21.8682 -0.2 - vertex -34.9509 -25.4747 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.8955 -25.4747 -0.2 - vertex -34.9509 -25.4747 -0.2 - vertex -38.3469 -21.8682 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.9509 -25.4747 -0.2 - vertex -39.8955 -25.4747 -0.2 - vertex -35.4707 -26.6225 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.4707 -26.6225 -0.2 - vertex -39.8955 -25.4747 -0.2 - vertex -36.4516 -28.8697 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -41.2695 -28.6585 -0.2 - vertex -36.4516 -28.8697 -0.2 - vertex -39.8955 -25.4747 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.4516 -28.8697 -0.2 - vertex -41.2695 -28.6585 -0.2 - vertex -37.5165 -31.4193 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -42.2252 -30.9405 -0.2 - vertex -37.5165 -31.4193 -0.2 - vertex -41.2695 -28.6585 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.5165 -31.4193 -0.2 - vertex -42.2252 -30.9405 -0.2 - vertex -38.3711 -33.5534 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4764 -11.5321 -0.2 - vertex -17.4002 -11.6639 -0.2 - vertex -17.4268 -11.5861 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 -0.2 - vertex -17.5514 -11.4978 -0.2 - vertex -17.3941 -11.77 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 -0.2 - vertex -17.4764 -11.5321 -0.2 - vertex -17.5514 -11.4978 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7876 -11.4712 -0.2 - vertex -17.3941 -11.77 -0.2 - vertex -17.5514 -11.4978 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.3941 -11.77 -0.2 - vertex -17.7876 -11.4712 -0.2 - vertex -17.4339 -12.0833 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4339 -12.0833 -0.2 - vertex -17.7876 -11.4712 -0.2 - vertex -17.5116 -12.3759 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5116 -12.3759 -0.2 - vertex -17.7876 -11.4712 -0.2 - vertex -17.6664 -12.8441 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.9412 -14.6683 -0.2 - vertex -17.6664 -12.8441 -0.2 - vertex -17.7876 -11.4712 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.6664 -12.8441 -0.2 - vertex -21.9412 -14.6683 -0.2 - vertex -18.1466 -14.1495 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -21.6284 -15.0493 -0.2 - vertex -18.1466 -14.1495 -0.2 - vertex -21.6966 -14.8935 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -21.5879 -15.2616 -0.2 - vertex -18.7537 -15.6836 -0.2 - vertex -21.6284 -15.0493 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -21.5693 -15.5508 -0.2 - vertex -18.7537 -15.6836 -0.2 - vertex -21.5879 -15.2616 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.5729 -16.4428 -0.2 - vertex -19.3667 -17.1305 -0.2 - vertex -21.5693 -15.5508 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.3667 -17.1305 -0.2 - vertex -21.5729 -16.4428 -0.2 - vertex -19.4996 -17.3696 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.4996 -17.3696 -0.2 - vertex -21.5729 -16.4428 -0.2 - vertex -19.6713 -17.584 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.5774 -17.3273 -0.2 - vertex -19.8743 -17.7693 -0.2 - vertex -21.5729 -16.4428 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.8743 -17.7693 -0.2 - vertex -21.5774 -17.3273 -0.2 - vertex -20.1009 -17.9213 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.1009 -17.9213 -0.2 - vertex -21.5774 -17.3273 -0.2 - vertex -20.3435 -18.0357 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.5945 -18.108 -0.2 - vertex -21.5774 -17.3273 -0.2 - vertex -20.8463 -18.1339 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -21.5614 -17.6077 -0.2 - vertex -20.8463 -18.1339 -0.2 - vertex -21.5774 -17.3273 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.8463 -18.1339 -0.2 - vertex -21.5614 -17.6077 -0.2 - vertex -21.0912 -18.1093 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.0912 -18.1093 -0.2 - vertex -21.5614 -17.6077 -0.2 - vertex -21.2545 -18.0693 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2545 -18.0693 -0.2 - vertex -21.5263 -17.8042 -0.2 - vertex -21.378 -18.0171 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.3435 -18.0357 -0.2 - vertex -21.5774 -17.3273 -0.2 - vertex -20.5945 -18.108 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.6713 -17.584 -0.2 - vertex -21.5729 -16.4428 -0.2 - vertex -19.8743 -17.7693 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.7537 -15.6836 -0.2 - vertex -21.5693 -15.5508 -0.2 - vertex -19.3667 -17.1305 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.1466 -14.1495 -0.2 - vertex -21.6284 -15.0493 -0.2 - vertex -18.7537 -15.6836 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.1466 -14.1495 -0.2 - vertex -21.7989 -14.7733 -0.2 - vertex -21.6966 -14.8935 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.1466 -14.1495 -0.2 - vertex -21.9412 -14.6683 -0.2 - vertex -21.7989 -14.7733 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7876 -11.4712 -0.2 - vertex -22.1296 -14.5577 -0.2 - vertex -21.9412 -14.6683 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7876 -11.4712 -0.2 - vertex -22.3213 -14.4724 -0.2 - vertex -22.1296 -14.5577 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7876 -11.4712 -0.2 - vertex -22.5778 -14.3998 -0.2 - vertex -22.3213 -14.4724 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7876 -11.4712 -0.2 - vertex -22.9103 -14.3386 -0.2 - vertex -22.5778 -14.3998 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7876 -11.4712 -0.2 - vertex -23.3301 -14.2877 -0.2 - vertex -22.9103 -14.3386 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.175 -11.3523 -0.2 - vertex -23.3301 -14.2877 -0.2 - vertex -17.7876 -11.4712 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.3301 -14.2877 -0.2 - vertex -27.175 -11.3523 -0.2 - vertex -24.4767 -14.2125 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.4767 -14.2125 -0.2 - vertex -27.175 -11.3523 -0.2 - vertex -26.1077 -14.1654 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.175 -11.3523 -0.2 - vertex -28.2448 -14.1442 -0.2 - vertex -26.1077 -14.1654 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.175 -11.3523 -0.2 - vertex -28.9898 -14.1579 -0.2 - vertex -28.2448 -14.1442 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.175 -11.3523 -0.2 - vertex -29.549 -14.1906 -0.2 - vertex -28.9898 -14.1579 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.0944 -11.3029 -0.2 - vertex -29.549 -14.1906 -0.2 - vertex -27.175 -11.3523 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.549 -14.1906 -0.2 - vertex -32.0944 -11.3029 -0.2 - vertex -29.9449 -14.2443 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.9449 -14.2443 -0.2 - vertex -32.0944 -11.3029 -0.2 - vertex -30.1999 -14.321 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3673 -14.4836 -0.2 - vertex -30.4158 -14.7057 -0.2 - vertex -30.377 -14.5514 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3673 -14.4836 -0.2 - vertex -30.5215 -14.964 -0.2 - vertex -30.4158 -14.7057 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.4754 -14.1281 -0.2 - vertex -30.5215 -14.964 -0.2 - vertex -30.3673 -14.4836 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.5215 -14.964 -0.2 - vertex -35.4754 -14.1281 -0.2 - vertex -30.678 -15.2903 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.678 -15.2903 -0.2 - vertex -35.4754 -14.1281 -0.2 - vertex -30.8691 -15.6487 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -35.5123 -14.4274 -0.2 - vertex -30.8691 -15.6487 -0.2 - vertex -35.4754 -14.1281 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1999 -14.321 -0.2 - vertex -32.0944 -11.3029 -0.2 - vertex -30.2816 -14.3686 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.0944 -11.3029 -0.2 - vertex -30.3364 -14.4227 -0.2 - vertex -30.2816 -14.3686 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.0944 -11.3029 -0.2 - vertex -30.3673 -14.4836 -0.2 - vertex -30.3364 -14.4227 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -35.4904 -13.894 -0.2 - vertex -30.3673 -14.4836 -0.2 - vertex -32.0944 -11.3029 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.8691 -15.6487 -0.2 - vertex -35.5123 -14.4274 -0.2 - vertex -31.1223 -16.1487 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -35.5964 -14.799 -0.2 - vertex -31.1223 -16.1487 -0.2 - vertex -35.5123 -14.4274 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.1223 -16.1487 -0.2 - vertex -35.5964 -14.799 -0.2 - vertex -31.4477 -16.8607 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -35.7796 -15.3934 -0.2 - vertex -31.4477 -16.8607 -0.2 - vertex -35.5964 -14.799 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.4477 -16.8607 -0.2 - vertex -35.7796 -15.3934 -0.2 - vertex -31.8034 -17.6899 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.4904 -13.894 -0.2 - vertex -32.0944 -11.3029 -0.2 - vertex -33.7011 -11.3017 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -21.5263 -17.8042 -0.2 - vertex -21.2545 -18.0693 -0.2 - vertex -21.5614 -17.6077 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.378 -18.0171 -0.2 - vertex -21.5263 -17.8042 -0.2 - vertex -21.4669 -17.9347 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.4624 -26.9141 -0.2 - vertex -27.8988 -26.2055 -0.2 - vertex -27.8924 -26.5154 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.2929 -22.2506 -0.2 - vertex -27.9236 -26.0946 -0.2 - vertex -27.8988 -26.2055 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.2929 -22.2506 -0.2 - vertex -27.9636 -26.0069 -0.2 - vertex -27.9236 -26.0946 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.2929 -22.2506 -0.2 - vertex -28.0195 -25.9379 -0.2 - vertex -27.9636 -26.0069 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.2929 -22.2506 -0.2 - vertex -28.0919 -25.8829 -0.2 - vertex -28.0195 -25.9379 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2888 -25.7968 -0.2 - vertex -27.6923 -22.3658 -0.2 - vertex -28.1242 -22.4577 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.6923 -22.3658 -0.2 - vertex -28.2888 -25.7968 -0.2 - vertex -28.0919 -25.8829 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.1242 -22.4577 -0.2 - vertex -28.5596 -25.7117 -0.2 - vertex -28.2888 -25.7968 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -28.5914 -22.5277 -0.2 - vertex -28.5596 -25.7117 -0.2 - vertex -28.1242 -22.4577 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.5914 -22.5277 -0.2 - vertex -28.7678 -25.6646 -0.2 - vertex -28.5596 -25.7117 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.5914 -22.5277 -0.2 - vertex -29.0734 -25.6205 -0.2 - vertex -28.7678 -25.6646 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -29.0966 -22.5767 -0.2 - vertex -29.0734 -25.6205 -0.2 - vertex -28.5914 -22.5277 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -29.6427 -22.606 -0.2 - vertex -29.0734 -25.6205 -0.2 - vertex -29.0966 -22.5767 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.6427 -22.606 -0.2 - vertex -29.9179 -25.5457 -0.2 - vertex -29.0734 -25.6205 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -30.2322 -22.6168 -0.2 - vertex -29.9179 -25.5457 -0.2 - vertex -29.6427 -22.606 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.9759 -25.4949 -0.2 - vertex -30.2322 -22.6168 -0.2 - vertex -30.868 -22.6102 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2322 -22.6168 -0.2 - vertex -30.9759 -25.4949 -0.2 - vertex -29.9179 -25.5457 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.8095 -22.5865 -0.2 - vertex -30.9759 -25.4949 -0.2 - vertex -30.868 -22.6102 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.8095 -22.5865 -0.2 - vertex -32.1303 -25.4759 -0.2 - vertex -30.9759 -25.4949 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.5132 -22.5543 -0.2 - vertex -32.1303 -25.4759 -0.2 - vertex -31.8095 -22.5865 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.0067 -22.5002 -0.2 - vertex -32.1303 -25.4759 -0.2 - vertex -32.5132 -22.5543 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.1833 -22.4608 -0.2 - vertex -32.1303 -25.4759 -0.2 - vertex -33.0067 -22.5002 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.9509 -25.4747 -0.2 - vertex -33.1833 -22.4608 -0.2 - vertex -33.3177 -22.4108 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.9509 -25.4747 -0.2 - vertex -33.3177 -22.4108 -0.2 - vertex -33.4135 -22.3486 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.9509 -25.4747 -0.2 - vertex -33.4135 -22.3486 -0.2 - vertex -33.4739 -22.2725 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -36.0907 -16.2655 -0.2 - vertex -31.8034 -17.6899 -0.2 - vertex -35.7796 -15.3934 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.5622 -13.718 -0.2 - vertex -33.7011 -11.3017 -0.2 - vertex -34.8583 -11.3197 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.1833 -22.4608 -0.2 - vertex -34.9509 -25.4747 -0.2 - vertex -32.1303 -25.4759 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.5026 -22.1809 -0.2 - vertex -34.9509 -25.4747 -0.2 - vertex -33.4739 -22.2725 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.8034 -17.6899 -0.2 - vertex -36.0907 -16.2655 -0.2 - vertex -32.1476 -18.5412 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.503 -22.0719 -0.2 - vertex -34.9509 -25.4747 -0.2 - vertex -33.5026 -22.1809 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -36.5163 -17.3821 -0.2 - vertex -32.1476 -18.5412 -0.2 - vertex -36.0907 -16.2655 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3673 -14.4836 -0.2 - vertex -35.4904 -13.894 -0.2 - vertex -35.4754 -14.1281 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.7011 -11.3017 -0.2 - vertex -35.5189 -13.7992 -0.2 - vertex -35.4904 -13.894 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.7011 -11.3017 -0.2 - vertex -35.5622 -13.718 -0.2 - vertex -35.5189 -13.7992 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.8583 -11.3197 -0.2 - vertex -35.6209 -13.6496 -0.2 - vertex -35.5622 -13.718 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.6956 -13.593 -0.2 - vertex -34.8583 -11.3197 -0.2 - vertex -35.6555 -11.3595 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.8583 -11.3197 -0.2 - vertex -35.6956 -13.593 -0.2 - vertex -35.6209 -13.6496 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.6555 -11.3595 -0.2 - vertex -35.8956 -13.512 -0.2 - vertex -35.6956 -13.593 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -36.1819 -11.4238 -0.2 - vertex -35.8956 -13.512 -0.2 - vertex -35.6555 -11.3595 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.8956 -13.512 -0.2 - vertex -36.1819 -11.4238 -0.2 - vertex -36.1669 -13.4677 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -36.527 -11.5152 -0.2 - vertex -36.1669 -13.4677 -0.2 - vertex -36.1819 -11.4238 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -36.7802 -11.6364 -0.2 - vertex -36.1669 -13.4677 -0.2 - vertex -36.527 -11.5152 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.1669 -13.4677 -0.2 - vertex -36.7802 -11.6364 -0.2 - vertex -36.5145 -13.4531 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -36.9755 -11.7636 -0.2 - vertex -36.5145 -13.4531 -0.2 - vertex -36.7802 -11.6364 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -37.1409 -11.9004 -0.2 - vertex -36.5145 -13.4531 -0.2 - vertex -36.9755 -11.7636 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.5145 -13.4531 -0.2 - vertex -37.1409 -11.9004 -0.2 - vertex -36.7305 -13.4387 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -37.2767 -12.0443 -0.2 - vertex -36.7305 -13.4387 -0.2 - vertex -37.1409 -11.9004 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.7305 -13.4387 -0.2 - vertex -37.2767 -12.0443 -0.2 - vertex -36.9216 -13.3997 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -37.3834 -12.1929 -0.2 - vertex -36.9216 -13.3997 -0.2 - vertex -37.2767 -12.0443 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -37.4611 -12.3438 -0.2 - vertex -36.9216 -13.3997 -0.2 - vertex -37.3834 -12.1929 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.9216 -13.3997 -0.2 - vertex -37.4611 -12.3438 -0.2 - vertex -37.0874 -13.3385 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -37.5104 -12.4945 -0.2 - vertex -37.0874 -13.3385 -0.2 - vertex -37.4611 -12.3438 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.0874 -13.3385 -0.2 - vertex -37.5104 -12.4945 -0.2 - vertex -37.2276 -13.2576 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -37.5315 -12.6425 -0.2 - vertex -37.2276 -13.2576 -0.2 - vertex -37.5104 -12.4945 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.2276 -13.2576 -0.2 - vertex -37.5315 -12.6425 -0.2 - vertex -37.3418 -13.1594 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.3418 -13.1594 -0.2 - vertex -37.5315 -12.6425 -0.2 - vertex -37.4296 -13.0463 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.4296 -13.0463 -0.2 - vertex -37.5315 -12.6425 -0.2 - vertex -37.4908 -12.9209 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.4908 -12.9209 -0.2 - vertex -37.5315 -12.6425 -0.2 - vertex -37.5249 -12.7854 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.9739 -18.9651 -0.2 - vertex -22.585 -19.4947 -0.2 - vertex -22.594 -19.3555 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.8524 -19.008 -0.2 - vertex -22.594 -19.3555 -0.2 - vertex -22.625 -19.2389 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.7539 -19.0668 -0.2 - vertex -22.625 -19.2389 -0.2 - vertex -22.6782 -19.1432 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.594 -19.3555 -0.2 - vertex -22.8524 -19.008 -0.2 - vertex -22.9739 -18.9651 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.625 -19.2389 -0.2 - vertex -22.7539 -19.0668 -0.2 - vertex -22.8524 -19.008 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.1186 -18.9365 -0.2 - vertex -22.585 -19.4947 -0.2 - vertex -22.9739 -18.9651 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.585 -19.4947 -0.2 - vertex -23.1186 -18.9365 -0.2 - vertex -22.5978 -19.6581 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4791 -18.9156 -0.2 - vertex -22.5978 -19.6581 -0.2 - vertex -23.1186 -18.9365 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.5978 -19.6581 -0.2 - vertex -23.4791 -18.9156 -0.2 - vertex -22.6874 -20.0641 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -23.6632 -18.9241 -0.2 - vertex -22.6874 -20.0641 -0.2 - vertex -23.4791 -18.9156 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.3738 -19.4278 -0.2 - vertex -22.6874 -20.0641 -0.2 - vertex -24.2328 -19.2424 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.6874 -20.0641 -0.2 - vertex -23.6632 -18.9241 -0.2 - vertex -24.2328 -19.2424 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.0993 -19.1062 -0.2 - vertex -23.6632 -18.9241 -0.2 - vertex -23.8226 -18.954 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.0993 -19.1062 -0.2 - vertex -23.8226 -18.954 -0.2 - vertex -23.9653 -19.0124 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.6632 -18.9241 -0.2 - vertex -24.0993 -19.1062 -0.2 - vertex -24.2328 -19.2424 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.6874 -20.0641 -0.2 - vertex -24.3738 -19.4278 -0.2 - vertex -22.8608 -20.5868 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.7108 -19.9745 -0.2 - vertex -22.8608 -20.5868 -0.2 - vertex -24.3738 -19.4278 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.8608 -20.5868 -0.2 - vertex -24.7108 -19.9745 -0.2 - vertex -23.116 -21.2395 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.9407 -20.3516 -0.2 - vertex -23.116 -21.2395 -0.2 - vertex -24.7108 -19.9745 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.1784 -20.695 -0.2 - vertex -23.116 -21.2395 -0.2 - vertex -24.9407 -20.3516 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.4267 -21.0057 -0.2 - vertex -23.116 -21.2395 -0.2 - vertex -25.1784 -20.695 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.6884 -21.2849 -0.2 - vertex -23.116 -21.2395 -0.2 - vertex -25.4267 -21.0057 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.116 -21.2395 -0.2 - vertex -25.6884 -21.2849 -0.2 - vertex -24.3958 -24.3815 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.9661 -21.5339 -0.2 - vertex -24.3958 -24.3815 -0.2 - vertex -25.6884 -21.2849 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.2627 -21.7538 -0.2 - vertex -24.3958 -24.3815 -0.2 - vertex -25.9661 -21.5339 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.5809 -21.9457 -0.2 - vertex -24.3958 -24.3815 -0.2 - vertex -26.2627 -21.7538 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.9234 -22.1109 -0.2 - vertex -24.3958 -24.3815 -0.2 - vertex -26.5809 -21.9457 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.2929 -22.2506 -0.2 - vertex -24.3958 -24.3815 -0.2 - vertex -26.9234 -22.1109 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3958 -24.3815 -0.2 - vertex -27.2929 -22.2506 -0.2 - vertex -24.9793 -25.8003 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.4624 -26.9141 -0.2 - vertex -27.8924 -26.5154 -0.2 - vertex -25.8688 -27.7587 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.8688 -27.7587 -0.2 - vertex -27.9393 -26.9734 -0.2 - vertex -26.0506 -28.0911 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.0506 -28.0911 -0.2 - vertex -27.9393 -26.9734 -0.2 - vertex -26.2221 -28.3696 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.9393 -26.9734 -0.2 - vertex -25.8688 -27.7587 -0.2 - vertex -27.8924 -26.5154 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.2221 -28.3696 -0.2 - vertex -27.9393 -26.9734 -0.2 - vertex -26.3861 -28.5987 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -28.1721 -28.4809 -0.2 - vertex -26.3861 -28.5987 -0.2 - vertex -27.9393 -26.9734 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.8988 -26.2055 -0.2 - vertex -24.9793 -25.8003 -0.2 - vertex -27.2929 -22.2506 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.3861 -28.5987 -0.2 - vertex -28.1721 -28.4809 -0.2 - vertex -26.5458 -28.7827 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.5458 -28.7827 -0.2 - vertex -28.1721 -28.4809 -0.2 - vertex -26.7039 -28.9262 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.8988 -26.2055 -0.2 - vertex -25.4624 -26.9141 -0.2 - vertex -24.9793 -25.8003 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.7039 -28.9262 -0.2 - vertex -28.1721 -28.4809 -0.2 - vertex -26.8635 -29.0336 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.8635 -29.0336 -0.2 - vertex -28.1721 -28.4809 -0.2 - vertex -27.0275 -29.1093 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.0919 -25.8829 -0.2 - vertex -27.2929 -22.2506 -0.2 - vertex -27.6923 -22.3658 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.0275 -29.1093 -0.2 - vertex -28.1721 -28.4809 -0.2 - vertex -27.1989 -29.1579 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.1989 -29.1579 -0.2 - vertex -28.1721 -28.4809 -0.2 - vertex -27.3805 -29.1838 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.3805 -29.1838 -0.2 - vertex -28.1721 -28.4809 -0.2 - vertex -27.5755 -29.1914 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -28.2235 -28.8853 -0.2 - vertex -27.5755 -29.1914 -0.2 - vertex -28.1721 -28.4809 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.5755 -29.1914 -0.2 - vertex -28.2235 -28.8853 -0.2 - vertex -27.9775 -29.1782 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.9775 -29.1782 -0.2 - vertex -28.2235 -28.8853 -0.2 - vertex -28.0989 -29.15 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -28.2154 -29.0113 -0.2 - vertex -28.0989 -29.15 -0.2 - vertex -28.2235 -28.8853 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.0989 -29.15 -0.2 - vertex -28.2154 -29.0113 -0.2 - vertex -28.176 -29.097 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4571 -30.6716 -0.2 - vertex -23.4513 -30.847 -0.2 - vertex -23.4345 -30.738 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.5012 -30.6026 -0.2 - vertex -23.4513 -30.847 -0.2 - vertex -23.4571 -30.6716 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.6433 -30.465 -0.2 - vertex -23.4513 -30.847 -0.2 - vertex -23.5012 -30.6026 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4513 -30.847 -0.2 - vertex -23.6433 -30.465 -0.2 - vertex -23.5218 -31.031 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.8399 -30.3412 -0.2 - vertex -23.5218 -31.031 -0.2 - vertex -23.6433 -30.465 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.0701 -30.2475 -0.2 - vertex -23.5218 -31.031 -0.2 - vertex -23.8399 -30.3412 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.5218 -31.031 -0.2 - vertex -24.0701 -30.2475 -0.2 - vertex -23.8031 -31.5911 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.8452 -30.2998 -0.2 - vertex -23.8031 -31.5911 -0.2 - vertex -24.0701 -30.2475 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.8452 -30.2998 -0.2 - vertex -24.0701 -30.2475 -0.2 - vertex -24.2803 -30.1833 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.6311 -30.1847 -0.2 - vertex -24.2803 -30.1833 -0.2 - vertex -24.455 -30.1541 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.6311 -30.1847 -0.2 - vertex -24.455 -30.1541 -0.2 - vertex -24.5406 -30.1604 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.2803 -30.1833 -0.2 - vertex -24.6311 -30.1847 -0.2 - vertex -24.8452 -30.2998 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.8031 -31.5911 -0.2 - vertex -24.8452 -30.2998 -0.2 - vertex -25.1341 -30.5242 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.5344 -30.8827 -0.2 - vertex -23.8031 -31.5911 -0.2 - vertex -25.1341 -30.5242 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.8031 -31.5911 -0.2 - vertex -25.5344 -30.8827 -0.2 - vertex -24.2375 -32.3527 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.2375 -32.3527 -0.2 - vertex -25.5344 -30.8827 -0.2 - vertex -24.7839 -33.2498 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.8166 -32.1012 -0.2 - vertex -24.7839 -33.2498 -0.2 - vertex -25.5344 -30.8827 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.7839 -33.2498 -0.2 - vertex -26.8166 -32.1012 -0.2 - vertex -25.4011 -34.2168 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.3602 -32.5933 -0.2 - vertex -25.4011 -34.2168 -0.2 - vertex -26.8166 -32.1012 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.924 -33.0516 -0.2 - vertex -25.4011 -34.2168 -0.2 - vertex -27.3602 -32.5933 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.4011 -34.2168 -0.2 - vertex -27.924 -33.0516 -0.2 - vertex -26.0482 -35.1877 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -28.5012 -33.4718 -0.2 - vertex -26.0482 -35.1877 -0.2 - vertex -27.924 -33.0516 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.0482 -35.1877 -0.2 - vertex -28.5012 -33.4718 -0.2 - vertex -26.6839 -36.0968 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -29.0852 -33.8499 -0.2 - vertex -26.6839 -36.0968 -0.2 - vertex -28.5012 -33.4718 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.6839 -36.0968 -0.2 - vertex -29.0852 -33.8499 -0.2 - vertex -27.2673 -36.8782 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -29.669 -34.1817 -0.2 - vertex -27.2673 -36.8782 -0.2 - vertex -29.0852 -33.8499 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -30.2461 -34.4632 -0.2 - vertex -27.2673 -36.8782 -0.2 - vertex -29.669 -34.1817 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.2673 -36.8782 -0.2 - vertex -30.2461 -34.4632 -0.2 - vertex -28.2718 -38.1638 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -30.8095 -34.6902 -0.2 - vertex -28.2718 -38.1638 -0.2 - vertex -30.2461 -34.4632 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -31.3526 -34.8586 -0.2 - vertex -28.2718 -38.1638 -0.2 - vertex -30.8095 -34.6902 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -31.5797 -34.902 -0.2 - vertex -28.2718 -38.1638 -0.2 - vertex -31.3526 -34.8586 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -31.9023 -34.9414 -0.2 - vertex -28.2718 -38.1638 -0.2 - vertex -31.5797 -34.902 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -32.7769 -35.0076 -0.2 - vertex -28.2718 -38.1638 -0.2 - vertex -31.9023 -34.9414 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.6203 -38.1325 -0.2 - vertex -32.7769 -35.0076 -0.2 - vertex -33.8615 -35.0556 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.6203 -38.1325 -0.2 - vertex -33.8615 -35.0556 -0.2 - vertex -35.0412 -35.0835 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.6203 -38.1325 -0.2 - vertex -35.0412 -35.0835 -0.2 - vertex -36.2012 -35.0898 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.6203 -38.1325 -0.2 - vertex -36.2012 -35.0898 -0.2 - vertex -37.2267 -35.0727 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.7769 -35.0076 -0.2 - vertex -37.6203 -38.1325 -0.2 - vertex -28.2718 -38.1638 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.0027 -35.0306 -0.2 - vertex -37.6203 -38.1325 -0.2 - vertex -37.2267 -35.0727 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.2613 -34.9997 -0.2 - vertex -37.6203 -38.1325 -0.2 - vertex -38.0027 -35.0306 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.4144 -34.9619 -0.2 - vertex -37.6203 -38.1325 -0.2 - vertex -38.2613 -34.9997 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -41.2883 -38.1087 -0.2 - vertex -38.4144 -34.9619 -0.2 - vertex -38.5336 -34.8886 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -41.2883 -38.1087 -0.2 - vertex -38.5336 -34.8886 -0.2 - vertex -38.6312 -34.7874 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -41.2883 -38.1087 -0.2 - vertex -38.6312 -34.7874 -0.2 - vertex -38.6971 -34.6715 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -42.7651 -32.2453 -0.2 - vertex -38.3711 -33.5534 -0.2 - vertex -42.2252 -30.9405 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.3711 -33.5534 -0.2 - vertex -42.7651 -32.2453 -0.2 - vertex -38.6277 -34.2404 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.6277 -34.2404 -0.2 - vertex -42.7651 -32.2453 -0.2 - vertex -38.7214 -34.5543 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -43.2426 -33.2915 -0.2 - vertex -38.7214 -34.5543 -0.2 - vertex -42.7651 -32.2453 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -43.4655 -33.7273 -0.2 - vertex -38.7214 -34.5543 -0.2 - vertex -43.2426 -33.2915 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.7214 -34.5543 -0.2 - vertex -43.4655 -33.7273 -0.2 - vertex -38.6971 -34.6715 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.4144 -34.9619 -0.2 - vertex -41.2883 -38.1087 -0.2 - vertex -37.6203 -38.1325 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -43.682 -34.1098 -0.2 - vertex -38.6971 -34.6715 -0.2 - vertex -43.4655 -33.7273 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.6971 -34.6715 -0.2 - vertex -43.682 -34.1098 -0.2 - vertex -41.2883 -38.1087 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -43.8952 -34.443 -0.2 - vertex -41.2883 -38.1087 -0.2 - vertex -43.682 -34.1098 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -44.108 -34.7306 -0.2 - vertex -41.2883 -38.1087 -0.2 - vertex -43.8952 -34.443 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -44.3237 -34.9765 -0.2 - vertex -41.2883 -38.1087 -0.2 - vertex -44.108 -34.7306 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -44.3237 -34.9765 -0.2 - vertex -44.3648 -38.0673 -0.2 - vertex -41.2883 -38.1087 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -44.5451 -35.1844 -0.2 - vertex -44.3648 -38.0673 -0.2 - vertex -44.3237 -34.9765 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -44.7755 -35.3583 -0.2 - vertex -44.3648 -38.0673 -0.2 - vertex -44.5451 -35.1844 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -45.0179 -35.5019 -0.2 - vertex -44.3648 -38.0673 -0.2 - vertex -44.7755 -35.3583 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -45.2753 -35.6191 -0.2 - vertex -44.3648 -38.0673 -0.2 - vertex -45.0179 -35.5019 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -45.5508 -35.7136 -0.2 - vertex -44.3648 -38.0673 -0.2 - vertex -45.2753 -35.6191 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -45.8475 -35.7893 -0.2 - vertex -44.3648 -38.0673 -0.2 - vertex -45.5508 -35.7136 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -46.5272 -38.014 -0.2 - vertex -45.8475 -35.7893 -0.2 - vertex -46.1684 -35.8499 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -46.5272 -38.014 -0.2 - vertex -46.1684 -35.8499 -0.2 - vertex -46.4544 -35.9117 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -45.8475 -35.7893 -0.2 - vertex -46.5272 -38.014 -0.2 - vertex -44.3648 -38.0673 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -46.7228 -35.999 -0.2 - vertex -46.5272 -38.014 -0.2 - vertex -46.4544 -35.9117 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -46.9715 -36.1082 -0.2 - vertex -46.5272 -38.014 -0.2 - vertex -46.7228 -35.999 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.1985 -36.2359 -0.2 - vertex -46.5272 -38.014 -0.2 - vertex -46.9715 -36.1082 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.4015 -36.3788 -0.2 - vertex -46.5272 -38.014 -0.2 - vertex -47.1985 -36.2359 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -46.5272 -38.014 -0.2 - vertex -47.4015 -36.3788 -0.2 - vertex -47.1648 -37.9848 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.5785 -36.5332 -0.2 - vertex -47.1648 -37.9848 -0.2 - vertex -47.4015 -36.3788 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.7274 -36.6957 -0.2 - vertex -47.1648 -37.9848 -0.2 - vertex -47.5785 -36.5332 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.846 -36.863 -0.2 - vertex -47.1648 -37.9848 -0.2 - vertex -47.7274 -36.6957 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.1648 -37.9848 -0.2 - vertex -47.846 -36.863 -0.2 - vertex -47.4529 -37.9547 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.9322 -37.0315 -0.2 - vertex -47.4529 -37.9547 -0.2 - vertex -47.846 -36.863 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.4529 -37.9547 -0.2 - vertex -47.9322 -37.0315 -0.2 - vertex -47.6522 -37.8745 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.984 -37.1977 -0.2 - vertex -47.6522 -37.8745 -0.2 - vertex -47.9322 -37.0315 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.6522 -37.8745 -0.2 - vertex -47.984 -37.1977 -0.2 - vertex -47.8044 -37.7712 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -47.9993 -37.3583 -0.2 - vertex -47.8044 -37.7712 -0.2 - vertex -47.984 -37.1977 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.8044 -37.7712 -0.2 - vertex -47.9993 -37.3583 -0.2 - vertex -47.9115 -37.6485 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.9115 -37.6485 -0.2 - vertex -47.9993 -37.3583 -0.2 - vertex -47.9758 -37.5097 -0.2 - endloop - endfacet - facet normal -0.0100487 -0.99995 0 - outer loop - vertex -32.0944 -11.3029 -0.2 - vertex -27.175 -11.3523 0 - vertex -32.0944 -11.3029 0 - endloop - endfacet - facet normal -0.0100487 -0.99995 -0 - outer loop - vertex -27.175 -11.3523 0 - vertex -32.0944 -11.3029 -0.2 - vertex -27.175 -11.3523 -0.2 + vertex 24.8153 -21.9586 0 + vertex 26.0804 -21.8157 -3 + vertex 24.8153 -21.9586 -3 endloop endfacet facet normal -0.0126654 -0.99992 0 outer loop - vertex -27.175 -11.3523 -0.2 - vertex -17.7876 -11.4712 0 - vertex -27.175 -11.3523 0 + vertex -27.1868 -11.3523 -3 + vertex -17.7993 -11.4712 0 + vertex -27.1868 -11.3523 0 endloop endfacet facet normal -0.0126654 -0.99992 -0 outer loop - vertex -17.7876 -11.4712 0 - vertex -27.175 -11.3523 -0.2 - vertex -17.7876 -11.4712 -0.2 + vertex -17.7993 -11.4712 0 + vertex -27.1868 -11.3523 -3 + vertex -17.7993 -11.4712 -3 endloop endfacet - facet normal -0.111827 -0.993728 0 + facet normal -0.303355 -0.952878 0 outer loop - vertex -17.7876 -11.4712 -0.2 - vertex -17.5514 -11.4978 0 - vertex -17.7876 -11.4712 0 + vertex -17.7993 -11.4712 -3 + vertex -17.4385 -11.5861 0 + vertex -17.7993 -11.4712 0 endloop endfacet - facet normal -0.111827 -0.993728 -0 + facet normal -0.303355 -0.952878 -0 outer loop - vertex -17.5514 -11.4978 0 - vertex -17.7876 -11.4712 -0.2 - vertex -17.5514 -11.4978 -0.2 + vertex -17.4385 -11.5861 0 + vertex -17.7993 -11.4712 -3 + vertex -17.4385 -11.5861 -3 endloop endfacet - facet normal -0.415864 -0.909427 0 + facet normal -0.999899 0.0142188 0 outer loop - vertex -17.5514 -11.4978 -0.2 - vertex -17.4764 -11.5321 0 - vertex -17.5514 -11.4978 0 + vertex -17.4456 -12.0833 -3 + vertex -17.4385 -11.5861 0 + vertex -17.4385 -11.5861 -3 endloop endfacet - facet normal -0.415864 -0.909427 -0 + facet normal -0.999899 0.0142188 0 outer loop - vertex -17.4764 -11.5321 0 - vertex -17.5514 -11.4978 -0.2 - vertex -17.4764 -11.5321 -0.2 + vertex -17.4385 -11.5861 0 + vertex -17.4456 -12.0833 -3 + vertex -17.4456 -12.0833 0 endloop endfacet - facet normal -0.736355 -0.676596 0 + facet normal -0.933863 0.35763 0 outer loop - vertex -17.4268 -11.5861 -0.2 - vertex -17.4764 -11.5321 0 - vertex -17.4764 -11.5321 -0.2 + vertex -19.3785 -17.1305 -3 + vertex -17.4456 -12.0833 0 + vertex -17.4456 -12.0833 -3 endloop endfacet - facet normal -0.736355 -0.676596 0 + facet normal -0.933863 0.35763 0 outer loop - vertex -17.4764 -11.5321 0 - vertex -17.4268 -11.5861 -0.2 - vertex -17.4268 -11.5861 0 + vertex -17.4456 -12.0833 0 + vertex -19.3785 -17.1305 -3 + vertex -19.3785 -17.1305 0 endloop endfacet - facet normal -0.946306 -0.323273 0 + facet normal -0.830148 0.557543 0 outer loop - vertex -17.4002 -11.6639 -0.2 - vertex -17.4268 -11.5861 0 - vertex -17.4268 -11.5861 -0.2 + vertex -19.683 -17.584 -3 + vertex -19.3785 -17.1305 0 + vertex -19.3785 -17.1305 -3 endloop endfacet - facet normal -0.946306 -0.323273 0 + facet normal -0.830148 0.557543 0 outer loop - vertex -17.4268 -11.5861 0 - vertex -17.4002 -11.6639 -0.2 - vertex -17.4002 -11.6639 0 + vertex -19.3785 -17.1305 0 + vertex -19.683 -17.584 -3 + vertex -19.683 -17.584 0 endloop endfacet - facet normal -0.998372 -0.057036 0 + facet normal -0.617609 0.786485 0 outer loop - vertex -17.3941 -11.77 -0.2 - vertex -17.4002 -11.6639 0 - vertex -17.4002 -11.6639 -0.2 + vertex -19.683 -17.584 -3 + vertex -20.1126 -17.9213 0 + vertex -19.683 -17.584 0 endloop endfacet - facet normal -0.998372 -0.057036 0 + facet normal -0.617609 0.786485 0 outer loop - vertex -17.4002 -11.6639 0 - vertex -17.3941 -11.77 -0.2 - vertex -17.3941 -11.77 0 + vertex -20.1126 -17.9213 0 + vertex -19.683 -17.584 -3 + vertex -20.1126 -17.9213 -3 endloop endfacet - facet normal -0.992058 0.125781 0 + facet normal -0.353642 0.935381 0 outer loop - vertex -17.4339 -12.0833 -0.2 - vertex -17.3941 -11.77 0 - vertex -17.3941 -11.77 -0.2 + vertex -20.1126 -17.9213 -3 + vertex -20.6062 -18.108 0 + vertex -20.1126 -17.9213 0 endloop endfacet - facet normal -0.992058 0.125781 0 + facet normal -0.353642 0.935381 0 outer loop - vertex -17.3941 -11.77 0 - vertex -17.4339 -12.0833 -0.2 - vertex -17.4339 -12.0833 0 + vertex -20.6062 -18.108 0 + vertex -20.1126 -17.9213 -3 + vertex -20.6062 -18.108 -3 endloop endfacet - facet normal -0.966487 0.256715 0 + facet normal -0.00259595 0.999997 0 outer loop - vertex -17.5116 -12.3759 -0.2 - vertex -17.4339 -12.0833 0 - vertex -17.4339 -12.0833 -0.2 + vertex -20.6062 -18.108 -3 + vertex -21.1029 -18.1093 0 + vertex -20.6062 -18.108 0 endloop endfacet - facet normal -0.966487 0.256715 0 + facet normal -0.00259595 0.999997 0 outer loop - vertex -17.4339 -12.0833 0 - vertex -17.5116 -12.3759 -0.2 - vertex -17.5116 -12.3759 0 + vertex -21.1029 -18.1093 0 + vertex -20.6062 -18.108 -3 + vertex -21.1029 -18.1093 -3 endloop endfacet - facet normal -0.949465 0.313873 0 + facet normal 0.306009 0.952029 -0 outer loop - vertex -17.6664 -12.8441 -0.2 - vertex -17.5116 -12.3759 0 - vertex -17.5116 -12.3759 -0.2 + vertex -21.1029 -18.1093 -3 + vertex -21.3898 -18.0171 0 + vertex -21.1029 -18.1093 0 endloop endfacet - facet normal -0.949465 0.313873 0 + facet normal 0.306009 0.952029 0 outer loop - vertex -17.5116 -12.3759 0 - vertex -17.6664 -12.8441 -0.2 - vertex -17.6664 -12.8441 0 + vertex -21.3898 -18.0171 0 + vertex -21.1029 -18.1093 -3 + vertex -21.3898 -18.0171 -3 endloop endfacet - facet normal -0.938494 0.345297 0 + facet normal 0.820593 0.571513 0 outer loop - vertex -18.1466 -14.1495 -0.2 - vertex -17.6664 -12.8441 0 - vertex -17.6664 -12.8441 -0.2 + vertex -21.3898 -18.0171 0 + vertex -21.538 -17.8042 -3 + vertex -21.538 -17.8042 0 endloop endfacet - facet normal -0.938494 0.345297 0 + facet normal 0.820593 0.571513 0 outer loop - vertex -17.6664 -12.8441 0 - vertex -18.1466 -14.1495 -0.2 - vertex -18.1466 -14.1495 0 + vertex -21.538 -17.8042 -3 + vertex -21.3898 -18.0171 0 + vertex -21.3898 -18.0171 -3 endloop endfacet - facet normal -0.929834 0.367979 0 + facet normal 0.999415 0.0341969 0 outer loop - vertex -18.7537 -15.6836 -0.2 - vertex -18.1466 -14.1495 0 - vertex -18.1466 -14.1495 -0.2 + vertex -21.538 -17.8042 0 + vertex -21.5846 -16.4428 -3 + vertex -21.5846 -16.4428 0 endloop endfacet - facet normal -0.929834 0.367979 0 + facet normal 0.999415 0.0341969 0 outer loop - vertex -18.1466 -14.1495 0 - vertex -18.7537 -15.6836 -0.2 - vertex -18.7537 -15.6836 0 + vertex -21.5846 -16.4428 -3 + vertex -21.538 -17.8042 0 + vertex -21.538 -17.8042 -3 endloop endfacet - facet normal -0.920782 0.390077 0 + facet normal 0.999208 0.039804 0 outer loop - vertex -19.3667 -17.1305 -0.2 - vertex -18.7537 -15.6836 0 - vertex -18.7537 -15.6836 -0.2 + vertex -21.5846 -16.4428 0 + vertex -21.6401 -15.0493 -3 + vertex -21.6401 -15.0493 0 endloop endfacet - facet normal -0.920782 0.390077 0 + facet normal 0.999208 0.039804 0 outer loop - vertex -18.7537 -15.6836 0 - vertex -19.3667 -17.1305 -0.2 - vertex -19.3667 -17.1305 0 + vertex -21.6401 -15.0493 -3 + vertex -21.5846 -16.4428 0 + vertex -21.5846 -16.4428 -3 endloop endfacet - facet normal -0.87414 0.485675 0 + facet normal 0.85074 0.525587 0 outer loop - vertex -19.4996 -17.3696 -0.2 - vertex -19.3667 -17.1305 0 - vertex -19.3667 -17.1305 -0.2 + vertex -21.6401 -15.0493 0 + vertex -21.8106 -14.7733 -3 + vertex -21.8106 -14.7733 0 endloop endfacet - facet normal -0.87414 0.485675 0 + facet normal 0.85074 0.525587 0 outer loop - vertex -19.3667 -17.1305 0 - vertex -19.4996 -17.3696 -0.2 - vertex -19.4996 -17.3696 0 + vertex -21.8106 -14.7733 -3 + vertex -21.6401 -15.0493 0 + vertex -21.6401 -15.0493 -3 endloop endfacet - facet normal -0.780486 0.625173 0 + facet normal 0.546243 0.837626 -0 outer loop - vertex -19.6713 -17.584 -0.2 - vertex -19.4996 -17.3696 0 - vertex -19.4996 -17.3696 -0.2 + vertex -21.8106 -14.7733 -3 + vertex -22.1413 -14.5577 0 + vertex -21.8106 -14.7733 0 endloop endfacet - facet normal -0.780486 0.625173 0 + facet normal 0.546243 0.837626 0 outer loop - vertex -19.4996 -17.3696 0 - vertex -19.6713 -17.584 -0.2 - vertex -19.6713 -17.584 0 + vertex -22.1413 -14.5577 0 + vertex -21.8106 -14.7733 -3 + vertex -22.1413 -14.5577 -3 endloop endfacet - facet normal -0.674318 0.738441 0 + facet normal 0.21941 0.975633 -0 outer loop - vertex -19.6713 -17.584 -0.2 - vertex -19.8743 -17.7693 0 - vertex -19.6713 -17.584 0 + vertex -22.1413 -14.5577 -3 + vertex -23.3419 -14.2877 0 + vertex -22.1413 -14.5577 0 endloop endfacet - facet normal -0.674318 0.738441 0 + facet normal 0.21941 0.975633 0 outer loop - vertex -19.8743 -17.7693 0 - vertex -19.6713 -17.584 -0.2 - vertex -19.8743 -17.7693 -0.2 + vertex -23.3419 -14.2877 0 + vertex -22.1413 -14.5577 -3 + vertex -23.3419 -14.2877 -3 endloop endfacet - facet normal -0.55704 0.830486 0 + facet normal 0.0439983 0.999032 -0 outer loop - vertex -19.8743 -17.7693 -0.2 - vertex -20.1009 -17.9213 0 - vertex -19.8743 -17.7693 0 + vertex -23.3419 -14.2877 -3 + vertex -26.1195 -14.1654 0 + vertex -23.3419 -14.2877 0 endloop endfacet - facet normal -0.55704 0.830486 0 + facet normal 0.0439983 0.999032 0 outer loop - vertex -20.1009 -17.9213 0 - vertex -19.8743 -17.7693 -0.2 - vertex -20.1009 -17.9213 -0.2 + vertex -26.1195 -14.1654 0 + vertex -23.3419 -14.2877 -3 + vertex -26.1195 -14.1654 -3 endloop endfacet - facet normal -0.42623 0.904615 0 + facet normal -0.00734919 0.999973 0 outer loop - vertex -20.1009 -17.9213 -0.2 - vertex -20.3435 -18.0357 0 - vertex -20.1009 -17.9213 0 + vertex -26.1195 -14.1654 -3 + vertex -29.5608 -14.1906 0 + vertex -26.1195 -14.1654 0 endloop endfacet - facet normal -0.42623 0.904615 0 + facet normal -0.00734919 0.999973 0 outer loop - vertex -20.3435 -18.0357 0 - vertex -20.1009 -17.9213 -0.2 - vertex -20.3435 -18.0357 -0.2 + vertex -29.5608 -14.1906 0 + vertex -26.1195 -14.1654 -3 + vertex -29.5608 -14.1906 -3 endloop endfacet - facet normal -0.276826 0.96092 0 + facet normal -0.196359 0.980532 0 outer loop - vertex -20.3435 -18.0357 -0.2 - vertex -20.5945 -18.108 0 - vertex -20.3435 -18.0357 0 + vertex -29.5608 -14.1906 -3 + vertex -30.2116 -14.321 0 + vertex -29.5608 -14.1906 0 endloop endfacet - facet normal -0.276826 0.96092 0 + facet normal -0.196359 0.980532 0 outer loop - vertex -20.5945 -18.108 0 - vertex -20.3435 -18.0357 -0.2 - vertex -20.5945 -18.108 -0.2 + vertex -30.2116 -14.321 0 + vertex -29.5608 -14.1906 -3 + vertex -30.2116 -14.321 -3 endloop endfacet - facet normal -0.102621 0.994721 0 + facet normal -0.792981 0.609246 0 outer loop - vertex -20.5945 -18.108 -0.2 - vertex -20.8463 -18.1339 0 - vertex -20.5945 -18.108 0 + vertex -30.3887 -14.5514 -3 + vertex -30.2116 -14.321 0 + vertex -30.2116 -14.321 -3 endloop endfacet - facet normal -0.102621 0.994721 0 + facet normal -0.792981 0.609246 0 outer loop - vertex -20.8463 -18.1339 0 - vertex -20.5945 -18.108 -0.2 - vertex -20.8463 -18.1339 -0.2 + vertex -30.2116 -14.321 0 + vertex -30.3887 -14.5514 -3 + vertex -30.3887 -14.5514 0 endloop endfacet - facet normal 0.100283 0.994959 -0 + facet normal -0.912409 0.409279 0 outer loop - vertex -20.8463 -18.1339 -0.2 - vertex -21.0912 -18.1093 0 - vertex -20.8463 -18.1339 0 + vertex -30.8809 -15.6487 -3 + vertex -30.3887 -14.5514 0 + vertex -30.3887 -14.5514 -3 endloop endfacet - facet normal 0.100283 0.994959 0 + facet normal -0.912409 0.409279 0 outer loop - vertex -21.0912 -18.1093 0 - vertex -20.8463 -18.1339 -0.2 - vertex -21.0912 -18.1093 -0.2 + vertex -30.3887 -14.5514 0 + vertex -30.8809 -15.6487 -3 + vertex -30.8809 -15.6487 0 endloop endfacet - facet normal 0.237758 0.971324 -0 + facet normal -0.91465 0.404247 0 outer loop - vertex -21.0912 -18.1093 -0.2 - vertex -21.2545 -18.0693 0 - vertex -21.0912 -18.1093 0 + vertex -32.1593 -18.5412 -3 + vertex -30.8809 -15.6487 0 + vertex -30.8809 -15.6487 -3 endloop endfacet - facet normal 0.237758 0.971324 0 + facet normal -0.91465 0.404247 0 outer loop - vertex -21.2545 -18.0693 0 - vertex -21.0912 -18.1093 -0.2 - vertex -21.2545 -18.0693 -0.2 - endloop - endfacet - facet normal 0.389432 0.921055 -0 - outer loop - vertex -21.2545 -18.0693 -0.2 - vertex -21.378 -18.0171 0 - vertex -21.2545 -18.0693 0 - endloop - endfacet - facet normal 0.389432 0.921055 0 - outer loop - vertex -21.378 -18.0171 0 - vertex -21.2545 -18.0693 -0.2 - vertex -21.378 -18.0171 -0.2 - endloop - endfacet - facet normal 0.679889 0.733315 -0 - outer loop - vertex -21.378 -18.0171 -0.2 - vertex -21.4669 -17.9347 0 - vertex -21.378 -18.0171 0 - endloop - endfacet - facet normal 0.679889 0.733315 0 - outer loop - vertex -21.4669 -17.9347 0 - vertex -21.378 -18.0171 -0.2 - vertex -21.4669 -17.9347 -0.2 - endloop - endfacet - facet normal 0.910139 0.414303 0 - outer loop - vertex -21.4669 -17.9347 0 - vertex -21.5263 -17.8042 -0.2 - vertex -21.5263 -17.8042 0 - endloop - endfacet - facet normal 0.910139 0.414303 0 - outer loop - vertex -21.5263 -17.8042 -0.2 - vertex -21.4669 -17.9347 0 - vertex -21.4669 -17.9347 -0.2 - endloop - endfacet - facet normal 0.984407 0.175905 0 - outer loop - vertex -21.5263 -17.8042 0 - vertex -21.5614 -17.6077 -0.2 - vertex -21.5614 -17.6077 0 - endloop - endfacet - facet normal 0.984407 0.175905 0 - outer loop - vertex -21.5614 -17.6077 -0.2 - vertex -21.5263 -17.8042 0 - vertex -21.5263 -17.8042 -0.2 - endloop - endfacet - facet normal 0.998374 0.057002 0 - outer loop - vertex -21.5614 -17.6077 0 - vertex -21.5774 -17.3273 -0.2 - vertex -21.5774 -17.3273 0 - endloop - endfacet - facet normal 0.998374 0.057002 0 - outer loop - vertex -21.5774 -17.3273 -0.2 - vertex -21.5614 -17.6077 0 - vertex -21.5614 -17.6077 -0.2 - endloop - endfacet - facet normal 0.999987 -0.00513458 0 - outer loop - vertex -21.5774 -17.3273 0 - vertex -21.5729 -16.4428 -0.2 - vertex -21.5729 -16.4428 0 - endloop - endfacet - facet normal 0.999987 -0.00513458 0 - outer loop - vertex -21.5729 -16.4428 -0.2 - vertex -21.5774 -17.3273 0 - vertex -21.5774 -17.3273 -0.2 - endloop - endfacet - facet normal 0.999992 -0.00401347 0 - outer loop - vertex -21.5729 -16.4428 0 - vertex -21.5693 -15.5508 -0.2 - vertex -21.5693 -15.5508 0 - endloop - endfacet - facet normal 0.999992 -0.00401347 0 - outer loop - vertex -21.5693 -15.5508 -0.2 - vertex -21.5729 -16.4428 0 - vertex -21.5729 -16.4428 -0.2 - endloop - endfacet - facet normal 0.997925 0.0643945 0 - outer loop - vertex -21.5693 -15.5508 0 - vertex -21.5879 -15.2616 -0.2 - vertex -21.5879 -15.2616 0 - endloop - endfacet - facet normal 0.997925 0.0643945 0 - outer loop - vertex -21.5879 -15.2616 -0.2 - vertex -21.5693 -15.5508 0 - vertex -21.5693 -15.5508 -0.2 - endloop - endfacet - facet normal 0.982338 0.187114 0 - outer loop - vertex -21.5879 -15.2616 0 - vertex -21.6284 -15.0493 -0.2 - vertex -21.6284 -15.0493 0 - endloop - endfacet - facet normal 0.982338 0.187114 0 - outer loop - vertex -21.6284 -15.0493 -0.2 - vertex -21.5879 -15.2616 0 - vertex -21.5879 -15.2616 -0.2 - endloop - endfacet - facet normal 0.915958 0.401274 0 - outer loop - vertex -21.6284 -15.0493 0 - vertex -21.6966 -14.8935 -0.2 - vertex -21.6966 -14.8935 0 - endloop - endfacet - facet normal 0.915958 0.401274 0 - outer loop - vertex -21.6966 -14.8935 -0.2 - vertex -21.6284 -15.0493 0 - vertex -21.6284 -15.0493 -0.2 - endloop - endfacet - facet normal 0.761577 0.648074 0 - outer loop - vertex -21.6966 -14.8935 0 - vertex -21.7989 -14.7733 -0.2 - vertex -21.7989 -14.7733 0 - endloop - endfacet - facet normal 0.761577 0.648074 0 - outer loop - vertex -21.7989 -14.7733 -0.2 - vertex -21.6966 -14.8935 0 - vertex -21.6966 -14.8935 -0.2 - endloop - endfacet - facet normal 0.593991 0.804472 -0 - outer loop - vertex -21.7989 -14.7733 -0.2 - vertex -21.9412 -14.6683 0 - vertex -21.7989 -14.7733 0 - endloop - endfacet - facet normal 0.593991 0.804472 0 - outer loop - vertex -21.9412 -14.6683 0 - vertex -21.7989 -14.7733 -0.2 - vertex -21.9412 -14.6683 -0.2 - endloop - endfacet - facet normal 0.506241 0.862392 -0 - outer loop - vertex -21.9412 -14.6683 -0.2 - vertex -22.1296 -14.5577 0 - vertex -21.9412 -14.6683 0 - endloop - endfacet - facet normal 0.506241 0.862392 0 - outer loop - vertex -22.1296 -14.5577 0 - vertex -21.9412 -14.6683 -0.2 - vertex -22.1296 -14.5577 -0.2 - endloop - endfacet - facet normal 0.406178 0.913794 -0 - outer loop - vertex -22.1296 -14.5577 -0.2 - vertex -22.3213 -14.4724 0 - vertex -22.1296 -14.5577 0 - endloop - endfacet - facet normal 0.406178 0.913794 0 - outer loop - vertex -22.3213 -14.4724 0 - vertex -22.1296 -14.5577 -0.2 - vertex -22.3213 -14.4724 -0.2 - endloop - endfacet - facet normal 0.272589 0.962131 -0 - outer loop - vertex -22.3213 -14.4724 -0.2 - vertex -22.5778 -14.3998 0 - vertex -22.3213 -14.4724 0 - endloop - endfacet - facet normal 0.272589 0.962131 0 - outer loop - vertex -22.5778 -14.3998 0 - vertex -22.3213 -14.4724 -0.2 - vertex -22.5778 -14.3998 -0.2 - endloop - endfacet - facet normal 0.181059 0.983472 -0 - outer loop - vertex -22.5778 -14.3998 -0.2 - vertex -22.9103 -14.3386 0 - vertex -22.5778 -14.3998 0 - endloop - endfacet - facet normal 0.181059 0.983472 0 - outer loop - vertex -22.9103 -14.3386 0 - vertex -22.5778 -14.3998 -0.2 - vertex -22.9103 -14.3386 -0.2 - endloop - endfacet - facet normal 0.120311 0.992736 -0 - outer loop - vertex -22.9103 -14.3386 -0.2 - vertex -23.3301 -14.2877 0 - vertex -22.9103 -14.3386 0 - endloop - endfacet - facet normal 0.120311 0.992736 0 - outer loop - vertex -23.3301 -14.2877 0 - vertex -22.9103 -14.3386 -0.2 - vertex -23.3301 -14.2877 -0.2 - endloop - endfacet - facet normal 0.0654234 0.997858 -0 - outer loop - vertex -23.3301 -14.2877 -0.2 - vertex -24.4767 -14.2125 0 - vertex -23.3301 -14.2877 0 - endloop - endfacet - facet normal 0.0654234 0.997858 0 - outer loop - vertex -24.4767 -14.2125 0 - vertex -23.3301 -14.2877 -0.2 - vertex -24.4767 -14.2125 -0.2 - endloop - endfacet - facet normal 0.0288976 0.999582 -0 - outer loop - vertex -24.4767 -14.2125 -0.2 - vertex -26.1077 -14.1654 0 - vertex -24.4767 -14.2125 0 - endloop - endfacet - facet normal 0.0288976 0.999582 0 - outer loop - vertex -26.1077 -14.1654 0 - vertex -24.4767 -14.2125 -0.2 - vertex -26.1077 -14.1654 -0.2 - endloop - endfacet - facet normal 0.0099076 0.999951 -0 - outer loop - vertex -26.1077 -14.1654 -0.2 - vertex -28.2448 -14.1442 0 - vertex -26.1077 -14.1654 0 - endloop - endfacet - facet normal 0.0099076 0.999951 0 - outer loop - vertex -28.2448 -14.1442 0 - vertex -26.1077 -14.1654 -0.2 - vertex -28.2448 -14.1442 -0.2 - endloop - endfacet - facet normal -0.0184714 0.999829 0 - outer loop - vertex -28.2448 -14.1442 -0.2 - vertex -28.9898 -14.1579 0 - vertex -28.2448 -14.1442 0 - endloop - endfacet - facet normal -0.0184714 0.999829 0 - outer loop - vertex -28.9898 -14.1579 0 - vertex -28.2448 -14.1442 -0.2 - vertex -28.9898 -14.1579 -0.2 - endloop - endfacet - facet normal -0.0583775 0.998295 0 - outer loop - vertex -28.9898 -14.1579 -0.2 - vertex -29.549 -14.1906 0 - vertex -28.9898 -14.1579 0 - endloop - endfacet - facet normal -0.0583775 0.998295 0 - outer loop - vertex -29.549 -14.1906 0 - vertex -28.9898 -14.1579 -0.2 - vertex -29.549 -14.1906 -0.2 - endloop - endfacet - facet normal -0.134346 0.990934 0 - outer loop - vertex -29.549 -14.1906 -0.2 - vertex -29.9449 -14.2443 0 - vertex -29.549 -14.1906 0 - endloop - endfacet - facet normal -0.134346 0.990934 0 - outer loop - vertex -29.9449 -14.2443 0 - vertex -29.549 -14.1906 -0.2 - vertex -29.9449 -14.2443 -0.2 - endloop - endfacet - facet normal -0.287948 0.957646 0 - outer loop - vertex -29.9449 -14.2443 -0.2 - vertex -30.1999 -14.321 0 - vertex -29.9449 -14.2443 0 - endloop - endfacet - facet normal -0.287948 0.957646 0 - outer loop - vertex -30.1999 -14.321 0 - vertex -29.9449 -14.2443 -0.2 - vertex -30.1999 -14.321 -0.2 - endloop - endfacet - facet normal -0.503498 0.863996 0 - outer loop - vertex -30.1999 -14.321 -0.2 - vertex -30.2816 -14.3686 0 - vertex -30.1999 -14.321 0 - endloop - endfacet - facet normal -0.503498 0.863996 0 - outer loop - vertex -30.2816 -14.3686 0 - vertex -30.1999 -14.321 -0.2 - vertex -30.2816 -14.3686 -0.2 - endloop - endfacet - facet normal -0.702151 0.712028 0 - outer loop - vertex -30.2816 -14.3686 -0.2 - vertex -30.3364 -14.4227 0 - vertex -30.2816 -14.3686 0 - endloop - endfacet - facet normal -0.702151 0.712028 0 - outer loop - vertex -30.3364 -14.4227 0 - vertex -30.2816 -14.3686 -0.2 - vertex -30.3364 -14.4227 -0.2 - endloop - endfacet - facet normal -0.891918 0.452198 0 - outer loop - vertex -30.3673 -14.4836 -0.2 - vertex -30.3364 -14.4227 0 - vertex -30.3364 -14.4227 -0.2 - endloop - endfacet - facet normal -0.891918 0.452198 0 - outer loop - vertex -30.3364 -14.4227 0 - vertex -30.3673 -14.4836 -0.2 - vertex -30.3673 -14.4836 0 - endloop - endfacet - facet normal -0.990022 0.140913 0 - outer loop - vertex -30.377 -14.5514 -0.2 - vertex -30.3673 -14.4836 0 - vertex -30.3673 -14.4836 -0.2 - endloop - endfacet - facet normal -0.990022 0.140913 0 - outer loop - vertex -30.3673 -14.4836 0 - vertex -30.377 -14.5514 -0.2 - vertex -30.377 -14.5514 0 - endloop - endfacet - facet normal -0.969743 0.244126 0 - outer loop - vertex -30.4158 -14.7057 -0.2 - vertex -30.377 -14.5514 0 - vertex -30.377 -14.5514 -0.2 - endloop - endfacet - facet normal -0.969743 0.244126 0 - outer loop - vertex -30.377 -14.5514 0 - vertex -30.4158 -14.7057 -0.2 - vertex -30.4158 -14.7057 0 - endloop - endfacet - facet normal -0.925454 0.378859 0 - outer loop - vertex -30.5215 -14.964 -0.2 - vertex -30.4158 -14.7057 0 - vertex -30.4158 -14.7057 -0.2 - endloop - endfacet - facet normal -0.925454 0.378859 0 - outer loop - vertex -30.4158 -14.7057 0 - vertex -30.5215 -14.964 -0.2 - vertex -30.5215 -14.964 0 - endloop - endfacet - facet normal -0.901668 0.432429 0 - outer loop - vertex -30.678 -15.2903 -0.2 - vertex -30.5215 -14.964 0 - vertex -30.5215 -14.964 -0.2 - endloop - endfacet - facet normal -0.901668 0.432429 0 - outer loop - vertex -30.5215 -14.964 0 - vertex -30.678 -15.2903 -0.2 - vertex -30.678 -15.2903 0 - endloop - endfacet - facet normal -0.882363 0.47057 0 - outer loop - vertex -30.8691 -15.6487 -0.2 - vertex -30.678 -15.2903 0 - vertex -30.678 -15.2903 -0.2 - endloop - endfacet - facet normal -0.882363 0.47057 0 - outer loop - vertex -30.678 -15.2903 0 - vertex -30.8691 -15.6487 -0.2 - vertex -30.8691 -15.6487 0 - endloop - endfacet - facet normal -0.892172 0.451696 0 - outer loop - vertex -31.1223 -16.1487 -0.2 - vertex -30.8691 -15.6487 0 - vertex -30.8691 -15.6487 -0.2 - endloop - endfacet - facet normal -0.892172 0.451696 0 - outer loop - vertex -30.8691 -15.6487 0 - vertex -31.1223 -16.1487 -0.2 - vertex -31.1223 -16.1487 0 - endloop - endfacet - facet normal -0.909515 0.415671 0 - outer loop - vertex -31.4477 -16.8607 -0.2 - vertex -31.1223 -16.1487 0 - vertex -31.1223 -16.1487 -0.2 - endloop - endfacet - facet normal -0.909515 0.415671 0 - outer loop - vertex -31.1223 -16.1487 0 - vertex -31.4477 -16.8607 -0.2 - vertex -31.4477 -16.8607 0 - endloop - endfacet - facet normal -0.918988 0.394285 0 - outer loop - vertex -31.8034 -17.6899 -0.2 - vertex -31.4477 -16.8607 0 - vertex -31.4477 -16.8607 -0.2 - endloop - endfacet - facet normal -0.918988 0.394285 0 - outer loop - vertex -31.4477 -16.8607 0 - vertex -31.8034 -17.6899 -0.2 - vertex -31.8034 -17.6899 0 - endloop - endfacet - facet normal -0.927129 0.374741 0 - outer loop - vertex -32.1476 -18.5412 -0.2 - vertex -31.8034 -17.6899 0 - vertex -31.8034 -17.6899 -0.2 - endloop - endfacet - facet normal -0.927129 0.374741 0 - outer loop - vertex -31.8034 -17.6899 0 - vertex -32.1476 -18.5412 -0.2 - vertex -32.1476 -18.5412 0 + vertex -30.8809 -15.6487 0 + vertex -32.1593 -18.5412 -3 + vertex -32.1593 -18.5412 0 endloop endfacet facet normal -0.929897 0.36782 0 outer loop - vertex -33.2902 -21.4299 -0.2 - vertex -32.1476 -18.5412 0 - vertex -32.1476 -18.5412 -0.2 + vertex -33.3019 -21.4299 -3 + vertex -32.1593 -18.5412 0 + vertex -32.1593 -18.5412 -3 endloop endfacet facet normal -0.929897 0.36782 0 outer loop - vertex -32.1476 -18.5412 0 - vertex -33.2902 -21.4299 -0.2 - vertex -33.2902 -21.4299 0 + vertex -32.1593 -18.5412 0 + vertex -33.3019 -21.4299 -3 + vertex -33.3019 -21.4299 0 endloop endfacet - facet normal -0.931897 0.362724 0 + facet normal -0.949218 0.314618 0 outer loop - vertex -33.4325 -21.7956 -0.2 - vertex -33.2902 -21.4299 0 - vertex -33.2902 -21.4299 -0.2 + vertex -33.5147 -22.0719 -3 + vertex -33.3019 -21.4299 0 + vertex -33.3019 -21.4299 -3 endloop endfacet - facet normal -0.931897 0.362724 0 + facet normal -0.949218 0.314618 0 outer loop - vertex -33.2902 -21.4299 0 - vertex -33.4325 -21.7956 -0.2 - vertex -33.4325 -21.7956 0 + vertex -33.3019 -21.4299 0 + vertex -33.5147 -22.0719 -3 + vertex -33.5147 -22.0719 0 endloop endfacet - facet normal -0.968991 0.247098 0 + facet normal -0.877443 -0.47968 0 outer loop - vertex -33.503 -22.0719 -0.2 - vertex -33.4325 -21.7956 0 - vertex -33.4325 -21.7956 -0.2 + vertex -33.3295 -22.4108 -3 + vertex -33.5147 -22.0719 0 + vertex -33.5147 -22.0719 -3 endloop endfacet - facet normal -0.968991 0.247098 0 + facet normal -0.877443 -0.47968 0 outer loop - vertex -33.4325 -21.7956 0 - vertex -33.503 -22.0719 -0.2 - vertex -33.503 -22.0719 0 + vertex -33.5147 -22.0719 0 + vertex -33.3295 -22.4108 -3 + vertex -33.3295 -22.4108 0 endloop endfacet - facet normal -0.999995 -0.00318704 0 + facet normal -0.175573 -0.984466 0 outer loop - vertex -33.5026 -22.1809 -0.2 - vertex -33.503 -22.0719 0 - vertex -33.503 -22.0719 -0.2 + vertex -33.3295 -22.4108 -3 + vertex -32.5249 -22.5543 0 + vertex -33.3295 -22.4108 0 endloop endfacet - facet normal -0.999995 -0.00318704 0 + facet normal -0.175573 -0.984466 -0 outer loop - vertex -33.503 -22.0719 0 - vertex -33.5026 -22.1809 -0.2 - vertex -33.5026 -22.1809 0 + vertex -32.5249 -22.5543 0 + vertex -33.3295 -22.4108 -3 + vertex -32.5249 -22.5543 -3 endloop endfacet - facet normal -0.954349 -0.298693 0 + facet normal -0.0340039 -0.999422 0 outer loop - vertex -33.4739 -22.2725 -0.2 - vertex -33.5026 -22.1809 0 - vertex -33.5026 -22.1809 -0.2 + vertex -32.5249 -22.5543 -3 + vertex -30.8797 -22.6102 0 + vertex -32.5249 -22.5543 0 endloop endfacet - facet normal -0.954349 -0.298693 0 + facet normal -0.0340039 -0.999422 -0 outer loop - vertex -33.5026 -22.1809 0 - vertex -33.4739 -22.2725 -0.2 - vertex -33.4739 -22.2725 0 + vertex -30.8797 -22.6102 0 + vertex -32.5249 -22.5543 -3 + vertex -30.8797 -22.6102 -3 endloop endfacet - facet normal -0.782807 -0.622265 0 + facet normal 0.0362533 -0.999343 0 outer loop - vertex -33.4135 -22.3486 -0.2 - vertex -33.4739 -22.2725 0 - vertex -33.4739 -22.2725 -0.2 + vertex -30.8797 -22.6102 -3 + vertex -28.6031 -22.5277 0 + vertex -30.8797 -22.6102 0 endloop endfacet - facet normal -0.782807 -0.622265 0 + facet normal 0.0362533 -0.999343 0 outer loop - vertex -33.4739 -22.2725 0 - vertex -33.4135 -22.3486 -0.2 - vertex -33.4135 -22.3486 0 + vertex -28.6031 -22.5277 0 + vertex -30.8797 -22.6102 -3 + vertex -28.6031 -22.5277 -3 endloop endfacet - facet normal -0.544751 -0.838598 0 + facet normal 0.242378 -0.970182 0 outer loop - vertex -33.4135 -22.3486 -0.2 - vertex -33.3177 -22.4108 0 - vertex -33.4135 -22.3486 0 + vertex -28.6031 -22.5277 -3 + vertex -26.9351 -22.1109 0 + vertex -28.6031 -22.5277 0 endloop endfacet - facet normal -0.544751 -0.838598 -0 + facet normal 0.242378 -0.970182 0 outer loop - vertex -33.3177 -22.4108 0 - vertex -33.4135 -22.3486 -0.2 - vertex -33.3177 -22.4108 -0.2 + vertex -26.9351 -22.1109 0 + vertex -28.6031 -22.5277 -3 + vertex -26.9351 -22.1109 -3 endloop endfacet - facet normal -0.348432 -0.937334 0 + facet normal 0.555939 -0.831223 0 outer loop - vertex -33.3177 -22.4108 -0.2 - vertex -33.1833 -22.4608 0 - vertex -33.3177 -22.4108 0 + vertex -26.9351 -22.1109 -3 + vertex -25.7001 -21.2849 0 + vertex -26.9351 -22.1109 0 endloop endfacet - facet normal -0.348432 -0.937334 -0 + facet normal 0.555939 -0.831223 0 outer loop - vertex -33.1833 -22.4608 0 - vertex -33.3177 -22.4108 -0.2 - vertex -33.1833 -22.4608 -0.2 + vertex -25.7001 -21.2849 0 + vertex -26.9351 -22.1109 -3 + vertex -25.7001 -21.2849 -3 endloop endfacet - facet normal -0.218014 -0.975946 0 + facet normal 0.801538 -0.597944 0 outer loop - vertex -33.1833 -22.4608 -0.2 - vertex -33.0067 -22.5002 0 - vertex -33.1833 -22.4608 0 + vertex -25.7001 -21.2849 0 + vertex -24.7225 -19.9745 -3 + vertex -24.7225 -19.9745 0 endloop endfacet - facet normal -0.218014 -0.975946 -0 + facet normal 0.801538 -0.597944 0 outer loop - vertex -33.0067 -22.5002 0 - vertex -33.1833 -22.4608 -0.2 - vertex -33.0067 -22.5002 -0.2 + vertex -24.7225 -19.9745 -3 + vertex -25.7001 -21.2849 0 + vertex -25.7001 -21.2849 -3 endloop endfacet - facet normal -0.108894 -0.994053 0 + facet normal 0.817601 -0.575785 0 outer loop - vertex -33.0067 -22.5002 -0.2 - vertex -32.5132 -22.5543 0 - vertex -33.0067 -22.5002 0 + vertex -24.7225 -19.9745 0 + vertex -24.1111 -19.1062 -3 + vertex -24.1111 -19.1062 0 endloop endfacet - facet normal -0.108894 -0.994053 -0 + facet normal 0.817601 -0.575785 0 outer loop - vertex -32.5132 -22.5543 0 - vertex -33.0067 -22.5002 -0.2 - vertex -32.5132 -22.5543 -0.2 + vertex -24.1111 -19.1062 -3 + vertex -24.7225 -19.9745 0 + vertex -24.7225 -19.9745 -3 endloop endfacet - facet normal -0.0456949 -0.998955 0 + facet normal 0.293726 -0.95589 0 outer loop - vertex -32.5132 -22.5543 -0.2 - vertex -31.8095 -22.5865 0 - vertex -32.5132 -22.5543 0 + vertex -24.1111 -19.1062 -3 + vertex -23.4908 -18.9156 0 + vertex -24.1111 -19.1062 0 endloop endfacet - facet normal -0.0456949 -0.998955 -0 + facet normal 0.293726 -0.95589 0 outer loop - vertex -31.8095 -22.5865 0 - vertex -32.5132 -22.5543 -0.2 - vertex -31.8095 -22.5865 -0.2 + vertex -23.4908 -18.9156 0 + vertex -24.1111 -19.1062 -3 + vertex -23.4908 -18.9156 -3 endloop endfacet - facet normal -0.0252584 -0.999681 0 + facet normal -0.145773 -0.989318 0 outer loop - vertex -31.8095 -22.5865 -0.2 - vertex -30.868 -22.6102 0 - vertex -31.8095 -22.5865 0 + vertex -23.4908 -18.9156 -3 + vertex -22.8641 -19.008 0 + vertex -23.4908 -18.9156 0 endloop endfacet - facet normal -0.0252584 -0.999681 -0 + facet normal -0.145773 -0.989318 -0 outer loop - vertex -30.868 -22.6102 0 - vertex -31.8095 -22.5865 -0.2 - vertex -30.868 -22.6102 -0.2 + vertex -22.8641 -19.008 0 + vertex -23.4908 -18.9156 -3 + vertex -22.8641 -19.008 -3 endloop endfacet - facet normal -0.0103281 -0.999947 0 + facet normal -0.802531 -0.59661 0 outer loop - vertex -30.868 -22.6102 -0.2 - vertex -30.2322 -22.6168 0 - vertex -30.868 -22.6102 0 + vertex -22.6057 -19.3555 -3 + vertex -22.8641 -19.008 0 + vertex -22.8641 -19.008 -3 endloop endfacet - facet normal -0.0103281 -0.999947 -0 + facet normal -0.802531 -0.59661 0 outer loop - vertex -30.2322 -22.6168 0 - vertex -30.868 -22.6102 -0.2 - vertex -30.2322 -22.6168 -0.2 + vertex -22.8641 -19.008 0 + vertex -22.6057 -19.3555 -3 + vertex -22.6057 -19.3555 0 endloop endfacet - facet normal 0.0183057 -0.999832 0 + facet normal -0.991425 0.130676 0 outer loop - vertex -30.2322 -22.6168 -0.2 - vertex -29.6427 -22.606 0 - vertex -30.2322 -22.6168 0 + vertex -22.6991 -20.0641 -3 + vertex -22.6057 -19.3555 0 + vertex -22.6057 -19.3555 -3 endloop endfacet - facet normal 0.0183057 -0.999832 0 + facet normal -0.991425 0.130676 0 outer loop - vertex -29.6427 -22.606 0 - vertex -30.2322 -22.6168 -0.2 - vertex -29.6427 -22.606 -0.2 + vertex -22.6057 -19.3555 0 + vertex -22.6991 -20.0641 -3 + vertex -22.6991 -20.0641 0 endloop endfacet - facet normal 0.0536309 -0.998561 0 + facet normal -0.939482 0.342598 0 outer loop - vertex -29.6427 -22.606 -0.2 - vertex -29.0966 -22.5767 0 - vertex -29.6427 -22.606 0 + vertex -23.1278 -21.2395 -3 + vertex -22.6991 -20.0641 0 + vertex -22.6991 -20.0641 -3 endloop endfacet - facet normal 0.0536309 -0.998561 0 + facet normal -0.939482 0.342598 0 outer loop - vertex -29.0966 -22.5767 0 - vertex -29.6427 -22.606 -0.2 - vertex -29.0966 -22.5767 -0.2 + vertex -22.6991 -20.0641 0 + vertex -23.1278 -21.2395 -3 + vertex -23.1278 -21.2395 0 endloop endfacet - facet normal 0.0966018 -0.995323 0 + facet normal -0.926121 0.377226 0 outer loop - vertex -29.0966 -22.5767 -0.2 - vertex -28.5914 -22.5277 0 - vertex -29.0966 -22.5767 0 + vertex -24.4076 -24.3815 -3 + vertex -23.1278 -21.2395 0 + vertex -23.1278 -21.2395 -3 endloop endfacet - facet normal 0.0966018 -0.995323 0 + facet normal -0.926121 0.377226 0 outer loop - vertex -28.5914 -22.5277 0 - vertex -29.0966 -22.5767 -0.2 - vertex -28.5914 -22.5277 -0.2 + vertex -23.1278 -21.2395 0 + vertex -24.4076 -24.3815 -3 + vertex -24.4076 -24.3815 0 endloop endfacet - facet normal 0.148005 -0.988987 0 + facet normal -0.921607 0.388125 0 outer loop - vertex -28.5914 -22.5277 -0.2 - vertex -28.1242 -22.4577 0 - vertex -28.5914 -22.5277 0 + vertex -25.4741 -26.9141 -3 + vertex -24.4076 -24.3815 0 + vertex -24.4076 -24.3815 -3 endloop endfacet - facet normal 0.148005 -0.988987 0 + facet normal -0.921607 0.388125 0 outer loop - vertex -28.1242 -22.4577 0 - vertex -28.5914 -22.5277 -0.2 - vertex -28.1242 -22.4577 -0.2 + vertex -24.4076 -24.3815 0 + vertex -25.4741 -26.9141 -3 + vertex -25.4741 -26.9141 0 endloop endfacet - facet normal 0.208284 -0.978068 0 + facet normal -0.886525 0.462682 0 outer loop - vertex -28.1242 -22.4577 -0.2 - vertex -27.6923 -22.3658 0 - vertex -28.1242 -22.4577 0 + vertex -26.2338 -28.3696 -3 + vertex -25.4741 -26.9141 0 + vertex -25.4741 -26.9141 -3 endloop endfacet - facet normal 0.208284 -0.978068 0 + facet normal -0.886525 0.462682 0 outer loop - vertex -27.6923 -22.3658 0 - vertex -28.1242 -22.4577 -0.2 - vertex -27.6923 -22.3658 -0.2 + vertex -25.4741 -26.9141 0 + vertex -26.2338 -28.3696 -3 + vertex -26.2338 -28.3696 0 endloop endfacet - facet normal 0.277178 -0.960818 0 + facet normal -0.719187 0.694816 0 outer loop - vertex -27.6923 -22.3658 -0.2 - vertex -27.2929 -22.2506 0 - vertex -27.6923 -22.3658 0 + vertex -26.8752 -29.0336 -3 + vertex -26.2338 -28.3696 0 + vertex -26.2338 -28.3696 -3 endloop endfacet - facet normal 0.277178 -0.960818 0 + facet normal -0.719187 0.694816 0 outer loop - vertex -27.2929 -22.2506 0 - vertex -27.6923 -22.3658 -0.2 - vertex -27.2929 -22.2506 -0.2 + vertex -26.2338 -28.3696 0 + vertex -26.8752 -29.0336 -3 + vertex -26.8752 -29.0336 0 endloop endfacet - facet normal 0.353412 -0.935468 0 + facet normal -0.216473 0.976289 0 outer loop - vertex -27.2929 -22.2506 -0.2 - vertex -26.9234 -22.1109 0 - vertex -27.2929 -22.2506 0 + vertex -26.8752 -29.0336 -3 + vertex -27.5872 -29.1914 0 + vertex -26.8752 -29.0336 0 endloop endfacet - facet normal 0.353412 -0.935468 0 + facet normal -0.216473 0.976289 0 outer loop - vertex -26.9234 -22.1109 0 - vertex -27.2929 -22.2506 -0.2 - vertex -26.9234 -22.1109 -0.2 + vertex -27.5872 -29.1914 0 + vertex -26.8752 -29.0336 -3 + vertex -27.5872 -29.1914 -3 endloop endfacet - facet normal 0.434442 -0.9007 0 + facet normal 0.155401 0.987851 -0 outer loop - vertex -26.9234 -22.1109 -0.2 - vertex -26.5809 -21.9457 0 - vertex -26.9234 -22.1109 0 + vertex -27.5872 -29.1914 -3 + vertex -28.1878 -29.097 0 + vertex -27.5872 -29.1914 0 endloop endfacet - facet normal 0.434442 -0.9007 0 + facet normal 0.155401 0.987851 0 outer loop - vertex -26.5809 -21.9457 0 - vertex -26.9234 -22.1109 -0.2 - vertex -26.5809 -21.9457 -0.2 + vertex -28.1878 -29.097 0 + vertex -27.5872 -29.1914 -3 + vertex -28.1878 -29.097 -3 endloop endfacet - facet normal 0.516567 -0.856247 0 + facet normal 0.99998 -0.00638056 0 outer loop - vertex -26.5809 -21.9457 -0.2 - vertex -26.2627 -21.7538 0 - vertex -26.5809 -21.9457 0 + vertex -28.1878 -29.097 0 + vertex -28.1838 -28.4809 -3 + vertex -28.1838 -28.4809 0 endloop endfacet - facet normal 0.516567 -0.856247 0 + facet normal 0.99998 -0.00638056 0 outer loop - vertex -26.2627 -21.7538 0 - vertex -26.5809 -21.9457 -0.2 - vertex -26.2627 -21.7538 -0.2 + vertex -28.1838 -28.4809 -3 + vertex -28.1878 -29.097 0 + vertex -28.1878 -29.097 -3 endloop endfacet - facet normal 0.595538 -0.803327 0 + facet normal 0.992864 -0.119255 0 outer loop - vertex -26.2627 -21.7538 -0.2 - vertex -25.9661 -21.5339 0 - vertex -26.2627 -21.7538 0 + vertex -28.1838 -28.4809 0 + vertex -27.9105 -26.2055 -3 + vertex -27.9105 -26.2055 0 endloop endfacet - facet normal 0.595538 -0.803327 0 + facet normal 0.992864 -0.119255 0 outer loop - vertex -25.9661 -21.5339 0 - vertex -26.2627 -21.7538 -0.2 - vertex -25.9661 -21.5339 -0.2 + vertex -27.9105 -26.2055 -3 + vertex -28.1838 -28.4809 0 + vertex -28.1838 -28.4809 -3 endloop endfacet - facet normal 0.667477 -0.744631 0 + facet normal 0.858031 0.513598 0 outer loop - vertex -25.9661 -21.5339 -0.2 - vertex -25.6884 -21.2849 0 - vertex -25.9661 -21.5339 0 + vertex -27.9105 -26.2055 0 + vertex -28.1036 -25.8829 -3 + vertex -28.1036 -25.8829 0 endloop endfacet - facet normal 0.667477 -0.744631 0 + facet normal 0.858031 0.513598 0 outer loop - vertex -25.6884 -21.2849 0 - vertex -25.9661 -21.5339 -0.2 - vertex -25.6884 -21.2849 -0.2 + vertex -28.1036 -25.8829 -3 + vertex -27.9105 -26.2055 0 + vertex -27.9105 -26.2055 -3 endloop endfacet - facet normal 0.729709 -0.683757 0 + facet normal 0.343726 0.93907 -0 outer loop - vertex -25.6884 -21.2849 0 - vertex -25.4267 -21.0057 -0.2 - vertex -25.4267 -21.0057 0 + vertex -28.1036 -25.8829 -3 + vertex -28.5713 -25.7117 0 + vertex -28.1036 -25.8829 0 endloop endfacet - facet normal 0.729709 -0.683757 0 + facet normal 0.343726 0.93907 0 outer loop - vertex -25.4267 -21.0057 -0.2 - vertex -25.6884 -21.2849 0 - vertex -25.6884 -21.2849 -0.2 + vertex -28.5713 -25.7117 0 + vertex -28.1036 -25.8829 -3 + vertex -28.5713 -25.7117 -3 endloop endfacet - facet normal 0.781167 -0.624322 0 + facet normal 0.0659122 0.997825 -0 outer loop - vertex -25.4267 -21.0057 0 - vertex -25.1784 -20.695 -0.2 - vertex -25.1784 -20.695 0 + vertex -28.5713 -25.7117 -3 + vertex -32.142 -25.4759 0 + vertex -28.5713 -25.7117 0 endloop endfacet - facet normal 0.781167 -0.624322 0 + facet normal 0.0659122 0.997825 0 outer loop - vertex -25.1784 -20.695 -0.2 - vertex -25.4267 -21.0057 0 - vertex -25.4267 -21.0057 -0.2 + vertex -32.142 -25.4759 0 + vertex -28.5713 -25.7117 -3 + vertex -32.142 -25.4759 -3 endloop endfacet - facet normal 0.82216 -0.569257 0 + facet normal 0.000432103 1 -0 outer loop - vertex -25.1784 -20.695 0 - vertex -24.9407 -20.3516 -0.2 - vertex -24.9407 -20.3516 0 + vertex -32.142 -25.4759 -3 + vertex -34.9626 -25.4747 0 + vertex -32.142 -25.4759 0 endloop endfacet - facet normal 0.82216 -0.569257 0 + facet normal 0.000432103 1 0 outer loop - vertex -24.9407 -20.3516 -0.2 - vertex -25.1784 -20.695 0 - vertex -25.1784 -20.695 -0.2 - endloop - endfacet - facet normal 0.853894 -0.520447 0 - outer loop - vertex -24.9407 -20.3516 0 - vertex -24.7108 -19.9745 -0.2 - vertex -24.7108 -19.9745 0 - endloop - endfacet - facet normal 0.853894 -0.520447 0 - outer loop - vertex -24.7108 -19.9745 -0.2 - vertex -24.9407 -20.3516 0 - vertex -24.9407 -20.3516 -0.2 - endloop - endfacet - facet normal 0.85126 -0.524745 0 - outer loop - vertex -24.7108 -19.9745 0 - vertex -24.3738 -19.4278 -0.2 - vertex -24.3738 -19.4278 0 - endloop - endfacet - facet normal 0.85126 -0.524745 0 - outer loop - vertex -24.3738 -19.4278 -0.2 - vertex -24.7108 -19.9745 0 - vertex -24.7108 -19.9745 -0.2 - endloop - endfacet - facet normal 0.796036 -0.60525 0 - outer loop - vertex -24.3738 -19.4278 0 - vertex -24.2328 -19.2424 -0.2 - vertex -24.2328 -19.2424 0 - endloop - endfacet - facet normal 0.796036 -0.60525 0 - outer loop - vertex -24.2328 -19.2424 -0.2 - vertex -24.3738 -19.4278 0 - vertex -24.3738 -19.4278 -0.2 - endloop - endfacet - facet normal 0.714094 -0.70005 0 - outer loop - vertex -24.2328 -19.2424 0 - vertex -24.0993 -19.1062 -0.2 - vertex -24.0993 -19.1062 0 - endloop - endfacet - facet normal 0.714094 -0.70005 0 - outer loop - vertex -24.0993 -19.1062 -0.2 - vertex -24.2328 -19.2424 0 - vertex -24.2328 -19.2424 -0.2 - endloop - endfacet - facet normal 0.573399 -0.819276 0 - outer loop - vertex -24.0993 -19.1062 -0.2 - vertex -23.9653 -19.0124 0 - vertex -24.0993 -19.1062 0 - endloop - endfacet - facet normal 0.573399 -0.819276 0 - outer loop - vertex -23.9653 -19.0124 0 - vertex -24.0993 -19.1062 -0.2 - vertex -23.9653 -19.0124 -0.2 - endloop - endfacet - facet normal 0.378849 -0.925458 0 - outer loop - vertex -23.9653 -19.0124 -0.2 - vertex -23.8226 -18.954 0 - vertex -23.9653 -19.0124 0 - endloop - endfacet - facet normal 0.378849 -0.925458 0 - outer loop - vertex -23.8226 -18.954 0 - vertex -23.9653 -19.0124 -0.2 - vertex -23.8226 -18.954 -0.2 - endloop - endfacet - facet normal 0.184661 -0.982802 0 - outer loop - vertex -23.8226 -18.954 -0.2 - vertex -23.6632 -18.9241 0 - vertex -23.8226 -18.954 0 - endloop - endfacet - facet normal 0.184661 -0.982802 0 - outer loop - vertex -23.6632 -18.9241 0 - vertex -23.8226 -18.954 -0.2 - vertex -23.6632 -18.9241 -0.2 - endloop - endfacet - facet normal 0.0457652 -0.998952 0 - outer loop - vertex -23.6632 -18.9241 -0.2 - vertex -23.4791 -18.9156 0 - vertex -23.6632 -18.9241 0 - endloop - endfacet - facet normal 0.0457652 -0.998952 0 - outer loop - vertex -23.4791 -18.9156 0 - vertex -23.6632 -18.9241 -0.2 - vertex -23.4791 -18.9156 -0.2 - endloop - endfacet - facet normal -0.0578368 -0.998326 0 - outer loop - vertex -23.4791 -18.9156 -0.2 - vertex -23.1186 -18.9365 0 - vertex -23.4791 -18.9156 0 - endloop - endfacet - facet normal -0.0578368 -0.998326 -0 - outer loop - vertex -23.1186 -18.9365 0 - vertex -23.4791 -18.9156 -0.2 - vertex -23.1186 -18.9365 -0.2 - endloop - endfacet - facet normal -0.193675 -0.981066 0 - outer loop - vertex -23.1186 -18.9365 -0.2 - vertex -22.9739 -18.9651 0 - vertex -23.1186 -18.9365 0 - endloop - endfacet - facet normal -0.193675 -0.981066 -0 - outer loop - vertex -22.9739 -18.9651 0 - vertex -23.1186 -18.9365 -0.2 - vertex -22.9739 -18.9651 -0.2 - endloop - endfacet - facet normal -0.332798 -0.942998 0 - outer loop - vertex -22.9739 -18.9651 -0.2 - vertex -22.8524 -19.008 0 - vertex -22.9739 -18.9651 0 - endloop - endfacet - facet normal -0.332798 -0.942998 -0 - outer loop - vertex -22.8524 -19.008 0 - vertex -22.9739 -18.9651 -0.2 - vertex -22.8524 -19.008 -0.2 - endloop - endfacet - facet normal -0.512852 -0.858477 0 - outer loop - vertex -22.8524 -19.008 -0.2 - vertex -22.7539 -19.0668 0 - vertex -22.8524 -19.008 0 - endloop - endfacet - facet normal -0.512852 -0.858477 -0 - outer loop - vertex -22.7539 -19.0668 0 - vertex -22.8524 -19.008 -0.2 - vertex -22.7539 -19.0668 -0.2 - endloop - endfacet - facet normal -0.710432 -0.703766 0 - outer loop - vertex -22.6782 -19.1432 -0.2 - vertex -22.7539 -19.0668 0 - vertex -22.7539 -19.0668 -0.2 - endloop - endfacet - facet normal -0.710432 -0.703766 0 - outer loop - vertex -22.7539 -19.0668 0 - vertex -22.6782 -19.1432 -0.2 - vertex -22.6782 -19.1432 0 - endloop - endfacet - facet normal -0.873955 -0.486007 0 - outer loop - vertex -22.625 -19.2389 -0.2 - vertex -22.6782 -19.1432 0 - vertex -22.6782 -19.1432 -0.2 - endloop - endfacet - facet normal -0.873955 -0.486007 0 - outer loop - vertex -22.6782 -19.1432 0 - vertex -22.625 -19.2389 -0.2 - vertex -22.625 -19.2389 0 - endloop - endfacet - facet normal -0.966491 -0.256701 0 - outer loop - vertex -22.594 -19.3555 -0.2 - vertex -22.625 -19.2389 0 - vertex -22.625 -19.2389 -0.2 - endloop - endfacet - facet normal -0.966491 -0.256701 0 - outer loop - vertex -22.625 -19.2389 0 - vertex -22.594 -19.3555 -0.2 - vertex -22.594 -19.3555 0 - endloop - endfacet - facet normal -0.997923 -0.0644192 0 - outer loop - vertex -22.585 -19.4947 -0.2 - vertex -22.594 -19.3555 0 - vertex -22.594 -19.3555 -0.2 - endloop - endfacet - facet normal -0.997923 -0.0644192 0 - outer loop - vertex -22.594 -19.3555 0 - vertex -22.585 -19.4947 -0.2 - vertex -22.585 -19.4947 0 - endloop - endfacet - facet normal -0.996972 0.0777592 0 - outer loop - vertex -22.5978 -19.6581 -0.2 - vertex -22.585 -19.4947 0 - vertex -22.585 -19.4947 -0.2 - endloop - endfacet - facet normal -0.996972 0.0777592 0 - outer loop - vertex -22.585 -19.4947 0 - vertex -22.5978 -19.6581 -0.2 - vertex -22.5978 -19.6581 0 - endloop - endfacet - facet normal -0.976488 0.215571 0 - outer loop - vertex -22.6874 -20.0641 -0.2 - vertex -22.5978 -19.6581 0 - vertex -22.5978 -19.6581 -0.2 - endloop - endfacet - facet normal -0.976488 0.215571 0 - outer loop - vertex -22.5978 -19.6581 0 - vertex -22.6874 -20.0641 -0.2 - vertex -22.6874 -20.0641 0 - endloop - endfacet - facet normal -0.949119 0.314918 0 - outer loop - vertex -22.8608 -20.5868 -0.2 - vertex -22.6874 -20.0641 0 - vertex -22.6874 -20.0641 -0.2 - endloop - endfacet - facet normal -0.949119 0.314918 0 - outer loop - vertex -22.6874 -20.0641 0 - vertex -22.8608 -20.5868 -0.2 - vertex -22.8608 -20.5868 0 - endloop - endfacet - facet normal -0.931342 0.364145 0 - outer loop - vertex -23.116 -21.2395 -0.2 - vertex -22.8608 -20.5868 0 - vertex -22.8608 -20.5868 -0.2 - endloop - endfacet - facet normal -0.931342 0.364145 0 - outer loop - vertex -22.8608 -20.5868 0 - vertex -23.116 -21.2395 -0.2 - vertex -23.116 -21.2395 0 - endloop - endfacet - facet normal -0.926122 0.377225 0 - outer loop - vertex -24.3958 -24.3815 -0.2 - vertex -23.116 -21.2395 0 - vertex -23.116 -21.2395 -0.2 - endloop - endfacet - facet normal -0.926122 0.377225 0 - outer loop - vertex -23.116 -21.2395 0 - vertex -24.3958 -24.3815 -0.2 - vertex -24.3958 -24.3815 0 - endloop - endfacet - facet normal -0.92485 0.380332 0 - outer loop - vertex -24.9793 -25.8003 -0.2 - vertex -24.3958 -24.3815 0 - vertex -24.3958 -24.3815 -0.2 - endloop - endfacet - facet normal -0.92485 0.380332 0 - outer loop - vertex -24.3958 -24.3815 0 - vertex -24.9793 -25.8003 -0.2 - vertex -24.9793 -25.8003 0 - endloop - endfacet - facet normal -0.917414 0.397935 0 - outer loop - vertex -25.4624 -26.9141 -0.2 - vertex -24.9793 -25.8003 0 - vertex -24.9793 -25.8003 -0.2 - endloop - endfacet - facet normal -0.917414 0.397935 0 - outer loop - vertex -24.9793 -25.8003 0 - vertex -25.4624 -26.9141 -0.2 - vertex -25.4624 -26.9141 0 - endloop - endfacet - facet normal -0.901103 0.433605 0 - outer loop - vertex -25.8688 -27.7587 -0.2 - vertex -25.4624 -26.9141 0 - vertex -25.4624 -26.9141 -0.2 - endloop - endfacet - facet normal -0.901103 0.433605 0 - outer loop - vertex -25.4624 -26.9141 0 - vertex -25.8688 -27.7587 -0.2 - vertex -25.8688 -27.7587 0 - endloop - endfacet - facet normal -0.87739 0.479778 0 - outer loop - vertex -26.0506 -28.0911 -0.2 - vertex -25.8688 -27.7587 0 - vertex -25.8688 -27.7587 -0.2 - endloop - endfacet - facet normal -0.87739 0.479778 0 - outer loop - vertex -25.8688 -27.7587 0 - vertex -26.0506 -28.0911 -0.2 - vertex -26.0506 -28.0911 0 - endloop - endfacet - facet normal -0.851572 0.524237 0 - outer loop - vertex -26.2221 -28.3696 -0.2 - vertex -26.0506 -28.0911 0 - vertex -26.0506 -28.0911 -0.2 - endloop - endfacet - facet normal -0.851572 0.524237 0 - outer loop - vertex -26.0506 -28.0911 0 - vertex -26.2221 -28.3696 -0.2 - vertex -26.2221 -28.3696 0 - endloop - endfacet - facet normal -0.812951 0.582331 0 - outer loop - vertex -26.3861 -28.5987 -0.2 - vertex -26.2221 -28.3696 0 - vertex -26.2221 -28.3696 -0.2 - endloop - endfacet - facet normal -0.812951 0.582331 0 - outer loop - vertex -26.2221 -28.3696 0 - vertex -26.3861 -28.5987 -0.2 - vertex -26.3861 -28.5987 0 - endloop - endfacet - facet normal -0.755407 0.655255 0 - outer loop - vertex -26.5458 -28.7827 -0.2 - vertex -26.3861 -28.5987 0 - vertex -26.3861 -28.5987 -0.2 - endloop - endfacet - facet normal -0.755407 0.655255 0 - outer loop - vertex -26.3861 -28.5987 0 - vertex -26.5458 -28.7827 -0.2 - vertex -26.5458 -28.7827 0 - endloop - endfacet - facet normal -0.671936 0.740609 0 - outer loop - vertex -26.5458 -28.7827 -0.2 - vertex -26.7039 -28.9262 0 - vertex -26.5458 -28.7827 0 - endloop - endfacet - facet normal -0.671936 0.740609 0 - outer loop - vertex -26.7039 -28.9262 0 - vertex -26.5458 -28.7827 -0.2 - vertex -26.7039 -28.9262 -0.2 - endloop - endfacet - facet normal -0.558253 0.829671 0 - outer loop - vertex -26.7039 -28.9262 -0.2 - vertex -26.8635 -29.0336 0 - vertex -26.7039 -28.9262 0 - endloop - endfacet - facet normal -0.558253 0.829671 0 - outer loop - vertex -26.8635 -29.0336 0 - vertex -26.7039 -28.9262 -0.2 - vertex -26.8635 -29.0336 -0.2 - endloop - endfacet - facet normal -0.419339 0.90783 0 - outer loop - vertex -26.8635 -29.0336 -0.2 - vertex -27.0275 -29.1093 0 - vertex -26.8635 -29.0336 0 - endloop - endfacet - facet normal -0.419339 0.90783 0 - outer loop - vertex -27.0275 -29.1093 0 - vertex -26.8635 -29.0336 -0.2 - vertex -27.0275 -29.1093 -0.2 - endloop - endfacet - facet normal -0.272797 0.962072 0 - outer loop - vertex -27.0275 -29.1093 -0.2 - vertex -27.1989 -29.1579 0 - vertex -27.0275 -29.1093 0 - endloop - endfacet - facet normal -0.272797 0.962072 0 - outer loop - vertex -27.1989 -29.1579 0 - vertex -27.0275 -29.1093 -0.2 - vertex -27.1989 -29.1579 -0.2 - endloop - endfacet - facet normal -0.141044 0.990003 0 - outer loop - vertex -27.1989 -29.1579 -0.2 - vertex -27.3805 -29.1838 0 - vertex -27.1989 -29.1579 0 - endloop - endfacet - facet normal -0.141044 0.990003 0 - outer loop - vertex -27.3805 -29.1838 0 - vertex -27.1989 -29.1579 -0.2 - vertex -27.3805 -29.1838 -0.2 - endloop - endfacet - facet normal -0.0391387 0.999234 0 - outer loop - vertex -27.3805 -29.1838 -0.2 - vertex -27.5755 -29.1914 0 - vertex -27.3805 -29.1838 0 - endloop - endfacet - facet normal -0.0391387 0.999234 0 - outer loop - vertex -27.5755 -29.1914 0 - vertex -27.3805 -29.1838 -0.2 - vertex -27.5755 -29.1914 -0.2 - endloop - endfacet - facet normal 0.0328742 0.999459 -0 - outer loop - vertex -27.5755 -29.1914 -0.2 - vertex -27.9775 -29.1782 0 - vertex -27.5755 -29.1914 0 - endloop - endfacet - facet normal 0.0328742 0.999459 0 - outer loop - vertex -27.9775 -29.1782 0 - vertex -27.5755 -29.1914 -0.2 - vertex -27.9775 -29.1782 -0.2 - endloop - endfacet - facet normal 0.226397 0.974035 -0 - outer loop - vertex -27.9775 -29.1782 -0.2 - vertex -28.0989 -29.15 0 - vertex -27.9775 -29.1782 0 - endloop - endfacet - facet normal 0.226397 0.974035 0 - outer loop - vertex -28.0989 -29.15 0 - vertex -27.9775 -29.1782 -0.2 - vertex -28.0989 -29.15 -0.2 - endloop - endfacet - facet normal 0.566674 0.823942 -0 - outer loop - vertex -28.0989 -29.15 -0.2 - vertex -28.176 -29.097 0 - vertex -28.0989 -29.15 0 - endloop - endfacet - facet normal 0.566674 0.823942 0 - outer loop - vertex -28.176 -29.097 0 - vertex -28.0989 -29.15 -0.2 - vertex -28.176 -29.097 -0.2 - endloop - endfacet - facet normal 0.908757 0.417326 0 - outer loop - vertex -28.176 -29.097 0 - vertex -28.2154 -29.0113 -0.2 - vertex -28.2154 -29.0113 0 - endloop - endfacet - facet normal 0.908757 0.417326 0 - outer loop - vertex -28.2154 -29.0113 -0.2 - vertex -28.176 -29.097 0 - vertex -28.176 -29.097 -0.2 - endloop - endfacet - facet normal 0.997947 0.0640397 0 - outer loop - vertex -28.2154 -29.0113 0 - vertex -28.2235 -28.8853 -0.2 - vertex -28.2235 -28.8853 0 - endloop - endfacet - facet normal 0.997947 0.0640397 0 - outer loop - vertex -28.2235 -28.8853 -0.2 - vertex -28.2154 -29.0113 0 - vertex -28.2154 -29.0113 -0.2 - endloop - endfacet - facet normal 0.992038 -0.125943 0 - outer loop - vertex -28.2235 -28.8853 0 - vertex -28.1721 -28.4809 -0.2 - vertex -28.1721 -28.4809 0 - endloop - endfacet - facet normal 0.992038 -0.125943 0 - outer loop - vertex -28.1721 -28.4809 -0.2 - vertex -28.2235 -28.8853 0 - vertex -28.2235 -28.8853 -0.2 - endloop - endfacet - facet normal 0.988281 -0.152644 0 - outer loop - vertex -28.1721 -28.4809 0 - vertex -27.9393 -26.9734 -0.2 - vertex -27.9393 -26.9734 0 - endloop - endfacet - facet normal 0.988281 -0.152644 0 - outer loop - vertex -27.9393 -26.9734 -0.2 - vertex -28.1721 -28.4809 0 - vertex -28.1721 -28.4809 -0.2 - endloop - endfacet - facet normal 0.994809 -0.101759 0 - outer loop - vertex -27.9393 -26.9734 0 - vertex -27.8924 -26.5154 -0.2 - vertex -27.8924 -26.5154 0 - endloop - endfacet - facet normal 0.994809 -0.101759 0 - outer loop - vertex -27.8924 -26.5154 -0.2 - vertex -27.9393 -26.9734 0 - vertex -27.9393 -26.9734 -0.2 - endloop - endfacet - facet normal 0.999788 0.0205947 0 - outer loop - vertex -27.8924 -26.5154 0 - vertex -27.8988 -26.2055 -0.2 - vertex -27.8988 -26.2055 0 - endloop - endfacet - facet normal 0.999788 0.0205947 0 - outer loop - vertex -27.8988 -26.2055 -0.2 - vertex -27.8924 -26.5154 0 - vertex -27.8924 -26.5154 -0.2 - endloop - endfacet - facet normal 0.975965 0.217927 0 - outer loop - vertex -27.8988 -26.2055 0 - vertex -27.9236 -26.0946 -0.2 - vertex -27.9236 -26.0946 0 - endloop - endfacet - facet normal 0.975965 0.217927 0 - outer loop - vertex -27.9236 -26.0946 -0.2 - vertex -27.8988 -26.2055 0 - vertex -27.8988 -26.2055 -0.2 - endloop - endfacet - facet normal 0.909758 0.415139 0 - outer loop - vertex -27.9236 -26.0946 0 - vertex -27.9636 -26.0069 -0.2 - vertex -27.9636 -26.0069 0 - endloop - endfacet - facet normal 0.909758 0.415139 0 - outer loop - vertex -27.9636 -26.0069 -0.2 - vertex -27.9236 -26.0946 0 - vertex -27.9236 -26.0946 -0.2 - endloop - endfacet - facet normal 0.777135 0.629334 0 - outer loop - vertex -27.9636 -26.0069 0 - vertex -28.0195 -25.9379 -0.2 - vertex -28.0195 -25.9379 0 - endloop - endfacet - facet normal 0.777135 0.629334 0 - outer loop - vertex -28.0195 -25.9379 -0.2 - vertex -27.9636 -26.0069 0 - vertex -27.9636 -26.0069 -0.2 - endloop - endfacet - facet normal 0.604573 0.79655 -0 - outer loop - vertex -28.0195 -25.9379 -0.2 - vertex -28.0919 -25.8829 0 - vertex -28.0195 -25.9379 0 - endloop - endfacet - facet normal 0.604573 0.79655 0 - outer loop - vertex -28.0919 -25.8829 0 - vertex -28.0195 -25.9379 -0.2 - vertex -28.0919 -25.8829 -0.2 - endloop - endfacet - facet normal 0.400676 0.91622 -0 - outer loop - vertex -28.0919 -25.8829 -0.2 - vertex -28.2888 -25.7968 0 - vertex -28.0919 -25.8829 0 - endloop - endfacet - facet normal 0.400676 0.91622 0 - outer loop - vertex -28.2888 -25.7968 0 - vertex -28.0919 -25.8829 -0.2 - vertex -28.2888 -25.7968 -0.2 - endloop - endfacet - facet normal 0.299723 0.954026 -0 - outer loop - vertex -28.2888 -25.7968 -0.2 - vertex -28.5596 -25.7117 0 - vertex -28.2888 -25.7968 0 - endloop - endfacet - facet normal 0.299723 0.954026 0 - outer loop - vertex -28.5596 -25.7117 0 - vertex -28.2888 -25.7968 -0.2 - vertex -28.5596 -25.7117 -0.2 - endloop - endfacet - facet normal 0.220879 0.975301 -0 - outer loop - vertex -28.5596 -25.7117 -0.2 - vertex -28.7678 -25.6646 0 - vertex -28.5596 -25.7117 0 - endloop - endfacet - facet normal 0.220879 0.975301 0 - outer loop - vertex -28.7678 -25.6646 0 - vertex -28.5596 -25.7117 -0.2 - vertex -28.7678 -25.6646 -0.2 - endloop - endfacet - facet normal 0.142669 0.98977 -0 - outer loop - vertex -28.7678 -25.6646 -0.2 - vertex -29.0734 -25.6205 0 - vertex -28.7678 -25.6646 0 - endloop - endfacet - facet normal 0.142669 0.98977 0 - outer loop - vertex -29.0734 -25.6205 0 - vertex -28.7678 -25.6646 -0.2 - vertex -29.0734 -25.6205 -0.2 - endloop - endfacet - facet normal 0.0883121 0.996093 -0 - outer loop - vertex -29.0734 -25.6205 -0.2 - vertex -29.9179 -25.5457 0 - vertex -29.0734 -25.6205 0 - endloop - endfacet - facet normal 0.0883121 0.996093 0 - outer loop - vertex -29.9179 -25.5457 0 - vertex -29.0734 -25.6205 -0.2 - vertex -29.9179 -25.5457 -0.2 - endloop - endfacet - facet normal 0.0479595 0.998849 -0 - outer loop - vertex -29.9179 -25.5457 -0.2 - vertex -30.9759 -25.4949 0 - vertex -29.9179 -25.5457 0 - endloop - endfacet - facet normal 0.0479595 0.998849 0 - outer loop - vertex -30.9759 -25.4949 0 - vertex -29.9179 -25.5457 -0.2 - vertex -30.9759 -25.4949 -0.2 - endloop - endfacet - facet normal 0.0164478 0.999865 -0 - outer loop - vertex -30.9759 -25.4949 -0.2 - vertex -32.1303 -25.4759 0 - vertex -30.9759 -25.4949 0 - endloop - endfacet - facet normal 0.0164478 0.999865 0 - outer loop - vertex -32.1303 -25.4759 0 - vertex -30.9759 -25.4949 -0.2 - vertex -32.1303 -25.4759 -0.2 - endloop - endfacet - facet normal 0.000432102 1 -0 - outer loop - vertex -32.1303 -25.4759 -0.2 - vertex -34.9509 -25.4747 0 - vertex -32.1303 -25.4759 0 - endloop - endfacet - facet normal 0.000432102 1 0 - outer loop - vertex -34.9509 -25.4747 0 - vertex -32.1303 -25.4759 -0.2 - vertex -34.9509 -25.4747 -0.2 + vertex -34.9626 -25.4747 0 + vertex -32.142 -25.4759 -3 + vertex -34.9626 -25.4747 -3 endloop endfacet facet normal -0.910935 0.41255 0 outer loop - vertex -35.4707 -26.6225 -0.2 - vertex -34.9509 -25.4747 0 - vertex -34.9509 -25.4747 -0.2 + vertex -35.4824 -26.6225 -3 + vertex -34.9626 -25.4747 0 + vertex -34.9626 -25.4747 -3 endloop endfacet facet normal -0.910935 0.41255 0 outer loop - vertex -34.9509 -25.4747 0 - vertex -35.4707 -26.6225 -0.2 - vertex -35.4707 -26.6225 0 + vertex -34.9626 -25.4747 0 + vertex -35.4824 -26.6225 -3 + vertex -35.4824 -26.6225 0 endloop endfacet - facet normal -0.916492 0.400054 0 + facet normal -0.92531 0.379212 0 outer loop - vertex -36.4516 -28.8697 -0.2 - vertex -35.4707 -26.6225 0 - vertex -35.4707 -26.6225 -0.2 + vertex -38.7331 -34.5543 -3 + vertex -35.4824 -26.6225 0 + vertex -35.4824 -26.6225 -3 endloop endfacet - facet normal -0.916492 0.400054 0 + facet normal -0.92531 0.379212 0 outer loop - vertex -35.4707 -26.6225 0 - vertex -36.4516 -28.8697 -0.2 - vertex -36.4516 -28.8697 0 + vertex -35.4824 -26.6225 0 + vertex -38.7331 -34.5543 -3 + vertex -38.7331 -34.5543 0 endloop endfacet - facet normal -0.92275 0.385399 0 + facet normal -0.798774 -0.601632 0 outer loop - vertex -37.5165 -31.4193 -0.2 - vertex -36.4516 -28.8697 0 - vertex -36.4516 -28.8697 -0.2 + vertex -38.4261 -34.9619 -3 + vertex -38.7331 -34.5543 0 + vertex -38.7331 -34.5543 -3 endloop endfacet - facet normal -0.92275 0.385399 0 + facet normal -0.798774 -0.601632 0 outer loop - vertex -36.4516 -28.8697 0 - vertex -37.5165 -31.4193 -0.2 - vertex -37.5165 -31.4193 0 + vertex -38.7331 -34.5543 0 + vertex -38.4261 -34.9619 -3 + vertex -38.4261 -34.9619 0 endloop endfacet - facet normal -0.928331 0.371754 0 + facet normal -0.0360382 -0.99935 0 outer loop - vertex -38.3711 -33.5534 -0.2 - vertex -37.5165 -31.4193 0 - vertex -37.5165 -31.4193 -0.2 + vertex -38.4261 -34.9619 -3 + vertex -35.0529 -35.0835 0 + vertex -38.4261 -34.9619 0 endloop endfacet - facet normal -0.928331 0.371754 0 + facet normal -0.0360382 -0.99935 -0 outer loop - vertex -37.5165 -31.4193 0 - vertex -38.3711 -33.5534 -0.2 - vertex -38.3711 -33.5534 0 + vertex -35.0529 -35.0835 0 + vertex -38.4261 -34.9619 -3 + vertex -35.0529 -35.0835 -3 endloop endfacet - facet normal -0.936805 0.349851 0 + facet normal 0.0608671 -0.998146 0 outer loop - vertex -38.6277 -34.2404 -0.2 - vertex -38.3711 -33.5534 0 - vertex -38.3711 -33.5534 -0.2 + vertex -35.0529 -35.0835 -3 + vertex -31.3644 -34.8586 0 + vertex -35.0529 -35.0835 0 endloop endfacet - facet normal -0.936805 0.349851 0 + facet normal 0.0608671 -0.998146 0 outer loop - vertex -38.3711 -33.5534 0 - vertex -38.6277 -34.2404 -0.2 - vertex -38.6277 -34.2404 0 + vertex -31.3644 -34.8586 0 + vertex -35.0529 -35.0835 -3 + vertex -31.3644 -34.8586 -3 endloop endfacet - facet normal -0.958246 0.285946 0 + facet normal 0.33651 -0.94168 0 outer loop - vertex -38.7214 -34.5543 -0.2 - vertex -38.6277 -34.2404 0 - vertex -38.6277 -34.2404 -0.2 + vertex -31.3644 -34.8586 -3 + vertex -30.2578 -34.4631 0 + vertex -31.3644 -34.8586 0 endloop endfacet - facet normal -0.958246 0.285946 0 + facet normal 0.33651 -0.94168 0 outer loop - vertex -38.6277 -34.2404 0 - vertex -38.7214 -34.5543 -0.2 - vertex -38.7214 -34.5543 0 + vertex -30.2578 -34.4631 0 + vertex -31.3644 -34.8586 -3 + vertex -30.2578 -34.4631 -3 endloop endfacet - facet normal -0.979296 -0.202433 0 + facet normal 0.467106 -0.884201 0 outer loop - vertex -38.6971 -34.6715 -0.2 - vertex -38.7214 -34.5543 0 - vertex -38.7214 -34.5543 -0.2 + vertex -30.2578 -34.4631 -3 + vertex -29.0969 -33.8499 0 + vertex -30.2578 -34.4631 0 endloop endfacet - facet normal -0.979296 -0.202433 0 + facet normal 0.467106 -0.884201 0 outer loop - vertex -38.7214 -34.5543 0 - vertex -38.6971 -34.6715 -0.2 - vertex -38.6971 -34.6715 0 + vertex -29.0969 -33.8499 0 + vertex -30.2578 -34.4631 -3 + vertex -29.0969 -33.8499 -3 endloop endfacet - facet normal -0.869155 -0.494539 0 + facet normal 0.610499 -0.792017 0 outer loop - vertex -38.6312 -34.7874 -0.2 - vertex -38.6971 -34.6715 0 - vertex -38.6971 -34.6715 -0.2 + vertex -29.0969 -33.8499 -3 + vertex -26.8283 -32.1012 0 + vertex -29.0969 -33.8499 0 endloop endfacet - facet normal -0.869155 -0.494539 0 + facet normal 0.610499 -0.792017 0 outer loop - vertex -38.6971 -34.6715 0 - vertex -38.6312 -34.7874 -0.2 - vertex -38.6312 -34.7874 0 + vertex -26.8283 -32.1012 0 + vertex -29.0969 -33.8499 -3 + vertex -26.8283 -32.1012 -3 endloop endfacet - facet normal -0.719928 -0.694049 0 + facet normal 0.674561 -0.738219 0 outer loop - vertex -38.5336 -34.8886 -0.2 - vertex -38.6312 -34.7874 0 - vertex -38.6312 -34.7874 -0.2 + vertex -26.8283 -32.1012 -3 + vertex -24.8569 -30.2998 0 + vertex -26.8283 -32.1012 0 endloop endfacet - facet normal -0.719928 -0.694049 0 + facet normal 0.674561 -0.738219 0 outer loop - vertex -38.6312 -34.7874 0 - vertex -38.5336 -34.8886 -0.2 - vertex -38.5336 -34.8886 0 + vertex -24.8569 -30.2998 0 + vertex -26.8283 -32.1012 -3 + vertex -24.8569 -30.2998 -3 endloop endfacet - facet normal -0.523423 -0.852073 0 + facet normal 0.349743 -0.936846 0 outer loop - vertex -38.5336 -34.8886 -0.2 - vertex -38.4144 -34.9619 0 - vertex -38.5336 -34.8886 0 + vertex -24.8569 -30.2998 -3 + vertex -24.4667 -30.1541 0 + vertex -24.8569 -30.2998 0 endloop endfacet - facet normal -0.523423 -0.852073 -0 + facet normal 0.349743 -0.936846 0 outer loop - vertex -38.4144 -34.9619 0 - vertex -38.5336 -34.8886 -0.2 - vertex -38.4144 -34.9619 -0.2 + vertex -24.4667 -30.1541 0 + vertex -24.8569 -30.2998 -3 + vertex -24.4667 -30.1541 -3 endloop endfacet - facet normal -0.239855 -0.970809 0 + facet normal -0.235678 -0.971831 0 outer loop - vertex -38.4144 -34.9619 -0.2 - vertex -38.2613 -34.9997 0 - vertex -38.4144 -34.9619 0 + vertex -24.4667 -30.1541 -3 + vertex -24.0819 -30.2475 0 + vertex -24.4667 -30.1541 0 endloop endfacet - facet normal -0.239855 -0.970809 -0 + facet normal -0.235678 -0.971831 -0 outer loop - vertex -38.2613 -34.9997 0 - vertex -38.4144 -34.9619 -0.2 - vertex -38.2613 -34.9997 -0.2 + vertex -24.0819 -30.2475 0 + vertex -24.4667 -30.1541 -3 + vertex -24.0819 -30.2475 -3 endloop endfacet - facet normal -0.118843 -0.992913 0 + facet normal -0.453986 -0.891009 0 outer loop - vertex -38.2613 -34.9997 -0.2 - vertex -38.0027 -35.0306 0 - vertex -38.2613 -34.9997 0 + vertex -24.0819 -30.2475 -3 + vertex -23.655 -30.4649 0 + vertex -24.0819 -30.2475 0 endloop endfacet - facet normal -0.118843 -0.992913 -0 + facet normal -0.453986 -0.891009 -0 outer loop - vertex -38.0027 -35.0306 0 - vertex -38.2613 -34.9997 -0.2 - vertex -38.0027 -35.0306 -0.2 + vertex -23.655 -30.4649 0 + vertex -24.0819 -30.2475 -3 + vertex -23.655 -30.4649 -3 endloop endfacet - facet normal -0.0541463 -0.998533 0 + facet normal -0.79441 -0.607382 0 outer loop - vertex -38.0027 -35.0306 -0.2 - vertex -37.2267 -35.0727 0 - vertex -38.0027 -35.0306 0 + vertex -23.4462 -30.738 -3 + vertex -23.655 -30.4649 0 + vertex -23.655 -30.4649 -3 endloop endfacet - facet normal -0.0541463 -0.998533 -0 + facet normal -0.79441 -0.607382 0 outer loop - vertex -37.2267 -35.0727 0 - vertex -38.0027 -35.0306 -0.2 - vertex -37.2267 -35.0727 -0.2 + vertex -23.655 -30.4649 0 + vertex -23.4462 -30.738 -3 + vertex -23.4462 -30.738 0 endloop endfacet - facet normal -0.0166336 -0.999862 0 + facet normal -0.917968 0.396655 0 outer loop - vertex -37.2267 -35.0727 -0.2 - vertex -36.2012 -35.0898 0 - vertex -37.2267 -35.0727 0 + vertex -23.8149 -31.5911 -3 + vertex -23.4462 -30.738 0 + vertex -23.4462 -30.738 -3 endloop endfacet - facet normal -0.0166336 -0.999862 -0 + facet normal -0.917968 0.396655 0 outer loop - vertex -36.2012 -35.0898 0 - vertex -37.2267 -35.0727 -0.2 - vertex -36.2012 -35.0898 -0.2 + vertex -23.4462 -30.738 0 + vertex -23.8149 -31.5911 -3 + vertex -23.8149 -31.5911 0 endloop endfacet - facet normal 0.00541272 -0.999985 0 + facet normal -0.860785 0.508968 0 outer loop - vertex -36.2012 -35.0898 -0.2 - vertex -35.0412 -35.0835 0 - vertex -36.2012 -35.0898 0 + vertex -24.7956 -33.2498 -3 + vertex -23.8149 -31.5911 0 + vertex -23.8149 -31.5911 -3 endloop endfacet - facet normal 0.00541272 -0.999985 0 + facet normal -0.860785 0.508968 0 outer loop - vertex -35.0412 -35.0835 0 - vertex -36.2012 -35.0898 -0.2 - vertex -35.0412 -35.0835 -0.2 + vertex -23.8149 -31.5911 0 + vertex -24.7956 -33.2498 -3 + vertex -24.7956 -33.2498 0 endloop endfacet - facet normal 0.0236788 -0.99972 0 + facet normal -0.825216 0.564817 0 outer loop - vertex -35.0412 -35.0835 -0.2 - vertex -33.8615 -35.0556 0 - vertex -35.0412 -35.0835 0 + vertex -27.2791 -36.8782 -3 + vertex -24.7956 -33.2498 0 + vertex -24.7956 -33.2498 -3 endloop endfacet - facet normal 0.0236788 -0.99972 0 + facet normal -0.825216 0.564817 0 outer loop - vertex -33.8615 -35.0556 0 - vertex -35.0412 -35.0835 -0.2 - vertex -33.8615 -35.0556 -0.2 - endloop - endfacet - facet normal 0.0441434 -0.999025 0 - outer loop - vertex -33.8615 -35.0556 -0.2 - vertex -32.7769 -35.0076 0 - vertex -33.8615 -35.0556 0 - endloop - endfacet - facet normal 0.0441434 -0.999025 0 - outer loop - vertex -32.7769 -35.0076 0 - vertex -33.8615 -35.0556 -0.2 - vertex -32.7769 -35.0076 -0.2 - endloop - endfacet - facet normal 0.0755008 -0.997146 0 - outer loop - vertex -32.7769 -35.0076 -0.2 - vertex -31.9023 -34.9414 0 - vertex -32.7769 -35.0076 0 - endloop - endfacet - facet normal 0.0755008 -0.997146 0 - outer loop - vertex -31.9023 -34.9414 0 - vertex -32.7769 -35.0076 -0.2 - vertex -31.9023 -34.9414 -0.2 - endloop - endfacet - facet normal 0.121377 -0.992606 0 - outer loop - vertex -31.9023 -34.9414 -0.2 - vertex -31.5797 -34.902 0 - vertex -31.9023 -34.9414 0 - endloop - endfacet - facet normal 0.121377 -0.992606 0 - outer loop - vertex -31.5797 -34.902 0 - vertex -31.9023 -34.9414 -0.2 - vertex -31.5797 -34.902 -0.2 - endloop - endfacet - facet normal 0.187713 -0.982224 0 - outer loop - vertex -31.5797 -34.902 -0.2 - vertex -31.3526 -34.8586 0 - vertex -31.5797 -34.902 0 - endloop - endfacet - facet normal 0.187713 -0.982224 0 - outer loop - vertex -31.3526 -34.8586 0 - vertex -31.5797 -34.902 -0.2 - vertex -31.3526 -34.8586 -0.2 - endloop - endfacet - facet normal 0.296204 -0.955125 0 - outer loop - vertex -31.3526 -34.8586 -0.2 - vertex -30.8095 -34.6902 0 - vertex -31.3526 -34.8586 0 - endloop - endfacet - facet normal 0.296204 -0.955125 0 - outer loop - vertex -30.8095 -34.6902 0 - vertex -31.3526 -34.8586 -0.2 - vertex -30.8095 -34.6902 -0.2 - endloop - endfacet - facet normal 0.373689 -0.927554 0 - outer loop - vertex -30.8095 -34.6902 -0.2 - vertex -30.2461 -34.4632 0 - vertex -30.8095 -34.6902 0 - endloop - endfacet - facet normal 0.373689 -0.927554 0 - outer loop - vertex -30.2461 -34.4632 0 - vertex -30.8095 -34.6902 -0.2 - vertex -30.2461 -34.4632 -0.2 - endloop - endfacet - facet normal 0.438403 -0.898778 0 - outer loop - vertex -30.2461 -34.4632 -0.2 - vertex -29.669 -34.1817 0 - vertex -30.2461 -34.4632 0 - endloop - endfacet - facet normal 0.438403 -0.898778 0 - outer loop - vertex -29.669 -34.1817 0 - vertex -30.2461 -34.4632 -0.2 - vertex -29.669 -34.1817 -0.2 - endloop - endfacet - facet normal 0.494095 -0.869408 0 - outer loop - vertex -29.669 -34.1817 -0.2 - vertex -29.0852 -33.8499 0 - vertex -29.669 -34.1817 0 - endloop - endfacet - facet normal 0.494095 -0.869408 0 - outer loop - vertex -29.0852 -33.8499 0 - vertex -29.669 -34.1817 -0.2 - vertex -29.0852 -33.8499 -0.2 - endloop - endfacet - facet normal 0.543479 -0.839423 0 - outer loop - vertex -29.0852 -33.8499 -0.2 - vertex -28.5012 -33.4718 0 - vertex -29.0852 -33.8499 0 - endloop - endfacet - facet normal 0.543479 -0.839423 0 - outer loop - vertex -28.5012 -33.4718 0 - vertex -29.0852 -33.8499 -0.2 - vertex -28.5012 -33.4718 -0.2 - endloop - endfacet - facet normal 0.588526 -0.808478 0 - outer loop - vertex -28.5012 -33.4718 -0.2 - vertex -27.924 -33.0516 0 - vertex -28.5012 -33.4718 0 - endloop - endfacet - facet normal 0.588526 -0.808478 0 - outer loop - vertex -27.924 -33.0516 0 - vertex -28.5012 -33.4718 -0.2 - vertex -27.924 -33.0516 -0.2 - endloop - endfacet - facet normal 0.630713 -0.776016 0 - outer loop - vertex -27.924 -33.0516 -0.2 - vertex -27.3602 -32.5933 0 - vertex -27.924 -33.0516 0 - endloop - endfacet - facet normal 0.630713 -0.776016 0 - outer loop - vertex -27.3602 -32.5933 0 - vertex -27.924 -33.0516 -0.2 - vertex -27.3602 -32.5933 -0.2 - endloop - endfacet - facet normal 0.671162 -0.741311 0 - outer loop - vertex -27.3602 -32.5933 -0.2 - vertex -26.8166 -32.1012 0 - vertex -27.3602 -32.5933 0 - endloop - endfacet - facet normal 0.671162 -0.741311 0 - outer loop - vertex -26.8166 -32.1012 0 - vertex -27.3602 -32.5933 -0.2 - vertex -26.8166 -32.1012 -0.2 - endloop - endfacet - facet normal 0.688884 -0.724872 0 - outer loop - vertex -26.8166 -32.1012 -0.2 - vertex -25.5344 -30.8827 0 - vertex -26.8166 -32.1012 0 - endloop - endfacet - facet normal 0.688884 -0.724872 0 - outer loop - vertex -25.5344 -30.8827 0 - vertex -26.8166 -32.1012 -0.2 - vertex -25.5344 -30.8827 -0.2 - endloop - endfacet - facet normal 0.667079 -0.744987 0 - outer loop - vertex -25.5344 -30.8827 -0.2 - vertex -25.1341 -30.5242 0 - vertex -25.5344 -30.8827 0 - endloop - endfacet - facet normal 0.667079 -0.744987 0 - outer loop - vertex -25.1341 -30.5242 0 - vertex -25.5344 -30.8827 -0.2 - vertex -25.1341 -30.5242 -0.2 - endloop - endfacet - facet normal 0.613469 -0.789718 0 - outer loop - vertex -25.1341 -30.5242 -0.2 - vertex -24.8452 -30.2998 0 - vertex -25.1341 -30.5242 0 - endloop - endfacet - facet normal 0.613469 -0.789718 0 - outer loop - vertex -24.8452 -30.2998 0 - vertex -25.1341 -30.5242 -0.2 - vertex -24.8452 -30.2998 -0.2 - endloop - endfacet - facet normal 0.473466 -0.880812 0 - outer loop - vertex -24.8452 -30.2998 -0.2 - vertex -24.6311 -30.1847 0 - vertex -24.8452 -30.2998 0 - endloop - endfacet - facet normal 0.473466 -0.880812 0 - outer loop - vertex -24.6311 -30.1847 0 - vertex -24.8452 -30.2998 -0.2 - vertex -24.6311 -30.1847 -0.2 - endloop - endfacet - facet normal 0.259354 -0.965782 0 - outer loop - vertex -24.6311 -30.1847 -0.2 - vertex -24.5406 -30.1604 0 - vertex -24.6311 -30.1847 0 - endloop - endfacet - facet normal 0.259354 -0.965782 0 - outer loop - vertex -24.5406 -30.1604 0 - vertex -24.6311 -30.1847 -0.2 - vertex -24.5406 -30.1604 -0.2 - endloop - endfacet - facet normal 0.0730053 -0.997332 0 - outer loop - vertex -24.5406 -30.1604 -0.2 - vertex -24.455 -30.1541 0 - vertex -24.5406 -30.1604 0 - endloop - endfacet - facet normal 0.0730053 -0.997332 0 - outer loop - vertex -24.455 -30.1541 0 - vertex -24.5406 -30.1604 -0.2 - vertex -24.455 -30.1541 -0.2 - endloop - endfacet - facet normal -0.164732 -0.986338 0 - outer loop - vertex -24.455 -30.1541 -0.2 - vertex -24.2803 -30.1833 0 - vertex -24.455 -30.1541 0 - endloop - endfacet - facet normal -0.164732 -0.986338 -0 - outer loop - vertex -24.2803 -30.1833 0 - vertex -24.455 -30.1541 -0.2 - vertex -24.2803 -30.1833 -0.2 - endloop - endfacet - facet normal -0.291983 -0.956423 0 - outer loop - vertex -24.2803 -30.1833 -0.2 - vertex -24.0701 -30.2475 0 - vertex -24.2803 -30.1833 0 - endloop - endfacet - facet normal -0.291983 -0.956423 -0 - outer loop - vertex -24.0701 -30.2475 0 - vertex -24.2803 -30.1833 -0.2 - vertex -24.0701 -30.2475 -0.2 - endloop - endfacet - facet normal -0.377094 -0.926175 0 - outer loop - vertex -24.0701 -30.2475 -0.2 - vertex -23.8399 -30.3412 0 - vertex -24.0701 -30.2475 0 - endloop - endfacet - facet normal -0.377094 -0.926175 -0 - outer loop - vertex -23.8399 -30.3412 0 - vertex -24.0701 -30.2475 -0.2 - vertex -23.8399 -30.3412 -0.2 - endloop - endfacet - facet normal -0.532683 -0.846315 0 - outer loop - vertex -23.8399 -30.3412 -0.2 - vertex -23.6433 -30.465 0 - vertex -23.8399 -30.3412 0 - endloop - endfacet - facet normal -0.532683 -0.846315 -0 - outer loop - vertex -23.6433 -30.465 0 - vertex -23.8399 -30.3412 -0.2 - vertex -23.6433 -30.465 -0.2 - endloop - endfacet - facet normal -0.695789 -0.718246 0 - outer loop - vertex -23.6433 -30.465 -0.2 - vertex -23.5012 -30.6026 0 - vertex -23.6433 -30.465 0 - endloop - endfacet - facet normal -0.695789 -0.718246 -0 - outer loop - vertex -23.5012 -30.6026 0 - vertex -23.6433 -30.465 -0.2 - vertex -23.5012 -30.6026 -0.2 - endloop - endfacet - facet normal -0.84273 -0.538337 0 - outer loop - vertex -23.4571 -30.6716 -0.2 - vertex -23.5012 -30.6026 0 - vertex -23.5012 -30.6026 -0.2 - endloop - endfacet - facet normal -0.84273 -0.538337 0 - outer loop - vertex -23.5012 -30.6026 0 - vertex -23.4571 -30.6716 -0.2 - vertex -23.4571 -30.6716 0 - endloop - endfacet - facet normal -0.946617 -0.322361 0 - outer loop - vertex -23.4345 -30.738 -0.2 - vertex -23.4571 -30.6716 0 - vertex -23.4571 -30.6716 -0.2 - endloop - endfacet - facet normal -0.946617 -0.322361 0 - outer loop - vertex -23.4571 -30.6716 0 - vertex -23.4345 -30.738 -0.2 - vertex -23.4345 -30.738 0 - endloop - endfacet - facet normal -0.988328 0.152339 0 - outer loop - vertex -23.4513 -30.847 -0.2 - vertex -23.4345 -30.738 0 - vertex -23.4345 -30.738 -0.2 - endloop - endfacet - facet normal -0.988328 0.152339 0 - outer loop - vertex -23.4345 -30.738 0 - vertex -23.4513 -30.847 -0.2 - vertex -23.4513 -30.847 0 - endloop - endfacet - facet normal -0.933862 0.357635 0 - outer loop - vertex -23.5218 -31.031 -0.2 - vertex -23.4513 -30.847 0 - vertex -23.4513 -30.847 -0.2 - endloop - endfacet - facet normal -0.933862 0.357635 0 - outer loop - vertex -23.4513 -30.847 0 - vertex -23.5218 -31.031 -0.2 - vertex -23.5218 -31.031 0 - endloop - endfacet - facet normal -0.893602 0.44886 0 - outer loop - vertex -23.8031 -31.5911 -0.2 - vertex -23.5218 -31.031 0 - vertex -23.5218 -31.031 -0.2 - endloop - endfacet - facet normal -0.893602 0.44886 0 - outer loop - vertex -23.5218 -31.031 0 - vertex -23.8031 -31.5911 -0.2 - vertex -23.8031 -31.5911 0 - endloop - endfacet - facet normal -0.86862 0.495478 0 - outer loop - vertex -24.2375 -32.3527 -0.2 - vertex -23.8031 -31.5911 0 - vertex -23.8031 -31.5911 -0.2 - endloop - endfacet - facet normal -0.86862 0.495478 0 - outer loop - vertex -23.8031 -31.5911 0 - vertex -24.2375 -32.3527 -0.2 - vertex -24.2375 -32.3527 0 - endloop - endfacet - facet normal -0.854086 0.520132 0 - outer loop - vertex -24.7839 -33.2498 -0.2 - vertex -24.2375 -32.3527 0 - vertex -24.2375 -32.3527 -0.2 - endloop - endfacet - facet normal -0.854086 0.520132 0 - outer loop - vertex -24.2375 -32.3527 0 - vertex -24.7839 -33.2498 -0.2 - vertex -24.7839 -33.2498 0 - endloop - endfacet - facet normal -0.842904 0.538064 0 - outer loop - vertex -25.4011 -34.2168 -0.2 - vertex -24.7839 -33.2498 0 - vertex -24.7839 -33.2498 -0.2 - endloop - endfacet - facet normal -0.842904 0.538064 0 - outer loop - vertex -24.7839 -33.2498 0 - vertex -25.4011 -34.2168 -0.2 - vertex -25.4011 -34.2168 0 - endloop - endfacet - facet normal -0.832144 0.55456 0 - outer loop - vertex -26.0482 -35.1877 -0.2 - vertex -25.4011 -34.2168 0 - vertex -25.4011 -34.2168 -0.2 - endloop - endfacet - facet normal -0.832144 0.55456 0 - outer loop - vertex -25.4011 -34.2168 0 - vertex -26.0482 -35.1877 -0.2 - vertex -26.0482 -35.1877 0 - endloop - endfacet - facet normal -0.819486 0.573099 0 - outer loop - vertex -26.6839 -36.0968 -0.2 - vertex -26.0482 -35.1877 0 - vertex -26.0482 -35.1877 -0.2 - endloop - endfacet - facet normal -0.819486 0.573099 0 - outer loop - vertex -26.0482 -35.1877 0 - vertex -26.6839 -36.0968 -0.2 - vertex -26.6839 -36.0968 0 - endloop - endfacet - facet normal -0.801319 0.598238 0 - outer loop - vertex -27.2673 -36.8782 -0.2 - vertex -26.6839 -36.0968 0 - vertex -26.6839 -36.0968 -0.2 - endloop - endfacet - facet normal -0.801319 0.598238 0 - outer loop - vertex -26.6839 -36.0968 0 - vertex -27.2673 -36.8782 -0.2 - vertex -27.2673 -36.8782 0 + vertex -24.7956 -33.2498 0 + vertex -27.2791 -36.8782 -3 + vertex -27.2791 -36.8782 0 endloop endfacet facet normal -0.788011 0.615661 0 outer loop - vertex -28.2718 -38.1638 -0.2 - vertex -27.2673 -36.8782 0 - vertex -27.2673 -36.8782 -0.2 + vertex -28.2835 -38.1638 -3 + vertex -27.2791 -36.8782 0 + vertex -27.2791 -36.8782 -3 endloop endfacet facet normal -0.788011 0.615661 0 outer loop - vertex -27.2673 -36.8782 0 - vertex -28.2718 -38.1638 -0.2 - vertex -28.2718 -38.1638 0 + vertex -27.2791 -36.8782 0 + vertex -28.2835 -38.1638 -3 + vertex -28.2835 -38.1638 0 endloop endfacet - facet normal 0.00335501 0.999994 -0 + facet normal 0.0033546 0.999994 -0 outer loop - vertex -28.2718 -38.1638 -0.2 - vertex -37.6203 -38.1325 0 - vertex -28.2718 -38.1638 0 + vertex -28.2835 -38.1638 -3 + vertex -37.632 -38.1325 0 + vertex -28.2835 -38.1638 0 endloop endfacet - facet normal 0.00335501 0.999994 0 + facet normal 0.0033546 0.999994 0 outer loop - vertex -37.6203 -38.1325 0 - vertex -28.2718 -38.1638 -0.2 - vertex -37.6203 -38.1325 -0.2 + vertex -37.632 -38.1325 0 + vertex -28.2835 -38.1638 -3 + vertex -37.632 -38.1325 -3 endloop endfacet - facet normal 0.00646856 0.999979 -0 + facet normal 0.018075 0.999837 -0 outer loop - vertex -37.6203 -38.1325 -0.2 - vertex -41.2883 -38.1087 0 - vertex -37.6203 -38.1325 0 + vertex -37.632 -38.1325 -3 + vertex -47.4646 -37.9547 0 + vertex -37.632 -38.1325 0 endloop endfacet - facet normal 0.00646856 0.999979 0 + facet normal 0.018075 0.999837 0 outer loop - vertex -41.2883 -38.1087 0 - vertex -37.6203 -38.1325 -0.2 - vertex -41.2883 -38.1087 -0.2 + vertex -47.4646 -37.9547 0 + vertex -37.632 -38.1325 -3 + vertex -47.4646 -37.9547 -3 endloop endfacet - facet normal 0.013462 0.999909 -0 + facet normal 0.462743 0.886493 -0 outer loop - vertex -41.2883 -38.1087 -0.2 - vertex -44.3648 -38.0673 0 - vertex -41.2883 -38.1087 0 + vertex -47.4646 -37.9547 -3 + vertex -47.8161 -37.7712 0 + vertex -47.4646 -37.9547 0 endloop endfacet - facet normal 0.013462 0.999909 0 + facet normal 0.462743 0.886493 0 outer loop - vertex -44.3648 -38.0673 0 - vertex -41.2883 -38.1087 -0.2 - vertex -44.3648 -38.0673 -0.2 + vertex -47.8161 -37.7712 0 + vertex -47.4646 -37.9547 -3 + vertex -47.8161 -37.7712 -3 endloop endfacet - facet normal 0.0246353 0.999697 -0 + facet normal 0.836367 0.54817 0 outer loop - vertex -44.3648 -38.0673 -0.2 - vertex -46.5272 -38.014 0 - vertex -44.3648 -38.0673 0 + vertex -47.8161 -37.7712 0 + vertex -47.9875 -37.5097 -3 + vertex -47.9875 -37.5097 0 endloop endfacet - facet normal 0.0246353 0.999697 0 + facet normal 0.836367 0.54817 0 outer loop - vertex -46.5272 -38.014 0 - vertex -44.3648 -38.0673 -0.2 - vertex -46.5272 -38.014 -0.2 + vertex -47.9875 -37.5097 -3 + vertex -47.8161 -37.7712 0 + vertex -47.8161 -37.7712 -3 endloop endfacet - facet normal 0.0458604 0.998948 -0 + facet normal 0.980441 -0.196811 0 outer loop - vertex -46.5272 -38.014 -0.2 - vertex -47.1648 -37.9848 0 - vertex -46.5272 -38.014 0 + vertex -47.9875 -37.5097 0 + vertex -47.8577 -36.863 -3 + vertex -47.8577 -36.863 0 endloop endfacet - facet normal 0.0458604 0.998948 0 + facet normal 0.980441 -0.196811 0 outer loop - vertex -47.1648 -37.9848 0 - vertex -46.5272 -38.014 -0.2 - vertex -47.1648 -37.9848 -0.2 + vertex -47.8577 -36.863 -3 + vertex -47.9875 -37.5097 0 + vertex -47.9875 -37.5097 -3 endloop endfacet - facet normal 0.103752 0.994603 -0 + facet normal 0.695658 -0.718373 0 outer loop - vertex -47.1648 -37.9848 -0.2 - vertex -47.4529 -37.9547 0 - vertex -47.1648 -37.9848 0 + vertex -47.8577 -36.863 -3 + vertex -47.2102 -36.2359 0 + vertex -47.8577 -36.863 0 endloop endfacet - facet normal 0.103752 0.994603 0 + facet normal 0.695658 -0.718373 0 outer loop - vertex -47.4529 -37.9547 0 - vertex -47.1648 -37.9848 -0.2 - vertex -47.4529 -37.9547 -0.2 + vertex -47.2102 -36.2359 0 + vertex -47.8577 -36.863 -3 + vertex -47.2102 -36.2359 -3 endloop endfacet - facet normal 0.373487 0.927636 -0 + facet normal 0.350904 -0.936412 0 outer loop - vertex -47.4529 -37.9547 -0.2 - vertex -47.6522 -37.8745 0 - vertex -47.4529 -37.9547 0 + vertex -47.2102 -36.2359 -3 + vertex -46.1801 -35.8499 0 + vertex -47.2102 -36.2359 0 endloop endfacet - facet normal 0.373487 0.927636 0 + facet normal 0.350904 -0.936412 0 outer loop - vertex -47.6522 -37.8745 0 - vertex -47.4529 -37.9547 -0.2 - vertex -47.6522 -37.8745 -0.2 + vertex -46.1801 -35.8499 0 + vertex -47.2102 -36.2359 -3 + vertex -46.1801 -35.8499 -3 endloop endfacet - facet normal 0.561365 0.827568 -0 + facet normal 0.289535 -0.957168 0 outer loop - vertex -47.6522 -37.8745 -0.2 - vertex -47.8044 -37.7712 0 - vertex -47.6522 -37.8745 0 + vertex -46.1801 -35.8499 -3 + vertex -45.0296 -35.5019 0 + vertex -46.1801 -35.8499 0 endloop endfacet - facet normal 0.561365 0.827568 0 + facet normal 0.289535 -0.957168 0 outer loop - vertex -47.8044 -37.7712 0 - vertex -47.6522 -37.8745 -0.2 - vertex -47.8044 -37.7712 -0.2 + vertex -45.0296 -35.5019 0 + vertex -46.1801 -35.8499 -3 + vertex -45.0296 -35.5019 -3 endloop endfacet - facet normal 0.753293 0.657685 0 + facet normal 0.646662 -0.762777 0 outer loop - vertex -47.8044 -37.7712 0 - vertex -47.9115 -37.6485 -0.2 - vertex -47.9115 -37.6485 0 + vertex -45.0296 -35.5019 -3 + vertex -44.1198 -34.7306 0 + vertex -45.0296 -35.5019 0 endloop endfacet - facet normal 0.753293 0.657685 0 + facet normal 0.646662 -0.762777 0 outer loop - vertex -47.9115 -37.6485 -0.2 - vertex -47.8044 -37.7712 0 - vertex -47.8044 -37.7712 -0.2 + vertex -44.1198 -34.7306 0 + vertex -45.0296 -35.5019 -3 + vertex -44.1198 -34.7306 -3 endloop endfacet - facet normal 0.907474 0.420108 0 + facet normal 0.856952 -0.515395 0 outer loop - vertex -47.9115 -37.6485 0 - vertex -47.9758 -37.5097 -0.2 - vertex -47.9758 -37.5097 0 + vertex -44.1198 -34.7306 0 + vertex -43.2543 -33.2915 -3 + vertex -43.2543 -33.2915 0 endloop endfacet - facet normal 0.907474 0.420108 0 + facet normal 0.856952 -0.515395 0 outer loop - vertex -47.9758 -37.5097 -0.2 - vertex -47.9115 -37.6485 0 - vertex -47.9115 -37.6485 -0.2 + vertex -43.2543 -33.2915 -3 + vertex -44.1198 -34.7306 0 + vertex -44.1198 -34.7306 -3 endloop endfacet - facet normal 0.988205 0.153137 0 + facet normal 0.917761 -0.397133 0 outer loop - vertex -47.9758 -37.5097 0 - vertex -47.9993 -37.3583 -0.2 - vertex -47.9993 -37.3583 0 + vertex -43.2543 -33.2915 0 + vertex -42.237 -30.9405 -3 + vertex -42.237 -30.9405 0 endloop endfacet - facet normal 0.988205 0.153137 0 + facet normal 0.917761 -0.397133 0 outer loop - vertex -47.9993 -37.3583 -0.2 - vertex -47.9758 -37.5097 0 - vertex -47.9758 -37.5097 -0.2 + vertex -42.237 -30.9405 -3 + vertex -43.2543 -33.2915 0 + vertex -43.2543 -33.2915 -3 endloop endfacet - facet normal 0.995535 -0.0943972 0 + facet normal 0.919921 -0.392104 0 outer loop - vertex -47.9993 -37.3583 0 - vertex -47.984 -37.1977 -0.2 - vertex -47.984 -37.1977 0 + vertex -42.237 -30.9405 0 + vertex -39.9072 -25.4747 -3 + vertex -39.9072 -25.4747 0 endloop endfacet - facet normal 0.995535 -0.0943972 0 + facet normal 0.919921 -0.392104 0 outer loop - vertex -47.984 -37.1977 -0.2 - vertex -47.9993 -37.3583 0 - vertex -47.9993 -37.3583 -0.2 + vertex -39.9072 -25.4747 -3 + vertex -42.237 -30.9405 0 + vertex -42.237 -30.9405 -3 endloop endfacet - facet normal 0.954736 -0.297455 0 + facet normal 0.92143 -0.388544 0 outer loop - vertex -47.984 -37.1977 0 - vertex -47.9322 -37.0315 -0.2 - vertex -47.9322 -37.0315 0 + vertex -39.9072 -25.4747 0 + vertex -37.0548 -18.7102 -3 + vertex -37.0548 -18.7102 0 endloop endfacet - facet normal 0.954736 -0.297455 0 + facet normal 0.92143 -0.388544 0 outer loop - vertex -47.9322 -37.0315 -0.2 - vertex -47.984 -37.1977 0 - vertex -47.984 -37.1977 -0.2 + vertex -37.0548 -18.7102 -3 + vertex -39.9072 -25.4747 0 + vertex -39.9072 -25.4747 -3 endloop endfacet - facet normal 0.890101 -0.455763 0 + facet normal 0.937894 -0.346922 0 outer loop - vertex -47.9322 -37.0315 0 - vertex -47.846 -36.863 -0.2 - vertex -47.846 -36.863 0 + vertex -37.0548 -18.7102 0 + vertex -35.6081 -14.799 -3 + vertex -35.6081 -14.799 0 endloop endfacet - facet normal 0.890101 -0.455763 0 + facet normal 0.937894 -0.346922 0 outer loop - vertex -47.846 -36.863 -0.2 - vertex -47.9322 -37.0315 0 - vertex -47.9322 -37.0315 -0.2 + vertex -35.6081 -14.799 -3 + vertex -37.0548 -18.7102 0 + vertex -37.0548 -18.7102 -3 endloop endfacet - facet normal 0.815677 -0.578507 0 + facet normal 0.984127 -0.177463 0 outer loop - vertex -47.846 -36.863 0 - vertex -47.7274 -36.6957 -0.2 - vertex -47.7274 -36.6957 0 + vertex -35.6081 -14.799 0 + vertex -35.4871 -14.1281 -3 + vertex -35.4871 -14.1281 0 endloop endfacet - facet normal 0.815677 -0.578507 0 + facet normal 0.984127 -0.177463 0 outer loop - vertex -47.7274 -36.6957 -0.2 - vertex -47.846 -36.863 0 - vertex -47.846 -36.863 -0.2 + vertex -35.4871 -14.1281 -3 + vertex -35.6081 -14.799 0 + vertex -35.6081 -14.799 -3 endloop endfacet - facet normal 0.737497 -0.67535 0 + facet normal 0.978316 0.207116 0 outer loop - vertex -47.7274 -36.6957 0 - vertex -47.5785 -36.5332 -0.2 - vertex -47.5785 -36.5332 0 + vertex -35.4871 -14.1281 0 + vertex -35.5739 -13.718 -3 + vertex -35.5739 -13.718 0 endloop endfacet - facet normal 0.737497 -0.67535 0 + facet normal 0.978316 0.207116 0 outer loop - vertex -47.5785 -36.5332 -0.2 - vertex -47.7274 -36.6957 0 - vertex -47.7274 -36.6957 -0.2 + vertex -35.5739 -13.718 -3 + vertex -35.4871 -14.1281 0 + vertex -35.4871 -14.1281 -3 endloop endfacet - facet normal 0.65739 -0.753551 0 + facet normal 0.525627 0.850715 -0 outer loop - vertex -47.5785 -36.5332 -0.2 - vertex -47.4015 -36.3788 0 - vertex -47.5785 -36.5332 0 + vertex -35.5739 -13.718 -3 + vertex -35.9073 -13.512 0 + vertex -35.5739 -13.718 0 endloop endfacet - facet normal 0.65739 -0.753551 0 + facet normal 0.525627 0.850715 0 outer loop - vertex -47.4015 -36.3788 0 - vertex -47.5785 -36.5332 -0.2 - vertex -47.4015 -36.3788 -0.2 + vertex -35.9073 -13.512 0 + vertex -35.5739 -13.718 -3 + vertex -35.9073 -13.512 -3 endloop endfacet - facet normal 0.575341 -0.817914 0 + facet normal 0.0947129 0.995505 -0 outer loop - vertex -47.4015 -36.3788 -0.2 - vertex -47.1985 -36.2359 0 - vertex -47.4015 -36.3788 0 + vertex -35.9073 -13.512 -3 + vertex -36.5262 -13.4531 0 + vertex -35.9073 -13.512 0 endloop endfacet - facet normal 0.575341 -0.817914 0 + facet normal 0.0947129 0.995505 0 outer loop - vertex -47.1985 -36.2359 0 - vertex -47.4015 -36.3788 -0.2 - vertex -47.1985 -36.2359 -0.2 + vertex -36.5262 -13.4531 0 + vertex -35.9073 -13.512 -3 + vertex -36.5262 -13.4531 -3 endloop endfacet - facet normal 0.490533 -0.871423 0 + facet normal 0.264376 0.96442 -0 outer loop - vertex -47.1985 -36.2359 -0.2 - vertex -46.9715 -36.1082 0 - vertex -47.1985 -36.2359 0 + vertex -36.5262 -13.4531 -3 + vertex -37.2393 -13.2576 0 + vertex -36.5262 -13.4531 0 endloop endfacet - facet normal 0.490533 -0.871423 0 + facet normal 0.264376 0.96442 0 outer loop - vertex -46.9715 -36.1082 0 - vertex -47.1985 -36.2359 -0.2 - vertex -46.9715 -36.1082 -0.2 + vertex -37.2393 -13.2576 0 + vertex -36.5262 -13.4531 -3 + vertex -37.2393 -13.2576 -3 endloop endfacet - facet normal 0.402049 -0.915618 0 + facet normal 0.846268 0.532757 0 outer loop - vertex -46.9715 -36.1082 -0.2 - vertex -46.7228 -35.999 0 - vertex -46.9715 -36.1082 0 + vertex -37.2393 -13.2576 0 + vertex -37.5366 -12.7854 -3 + vertex -37.5366 -12.7854 0 endloop endfacet - facet normal 0.402049 -0.915618 0 + facet normal 0.846268 0.532757 0 outer loop - vertex -46.7228 -35.999 0 - vertex -46.9715 -36.1082 -0.2 - vertex -46.7228 -35.999 -0.2 + vertex -37.5366 -12.7854 -3 + vertex -37.2393 -13.2576 0 + vertex -37.2393 -13.2576 -3 endloop endfacet - facet normal 0.309107 -0.951027 0 + facet normal 0.972647 -0.232287 0 outer loop - vertex -46.7228 -35.999 -0.2 - vertex -46.4544 -35.9117 0 - vertex -46.7228 -35.999 0 + vertex -37.5366 -12.7854 0 + vertex -37.3951 -12.1929 -3 + vertex -37.3951 -12.1929 0 endloop endfacet - facet normal 0.309107 -0.951027 0 + facet normal 0.972647 -0.232287 0 outer loop - vertex -46.4544 -35.9117 0 - vertex -46.7228 -35.999 -0.2 - vertex -46.4544 -35.9117 -0.2 + vertex -37.3951 -12.1929 -3 + vertex -37.5366 -12.7854 0 + vertex -37.5366 -12.7854 -3 endloop endfacet - facet normal 0.211211 -0.977441 0 + facet normal 0.678121 -0.73495 0 outer loop - vertex -46.4544 -35.9117 -0.2 - vertex -46.1684 -35.8499 0 - vertex -46.4544 -35.9117 0 + vertex -37.3951 -12.1929 -3 + vertex -36.792 -11.6364 0 + vertex -37.3951 -12.1929 0 endloop endfacet - facet normal 0.211211 -0.977441 0 + facet normal 0.678121 -0.73495 0 outer loop - vertex -46.1684 -35.8499 0 - vertex -46.4544 -35.9117 -0.2 - vertex -46.1684 -35.8499 -0.2 + vertex -36.792 -11.6364 0 + vertex -37.3951 -12.1929 -3 + vertex -36.792 -11.6364 -3 endloop endfacet - facet normal 0.185786 -0.98259 0 + facet normal 0.33489 -0.942257 0 outer loop - vertex -46.1684 -35.8499 -0.2 - vertex -45.8475 -35.7893 0 - vertex -46.1684 -35.8499 0 + vertex -36.792 -11.6364 -3 + vertex -36.1936 -11.4238 0 + vertex -36.792 -11.6364 0 endloop endfacet - facet normal 0.185786 -0.98259 0 + facet normal 0.33489 -0.942257 0 outer loop - vertex -45.8475 -35.7893 0 - vertex -46.1684 -35.8499 -0.2 - vertex -45.8475 -35.7893 -0.2 + vertex -36.1936 -11.4238 0 + vertex -36.792 -11.6364 -3 + vertex -36.1936 -11.4238 -3 endloop endfacet - facet normal 0.247179 -0.96897 0 + facet normal 0.0784345 -0.996919 0 outer loop - vertex -45.8475 -35.7893 -0.2 - vertex -45.5508 -35.7136 0 - vertex -45.8475 -35.7893 0 + vertex -36.1936 -11.4238 -3 + vertex -34.87 -11.3196 0 + vertex -36.1936 -11.4238 0 endloop endfacet - facet normal 0.247179 -0.96897 0 + facet normal 0.0784345 -0.996919 0 outer loop - vertex -45.5508 -35.7136 0 - vertex -45.8475 -35.7893 -0.2 - vertex -45.5508 -35.7136 -0.2 + vertex -34.87 -11.3196 0 + vertex -36.1936 -11.4238 -3 + vertex -34.87 -11.3196 -3 endloop endfacet - facet normal 0.324475 -0.945894 0 + facet normal -0.00425069 -0.999991 0 outer loop - vertex -45.5508 -35.7136 -0.2 - vertex -45.2753 -35.6191 0 - vertex -45.5508 -35.7136 0 + vertex -34.87 -11.3196 -3 + vertex -27.1868 -11.3523 0 + vertex -34.87 -11.3196 0 endloop endfacet - facet normal 0.324475 -0.945894 0 + facet normal -0.00425069 -0.999991 -0 outer loop - vertex -45.2753 -35.6191 0 - vertex -45.5508 -35.7136 -0.2 - vertex -45.2753 -35.6191 -0.2 + vertex -27.1868 -11.3523 0 + vertex -34.87 -11.3196 -3 + vertex -27.1868 -11.3523 -3 endloop endfacet - facet normal 0.414245 -0.910165 0 + facet normal -0.778969 -0.627062 0 outer loop - vertex -45.2753 -35.6191 -0.2 - vertex -45.0179 -35.5019 0 - vertex -45.2753 -35.6191 0 + vertex -11.7016 -19.4898 -3 + vertex -11.9141 -19.2259 0 + vertex -11.9141 -19.2259 -3 endloop endfacet - facet normal 0.414245 -0.910165 0 + facet normal -0.778969 -0.627062 0 outer loop - vertex -45.0179 -35.5019 0 - vertex -45.2753 -35.6191 -0.2 - vertex -45.0179 -35.5019 -0.2 + vertex -11.9141 -19.2259 0 + vertex -11.7016 -19.4898 -3 + vertex -11.7016 -19.4898 0 endloop endfacet - facet normal 0.509766 -0.860313 0 + facet normal -0.998948 -0.0458637 0 outer loop - vertex -45.0179 -35.5019 -0.2 - vertex -44.7755 -35.3583 0 - vertex -45.0179 -35.5019 0 + vertex -11.6824 -19.9072 -3 + vertex -11.7016 -19.4898 0 + vertex -11.7016 -19.4898 -3 endloop endfacet - facet normal 0.509766 -0.860313 0 + facet normal -0.998948 -0.0458637 0 outer loop - vertex -44.7755 -35.3583 0 - vertex -45.0179 -35.5019 -0.2 - vertex -44.7755 -35.3583 -0.2 + vertex -11.7016 -19.4898 0 + vertex -11.6824 -19.9072 -3 + vertex -11.6824 -19.9072 0 endloop endfacet - facet normal 0.602421 -0.798179 0 + facet normal -0.950718 0.310058 0 outer loop - vertex -44.7755 -35.3583 -0.2 - vertex -44.5451 -35.1844 0 - vertex -44.7755 -35.3583 0 + vertex -11.8627 -20.4599 -3 + vertex -11.6824 -19.9072 0 + vertex -11.6824 -19.9072 -3 endloop endfacet - facet normal 0.602421 -0.798179 0 + facet normal -0.950718 0.310058 0 outer loop - vertex -44.5451 -35.1844 0 - vertex -44.7755 -35.3583 -0.2 - vertex -44.5451 -35.1844 -0.2 + vertex -11.6824 -19.9072 0 + vertex -11.8627 -20.4599 -3 + vertex -11.8627 -20.4599 0 endloop endfacet - facet normal 0.684546 -0.728969 0 + facet normal -0.958208 0.286074 0 outer loop - vertex -44.5451 -35.1844 -0.2 - vertex -44.3237 -34.9765 0 - vertex -44.5451 -35.1844 0 + vertex -12.0544 -21.102 -3 + vertex -11.8627 -20.4599 0 + vertex -11.8627 -20.4599 -3 endloop endfacet - facet normal 0.684546 -0.728969 0 + facet normal -0.958208 0.286074 0 outer loop - vertex -44.3237 -34.9765 0 - vertex -44.5451 -35.1844 -0.2 - vertex -44.3237 -34.9765 -0.2 + vertex -11.8627 -20.4599 0 + vertex -12.0544 -21.102 -3 + vertex -12.0544 -21.102 0 endloop endfacet - facet normal 0.751841 -0.659345 0 + facet normal 0.484491 -0.874796 0 outer loop - vertex -44.3237 -34.9765 0 - vertex -44.108 -34.7306 -0.2 - vertex -44.108 -34.7306 0 + vertex -12.0544 -21.102 -3 + vertex -10.3766 -20.1728 0 + vertex -12.0544 -21.102 0 endloop endfacet - facet normal 0.751841 -0.659345 0 + facet normal 0.484491 -0.874796 0 outer loop - vertex -44.108 -34.7306 -0.2 - vertex -44.3237 -34.9765 0 - vertex -44.3237 -34.9765 -0.2 + vertex -10.3766 -20.1728 0 + vertex -12.0544 -21.102 -3 + vertex -10.3766 -20.1728 -3 endloop endfacet - facet normal 0.803805 -0.594893 0 + facet normal 0.447022 -0.894523 0 outer loop - vertex -44.108 -34.7306 0 - vertex -43.8952 -34.443 -0.2 - vertex -43.8952 -34.443 0 + vertex -10.3766 -20.1728 -3 + vertex -8.78621 -19.378 0 + vertex -10.3766 -20.1728 0 endloop endfacet - facet normal 0.803805 -0.594893 0 + facet normal 0.447022 -0.894523 0 outer loop - vertex -43.8952 -34.443 -0.2 - vertex -44.108 -34.7306 0 - vertex -44.108 -34.7306 -0.2 + vertex -8.78621 -19.378 0 + vertex -10.3766 -20.1728 -3 + vertex -8.78621 -19.378 -3 endloop endfacet - facet normal 0.842352 -0.538928 0 + facet normal 0.124012 -0.992281 0 outer loop - vertex -43.8952 -34.443 0 - vertex -43.682 -34.1098 -0.2 - vertex -43.682 -34.1098 0 + vertex -8.78621 -19.378 -3 + vertex -7.1272 -19.1706 0 + vertex -8.78621 -19.378 0 endloop endfacet - facet normal 0.842352 -0.538928 0 + facet normal 0.124012 -0.992281 0 outer loop - vertex -43.682 -34.1098 -0.2 - vertex -43.8952 -34.443 0 - vertex -43.8952 -34.443 -0.2 + vertex -7.1272 -19.1706 0 + vertex -8.78621 -19.378 -3 + vertex -7.1272 -19.1706 -3 endloop endfacet - facet normal 0.870266 -0.492581 0 + facet normal -0.019656 -0.999807 0 outer loop - vertex -43.682 -34.1098 0 - vertex -43.4655 -33.7273 -0.2 - vertex -43.4655 -33.7273 0 + vertex -7.1272 -19.1706 -3 + vertex -5.57075 -19.2012 0 + vertex -7.1272 -19.1706 0 endloop endfacet - facet normal 0.870266 -0.492581 0 + facet normal -0.019656 -0.999807 -0 outer loop - vertex -43.4655 -33.7273 -0.2 - vertex -43.682 -34.1098 0 - vertex -43.682 -34.1098 -0.2 + vertex -5.57075 -19.2012 0 + vertex -7.1272 -19.1706 -3 + vertex -5.57075 -19.2012 -3 endloop endfacet - facet normal 0.890236 -0.4555 0 + facet normal -0.587249 -0.809407 0 outer loop - vertex -43.4655 -33.7273 0 - vertex -43.2426 -33.2915 -0.2 - vertex -43.2426 -33.2915 0 + vertex -5.57075 -19.2012 -3 + vertex -4.70045 -19.8327 0 + vertex -5.57075 -19.2012 0 endloop endfacet - facet normal 0.890236 -0.4555 0 + facet normal -0.587249 -0.809407 -0 outer loop - vertex -43.2426 -33.2915 -0.2 - vertex -43.4655 -33.7273 0 - vertex -43.4655 -33.7273 -0.2 + vertex -4.70045 -19.8327 0 + vertex -5.57075 -19.2012 -3 + vertex -4.70045 -19.8327 -3 endloop endfacet - facet normal 0.909757 -0.41514 0 + facet normal -0.783181 -0.621793 0 outer loop - vertex -43.2426 -33.2915 0 - vertex -42.7651 -32.2453 -0.2 - vertex -42.7651 -32.2453 0 + vertex -4.06681 -20.6308 -3 + vertex -4.70045 -19.8327 0 + vertex -4.70045 -19.8327 -3 endloop endfacet - facet normal 0.909757 -0.41514 0 + facet normal -0.783181 -0.621793 0 outer loop - vertex -42.7651 -32.2453 -0.2 - vertex -43.2426 -33.2915 0 - vertex -43.2426 -33.2915 -0.2 + vertex -4.70045 -19.8327 0 + vertex -4.06681 -20.6308 -3 + vertex -4.06681 -20.6308 0 endloop endfacet - facet normal 0.924016 -0.382355 0 + facet normal -0.979543 -0.201235 0 outer loop - vertex -42.7651 -32.2453 0 - vertex -42.2252 -30.9405 -0.2 - vertex -42.2252 -30.9405 0 + vertex -3.85646 -21.6547 -3 + vertex -4.06681 -20.6308 0 + vertex -4.06681 -20.6308 -3 endloop endfacet - facet normal 0.924016 -0.382355 0 + facet normal -0.979543 -0.201235 0 outer loop - vertex -42.2252 -30.9405 -0.2 - vertex -42.7651 -32.2453 0 - vertex -42.7651 -32.2453 -0.2 + vertex -4.06681 -20.6308 0 + vertex -3.85646 -21.6547 -3 + vertex -3.85646 -21.6547 0 endloop endfacet - facet normal 0.922377 -0.38629 0 + facet normal -0.999487 0.0320236 0 outer loop - vertex -42.2252 -30.9405 0 - vertex -41.2695 -28.6585 -0.2 - vertex -41.2695 -28.6585 0 + vertex -3.89417 -22.8317 -3 + vertex -3.85646 -21.6547 0 + vertex -3.85646 -21.6547 -3 endloop endfacet - facet normal 0.922377 -0.38629 0 + facet normal -0.999487 0.0320236 0 outer loop - vertex -41.2695 -28.6585 -0.2 - vertex -42.2252 -30.9405 0 - vertex -42.2252 -30.9405 -0.2 + vertex -3.85646 -21.6547 0 + vertex -3.89417 -22.8317 -3 + vertex -3.89417 -22.8317 0 endloop endfacet - facet normal 0.918146 -0.396243 0 + facet normal -0.971741 0.236051 0 outer loop - vertex -41.2695 -28.6585 0 - vertex -39.8955 -25.4747 -0.2 - vertex -39.8955 -25.4747 0 + vertex -4.26405 -24.3543 -3 + vertex -3.89417 -22.8317 0 + vertex -3.89417 -22.8317 -3 endloop endfacet - facet normal 0.918146 -0.396243 0 + facet normal -0.971741 0.236051 0 outer loop - vertex -39.8955 -25.4747 -0.2 - vertex -41.2695 -28.6585 0 - vertex -41.2695 -28.6585 -0.2 + vertex -3.89417 -22.8317 0 + vertex -4.26405 -24.3543 -3 + vertex -4.26405 -24.3543 0 endloop endfacet - facet normal 0.918872 -0.394555 0 + facet normal -0.928824 0.370521 0 outer loop - vertex -39.8955 -25.4747 0 - vertex -38.3469 -21.8682 -0.2 - vertex -38.3469 -21.8682 0 + vertex -6.41168 -29.738 -3 + vertex -4.26405 -24.3543 0 + vertex -4.26405 -24.3543 -3 endloop endfacet - facet normal 0.918872 -0.394555 0 + facet normal -0.928824 0.370521 0 outer loop - vertex -38.3469 -21.8682 -0.2 - vertex -39.8955 -25.4747 0 - vertex -39.8955 -25.4747 -0.2 + vertex -4.26405 -24.3543 0 + vertex -6.41168 -29.738 -3 + vertex -6.41168 -29.738 0 endloop endfacet - facet normal 0.92432 -0.381618 0 + facet normal -0.923854 0.382746 0 outer loop - vertex -38.3469 -21.8682 0 - vertex -37.0431 -18.7102 -0.2 - vertex -37.0431 -18.7102 0 + vertex -8.33648 -34.384 -3 + vertex -6.41168 -29.738 0 + vertex -6.41168 -29.738 -3 endloop endfacet - facet normal 0.92432 -0.381618 0 + facet normal -0.923854 0.382746 0 outer loop - vertex -37.0431 -18.7102 -0.2 - vertex -38.3469 -21.8682 0 - vertex -38.3469 -21.8682 -0.2 + vertex -6.41168 -29.738 0 + vertex -8.33648 -34.384 -3 + vertex -8.33648 -34.384 0 endloop endfacet - facet normal 0.929541 -0.368719 0 + facet normal -0.969782 0.243973 0 outer loop - vertex -37.0431 -18.7102 0 - vertex -36.5163 -17.3821 -0.2 - vertex -36.5163 -17.3821 0 + vertex -8.56822 -35.3052 -3 + vertex -8.33648 -34.384 0 + vertex -8.33648 -34.384 -3 endloop endfacet - facet normal 0.929541 -0.368719 0 + facet normal -0.969782 0.243973 0 outer loop - vertex -36.5163 -17.3821 -0.2 - vertex -37.0431 -18.7102 0 - vertex -37.0431 -18.7102 -0.2 + vertex -8.33648 -34.384 0 + vertex -8.56822 -35.3052 -3 + vertex -8.56822 -35.3052 0 endloop endfacet - facet normal 0.934424 -0.356162 0 + facet normal -0.990389 -0.138307 0 outer loop - vertex -36.5163 -17.3821 0 - vertex -36.0907 -16.2655 -0.2 - vertex -36.0907 -16.2655 0 + vertex -8.51129 -35.7129 -3 + vertex -8.56822 -35.3052 0 + vertex -8.56822 -35.3052 -3 endloop endfacet - facet normal 0.934424 -0.356162 0 + facet normal -0.990389 -0.138307 0 outer loop - vertex -36.0907 -16.2655 -0.2 - vertex -36.5163 -17.3821 0 - vertex -36.5163 -17.3821 -0.2 + vertex -8.56822 -35.3052 0 + vertex -8.51129 -35.7129 -3 + vertex -8.51129 -35.7129 0 endloop endfacet - facet normal 0.941869 -0.335981 0 + facet normal -0.550548 -0.834803 0 outer loop - vertex -36.0907 -16.2655 0 - vertex -35.7796 -15.3934 -0.2 - vertex -35.7796 -15.3934 0 + vertex -8.51129 -35.7129 -3 + vertex -7.98605 -36.0592 0 + vertex -8.51129 -35.7129 0 endloop endfacet - facet normal 0.941869 -0.335981 0 + facet normal -0.550548 -0.834803 -0 outer loop - vertex -35.7796 -15.3934 -0.2 - vertex -36.0907 -16.2655 0 - vertex -36.0907 -16.2655 -0.2 + vertex -7.98605 -36.0592 0 + vertex -8.51129 -35.7129 -3 + vertex -7.98605 -36.0592 -3 endloop endfacet - facet normal 0.955627 -0.294578 0 + facet normal -0.557022 -0.830498 0 outer loop - vertex -35.7796 -15.3934 0 - vertex -35.5964 -14.799 -0.2 - vertex -35.5964 -14.799 0 + vertex -7.98605 -36.0592 -3 + vertex -7.51249 -36.3769 0 + vertex -7.98605 -36.0592 0 endloop endfacet - facet normal 0.955627 -0.294578 0 + facet normal -0.557022 -0.830498 -0 outer loop - vertex -35.5964 -14.799 -0.2 - vertex -35.7796 -15.3934 0 - vertex -35.7796 -15.3934 -0.2 + vertex -7.51249 -36.3769 0 + vertex -7.98605 -36.0592 -3 + vertex -7.51249 -36.3769 -3 endloop endfacet - facet normal 0.97537 -0.220574 0 + facet normal -0.885076 -0.465446 0 outer loop - vertex -35.5964 -14.799 0 - vertex -35.5123 -14.4274 -0.2 - vertex -35.5123 -14.4274 0 + vertex -7.31439 -36.7536 -3 + vertex -7.51249 -36.3769 0 + vertex -7.51249 -36.3769 -3 endloop endfacet - facet normal 0.97537 -0.220574 0 + facet normal -0.885076 -0.465446 0 outer loop - vertex -35.5123 -14.4274 -0.2 - vertex -35.5964 -14.799 0 - vertex -35.5964 -14.799 -0.2 + vertex -7.51249 -36.3769 0 + vertex -7.31439 -36.7536 -3 + vertex -7.31439 -36.7536 0 endloop endfacet - facet normal 0.992467 -0.122514 0 + facet normal -0.984477 0.175514 0 outer loop - vertex -35.5123 -14.4274 0 - vertex -35.4754 -14.1281 -0.2 - vertex -35.4754 -14.1281 0 + vertex -7.3919 -37.1883 -3 + vertex -7.31439 -36.7536 0 + vertex -7.31439 -36.7536 -3 endloop endfacet - facet normal 0.992467 -0.122514 0 + facet normal -0.984477 0.175514 0 outer loop - vertex -35.4754 -14.1281 -0.2 - vertex -35.5123 -14.4274 0 - vertex -35.5123 -14.4274 -0.2 + vertex -7.31439 -36.7536 0 + vertex -7.3919 -37.1883 -3 + vertex -7.3919 -37.1883 0 endloop endfacet - facet normal 0.997952 0.0639612 0 + facet normal -0.812154 0.583443 0 outer loop - vertex -35.4754 -14.1281 0 - vertex -35.4904 -13.894 -0.2 - vertex -35.4904 -13.894 0 + vertex -7.74517 -37.6801 -3 + vertex -7.3919 -37.1883 0 + vertex -7.3919 -37.1883 -3 endloop endfacet - facet normal 0.997952 0.0639612 0 + facet normal -0.812154 0.583443 0 outer loop - vertex -35.4904 -13.894 -0.2 - vertex -35.4754 -14.1281 0 - vertex -35.4754 -14.1281 -0.2 + vertex -7.3919 -37.1883 0 + vertex -7.74517 -37.6801 -3 + vertex -7.74517 -37.6801 0 endloop endfacet - facet normal 0.957653 0.287925 0 + facet normal -0.622963 0.782251 0 outer loop - vertex -35.4904 -13.894 0 - vertex -35.5189 -13.7992 -0.2 - vertex -35.5189 -13.7992 0 + vertex -7.74517 -37.6801 -3 + vertex -8.07933 -37.9462 0 + vertex -7.74517 -37.6801 0 endloop endfacet - facet normal 0.957653 0.287925 0 + facet normal -0.622963 0.782251 0 outer loop - vertex -35.5189 -13.7992 -0.2 - vertex -35.4904 -13.894 0 - vertex -35.4904 -13.894 -0.2 + vertex -8.07933 -37.9462 0 + vertex -7.74517 -37.6801 -3 + vertex -8.07933 -37.9462 -3 endloop endfacet - facet normal 0.882255 0.470771 0 + facet normal -0.234375 0.972146 0 outer loop - vertex -35.5189 -13.7992 0 - vertex -35.5622 -13.718 -0.2 - vertex -35.5622 -13.718 0 + vertex -8.07933 -37.9462 -3 + vertex -8.66873 -38.0883 0 + vertex -8.07933 -37.9462 0 endloop endfacet - facet normal 0.882255 0.470771 0 + facet normal -0.234375 0.972146 0 outer loop - vertex -35.5622 -13.718 -0.2 - vertex -35.5189 -13.7992 0 - vertex -35.5189 -13.7992 -0.2 + vertex -8.66873 -38.0883 0 + vertex -8.07933 -37.9462 -3 + vertex -8.66873 -38.0883 -3 endloop endfacet - facet normal 0.758808 0.651314 0 + facet normal -0.02015 0.999797 0 outer loop - vertex -35.5622 -13.718 0 - vertex -35.6209 -13.6496 -0.2 - vertex -35.6209 -13.6496 0 + vertex -8.66873 -38.0883 -3 + vertex -12.0013 -38.1555 0 + vertex -8.66873 -38.0883 0 endloop endfacet - facet normal 0.758808 0.651314 0 + facet normal -0.02015 0.999797 0 outer loop - vertex -35.6209 -13.6496 -0.2 - vertex -35.5622 -13.718 0 - vertex -35.5622 -13.718 -0.2 + vertex -12.0013 -38.1555 0 + vertex -8.66873 -38.0883 -3 + vertex -12.0013 -38.1555 -3 endloop endfacet - facet normal 0.603335 0.797487 -0 + facet normal 0.0188466 0.999822 -0 outer loop - vertex -35.6209 -13.6496 -0.2 - vertex -35.6956 -13.593 0 - vertex -35.6209 -13.6496 0 + vertex -12.0013 -38.1555 -3 + vertex -15.3277 -38.0928 0 + vertex -12.0013 -38.1555 0 endloop endfacet - facet normal 0.603335 0.797487 0 + facet normal 0.0188466 0.999822 0 outer loop - vertex -35.6956 -13.593 0 - vertex -35.6209 -13.6496 -0.2 - vertex -35.6956 -13.593 -0.2 + vertex -15.3277 -38.0928 0 + vertex -12.0013 -38.1555 -3 + vertex -15.3277 -38.0928 -3 endloop endfacet - facet normal 0.375678 0.92675 -0 + facet normal 0.289952 0.957041 -0 outer loop - vertex -35.6956 -13.593 -0.2 - vertex -35.8956 -13.512 0 - vertex -35.6956 -13.593 0 + vertex -15.3277 -38.0928 -3 + vertex -15.7983 -37.9502 0 + vertex -15.3277 -38.0928 0 endloop endfacet - facet normal 0.375678 0.92675 0 + facet normal 0.289952 0.957041 0 outer loop - vertex -35.8956 -13.512 0 - vertex -35.6956 -13.593 -0.2 - vertex -35.8956 -13.512 -0.2 + vertex -15.7983 -37.9502 0 + vertex -15.3277 -38.0928 -3 + vertex -15.7983 -37.9502 -3 endloop endfacet - facet normal 0.161053 0.986946 -0 + facet normal 0.88368 0.468092 0 outer loop - vertex -35.8956 -13.512 -0.2 - vertex -36.1669 -13.4677 0 - vertex -35.8956 -13.512 0 + vertex -15.7983 -37.9502 0 + vertex -15.9433 -37.6764 -3 + vertex -15.9433 -37.6764 0 endloop endfacet - facet normal 0.161053 0.986946 0 + facet normal 0.88368 0.468092 0 outer loop - vertex -36.1669 -13.4677 0 - vertex -35.8956 -13.512 -0.2 - vertex -36.1669 -13.4677 -0.2 + vertex -15.9433 -37.6764 -3 + vertex -15.7983 -37.9502 0 + vertex -15.7983 -37.9502 -3 endloop endfacet - facet normal 0.0419804 0.999118 -0 + facet normal 0.999065 -0.0432335 0 outer loop - vertex -36.1669 -13.4677 -0.2 - vertex -36.5145 -13.4531 0 - vertex -36.1669 -13.4677 0 + vertex -15.9433 -37.6764 0 + vertex -15.9213 -37.1689 -3 + vertex -15.9213 -37.1689 0 endloop endfacet - facet normal 0.0419804 0.999118 0 + facet normal 0.999065 -0.0432335 0 outer loop - vertex -36.5145 -13.4531 0 - vertex -36.1669 -13.4677 -0.2 - vertex -36.5145 -13.4531 -0.2 + vertex -15.9213 -37.1689 -3 + vertex -15.9433 -37.6764 0 + vertex -15.9433 -37.6764 -3 endloop endfacet - facet normal 0.0664354 0.997791 -0 + facet normal 0.790901 -0.611944 0 outer loop - vertex -36.5145 -13.4531 -0.2 - vertex -36.7305 -13.4387 0 - vertex -36.5145 -13.4531 0 + vertex -15.9213 -37.1689 0 + vertex -15.4682 -36.5832 -3 + vertex -15.4682 -36.5832 0 endloop endfacet - facet normal 0.0664354 0.997791 0 + facet normal 0.790901 -0.611944 0 outer loop - vertex -36.7305 -13.4387 0 - vertex -36.5145 -13.4531 -0.2 - vertex -36.7305 -13.4387 -0.2 + vertex -15.4682 -36.5832 -3 + vertex -15.9213 -37.1689 0 + vertex -15.9213 -37.1689 -3 endloop endfacet - facet normal 0.199985 0.979799 -0 + facet normal 0.603331 -0.797491 0 outer loop - vertex -36.7305 -13.4387 -0.2 - vertex -36.9216 -13.3997 0 - vertex -36.7305 -13.4387 0 + vertex -15.4682 -36.5832 -3 + vertex -14.8949 -36.1495 0 + vertex -15.4682 -36.5832 0 endloop endfacet - facet normal 0.199985 0.979799 0 + facet normal 0.603331 -0.797491 0 outer loop - vertex -36.9216 -13.3997 0 - vertex -36.7305 -13.4387 -0.2 - vertex -36.9216 -13.3997 -0.2 + vertex -14.8949 -36.1495 0 + vertex -15.4682 -36.5832 -3 + vertex -14.8949 -36.1495 -3 endloop endfacet - facet normal 0.346161 0.938175 -0 + facet normal 0.32682 -0.945087 0 outer loop - vertex -36.9216 -13.3997 -0.2 - vertex -37.0874 -13.3385 0 - vertex -36.9216 -13.3997 0 + vertex -14.8949 -36.1495 -3 + vertex -14.3732 -35.9691 0 + vertex -14.8949 -36.1495 0 endloop endfacet - facet normal 0.346161 0.938175 0 + facet normal 0.32682 -0.945087 0 outer loop - vertex -37.0874 -13.3385 0 - vertex -36.9216 -13.3997 -0.2 - vertex -37.0874 -13.3385 -0.2 + vertex -14.3732 -35.9691 0 + vertex -14.8949 -36.1495 -3 + vertex -14.3732 -35.9691 -3 endloop endfacet - facet normal 0.49992 0.866072 -0 + facet normal 0.336732 -0.941601 0 outer loop - vertex -37.0874 -13.3385 -0.2 - vertex -37.2276 -13.2576 0 - vertex -37.0874 -13.3385 0 + vertex -14.3732 -35.9691 -3 + vertex -13.7203 -35.7356 0 + vertex -14.3732 -35.9691 0 endloop endfacet - facet normal 0.49992 0.866072 0 + facet normal 0.336732 -0.941601 0 outer loop - vertex -37.2276 -13.2576 0 - vertex -37.0874 -13.3385 -0.2 - vertex -37.2276 -13.2576 -0.2 + vertex -13.7203 -35.7356 0 + vertex -14.3732 -35.9691 -3 + vertex -13.7203 -35.7356 -3 endloop endfacet - facet normal 0.652051 0.758175 -0 + facet normal 0.723518 -0.690305 0 outer loop - vertex -37.2276 -13.2576 -0.2 - vertex -37.3418 -13.1594 0 - vertex -37.2276 -13.2576 0 + vertex -13.7203 -35.7356 0 + vertex -13.0448 -35.0276 -3 + vertex -13.0448 -35.0276 0 endloop endfacet - facet normal 0.652051 0.758175 0 + facet normal 0.723518 -0.690305 0 outer loop - vertex -37.3418 -13.1594 0 - vertex -37.2276 -13.2576 -0.2 - vertex -37.3418 -13.1594 -0.2 + vertex -13.0448 -35.0276 -3 + vertex -13.7203 -35.7356 0 + vertex -13.7203 -35.7356 -3 endloop endfacet - facet normal 0.789664 0.613539 0 + facet normal 0.860653 -0.509193 0 outer loop - vertex -37.3418 -13.1594 0 - vertex -37.4296 -13.0463 -0.2 - vertex -37.4296 -13.0463 0 + vertex -13.0448 -35.0276 0 + vertex -12.3385 -33.8339 -3 + vertex -12.3385 -33.8339 0 endloop endfacet - facet normal 0.789664 0.613539 0 + facet normal 0.860653 -0.509193 0 outer loop - vertex -37.4296 -13.0463 -0.2 - vertex -37.3418 -13.1594 0 - vertex -37.3418 -13.1594 -0.2 + vertex -12.3385 -33.8339 -3 + vertex -13.0448 -35.0276 0 + vertex -13.0448 -35.0276 -3 endloop endfacet - facet normal 0.898957 0.438037 0 + facet normal 0.915054 -0.403331 0 outer loop - vertex -37.4296 -13.0463 0 - vertex -37.4908 -12.9209 -0.2 - vertex -37.4908 -12.9209 0 + vertex -12.3385 -33.8339 0 + vertex -11.5932 -32.143 -3 + vertex -11.5932 -32.143 0 endloop endfacet - facet normal 0.898957 0.438037 0 + facet normal 0.915054 -0.403331 0 outer loop - vertex -37.4908 -12.9209 -0.2 - vertex -37.4296 -13.0463 0 - vertex -37.4296 -13.0463 -0.2 - endloop - endfacet - facet normal 0.969773 0.244009 0 - outer loop - vertex -37.4908 -12.9209 0 - vertex -37.5249 -12.7854 -0.2 - vertex -37.5249 -12.7854 0 - endloop - endfacet - facet normal 0.969773 0.244009 0 - outer loop - vertex -37.5249 -12.7854 -0.2 - vertex -37.4908 -12.9209 0 - vertex -37.4908 -12.9209 -0.2 - endloop - endfacet - facet normal 0.99892 0.0464614 0 - outer loop - vertex -37.5249 -12.7854 0 - vertex -37.5315 -12.6425 -0.2 - vertex -37.5315 -12.6425 0 - endloop - endfacet - facet normal 0.99892 0.0464614 0 - outer loop - vertex -37.5315 -12.6425 -0.2 - vertex -37.5249 -12.7854 0 - vertex -37.5249 -12.7854 -0.2 - endloop - endfacet - facet normal 0.989966 -0.141306 0 - outer loop - vertex -37.5315 -12.6425 0 - vertex -37.5104 -12.4945 -0.2 - vertex -37.5104 -12.4945 0 - endloop - endfacet - facet normal 0.989966 -0.141306 0 - outer loop - vertex -37.5104 -12.4945 -0.2 - vertex -37.5315 -12.6425 0 - vertex -37.5315 -12.6425 -0.2 - endloop - endfacet - facet normal 0.950483 -0.310777 0 - outer loop - vertex -37.5104 -12.4945 0 - vertex -37.4611 -12.3438 -0.2 - vertex -37.4611 -12.3438 0 - endloop - endfacet - facet normal 0.950483 -0.310777 0 - outer loop - vertex -37.4611 -12.3438 -0.2 - vertex -37.5104 -12.4945 0 - vertex -37.5104 -12.4945 -0.2 - endloop - endfacet - facet normal 0.888869 -0.458162 0 - outer loop - vertex -37.4611 -12.3438 0 - vertex -37.3834 -12.1929 -0.2 - vertex -37.3834 -12.1929 0 - endloop - endfacet - facet normal 0.888869 -0.458162 0 - outer loop - vertex -37.3834 -12.1929 -0.2 - vertex -37.4611 -12.3438 0 - vertex -37.4611 -12.3438 -0.2 - endloop - endfacet - facet normal 0.812527 -0.582923 0 - outer loop - vertex -37.3834 -12.1929 0 - vertex -37.2767 -12.0443 -0.2 - vertex -37.2767 -12.0443 0 - endloop - endfacet - facet normal 0.812527 -0.582923 0 - outer loop - vertex -37.2767 -12.0443 -0.2 - vertex -37.3834 -12.1929 0 - vertex -37.3834 -12.1929 -0.2 - endloop - endfacet - facet normal 0.727267 -0.686355 0 - outer loop - vertex -37.2767 -12.0443 0 - vertex -37.1409 -11.9004 -0.2 - vertex -37.1409 -11.9004 0 - endloop - endfacet - facet normal 0.727267 -0.686355 0 - outer loop - vertex -37.1409 -11.9004 -0.2 - vertex -37.2767 -12.0443 0 - vertex -37.2767 -12.0443 -0.2 - endloop - endfacet - facet normal 0.637301 -0.770615 0 - outer loop - vertex -37.1409 -11.9004 -0.2 - vertex -36.9755 -11.7636 0 - vertex -37.1409 -11.9004 0 - endloop - endfacet - facet normal 0.637301 -0.770615 0 - outer loop - vertex -36.9755 -11.7636 0 - vertex -37.1409 -11.9004 -0.2 - vertex -36.9755 -11.7636 -0.2 - endloop - endfacet - facet normal 0.545722 -0.837967 0 - outer loop - vertex -36.9755 -11.7636 -0.2 - vertex -36.7802 -11.6364 0 - vertex -36.9755 -11.7636 0 - endloop - endfacet - facet normal 0.545722 -0.837967 0 - outer loop - vertex -36.7802 -11.6364 0 - vertex -36.9755 -11.7636 -0.2 - vertex -36.7802 -11.6364 -0.2 - endloop - endfacet - facet normal 0.431805 -0.901967 0 - outer loop - vertex -36.7802 -11.6364 -0.2 - vertex -36.527 -11.5152 0 - vertex -36.7802 -11.6364 0 - endloop - endfacet - facet normal 0.431805 -0.901967 0 - outer loop - vertex -36.527 -11.5152 0 - vertex -36.7802 -11.6364 -0.2 - vertex -36.527 -11.5152 -0.2 - endloop - endfacet - facet normal 0.256105 -0.966649 0 - outer loop - vertex -36.527 -11.5152 -0.2 - vertex -36.1819 -11.4238 0 - vertex -36.527 -11.5152 0 - endloop - endfacet - facet normal 0.256105 -0.966649 0 - outer loop - vertex -36.1819 -11.4238 0 - vertex -36.527 -11.5152 -0.2 - vertex -36.1819 -11.4238 -0.2 - endloop - endfacet - facet normal 0.121259 -0.992621 0 - outer loop - vertex -36.1819 -11.4238 -0.2 - vertex -35.6555 -11.3595 0 - vertex -36.1819 -11.4238 0 - endloop - endfacet - facet normal 0.121259 -0.992621 0 - outer loop - vertex -35.6555 -11.3595 0 - vertex -36.1819 -11.4238 -0.2 - vertex -35.6555 -11.3595 -0.2 - endloop - endfacet - facet normal 0.0498988 -0.998754 0 - outer loop - vertex -35.6555 -11.3595 -0.2 - vertex -34.8583 -11.3197 0 - vertex -35.6555 -11.3595 0 - endloop - endfacet - facet normal 0.0498988 -0.998754 0 - outer loop - vertex -34.8583 -11.3197 0 - vertex -35.6555 -11.3595 -0.2 - vertex -34.8583 -11.3197 -0.2 - endloop - endfacet - facet normal 0.0155398 -0.999879 0 - outer loop - vertex -34.8583 -11.3197 -0.2 - vertex -33.7011 -11.3017 0 - vertex -34.8583 -11.3197 0 - endloop - endfacet - facet normal 0.0155398 -0.999879 0 - outer loop - vertex -33.7011 -11.3017 0 - vertex -34.8583 -11.3197 -0.2 - vertex -33.7011 -11.3017 -0.2 - endloop - endfacet - facet normal -0.000753226 -1 0 - outer loop - vertex -33.7011 -11.3017 -0.2 - vertex -32.0944 -11.3029 0 - vertex -33.7011 -11.3017 0 - endloop - endfacet - facet normal -0.000753226 -1 -0 - outer loop - vertex -32.0944 -11.3029 0 - vertex -33.7011 -11.3017 -0.2 - vertex -32.0944 -11.3029 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0792 -19.1571 -0.2 - vertex -11.6557 -19.6804 -0.2 - vertex -11.6899 -19.4898 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.302 -19.1333 -0.2 - vertex -11.6557 -19.6804 -0.2 - vertex -12.0792 -19.1571 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.9023 -19.2259 -0.2 - vertex -11.6899 -19.4898 -0.2 - vertex -11.7723 -19.3375 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.6557 -19.6804 -0.2 - vertex -12.302 -19.1333 -0.2 - vertex -11.6707 -19.9072 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.6899 -19.4898 -0.2 - vertex -11.9023 -19.2259 -0.2 - vertex -12.0792 -19.1571 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -12.6849 -19.1929 -0.2 - vertex -11.6707 -19.9072 -0.2 - vertex -12.302 -19.1333 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.7355 -20.1677 -0.2 - vertex -12.6849 -19.1929 -0.2 - vertex -11.851 -20.4599 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.6707 -19.9072 -0.2 - vertex -12.6849 -19.1929 -0.2 - vertex -11.7355 -20.1677 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.01943 -23.5295 -0.2 - vertex -8.48242 -23.1923 -0.2 - vertex -8.45645 -23.4267 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.06691 -19.2358 -0.2 - vertex -8.54451 -22.9989 -0.2 - vertex -8.48242 -23.1923 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.06691 -19.2358 -0.2 - vertex -8.64279 -22.8439 -0.2 - vertex -8.54451 -22.9989 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.94827 -22.6394 -0.2 - vertex -8.43701 -19.2929 -0.2 - vertex -8.77447 -19.378 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.06691 -19.2358 -0.2 - vertex -8.77736 -22.7249 -0.2 - vertex -8.64279 -22.8439 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.43701 -19.2929 -0.2 - vertex -8.94827 -22.6394 -0.2 - vertex -8.77736 -22.7249 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -9.10766 -19.4997 -0.2 - vertex -8.94827 -22.6394 -0.2 - vertex -8.77447 -19.378 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -9.46489 -19.667 -0.2 - vertex -8.94827 -22.6394 -0.2 - vertex -9.10766 -19.4997 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.94827 -22.6394 -0.2 - vertex -9.46489 -19.667 -0.2 - vertex -9.15561 -22.5851 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -9.87453 -19.8884 -0.2 - vertex -9.15561 -22.5851 -0.2 - vertex -9.46489 -19.667 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.15561 -22.5851 -0.2 - vertex -9.87453 -19.8884 -0.2 - vertex -9.39946 -22.5595 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.3649 -20.1728 -0.2 - vertex -9.39946 -22.5595 -0.2 - vertex -9.87453 -19.8884 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.39946 -22.5595 -0.2 - vertex -10.3649 -20.1728 -0.2 - vertex -9.67988 -22.56 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.67988 -22.56 -0.2 - vertex -10.3649 -20.1728 -0.2 - vertex -10.0796 -22.6123 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.5073 -20.829 -0.2 - vertex -10.0796 -22.6123 -0.2 - vertex -10.3649 -20.1728 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.0796 -22.6123 -0.2 - vertex -11.5073 -20.829 -0.2 - vertex -10.5344 -22.7271 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5344 -22.7271 -0.2 - vertex -11.5073 -20.829 -0.2 - vertex -10.9881 -22.8877 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.8784 -21.0286 -0.2 - vertex -10.9881 -22.8877 -0.2 - vertex -11.5073 -20.829 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -12.0427 -21.102 -0.2 - vertex -10.9881 -22.8877 -0.2 - vertex -11.8784 -21.0286 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.9881 -22.8877 -0.2 - vertex -12.0427 -21.102 -0.2 - vertex -11.3849 -23.0769 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.3849 -23.0769 -0.2 - vertex -12.0427 -21.102 -0.2 - vertex -11.9359 -23.4045 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.4007 -23.7203 -0.2 - vertex -12.0427 -21.102 -0.2 - vertex -12.0573 -21.0889 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1989 -19.5967 -0.2 - vertex -12.0573 -21.0889 -0.2 - vertex -12.0594 -21.0513 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.3483 -19.3556 -0.2 - vertex -11.851 -20.4599 -0.2 - vertex -12.6849 -19.1929 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.851 -20.4599 -0.2 - vertex -13.3483 -19.3556 -0.2 - vertex -12.0288 -20.9134 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0288 -20.9134 -0.2 - vertex -13.3483 -19.3556 -0.2 - vertex -12.0594 -21.0513 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.1989 -19.5967 -0.2 - vertex -12.0594 -21.0513 -0.2 - vertex -13.3483 -19.3556 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0573 -21.0889 -0.2 - vertex -14.1989 -19.5967 -0.2 - vertex -15.1436 -19.8912 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0427 -21.102 -0.2 - vertex -12.4007 -23.7203 -0.2 - vertex -11.9359 -23.4045 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0573 -21.0889 -0.2 - vertex -15.1436 -19.8912 -0.2 - vertex -12.7941 -24.0414 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0573 -21.0889 -0.2 - vertex -12.7941 -24.0414 -0.2 - vertex -12.4007 -23.7203 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.2249 -22.8126 -0.2 - vertex -12.7941 -24.0414 -0.2 - vertex -15.1436 -19.8912 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.7941 -24.0414 -0.2 - vertex -17.2249 -22.8126 -0.2 - vertex -13.131 -24.3848 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -17.2226 -22.9371 -0.2 - vertex -13.131 -24.3848 -0.2 - vertex -17.2249 -22.8126 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.131 -24.3848 -0.2 - vertex -17.2226 -22.9371 -0.2 - vertex -13.4262 -24.7676 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.2873 -23.335 -0.2 - vertex -13.4262 -24.7676 -0.2 - vertex -17.2226 -22.9371 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.4084 -23.7485 -0.2 - vertex -13.6945 -25.2068 -0.2 - vertex -17.2873 -23.335 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.6656 -24.469 -0.2 - vertex -13.9508 -25.7195 -0.2 - vertex -17.4084 -23.7485 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.2578 -22.7276 -0.2 - vertex -15.1436 -19.8912 -0.2 - vertex -16.9393 -20.461 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.6945 -25.2068 -0.2 - vertex -17.4084 -23.7485 -0.2 - vertex -13.9508 -25.7195 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.9508 -25.7195 -0.2 - vertex -17.6656 -24.469 -0.2 - vertex -14.2098 -26.3227 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.4262 -24.7676 -0.2 - vertex -17.2873 -23.335 -0.2 - vertex -13.6945 -25.2068 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.1436 -19.8912 -0.2 - vertex -17.2578 -22.7276 -0.2 - vertex -17.2249 -22.8126 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9393 -20.461 -0.2 - vertex -17.3267 -22.6747 -0.2 - vertex -17.2578 -22.7276 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9393 -20.461 -0.2 - vertex -17.4374 -22.6462 -0.2 - vertex -17.3267 -22.6747 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.9865 -20.7653 -0.2 - vertex -17.4374 -22.6462 -0.2 - vertex -16.9393 -20.461 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4374 -22.6462 -0.2 - vertex -17.9865 -20.7653 -0.2 - vertex -17.8061 -22.6324 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.5788 -21.2283 -0.2 - vertex -17.8061 -22.6324 -0.2 - vertex -17.9865 -20.7653 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5053 -21.1105 -0.2 - vertex -17.9865 -20.7653 -0.2 - vertex -18.1109 -20.8023 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5053 -21.1105 -0.2 - vertex -18.1109 -20.8023 -0.2 - vertex -18.2248 -20.8552 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5053 -21.1105 -0.2 - vertex -18.2248 -20.8552 -0.2 - vertex -18.3284 -20.924 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.6967 -21.5139 -0.2 - vertex -17.8061 -22.6324 -0.2 - vertex -18.5788 -21.2283 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5053 -21.1105 -0.2 - vertex -18.3284 -20.924 -0.2 - vertex -18.4218 -21.0091 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.9865 -20.7653 -0.2 - vertex -18.5053 -21.1105 -0.2 - vertex -18.5788 -21.2283 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.8061 -22.6324 -0.2 - vertex -18.6967 -21.5139 -0.2 - vertex -18.1091 -22.6172 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.766 -21.7922 -0.2 - vertex -18.1091 -22.6172 -0.2 - vertex -18.6967 -21.5139 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.1091 -22.6172 -0.2 - vertex -18.766 -21.7922 -0.2 - vertex -18.3541 -22.5704 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.7869 -22.0269 -0.2 - vertex -18.3541 -22.5704 -0.2 - vertex -18.766 -21.7922 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.3541 -22.5704 -0.2 - vertex -18.7869 -22.0269 -0.2 - vertex -18.5429 -22.4899 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -18.7577 -22.2202 -0.2 - vertex -18.5429 -22.4899 -0.2 - vertex -18.7869 -22.0269 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5429 -22.4899 -0.2 - vertex -18.7577 -22.2202 -0.2 - vertex -18.6769 -22.3738 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -3.82849 -22.2203 -0.2 - vertex -3.84473 -21.6547 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -3.84473 -21.6547 -0.2 - vertex -3.87719 -21.3353 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -3.84589 -22.5177 -0.2 - vertex -3.82849 -22.2203 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.47107 -20.0532 -0.2 - vertex -3.87719 -21.3353 -0.2 - vertex -3.91934 -21.0662 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -3.88244 -22.8317 -0.2 - vertex -3.84589 -22.5177 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.29663 -20.2518 -0.2 - vertex -3.91934 -21.0662 -0.2 - vertex -3.97677 -20.8354 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -3.93975 -23.1672 -0.2 - vertex -3.88244 -22.8317 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.15983 -20.4402 -0.2 - vertex -3.97677 -20.8354 -0.2 - vertex -4.05507 -20.6308 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.97677 -20.8354 -0.2 - vertex -4.15983 -20.4402 -0.2 - vertex -4.29663 -20.2518 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -4.01943 -23.5295 -0.2 - vertex -3.93975 -23.1672 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.91934 -21.0662 -0.2 - vertex -4.29663 -20.2518 -0.2 - vertex -4.47107 -20.0532 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.68872 -19.8327 -0.2 - vertex -3.87719 -21.3353 -0.2 - vertex -4.47107 -20.0532 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.01943 -23.5295 -0.2 - vertex -8.45645 -23.4267 -0.2 - vertex -4.25232 -24.3543 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -3.87719 -21.3353 -0.2 - vertex -4.68872 -19.8327 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.14058 -19.1411 -0.2 - vertex -4.68872 -19.8327 -0.2 - vertex -4.93899 -19.592 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -8.46654 -23.7044 -0.2 - vertex -4.25232 -24.3543 -0.2 - vertex -8.45645 -23.4267 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.8145 -19.1562 -0.2 - vertex -4.93899 -19.592 -0.2 - vertex -5.14898 -19.4116 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.55901 -19.2012 -0.2 - vertex -5.14898 -19.4116 -0.2 - vertex -5.34642 -19.2839 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.14898 -19.4116 -0.2 - vertex -5.55901 -19.2012 -0.2 - vertex -5.8145 -19.1562 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.25232 -24.3543 -0.2 - vertex -8.46654 -23.7044 -0.2 - vertex -4.59396 -25.347 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.93899 -19.592 -0.2 - vertex -5.8145 -19.1562 -0.2 - vertex -6.14058 -19.1411 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -4.68872 -19.8327 -0.2 - vertex -6.14058 -19.1411 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -8.51259 -24.0278 -0.2 - vertex -4.59396 -25.347 -0.2 - vertex -8.46654 -23.7044 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -6.14058 -19.1411 -0.2 - vertex -7.11547 -19.1706 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -7.11547 -19.1706 -0.2 - vertex -7.63584 -19.198 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -8.59455 -24.3995 -0.2 - vertex -4.59396 -25.347 -0.2 - vertex -8.51259 -24.0278 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -7.63584 -19.198 -0.2 - vertex -8.06691 -19.2358 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.59396 -25.347 -0.2 - vertex -8.71232 -24.8218 -0.2 - vertex -5.05721 -26.548 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -9.05502 -25.8283 -0.2 - vertex -5.05721 -26.548 -0.2 - vertex -8.71232 -24.8218 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.77736 -22.7249 -0.2 - vertex -8.06691 -19.2358 -0.2 - vertex -8.43701 -19.2929 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -8.71232 -24.8218 -0.2 - vertex -4.59396 -25.347 -0.2 - vertex -8.59455 -24.3995 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.05721 -26.548 -0.2 - vertex -9.05502 -25.8283 -0.2 - vertex -5.65492 -27.9982 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -9.5401 -27.0667 -0.2 - vertex -5.65492 -27.9982 -0.2 - vertex -9.05502 -25.8283 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.65492 -27.9982 -0.2 - vertex -9.5401 -27.0667 -0.2 - vertex -6.39994 -29.738 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5815 -32.143 -0.2 - vertex -6.39994 -29.738 -0.2 - vertex -9.5401 -27.0667 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.39994 -29.738 -0.2 - vertex -11.5815 -32.143 -0.2 - vertex -7.70823 -32.8163 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 -0.2 - vertex -7.30695 -36.9638 -0.2 - vertex -7.29619 -36.8569 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.32635 -36.6539 -0.2 - vertex -7.30695 -36.9638 -0.2 - vertex -7.30266 -36.7536 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.36727 -36.5579 -0.2 - vertex -7.30695 -36.9638 -0.2 - vertex -7.32635 -36.6539 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.50076 -36.3769 -0.2 - vertex -7.30695 -36.9638 -0.2 - vertex -7.36727 -36.5579 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30695 -36.9638 -0.2 - vertex -7.50076 -36.3769 -0.2 - vertex -7.38017 -37.1883 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.70312 -36.2106 -0.2 - vertex -7.38017 -37.1883 -0.2 - vertex -7.50076 -36.3769 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.38017 -37.1883 -0.2 - vertex -7.70312 -36.2106 -0.2 - vertex -7.52232 -37.4271 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.97432 -36.0592 -0.2 - vertex -7.52232 -37.4271 -0.2 - vertex -7.70312 -36.2106 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.52232 -37.4271 -0.2 - vertex -7.97432 -36.0592 -0.2 - vertex -7.73344 -37.6801 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.73344 -37.6801 -0.2 - vertex -7.97432 -36.0592 -0.2 - vertex -7.8903 -37.8311 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.30871 -38.0303 -0.2 - vertex -7.8903 -37.8311 -0.2 - vertex -7.97432 -36.0592 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.30871 -38.0303 -0.2 - vertex -7.97432 -36.0592 -0.2 - vertex -8.30497 -35.8814 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.8903 -37.8311 -0.2 - vertex -8.30871 -38.0303 -0.2 - vertex -8.0676 -37.9462 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.15585 -38.1249 -0.2 - vertex -8.30497 -35.8814 -0.2 - vertex -8.41808 -35.7975 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.15585 -38.1249 -0.2 - vertex -8.41808 -35.7975 -0.2 - vertex -8.49955 -35.7129 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.84865 -38.1451 -0.2 - vertex -8.49955 -35.7129 -0.2 - vertex -8.55176 -35.6244 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.84865 -38.1451 -0.2 - vertex -8.55176 -35.6244 -0.2 - vertex -8.57707 -35.529 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.30497 -35.8814 -0.2 - vertex -8.657 -38.0883 -0.2 - vertex -8.30871 -38.0303 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.6843 -34.4922 -0.2 - vertex -8.57707 -35.529 -0.2 - vertex -8.57785 -35.4236 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.70823 -32.8163 -0.2 - vertex -11.5815 -32.143 -0.2 - vertex -8.13453 -33.8652 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.9595 -33.0513 -0.2 - vertex -8.13453 -33.8652 -0.2 - vertex -11.5815 -32.143 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.13453 -33.8652 -0.2 - vertex -11.9595 -33.0513 -0.2 - vertex -8.32474 -34.384 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -12.3268 -33.8339 -0.2 - vertex -8.32474 -34.384 -0.2 - vertex -11.9595 -33.0513 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.32474 -34.384 -0.2 - vertex -12.3268 -33.8339 -0.2 - vertex -8.55649 -35.3052 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.55649 -35.3052 -0.2 - vertex -12.3268 -33.8339 -0.2 - vertex -8.57785 -35.4236 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.30497 -35.8814 -0.2 - vertex -9.15585 -38.1249 -0.2 - vertex -8.657 -38.0883 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -12.6843 -34.4922 -0.2 - vertex -8.57785 -35.4236 -0.2 - vertex -12.3268 -33.8339 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.49955 -35.7129 -0.2 - vertex -9.84865 -38.1451 -0.2 - vertex -9.15585 -38.1249 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.57707 -35.529 -0.2 - vertex -12.6843 -34.4922 -0.2 - vertex -9.84865 -38.1451 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.0331 -35.0276 -0.2 - vertex -9.84865 -38.1451 -0.2 - vertex -12.6843 -34.4922 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.84865 -38.1451 -0.2 - vertex -13.0331 -35.0276 -0.2 - vertex -11.9896 -38.1555 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.2045 -35.2497 -0.2 - vertex -11.9896 -38.1555 -0.2 - vertex -13.0331 -35.0276 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.3741 -35.4417 -0.2 - vertex -11.9896 -38.1555 -0.2 - vertex -13.2045 -35.2497 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.5421 -35.6036 -0.2 - vertex -11.9896 -38.1555 -0.2 - vertex -13.3741 -35.4417 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.7085 -35.7356 -0.2 - vertex -11.9896 -38.1555 -0.2 - vertex -13.5421 -35.6036 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.8736 -35.838 -0.2 - vertex -11.9896 -38.1555 -0.2 - vertex -13.7085 -35.7356 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1677 -38.1469 -0.2 - vertex -13.8736 -35.838 -0.2 - vertex -14.0373 -35.911 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.8736 -35.838 -0.2 - vertex -14.1677 -38.1469 -0.2 - vertex -11.9896 -38.1555 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.1999 -35.9546 -0.2 - vertex -14.1677 -38.1469 -0.2 - vertex -14.0373 -35.911 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.3614 -35.9691 -0.2 - vertex -14.1677 -38.1469 -0.2 - vertex -14.1999 -35.9546 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.5979 -36.0176 -0.2 - vertex -14.3614 -35.9691 -0.2 - vertex -14.4713 -35.9816 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.3614 -35.9691 -0.2 - vertex -14.5979 -36.0176 -0.2 - vertex -14.1677 -38.1469 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.8831 -36.1495 -0.2 - vertex -14.1677 -38.1469 -0.2 - vertex -14.5979 -36.0176 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.1813 -36.3448 -0.2 - vertex -14.1677 -38.1469 -0.2 - vertex -14.8831 -36.1495 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1677 -38.1469 -0.2 - vertex -15.1813 -36.3448 -0.2 - vertex -14.8486 -38.1282 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.4564 -36.5832 -0.2 - vertex -14.8486 -38.1282 -0.2 - vertex -15.1813 -36.3448 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.7439 -36.902 -0.2 - vertex -14.8486 -38.1282 -0.2 - vertex -15.4564 -36.5832 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.8486 -38.1282 -0.2 - vertex -15.7439 -36.902 -0.2 - vertex -15.316 -38.0928 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.8411 -37.0399 -0.2 - vertex -15.316 -38.0928 -0.2 - vertex -15.7439 -36.902 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.9096 -37.1689 -0.2 - vertex -15.316 -38.0928 -0.2 - vertex -15.8411 -37.0399 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.9604 -37.5428 -0.2 - vertex -15.316 -38.0928 -0.2 - vertex -15.9096 -37.1689 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.316 -38.0928 -0.2 - vertex -15.9604 -37.5428 -0.2 - vertex -15.614 -38.0352 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.614 -38.0352 -0.2 - vertex -15.8777 -37.8324 -0.2 - vertex -15.7132 -37.9965 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.7132 -37.9965 -0.2 - vertex -15.8777 -37.8324 -0.2 - vertex -15.7865 -37.9502 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -15.9316 -37.6764 -0.2 - vertex -15.614 -38.0352 -0.2 - vertex -15.9604 -37.5428 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.7865 -37.9502 -0.2 - vertex -15.8777 -37.8324 -0.2 - vertex -15.8396 -37.8957 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.9604 -37.5428 -0.2 - vertex -15.9096 -37.1689 -0.2 - vertex -15.9511 -37.293 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -15.8777 -37.8324 -0.2 - vertex -15.614 -38.0352 -0.2 - vertex -15.9316 -37.6764 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -15.9604 -37.5428 -0.2 - vertex -15.9511 -37.293 -0.2 - vertex -15.9675 -37.4163 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5311 -26.6889 -0.2 - vertex -14.2098 -26.3227 -0.2 - vertex -17.6656 -24.469 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.2098 -26.3227 -0.2 - vertex -18.5311 -26.6889 -0.2 - vertex -15.3777 -29.1914 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.7699 -29.7113 -0.2 - vertex -15.3777 -29.1914 -0.2 - vertex -18.5311 -26.6889 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.3777 -29.1914 -0.2 - vertex -19.7699 -29.7113 -0.2 - vertex -16.8163 -32.7116 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2682 -33.2523 -0.2 - vertex -16.8163 -32.7116 -0.2 - vertex -19.7699 -29.7113 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.8163 -32.7116 -0.2 - vertex -21.2682 -33.2523 -0.2 - vertex -17.1674 -33.591 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.1674 -33.591 -0.2 - vertex -21.2682 -33.2523 -0.2 - vertex -17.4329 -34.3072 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4329 -34.3072 -0.2 - vertex -21.2682 -33.2523 -0.2 - vertex -17.6153 -34.8741 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.6072 -34.0169 -0.2 - vertex -17.6153 -34.8741 -0.2 - vertex -21.2682 -33.2523 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.6153 -34.8741 -0.2 - vertex -21.6072 -34.0169 -0.2 - vertex -17.7168 -35.3062 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7168 -35.3062 -0.2 - vertex -21.6072 -34.0169 -0.2 - vertex -17.738 -35.4761 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.9074 -34.6287 -0.2 - vertex -17.738 -35.4761 -0.2 - vertex -21.6072 -34.0169 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7399 -35.6175 -0.2 - vertex -18.7028 -38.1359 -0.2 - vertex -18.0369 -38.1201 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.738 -35.4761 -0.2 - vertex -21.9074 -34.6287 -0.2 - vertex -17.7399 -35.6175 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -20.8109 -38.1301 -0.2 - vertex -17.7399 -35.6175 -0.2 - vertex -21.9074 -34.6287 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.7399 -35.6175 -0.2 - vertex -20.8109 -38.1301 -0.2 - vertex -18.7028 -38.1359 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.1824 -35.1035 -0.2 - vertex -20.8109 -38.1301 -0.2 - vertex -21.9074 -34.6287 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.4463 -35.4568 -0.2 - vertex -20.8109 -38.1301 -0.2 - vertex -22.1824 -35.1035 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.5782 -35.5929 -0.2 - vertex -20.8109 -38.1301 -0.2 - vertex -22.4463 -35.4568 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.7126 -35.7044 -0.2 - vertex -20.8109 -38.1301 -0.2 - vertex -22.5782 -35.5929 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.8511 -35.7934 -0.2 - vertex -20.8109 -38.1301 -0.2 - vertex -22.7126 -35.7044 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4866 -38.0828 -0.2 - vertex -22.8511 -35.7934 -0.2 - vertex -22.9953 -35.8619 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4866 -38.0828 -0.2 - vertex -22.9953 -35.8619 -0.2 - vertex -23.1471 -35.9117 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4866 -38.0828 -0.2 - vertex -23.1471 -35.9117 -0.2 - vertex -23.3082 -35.9449 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.8511 -35.7934 -0.2 - vertex -23.4866 -38.0828 -0.2 - vertex -20.8109 -38.1301 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -23.665 -35.9691 -0.2 - vertex -23.4866 -38.0828 -0.2 - vertex -23.3082 -35.9449 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -23.8593 -35.9891 -0.2 - vertex -23.4866 -38.0828 -0.2 - vertex -23.665 -35.9691 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.0497 -36.0458 -0.2 - vertex -23.4866 -38.0828 -0.2 - vertex -23.8593 -35.9891 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.2334 -36.1344 -0.2 - vertex -23.4866 -38.0828 -0.2 - vertex -24.0497 -36.0458 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.4077 -36.2501 -0.2 - vertex -23.4866 -38.0828 -0.2 - vertex -24.2334 -36.1344 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.57 -36.3881 -0.2 - vertex -23.4866 -38.0828 -0.2 - vertex -24.4077 -36.2501 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4866 -38.0828 -0.2 - vertex -24.57 -36.3881 -0.2 - vertex -24.3782 -38.0456 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.7177 -36.5437 -0.2 - vertex -24.3782 -38.0456 -0.2 - vertex -24.57 -36.3881 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.8479 -36.7119 -0.2 - vertex -24.3782 -38.0456 -0.2 - vertex -24.7177 -36.5437 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.9582 -36.888 -0.2 - vertex -24.3782 -38.0456 -0.2 - vertex -24.8479 -36.7119 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.0457 -37.0673 -0.2 - vertex -24.3782 -38.0456 -0.2 - vertex -24.9582 -36.888 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.1078 -37.2448 -0.2 - vertex -24.3782 -38.0456 -0.2 - vertex -25.0457 -37.0673 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3782 -38.0456 -0.2 - vertex -25.1078 -37.2448 -0.2 - vertex -24.7978 -38.0047 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.1419 -37.4158 -0.2 - vertex -24.7978 -38.0047 -0.2 - vertex -25.1078 -37.2448 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.1453 -37.5754 -0.2 - vertex -24.7978 -38.0047 -0.2 - vertex -25.1419 -37.4158 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.7978 -38.0047 -0.2 - vertex -25.1453 -37.5754 -0.2 - vertex -24.9442 -37.9384 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -25.1152 -37.719 -0.2 - vertex -24.9442 -37.9384 -0.2 - vertex -25.1453 -37.5754 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.9442 -37.9384 -0.2 - vertex -25.1152 -37.719 -0.2 - vertex -25.0491 -37.8416 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.237 -36.6071 -0.2 - vertex -16.2485 -36.9225 -0.2 - vertex -16.2109 -36.752 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.3106 -36.4662 -0.2 - vertex -16.2485 -36.9225 -0.2 - vertex -16.237 -36.6071 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.4249 -36.334 -0.2 - vertex -16.2485 -36.9225 -0.2 - vertex -16.3106 -36.4662 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.2485 -36.9225 -0.2 - vertex -16.4249 -36.334 -0.2 - vertex -16.3508 -37.1428 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.5729 -36.2152 -0.2 - vertex -16.3508 -37.1428 -0.2 - vertex -16.4249 -36.334 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.7476 -36.1146 -0.2 - vertex -16.3508 -37.1428 -0.2 - vertex -16.5729 -36.2152 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.3508 -37.1428 -0.2 - vertex -16.7476 -36.1146 -0.2 - vertex -16.5023 -37.3844 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.942 -36.0369 -0.2 - vertex -16.5023 -37.3844 -0.2 - vertex -16.7476 -36.1146 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.1493 -35.9869 -0.2 - vertex -16.5023 -37.3844 -0.2 - vertex -16.942 -36.0369 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.5023 -37.3844 -0.2 - vertex -17.1493 -35.9869 -0.2 - vertex -16.6872 -37.6188 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.3625 -35.9691 -0.2 - vertex -16.6872 -37.6188 -0.2 - vertex -17.1493 -35.9869 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4702 -35.9608 -0.2 - vertex -16.6872 -37.6188 -0.2 - vertex -17.3625 -35.9691 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.6872 -37.6188 -0.2 - vertex -17.4702 -35.9608 -0.2 - vertex -16.8516 -37.795 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -17.2437 -38.0218 -0.2 - vertex -16.8516 -37.795 -0.2 - vertex -17.4702 -35.9608 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.8516 -37.795 -0.2 - vertex -17.2437 -38.0218 -0.2 - vertex -17.0213 -37.9274 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5664 -38.0841 -0.2 - vertex -17.4702 -35.9608 -0.2 - vertex -17.5603 -35.9348 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4702 -35.9608 -0.2 - vertex -17.5664 -38.0841 -0.2 - vertex -17.2437 -38.0218 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.0369 -38.1201 -0.2 - vertex -17.5603 -35.9348 -0.2 - vertex -17.6327 -35.8892 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.0369 -38.1201 -0.2 - vertex -17.6327 -35.8892 -0.2 - vertex -17.6869 -35.8223 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.0369 -38.1201 -0.2 - vertex -17.6869 -35.8223 -0.2 - vertex -17.7228 -35.7323 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.0369 -38.1201 -0.2 - vertex -17.7228 -35.7323 -0.2 - vertex -17.7399 -35.6175 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5603 -35.9348 -0.2 - vertex -18.0369 -38.1201 -0.2 - vertex -17.5664 -38.0841 -0.2 - endloop - endfacet - facet normal -0.362708 -0.931903 0 - outer loop - vertex -12.0792 -19.1571 -0.2 - vertex -11.9023 -19.2259 0 - vertex -12.0792 -19.1571 0 - endloop - endfacet - facet normal -0.362708 -0.931903 -0 - outer loop - vertex -11.9023 -19.2259 0 - vertex -12.0792 -19.1571 -0.2 - vertex -11.9023 -19.2259 -0.2 - endloop - endfacet - facet normal -0.651552 -0.758604 0 - outer loop - vertex -11.9023 -19.2259 -0.2 - vertex -11.7723 -19.3375 0 - vertex -11.9023 -19.2259 0 - endloop - endfacet - facet normal -0.651552 -0.758604 -0 - outer loop - vertex -11.7723 -19.3375 0 - vertex -11.9023 -19.2259 -0.2 - vertex -11.7723 -19.3375 -0.2 - endloop - endfacet - facet normal -0.879356 -0.476164 0 - outer loop - vertex -11.6899 -19.4898 -0.2 - vertex -11.7723 -19.3375 0 - vertex -11.7723 -19.3375 -0.2 - endloop - endfacet - facet normal -0.879356 -0.476164 0 - outer loop - vertex -11.7723 -19.3375 0 - vertex -11.6899 -19.4898 -0.2 - vertex -11.6899 -19.4898 0 - endloop - endfacet - facet normal -0.98435 -0.176224 0 - outer loop - vertex -11.6557 -19.6804 -0.2 - vertex -11.6899 -19.4898 0 - vertex -11.6899 -19.4898 -0.2 - endloop - endfacet - facet normal -0.98435 -0.176224 0 - outer loop - vertex -11.6899 -19.4898 0 - vertex -11.6557 -19.6804 -0.2 - vertex -11.6557 -19.6804 0 - endloop - endfacet - facet normal -0.997828 0.0658663 0 - outer loop - vertex -11.6707 -19.9072 -0.2 - vertex -11.6557 -19.6804 0 - vertex -11.6557 -19.6804 -0.2 - endloop - endfacet - facet normal -0.997828 0.0658663 0 - outer loop - vertex -11.6557 -19.6804 0 - vertex -11.6707 -19.9072 -0.2 - vertex -11.6707 -19.9072 0 - endloop - endfacet - facet normal -0.970423 0.241411 0 - outer loop - vertex -11.7355 -20.1677 -0.2 - vertex -11.6707 -19.9072 0 - vertex -11.6707 -19.9072 -0.2 - endloop - endfacet - facet normal -0.970423 0.241411 0 - outer loop - vertex -11.6707 -19.9072 0 - vertex -11.7355 -20.1677 -0.2 - vertex -11.7355 -20.1677 0 - endloop - endfacet - facet normal -0.930032 0.367479 0 - outer loop - vertex -11.851 -20.4599 -0.2 - vertex -11.7355 -20.1677 0 - vertex -11.7355 -20.1677 -0.2 - endloop - endfacet - facet normal -0.930032 0.367479 0 - outer loop - vertex -11.7355 -20.1677 0 - vertex -11.851 -20.4599 -0.2 - vertex -11.851 -20.4599 0 - endloop - endfacet - facet normal -0.930941 0.365169 0 - outer loop - vertex -12.0288 -20.9134 -0.2 - vertex -11.851 -20.4599 0 - vertex -11.851 -20.4599 -0.2 - endloop - endfacet - facet normal -0.930941 0.365169 0 - outer loop - vertex -11.851 -20.4599 0 - vertex -12.0288 -20.9134 -0.2 - vertex -12.0288 -20.9134 0 - endloop - endfacet - facet normal -0.976329 0.216289 0 - outer loop - vertex -12.0594 -21.0513 -0.2 - vertex -12.0288 -20.9134 0 - vertex -12.0288 -20.9134 -0.2 - endloop - endfacet - facet normal -0.976329 0.216289 0 - outer loop - vertex -12.0288 -20.9134 0 - vertex -12.0594 -21.0513 -0.2 - vertex -12.0594 -21.0513 0 - endloop - endfacet - facet normal -0.998491 -0.0549167 0 - outer loop - vertex -12.0573 -21.0889 -0.2 - vertex -12.0594 -21.0513 0 - vertex -12.0594 -21.0513 -0.2 - endloop - endfacet - facet normal -0.998491 -0.0549167 0 - outer loop - vertex -12.0594 -21.0513 0 - vertex -12.0573 -21.0889 -0.2 - vertex -12.0573 -21.0889 0 - endloop - endfacet - facet normal -0.666017 -0.745937 0 - outer loop - vertex -12.0573 -21.0889 -0.2 - vertex -12.0427 -21.102 0 - vertex -12.0573 -21.0889 0 - endloop - endfacet - facet normal -0.666017 -0.745937 -0 - outer loop - vertex -12.0427 -21.102 0 - vertex -12.0573 -21.0889 -0.2 - vertex -12.0427 -21.102 -0.2 - endloop - endfacet - facet normal 0.407619 -0.913152 0 - outer loop - vertex -12.0427 -21.102 -0.2 - vertex -11.8784 -21.0286 0 - vertex -12.0427 -21.102 0 - endloop - endfacet - facet normal 0.407619 -0.913152 0 - outer loop - vertex -11.8784 -21.0286 0 - vertex -12.0427 -21.102 -0.2 - vertex -11.8784 -21.0286 -0.2 - endloop - endfacet - facet normal 0.473772 -0.880648 0 - outer loop - vertex -11.8784 -21.0286 -0.2 - vertex -11.5073 -20.829 0 - vertex -11.8784 -21.0286 0 - endloop - endfacet - facet normal 0.473772 -0.880648 0 - outer loop - vertex -11.5073 -20.829 0 - vertex -11.8784 -21.0286 -0.2 - vertex -11.5073 -20.829 -0.2 - endloop - endfacet - facet normal 0.498101 -0.867119 0 - outer loop - vertex -11.5073 -20.829 -0.2 - vertex -10.3649 -20.1728 0 - vertex -11.5073 -20.829 0 - endloop - endfacet - facet normal 0.498101 -0.867119 0 - outer loop - vertex -10.3649 -20.1728 0 - vertex -11.5073 -20.829 -0.2 - vertex -10.3649 -20.1728 -0.2 - endloop - endfacet - facet normal 0.501647 -0.865072 0 - outer loop - vertex -10.3649 -20.1728 -0.2 - vertex -9.87453 -19.8884 0 - vertex -10.3649 -20.1728 0 - endloop - endfacet - facet normal 0.501647 -0.865072 0 - outer loop - vertex -9.87453 -19.8884 0 - vertex -10.3649 -20.1728 -0.2 - vertex -9.87453 -19.8884 -0.2 - endloop - endfacet - facet normal 0.475521 -0.879704 0 - outer loop - vertex -9.87453 -19.8884 -0.2 - vertex -9.46489 -19.667 0 - vertex -9.87453 -19.8884 0 - endloop - endfacet - facet normal 0.475521 -0.879704 0 - outer loop - vertex -9.46489 -19.667 0 - vertex -9.87453 -19.8884 -0.2 - vertex -9.46489 -19.667 -0.2 - endloop - endfacet - facet normal 0.423964 -0.905679 0 - outer loop - vertex -9.46489 -19.667 -0.2 - vertex -9.10766 -19.4997 0 - vertex -9.46489 -19.667 0 - endloop - endfacet - facet normal 0.423964 -0.905679 0 - outer loop - vertex -9.10766 -19.4997 0 - vertex -9.46489 -19.667 -0.2 - vertex -9.10766 -19.4997 -0.2 - endloop - endfacet - facet normal 0.343275 -0.939235 0 - outer loop - vertex -9.10766 -19.4997 -0.2 - vertex -8.77447 -19.378 0 - vertex -9.10766 -19.4997 0 - endloop - endfacet - facet normal 0.343275 -0.939235 0 - outer loop - vertex -8.77447 -19.378 0 - vertex -9.10766 -19.4997 -0.2 - vertex -8.77447 -19.378 -0.2 - endloop - endfacet - facet normal 0.244399 -0.969675 0 - outer loop - vertex -8.77447 -19.378 -0.2 - vertex -8.43701 -19.2929 0 - vertex -8.77447 -19.378 0 - endloop - endfacet - facet normal 0.244399 -0.969675 0 - outer loop - vertex -8.43701 -19.2929 0 - vertex -8.77447 -19.378 -0.2 - vertex -8.43701 -19.2929 -0.2 - endloop - endfacet - facet normal 0.152431 -0.988314 0 - outer loop - vertex -8.43701 -19.2929 -0.2 - vertex -8.06691 -19.2358 0 - vertex -8.43701 -19.2929 0 - endloop - endfacet - facet normal 0.152431 -0.988314 0 - outer loop - vertex -8.06691 -19.2358 0 - vertex -8.43701 -19.2929 -0.2 - vertex -8.06691 -19.2358 -0.2 - endloop - endfacet - facet normal 0.0874592 -0.996168 0 - outer loop - vertex -8.06691 -19.2358 -0.2 - vertex -7.63584 -19.198 0 - vertex -8.06691 -19.2358 0 - endloop - endfacet - facet normal 0.0874592 -0.996168 0 - outer loop - vertex -7.63584 -19.198 0 - vertex -8.06691 -19.2358 -0.2 - vertex -7.63584 -19.198 -0.2 - endloop - endfacet - facet normal 0.0524883 -0.998622 0 - outer loop - vertex -7.63584 -19.198 -0.2 - vertex -7.11547 -19.1706 0 - vertex -7.63584 -19.198 0 - endloop - endfacet - facet normal 0.0524883 -0.998622 0 - outer loop - vertex -7.11547 -19.1706 0 - vertex -7.63584 -19.198 -0.2 - vertex -7.11547 -19.1706 -0.2 - endloop - endfacet - facet normal 0.0303019 -0.999541 0 - outer loop - vertex -7.11547 -19.1706 -0.2 - vertex -6.14058 -19.1411 0 - vertex -7.11547 -19.1706 0 - endloop - endfacet - facet normal 0.0303019 -0.999541 0 - outer loop - vertex -6.14058 -19.1411 0 - vertex -7.11547 -19.1706 -0.2 - vertex -6.14058 -19.1411 -0.2 - endloop - endfacet - facet normal -0.0462057 -0.998932 0 - outer loop - vertex -6.14058 -19.1411 -0.2 - vertex -5.8145 -19.1562 0 - vertex -6.14058 -19.1411 0 - endloop - endfacet - facet normal -0.0462057 -0.998932 -0 - outer loop - vertex -5.8145 -19.1562 0 - vertex -6.14058 -19.1411 -0.2 - vertex -5.8145 -19.1562 -0.2 - endloop - endfacet - facet normal -0.173732 -0.984793 0 - outer loop - vertex -5.8145 -19.1562 -0.2 - vertex -5.55901 -19.2012 0 - vertex -5.8145 -19.1562 0 - endloop - endfacet - facet normal -0.173732 -0.984793 -0 - outer loop - vertex -5.55901 -19.2012 0 - vertex -5.8145 -19.1562 -0.2 - vertex -5.55901 -19.2012 -0.2 - endloop - endfacet - facet normal -0.362239 -0.932085 0 - outer loop - vertex -5.55901 -19.2012 -0.2 - vertex -5.34642 -19.2839 0 - vertex -5.55901 -19.2012 0 - endloop - endfacet - facet normal -0.362239 -0.932085 -0 - outer loop - vertex -5.34642 -19.2839 0 - vertex -5.55901 -19.2012 -0.2 - vertex -5.34642 -19.2839 -0.2 - endloop - endfacet - facet normal -0.543204 -0.8396 0 - outer loop - vertex -5.34642 -19.2839 -0.2 - vertex -5.14898 -19.4116 0 - vertex -5.34642 -19.2839 0 - endloop - endfacet - facet normal -0.543204 -0.8396 -0 - outer loop - vertex -5.14898 -19.4116 0 - vertex -5.34642 -19.2839 -0.2 - vertex -5.14898 -19.4116 -0.2 - endloop - endfacet - facet normal -0.651669 -0.758504 0 - outer loop - vertex -5.14898 -19.4116 -0.2 - vertex -4.93899 -19.592 0 - vertex -5.14898 -19.4116 0 - endloop - endfacet - facet normal -0.651669 -0.758504 -0 - outer loop - vertex -4.93899 -19.592 0 - vertex -5.14898 -19.4116 -0.2 - vertex -4.93899 -19.592 -0.2 - endloop - endfacet - facet normal -0.693118 -0.720824 0 - outer loop - vertex -4.93899 -19.592 -0.2 - vertex -4.68872 -19.8327 0 - vertex -4.93899 -19.592 0 - endloop - endfacet - facet normal -0.693118 -0.720824 -0 - outer loop - vertex -4.68872 -19.8327 0 - vertex -4.93899 -19.592 -0.2 - vertex -4.68872 -19.8327 -0.2 - endloop - endfacet - facet normal -0.711815 -0.702367 0 - outer loop - vertex -4.47107 -20.0532 -0.2 - vertex -4.68872 -19.8327 0 - vertex -4.68872 -19.8327 -0.2 - endloop - endfacet - facet normal -0.711815 -0.702367 0 - outer loop - vertex -4.68872 -19.8327 0 - vertex -4.47107 -20.0532 -0.2 - vertex -4.47107 -20.0532 0 - endloop - endfacet - facet normal -0.751184 -0.660092 0 - outer loop - vertex -4.29663 -20.2518 -0.2 - vertex -4.47107 -20.0532 0 - vertex -4.47107 -20.0532 -0.2 - endloop - endfacet - facet normal -0.751184 -0.660092 0 - outer loop - vertex -4.47107 -20.0532 0 - vertex -4.29663 -20.2518 -0.2 - vertex -4.29663 -20.2518 0 - endloop - endfacet - facet normal -0.80931 -0.587382 0 - outer loop - vertex -4.15983 -20.4402 -0.2 - vertex -4.29663 -20.2518 0 - vertex -4.29663 -20.2518 -0.2 - endloop - endfacet - facet normal -0.80931 -0.587382 0 - outer loop - vertex -4.29663 -20.2518 0 - vertex -4.15983 -20.4402 -0.2 - vertex -4.15983 -20.4402 0 - endloop - endfacet - facet normal -0.876288 -0.481787 0 - outer loop - vertex -4.05507 -20.6308 -0.2 - vertex -4.15983 -20.4402 0 - vertex -4.15983 -20.4402 -0.2 - endloop - endfacet - facet normal -0.876288 -0.481787 0 - outer loop - vertex -4.15983 -20.4402 0 - vertex -4.05507 -20.6308 -0.2 - vertex -4.05507 -20.6308 0 - endloop - endfacet - facet normal -0.93397 -0.357351 0 - outer loop - vertex -3.97677 -20.8354 -0.2 - vertex -4.05507 -20.6308 0 - vertex -4.05507 -20.6308 -0.2 - endloop - endfacet - facet normal -0.93397 -0.357351 0 - outer loop - vertex -4.05507 -20.6308 0 - vertex -3.97677 -20.8354 -0.2 - vertex -3.97677 -20.8354 0 - endloop - endfacet - facet normal -0.970412 -0.241456 0 - outer loop - vertex -3.91934 -21.0662 -0.2 - vertex -3.97677 -20.8354 0 - vertex -3.97677 -20.8354 -0.2 - endloop - endfacet - facet normal -0.970412 -0.241456 0 - outer loop - vertex -3.97677 -20.8354 0 - vertex -3.91934 -21.0662 -0.2 - vertex -3.91934 -21.0662 0 - endloop - endfacet - facet normal -0.987949 -0.154777 0 - outer loop - vertex -3.87719 -21.3353 -0.2 - vertex -3.91934 -21.0662 0 - vertex -3.91934 -21.0662 -0.2 - endloop - endfacet - facet normal -0.987949 -0.154777 0 - outer loop - vertex -3.91934 -21.0662 0 - vertex -3.87719 -21.3353 -0.2 - vertex -3.87719 -21.3353 0 - endloop - endfacet - facet normal -0.994874 -0.10112 0 - outer loop - vertex -3.84473 -21.6547 -0.2 - vertex -3.87719 -21.3353 0 - vertex -3.87719 -21.3353 -0.2 - endloop - endfacet - facet normal -0.994874 -0.10112 0 - outer loop - vertex -3.87719 -21.3353 0 - vertex -3.84473 -21.6547 -0.2 - vertex -3.84473 -21.6547 0 - endloop - endfacet - facet normal -0.999588 -0.0286991 0 - outer loop - vertex -3.82849 -22.2203 -0.2 - vertex -3.84473 -21.6547 0 - vertex -3.84473 -21.6547 -0.2 - endloop - endfacet - facet normal -0.999588 -0.0286991 0 - outer loop - vertex -3.84473 -21.6547 0 - vertex -3.82849 -22.2203 -0.2 - vertex -3.82849 -22.2203 0 - endloop - endfacet - facet normal -0.998294 0.058395 0 - outer loop - vertex -3.84589 -22.5177 -0.2 - vertex -3.82849 -22.2203 0 - vertex -3.82849 -22.2203 -0.2 - endloop - endfacet - facet normal -0.998294 0.058395 0 - outer loop - vertex -3.82849 -22.2203 0 - vertex -3.84589 -22.5177 -0.2 - vertex -3.84589 -22.5177 0 - endloop - endfacet - facet normal -0.99329 0.115647 0 - outer loop - vertex -3.88244 -22.8317 -0.2 - vertex -3.84589 -22.5177 0 - vertex -3.84589 -22.5177 -0.2 - endloop - endfacet - facet normal -0.99329 0.115647 0 - outer loop - vertex -3.84589 -22.5177 0 - vertex -3.88244 -22.8317 -0.2 - vertex -3.88244 -22.8317 0 - endloop - endfacet - facet normal -0.985725 0.168361 0 - outer loop - vertex -3.93975 -23.1672 -0.2 - vertex -3.88244 -22.8317 0 - vertex -3.88244 -22.8317 -0.2 - endloop - endfacet - facet normal -0.985725 0.168361 0 - outer loop - vertex -3.88244 -22.8317 0 - vertex -3.93975 -23.1672 -0.2 - vertex -3.93975 -23.1672 0 - endloop - endfacet - facet normal -0.976652 0.214827 0 - outer loop - vertex -4.01943 -23.5295 -0.2 - vertex -3.93975 -23.1672 0 - vertex -3.93975 -23.1672 -0.2 - endloop - endfacet - facet normal -0.976652 0.214827 0 - outer loop - vertex -3.93975 -23.1672 0 - vertex -4.01943 -23.5295 -0.2 - vertex -4.01943 -23.5295 0 - endloop - endfacet - facet normal -0.962379 0.27171 0 - outer loop - vertex -4.25232 -24.3543 -0.2 - vertex -4.01943 -23.5295 0 - vertex -4.01943 -23.5295 -0.2 - endloop - endfacet - facet normal -0.962379 0.27171 0 - outer loop - vertex -4.01943 -23.5295 0 - vertex -4.25232 -24.3543 -0.2 - vertex -4.25232 -24.3543 0 - endloop - endfacet - facet normal -0.945562 0.325441 0 - outer loop - vertex -4.59396 -25.347 -0.2 - vertex -4.25232 -24.3543 0 - vertex -4.25232 -24.3543 -0.2 - endloop - endfacet - facet normal -0.945562 0.325441 0 - outer loop - vertex -4.25232 -24.3543 0 - vertex -4.59396 -25.347 -0.2 - vertex -4.59396 -25.347 0 - endloop - endfacet - facet normal -0.933005 0.359863 0 - outer loop - vertex -5.05721 -26.548 -0.2 - vertex -4.59396 -25.347 0 - vertex -4.59396 -25.347 -0.2 - endloop - endfacet - facet normal -0.933005 0.359863 0 - outer loop - vertex -4.59396 -25.347 0 - vertex -5.05721 -26.548 -0.2 - vertex -5.05721 -26.548 0 - endloop - endfacet - facet normal -0.924544 0.381075 0 - outer loop - vertex -5.65492 -27.9982 -0.2 - vertex -5.05721 -26.548 0 - vertex -5.05721 -26.548 -0.2 - endloop - endfacet - facet normal -0.924544 0.381075 0 - outer loop - vertex -5.05721 -26.548 0 - vertex -5.65492 -27.9982 -0.2 - vertex -5.65492 -27.9982 0 - endloop - endfacet - facet normal -0.919267 0.393635 0 - outer loop - vertex -6.39994 -29.738 -0.2 - vertex -5.65492 -27.9982 0 - vertex -5.65492 -27.9982 -0.2 - endloop - endfacet - facet normal -0.919267 0.393635 0 - outer loop - vertex -5.65492 -27.9982 0 - vertex -6.39994 -29.738 -0.2 - vertex -6.39994 -29.738 0 - endloop - endfacet - facet normal -0.920331 0.391141 0 - outer loop - vertex -7.70823 -32.8163 -0.2 - vertex -6.39994 -29.738 0 - vertex -6.39994 -29.738 -0.2 - endloop - endfacet - facet normal -0.920331 0.391141 0 - outer loop - vertex -6.39994 -29.738 0 - vertex -7.70823 -32.8163 -0.2 - vertex -7.70823 -32.8163 0 - endloop - endfacet - facet normal -0.926406 0.376526 0 - outer loop - vertex -8.13453 -33.8652 -0.2 - vertex -7.70823 -32.8163 0 - vertex -7.70823 -32.8163 -0.2 - endloop - endfacet - facet normal -0.926406 0.376526 0 - outer loop - vertex -7.70823 -32.8163 0 - vertex -8.13453 -33.8652 -0.2 - vertex -8.13453 -33.8652 0 - endloop - endfacet - facet normal -0.938884 0.344234 0 - outer loop - vertex -8.32474 -34.384 -0.2 - vertex -8.13453 -33.8652 0 - vertex -8.13453 -33.8652 -0.2 - endloop - endfacet - facet normal -0.938884 0.344234 0 - outer loop - vertex -8.13453 -33.8652 0 - vertex -8.32474 -34.384 -0.2 - vertex -8.32474 -34.384 0 - endloop - endfacet - facet normal -0.969782 0.243972 0 - outer loop - vertex -8.55649 -35.3052 -0.2 - vertex -8.32474 -34.384 0 - vertex -8.32474 -34.384 -0.2 - endloop - endfacet - facet normal -0.969782 0.243972 0 - outer loop - vertex -8.32474 -34.384 0 - vertex -8.55649 -35.3052 -0.2 - vertex -8.55649 -35.3052 0 - endloop - endfacet - facet normal -0.98411 0.17756 0 - outer loop - vertex -8.57785 -35.4236 -0.2 - vertex -8.55649 -35.3052 0 - vertex -8.55649 -35.3052 -0.2 - endloop - endfacet - facet normal -0.98411 0.17756 0 - outer loop - vertex -8.55649 -35.3052 0 - vertex -8.57785 -35.4236 -0.2 - vertex -8.57785 -35.4236 0 - endloop - endfacet - facet normal -0.999972 -0.00745735 0 - outer loop - vertex -8.57707 -35.529 -0.2 - vertex -8.57785 -35.4236 0 - vertex -8.57785 -35.4236 -0.2 - endloop - endfacet - facet normal -0.999972 -0.00745735 0 - outer loop - vertex -8.57785 -35.4236 0 - vertex -8.57707 -35.529 -0.2 - vertex -8.57707 -35.529 0 - endloop - endfacet - facet normal -0.966564 -0.256425 0 - outer loop - vertex -8.55176 -35.6244 -0.2 - vertex -8.57707 -35.529 0 - vertex -8.57707 -35.529 -0.2 - endloop - endfacet - facet normal -0.966564 -0.256425 0 - outer loop - vertex -8.57707 -35.529 0 - vertex -8.55176 -35.6244 -0.2 - vertex -8.55176 -35.6244 0 - endloop - endfacet - facet normal -0.861289 -0.508115 0 - outer loop - vertex -8.49955 -35.7129 -0.2 - vertex -8.55176 -35.6244 0 - vertex -8.55176 -35.6244 -0.2 - endloop - endfacet - facet normal -0.861289 -0.508115 0 - outer loop - vertex -8.55176 -35.6244 0 - vertex -8.49955 -35.7129 -0.2 - vertex -8.49955 -35.7129 0 - endloop - endfacet - facet normal -0.720516 -0.693438 0 - outer loop - vertex -8.41808 -35.7975 -0.2 - vertex -8.49955 -35.7129 0 - vertex -8.49955 -35.7129 -0.2 - endloop - endfacet - facet normal -0.720516 -0.693438 0 - outer loop - vertex -8.49955 -35.7129 0 - vertex -8.41808 -35.7975 -0.2 - vertex -8.41808 -35.7975 0 - endloop - endfacet - facet normal -0.595759 -0.803164 0 - outer loop - vertex -8.41808 -35.7975 -0.2 - vertex -8.30497 -35.8814 0 - vertex -8.41808 -35.7975 0 - endloop - endfacet - facet normal -0.595759 -0.803164 -0 - outer loop - vertex -8.30497 -35.8814 0 - vertex -8.41808 -35.7975 -0.2 - vertex -8.30497 -35.8814 -0.2 - endloop - endfacet - facet normal -0.473656 -0.88071 0 - outer loop - vertex -8.30497 -35.8814 -0.2 - vertex -7.97432 -36.0592 0 - vertex -8.30497 -35.8814 0 - endloop - endfacet - facet normal -0.473656 -0.88071 -0 - outer loop - vertex -7.97432 -36.0592 0 - vertex -8.30497 -35.8814 -0.2 - vertex -7.97432 -36.0592 -0.2 - endloop - endfacet - facet normal -0.487345 -0.873209 0 - outer loop - vertex -7.97432 -36.0592 -0.2 - vertex -7.70312 -36.2106 0 - vertex -7.97432 -36.0592 0 - endloop - endfacet - facet normal -0.487345 -0.873209 -0 - outer loop - vertex -7.70312 -36.2106 0 - vertex -7.97432 -36.0592 -0.2 - vertex -7.70312 -36.2106 -0.2 - endloop - endfacet - facet normal -0.634834 -0.772648 0 - outer loop - vertex -7.70312 -36.2106 -0.2 - vertex -7.50076 -36.3769 0 - vertex -7.70312 -36.2106 0 - endloop - endfacet - facet normal -0.634834 -0.772648 -0 - outer loop - vertex -7.50076 -36.3769 0 - vertex -7.70312 -36.2106 -0.2 - vertex -7.50076 -36.3769 -0.2 - endloop - endfacet - facet normal -0.80484 -0.593492 0 - outer loop - vertex -7.36727 -36.5579 -0.2 - vertex -7.50076 -36.3769 0 - vertex -7.50076 -36.3769 -0.2 - endloop - endfacet - facet normal -0.80484 -0.593492 0 - outer loop - vertex -7.50076 -36.3769 0 - vertex -7.36727 -36.5579 -0.2 - vertex -7.36727 -36.5579 0 - endloop - endfacet - facet normal -0.919952 -0.39203 0 - outer loop - vertex -7.32635 -36.6539 -0.2 - vertex -7.36727 -36.5579 0 - vertex -7.36727 -36.5579 -0.2 - endloop - endfacet - facet normal -0.919952 -0.39203 0 - outer loop - vertex -7.36727 -36.5579 0 - vertex -7.32635 -36.6539 -0.2 - vertex -7.32635 -36.6539 0 - endloop - endfacet - facet normal -0.972883 -0.231299 0 - outer loop - vertex -7.30266 -36.7536 -0.2 - vertex -7.32635 -36.6539 0 - vertex -7.32635 -36.6539 -0.2 - endloop - endfacet - facet normal -0.972883 -0.231299 0 - outer loop - vertex -7.32635 -36.6539 0 - vertex -7.30266 -36.7536 -0.2 - vertex -7.30266 -36.7536 0 - endloop - endfacet - facet normal -0.998045 -0.0625022 0 - outer loop - vertex -7.29619 -36.8569 -0.2 - vertex -7.30266 -36.7536 0 - vertex -7.30266 -36.7536 -0.2 - endloop - endfacet - facet normal -0.998045 -0.0625022 0 - outer loop - vertex -7.30266 -36.7536 0 - vertex -7.29619 -36.8569 -0.2 - vertex -7.29619 -36.8569 0 - endloop - endfacet - facet normal -0.994972 0.100157 0 - outer loop - vertex -7.30695 -36.9638 -0.2 - vertex -7.29619 -36.8569 0 - vertex -7.29619 -36.8569 -0.2 - endloop - endfacet - facet normal -0.994972 0.100157 0 - outer loop - vertex -7.29619 -36.8569 0 - vertex -7.30695 -36.9638 -0.2 - vertex -7.30695 -36.9638 0 - endloop - endfacet - facet normal -0.950745 0.309974 0 - outer loop - vertex -7.38017 -37.1883 -0.2 - vertex -7.30695 -36.9638 0 - vertex -7.30695 -36.9638 -0.2 - endloop - endfacet - facet normal -0.950745 0.309974 0 - outer loop - vertex -7.30695 -36.9638 0 - vertex -7.38017 -37.1883 -0.2 - vertex -7.38017 -37.1883 0 - endloop - endfacet - facet normal -0.859288 0.511491 0 - outer loop - vertex -7.52232 -37.4271 -0.2 - vertex -7.38017 -37.1883 0 - vertex -7.38017 -37.1883 -0.2 - endloop - endfacet - facet normal -0.859288 0.511491 0 - outer loop - vertex -7.38017 -37.1883 0 - vertex -7.52232 -37.4271 -0.2 - vertex -7.52232 -37.4271 0 - endloop - endfacet - facet normal -0.767721 0.640785 0 - outer loop - vertex -7.73344 -37.6801 -0.2 - vertex -7.52232 -37.4271 0 - vertex -7.52232 -37.4271 -0.2 - endloop - endfacet - facet normal -0.767721 0.640785 0 - outer loop - vertex -7.52232 -37.4271 0 - vertex -7.73344 -37.6801 -0.2 - vertex -7.73344 -37.6801 0 - endloop - endfacet - facet normal -0.693467 0.720489 0 - outer loop - vertex -7.73344 -37.6801 -0.2 - vertex -7.8903 -37.8311 0 - vertex -7.73344 -37.6801 0 - endloop - endfacet - facet normal -0.693467 0.720489 0 - outer loop - vertex -7.8903 -37.8311 0 - vertex -7.73344 -37.6801 -0.2 - vertex -7.8903 -37.8311 -0.2 - endloop - endfacet - facet normal -0.544632 0.838675 0 - outer loop - vertex -7.8903 -37.8311 -0.2 - vertex -8.0676 -37.9462 0 - vertex -7.8903 -37.8311 0 - endloop - endfacet - facet normal -0.544632 0.838675 0 - outer loop - vertex -8.0676 -37.9462 0 - vertex -7.8903 -37.8311 -0.2 - vertex -8.0676 -37.9462 -0.2 - endloop - endfacet - facet normal -0.329452 0.944172 0 - outer loop - vertex -8.0676 -37.9462 -0.2 - vertex -8.30871 -38.0303 0 - vertex -8.0676 -37.9462 0 - endloop - endfacet - facet normal -0.329452 0.944172 0 - outer loop - vertex -8.30871 -38.0303 0 - vertex -8.0676 -37.9462 -0.2 - vertex -8.30871 -38.0303 -0.2 - endloop - endfacet - facet normal -0.164178 0.986431 0 - outer loop - vertex -8.30871 -38.0303 -0.2 - vertex -8.657 -38.0883 0 - vertex -8.30871 -38.0303 0 - endloop - endfacet - facet normal -0.164178 0.986431 0 - outer loop - vertex -8.657 -38.0883 0 - vertex -8.30871 -38.0303 -0.2 - vertex -8.657 -38.0883 -0.2 - endloop - endfacet - facet normal -0.0732736 0.997312 0 - outer loop - vertex -8.657 -38.0883 -0.2 - vertex -9.15585 -38.1249 0 - vertex -8.657 -38.0883 0 - endloop - endfacet - facet normal -0.0732736 0.997312 0 - outer loop - vertex -9.15585 -38.1249 0 - vertex -8.657 -38.0883 -0.2 - vertex -9.15585 -38.1249 -0.2 - endloop - endfacet - facet normal -0.0291211 0.999576 0 - outer loop - vertex -9.15585 -38.1249 -0.2 - vertex -9.84865 -38.1451 0 - vertex -9.15585 -38.1249 0 - endloop - endfacet - facet normal -0.0291211 0.999576 0 - outer loop - vertex -9.84865 -38.1451 0 - vertex -9.15585 -38.1249 -0.2 - vertex -9.84865 -38.1451 -0.2 - endloop - endfacet - facet normal -0.00482502 0.999988 0 - outer loop - vertex -9.84865 -38.1451 -0.2 - vertex -11.9896 -38.1555 0 - vertex -9.84865 -38.1451 0 - endloop - endfacet - facet normal -0.00482502 0.999988 0 - outer loop - vertex -11.9896 -38.1555 0 - vertex -9.84865 -38.1451 -0.2 - vertex -11.9896 -38.1555 -0.2 - endloop - endfacet - facet normal 0.0039213 0.999992 -0 - outer loop - vertex -11.9896 -38.1555 -0.2 - vertex -14.1677 -38.1469 0 - vertex -11.9896 -38.1555 0 - endloop - endfacet - facet normal 0.0039213 0.999992 0 - outer loop - vertex -14.1677 -38.1469 0 - vertex -11.9896 -38.1555 -0.2 - vertex -14.1677 -38.1469 -0.2 - endloop - endfacet - facet normal 0.0274602 0.999623 -0 - outer loop - vertex -14.1677 -38.1469 -0.2 - vertex -14.8486 -38.1282 0 - vertex -14.1677 -38.1469 0 - endloop - endfacet - facet normal 0.0274602 0.999623 0 - outer loop - vertex -14.8486 -38.1282 0 - vertex -14.1677 -38.1469 -0.2 - vertex -14.8486 -38.1282 -0.2 - endloop - endfacet - facet normal 0.0756421 0.997135 -0 - outer loop - vertex -14.8486 -38.1282 -0.2 - vertex -15.316 -38.0928 0 - vertex -14.8486 -38.1282 0 - endloop - endfacet - facet normal 0.0756421 0.997135 0 - outer loop - vertex -15.316 -38.0928 0 - vertex -14.8486 -38.1282 -0.2 - vertex -15.316 -38.0928 -0.2 - endloop - endfacet - facet normal 0.189644 0.981853 -0 - outer loop - vertex -15.316 -38.0928 -0.2 - vertex -15.614 -38.0352 0 - vertex -15.316 -38.0928 0 - endloop - endfacet - facet normal 0.189644 0.981853 0 - outer loop - vertex -15.614 -38.0352 0 - vertex -15.316 -38.0928 -0.2 - vertex -15.614 -38.0352 -0.2 - endloop - endfacet - facet normal 0.363705 0.931514 -0 - outer loop - vertex -15.614 -38.0352 -0.2 - vertex -15.7132 -37.9965 0 - vertex -15.614 -38.0352 0 - endloop - endfacet - facet normal 0.363705 0.931514 0 - outer loop - vertex -15.7132 -37.9965 0 - vertex -15.614 -38.0352 -0.2 - vertex -15.7132 -37.9965 -0.2 - endloop - endfacet - facet normal 0.533432 0.845843 -0 - outer loop - vertex -15.7132 -37.9965 -0.2 - vertex -15.7865 -37.9502 0 - vertex -15.7132 -37.9965 0 - endloop - endfacet - facet normal 0.533432 0.845843 0 - outer loop - vertex -15.7865 -37.9502 0 - vertex -15.7132 -37.9965 -0.2 - vertex -15.7865 -37.9502 -0.2 - endloop - endfacet - facet normal 0.71659 0.697495 0 - outer loop - vertex -15.7865 -37.9502 0 - vertex -15.8396 -37.8957 -0.2 - vertex -15.8396 -37.8957 0 - endloop - endfacet - facet normal 0.71659 0.697495 0 - outer loop - vertex -15.8396 -37.8957 -0.2 - vertex -15.7865 -37.9502 0 - vertex -15.7865 -37.9502 -0.2 - endloop - endfacet - facet normal 0.856476 0.516186 0 - outer loop - vertex -15.8396 -37.8957 0 - vertex -15.8777 -37.8324 -0.2 - vertex -15.8777 -37.8324 0 - endloop - endfacet - facet normal 0.856476 0.516186 0 - outer loop - vertex -15.8777 -37.8324 -0.2 - vertex -15.8396 -37.8957 0 - vertex -15.8396 -37.8957 -0.2 - endloop - endfacet - facet normal 0.945292 0.326225 0 - outer loop - vertex -15.8777 -37.8324 0 - vertex -15.9316 -37.6764 -0.2 - vertex -15.9316 -37.6764 0 - endloop - endfacet - facet normal 0.945292 0.326225 0 - outer loop - vertex -15.9316 -37.6764 -0.2 - vertex -15.8777 -37.8324 0 - vertex -15.8777 -37.8324 -0.2 - endloop - endfacet - facet normal 0.977576 0.210582 0 - outer loop - vertex -15.9316 -37.6764 0 - vertex -15.9604 -37.5428 -0.2 - vertex -15.9604 -37.5428 0 - endloop - endfacet - facet normal 0.977576 0.210582 0 - outer loop - vertex -15.9604 -37.5428 -0.2 - vertex -15.9316 -37.6764 0 - vertex -15.9316 -37.6764 -0.2 - endloop - endfacet - facet normal 0.998424 0.0561231 0 - outer loop - vertex -15.9604 -37.5428 0 - vertex -15.9675 -37.4163 -0.2 - vertex -15.9675 -37.4163 0 - endloop - endfacet - facet normal 0.998424 0.0561231 0 - outer loop - vertex -15.9675 -37.4163 -0.2 - vertex -15.9604 -37.5428 0 - vertex -15.9604 -37.5428 -0.2 - endloop - endfacet - facet normal 0.991334 -0.131364 0 - outer loop - vertex -15.9675 -37.4163 0 - vertex -15.9511 -37.293 -0.2 - vertex -15.9511 -37.293 0 - endloop - endfacet - facet normal 0.991334 -0.131364 0 - outer loop - vertex -15.9511 -37.293 -0.2 - vertex -15.9675 -37.4163 0 - vertex -15.9675 -37.4163 -0.2 - endloop - endfacet - facet normal 0.94832 -0.317316 0 - outer loop - vertex -15.9511 -37.293 0 - vertex -15.9096 -37.1689 -0.2 - vertex -15.9096 -37.1689 0 - endloop - endfacet - facet normal 0.94832 -0.317316 0 - outer loop - vertex -15.9096 -37.1689 -0.2 - vertex -15.9511 -37.293 0 - vertex -15.9511 -37.293 -0.2 - endloop - endfacet - facet normal 0.883259 -0.468885 0 - outer loop - vertex -15.9096 -37.1689 0 - vertex -15.8411 -37.0399 -0.2 - vertex -15.8411 -37.0399 0 - endloop - endfacet - facet normal 0.883259 -0.468885 0 - outer loop - vertex -15.8411 -37.0399 -0.2 - vertex -15.9096 -37.1689 0 - vertex -15.9096 -37.1689 -0.2 - endloop - endfacet - facet normal 0.817454 -0.575994 0 - outer loop - vertex -15.8411 -37.0399 0 - vertex -15.7439 -36.902 -0.2 - vertex -15.7439 -36.902 0 - endloop - endfacet - facet normal 0.817454 -0.575994 0 - outer loop - vertex -15.7439 -36.902 -0.2 - vertex -15.8411 -37.0399 0 - vertex -15.8411 -37.0399 -0.2 - endloop - endfacet - facet normal 0.742584 -0.669753 0 - outer loop - vertex -15.7439 -36.902 0 - vertex -15.4564 -36.5832 -0.2 - vertex -15.4564 -36.5832 0 - endloop - endfacet - facet normal 0.742584 -0.669753 0 - outer loop - vertex -15.4564 -36.5832 -0.2 - vertex -15.7439 -36.902 0 - vertex -15.7439 -36.902 -0.2 - endloop - endfacet - facet normal 0.654929 -0.755691 0 - outer loop - vertex -15.4564 -36.5832 -0.2 - vertex -15.1813 -36.3448 0 - vertex -15.4564 -36.5832 0 - endloop - endfacet - facet normal 0.654929 -0.755691 0 - outer loop - vertex -15.1813 -36.3448 0 - vertex -15.4564 -36.5832 -0.2 - vertex -15.1813 -36.3448 -0.2 - endloop - endfacet - facet normal 0.547883 -0.836555 0 - outer loop - vertex -15.1813 -36.3448 -0.2 - vertex -14.8831 -36.1495 0 - vertex -15.1813 -36.3448 0 - endloop - endfacet - facet normal 0.547883 -0.836555 0 - outer loop - vertex -14.8831 -36.1495 0 - vertex -15.1813 -36.3448 -0.2 - vertex -14.8831 -36.1495 -0.2 - endloop - endfacet - facet normal 0.419801 -0.907616 0 - outer loop - vertex -14.8831 -36.1495 -0.2 - vertex -14.5979 -36.0176 0 - vertex -14.8831 -36.1495 0 - endloop - endfacet - facet normal 0.419801 -0.907616 0 - outer loop - vertex -14.5979 -36.0176 0 - vertex -14.8831 -36.1495 -0.2 - vertex -14.5979 -36.0176 -0.2 - endloop - endfacet - facet normal 0.273076 -0.961992 0 - outer loop - vertex -14.5979 -36.0176 -0.2 - vertex -14.4713 -35.9816 0 - vertex -14.5979 -36.0176 0 - endloop - endfacet - facet normal 0.273076 -0.961992 0 - outer loop - vertex -14.4713 -35.9816 0 - vertex -14.5979 -36.0176 -0.2 - vertex -14.4713 -35.9816 -0.2 - endloop - endfacet - facet normal 0.113362 -0.993554 0 - outer loop - vertex -14.4713 -35.9816 -0.2 - vertex -14.3614 -35.9691 0 - vertex -14.4713 -35.9816 0 - endloop - endfacet - facet normal 0.113362 -0.993554 0 - outer loop - vertex -14.3614 -35.9691 0 - vertex -14.4713 -35.9816 -0.2 - vertex -14.3614 -35.9691 -0.2 - endloop - endfacet - facet normal 0.0894161 -0.995994 0 - outer loop - vertex -14.3614 -35.9691 -0.2 - vertex -14.1999 -35.9546 0 - vertex -14.3614 -35.9691 0 - endloop - endfacet - facet normal 0.0894161 -0.995994 0 - outer loop - vertex -14.1999 -35.9546 0 - vertex -14.3614 -35.9691 -0.2 - vertex -14.1999 -35.9546 -0.2 - endloop - endfacet - facet normal 0.259204 -0.965823 0 - outer loop - vertex -14.1999 -35.9546 -0.2 - vertex -14.0373 -35.911 0 - vertex -14.1999 -35.9546 0 - endloop - endfacet - facet normal 0.259204 -0.965823 0 - outer loop - vertex -14.0373 -35.911 0 - vertex -14.1999 -35.9546 -0.2 - vertex -14.0373 -35.911 -0.2 - endloop - endfacet - facet normal 0.406893 -0.913476 0 - outer loop - vertex -14.0373 -35.911 -0.2 - vertex -13.8736 -35.838 0 - vertex -14.0373 -35.911 0 - endloop - endfacet - facet normal 0.406893 -0.913476 0 - outer loop - vertex -13.8736 -35.838 0 - vertex -14.0373 -35.911 -0.2 - vertex -13.8736 -35.838 -0.2 - endloop - endfacet - facet normal 0.527319 -0.849667 0 - outer loop - vertex -13.8736 -35.838 -0.2 - vertex -13.7085 -35.7356 0 - vertex -13.8736 -35.838 0 - endloop - endfacet - facet normal 0.527319 -0.849667 0 - outer loop - vertex -13.7085 -35.7356 0 - vertex -13.8736 -35.838 -0.2 - vertex -13.7085 -35.7356 -0.2 - endloop - endfacet - facet normal 0.621601 -0.783334 0 - outer loop - vertex -13.7085 -35.7356 -0.2 - vertex -13.5421 -35.6036 0 - vertex -13.7085 -35.7356 0 - endloop - endfacet - facet normal 0.621601 -0.783334 0 - outer loop - vertex -13.5421 -35.6036 0 - vertex -13.7085 -35.7356 -0.2 - vertex -13.5421 -35.6036 -0.2 - endloop - endfacet - facet normal 0.693973 -0.720001 0 - outer loop - vertex -13.5421 -35.6036 -0.2 - vertex -13.3741 -35.4417 0 - vertex -13.5421 -35.6036 0 - endloop - endfacet - facet normal 0.693973 -0.720001 0 - outer loop - vertex -13.3741 -35.4417 0 - vertex -13.5421 -35.6036 -0.2 - vertex -13.3741 -35.4417 -0.2 - endloop - endfacet - facet normal 0.74925 -0.662287 0 - outer loop - vertex -13.3741 -35.4417 0 - vertex -13.2045 -35.2497 -0.2 - vertex -13.2045 -35.2497 0 - endloop - endfacet - facet normal 0.74925 -0.662287 0 - outer loop - vertex -13.2045 -35.2497 -0.2 - vertex -13.3741 -35.4417 0 - vertex -13.3741 -35.4417 -0.2 - endloop - endfacet - facet normal 0.791599 -0.611041 0 - outer loop - vertex -13.2045 -35.2497 0 - vertex -13.0331 -35.0276 -0.2 - vertex -13.0331 -35.0276 0 - endloop - endfacet - facet normal 0.791599 -0.611041 0 - outer loop - vertex -13.0331 -35.0276 -0.2 - vertex -13.2045 -35.2497 0 - vertex -13.2045 -35.2497 -0.2 - endloop - endfacet - facet normal 0.837921 -0.545792 0 - outer loop - vertex -13.0331 -35.0276 0 - vertex -12.6843 -34.4922 -0.2 - vertex -12.6843 -34.4922 0 - endloop - endfacet - facet normal 0.837921 -0.545792 0 - outer loop - vertex -12.6843 -34.4922 -0.2 - vertex -13.0331 -35.0276 0 - vertex -13.0331 -35.0276 -0.2 - endloop - endfacet - facet normal 0.878782 -0.477224 0 - outer loop - vertex -12.6843 -34.4922 0 - vertex -12.3268 -33.8339 -0.2 - vertex -12.3268 -33.8339 0 - endloop - endfacet - facet normal 0.878782 -0.477224 0 - outer loop - vertex -12.3268 -33.8339 -0.2 - vertex -12.6843 -34.4922 0 - vertex -12.6843 -34.4922 -0.2 - endloop - endfacet - facet normal 0.905274 -0.424829 0 - outer loop - vertex -12.3268 -33.8339 0 - vertex -11.9595 -33.0513 -0.2 - vertex -11.9595 -33.0513 0 - endloop - endfacet - facet normal 0.905274 -0.424829 0 - outer loop - vertex -11.9595 -33.0513 -0.2 - vertex -12.3268 -33.8339 0 - vertex -12.3268 -33.8339 -0.2 - endloop - endfacet - facet normal 0.923227 -0.384256 0 - outer loop - vertex -11.9595 -33.0513 0 - vertex -11.5815 -32.143 -0.2 - vertex -11.5815 -32.143 0 - endloop - endfacet - facet normal 0.923227 -0.384256 0 - outer loop - vertex -11.5815 -32.143 -0.2 - vertex -11.9595 -33.0513 0 - vertex -11.9595 -33.0513 -0.2 + vertex -11.5932 -32.143 -3 + vertex -12.3385 -33.8339 0 + vertex -12.3385 -33.8339 -3 endloop endfacet facet normal 0.927789 -0.373105 0 outer loop - vertex -11.5815 -32.143 0 - vertex -9.5401 -27.0667 -0.2 - vertex -9.5401 -27.0667 0 + vertex -11.5932 -32.143 0 + vertex -9.55184 -27.0667 -3 + vertex -9.55184 -27.0667 0 endloop endfacet facet normal 0.927789 -0.373105 0 outer loop - vertex -9.5401 -27.0667 -0.2 - vertex -11.5815 -32.143 0 - vertex -11.5815 -32.143 -0.2 + vertex -9.55184 -27.0667 -3 + vertex -11.5932 -32.143 0 + vertex -11.5932 -32.143 -3 endloop endfacet - facet normal 0.931122 -0.364709 0 + facet normal 0.938245 -0.345971 0 outer loop - vertex -9.5401 -27.0667 0 - vertex -9.05502 -25.8283 -0.2 - vertex -9.05502 -25.8283 0 + vertex -9.55184 -27.0667 0 + vertex -8.72405 -24.8218 -3 + vertex -8.72405 -24.8218 0 endloop endfacet - facet normal 0.931122 -0.364709 0 + facet normal 0.938245 -0.345971 0 outer loop - vertex -9.05502 -25.8283 -0.2 - vertex -9.5401 -27.0667 0 - vertex -9.5401 -27.0667 -0.2 + vertex -8.72405 -24.8218 -3 + vertex -9.55184 -27.0667 0 + vertex -9.55184 -27.0667 -3 endloop endfacet - facet normal 0.946626 -0.322334 0 + facet normal 0.983596 -0.180388 0 outer loop - vertex -9.05502 -25.8283 0 - vertex -8.71232 -24.8218 -0.2 - vertex -8.71232 -24.8218 0 + vertex -8.72405 -24.8218 0 + vertex -8.46819 -23.4267 -3 + vertex -8.46819 -23.4267 0 endloop endfacet - facet normal 0.946626 -0.322334 0 + facet normal 0.983596 -0.180388 0 outer loop - vertex -8.71232 -24.8218 -0.2 - vertex -9.05502 -25.8283 0 - vertex -9.05502 -25.8283 -0.2 + vertex -8.46819 -23.4267 -3 + vertex -8.72405 -24.8218 0 + vertex -8.72405 -24.8218 -3 endloop endfacet - facet normal 0.963249 -0.26861 0 + facet normal 0.979467 0.201603 0 outer loop - vertex -8.71232 -24.8218 0 - vertex -8.59455 -24.3995 -0.2 - vertex -8.59455 -24.3995 0 + vertex -8.46819 -23.4267 0 + vertex -8.55624 -22.9989 -3 + vertex -8.55624 -22.9989 0 endloop endfacet - facet normal 0.963249 -0.26861 0 + facet normal 0.979467 0.201603 0 outer loop - vertex -8.59455 -24.3995 -0.2 - vertex -8.71232 -24.8218 0 - vertex -8.71232 -24.8218 -0.2 + vertex -8.55624 -22.9989 -3 + vertex -8.46819 -23.4267 0 + vertex -8.46819 -23.4267 -3 endloop endfacet - facet normal 0.976543 -0.215323 0 + facet normal 0.762012 0.647563 0 outer loop - vertex -8.59455 -24.3995 0 - vertex -8.51259 -24.0278 -0.2 - vertex -8.51259 -24.0278 0 + vertex -8.55624 -22.9989 0 + vertex -8.78909 -22.7249 -3 + vertex -8.78909 -22.7249 0 endloop endfacet - facet normal 0.976543 -0.215323 0 + facet normal 0.762012 0.647563 0 outer loop - vertex -8.51259 -24.0278 -0.2 - vertex -8.59455 -24.3995 0 - vertex -8.59455 -24.3995 -0.2 + vertex -8.78909 -22.7249 -3 + vertex -8.55624 -22.9989 0 + vertex -8.55624 -22.9989 -3 endloop endfacet - facet normal 0.990015 -0.140965 0 + facet normal 0.179668 0.983727 -0 outer loop - vertex -8.51259 -24.0278 0 - vertex -8.46654 -23.7044 -0.2 - vertex -8.46654 -23.7044 0 + vertex -8.78909 -22.7249 -3 + vertex -9.69161 -22.56 0 + vertex -8.78909 -22.7249 0 endloop endfacet - facet normal 0.990015 -0.140965 0 + facet normal 0.179668 0.983727 0 outer loop - vertex -8.46654 -23.7044 -0.2 - vertex -8.51259 -24.0278 0 - vertex -8.51259 -24.0278 -0.2 + vertex -9.69161 -22.56 0 + vertex -8.78909 -22.7249 -3 + vertex -9.69161 -22.56 -3 endloop endfacet - facet normal 0.999341 -0.0362924 0 + facet normal -0.191908 0.981413 0 outer loop - vertex -8.46654 -23.7044 0 - vertex -8.45645 -23.4267 -0.2 - vertex -8.45645 -23.4267 0 + vertex -9.69161 -22.56 -3 + vertex -10.5461 -22.7271 0 + vertex -9.69161 -22.56 0 endloop endfacet - facet normal 0.999341 -0.0362924 0 + facet normal -0.191908 0.981413 0 outer loop - vertex -8.45645 -23.4267 -0.2 - vertex -8.46654 -23.7044 0 - vertex -8.46654 -23.7044 -0.2 + vertex -10.5461 -22.7271 0 + vertex -9.69161 -22.56 -3 + vertex -10.5461 -22.7271 -3 endloop endfacet - facet normal 0.993917 0.110127 0 + facet normal -0.380356 0.92484 0 outer loop - vertex -8.45645 -23.4267 0 - vertex -8.48242 -23.1923 -0.2 - vertex -8.48242 -23.1923 0 + vertex -10.5461 -22.7271 -3 + vertex -11.3967 -23.0769 0 + vertex -10.5461 -22.7271 0 endloop endfacet - facet normal 0.993917 0.110127 0 + facet normal -0.380356 0.92484 0 outer loop - vertex -8.48242 -23.1923 -0.2 - vertex -8.45645 -23.4267 0 - vertex -8.45645 -23.4267 -0.2 + vertex -11.3967 -23.0769 0 + vertex -10.5461 -22.7271 -3 + vertex -11.3967 -23.0769 -3 endloop endfacet - facet normal 0.952162 0.305593 0 + facet normal -0.535069 0.844808 0 outer loop - vertex -8.48242 -23.1923 0 - vertex -8.54451 -22.9989 -0.2 - vertex -8.54451 -22.9989 0 + vertex -11.3967 -23.0769 -3 + vertex -12.4124 -23.7203 0 + vertex -11.3967 -23.0769 0 endloop endfacet - facet normal 0.952162 0.305593 0 + facet normal -0.535069 0.844808 0 outer loop - vertex -8.54451 -22.9989 -0.2 - vertex -8.48242 -23.1923 0 - vertex -8.48242 -23.1923 -0.2 + vertex -12.4124 -23.7203 0 + vertex -11.3967 -23.0769 -3 + vertex -12.4124 -23.7203 -3 endloop endfacet - facet normal 0.844525 0.535516 0 + facet normal -0.673005 0.739638 0 outer loop - vertex -8.54451 -22.9989 0 - vertex -8.64279 -22.8439 -0.2 - vertex -8.64279 -22.8439 0 + vertex -12.4124 -23.7203 -3 + vertex -13.1427 -24.3848 0 + vertex -12.4124 -23.7203 0 endloop endfacet - facet normal 0.844525 0.535516 0 + facet normal -0.673005 0.739638 0 outer loop - vertex -8.64279 -22.8439 -0.2 - vertex -8.54451 -22.9989 0 - vertex -8.54451 -22.9989 -0.2 + vertex -13.1427 -24.3848 0 + vertex -12.4124 -23.7203 -3 + vertex -13.1427 -24.3848 -3 endloop endfacet - facet normal 0.662463 0.749095 -0 + facet normal -0.824808 0.565412 0 outer loop - vertex -8.64279 -22.8439 -0.2 - vertex -8.77736 -22.7249 0 - vertex -8.64279 -22.8439 0 + vertex -13.7062 -25.2068 -3 + vertex -13.1427 -24.3848 0 + vertex -13.1427 -24.3848 -3 endloop endfacet - facet normal 0.662463 0.749095 0 + facet normal -0.824808 0.565412 0 outer loop - vertex -8.77736 -22.7249 0 - vertex -8.64279 -22.8439 -0.2 - vertex -8.77736 -22.7249 -0.2 + vertex -13.1427 -24.3848 0 + vertex -13.7062 -25.2068 -3 + vertex -13.7062 -25.2068 0 endloop endfacet - facet normal 0.447148 0.89446 -0 + facet normal -0.907849 0.419297 0 outer loop - vertex -8.77736 -22.7249 -0.2 - vertex -8.94827 -22.6394 0 - vertex -8.77736 -22.7249 0 + vertex -14.2216 -26.3227 -3 + vertex -13.7062 -25.2068 0 + vertex -13.7062 -25.2068 -3 endloop endfacet - facet normal 0.447148 0.89446 0 + facet normal -0.907849 0.419297 0 outer loop - vertex -8.94827 -22.6394 0 - vertex -8.77736 -22.7249 -0.2 - vertex -8.94827 -22.6394 -0.2 + vertex -13.7062 -25.2068 0 + vertex -14.2216 -26.3227 -3 + vertex -14.2216 -26.3227 0 endloop endfacet - facet normal 0.253452 0.967348 -0 + facet normal -0.926196 0.377043 0 outer loop - vertex -8.94827 -22.6394 -0.2 - vertex -9.15561 -22.5851 0 - vertex -8.94827 -22.6394 0 + vertex -15.3894 -29.1914 -3 + vertex -14.2216 -26.3227 0 + vertex -14.2216 -26.3227 -3 endloop endfacet - facet normal 0.253452 0.967348 0 + facet normal -0.926196 0.377043 0 outer loop - vertex -9.15561 -22.5851 0 - vertex -8.94827 -22.6394 -0.2 - vertex -9.15561 -22.5851 -0.2 - endloop - endfacet - facet normal 0.104613 0.994513 -0 - outer loop - vertex -9.15561 -22.5851 -0.2 - vertex -9.39946 -22.5595 0 - vertex -9.15561 -22.5851 0 - endloop - endfacet - facet normal 0.104613 0.994513 0 - outer loop - vertex -9.39946 -22.5595 0 - vertex -9.15561 -22.5851 -0.2 - vertex -9.39946 -22.5595 -0.2 - endloop - endfacet - facet normal -0.0020677 0.999998 0 - outer loop - vertex -9.39946 -22.5595 -0.2 - vertex -9.67988 -22.56 0 - vertex -9.39946 -22.5595 0 - endloop - endfacet - facet normal -0.0020677 0.999998 0 - outer loop - vertex -9.67988 -22.56 0 - vertex -9.39946 -22.5595 -0.2 - vertex -9.67988 -22.56 -0.2 - endloop - endfacet - facet normal -0.129535 0.991575 0 - outer loop - vertex -9.67988 -22.56 -0.2 - vertex -10.0796 -22.6123 0 - vertex -9.67988 -22.56 0 - endloop - endfacet - facet normal -0.129535 0.991575 0 - outer loop - vertex -10.0796 -22.6123 0 - vertex -9.67988 -22.56 -0.2 - vertex -10.0796 -22.6123 -0.2 - endloop - endfacet - facet normal -0.24491 0.969546 0 - outer loop - vertex -10.0796 -22.6123 -0.2 - vertex -10.5344 -22.7271 0 - vertex -10.0796 -22.6123 0 - endloop - endfacet - facet normal -0.24491 0.969546 0 - outer loop - vertex -10.5344 -22.7271 0 - vertex -10.0796 -22.6123 -0.2 - vertex -10.5344 -22.7271 -0.2 - endloop - endfacet - facet normal -0.333557 0.94273 0 - outer loop - vertex -10.5344 -22.7271 -0.2 - vertex -10.9881 -22.8877 0 - vertex -10.5344 -22.7271 0 - endloop - endfacet - facet normal -0.333557 0.94273 0 - outer loop - vertex -10.9881 -22.8877 0 - vertex -10.5344 -22.7271 -0.2 - vertex -10.9881 -22.8877 -0.2 - endloop - endfacet - facet normal -0.430494 0.902594 0 - outer loop - vertex -10.9881 -22.8877 -0.2 - vertex -11.3849 -23.0769 0 - vertex -10.9881 -22.8877 0 - endloop - endfacet - facet normal -0.430494 0.902594 0 - outer loop - vertex -11.3849 -23.0769 0 - vertex -10.9881 -22.8877 -0.2 - vertex -11.3849 -23.0769 -0.2 - endloop - endfacet - facet normal -0.511004 0.859578 0 - outer loop - vertex -11.3849 -23.0769 -0.2 - vertex -11.9359 -23.4045 0 - vertex -11.3849 -23.0769 0 - endloop - endfacet - facet normal -0.511004 0.859578 0 - outer loop - vertex -11.9359 -23.4045 0 - vertex -11.3849 -23.0769 -0.2 - vertex -11.9359 -23.4045 -0.2 - endloop - endfacet - facet normal -0.561997 0.827139 0 - outer loop - vertex -11.9359 -23.4045 -0.2 - vertex -12.4007 -23.7203 0 - vertex -11.9359 -23.4045 0 - endloop - endfacet - facet normal -0.561997 0.827139 0 - outer loop - vertex -12.4007 -23.7203 0 - vertex -11.9359 -23.4045 -0.2 - vertex -12.4007 -23.7203 -0.2 - endloop - endfacet - facet normal -0.632295 0.774728 0 - outer loop - vertex -12.4007 -23.7203 -0.2 - vertex -12.7941 -24.0414 0 - vertex -12.4007 -23.7203 0 - endloop - endfacet - facet normal -0.632295 0.774728 0 - outer loop - vertex -12.7941 -24.0414 0 - vertex -12.4007 -23.7203 -0.2 - vertex -12.7941 -24.0414 -0.2 - endloop - endfacet - facet normal -0.713871 0.700277 0 - outer loop - vertex -13.131 -24.3848 -0.2 - vertex -12.7941 -24.0414 0 - vertex -12.7941 -24.0414 -0.2 - endloop - endfacet - facet normal -0.713871 0.700277 0 - outer loop - vertex -12.7941 -24.0414 0 - vertex -13.131 -24.3848 -0.2 - vertex -13.131 -24.3848 0 - endloop - endfacet - facet normal -0.791901 0.61065 0 - outer loop - vertex -13.4262 -24.7676 -0.2 - vertex -13.131 -24.3848 0 - vertex -13.131 -24.3848 -0.2 - endloop - endfacet - facet normal -0.791901 0.61065 0 - outer loop - vertex -13.131 -24.3848 0 - vertex -13.4262 -24.7676 -0.2 - vertex -13.4262 -24.7676 0 - endloop - endfacet - facet normal -0.853364 0.521315 0 - outer loop - vertex -13.6945 -25.2068 -0.2 - vertex -13.4262 -24.7676 0 - vertex -13.4262 -24.7676 -0.2 - endloop - endfacet - facet normal -0.853364 0.521315 0 - outer loop - vertex -13.4262 -24.7676 0 - vertex -13.6945 -25.2068 -0.2 - vertex -13.6945 -25.2068 0 - endloop - endfacet - facet normal -0.894467 0.447134 0 - outer loop - vertex -13.9508 -25.7195 -0.2 - vertex -13.6945 -25.2068 0 - vertex -13.6945 -25.2068 -0.2 - endloop - endfacet - facet normal -0.894467 0.447134 0 - outer loop - vertex -13.6945 -25.2068 0 - vertex -13.9508 -25.7195 -0.2 - vertex -13.9508 -25.7195 0 - endloop - endfacet - facet normal -0.918824 0.394667 0 - outer loop - vertex -14.2098 -26.3227 -0.2 - vertex -13.9508 -25.7195 0 - vertex -13.9508 -25.7195 -0.2 - endloop - endfacet - facet normal -0.918824 0.394667 0 - outer loop - vertex -13.9508 -25.7195 0 - vertex -14.2098 -26.3227 -0.2 - vertex -14.2098 -26.3227 0 - endloop - endfacet - facet normal -0.926196 0.377042 0 - outer loop - vertex -15.3777 -29.1914 -0.2 - vertex -14.2098 -26.3227 0 - vertex -14.2098 -26.3227 -0.2 - endloop - endfacet - facet normal -0.926196 0.377042 0 - outer loop - vertex -14.2098 -26.3227 0 - vertex -15.3777 -29.1914 -0.2 - vertex -15.3777 -29.1914 0 + vertex -14.2216 -26.3227 0 + vertex -15.3894 -29.1914 -3 + vertex -15.3894 -29.1914 0 endloop endfacet facet normal -0.925675 0.37832 0 outer loop - vertex -16.8163 -32.7116 -0.2 - vertex -15.3777 -29.1914 0 - vertex -15.3777 -29.1914 -0.2 + vertex -16.8281 -32.7116 -3 + vertex -15.3894 -29.1914 0 + vertex -15.3894 -29.1914 -3 endloop endfacet facet normal -0.925675 0.37832 0 outer loop - vertex -15.3777 -29.1914 0 - vertex -16.8163 -32.7116 -0.2 - vertex -16.8163 -32.7116 0 + vertex -15.3894 -29.1914 0 + vertex -16.8281 -32.7116 -3 + vertex -16.8281 -32.7116 0 endloop endfacet - facet normal -0.928735 0.370745 0 + facet normal -0.944728 0.327855 0 outer loop - vertex -17.1674 -33.591 -0.2 - vertex -16.8163 -32.7116 0 - vertex -16.8163 -32.7116 -0.2 + vertex -17.7285 -35.3062 -3 + vertex -16.8281 -32.7116 0 + vertex -16.8281 -32.7116 -3 endloop endfacet - facet normal -0.928735 0.370745 0 + facet normal -0.944728 0.327855 0 outer loop - vertex -16.8163 -32.7116 0 - vertex -17.1674 -33.591 -0.2 - vertex -17.1674 -33.591 0 + vertex -16.8281 -32.7116 0 + vertex -17.7285 -35.3062 -3 + vertex -17.7285 -35.3062 0 endloop endfacet - facet normal -0.937631 0.347632 0 + facet normal -0.998333 -0.0577213 0 outer loop - vertex -17.4329 -34.3072 -0.2 - vertex -17.1674 -33.591 0 - vertex -17.1674 -33.591 -0.2 + vertex -17.6987 -35.8223 -3 + vertex -17.7285 -35.3062 0 + vertex -17.7285 -35.3062 -3 endloop endfacet - facet normal -0.937631 0.347632 0 + facet normal -0.998333 -0.0577213 0 outer loop - vertex -17.1674 -33.591 0 - vertex -17.4329 -34.3072 -0.2 - vertex -17.4329 -34.3072 0 + vertex -17.7285 -35.3062 0 + vertex -17.6987 -35.8223 -3 + vertex -17.6987 -35.8223 0 endloop endfacet - facet normal -0.951989 0.306132 0 + facet normal -0.412173 -0.911106 0 outer loop - vertex -17.6153 -34.8741 -0.2 - vertex -17.4329 -34.3072 0 - vertex -17.4329 -34.3072 -0.2 + vertex -17.6987 -35.8223 -3 + vertex -17.3742 -35.9691 0 + vertex -17.6987 -35.8223 0 endloop endfacet - facet normal -0.951989 0.306132 0 + facet normal -0.412173 -0.911106 -0 outer loop - vertex -17.4329 -34.3072 0 - vertex -17.6153 -34.8741 -0.2 - vertex -17.6153 -34.8741 0 + vertex -17.3742 -35.9691 0 + vertex -17.6987 -35.8223 -3 + vertex -17.3742 -35.9691 -3 endloop endfacet - facet normal -0.973485 0.228749 0 + facet normal -0.297585 -0.954695 0 outer loop - vertex -17.7168 -35.3062 -0.2 - vertex -17.6153 -34.8741 0 - vertex -17.6153 -34.8741 -0.2 + vertex -17.3742 -35.9691 -3 + vertex -16.5846 -36.2152 0 + vertex -17.3742 -35.9691 0 endloop endfacet - facet normal -0.973485 0.228749 0 + facet normal -0.297585 -0.954695 -0 outer loop - vertex -17.6153 -34.8741 0 - vertex -17.7168 -35.3062 -0.2 - vertex -17.7168 -35.3062 0 + vertex -16.5846 -36.2152 0 + vertex -17.3742 -35.9691 -3 + vertex -16.5846 -36.2152 -3 endloop endfacet - facet normal -0.992299 0.123865 0 + facet normal -0.829044 -0.559183 0 outer loop - vertex -17.738 -35.4761 -0.2 - vertex -17.7168 -35.3062 0 - vertex -17.7168 -35.3062 -0.2 + vertex -16.2226 -36.752 -3 + vertex -16.5846 -36.2152 0 + vertex -16.5846 -36.2152 -3 endloop endfacet - facet normal -0.992299 0.123865 0 + facet normal -0.829044 -0.559183 0 outer loop - vertex -17.7168 -35.3062 0 - vertex -17.738 -35.4761 -0.2 - vertex -17.738 -35.4761 0 + vertex -16.5846 -36.2152 0 + vertex -16.2226 -36.752 -3 + vertex -16.2226 -36.752 0 endloop endfacet - facet normal -0.99991 0.0134015 0 + facet normal -0.876406 0.481572 0 outer loop - vertex -17.7399 -35.6175 -0.2 - vertex -17.738 -35.4761 0 - vertex -17.738 -35.4761 -0.2 + vertex -16.6989 -37.6188 -3 + vertex -16.2226 -36.752 0 + vertex -16.2226 -36.752 -3 endloop endfacet - facet normal -0.99991 0.0134015 0 + facet normal -0.876406 0.481572 0 outer loop - vertex -17.738 -35.4761 0 - vertex -17.7399 -35.6175 -0.2 - vertex -17.7399 -35.6175 0 + vertex -16.2226 -36.752 0 + vertex -16.6989 -37.6188 -3 + vertex -16.6989 -37.6188 0 endloop endfacet - facet normal -0.989073 -0.147424 0 + facet normal -0.678562 0.734543 0 outer loop - vertex -17.7228 -35.7323 -0.2 - vertex -17.7399 -35.6175 0 - vertex -17.7399 -35.6175 -0.2 + vertex -16.6989 -37.6188 -3 + vertex -17.033 -37.9274 0 + vertex -16.6989 -37.6188 0 endloop endfacet - facet normal -0.989073 -0.147424 0 + facet normal -0.678562 0.734543 0 outer loop - vertex -17.7399 -35.6175 0 - vertex -17.7228 -35.7323 -0.2 - vertex -17.7228 -35.7323 0 + vertex -17.033 -37.9274 0 + vertex -16.6989 -37.6188 -3 + vertex -17.033 -37.9274 -3 endloop endfacet - facet normal -0.929053 -0.369947 0 + facet normal -0.276188 0.961104 0 outer loop - vertex -17.6869 -35.8223 -0.2 - vertex -17.7228 -35.7323 0 - vertex -17.7228 -35.7323 -0.2 + vertex -17.033 -37.9274 -3 + vertex -17.5781 -38.0841 0 + vertex -17.033 -37.9274 0 endloop endfacet - facet normal -0.929053 -0.369947 0 + facet normal -0.276188 0.961104 0 outer loop - vertex -17.7228 -35.7323 0 - vertex -17.6869 -35.8223 -0.2 - vertex -17.6869 -35.8223 0 + vertex -17.5781 -38.0841 0 + vertex -17.033 -37.9274 -3 + vertex -17.5781 -38.0841 -3 endloop endfacet - facet normal -0.776679 -0.629897 0 + facet normal -0.0141874 0.999899 0 outer loop - vertex -17.6327 -35.8892 -0.2 - vertex -17.6869 -35.8223 0 - vertex -17.6869 -35.8223 -0.2 + vertex -17.5781 -38.0841 -3 + vertex -20.8226 -38.1301 0 + vertex -17.5781 -38.0841 0 endloop endfacet - facet normal -0.776679 -0.629897 0 + facet normal -0.0141874 0.999899 0 outer loop - vertex -17.6869 -35.8223 0 - vertex -17.6327 -35.8892 -0.2 - vertex -17.6327 -35.8892 0 + vertex -20.8226 -38.1301 0 + vertex -17.5781 -38.0841 -3 + vertex -20.8226 -38.1301 -3 endloop endfacet - facet normal -0.532937 -0.846155 0 + facet normal 0.0314237 0.999506 -0 outer loop - vertex -17.6327 -35.8892 -0.2 - vertex -17.5603 -35.9348 0 - vertex -17.6327 -35.8892 0 + vertex -20.8226 -38.1301 -3 + vertex -24.8096 -38.0047 0 + vertex -20.8226 -38.1301 0 endloop endfacet - facet normal -0.532937 -0.846155 -0 + facet normal 0.0314237 0.999506 0 outer loop - vertex -17.5603 -35.9348 0 - vertex -17.6327 -35.8892 -0.2 - vertex -17.5603 -35.9348 -0.2 + vertex -24.8096 -38.0047 0 + vertex -20.8226 -38.1301 -3 + vertex -24.8096 -38.0047 -3 endloop endfacet - facet normal -0.277484 -0.96073 0 + facet normal 0.544713 0.838623 -0 outer loop - vertex -17.5603 -35.9348 -0.2 - vertex -17.4702 -35.9608 0 - vertex -17.5603 -35.9348 0 + vertex -24.8096 -38.0047 -3 + vertex -25.0608 -37.8416 0 + vertex -24.8096 -38.0047 0 endloop endfacet - facet normal -0.277484 -0.96073 -0 + facet normal 0.544713 0.838623 0 outer loop - vertex -17.4702 -35.9608 0 - vertex -17.5603 -35.9348 -0.2 - vertex -17.4702 -35.9608 -0.2 + vertex -25.0608 -37.8416 0 + vertex -24.8096 -38.0047 -3 + vertex -25.0608 -37.8416 -3 endloop endfacet - facet normal -0.0767033 -0.997054 0 + facet normal 0.940452 0.339927 0 outer loop - vertex -17.4702 -35.9608 -0.2 - vertex -17.3625 -35.9691 0 - vertex -17.4702 -35.9608 0 + vertex -25.0608 -37.8416 0 + vertex -25.157 -37.5754 -3 + vertex -25.157 -37.5754 0 endloop endfacet - facet normal -0.0767033 -0.997054 -0 + facet normal 0.940452 0.339927 0 outer loop - vertex -17.3625 -35.9691 0 - vertex -17.4702 -35.9608 -0.2 - vertex -17.3625 -35.9691 -0.2 + vertex -25.157 -37.5754 -3 + vertex -25.0608 -37.8416 0 + vertex -25.0608 -37.8416 -3 endloop endfacet - facet normal -0.0829709 -0.996552 0 + facet normal 0.964896 -0.262631 0 outer loop - vertex -17.3625 -35.9691 -0.2 - vertex -17.1493 -35.9869 0 - vertex -17.3625 -35.9691 0 + vertex -25.157 -37.5754 0 + vertex -24.9699 -36.888 -3 + vertex -24.9699 -36.888 0 endloop endfacet - facet normal -0.0829709 -0.996552 -0 + facet normal 0.964896 -0.262631 0 outer loop - vertex -17.1493 -35.9869 0 - vertex -17.3625 -35.9691 -0.2 - vertex -17.1493 -35.9869 -0.2 + vertex -24.9699 -36.888 -3 + vertex -25.157 -37.5754 0 + vertex -25.157 -37.5754 -3 endloop endfacet - facet normal -0.234852 -0.972031 0 + facet normal 0.757107 -0.653291 0 outer loop - vertex -17.1493 -35.9869 -0.2 - vertex -16.942 -36.0369 0 - vertex -17.1493 -35.9869 0 + vertex -24.9699 -36.888 0 + vertex -24.4194 -36.2501 -3 + vertex -24.4194 -36.2501 0 endloop endfacet - facet normal -0.234852 -0.972031 -0 + facet normal 0.757107 -0.653291 0 outer loop - vertex -16.942 -36.0369 0 - vertex -17.1493 -35.9869 -0.2 - vertex -16.942 -36.0369 -0.2 + vertex -24.4194 -36.2501 -3 + vertex -24.9699 -36.888 0 + vertex -24.9699 -36.888 -3 endloop endfacet - facet normal -0.371048 -0.928614 0 + facet normal 0.353851 -0.935302 0 outer loop - vertex -16.942 -36.0369 -0.2 - vertex -16.7476 -36.1146 0 - vertex -16.942 -36.0369 0 + vertex -24.4194 -36.2501 -3 + vertex -23.6767 -35.9691 0 + vertex -24.4194 -36.2501 0 endloop endfacet - facet normal -0.371048 -0.928614 -0 + facet normal 0.353851 -0.935302 0 outer loop - vertex -16.7476 -36.1146 0 - vertex -16.942 -36.0369 -0.2 - vertex -16.7476 -36.1146 -0.2 + vertex -23.6767 -35.9691 0 + vertex -24.4194 -36.2501 -3 + vertex -23.6767 -35.9691 -3 endloop endfacet - facet normal -0.499006 -0.866599 0 + facet normal 0.158077 -0.987427 0 outer loop - vertex -16.7476 -36.1146 -0.2 - vertex -16.5729 -36.2152 0 - vertex -16.7476 -36.1146 0 + vertex -23.6767 -35.9691 -3 + vertex -23.007 -35.8619 0 + vertex -23.6767 -35.9691 0 endloop endfacet - facet normal -0.499006 -0.866599 -0 + facet normal 0.158077 -0.987427 0 outer loop - vertex -16.5729 -36.2152 0 - vertex -16.7476 -36.1146 -0.2 - vertex -16.5729 -36.2152 -0.2 + vertex -23.007 -35.8619 0 + vertex -23.6767 -35.9691 -3 + vertex -23.007 -35.8619 -3 endloop endfacet - facet normal -0.625925 -0.779883 0 + facet normal 0.593681 -0.8047 0 outer loop - vertex -16.5729 -36.2152 -0.2 - vertex -16.4249 -36.334 0 - vertex -16.5729 -36.2152 0 + vertex -23.007 -35.8619 -3 + vertex -22.458 -35.4568 0 + vertex -23.007 -35.8619 0 endloop endfacet - facet normal -0.625925 -0.779883 -0 + facet normal 0.593681 -0.8047 0 outer loop - vertex -16.4249 -36.334 0 - vertex -16.5729 -36.2152 -0.2 - vertex -16.4249 -36.334 -0.2 + vertex -22.458 -35.4568 0 + vertex -23.007 -35.8619 -3 + vertex -22.458 -35.4568 -3 endloop endfacet - facet normal -0.756453 -0.654048 0 + facet normal 0.83817 -0.545409 0 outer loop - vertex -16.3106 -36.4662 -0.2 - vertex -16.4249 -36.334 0 - vertex -16.4249 -36.334 -0.2 + vertex -22.458 -35.4568 0 + vertex -21.9191 -34.6287 -3 + vertex -21.9191 -34.6287 0 endloop endfacet - facet normal -0.756453 -0.654048 0 + facet normal 0.83817 -0.545409 0 outer loop - vertex -16.4249 -36.334 0 - vertex -16.3106 -36.4662 -0.2 - vertex -16.3106 -36.4662 0 + vertex -21.9191 -34.6287 -3 + vertex -22.458 -35.4568 0 + vertex -22.458 -35.4568 -3 endloop endfacet - facet normal -0.886186 -0.46333 0 + facet normal 0.906982 -0.42117 0 outer loop - vertex -16.237 -36.6071 -0.2 - vertex -16.3106 -36.4662 0 - vertex -16.3106 -36.4662 -0.2 + vertex -21.9191 -34.6287 0 + vertex -21.28 -33.2523 -3 + vertex -21.28 -33.2523 0 endloop endfacet - facet normal -0.886186 -0.46333 0 + facet normal 0.906982 -0.42117 0 outer loop - vertex -16.3106 -36.4662 0 - vertex -16.237 -36.6071 -0.2 - vertex -16.237 -36.6071 0 + vertex -21.28 -33.2523 -3 + vertex -21.9191 -34.6287 0 + vertex -21.9191 -34.6287 -3 endloop endfacet - facet normal -0.984159 -0.177288 0 + facet normal 0.922958 -0.384901 0 outer loop - vertex -16.2109 -36.752 -0.2 - vertex -16.237 -36.6071 0 - vertex -16.237 -36.6071 -0.2 + vertex -21.28 -33.2523 0 + vertex -18.5428 -26.6889 -3 + vertex -18.5428 -26.6889 0 endloop endfacet - facet normal -0.984159 -0.177288 0 + facet normal 0.922958 -0.384901 0 outer loop - vertex -16.237 -36.6071 0 - vertex -16.2109 -36.752 -0.2 - vertex -16.2109 -36.752 0 + vertex -18.5428 -26.6889 -3 + vertex -21.28 -33.2523 0 + vertex -21.28 -33.2523 -3 endloop endfacet - facet normal -0.97657 0.215201 0 + facet normal 0.9376 -0.347716 0 outer loop - vertex -16.2485 -36.9225 -0.2 - vertex -16.2109 -36.752 0 - vertex -16.2109 -36.752 -0.2 + vertex -18.5428 -26.6889 0 + vertex -17.299 -23.335 -3 + vertex -17.299 -23.335 0 endloop endfacet - facet normal -0.97657 0.215201 0 + facet normal 0.9376 -0.347716 0 outer loop - vertex -16.2109 -36.752 0 - vertex -16.2485 -36.9225 -0.2 - vertex -16.2485 -36.9225 0 + vertex -17.299 -23.335 -3 + vertex -18.5428 -26.6889 0 + vertex -18.5428 -26.6889 -3 endloop endfacet - facet normal -0.906917 0.42131 0 + facet normal 0.99882 -0.0485627 0 outer loop - vertex -16.3508 -37.1428 -0.2 - vertex -16.2485 -36.9225 0 - vertex -16.2485 -36.9225 -0.2 + vertex -17.299 -23.335 0 + vertex -17.2695 -22.7276 -3 + vertex -17.2695 -22.7276 0 endloop endfacet - facet normal -0.906917 0.42131 0 + facet normal 0.99882 -0.0485627 0 outer loop - vertex -16.2485 -36.9225 0 - vertex -16.3508 -37.1428 -0.2 - vertex -16.3508 -37.1428 0 + vertex -17.2695 -22.7276 -3 + vertex -17.299 -23.335 0 + vertex -17.299 -23.335 -3 endloop endfacet - facet normal -0.847258 0.531182 0 + facet normal 0.171081 0.985257 -0 outer loop - vertex -16.5023 -37.3844 -0.2 - vertex -16.3508 -37.1428 0 - vertex -16.3508 -37.1428 -0.2 + vertex -17.2695 -22.7276 -3 + vertex -17.8179 -22.6324 0 + vertex -17.2695 -22.7276 0 endloop endfacet - facet normal -0.847258 0.531182 0 + facet normal 0.171081 0.985257 0 outer loop - vertex -16.3508 -37.1428 0 - vertex -16.5023 -37.3844 -0.2 - vertex -16.5023 -37.3844 0 + vertex -17.8179 -22.6324 0 + vertex -17.2695 -22.7276 -3 + vertex -17.8179 -22.6324 -3 endloop endfacet - facet normal -0.785088 0.619384 0 + facet normal 0.112446 0.993658 -0 outer loop - vertex -16.6872 -37.6188 -0.2 - vertex -16.5023 -37.3844 0 - vertex -16.5023 -37.3844 -0.2 + vertex -17.8179 -22.6324 -3 + vertex -18.3659 -22.5704 0 + vertex -17.8179 -22.6324 0 endloop endfacet - facet normal -0.785088 0.619384 0 + facet normal 0.112446 0.993658 0 outer loop - vertex -16.5023 -37.3844 0 - vertex -16.6872 -37.6188 -0.2 - vertex -16.6872 -37.6188 0 + vertex -18.3659 -22.5704 0 + vertex -17.8179 -22.6324 -3 + vertex -18.3659 -22.5704 -3 endloop endfacet - facet normal -0.731213 0.68215 0 + facet normal 0.520189 0.854051 -0 outer loop - vertex -16.8516 -37.795 -0.2 - vertex -16.6872 -37.6188 0 - vertex -16.6872 -37.6188 -0.2 + vertex -18.3659 -22.5704 -3 + vertex -18.6886 -22.3738 0 + vertex -18.3659 -22.5704 0 endloop endfacet - facet normal -0.731213 0.68215 0 + facet normal 0.520189 0.854051 0 outer loop - vertex -16.6872 -37.6188 0 - vertex -16.8516 -37.795 -0.2 - vertex -16.8516 -37.795 0 + vertex -18.6886 -22.3738 0 + vertex -18.3659 -22.5704 -3 + vertex -18.6886 -22.3738 -3 endloop endfacet - facet normal -0.615138 0.78842 0 + facet normal 0.953226 0.302258 0 outer loop - vertex -16.8516 -37.795 -0.2 - vertex -17.0213 -37.9274 0 - vertex -16.8516 -37.795 0 + vertex -18.6886 -22.3738 0 + vertex -18.7986 -22.0269 -3 + vertex -18.7986 -22.0269 0 endloop endfacet - facet normal -0.615138 0.78842 0 + facet normal 0.953226 0.302258 0 outer loop - vertex -17.0213 -37.9274 0 - vertex -16.8516 -37.795 -0.2 - vertex -17.0213 -37.9274 -0.2 + vertex -18.7986 -22.0269 -3 + vertex -18.6886 -22.3738 0 + vertex -18.6886 -22.3738 -3 endloop endfacet - facet normal -0.390611 0.920556 0 + facet normal 0.984904 -0.1731 0 outer loop - vertex -17.0213 -37.9274 -0.2 - vertex -17.2437 -38.0218 0 - vertex -17.0213 -37.9274 0 + vertex -18.7986 -22.0269 0 + vertex -18.7084 -21.5139 -3 + vertex -18.7084 -21.5139 0 endloop endfacet - facet normal -0.390611 0.920556 0 + facet normal 0.984904 -0.1731 0 outer loop - vertex -17.2437 -38.0218 0 - vertex -17.0213 -37.9274 -0.2 - vertex -17.2437 -38.0218 -0.2 + vertex -18.7084 -21.5139 -3 + vertex -18.7986 -22.0269 0 + vertex -18.7986 -22.0269 -3 endloop endfacet - facet normal -0.189492 0.981882 0 + facet normal 0.878265 -0.478174 0 outer loop - vertex -17.2437 -38.0218 -0.2 - vertex -17.5664 -38.0841 0 - vertex -17.2437 -38.0218 0 + vertex -18.7084 -21.5139 0 + vertex -18.4336 -21.0091 -3 + vertex -18.4336 -21.0091 0 endloop endfacet - facet normal -0.189492 0.981882 0 + facet normal 0.878265 -0.478174 0 outer loop - vertex -17.5664 -38.0841 0 - vertex -17.2437 -38.0218 -0.2 - vertex -17.5664 -38.0841 -0.2 + vertex -18.4336 -21.0091 -3 + vertex -18.7084 -21.5139 0 + vertex -18.7084 -21.5139 -3 endloop endfacet - facet normal -0.0764443 0.997074 0 + facet normal 0.488581 -0.872518 0 outer loop - vertex -17.5664 -38.0841 -0.2 - vertex -18.0369 -38.1201 0 - vertex -17.5664 -38.0841 0 + vertex -18.4336 -21.0091 -3 + vertex -17.9982 -20.7653 0 + vertex -18.4336 -21.0091 0 endloop endfacet - facet normal -0.0764443 0.997074 0 + facet normal 0.488581 -0.872518 0 outer loop - vertex -18.0369 -38.1201 0 - vertex -17.5664 -38.0841 -0.2 - vertex -18.0369 -38.1201 -0.2 + vertex -17.9982 -20.7653 0 + vertex -18.4336 -21.0091 -3 + vertex -17.9982 -20.7653 -3 endloop endfacet - facet normal -0.0236695 0.99972 0 + facet normal 0.293895 -0.955838 0 outer loop - vertex -18.0369 -38.1201 -0.2 - vertex -18.7028 -38.1359 0 - vertex -18.0369 -38.1201 0 + vertex -17.9982 -20.7653 -3 + vertex -15.1553 -19.8912 0 + vertex -17.9982 -20.7653 0 endloop endfacet - facet normal -0.0236695 0.99972 0 + facet normal 0.293895 -0.955838 0 outer loop - vertex -18.7028 -38.1359 0 - vertex -18.0369 -38.1201 -0.2 - vertex -18.7028 -38.1359 -0.2 + vertex -15.1553 -19.8912 0 + vertex -17.9982 -20.7653 -3 + vertex -15.1553 -19.8912 -3 endloop endfacet - facet normal 0.00275597 0.999996 -0 + facet normal 0.257693 -0.966227 0 outer loop - vertex -18.7028 -38.1359 -0.2 - vertex -20.8109 -38.1301 0 - vertex -18.7028 -38.1359 0 + vertex -15.1553 -19.8912 -3 + vertex -12.3137 -19.1333 0 + vertex -15.1553 -19.8912 0 endloop endfacet - facet normal 0.00275597 0.999996 0 + facet normal 0.257693 -0.966227 0 outer loop - vertex -20.8109 -38.1301 0 - vertex -18.7028 -38.1359 -0.2 - vertex -20.8109 -38.1301 -0.2 + vertex -12.3137 -19.1333 0 + vertex -15.1553 -19.8912 -3 + vertex -12.3137 -19.1333 -3 endloop endfacet - facet normal 0.0176671 0.999844 -0 + facet normal -0.225556 -0.97423 0 outer loop - vertex -20.8109 -38.1301 -0.2 - vertex -23.4866 -38.0828 0 - vertex -20.8109 -38.1301 0 + vertex -12.3137 -19.1333 -3 + vertex -11.9141 -19.2259 0 + vertex -12.3137 -19.1333 0 endloop endfacet - facet normal 0.0176671 0.999844 0 + facet normal -0.225556 -0.97423 -0 outer loop - vertex -23.4866 -38.0828 0 - vertex -20.8109 -38.1301 -0.2 - vertex -23.4866 -38.0828 -0.2 + vertex -11.9141 -19.2259 0 + vertex -12.3137 -19.1333 -3 + vertex -11.9141 -19.2259 -3 endloop endfacet - facet normal 0.0417305 0.999129 -0 + facet normal -0.569265 -0.822154 0 outer loop - vertex -23.4866 -38.0828 -0.2 - vertex -24.3782 -38.0456 0 - vertex -23.4866 -38.0828 0 + vertex 47.2139 -19.2263 -3 + vertex 47.7267 -19.5813 0 + vertex 47.2139 -19.2263 0 endloop endfacet - facet normal 0.0417305 0.999129 0 + facet normal -0.569265 -0.822154 -0 outer loop - vertex -24.3782 -38.0456 0 - vertex -23.4866 -38.0828 -0.2 - vertex -24.3782 -38.0456 -0.2 + vertex 47.7267 -19.5813 0 + vertex 47.2139 -19.2263 -3 + vertex 47.7267 -19.5813 -3 endloop endfacet - facet normal 0.0968237 0.995302 -0 + facet normal -0.900824 -0.434184 0 outer loop - vertex -24.3782 -38.0456 -0.2 - vertex -24.7978 -38.0047 0 - vertex -24.3782 -38.0456 0 + vertex 47.9875 -20.1225 -3 + vertex 47.7267 -19.5813 0 + vertex 47.7267 -19.5813 -3 endloop endfacet - facet normal 0.0968237 0.995302 0 + facet normal -0.900824 -0.434184 0 outer loop - vertex -24.7978 -38.0047 0 - vertex -24.3782 -38.0456 -0.2 - vertex -24.7978 -38.0047 -0.2 + vertex 47.7267 -19.5813 0 + vertex 47.9875 -20.1225 -3 + vertex 47.9875 -20.1225 0 endloop endfacet - facet normal 0.412814 0.910815 -0 + facet normal -0.988067 0.154023 0 outer loop - vertex -24.7978 -38.0047 -0.2 - vertex -24.9442 -37.9384 0 - vertex -24.7978 -38.0047 0 + vertex 47.8425 -21.0531 -3 + vertex 47.9875 -20.1225 0 + vertex 47.9875 -20.1225 -3 endloop endfacet - facet normal 0.412814 0.910815 0 + facet normal -0.988067 0.154023 0 outer loop - vertex -24.9442 -37.9384 0 - vertex -24.7978 -38.0047 -0.2 - vertex -24.9442 -37.9384 -0.2 + vertex 47.9875 -20.1225 0 + vertex 47.8425 -21.0531 -3 + vertex 47.8425 -21.0531 0 endloop endfacet - facet normal 0.678412 0.734682 -0 + facet normal -0.94959 0.313495 0 outer loop - vertex -24.9442 -37.9384 -0.2 - vertex -25.0491 -37.8416 0 - vertex -24.9442 -37.9384 0 + vertex 47.5305 -21.9981 -3 + vertex 47.8425 -21.0531 0 + vertex 47.8425 -21.0531 -3 endloop endfacet - facet normal 0.678412 0.734682 0 + facet normal -0.94959 0.313495 0 outer loop - vertex -25.0491 -37.8416 0 - vertex -24.9442 -37.9384 -0.2 - vertex -25.0491 -37.8416 -0.2 + vertex 47.8425 -21.0531 0 + vertex 47.5305 -21.9981 -3 + vertex 47.5305 -21.9981 0 endloop endfacet - facet normal 0.880101 0.474787 0 + facet normal -0.87808 0.478513 0 outer loop - vertex -25.0491 -37.8416 0 - vertex -25.1152 -37.719 -0.2 - vertex -25.1152 -37.719 0 + vertex 47.0957 -22.796 -3 + vertex 47.5305 -21.9981 0 + vertex 47.5305 -21.9981 -3 endloop endfacet - facet normal 0.880101 0.474787 0 + facet normal -0.87808 0.478513 0 outer loop - vertex -25.1152 -37.719 -0.2 - vertex -25.0491 -37.8416 0 - vertex -25.0491 -37.8416 -0.2 + vertex 47.5305 -21.9981 0 + vertex 47.0957 -22.796 -3 + vertex 47.0957 -22.796 0 endloop endfacet - facet normal 0.978769 0.204965 0 + facet normal -0.768497 0.639853 0 outer loop - vertex -25.1152 -37.719 0 - vertex -25.1453 -37.5754 -0.2 - vertex -25.1453 -37.5754 0 + vertex 46.5684 -23.4293 -3 + vertex 47.0957 -22.796 0 + vertex 47.0957 -22.796 -3 endloop endfacet - facet normal 0.978769 0.204965 0 + facet normal -0.768497 0.639853 0 outer loop - vertex -25.1453 -37.5754 -0.2 - vertex -25.1152 -37.719 0 - vertex -25.1152 -37.719 -0.2 + vertex 47.0957 -22.796 0 + vertex 46.5684 -23.4293 -3 + vertex 46.5684 -23.4293 0 endloop endfacet - facet normal 0.99978 -0.0209726 0 + facet normal -0.607748 0.79413 0 outer loop - vertex -25.1453 -37.5754 0 - vertex -25.1419 -37.4158 -0.2 - vertex -25.1419 -37.4158 0 + vertex 46.5684 -23.4293 -3 + vertex 45.9792 -23.8802 0 + vertex 46.5684 -23.4293 0 endloop endfacet - facet normal 0.99978 -0.0209726 0 + facet normal -0.607748 0.79413 0 outer loop - vertex -25.1419 -37.4158 -0.2 - vertex -25.1453 -37.5754 0 - vertex -25.1453 -37.5754 -0.2 + vertex 45.9792 -23.8802 0 + vertex 46.5684 -23.4293 -3 + vertex 45.9792 -23.8802 -3 endloop endfacet - facet normal 0.980708 -0.195479 0 + facet normal -0.374765 0.92712 0 outer loop - vertex -25.1419 -37.4158 0 - vertex -25.1078 -37.2448 -0.2 - vertex -25.1078 -37.2448 0 + vertex 45.9792 -23.8802 -3 + vertex 45.3585 -24.1311 0 + vertex 45.9792 -23.8802 0 endloop endfacet - facet normal 0.980708 -0.195479 0 + facet normal -0.374765 0.92712 0 outer loop - vertex -25.1078 -37.2448 -0.2 - vertex -25.1419 -37.4158 0 - vertex -25.1419 -37.4158 -0.2 + vertex 45.3585 -24.1311 0 + vertex 45.9792 -23.8802 -3 + vertex 45.3585 -24.1311 -3 endloop endfacet - facet normal 0.94384 -0.330404 0 + facet normal -0.0533306 0.998577 0 outer loop - vertex -25.1078 -37.2448 0 - vertex -25.0457 -37.0673 -0.2 - vertex -25.0457 -37.0673 0 + vertex 45.3585 -24.1311 -3 + vertex 44.7368 -24.1643 0 + vertex 45.3585 -24.1311 0 endloop endfacet - facet normal 0.94384 -0.330404 0 + facet normal -0.0533306 0.998577 0 outer loop - vertex -25.0457 -37.0673 -0.2 - vertex -25.1078 -37.2448 0 - vertex -25.1078 -37.2448 -0.2 + vertex 44.7368 -24.1643 0 + vertex 45.3585 -24.1311 -3 + vertex 44.7368 -24.1643 -3 endloop endfacet - facet normal 0.898573 -0.438825 0 + facet normal 0.323025 0.94639 -0 outer loop - vertex -25.0457 -37.0673 0 - vertex -24.9582 -36.888 -0.2 - vertex -24.9582 -36.888 0 + vertex 44.7368 -24.1643 -3 + vertex 44.1445 -23.9621 0 + vertex 44.7368 -24.1643 0 endloop endfacet - facet normal 0.898573 -0.438825 0 + facet normal 0.323025 0.94639 0 outer loop - vertex -24.9582 -36.888 -0.2 - vertex -25.0457 -37.0673 0 - vertex -25.0457 -37.0673 -0.2 + vertex 44.1445 -23.9621 0 + vertex 44.7368 -24.1643 -3 + vertex 44.1445 -23.9621 -3 endloop endfacet - facet normal 0.847669 -0.530525 0 + facet normal 0.649875 0.760041 -0 outer loop - vertex -24.9582 -36.888 0 - vertex -24.8479 -36.7119 -0.2 - vertex -24.8479 -36.7119 0 + vertex 44.1445 -23.9621 -3 + vertex 43.6122 -23.5069 0 + vertex 44.1445 -23.9621 0 endloop endfacet - facet normal 0.847669 -0.530525 0 + facet normal 0.649875 0.760041 0 outer loop - vertex -24.8479 -36.7119 -0.2 - vertex -24.9582 -36.888 0 - vertex -24.9582 -36.888 -0.2 + vertex 43.6122 -23.5069 0 + vertex 44.1445 -23.9621 -3 + vertex 43.6122 -23.5069 -3 endloop endfacet - facet normal 0.790663 -0.612252 0 + facet normal 0.613628 0.789596 -0 outer loop - vertex -24.8479 -36.7119 0 - vertex -24.7177 -36.5437 -0.2 - vertex -24.7177 -36.5437 0 + vertex 43.6122 -23.5069 -3 + vertex 42.7682 -22.851 0 + vertex 43.6122 -23.5069 0 endloop endfacet - facet normal 0.790663 -0.612252 0 + facet normal 0.613628 0.789596 0 outer loop - vertex -24.7177 -36.5437 -0.2 - vertex -24.8479 -36.7119 0 - vertex -24.8479 -36.7119 -0.2 + vertex 42.7682 -22.851 0 + vertex 43.6122 -23.5069 -3 + vertex 42.7682 -22.851 -3 endloop endfacet - facet normal 0.7253 -0.688433 0 + facet normal -0.589043 0.808102 0 outer loop - vertex -24.7177 -36.5437 0 - vertex -24.57 -36.3881 -0.2 - vertex -24.57 -36.3881 0 + vertex 42.7682 -22.851 -3 + vertex 41.2986 -23.9223 0 + vertex 42.7682 -22.851 0 endloop endfacet - facet normal 0.7253 -0.688433 0 + facet normal -0.589043 0.808102 0 outer loop - vertex -24.57 -36.3881 -0.2 - vertex -24.7177 -36.5437 0 - vertex -24.7177 -36.5437 -0.2 + vertex 41.2986 -23.9223 0 + vertex 42.7682 -22.851 -3 + vertex 41.2986 -23.9223 -3 endloop endfacet - facet normal 0.647808 -0.761803 0 + facet normal -0.701303 0.712864 0 outer loop - vertex -24.57 -36.3881 -0.2 - vertex -24.4077 -36.2501 0 - vertex -24.57 -36.3881 0 + vertex 41.2986 -23.9223 -3 + vertex 40.5923 -24.6171 0 + vertex 41.2986 -23.9223 0 endloop endfacet - facet normal 0.647808 -0.761803 0 + facet normal -0.701303 0.712864 0 outer loop - vertex -24.4077 -36.2501 0 - vertex -24.57 -36.3881 -0.2 - vertex -24.4077 -36.2501 -0.2 + vertex 40.5923 -24.6171 0 + vertex 41.2986 -23.9223 -3 + vertex 40.5923 -24.6171 -3 endloop endfacet - facet normal 0.553033 -0.833159 0 + facet normal -0.831353 0.555744 0 outer loop - vertex -24.4077 -36.2501 -0.2 - vertex -24.2334 -36.1344 0 - vertex -24.4077 -36.2501 0 + vertex 40.0289 -25.46 -3 + vertex 40.5923 -24.6171 0 + vertex 40.5923 -24.6171 -3 endloop endfacet - facet normal 0.553033 -0.833159 0 + facet normal -0.831353 0.555744 0 outer loop - vertex -24.2334 -36.1344 0 - vertex -24.4077 -36.2501 -0.2 - vertex -24.2334 -36.1344 -0.2 + vertex 40.5923 -24.6171 0 + vertex 40.0289 -25.46 -3 + vertex 40.0289 -25.46 0 endloop endfacet - facet normal 0.434505 -0.900669 0 + facet normal -0.918395 0.395664 0 outer loop - vertex -24.2334 -36.1344 -0.2 - vertex -24.0497 -36.0458 0 - vertex -24.2334 -36.1344 0 + vertex 38.2188 -29.6614 -3 + vertex 40.0289 -25.46 0 + vertex 40.0289 -25.46 -3 endloop endfacet - facet normal 0.434505 -0.900669 0 + facet normal -0.918395 0.395664 0 outer loop - vertex -24.0497 -36.0458 0 - vertex -24.2334 -36.1344 -0.2 - vertex -24.0497 -36.0458 -0.2 + vertex 40.0289 -25.46 0 + vertex 38.2188 -29.6614 -3 + vertex 38.2188 -29.6614 0 endloop endfacet - facet normal 0.285417 -0.958403 0 + facet normal -0.932877 0.360196 0 outer loop - vertex -24.0497 -36.0458 -0.2 - vertex -23.8593 -35.9891 0 - vertex -24.0497 -36.0458 0 + vertex 36.8272 -33.2656 -3 + vertex 38.2188 -29.6614 0 + vertex 38.2188 -29.6614 -3 endloop endfacet - facet normal 0.285417 -0.958403 0 + facet normal -0.932877 0.360196 0 outer loop - vertex -23.8593 -35.9891 0 - vertex -24.0497 -36.0458 -0.2 - vertex -23.8593 -35.9891 -0.2 + vertex 38.2188 -29.6614 0 + vertex 36.8272 -33.2656 -3 + vertex 36.8272 -33.2656 0 endloop endfacet - facet normal 0.1022 -0.994764 0 + facet normal -0.959728 0.28093 0 outer loop - vertex -23.8593 -35.9891 -0.2 - vertex -23.665 -35.9691 0 - vertex -23.8593 -35.9891 0 + vertex 36.2918 -35.0946 -3 + vertex 36.8272 -33.2656 0 + vertex 36.8272 -33.2656 -3 endloop endfacet - facet normal 0.1022 -0.994764 0 + facet normal -0.959728 0.28093 0 outer loop - vertex -23.665 -35.9691 0 - vertex -23.8593 -35.9891 -0.2 - vertex -23.665 -35.9691 -0.2 + vertex 36.8272 -33.2656 0 + vertex 36.2918 -35.0946 -3 + vertex 36.2918 -35.0946 0 endloop endfacet - facet normal 0.0676467 -0.997709 0 + facet normal -0.988492 -0.151276 0 outer loop - vertex -23.665 -35.9691 -0.2 - vertex -23.3082 -35.9449 0 - vertex -23.665 -35.9691 0 + vertex 36.3972 -35.7834 -3 + vertex 36.2918 -35.0946 0 + vertex 36.2918 -35.0946 -3 endloop endfacet - facet normal 0.0676467 -0.997709 0 + facet normal -0.988492 -0.151276 0 outer loop - vertex -23.3082 -35.9449 0 - vertex -23.665 -35.9691 -0.2 - vertex -23.3082 -35.9449 -0.2 + vertex 36.2918 -35.0946 0 + vertex 36.3972 -35.7834 -3 + vertex 36.3972 -35.7834 0 endloop endfacet - facet normal 0.201749 -0.979437 0 + facet normal -0.329373 -0.9442 0 outer loop - vertex -23.3082 -35.9449 -0.2 - vertex -23.1471 -35.9117 0 - vertex -23.3082 -35.9449 0 + vertex 36.3972 -35.7834 -3 + vertex 37.1913 -36.0604 0 + vertex 36.3972 -35.7834 0 endloop endfacet - facet normal 0.201749 -0.979437 0 + facet normal -0.329373 -0.9442 -0 outer loop - vertex -23.1471 -35.9117 0 - vertex -23.3082 -35.9449 -0.2 - vertex -23.1471 -35.9117 -0.2 + vertex 37.1913 -36.0604 0 + vertex 36.3972 -35.7834 -3 + vertex 37.1913 -36.0604 -3 endloop endfacet - facet normal 0.311945 -0.9501 0 + facet normal -0.323821 -0.946118 0 outer loop - vertex -23.1471 -35.9117 -0.2 - vertex -22.9953 -35.8619 0 - vertex -23.1471 -35.9117 0 + vertex 37.1913 -36.0604 -3 + vertex 37.9618 -36.3241 0 + vertex 37.1913 -36.0604 0 endloop endfacet - facet normal 0.311945 -0.9501 0 + facet normal -0.323821 -0.946118 -0 outer loop - vertex -22.9953 -35.8619 0 - vertex -23.1471 -35.9117 -0.2 - vertex -22.9953 -35.8619 -0.2 + vertex 37.9618 -36.3241 0 + vertex 37.1913 -36.0604 -3 + vertex 37.9618 -36.3241 -3 endloop endfacet - facet normal 0.428709 -0.903443 0 + facet normal -0.960551 -0.278105 0 outer loop - vertex -22.9953 -35.8619 -0.2 - vertex -22.8511 -35.7934 0 - vertex -22.9953 -35.8619 0 + vertex 38.113 -36.8464 -3 + vertex 37.9618 -36.3241 0 + vertex 37.9618 -36.3241 -3 endloop endfacet - facet normal 0.428709 -0.903443 0 + facet normal -0.960551 -0.278105 0 outer loop - vertex -22.8511 -35.7934 0 - vertex -22.9953 -35.8619 -0.2 - vertex -22.8511 -35.7934 -0.2 + vertex 37.9618 -36.3241 0 + vertex 38.113 -36.8464 -3 + vertex 38.113 -36.8464 0 endloop endfacet - facet normal 0.540869 -0.841107 0 + facet normal -0.986742 0.162295 0 outer loop - vertex -22.8511 -35.7934 -0.2 - vertex -22.7126 -35.7044 0 - vertex -22.8511 -35.7934 0 + vertex 37.9939 -37.5705 -3 + vertex 38.113 -36.8464 0 + vertex 38.113 -36.8464 -3 endloop endfacet - facet normal 0.540869 -0.841107 0 + facet normal -0.986742 0.162295 0 outer loop - vertex -22.7126 -35.7044 0 - vertex -22.8511 -35.7934 -0.2 - vertex -22.7126 -35.7044 -0.2 + vertex 38.113 -36.8464 0 + vertex 37.9939 -37.5705 -3 + vertex 37.9939 -37.5705 0 endloop endfacet - facet normal 0.638801 -0.769372 0 + facet normal -0.539022 0.842292 0 outer loop - vertex -22.7126 -35.7044 -0.2 - vertex -22.5782 -35.5929 0 - vertex -22.7126 -35.7044 0 + vertex 37.9939 -37.5705 -3 + vertex 37.381 -37.9628 0 + vertex 37.9939 -37.5705 0 endloop endfacet - facet normal 0.638801 -0.769372 0 + facet normal -0.539022 0.842292 0 outer loop - vertex -22.5782 -35.5929 0 - vertex -22.7126 -35.7044 -0.2 - vertex -22.5782 -35.5929 -0.2 + vertex 37.381 -37.9628 0 + vertex 37.9939 -37.5705 -3 + vertex 37.381 -37.9628 -3 endloop endfacet - facet normal 0.717693 -0.69636 0 + facet normal -0.10763 0.994191 0 outer loop - vertex -22.5782 -35.5929 0 - vertex -22.4463 -35.4568 -0.2 - vertex -22.4463 -35.4568 0 + vertex 37.381 -37.9628 -3 + vertex 35.8907 -38.1241 0 + vertex 37.381 -37.9628 0 endloop endfacet - facet normal 0.717693 -0.69636 0 + facet normal -0.10763 0.994191 0 outer loop - vertex -22.4463 -35.4568 -0.2 - vertex -22.5782 -35.5929 0 - vertex -22.5782 -35.5929 -0.2 + vertex 35.8907 -38.1241 0 + vertex 37.381 -37.9628 -3 + vertex 35.8907 -38.1241 -3 endloop endfacet - facet normal 0.801318 -0.598238 0 + facet normal -0.0113945 0.999935 0 outer loop - vertex -22.4463 -35.4568 0 - vertex -22.1824 -35.1035 -0.2 - vertex -22.1824 -35.1035 0 + vertex 35.8907 -38.1241 -3 + vertex 33.1396 -38.1555 0 + vertex 35.8907 -38.1241 0 endloop endfacet - facet normal 0.801318 -0.598238 0 + facet normal -0.0113945 0.999935 0 outer loop - vertex -22.1824 -35.1035 -0.2 - vertex -22.4463 -35.4568 0 - vertex -22.4463 -35.4568 -0.2 + vertex 33.1396 -38.1555 0 + vertex 35.8907 -38.1241 -3 + vertex 33.1396 -38.1555 -3 endloop endfacet - facet normal 0.865265 -0.501314 0 + facet normal 0.0181925 0.999835 -0 outer loop - vertex -22.1824 -35.1035 0 - vertex -21.9074 -34.6287 -0.2 - vertex -21.9074 -34.6287 0 + vertex 33.1396 -38.1555 -3 + vertex 29.8074 -38.0948 0 + vertex 33.1396 -38.1555 0 endloop endfacet - facet normal 0.865265 -0.501314 0 + facet normal 0.0181925 0.999835 0 outer loop - vertex -21.9074 -34.6287 -0.2 - vertex -22.1824 -35.1035 0 - vertex -22.1824 -35.1035 -0.2 + vertex 29.8074 -38.0948 0 + vertex 33.1396 -38.1555 -3 + vertex 29.8074 -38.0948 -3 endloop endfacet - facet normal 0.897795 -0.440414 0 + facet normal 0.170719 0.98532 -0 outer loop - vertex -21.9074 -34.6287 0 - vertex -21.6072 -34.0169 -0.2 - vertex -21.6072 -34.0169 0 + vertex 29.8074 -38.0948 -3 + vertex 28.6431 -37.8931 0 + vertex 29.8074 -38.0948 0 endloop endfacet - facet normal 0.897795 -0.440414 0 + facet normal 0.170719 0.98532 0 outer loop - vertex -21.6072 -34.0169 -0.2 - vertex -21.9074 -34.6287 0 - vertex -21.9074 -34.6287 -0.2 + vertex 28.6431 -37.8931 0 + vertex 29.8074 -38.0948 -3 + vertex 28.6431 -37.8931 -3 endloop endfacet - facet normal 0.914162 -0.405349 0 + facet normal 0.913427 0.407002 0 outer loop - vertex -21.6072 -34.0169 0 - vertex -21.2682 -33.2523 -0.2 - vertex -21.2682 -33.2523 0 + vertex 28.6431 -37.8931 0 + vertex 28.4102 -37.3704 -3 + vertex 28.4102 -37.3704 0 endloop endfacet - facet normal 0.914162 -0.405349 0 + facet normal 0.913427 0.407002 0 outer loop - vertex -21.2682 -33.2523 -0.2 - vertex -21.6072 -34.0169 0 - vertex -21.6072 -34.0169 -0.2 + vertex 28.4102 -37.3704 -3 + vertex 28.6431 -37.8931 0 + vertex 28.6431 -37.8931 -3 endloop endfacet - facet normal 0.920953 -0.389675 0 + facet normal 0.965523 -0.260316 0 outer loop - vertex -21.2682 -33.2523 0 - vertex -19.7699 -29.7113 -0.2 - vertex -19.7699 -29.7113 0 + vertex 28.4102 -37.3704 0 + vertex 28.553 -36.8405 -3 + vertex 28.553 -36.8405 0 endloop endfacet - facet normal 0.920953 -0.389675 0 + facet normal 0.965523 -0.260316 0 outer loop - vertex -19.7699 -29.7113 -0.2 - vertex -21.2682 -33.2523 0 - vertex -21.2682 -33.2523 -0.2 + vertex 28.553 -36.8405 -3 + vertex 28.4102 -37.3704 0 + vertex 28.4102 -37.3704 -3 endloop endfacet - facet normal 0.925287 -0.379267 0 + facet normal 0.697974 -0.716123 0 outer loop - vertex -19.7699 -29.7113 0 - vertex -18.5311 -26.6889 -0.2 - vertex -18.5311 -26.6889 0 + vertex 28.553 -36.8405 -3 + vertex 29.0223 -36.3831 0 + vertex 28.553 -36.8405 0 endloop endfacet - facet normal 0.925287 -0.379267 0 + facet normal 0.697974 -0.716123 0 outer loop - vertex -18.5311 -26.6889 -0.2 - vertex -19.7699 -29.7113 0 - vertex -19.7699 -29.7113 -0.2 + vertex 29.0223 -36.3831 0 + vertex 28.553 -36.8405 -3 + vertex 29.0223 -36.3831 -3 endloop endfacet - facet normal 0.931695 -0.363243 0 + facet normal 0.378617 -0.925554 0 outer loop - vertex -18.5311 -26.6889 0 - vertex -17.6656 -24.469 -0.2 - vertex -17.6656 -24.469 0 + vertex 29.0223 -36.3831 -3 + vertex 29.7686 -36.0779 0 + vertex 29.0223 -36.3831 0 endloop endfacet - facet normal 0.931695 -0.363243 0 + facet normal 0.378617 -0.925554 0 outer loop - vertex -17.6656 -24.469 -0.2 - vertex -18.5311 -26.6889 0 - vertex -18.5311 -26.6889 -0.2 + vertex 29.7686 -36.0779 0 + vertex 29.0223 -36.3831 -3 + vertex 29.7686 -36.0779 -3 endloop endfacet - facet normal 0.941797 -0.336183 0 + facet normal 0.28314 -0.959079 0 outer loop - vertex -17.6656 -24.469 0 - vertex -17.4084 -23.7485 -0.2 - vertex -17.4084 -23.7485 0 + vertex 29.7686 -36.0779 -3 + vertex 30.8837 -35.7486 0 + vertex 29.7686 -36.0779 0 endloop endfacet - facet normal 0.941797 -0.336183 0 + facet normal 0.28314 -0.959079 0 outer loop - vertex -17.4084 -23.7485 -0.2 - vertex -17.6656 -24.469 0 - vertex -17.6656 -24.469 -0.2 + vertex 30.8837 -35.7486 0 + vertex 29.7686 -36.0779 -3 + vertex 30.8837 -35.7486 -3 endloop endfacet - facet normal 0.959662 -0.281158 0 + facet normal 0.670445 -0.741959 0 outer loop - vertex -17.4084 -23.7485 0 - vertex -17.2873 -23.335 -0.2 - vertex -17.2873 -23.335 0 + vertex 30.8837 -35.7486 -3 + vertex 31.6707 -35.0376 0 + vertex 30.8837 -35.7486 0 endloop endfacet - facet normal 0.959662 -0.281158 0 + facet normal 0.670445 -0.741959 0 outer loop - vertex -17.2873 -23.335 -0.2 - vertex -17.4084 -23.7485 0 - vertex -17.4084 -23.7485 -0.2 + vertex 31.6707 -35.0376 0 + vertex 30.8837 -35.7486 -3 + vertex 31.6707 -35.0376 -3 endloop endfacet - facet normal 0.987024 -0.160575 0 + facet normal 0.889774 -0.456402 0 outer loop - vertex -17.2873 -23.335 0 - vertex -17.2226 -22.9371 -0.2 - vertex -17.2226 -22.9371 0 + vertex 31.6707 -35.0376 0 + vertex 32.5255 -33.371 -3 + vertex 32.5255 -33.371 0 endloop endfacet - facet normal 0.987024 -0.160575 0 + facet normal 0.889774 -0.456402 0 outer loop - vertex -17.2226 -22.9371 -0.2 - vertex -17.2873 -23.335 0 - vertex -17.2873 -23.335 -0.2 + vertex 32.5255 -33.371 -3 + vertex 31.6707 -35.0376 0 + vertex 31.6707 -35.0376 -3 endloop endfacet - facet normal 0.999826 0.0186517 0 + facet normal 0.924374 -0.381489 0 outer loop - vertex -17.2226 -22.9371 0 - vertex -17.2249 -22.8126 -0.2 - vertex -17.2249 -22.8126 0 + vertex 32.5255 -33.371 0 + vertex 33.8444 -30.1753 -3 + vertex 33.8444 -30.1753 0 endloop endfacet - facet normal 0.999826 0.0186517 0 + facet normal 0.924374 -0.381489 0 outer loop - vertex -17.2249 -22.8126 -0.2 - vertex -17.2226 -22.9371 0 - vertex -17.2226 -22.9371 -0.2 + vertex 33.8444 -30.1753 -3 + vertex 32.5255 -33.371 0 + vertex 32.5255 -33.371 -3 endloop endfacet - facet normal 0.932644 0.360799 0 + facet normal 0.926524 -0.376236 0 outer loop - vertex -17.2249 -22.8126 0 - vertex -17.2578 -22.7276 -0.2 - vertex -17.2578 -22.7276 0 + vertex 33.8444 -30.1753 0 + vertex 35.3305 -26.5156 -3 + vertex 35.3305 -26.5156 0 endloop endfacet - facet normal 0.932644 0.360799 0 + facet normal 0.926524 -0.376236 0 outer loop - vertex -17.2578 -22.7276 -0.2 - vertex -17.2249 -22.8126 0 - vertex -17.2249 -22.8126 -0.2 + vertex 35.3305 -26.5156 -3 + vertex 33.8444 -30.1753 0 + vertex 33.8444 -30.1753 -3 endloop endfacet - facet normal 0.608972 0.793192 -0 + facet normal 0.946541 -0.322585 0 outer loop - vertex -17.2578 -22.7276 -0.2 - vertex -17.3267 -22.6747 0 - vertex -17.2578 -22.7276 0 + vertex 35.3305 -26.5156 0 + vertex 36.2859 -23.7121 -3 + vertex 36.2859 -23.7121 0 endloop endfacet - facet normal 0.608972 0.793192 0 + facet normal 0.946541 -0.322585 0 outer loop - vertex -17.3267 -22.6747 0 - vertex -17.2578 -22.7276 -0.2 - vertex -17.3267 -22.6747 -0.2 + vertex 36.2859 -23.7121 -3 + vertex 35.3305 -26.5156 0 + vertex 35.3305 -26.5156 -3 endloop endfacet - facet normal 0.249366 0.968409 -0 + facet normal 0.99651 -0.0834774 0 outer loop - vertex -17.3267 -22.6747 -0.2 - vertex -17.4374 -22.6462 0 - vertex -17.3267 -22.6747 0 + vertex 36.2859 -23.7121 0 + vertex 36.3422 -23.0402 -3 + vertex 36.3422 -23.0402 0 endloop endfacet - facet normal 0.249366 0.968409 0 + facet normal 0.99651 -0.0834774 0 outer loop - vertex -17.4374 -22.6462 0 - vertex -17.3267 -22.6747 -0.2 - vertex -17.4374 -22.6462 -0.2 + vertex 36.3422 -23.0402 -3 + vertex 36.2859 -23.7121 0 + vertex 36.2859 -23.7121 -3 endloop endfacet - facet normal 0.0372683 0.999305 -0 + facet normal 0.457043 0.889445 -0 outer loop - vertex -17.4374 -22.6462 -0.2 - vertex -17.8061 -22.6324 0 - vertex -17.4374 -22.6462 0 + vertex 36.3422 -23.0402 -3 + vertex 36.104 -22.9178 0 + vertex 36.3422 -23.0402 0 endloop endfacet - facet normal 0.0372683 0.999305 0 + facet normal 0.457043 0.889445 0 outer loop - vertex -17.8061 -22.6324 0 - vertex -17.4374 -22.6462 -0.2 - vertex -17.8061 -22.6324 -0.2 + vertex 36.104 -22.9178 0 + vertex 36.3422 -23.0402 -3 + vertex 36.104 -22.9178 -3 endloop endfacet - facet normal 0.050033 0.998748 -0 + facet normal -0.010303 0.999947 0 outer loop - vertex -17.8061 -22.6324 -0.2 - vertex -18.1091 -22.6172 0 - vertex -17.8061 -22.6324 0 + vertex 36.104 -22.9178 -3 + vertex 35.2001 -22.9271 0 + vertex 36.104 -22.9178 0 endloop endfacet - facet normal 0.050033 0.998748 0 + facet normal -0.010303 0.999947 0 outer loop - vertex -18.1091 -22.6172 0 - vertex -17.8061 -22.6324 -0.2 - vertex -18.1091 -22.6172 -0.2 + vertex 35.2001 -22.9271 0 + vertex 36.104 -22.9178 -3 + vertex 35.2001 -22.9271 -3 endloop endfacet - facet normal 0.187734 0.98222 -0 + facet normal 0.419058 0.907959 -0 outer loop - vertex -18.1091 -22.6172 -0.2 - vertex -18.3541 -22.5704 0 - vertex -18.1091 -22.6172 0 + vertex 35.2001 -22.9271 -3 + vertex 34.7441 -22.7166 0 + vertex 35.2001 -22.9271 0 endloop endfacet - facet normal 0.187734 0.98222 0 + facet normal 0.419058 0.907959 0 outer loop - vertex -18.3541 -22.5704 0 - vertex -18.1091 -22.6172 -0.2 - vertex -18.3541 -22.5704 -0.2 + vertex 34.7441 -22.7166 0 + vertex 35.2001 -22.9271 -3 + vertex 34.7441 -22.7166 -3 endloop endfacet - facet normal 0.392235 0.919865 -0 + facet normal 0.959742 0.280882 0 outer loop - vertex -18.3541 -22.5704 -0.2 - vertex -18.5429 -22.4899 0 - vertex -18.3541 -22.5704 0 + vertex 34.7441 -22.7166 0 + vertex 34.62 -22.2927 -3 + vertex 34.62 -22.2927 0 endloop endfacet - facet normal 0.392235 0.919865 0 + facet normal 0.959742 0.280882 0 outer loop - vertex -18.5429 -22.4899 0 - vertex -18.3541 -22.5704 -0.2 - vertex -18.5429 -22.4899 -0.2 + vertex 34.62 -22.2927 -3 + vertex 34.7441 -22.7166 0 + vertex 34.7441 -22.7166 -3 endloop endfacet - facet normal 0.654816 0.755788 -0 + facet normal 0.94057 -0.3396 0 outer loop - vertex -18.5429 -22.4899 -0.2 - vertex -18.6769 -22.3738 0 - vertex -18.5429 -22.4899 0 + vertex 34.62 -22.2927 0 + vertex 34.9156 -21.474 -3 + vertex 34.9156 -21.474 0 endloop endfacet - facet normal 0.654816 0.755788 0 + facet normal 0.94057 -0.3396 0 outer loop - vertex -18.6769 -22.3738 0 - vertex -18.5429 -22.4899 -0.2 - vertex -18.6769 -22.3738 -0.2 + vertex 34.9156 -21.474 -3 + vertex 34.62 -22.2927 0 + vertex 34.62 -22.2927 -3 endloop endfacet - facet normal 0.885096 0.465409 0 + facet normal 0.664894 -0.746938 0 outer loop - vertex -18.6769 -22.3738 0 - vertex -18.7577 -22.2202 -0.2 - vertex -18.7577 -22.2202 0 + vertex 34.9156 -21.474 -3 + vertex 35.2187 -21.2043 0 + vertex 34.9156 -21.474 0 endloop endfacet - facet normal 0.885096 0.465409 0 + facet normal 0.664894 -0.746938 0 outer loop - vertex -18.7577 -22.2202 -0.2 - vertex -18.6769 -22.3738 0 - vertex -18.6769 -22.3738 -0.2 + vertex 35.2187 -21.2043 0 + vertex 34.9156 -21.474 -3 + vertex 35.2187 -21.2043 -3 endloop endfacet - facet normal 0.988779 0.149383 0 + facet normal 0.282474 -0.959275 0 outer loop - vertex -18.7577 -22.2202 0 - vertex -18.7869 -22.0269 -0.2 - vertex -18.7869 -22.0269 0 + vertex 35.2187 -21.2043 -3 + vertex 35.5661 -21.102 0 + vertex 35.2187 -21.2043 0 endloop endfacet - facet normal 0.988779 0.149383 0 + facet normal 0.282474 -0.959275 0 outer loop - vertex -18.7869 -22.0269 -0.2 - vertex -18.7577 -22.2202 0 - vertex -18.7577 -22.2202 -0.2 + vertex 35.5661 -21.102 0 + vertex 35.2187 -21.2043 -3 + vertex 35.5661 -21.102 -3 endloop endfacet - facet normal 0.99608 -0.0884566 0 + facet normal 0.319916 -0.947446 0 outer loop - vertex -18.7869 -22.0269 0 - vertex -18.766 -21.7922 -0.2 - vertex -18.766 -21.7922 0 + vertex 35.5661 -21.102 -3 + vertex 38.4798 -20.1181 0 + vertex 35.5661 -21.102 0 endloop endfacet - facet normal 0.99608 -0.0884566 0 + facet normal 0.319916 -0.947446 0 outer loop - vertex -18.766 -21.7922 -0.2 - vertex -18.7869 -22.0269 0 - vertex -18.7869 -22.0269 -0.2 + vertex 38.4798 -20.1181 0 + vertex 35.5661 -21.102 -3 + vertex 38.4798 -20.1181 -3 endloop endfacet - facet normal 0.970344 -0.241728 0 + facet normal 0.306814 -0.951769 0 outer loop - vertex -18.766 -21.7922 0 - vertex -18.6967 -21.5139 -0.2 - vertex -18.6967 -21.5139 0 + vertex 38.4798 -20.1181 -3 + vertex 41.5319 -19.1343 0 + vertex 38.4798 -20.1181 0 endloop endfacet - facet normal 0.970344 -0.241728 0 + facet normal 0.306814 -0.951769 0 outer loop - vertex -18.6967 -21.5139 -0.2 - vertex -18.766 -21.7922 0 - vertex -18.766 -21.7922 -0.2 + vertex 41.5319 -19.1343 0 + vertex 38.4798 -20.1181 -3 + vertex 41.5319 -19.1343 -3 endloop endfacet - facet normal 0.92433 -0.381593 0 + facet normal -0.240332 -0.970691 0 outer loop - vertex -18.6967 -21.5139 0 - vertex -18.5788 -21.2283 -0.2 - vertex -18.5788 -21.2283 0 + vertex 41.5319 -19.1343 -3 + vertex 41.8934 -19.2238 0 + vertex 41.5319 -19.1343 0 endloop endfacet - facet normal 0.92433 -0.381593 0 + facet normal -0.240332 -0.970691 -0 outer loop - vertex -18.5788 -21.2283 -0.2 - vertex -18.6967 -21.5139 0 - vertex -18.6967 -21.5139 -0.2 + vertex 41.8934 -19.2238 0 + vertex 41.5319 -19.1343 -3 + vertex 41.8934 -19.2238 -3 endloop endfacet - facet normal 0.848388 -0.529374 0 + facet normal -0.766739 -0.641959 0 outer loop - vertex -18.5788 -21.2283 0 - vertex -18.5053 -21.1105 -0.2 - vertex -18.5053 -21.1105 0 + vertex 42.1032 -19.4743 -3 + vertex 41.8934 -19.2238 0 + vertex 41.8934 -19.2238 -3 endloop endfacet - facet normal 0.848388 -0.529374 0 + facet normal -0.766739 -0.641959 0 outer loop - vertex -18.5053 -21.1105 -0.2 - vertex -18.5788 -21.2283 0 - vertex -18.5788 -21.2283 -0.2 + vertex 41.8934 -19.2238 0 + vertex 42.1032 -19.4743 -3 + vertex 42.1032 -19.4743 0 endloop endfacet - facet normal 0.772185 -0.635398 0 + facet normal -0.995926 0.090175 0 outer loop - vertex -18.5053 -21.1105 0 - vertex -18.4218 -21.0091 -0.2 - vertex -18.4218 -21.0091 0 + vertex 42.0238 -20.3507 -3 + vertex 42.1032 -19.4743 0 + vertex 42.1032 -19.4743 -3 endloop endfacet - facet normal 0.772185 -0.635398 0 + facet normal -0.995926 0.090175 0 outer loop - vertex -18.4218 -21.0091 -0.2 - vertex -18.5053 -21.1105 0 - vertex -18.5053 -21.1105 -0.2 + vertex 42.1032 -19.4743 0 + vertex 42.0238 -20.3507 -3 + vertex 42.0238 -20.3507 0 endloop endfacet - facet normal 0.673134 -0.739521 0 + facet normal -0.949137 0.314864 0 outer loop - vertex -18.4218 -21.0091 -0.2 - vertex -18.3284 -20.924 0 - vertex -18.4218 -21.0091 0 + vertex 41.8981 -20.7296 -3 + vertex 42.0238 -20.3507 0 + vertex 42.0238 -20.3507 -3 endloop endfacet - facet normal 0.673134 -0.739521 0 + facet normal -0.949137 0.314864 0 outer loop - vertex -18.3284 -20.924 0 - vertex -18.4218 -21.0091 -0.2 - vertex -18.3284 -20.924 -0.2 + vertex 42.0238 -20.3507 0 + vertex 41.8981 -20.7296 -3 + vertex 41.8981 -20.7296 0 endloop endfacet - facet normal 0.553635 -0.832759 0 + facet normal -0.846258 -0.532773 0 outer loop - vertex -18.3284 -20.924 -0.2 - vertex -18.2248 -20.8552 0 - vertex -18.3284 -20.924 0 + vertex 41.971 -20.8453 -3 + vertex 41.8981 -20.7296 0 + vertex 41.8981 -20.7296 -3 endloop endfacet - facet normal 0.553635 -0.832759 0 + facet normal -0.846258 -0.532773 0 outer loop - vertex -18.2248 -20.8552 0 - vertex -18.3284 -20.924 -0.2 - vertex -18.2248 -20.8552 -0.2 + vertex 41.8981 -20.7296 0 + vertex 41.971 -20.8453 -3 + vertex 41.971 -20.8453 0 endloop endfacet - facet normal 0.4209 -0.907107 0 + facet normal 0.512131 -0.858907 0 outer loop - vertex -18.2248 -20.8552 -0.2 - vertex -18.1109 -20.8023 0 - vertex -18.2248 -20.8552 0 + vertex 41.971 -20.8453 -3 + vertex 42.943 -20.2657 0 + vertex 41.971 -20.8453 0 endloop endfacet - facet normal 0.4209 -0.907107 0 + facet normal 0.512131 -0.858907 0 outer loop - vertex -18.1109 -20.8023 0 - vertex -18.2248 -20.8552 -0.2 - vertex -18.1109 -20.8023 -0.2 + vertex 42.943 -20.2657 0 + vertex 41.971 -20.8453 -3 + vertex 42.943 -20.2657 -3 endloop endfacet - facet normal 0.284987 -0.958531 0 + facet normal 0.474768 -0.880111 0 outer loop - vertex -18.1109 -20.8023 -0.2 - vertex -17.9865 -20.7653 0 - vertex -18.1109 -20.8023 0 + vertex 42.943 -20.2657 -3 + vertex 44.5909 -19.3768 0 + vertex 42.943 -20.2657 0 endloop endfacet - facet normal 0.284987 -0.958531 0 + facet normal 0.474768 -0.880111 0 outer loop - vertex -17.9865 -20.7653 0 - vertex -18.1109 -20.8023 -0.2 - vertex -17.9865 -20.7653 -0.2 + vertex 44.5909 -19.3768 0 + vertex 42.943 -20.2657 -3 + vertex 44.5909 -19.3768 -3 endloop endfacet - facet normal 0.279088 -0.960266 0 + facet normal 0.143592 -0.989637 0 outer loop - vertex -17.9865 -20.7653 -0.2 - vertex -16.9393 -20.461 0 - vertex -17.9865 -20.7653 0 + vertex 44.5909 -19.3768 -3 + vertex 46.2623 -19.1343 0 + vertex 44.5909 -19.3768 0 endloop endfacet - facet normal 0.279088 -0.960266 0 + facet normal 0.143592 -0.989637 0 outer loop - vertex -16.9393 -20.461 0 - vertex -17.9865 -20.7653 -0.2 - vertex -16.9393 -20.461 -0.2 + vertex 46.2623 -19.1343 0 + vertex 44.5909 -19.3768 -3 + vertex 46.2623 -19.1343 -3 endloop endfacet - facet normal 0.302435 -0.95317 0 + facet normal -0.096262 -0.995356 0 outer loop - vertex -16.9393 -20.461 -0.2 - vertex -15.1436 -19.8912 0 - vertex -16.9393 -20.461 0 + vertex 46.2623 -19.1343 -3 + vertex 47.2139 -19.2263 0 + vertex 46.2623 -19.1343 0 endloop endfacet - facet normal 0.302435 -0.95317 0 + facet normal -0.096262 -0.995356 -0 outer loop - vertex -15.1436 -19.8912 0 - vertex -16.9393 -20.461 -0.2 - vertex -15.1436 -19.8912 -0.2 + vertex 47.2139 -19.2263 0 + vertex 46.2623 -19.1343 -3 + vertex 47.2139 -19.2263 -3 endloop endfacet - facet normal 0.297661 -0.954672 0 + facet normal -0.989139 0.146981 0 outer loop - vertex -15.1436 -19.8912 -0.2 - vertex -14.1989 -19.5967 0 - vertex -15.1436 -19.8912 0 + vertex 5.19939 38.083 -3 + vertex 5.25321 38.4452 0 + vertex 5.25321 38.4452 -3 endloop endfacet - facet normal 0.297661 -0.954672 0 + facet normal -0.989139 0.146981 0 outer loop - vertex -14.1989 -19.5967 0 - vertex -15.1436 -19.8912 -0.2 - vertex -14.1989 -19.5967 -0.2 + vertex 5.25321 38.4452 0 + vertex 5.19939 38.083 -3 + vertex 5.19939 38.083 0 endloop endfacet - facet normal 0.272658 -0.962111 0 + facet normal -0.909259 0.41623 0 outer loop - vertex -14.1989 -19.5967 -0.2 - vertex -13.3483 -19.3556 0 - vertex -14.1989 -19.5967 0 + vertex 4.72188 37.0399 -3 + vertex 5.19939 38.083 0 + vertex 5.19939 38.083 -3 endloop endfacet - facet normal 0.272658 -0.962111 0 + facet normal -0.909259 0.41623 0 outer loop - vertex -13.3483 -19.3556 0 - vertex -14.1989 -19.5967 -0.2 - vertex -13.3483 -19.3556 -0.2 + vertex 5.19939 38.083 0 + vertex 4.72188 37.0399 -3 + vertex 4.72188 37.0399 0 endloop endfacet - facet normal 0.238231 -0.971209 0 + facet normal -0.923768 0.382952 0 outer loop - vertex -13.3483 -19.3556 -0.2 - vertex -12.6849 -19.1929 0 - vertex -13.3483 -19.3556 0 + vertex 4.30515 36.0346 -3 + vertex 4.72188 37.0399 0 + vertex 4.72188 37.0399 -3 endloop endfacet - facet normal 0.238231 -0.971209 0 + facet normal -0.923768 0.382952 0 outer loop - vertex -12.6849 -19.1929 0 - vertex -13.3483 -19.3556 -0.2 - vertex -12.6849 -19.1929 -0.2 + vertex 4.72188 37.0399 0 + vertex 4.30515 36.0346 -3 + vertex 4.30515 36.0346 0 endloop endfacet - facet normal 0.153595 -0.988134 0 + facet normal -0.970112 0.242658 0 outer loop - vertex -12.6849 -19.1929 -0.2 - vertex -12.302 -19.1333 0 - vertex -12.6849 -19.1929 0 + vertex 3.93589 34.5584 -3 + vertex 4.30515 36.0346 0 + vertex 4.30515 36.0346 -3 endloop endfacet - facet normal 0.153595 -0.988134 0 + facet normal -0.970112 0.242658 0 outer loop - vertex -12.302 -19.1333 0 - vertex -12.6849 -19.1929 -0.2 - vertex -12.302 -19.1333 -0.2 + vertex 4.30515 36.0346 0 + vertex 3.93589 34.5584 -3 + vertex 3.93589 34.5584 0 endloop endfacet - facet normal -0.105808 -0.994387 0 + facet normal -0.993642 0.112587 0 outer loop - vertex -12.302 -19.1333 -0.2 - vertex -12.0792 -19.1571 0 - vertex -12.302 -19.1333 0 + vertex 3.57109 31.3388 -3 + vertex 3.93589 34.5584 0 + vertex 3.93589 34.5584 -3 endloop endfacet - facet normal -0.105808 -0.994387 -0 + facet normal -0.993642 0.112587 0 outer loop - vertex -12.0792 -19.1571 0 - vertex -12.302 -19.1333 -0.2 - vertex -12.0792 -19.1571 -0.2 + vertex 3.93589 34.5584 0 + vertex 3.57109 31.3388 -3 + vertex 3.57109 31.3388 0 endloop endfacet - facet normal -0 0 1 + facet normal -0.99786 -0.0653884 0 outer loop - vertex 35.6833 -25.6471 -0.2 - vertex 39.342 -26.9688 -0.2 - vertex 35.957 -24.8864 -0.2 + vertex 3.67763 29.7129 -3 + vertex 3.57109 31.3388 0 + vertex 3.57109 31.3388 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0.99786 -0.0653884 0 outer loop - vertex 35.3422 -26.5156 -0.2 - vertex 39.342 -26.9688 -0.2 - vertex 35.6833 -25.6471 -0.2 + vertex 3.57109 31.3388 0 + vertex 3.67763 29.7129 -3 + vertex 3.67763 29.7129 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.893644 -0.448776 0 outer loop - vertex 39.342 -26.9688 -0.2 - vertex 35.3422 -26.5156 -0.2 - vertex 38.2305 -29.6614 -0.2 + vertex 4.3138 28.4461 -3 + vertex 3.67763 29.7129 0 + vertex 3.67763 29.7129 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.893644 -0.448776 0 outer loop - vertex 33.8561 -30.1753 -0.2 - vertex 38.2305 -29.6614 -0.2 - vertex 35.3422 -26.5156 -0.2 + vertex 3.67763 29.7129 0 + vertex 4.3138 28.4461 -3 + vertex 4.3138 28.4461 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.787428 -0.616407 0 outer loop - vertex 38.2305 -29.6614 -0.2 - vertex 33.8561 -30.1753 -0.2 - vertex 37.444 -31.6395 -0.2 + vertex 5.72413 26.6445 -3 + vertex 4.3138 28.4461 0 + vertex 4.3138 28.4461 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.787428 -0.616407 0 outer loop - vertex 41.3957 -19.1543 -0.2 - vertex 42.162 -19.859 -0.2 - vertex 42.1595 -19.6516 -0.2 + vertex 4.3138 28.4461 0 + vertex 5.72413 26.6445 -3 + vertex 5.72413 26.6445 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.565537 -0.824723 0 outer loop - vertex 41.7426 -19.1572 -0.2 - vertex 42.1595 -19.6516 -0.2 - vertex 42.1149 -19.4743 -0.2 + vertex 5.72413 26.6445 -3 + vertex 6.4022 26.1795 0 + vertex 5.72413 26.6445 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.565537 -0.824723 -0 outer loop - vertex 42.162 -19.859 -0.2 - vertex 41.3957 -19.1543 -0.2 - vertex 42.1212 -20.0931 -0.2 + vertex 6.4022 26.1795 0 + vertex 5.72413 26.6445 -3 + vertex 6.4022 26.1795 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.296038 -0.955176 0 outer loop - vertex 41.7426 -19.1572 -0.2 - vertex 42.1149 -19.4743 -0.2 - vertex 42.0297 -19.3306 -0.2 + vertex 6.4022 26.1795 -3 + vertex 7.11433 25.9588 0 + vertex 6.4022 26.1795 0 endloop endfacet - facet normal -0 0 1 + facet normal -0.296038 -0.955176 -0 outer loop - vertex 41.156 -19.2119 -0.2 - vertex 42.1212 -20.0931 -0.2 - vertex 41.3957 -19.1543 -0.2 + vertex 7.11433 25.9588 0 + vertex 6.4022 26.1795 -3 + vertex 7.11433 25.9588 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.249452 -0.968387 0 outer loop - vertex 42.1212 -20.0931 -0.2 - vertex 41.156 -19.2119 -0.2 - vertex 42.0356 -20.3507 -0.2 + vertex 7.11433 25.9588 -3 + vertex 7.91411 25.7528 0 + vertex 7.11433 25.9588 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.249452 -0.968387 -0 outer loop - vertex 41.7426 -19.1572 -0.2 - vertex 42.0297 -19.3306 -0.2 - vertex 41.9051 -19.2238 -0.2 + vertex 7.91411 25.7528 0 + vertex 7.11433 25.9588 -3 + vertex 7.91411 25.7528 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.590139 -0.807301 0 outer loop - vertex 47.9233 -19.8512 -0.2 - vertex 47.9993 -20.1225 -0.2 - vertex 47.9745 -19.9807 -0.2 + vertex 7.91411 25.7528 -3 + vertex 8.51885 25.3107 0 + vertex 7.91411 25.7528 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.590139 -0.807301 -0 outer loop - vertex 47.9993 -20.1225 -0.2 - vertex 47.9233 -19.8512 -0.2 - vertex 47.9987 -20.2887 -0.2 + vertex 8.51885 25.3107 0 + vertex 7.91411 25.7528 -3 + vertex 8.51885 25.3107 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.834337 -0.551255 0 outer loop - vertex 47.845 -19.7221 -0.2 - vertex 47.9987 -20.2887 -0.2 - vertex 47.9233 -19.8512 -0.2 + vertex 9.07032 24.476 -3 + vertex 8.51885 25.3107 0 + vertex 8.51885 25.3107 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.834337 -0.551255 0 outer loop - vertex 47.9987 -20.2887 -0.2 - vertex 47.845 -19.7221 -0.2 - vertex 47.9737 -20.4912 -0.2 + vertex 8.51885 25.3107 0 + vertex 9.07032 24.476 -3 + vertex 9.07032 24.476 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.907633 -0.419764 0 outer loop - vertex 47.7384 -19.5813 -0.2 - vertex 47.9737 -20.4912 -0.2 - vertex 47.845 -19.7221 -0.2 + vertex 9.71033 23.0922 -3 + vertex 9.07032 24.476 0 + vertex 9.07032 24.476 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.907633 -0.419764 0 outer loop - vertex 47.044 -19.1833 -0.2 - vertex 47.9737 -20.4912 -0.2 - vertex 47.7384 -19.5813 -0.2 + vertex 9.07032 24.476 0 + vertex 9.71033 23.0922 -3 + vertex 9.71033 23.0922 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.895482 -0.445097 0 outer loop - vertex 46.8289 -19.1548 -0.2 - vertex 47.9737 -20.4912 -0.2 - vertex 47.044 -19.1833 -0.2 + vertex 10.9729 20.5521 -3 + vertex 9.71033 23.0922 0 + vertex 9.71033 23.0922 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.895482 -0.445097 0 outer loop - vertex 47.2257 -19.2263 -0.2 - vertex 47.7384 -19.5813 -0.2 - vertex 47.6302 -19.4614 -0.2 + vertex 9.71033 23.0922 0 + vertex 10.9729 20.5521 -3 + vertex 10.9729 20.5521 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.741992 -0.670408 0 outer loop - vertex 46.274 -19.1343 -0.2 - vertex 47.8542 -21.0531 -0.2 - vertex 46.8289 -19.1548 -0.2 + vertex 12.6982 18.6425 -3 + vertex 10.9729 20.5521 0 + vertex 10.9729 20.5521 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.741992 -0.670408 0 outer loop - vertex 47.2257 -19.2263 -0.2 - vertex 47.6302 -19.4614 -0.2 - vertex 47.5127 -19.3635 -0.2 + vertex 10.9729 20.5521 0 + vertex 12.6982 18.6425 -3 + vertex 12.6982 18.6425 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.66692 -0.745129 0 outer loop - vertex 47.2257 -19.2263 -0.2 - vertex 47.5127 -19.3635 -0.2 - vertex 47.3799 -19.2858 -0.2 + vertex 12.6982 18.6425 -3 + vertex 13.99 17.4864 0 + vertex 12.6982 18.6425 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.66692 -0.745129 -0 outer loop - vertex 47.9737 -20.4912 -0.2 - vertex 46.8289 -19.1548 -0.2 - vertex 47.8542 -21.0531 -0.2 + vertex 13.99 17.4864 0 + vertex 12.6982 18.6425 -3 + vertex 13.99 17.4864 -3 endloop endfacet - facet normal 0 0 1 + facet normal -0.579406 -0.815039 0 outer loop - vertex 47.7384 -19.5813 -0.2 - vertex 47.2257 -19.2263 -0.2 - vertex 47.044 -19.1833 -0.2 + vertex 13.99 17.4864 -3 + vertex 15.2045 16.623 0 + vertex 13.99 17.4864 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.579406 -0.815039 -0 outer loop - vertex 47.8542 -21.0531 -0.2 - vertex 46.274 -19.1343 -0.2 - vertex 47.7155 -21.5429 -0.2 + vertex 15.2045 16.623 0 + vertex 13.99 17.4864 -3 + vertex 15.2045 16.623 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0.462357 -0.886694 0 outer loop - vertex 45.8151 -19.1475 -0.2 - vertex 47.7155 -21.5429 -0.2 - vertex 46.274 -19.1343 -0.2 + vertex 15.2045 16.623 -3 + vertex 16.5954 15.8977 0 + vertex 15.2045 16.623 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.462357 -0.886694 -0 outer loop - vertex 47.7155 -21.5429 -0.2 - vertex 45.8151 -19.1475 -0.2 - vertex 47.5422 -21.9981 -0.2 + vertex 16.5954 15.8977 0 + vertex 15.2045 16.623 -3 + vertex 16.5954 15.8977 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0.377272 -0.926103 0 outer loop - vertex 45.391 -19.1898 -0.2 - vertex 47.5422 -21.9981 -0.2 - vertex 45.8151 -19.1475 -0.2 + vertex 16.5954 15.8977 -3 + vertex 18.4164 15.1559 0 + vertex 16.5954 15.8977 0 endloop endfacet - facet normal 0 0 1 + facet normal -0.377272 -0.926103 -0 outer loop - vertex 47.5422 -21.9981 -0.2 - vertex 45.391 -19.1898 -0.2 - vertex 47.3383 -22.4165 -0.2 + vertex 18.4164 15.1559 0 + vertex 16.5954 15.8977 -3 + vertex 18.4164 15.1559 -3 endloop endfacet - facet normal -0 0 1 + facet normal -0.305414 -0.95222 0 outer loop - vertex 44.9905 -19.265 -0.2 - vertex 47.3383 -22.4165 -0.2 - vertex 45.391 -19.1898 -0.2 + vertex 18.4164 15.1559 -3 + vertex 20.0668 14.6265 0 + vertex 18.4164 15.1559 0 endloop endfacet - facet normal -0 0 1 + facet normal -0.305414 -0.95222 -0 outer loop - vertex 44.6026 -19.3768 -0.2 - vertex 47.3383 -22.4165 -0.2 - vertex 44.9905 -19.265 -0.2 + vertex 20.0668 14.6265 0 + vertex 18.4164 15.1559 -3 + vertex 20.0668 14.6265 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.198377 -0.980126 0 outer loop - vertex 47.3383 -22.4165 -0.2 - vertex 44.6026 -19.3768 -0.2 - vertex 47.1074 -22.796 -0.2 + vertex 20.0668 14.6265 -3 + vertex 21.1653 14.8489 0 + vertex 20.0668 14.6265 0 endloop endfacet - facet normal -0 0 1 + facet normal 0.198377 -0.980126 0 outer loop - vertex 44.2162 -19.5289 -0.2 - vertex 47.1074 -22.796 -0.2 - vertex 44.6026 -19.3768 -0.2 + vertex 21.1653 14.8489 0 + vertex 20.0668 14.6265 -3 + vertex 21.1653 14.8489 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.403705 -0.914889 0 outer loop - vertex 47.1074 -22.796 -0.2 - vertex 44.2162 -19.5289 -0.2 - vertex 46.8534 -23.1343 -0.2 + vertex 21.1653 14.8489 -3 + vertex 23.3802 15.8262 0 + vertex 21.1653 14.8489 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.403705 -0.914889 0 outer loop - vertex 43.3873 -23.2523 -0.2 - vertex 46.8534 -23.1343 -0.2 - vertex 44.2162 -19.5289 -0.2 + vertex 23.3802 15.8262 0 + vertex 21.1653 14.8489 -3 + vertex 23.3802 15.8262 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.513821 -0.857898 0 outer loop - vertex 46.8534 -23.1343 -0.2 - vertex 43.3873 -23.2523 -0.2 - vertex 46.5801 -23.4293 -0.2 + vertex 23.3802 15.8262 -3 + vertex 24.7931 16.6725 0 + vertex 23.3802 15.8262 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.513821 -0.857898 0 outer loop - vertex 46.5801 -23.4293 -0.2 - vertex 43.3873 -23.2523 -0.2 - vertex 46.2914 -23.6786 -0.2 + vertex 24.7931 16.6725 0 + vertex 23.3802 15.8262 -3 + vertex 24.7931 16.6725 -3 endloop endfacet - facet normal -0 -0 1 + facet normal 0.988574 0.150735 0 outer loop - vertex 43.6239 -23.5069 -0.2 - vertex 46.2914 -23.6786 -0.2 - vertex 43.3873 -23.2523 -0.2 + vertex 24.7931 16.6725 0 + vertex 24.7174 17.1695 -3 + vertex 24.7174 17.1695 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.988574 0.150735 0 outer loop - vertex 46.2914 -23.6786 -0.2 - vertex 43.6239 -23.5069 -0.2 - vertex 45.9909 -23.8802 -0.2 + vertex 24.7174 17.1695 -3 + vertex 24.7931 16.6725 0 + vertex 24.7931 16.6725 -3 endloop endfacet - facet normal -0 -0 1 + facet normal 0.409608 0.912261 -0 outer loop - vertex 43.8807 -23.7673 -0.2 - vertex 45.3703 -24.1311 -0.2 - vertex 43.6239 -23.5069 -0.2 + vertex 24.7174 17.1695 -3 + vertex 24.1542 17.4223 0 + vertex 24.7174 17.1695 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.409608 0.912261 0 outer loop - vertex 45.3703 -24.1311 -0.2 - vertex 43.8807 -23.7673 -0.2 - vertex 45.0576 -24.176 -0.2 + vertex 24.1542 17.4223 0 + vertex 24.7174 17.1695 -3 + vertex 24.1542 17.4223 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.049214 0.998788 -0 outer loop - vertex 45.9909 -23.8802 -0.2 - vertex 43.6239 -23.5069 -0.2 - vertex 45.6826 -24.0317 -0.2 + vertex 24.1542 17.4223 -3 + vertex 22.547 17.5015 0 + vertex 24.1542 17.4223 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.049214 0.998788 0 outer loop - vertex 45.0576 -24.176 -0.2 - vertex 43.8807 -23.7673 -0.2 - vertex 44.7485 -24.1643 -0.2 + vertex 22.547 17.5015 0 + vertex 24.1542 17.4223 -3 + vertex 22.547 17.5015 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.0234404 0.999725 -0 outer loop - vertex 44.7485 -24.1643 -0.2 - vertex 43.8807 -23.7673 -0.2 - vertex 44.4468 -24.0937 -0.2 + vertex 22.547 17.5015 -3 + vertex 20.2159 17.5562 0 + vertex 22.547 17.5015 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.0234404 0.999725 0 outer loop - vertex 43.3873 -23.2523 -0.2 - vertex 44.2162 -19.5289 -0.2 - vertex 43.8201 -19.7253 -0.2 + vertex 20.2159 17.5562 0 + vertex 22.547 17.5015 -3 + vertex 20.2159 17.5562 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.471751 0.881732 -0 outer loop - vertex 44.4468 -24.0937 -0.2 - vertex 43.8807 -23.7673 -0.2 - vertex 44.1563 -23.9621 -0.2 + vertex 20.2159 17.5562 -3 + vertex 19.8437 17.7553 0 + vertex 20.2159 17.5562 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.471751 0.881732 0 outer loop - vertex 43.3873 -23.2523 -0.2 - vertex 43.8201 -19.7253 -0.2 - vertex 43.4033 -19.9696 -0.2 + vertex 19.8437 17.7553 0 + vertex 20.2159 17.5562 -3 + vertex 19.8437 17.7553 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.853692 0.520778 0 outer loop - vertex 45.6826 -24.0317 -0.2 - vertex 43.6239 -23.5069 -0.2 - vertex 45.3703 -24.1311 -0.2 + vertex 19.8437 17.7553 0 + vertex 19.5351 18.2611 -3 + vertex 19.5351 18.2611 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.853692 0.520778 0 outer loop - vertex 43.4033 -19.9696 -0.2 - vertex 43.1493 -23.0437 -0.2 - vertex 43.3873 -23.2523 -0.2 + vertex 19.5351 18.2611 -3 + vertex 19.8437 17.7553 0 + vertex 19.8437 17.7553 -3 endloop endfacet - facet normal -0 0 1 + facet normal 0.975799 0.21867 0 outer loop - vertex 42.9547 -20.2657 -0.2 - vertex 43.1493 -23.0437 -0.2 - vertex 43.4033 -19.9696 -0.2 + vertex 19.5351 18.2611 0 + vertex 19.0948 20.2262 -3 + vertex 19.0948 20.2262 0 endloop endfacet - facet normal 0 0 1 + facet normal 0.975799 0.21867 0 outer loop - vertex 42.9547 -20.2657 -0.2 - vertex 42.9376 -22.9028 -0.2 - vertex 43.1493 -23.0437 -0.2 + vertex 19.0948 20.2262 -3 + vertex 19.5351 18.2611 0 + vertex 19.5351 18.2611 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.973279 0.229626 0 outer loop - vertex 42.9547 -20.2657 -0.2 - vertex 42.8503 -22.8644 -0.2 - vertex 42.9376 -22.9028 -0.2 + vertex 19.0948 20.2262 0 + vertex 18.6529 22.0992 -3 + vertex 18.6529 22.0992 0 endloop endfacet - facet normal -0 0 1 + facet normal 0.973279 0.229626 0 outer loop - vertex 42.3117 -20.6924 -0.2 - vertex 42.8503 -22.8644 -0.2 - vertex 42.9547 -20.2657 -0.2 + vertex 18.6529 22.0992 -3 + vertex 19.0948 20.2262 0 + vertex 19.0948 20.2262 -3 endloop endfacet - facet normal 0 0 1 + facet normal 0.439505 0.89824 -0 outer loop - vertex 42.8503 -22.8644 -0.2 - vertex 42.3117 -20.6924 -0.2 - vertex 42.7799 -22.851 -0.2 + vertex 18.6529 22.0992 -3 + vertex 17.155 22.8321 0 + vertex 18.6529 22.0992 0 endloop endfacet - facet normal -0 0 1 + facet normal 0.439505 0.89824 0 outer loop - vertex 42.1116 -20.8028 -0.2 - vertex 42.7799 -22.851 -0.2 - vertex 42.3117 -20.6924 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.7799 -22.851 -0.2 - vertex 42.1116 -20.8028 -0.2 - vertex 42.6968 -22.8729 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 41.9827 -20.8453 -0.2 - vertex 42.6968 -22.8729 -0.2 - vertex 42.1116 -20.8028 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.6968 -22.8729 -0.2 - vertex 41.9827 -20.8453 -0.2 - vertex 42.5728 -22.9356 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.9427 -20.8413 -0.2 - vertex 42.5728 -22.9356 -0.2 - vertex 41.9827 -20.8453 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.5728 -22.9356 -0.2 - vertex 41.9427 -20.8413 -0.2 - vertex 42.2267 -23.1657 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.7898 -23.5063 -0.2 - vertex 41.9427 -20.8413 -0.2 - vertex 41.9179 -20.8207 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.9427 -20.8413 -0.2 - vertex 41.7898 -23.5063 -0.2 - vertex 42.2267 -23.1657 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 39.5298 -19.7361 -0.2 - vertex 41.9179 -20.8207 -0.2 - vertex 41.9099 -20.7296 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.0356 -20.3507 -0.2 - vertex 41.156 -19.2119 -0.2 - vertex 41.9515 -20.5727 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.1595 -19.6516 -0.2 - vertex 41.7426 -19.1572 -0.2 - vertex 41.5436 -19.1343 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.1595 -19.6516 -0.2 - vertex 41.5436 -19.1343 -0.2 - vertex 41.3957 -19.1543 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 40.4513 -19.4233 -0.2 - vertex 41.9515 -20.5727 -0.2 - vertex 41.156 -19.2119 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.9515 -20.5727 -0.2 - vertex 40.4513 -19.4233 -0.2 - vertex 41.9099 -20.7296 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 39.5298 -19.7361 -0.2 - vertex 41.9099 -20.7296 -0.2 - vertex 40.4513 -19.4233 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.9179 -20.8207 -0.2 - vertex 39.5298 -19.7361 -0.2 - vertex 41.3103 -23.9223 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.9179 -20.8207 -0.2 - vertex 41.3103 -23.9223 -0.2 - vertex 41.7898 -23.5063 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 38.4916 -20.1181 -0.2 - vertex 41.3103 -23.9223 -0.2 - vertex 39.5298 -19.7361 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.3103 -23.9223 -0.2 - vertex 38.4916 -20.1181 -0.2 - vertex 40.922 -24.2835 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 40.922 -24.2835 -0.2 - vertex 38.4916 -20.1181 -0.2 - vertex 40.604 -24.6171 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.3539 -23.0402 -0.2 - vertex 40.604 -24.6171 -0.2 - vertex 38.4916 -20.1181 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 36.3671 -23.1585 -0.2 - vertex 40.604 -24.6171 -0.2 - vertex 36.3539 -23.0402 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 40.604 -24.6171 -0.2 - vertex 36.362 -23.3104 -0.2 - vertex 40.3218 -24.9877 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.2977 -23.7121 -0.2 - vertex 40.3218 -24.9877 -0.2 - vertex 36.362 -23.3104 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 40.3218 -24.9877 -0.2 - vertex 36.2977 -23.7121 -0.2 - vertex 40.0406 -25.46 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3539 -23.0402 -0.2 - vertex 38.4916 -20.1181 -0.2 - vertex 37.4642 -20.5001 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.1622 -24.2394 -0.2 - vertex 40.0406 -25.46 -0.2 - vertex 36.2977 -23.7121 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 40.0406 -25.46 -0.2 - vertex 36.1622 -24.2394 -0.2 - vertex 39.7256 -26.0988 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3224 -22.9562 -0.2 - vertex 37.4642 -20.5001 -0.2 - vertex 36.5724 -20.813 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 35.957 -24.8864 -0.2 - vertex 39.7256 -26.0988 -0.2 - vertex 36.1622 -24.2394 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 39.7256 -26.0988 -0.2 - vertex 35.957 -24.8864 -0.2 - vertex 39.342 -26.9688 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.362 -23.3104 -0.2 - vertex 40.604 -24.6171 -0.2 - vertex 36.3671 -23.1585 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.4642 -20.5001 -0.2 - vertex 36.3224 -22.9562 -0.2 - vertex 36.3539 -23.0402 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.5724 -20.813 -0.2 - vertex 36.2723 -22.9073 -0.2 - vertex 36.3224 -22.9562 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 35.9118 -21.0243 -0.2 - vertex 36.2723 -22.9073 -0.2 - vertex 36.5724 -20.813 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.2723 -22.9073 -0.2 - vertex 35.9118 -21.0243 -0.2 - vertex 36.2034 -22.8943 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 35.5778 -21.102 -0.2 - vertex 36.2034 -22.8943 -0.2 - vertex 35.9118 -21.0243 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.2034 -22.8943 -0.2 - vertex 35.5778 -21.102 -0.2 - vertex 36.1157 -22.9178 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.1157 -22.9178 -0.2 - vertex 35.5778 -21.102 -0.2 - vertex 35.9442 -22.9618 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.9442 -22.9618 -0.2 - vertex 35.5778 -21.102 -0.2 - vertex 35.7166 -22.9783 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 35.0706 -21.3217 -0.2 - vertex 35.7166 -22.9783 -0.2 - vertex 35.5778 -21.102 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.2304 -21.2043 -0.2 - vertex 35.5778 -21.102 -0.2 - vertex 35.4013 -21.1287 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.5778 -21.102 -0.2 - vertex 35.2304 -21.2043 -0.2 - vertex 35.0706 -21.3217 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 34.9274 -21.474 -0.2 - vertex 35.7166 -22.9783 -0.2 - vertex 35.0706 -21.3217 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.7166 -22.9783 -0.2 - vertex 34.9274 -21.474 -0.2 - vertex 35.4626 -22.9668 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 34.8063 -21.6543 -0.2 - vertex 35.4626 -22.9668 -0.2 - vertex 34.9274 -21.474 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 34.713 -21.8554 -0.2 - vertex 35.4626 -22.9668 -0.2 - vertex 34.8063 -21.6543 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.4626 -22.9668 -0.2 - vertex 34.713 -21.8554 -0.2 - vertex 35.2118 -22.9271 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 34.653 -22.0706 -0.2 - vertex 35.2118 -22.9271 -0.2 - vertex 34.713 -21.8554 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 34.6318 -22.2927 -0.2 - vertex 35.2118 -22.9271 -0.2 - vertex 34.653 -22.0706 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.2118 -22.9271 -0.2 - vertex 34.6318 -22.2927 -0.2 - vertex 34.9345 -22.8399 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 34.6385 -22.4262 -0.2 - vertex 34.9345 -22.8399 -0.2 - vertex 34.6318 -22.2927 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 34.6602 -22.54 -0.2 - vertex 34.9345 -22.8399 -0.2 - vertex 34.6385 -22.4262 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.9345 -22.8399 -0.2 - vertex 34.6602 -22.54 -0.2 - vertex 34.8338 -22.7839 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.8338 -22.7839 -0.2 - vertex 34.6602 -22.54 -0.2 - vertex 34.7558 -22.7166 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.7558 -22.7166 -0.2 - vertex 34.6602 -22.54 -0.2 - vertex 34.6986 -22.636 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.6954 -36.1853 -0.2 - vertex 38.1248 -36.8464 -0.2 - vertex 38.119 -36.6694 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.8576 -36.2498 -0.2 - vertex 38.119 -36.6694 -0.2 - vertex 38.0969 -36.5276 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.203 -36.0604 -0.2 - vertex 38.1248 -36.8464 -0.2 - vertex 37.6954 -36.1853 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.9736 -36.3241 -0.2 - vertex 38.0969 -36.5276 -0.2 - vertex 38.0509 -36.4146 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.1248 -36.8464 -0.2 - vertex 37.203 -36.0604 -0.2 - vertex 38.103 -37.2562 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.0969 -36.5276 -0.2 - vertex 37.9736 -36.3241 -0.2 - vertex 37.8576 -36.2498 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.119 -36.6694 -0.2 - vertex 37.8576 -36.2498 -0.2 - vertex 37.6954 -36.1853 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 37.3927 -37.9628 -0.2 - vertex 38.103 -37.2562 -0.2 - vertex 37.203 -36.0604 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 37.7849 -37.8018 -0.2 - vertex 38.0668 -37.4245 -0.2 - vertex 37.6132 -37.8903 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.0668 -37.4245 -0.2 - vertex 37.7849 -37.8018 -0.2 - vertex 38.0057 -37.5705 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.0057 -37.5705 -0.2 - vertex 37.7849 -37.8018 -0.2 - vertex 37.9137 -37.6957 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 37.6132 -37.8903 -0.2 - vertex 38.103 -37.2562 -0.2 - vertex 37.3927 -37.9628 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.103 -37.2562 -0.2 - vertex 37.6132 -37.8903 -0.2 - vertex 38.0668 -37.4245 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.203 -36.0604 -0.2 - vertex 37.1174 -38.0208 -0.2 - vertex 37.3927 -37.9628 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.203 -36.0604 -0.2 - vertex 36.7812 -38.066 -0.2 - vertex 37.1174 -38.0208 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.6812 -35.9318 -0.2 - vertex 36.7812 -38.066 -0.2 - vertex 37.203 -36.0604 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.9024 -38.1241 -0.2 - vertex 36.6812 -35.9318 -0.2 - vertex 36.5187 -35.8653 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.9024 -38.1241 -0.2 - vertex 36.5187 -35.8653 -0.2 - vertex 36.4089 -35.7834 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.7085 -38.1497 -0.2 - vertex 36.4089 -35.7834 -0.2 - vertex 36.3422 -35.6758 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.7085 -38.1497 -0.2 - vertex 36.3422 -35.6758 -0.2 - vertex 36.3089 -35.532 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.444 -31.6395 -0.2 - vertex 33.8561 -30.1753 -0.2 - vertex 36.8389 -33.2656 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 33.1139 -32.0001 -0.2 - vertex 36.8389 -33.2656 -0.2 - vertex 33.8561 -30.1753 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.6812 -35.9318 -0.2 - vertex 35.9024 -38.1241 -0.2 - vertex 36.7812 -38.066 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 32.0766 -34.3595 -0.2 - vertex 36.3089 -35.532 -0.2 - vertex 36.2992 -35.3418 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.8389 -33.2656 -0.2 - vertex 33.1139 -32.0001 -0.2 - vertex 36.4479 -34.448 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 32.5373 -33.371 -0.2 - vertex 36.4479 -34.448 -0.2 - vertex 33.1139 -32.0001 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.4479 -34.448 -0.2 - vertex 32.5373 -33.371 -0.2 - vertex 36.3428 -34.844 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3428 -34.844 -0.2 - vertex 32.5373 -33.371 -0.2 - vertex 36.3035 -35.0946 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 32.0766 -34.3595 -0.2 - vertex 36.3035 -35.0946 -0.2 - vertex 32.5373 -33.371 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3035 -35.0946 -0.2 - vertex 32.0766 -34.3595 -0.2 - vertex 36.2992 -35.3418 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.4089 -35.7834 -0.2 - vertex 34.7085 -38.1497 -0.2 - vertex 35.9024 -38.1241 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3089 -35.532 -0.2 - vertex 32.0766 -34.3595 -0.2 - vertex 31.8743 -34.7329 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3089 -35.532 -0.2 - vertex 31.8743 -34.7329 -0.2 - vertex 34.7085 -38.1497 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.7085 -38.1497 -0.2 - vertex 31.8743 -34.7329 -0.2 - vertex 33.1514 -38.1555 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 31.6824 -35.0376 -0.2 - vertex 33.1514 -38.1555 -0.2 - vertex 31.8743 -34.7329 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 31.4948 -35.2825 -0.2 - vertex 33.1514 -38.1555 -0.2 - vertex 31.6824 -35.0376 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 31.3052 -35.4767 -0.2 - vertex 33.1514 -38.1555 -0.2 - vertex 31.4948 -35.2825 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 31.1075 -35.6291 -0.2 - vertex 33.1514 -38.1555 -0.2 - vertex 31.3052 -35.4767 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 33.1514 -38.1555 -0.2 - vertex 31.1075 -35.6291 -0.2 - vertex 31.1824 -38.1409 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 30.8955 -35.7486 -0.2 - vertex 31.1824 -38.1409 -0.2 - vertex 31.1075 -35.6291 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 30.6629 -35.8443 -0.2 - vertex 31.1824 -38.1409 -0.2 - vertex 30.8955 -35.7486 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 30.4037 -35.9251 -0.2 - vertex 31.1824 -38.1409 -0.2 - vertex 30.6629 -35.8443 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.4037 -35.9251 -0.2 - vertex 29.8192 -38.0948 -0.2 - vertex 31.1824 -38.1409 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.7804 -36.0779 -0.2 - vertex 29.8192 -38.0948 -0.2 - vertex 30.4037 -35.9251 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.5705 -36.1356 -0.2 - vertex 29.8192 -38.0948 -0.2 - vertex 29.7804 -36.0779 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.3757 -36.2065 -0.2 - vertex 29.8192 -38.0948 -0.2 - vertex 29.5705 -36.1356 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.1966 -36.2895 -0.2 - vertex 29.8192 -38.0948 -0.2 - vertex 29.3757 -36.2065 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.8192 -38.0948 -0.2 - vertex 29.1966 -36.2895 -0.2 - vertex 29.3448 -38.0588 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.034 -36.3831 -0.2 - vertex 29.3448 -38.0588 -0.2 - vertex 29.1966 -36.2895 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.8888 -36.4863 -0.2 - vertex 29.3448 -38.0588 -0.2 - vertex 29.034 -36.3831 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.7617 -36.5978 -0.2 - vertex 29.3448 -38.0588 -0.2 - vertex 28.8888 -36.4863 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.6534 -36.7163 -0.2 - vertex 29.3448 -38.0588 -0.2 - vertex 28.7617 -36.5978 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.3448 -38.0588 -0.2 - vertex 28.6534 -36.7163 -0.2 - vertex 28.9979 -38.0135 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.5648 -36.8405 -0.2 - vertex 28.9979 -38.0135 -0.2 - vertex 28.6534 -36.7163 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.4965 -36.9693 -0.2 - vertex 28.9979 -38.0135 -0.2 - vertex 28.5648 -36.8405 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.4495 -37.1014 -0.2 - vertex 28.9979 -38.0135 -0.2 - vertex 28.4965 -36.9693 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.7706 -37.9584 -0.2 - vertex 28.5587 -37.7674 -0.2 - vertex 28.6548 -37.8931 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.4243 -37.2355 -0.2 - vertex 28.9979 -38.0135 -0.2 - vertex 28.4495 -37.1014 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.9979 -38.0135 -0.2 - vertex 28.5587 -37.7674 -0.2 - vertex 28.7706 -37.9584 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 28.4219 -37.3704 -0.2 - vertex 28.9979 -38.0135 -0.2 - vertex 28.4243 -37.2355 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 28.5587 -37.7674 -0.2 - vertex 28.9979 -38.0135 -0.2 - vertex 28.4883 -37.6376 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 28.4883 -37.6376 -0.2 - vertex 28.9979 -38.0135 -0.2 - vertex 28.443 -37.5048 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.9979 -38.0135 -0.2 - vertex 28.4219 -37.3704 -0.2 - vertex 28.443 -37.5048 -0.2 - endloop - endfacet - facet normal -0.131122 -0.991366 0 - outer loop - vertex 46.8289 -19.1548 -0.2 - vertex 47.044 -19.1833 0 - vertex 46.8289 -19.1548 0 - endloop - endfacet - facet normal -0.131122 -0.991366 -0 - outer loop - vertex 47.044 -19.1833 0 - vertex 46.8289 -19.1548 -0.2 - vertex 47.044 -19.1833 -0.2 - endloop - endfacet - facet normal -0.230596 -0.97305 0 - outer loop - vertex 47.044 -19.1833 -0.2 - vertex 47.2257 -19.2263 0 - vertex 47.044 -19.1833 0 - endloop - endfacet - facet normal -0.230596 -0.97305 -0 - outer loop - vertex 47.2257 -19.2263 0 - vertex 47.044 -19.1833 -0.2 - vertex 47.2257 -19.2263 -0.2 - endloop - endfacet - facet normal -0.359881 -0.932998 0 - outer loop - vertex 47.2257 -19.2263 -0.2 - vertex 47.3799 -19.2858 0 - vertex 47.2257 -19.2263 0 - endloop - endfacet - facet normal -0.359881 -0.932998 -0 - outer loop - vertex 47.3799 -19.2858 0 - vertex 47.2257 -19.2263 -0.2 - vertex 47.3799 -19.2858 -0.2 - endloop - endfacet - facet normal -0.505271 -0.862961 0 - outer loop - vertex 47.3799 -19.2858 -0.2 - vertex 47.5127 -19.3635 0 - vertex 47.3799 -19.2858 0 - endloop - endfacet - facet normal -0.505271 -0.862961 -0 - outer loop - vertex 47.5127 -19.3635 0 - vertex 47.3799 -19.2858 -0.2 - vertex 47.5127 -19.3635 -0.2 - endloop - endfacet - facet normal -0.640123 -0.768272 0 - outer loop - vertex 47.5127 -19.3635 -0.2 - vertex 47.6302 -19.4614 0 - vertex 47.5127 -19.3635 0 - endloop - endfacet - facet normal -0.640123 -0.768272 -0 - outer loop - vertex 47.6302 -19.4614 0 - vertex 47.5127 -19.3635 -0.2 - vertex 47.6302 -19.4614 -0.2 - endloop - endfacet - facet normal -0.742266 -0.670106 0 - outer loop - vertex 47.7384 -19.5813 -0.2 - vertex 47.6302 -19.4614 0 - vertex 47.6302 -19.4614 -0.2 - endloop - endfacet - facet normal -0.742266 -0.670106 0 - outer loop - vertex 47.6302 -19.4614 0 - vertex 47.7384 -19.5813 -0.2 - vertex 47.7384 -19.5813 0 - endloop - endfacet - facet normal -0.797332 -0.60354 0 - outer loop - vertex 47.845 -19.7221 -0.2 - vertex 47.7384 -19.5813 0 - vertex 47.7384 -19.5813 -0.2 - endloop - endfacet - facet normal -0.797332 -0.60354 0 - outer loop - vertex 47.7384 -19.5813 0 - vertex 47.845 -19.7221 -0.2 - vertex 47.845 -19.7221 0 - endloop - endfacet - facet normal -0.85488 -0.518827 0 - outer loop - vertex 47.9233 -19.8512 -0.2 - vertex 47.845 -19.7221 0 - vertex 47.845 -19.7221 -0.2 - endloop - endfacet - facet normal -0.85488 -0.518827 0 - outer loop - vertex 47.845 -19.7221 0 - vertex 47.9233 -19.8512 -0.2 - vertex 47.9233 -19.8512 0 - endloop - endfacet - facet normal -0.930142 -0.367201 0 - outer loop - vertex 47.9745 -19.9807 -0.2 - vertex 47.9233 -19.8512 0 - vertex 47.9233 -19.8512 -0.2 - endloop - endfacet - facet normal -0.930142 -0.367201 0 - outer loop - vertex 47.9233 -19.8512 0 - vertex 47.9745 -19.9807 -0.2 - vertex 47.9745 -19.9807 0 - endloop - endfacet - facet normal -0.985048 -0.172278 0 - outer loop - vertex 47.9993 -20.1225 -0.2 - vertex 47.9745 -19.9807 0 - vertex 47.9745 -19.9807 -0.2 - endloop - endfacet - facet normal -0.985048 -0.172278 0 - outer loop - vertex 47.9745 -19.9807 0 - vertex 47.9993 -20.1225 -0.2 - vertex 47.9993 -20.1225 0 - endloop - endfacet - facet normal -0.999994 0.0034209 0 - outer loop - vertex 47.9987 -20.2887 -0.2 - vertex 47.9993 -20.1225 0 - vertex 47.9993 -20.1225 -0.2 - endloop - endfacet - facet normal -0.999994 0.0034209 0 - outer loop - vertex 47.9993 -20.1225 0 - vertex 47.9987 -20.2887 -0.2 - vertex 47.9987 -20.2887 0 - endloop - endfacet - facet normal -0.992465 0.122526 0 - outer loop - vertex 47.9737 -20.4912 -0.2 - vertex 47.9987 -20.2887 0 - vertex 47.9987 -20.2887 -0.2 - endloop - endfacet - facet normal -0.992465 0.122526 0 - outer loop - vertex 47.9987 -20.2887 0 - vertex 47.9737 -20.4912 -0.2 - vertex 47.9737 -20.4912 0 - endloop - endfacet - facet normal -0.97813 0.207995 0 - outer loop - vertex 47.8542 -21.0531 -0.2 - vertex 47.9737 -20.4912 0 - vertex 47.9737 -20.4912 -0.2 - endloop - endfacet - facet normal -0.97813 0.207995 0 - outer loop - vertex 47.9737 -20.4912 0 - vertex 47.8542 -21.0531 -0.2 - vertex 47.8542 -21.0531 0 - endloop - endfacet - facet normal -0.962149 0.272524 0 - outer loop - vertex 47.7155 -21.5429 -0.2 - vertex 47.8542 -21.0531 0 - vertex 47.8542 -21.0531 -0.2 - endloop - endfacet - facet normal -0.962149 0.272524 0 - outer loop - vertex 47.8542 -21.0531 0 - vertex 47.7155 -21.5429 -0.2 - vertex 47.7155 -21.5429 0 - endloop - endfacet - facet normal -0.934598 0.355705 0 - outer loop - vertex 47.5422 -21.9981 -0.2 - vertex 47.7155 -21.5429 0 - vertex 47.7155 -21.5429 -0.2 - endloop - endfacet - facet normal -0.934598 0.355705 0 - outer loop - vertex 47.7155 -21.5429 0 - vertex 47.5422 -21.9981 -0.2 - vertex 47.5422 -21.9981 0 - endloop - endfacet - facet normal -0.898902 0.438149 0 - outer loop - vertex 47.3383 -22.4165 -0.2 - vertex 47.5422 -21.9981 0 - vertex 47.5422 -21.9981 -0.2 - endloop - endfacet - facet normal -0.898902 0.438149 0 - outer loop - vertex 47.5422 -21.9981 0 - vertex 47.3383 -22.4165 -0.2 - vertex 47.3383 -22.4165 0 - endloop - endfacet - facet normal -0.854314 0.519757 0 - outer loop - vertex 47.1074 -22.796 -0.2 - vertex 47.3383 -22.4165 0 - vertex 47.3383 -22.4165 -0.2 - endloop - endfacet - facet normal -0.854314 0.519757 0 - outer loop - vertex 47.3383 -22.4165 0 - vertex 47.1074 -22.796 -0.2 - vertex 47.1074 -22.796 0 - endloop - endfacet - facet normal -0.79973 0.600359 0 - outer loop - vertex 46.8534 -23.1343 -0.2 - vertex 47.1074 -22.796 0 - vertex 47.1074 -22.796 -0.2 - endloop - endfacet - facet normal -0.79973 0.600359 0 - outer loop - vertex 47.1074 -22.796 0 - vertex 46.8534 -23.1343 -0.2 - vertex 46.8534 -23.1343 0 - endloop - endfacet - facet normal -0.73354 0.679647 0 - outer loop - vertex 46.5801 -23.4293 -0.2 - vertex 46.8534 -23.1343 0 - vertex 46.8534 -23.1343 -0.2 - endloop - endfacet - facet normal -0.73354 0.679647 0 - outer loop - vertex 46.8534 -23.1343 0 - vertex 46.5801 -23.4293 -0.2 - vertex 46.5801 -23.4293 0 - endloop - endfacet - facet normal -0.653573 0.756863 0 - outer loop - vertex 46.5801 -23.4293 -0.2 - vertex 46.2914 -23.6786 0 - vertex 46.5801 -23.4293 0 - endloop - endfacet - facet normal -0.653573 0.756863 0 - outer loop - vertex 46.2914 -23.6786 0 - vertex 46.5801 -23.4293 -0.2 - vertex 46.2914 -23.6786 -0.2 - endloop - endfacet - facet normal -0.557126 0.830428 0 - outer loop - vertex 46.2914 -23.6786 -0.2 - vertex 45.9909 -23.8802 0 - vertex 46.2914 -23.6786 0 - endloop - endfacet - facet normal -0.557126 0.830428 0 - outer loop - vertex 45.9909 -23.8802 0 - vertex 46.2914 -23.6786 -0.2 - vertex 45.9909 -23.8802 -0.2 - endloop - endfacet - facet normal -0.441145 0.897436 0 - outer loop - vertex 45.9909 -23.8802 -0.2 - vertex 45.6826 -24.0317 0 - vertex 45.9909 -23.8802 0 - endloop - endfacet - facet normal -0.441145 0.897436 0 - outer loop - vertex 45.6826 -24.0317 0 - vertex 45.9909 -23.8802 -0.2 - vertex 45.6826 -24.0317 -0.2 - endloop - endfacet - facet normal -0.303061 0.952971 0 - outer loop - vertex 45.6826 -24.0317 -0.2 - vertex 45.3703 -24.1311 0 - vertex 45.6826 -24.0317 0 - endloop - endfacet - facet normal -0.303061 0.952971 0 - outer loop - vertex 45.3703 -24.1311 0 - vertex 45.6826 -24.0317 -0.2 - vertex 45.3703 -24.1311 -0.2 - endloop - endfacet - facet normal -0.142218 0.989835 0 - outer loop - vertex 45.3703 -24.1311 -0.2 - vertex 45.0576 -24.176 0 - vertex 45.3703 -24.1311 0 - endloop - endfacet - facet normal -0.142218 0.989835 0 - outer loop - vertex 45.0576 -24.176 0 - vertex 45.3703 -24.1311 -0.2 - vertex 45.0576 -24.176 -0.2 - endloop - endfacet - facet normal 0.0378695 0.999283 -0 - outer loop - vertex 45.0576 -24.176 -0.2 - vertex 44.7485 -24.1643 0 - vertex 45.0576 -24.176 0 - endloop - endfacet - facet normal 0.0378695 0.999283 0 - outer loop - vertex 44.7485 -24.1643 0 - vertex 45.0576 -24.176 -0.2 - vertex 44.7485 -24.1643 -0.2 - endloop - endfacet - facet normal 0.227696 0.973732 -0 - outer loop - vertex 44.7485 -24.1643 -0.2 - vertex 44.4468 -24.0937 0 - vertex 44.7485 -24.1643 0 - endloop - endfacet - facet normal 0.227696 0.973732 0 - outer loop - vertex 44.4468 -24.0937 0 - vertex 44.7485 -24.1643 -0.2 - vertex 44.4468 -24.0937 -0.2 - endloop - endfacet - facet normal 0.412594 0.910915 -0 - outer loop - vertex 44.4468 -24.0937 -0.2 - vertex 44.1563 -23.9621 0 - vertex 44.4468 -24.0937 0 - endloop - endfacet - facet normal 0.412594 0.910915 0 - outer loop - vertex 44.1563 -23.9621 0 - vertex 44.4468 -24.0937 -0.2 - vertex 44.1563 -23.9621 -0.2 - endloop - endfacet - facet normal 0.57736 0.81649 -0 - outer loop - vertex 44.1563 -23.9621 -0.2 - vertex 43.8807 -23.7673 0 - vertex 44.1563 -23.9621 0 - endloop - endfacet - facet normal 0.57736 0.81649 0 - outer loop - vertex 43.8807 -23.7673 0 - vertex 44.1563 -23.9621 -0.2 - vertex 43.8807 -23.7673 -0.2 - endloop - endfacet - facet normal 0.711931 0.70225 0 - outer loop - vertex 43.8807 -23.7673 0 - vertex 43.6239 -23.5069 -0.2 - vertex 43.6239 -23.5069 0 - endloop - endfacet - facet normal 0.711931 0.70225 0 - outer loop - vertex 43.6239 -23.5069 -0.2 - vertex 43.8807 -23.7673 0 - vertex 43.8807 -23.7673 -0.2 - endloop - endfacet - facet normal 0.732645 0.680611 0 - outer loop - vertex 43.6239 -23.5069 0 - vertex 43.3873 -23.2523 -0.2 - vertex 43.3873 -23.2523 0 - endloop - endfacet - facet normal 0.732645 0.680611 0 - outer loop - vertex 43.3873 -23.2523 -0.2 - vertex 43.6239 -23.5069 0 - vertex 43.6239 -23.5069 -0.2 - endloop - endfacet - facet normal 0.659068 0.752084 -0 - outer loop - vertex 43.3873 -23.2523 -0.2 - vertex 43.1493 -23.0437 0 - vertex 43.3873 -23.2523 0 - endloop - endfacet - facet normal 0.659068 0.752084 0 - outer loop - vertex 43.1493 -23.0437 0 - vertex 43.3873 -23.2523 -0.2 - vertex 43.1493 -23.0437 -0.2 - endloop - endfacet - facet normal 0.55411 0.832444 -0 - outer loop - vertex 43.1493 -23.0437 -0.2 - vertex 42.9376 -22.9028 0 - vertex 43.1493 -23.0437 0 - endloop - endfacet - facet normal 0.55411 0.832444 0 - outer loop - vertex 42.9376 -22.9028 0 - vertex 43.1493 -23.0437 -0.2 - vertex 42.9376 -22.9028 -0.2 - endloop - endfacet - facet normal 0.402192 0.915555 -0 - outer loop - vertex 42.9376 -22.9028 -0.2 - vertex 42.8503 -22.8644 0 - vertex 42.9376 -22.9028 0 - endloop - endfacet - facet normal 0.402192 0.915555 0 - outer loop - vertex 42.8503 -22.8644 0 - vertex 42.9376 -22.9028 -0.2 - vertex 42.8503 -22.8644 -0.2 - endloop - endfacet - facet normal 0.186876 0.982384 -0 - outer loop - vertex 42.8503 -22.8644 -0.2 - vertex 42.7799 -22.851 0 - vertex 42.8503 -22.8644 0 - endloop - endfacet - facet normal 0.186876 0.982384 0 - outer loop - vertex 42.7799 -22.851 0 - vertex 42.8503 -22.8644 -0.2 - vertex 42.7799 -22.851 -0.2 - endloop - endfacet - facet normal -0.254315 0.967121 0 - outer loop - vertex 42.7799 -22.851 -0.2 - vertex 42.6968 -22.8729 0 - vertex 42.7799 -22.851 0 - endloop - endfacet - facet normal -0.254315 0.967121 0 - outer loop - vertex 42.6968 -22.8729 0 - vertex 42.7799 -22.851 -0.2 - vertex 42.6968 -22.8729 -0.2 - endloop - endfacet - facet normal -0.451219 0.892413 0 - outer loop - vertex 42.6968 -22.8729 -0.2 - vertex 42.5728 -22.9356 0 - vertex 42.6968 -22.8729 0 - endloop - endfacet - facet normal -0.451219 0.892413 0 - outer loop - vertex 42.5728 -22.9356 0 - vertex 42.6968 -22.8729 -0.2 - vertex 42.5728 -22.9356 -0.2 - endloop - endfacet - facet normal -0.553713 0.832708 0 - outer loop - vertex 42.5728 -22.9356 -0.2 - vertex 42.2267 -23.1657 0 - vertex 42.5728 -22.9356 0 - endloop - endfacet - facet normal -0.553713 0.832708 0 - outer loop - vertex 42.2267 -23.1657 0 - vertex 42.5728 -22.9356 -0.2 - vertex 42.2267 -23.1657 -0.2 - endloop - endfacet - facet normal -0.614835 0.788656 0 - outer loop - vertex 42.2267 -23.1657 -0.2 - vertex 41.7898 -23.5063 0 - vertex 42.2267 -23.1657 0 - endloop - endfacet - facet normal -0.614835 0.788656 0 - outer loop - vertex 41.7898 -23.5063 0 - vertex 42.2267 -23.1657 -0.2 - vertex 41.7898 -23.5063 -0.2 - endloop - endfacet - facet normal -0.655263 0.755401 0 - outer loop - vertex 41.7898 -23.5063 -0.2 - vertex 41.3103 -23.9223 0 - vertex 41.7898 -23.5063 0 - endloop - endfacet - facet normal -0.655263 0.755401 0 - outer loop - vertex 41.3103 -23.9223 0 - vertex 41.7898 -23.5063 -0.2 - vertex 41.3103 -23.9223 -0.2 - endloop - endfacet - facet normal -0.681106 0.732185 0 - outer loop - vertex 41.3103 -23.9223 -0.2 - vertex 40.922 -24.2835 0 - vertex 41.3103 -23.9223 0 - endloop - endfacet - facet normal -0.681106 0.732185 0 - outer loop - vertex 40.922 -24.2835 0 - vertex 41.3103 -23.9223 -0.2 - vertex 40.922 -24.2835 -0.2 - endloop - endfacet - facet normal -0.723872 0.689934 0 - outer loop - vertex 40.604 -24.6171 -0.2 - vertex 40.922 -24.2835 0 - vertex 40.922 -24.2835 -0.2 - endloop - endfacet - facet normal -0.723872 0.689934 0 - outer loop - vertex 40.922 -24.2835 0 - vertex 40.604 -24.6171 -0.2 - vertex 40.604 -24.6171 0 - endloop - endfacet - facet normal -0.795563 0.60587 0 - outer loop - vertex 40.3218 -24.9877 -0.2 - vertex 40.604 -24.6171 0 - vertex 40.604 -24.6171 -0.2 - endloop - endfacet - facet normal -0.795563 0.60587 0 - outer loop - vertex 40.604 -24.6171 0 - vertex 40.3218 -24.9877 -0.2 - vertex 40.3218 -24.9877 0 - endloop - endfacet - facet normal -0.859211 0.511621 0 - outer loop - vertex 40.0406 -25.46 -0.2 - vertex 40.3218 -24.9877 0 - vertex 40.3218 -24.9877 -0.2 - endloop - endfacet - facet normal -0.859211 0.511621 0 - outer loop - vertex 40.3218 -24.9877 0 - vertex 40.0406 -25.46 -0.2 - vertex 40.0406 -25.46 0 - endloop - endfacet - facet normal -0.896877 0.442281 0 - outer loop - vertex 39.7256 -26.0988 -0.2 - vertex 40.0406 -25.46 0 - vertex 40.0406 -25.46 -0.2 - endloop - endfacet - facet normal -0.896877 0.442281 0 - outer loop - vertex 40.0406 -25.46 0 - vertex 39.7256 -26.0988 -0.2 - vertex 39.7256 -26.0988 0 - endloop - endfacet - facet normal -0.915036 0.403372 0 - outer loop - vertex 39.342 -26.9688 -0.2 - vertex 39.7256 -26.0988 0 - vertex 39.7256 -26.0988 -0.2 - endloop - endfacet - facet normal -0.915036 0.403372 0 - outer loop - vertex 39.7256 -26.0988 0 - vertex 39.342 -26.9688 -0.2 - vertex 39.342 -26.9688 0 - endloop - endfacet - facet normal -0.924339 0.381572 0 - outer loop - vertex 38.2305 -29.6614 -0.2 - vertex 39.342 -26.9688 0 - vertex 39.342 -26.9688 -0.2 - endloop - endfacet - facet normal -0.924339 0.381572 0 - outer loop - vertex 39.342 -26.9688 0 - vertex 38.2305 -29.6614 -0.2 - vertex 38.2305 -29.6614 0 - endloop - endfacet - facet normal -0.929232 0.369498 0 - outer loop - vertex 37.444 -31.6395 -0.2 - vertex 38.2305 -29.6614 0 - vertex 38.2305 -29.6614 -0.2 - endloop - endfacet - facet normal -0.929232 0.369498 0 - outer loop - vertex 38.2305 -29.6614 0 - vertex 37.444 -31.6395 -0.2 - vertex 37.444 -31.6395 0 - endloop - endfacet - facet normal -0.937221 0.348736 0 - outer loop - vertex 36.8389 -33.2656 -0.2 - vertex 37.444 -31.6395 0 - vertex 37.444 -31.6395 -0.2 - endloop - endfacet - facet normal -0.937221 0.348736 0 - outer loop - vertex 37.444 -31.6395 0 - vertex 36.8389 -33.2656 -0.2 - vertex 36.8389 -33.2656 0 - endloop - endfacet - facet normal -0.949427 0.313989 0 - outer loop - vertex 36.4479 -34.448 -0.2 - vertex 36.8389 -33.2656 0 - vertex 36.8389 -33.2656 -0.2 - endloop - endfacet - facet normal -0.949427 0.313989 0 - outer loop - vertex 36.8389 -33.2656 0 - vertex 36.4479 -34.448 -0.2 - vertex 36.4479 -34.448 0 - endloop - endfacet - facet normal -0.966574 0.256387 0 - outer loop - vertex 36.3428 -34.844 -0.2 - vertex 36.4479 -34.448 0 - vertex 36.4479 -34.448 -0.2 - endloop - endfacet - facet normal -0.966574 0.256387 0 - outer loop - vertex 36.4479 -34.448 0 - vertex 36.3428 -34.844 -0.2 - vertex 36.3428 -34.844 0 - endloop - endfacet - facet normal -0.987922 0.154951 0 - outer loop - vertex 36.3035 -35.0946 -0.2 - vertex 36.3428 -34.844 0 - vertex 36.3428 -34.844 -0.2 - endloop - endfacet - facet normal -0.987922 0.154951 0 - outer loop - vertex 36.3428 -34.844 0 - vertex 36.3035 -35.0946 -0.2 - vertex 36.3035 -35.0946 0 - endloop - endfacet - facet normal -0.999846 0.0175753 0 - outer loop - vertex 36.2992 -35.3418 -0.2 - vertex 36.3035 -35.0946 0 - vertex 36.3035 -35.0946 -0.2 - endloop - endfacet - facet normal -0.999846 0.0175753 0 - outer loop - vertex 36.3035 -35.0946 0 - vertex 36.2992 -35.3418 -0.2 - vertex 36.2992 -35.3418 0 - endloop - endfacet - facet normal -0.99871 -0.0507764 0 - outer loop - vertex 36.3089 -35.532 -0.2 - vertex 36.2992 -35.3418 0 - vertex 36.2992 -35.3418 -0.2 - endloop - endfacet - facet normal -0.99871 -0.0507764 0 - outer loop - vertex 36.2992 -35.3418 0 - vertex 36.3089 -35.532 -0.2 - vertex 36.3089 -35.532 0 - endloop - endfacet - facet normal -0.974112 -0.226068 0 - outer loop - vertex 36.3422 -35.6758 -0.2 - vertex 36.3089 -35.532 0 - vertex 36.3089 -35.532 -0.2 - endloop - endfacet - facet normal -0.974112 -0.226068 0 - outer loop - vertex 36.3089 -35.532 0 - vertex 36.3422 -35.6758 -0.2 - vertex 36.3422 -35.6758 0 - endloop - endfacet - facet normal -0.84992 -0.526911 0 - outer loop - vertex 36.4089 -35.7834 -0.2 - vertex 36.3422 -35.6758 0 - vertex 36.3422 -35.6758 -0.2 - endloop - endfacet - facet normal -0.84992 -0.526911 0 - outer loop - vertex 36.3422 -35.6758 0 - vertex 36.4089 -35.7834 -0.2 - vertex 36.4089 -35.7834 0 - endloop - endfacet - facet normal -0.59793 -0.801548 0 - outer loop - vertex 36.4089 -35.7834 -0.2 - vertex 36.5187 -35.8653 0 - vertex 36.4089 -35.7834 0 - endloop - endfacet - facet normal -0.59793 -0.801548 -0 - outer loop - vertex 36.5187 -35.8653 0 - vertex 36.4089 -35.7834 -0.2 - vertex 36.5187 -35.8653 -0.2 - endloop - endfacet - facet normal -0.37896 -0.925413 0 - outer loop - vertex 36.5187 -35.8653 -0.2 - vertex 36.6812 -35.9318 0 - vertex 36.5187 -35.8653 0 - endloop - endfacet - facet normal -0.37896 -0.925413 -0 - outer loop - vertex 36.6812 -35.9318 0 - vertex 36.5187 -35.8653 -0.2 - vertex 36.6812 -35.9318 -0.2 - endloop - endfacet - facet normal -0.239239 -0.970961 0 - outer loop - vertex 36.6812 -35.9318 -0.2 - vertex 37.203 -36.0604 0 - vertex 36.6812 -35.9318 0 - endloop - endfacet - facet normal -0.239239 -0.970961 -0 - outer loop - vertex 37.203 -36.0604 0 - vertex 36.6812 -35.9318 -0.2 - vertex 37.203 -36.0604 -0.2 - endloop - endfacet - facet normal -0.245847 -0.969309 0 - outer loop - vertex 37.203 -36.0604 -0.2 - vertex 37.6954 -36.1853 0 - vertex 37.203 -36.0604 0 - endloop - endfacet - facet normal -0.245847 -0.969309 -0 - outer loop - vertex 37.6954 -36.1853 0 - vertex 37.203 -36.0604 -0.2 - vertex 37.6954 -36.1853 -0.2 - endloop - endfacet - facet normal -0.369675 -0.929161 0 - outer loop - vertex 37.6954 -36.1853 -0.2 - vertex 37.8576 -36.2498 0 - vertex 37.6954 -36.1853 0 - endloop - endfacet - facet normal -0.369675 -0.929161 -0 - outer loop - vertex 37.8576 -36.2498 0 - vertex 37.6954 -36.1853 -0.2 - vertex 37.8576 -36.2498 -0.2 - endloop - endfacet - facet normal -0.539517 -0.841975 0 - outer loop - vertex 37.8576 -36.2498 -0.2 - vertex 37.9736 -36.3241 0 - vertex 37.8576 -36.2498 0 - endloop - endfacet - facet normal -0.539517 -0.841975 -0 - outer loop - vertex 37.9736 -36.3241 0 - vertex 37.8576 -36.2498 -0.2 - vertex 37.9736 -36.3241 -0.2 - endloop - endfacet - facet normal -0.760366 -0.649494 0 - outer loop - vertex 38.0509 -36.4146 -0.2 - vertex 37.9736 -36.3241 0 - vertex 37.9736 -36.3241 -0.2 - endloop - endfacet - facet normal -0.760366 -0.649494 0 - outer loop - vertex 37.9736 -36.3241 0 - vertex 38.0509 -36.4146 -0.2 - vertex 38.0509 -36.4146 0 - endloop - endfacet - facet normal -0.926147 -0.377163 0 - outer loop - vertex 38.0969 -36.5276 -0.2 - vertex 38.0509 -36.4146 0 - vertex 38.0509 -36.4146 -0.2 - endloop - endfacet - facet normal -0.926147 -0.377163 0 - outer loop - vertex 38.0509 -36.4146 0 - vertex 38.0969 -36.5276 -0.2 - vertex 38.0969 -36.5276 0 - endloop - endfacet - facet normal -0.988006 -0.154417 0 - outer loop - vertex 38.119 -36.6694 -0.2 - vertex 38.0969 -36.5276 0 - vertex 38.0969 -36.5276 -0.2 - endloop - endfacet - facet normal -0.988006 -0.154417 0 - outer loop - vertex 38.0969 -36.5276 0 - vertex 38.119 -36.6694 -0.2 - vertex 38.119 -36.6694 0 - endloop - endfacet - facet normal -0.999475 -0.0324031 0 - outer loop - vertex 38.1248 -36.8464 -0.2 - vertex 38.119 -36.6694 0 - vertex 38.119 -36.6694 -0.2 - endloop - endfacet - facet normal -0.999475 -0.0324031 0 - outer loop - vertex 38.119 -36.6694 0 - vertex 38.1248 -36.8464 -0.2 - vertex 38.1248 -36.8464 0 - endloop - endfacet - facet normal -0.99859 0.0530808 0 - outer loop - vertex 38.103 -37.2562 -0.2 - vertex 38.1248 -36.8464 0 - vertex 38.1248 -36.8464 -0.2 - endloop - endfacet - facet normal -0.99859 0.0530808 0 - outer loop - vertex 38.1248 -36.8464 0 - vertex 38.103 -37.2562 -0.2 - vertex 38.103 -37.2562 0 - endloop - endfacet - facet normal -0.977614 0.210405 0 - outer loop - vertex 38.0668 -37.4245 -0.2 - vertex 38.103 -37.2562 0 - vertex 38.103 -37.2562 -0.2 - endloop - endfacet - facet normal -0.977614 0.210405 0 - outer loop - vertex 38.103 -37.2562 0 - vertex 38.0668 -37.4245 -0.2 - vertex 38.0668 -37.4245 0 - endloop - endfacet - facet normal -0.922461 0.38609 0 - outer loop - vertex 38.0057 -37.5705 -0.2 - vertex 38.0668 -37.4245 0 - vertex 38.0668 -37.4245 -0.2 - endloop - endfacet - facet normal -0.922461 0.38609 0 - outer loop - vertex 38.0668 -37.4245 0 - vertex 38.0057 -37.5705 -0.2 - vertex 38.0057 -37.5705 0 - endloop - endfacet - facet normal -0.806037 0.591865 0 - outer loop - vertex 37.9137 -37.6957 -0.2 - vertex 38.0057 -37.5705 0 - vertex 38.0057 -37.5705 -0.2 - endloop - endfacet - facet normal -0.806037 0.591865 0 - outer loop - vertex 38.0057 -37.5705 0 - vertex 37.9137 -37.6957 -0.2 - vertex 37.9137 -37.6957 0 - endloop - endfacet - facet normal -0.635642 0.771984 0 - outer loop - vertex 37.9137 -37.6957 -0.2 - vertex 37.7849 -37.8018 0 - vertex 37.9137 -37.6957 0 - endloop - endfacet - facet normal -0.635642 0.771984 0 - outer loop - vertex 37.7849 -37.8018 0 - vertex 37.9137 -37.6957 -0.2 - vertex 37.7849 -37.8018 -0.2 - endloop - endfacet - facet normal -0.458146 0.888877 0 - outer loop - vertex 37.7849 -37.8018 -0.2 - vertex 37.6132 -37.8903 0 - vertex 37.7849 -37.8018 0 - endloop - endfacet - facet normal -0.458146 0.888877 0 - outer loop - vertex 37.6132 -37.8903 0 - vertex 37.7849 -37.8018 -0.2 - vertex 37.6132 -37.8903 -0.2 - endloop - endfacet - facet normal -0.312246 0.950001 0 - outer loop - vertex 37.6132 -37.8903 -0.2 - vertex 37.3927 -37.9628 0 - vertex 37.6132 -37.8903 0 - endloop - endfacet - facet normal -0.312246 0.950001 0 - outer loop - vertex 37.3927 -37.9628 0 - vertex 37.6132 -37.8903 -0.2 - vertex 37.3927 -37.9628 -0.2 - endloop - endfacet - facet normal -0.206263 0.978497 0 - outer loop - vertex 37.3927 -37.9628 -0.2 - vertex 37.1174 -38.0208 0 - vertex 37.3927 -37.9628 0 - endloop - endfacet - facet normal -0.206263 0.978497 0 - outer loop - vertex 37.1174 -38.0208 0 - vertex 37.3927 -37.9628 -0.2 - vertex 37.1174 -38.0208 -0.2 - endloop - endfacet - facet normal -0.133215 0.991087 0 - outer loop - vertex 37.1174 -38.0208 -0.2 - vertex 36.7812 -38.066 0 - vertex 37.1174 -38.0208 0 - endloop - endfacet - facet normal -0.133215 0.991087 0 - outer loop - vertex 36.7812 -38.066 0 - vertex 37.1174 -38.0208 -0.2 - vertex 36.7812 -38.066 -0.2 - endloop - endfacet - facet normal -0.0659814 0.997821 0 - outer loop - vertex 36.7812 -38.066 -0.2 - vertex 35.9024 -38.1241 0 - vertex 36.7812 -38.066 0 - endloop - endfacet - facet normal -0.0659814 0.997821 0 - outer loop - vertex 35.9024 -38.1241 0 - vertex 36.7812 -38.066 -0.2 - vertex 35.9024 -38.1241 -0.2 - endloop - endfacet - facet normal -0.0214493 0.99977 0 - outer loop - vertex 35.9024 -38.1241 -0.2 - vertex 34.7085 -38.1497 0 - vertex 35.9024 -38.1241 0 - endloop - endfacet - facet normal -0.0214493 0.99977 0 - outer loop - vertex 34.7085 -38.1497 0 - vertex 35.9024 -38.1241 -0.2 - vertex 34.7085 -38.1497 -0.2 - endloop - endfacet - facet normal -0.00368212 0.999993 0 - outer loop - vertex 34.7085 -38.1497 -0.2 - vertex 33.1514 -38.1555 0 - vertex 34.7085 -38.1497 0 - endloop - endfacet - facet normal -0.00368212 0.999993 0 - outer loop - vertex 33.1514 -38.1555 0 - vertex 34.7085 -38.1497 -0.2 - vertex 33.1514 -38.1555 -0.2 - endloop - endfacet - facet normal 0.00738333 0.999973 -0 - outer loop - vertex 33.1514 -38.1555 -0.2 - vertex 31.1824 -38.1409 0 - vertex 33.1514 -38.1555 0 - endloop - endfacet - facet normal 0.00738333 0.999973 0 - outer loop - vertex 31.1824 -38.1409 0 - vertex 33.1514 -38.1555 -0.2 - vertex 31.1824 -38.1409 -0.2 - endloop - endfacet - facet normal 0.0337924 0.999429 -0 - outer loop - vertex 31.1824 -38.1409 -0.2 - vertex 29.8192 -38.0948 0 - vertex 31.1824 -38.1409 0 - endloop - endfacet - facet normal 0.0337924 0.999429 0 - outer loop - vertex 29.8192 -38.0948 0 - vertex 31.1824 -38.1409 -0.2 - vertex 29.8192 -38.0948 -0.2 - endloop - endfacet - facet normal 0.0757553 0.997126 -0 - outer loop - vertex 29.8192 -38.0948 -0.2 - vertex 29.3448 -38.0588 0 - vertex 29.8192 -38.0948 0 - endloop - endfacet - facet normal 0.0757553 0.997126 0 - outer loop - vertex 29.3448 -38.0588 0 - vertex 29.8192 -38.0948 -0.2 - vertex 29.3448 -38.0588 -0.2 - endloop - endfacet - facet normal 0.129569 0.99157 -0 - outer loop - vertex 29.3448 -38.0588 -0.2 - vertex 28.9979 -38.0135 0 - vertex 29.3448 -38.0588 0 - endloop - endfacet - facet normal 0.129569 0.99157 0 - outer loop - vertex 28.9979 -38.0135 0 - vertex 29.3448 -38.0588 -0.2 - vertex 28.9979 -38.0135 -0.2 - endloop - endfacet - facet normal 0.235468 0.971882 -0 - outer loop - vertex 28.9979 -38.0135 -0.2 - vertex 28.7706 -37.9584 0 - vertex 28.9979 -38.0135 0 - endloop - endfacet - facet normal 0.235468 0.971882 0 - outer loop - vertex 28.7706 -37.9584 0 - vertex 28.9979 -38.0135 -0.2 - vertex 28.7706 -37.9584 -0.2 - endloop - endfacet - facet normal 0.491281 0.871001 -0 - outer loop - vertex 28.7706 -37.9584 -0.2 - vertex 28.6548 -37.8931 0 - vertex 28.7706 -37.9584 0 - endloop - endfacet - facet normal 0.491281 0.871001 0 - outer loop - vertex 28.6548 -37.8931 0 - vertex 28.7706 -37.9584 -0.2 - vertex 28.6548 -37.8931 -0.2 - endloop - endfacet - facet normal 0.794168 0.607698 0 - outer loop - vertex 28.6548 -37.8931 0 - vertex 28.5587 -37.7674 -0.2 - vertex 28.5587 -37.7674 0 - endloop - endfacet - facet normal 0.794168 0.607698 0 - outer loop - vertex 28.5587 -37.7674 -0.2 - vertex 28.6548 -37.8931 0 - vertex 28.6548 -37.8931 -0.2 - endloop - endfacet - facet normal 0.879213 0.47643 0 - outer loop - vertex 28.5587 -37.7674 0 - vertex 28.4883 -37.6376 -0.2 - vertex 28.4883 -37.6376 0 - endloop - endfacet - facet normal 0.879213 0.47643 0 - outer loop - vertex 28.4883 -37.6376 -0.2 - vertex 28.5587 -37.7674 0 - vertex 28.5587 -37.7674 -0.2 - endloop - endfacet - facet normal 0.946363 0.323104 0 - outer loop - vertex 28.4883 -37.6376 0 - vertex 28.443 -37.5048 -0.2 - vertex 28.443 -37.5048 0 - endloop - endfacet - facet normal 0.946363 0.323104 0 - outer loop - vertex 28.443 -37.5048 -0.2 - vertex 28.4883 -37.6376 0 - vertex 28.4883 -37.6376 -0.2 - endloop - endfacet - facet normal 0.987941 0.154833 0 - outer loop - vertex 28.443 -37.5048 0 - vertex 28.4219 -37.3704 -0.2 - vertex 28.4219 -37.3704 0 - endloop - endfacet - facet normal 0.987941 0.154833 0 - outer loop - vertex 28.4219 -37.3704 -0.2 - vertex 28.443 -37.5048 0 - vertex 28.443 -37.5048 -0.2 - endloop - endfacet - facet normal 0.99984 -0.0178826 0 - outer loop - vertex 28.4219 -37.3704 0 - vertex 28.4243 -37.2355 -0.2 - vertex 28.4243 -37.2355 0 - endloop - endfacet - facet normal 0.99984 -0.0178826 0 - outer loop - vertex 28.4243 -37.2355 -0.2 - vertex 28.4219 -37.3704 0 - vertex 28.4219 -37.3704 -0.2 - endloop - endfacet - facet normal 0.982895 -0.184165 0 - outer loop - vertex 28.4243 -37.2355 0 - vertex 28.4495 -37.1014 -0.2 - vertex 28.4495 -37.1014 0 - endloop - endfacet - facet normal 0.982895 -0.184165 0 - outer loop - vertex 28.4495 -37.1014 -0.2 - vertex 28.4243 -37.2355 0 - vertex 28.4243 -37.2355 -0.2 - endloop - endfacet - facet normal 0.941957 -0.335735 0 - outer loop - vertex 28.4495 -37.1014 0 - vertex 28.4965 -36.9693 -0.2 - vertex 28.4965 -36.9693 0 - endloop - endfacet - facet normal 0.941957 -0.335735 0 - outer loop - vertex 28.4965 -36.9693 -0.2 - vertex 28.4495 -37.1014 0 - vertex 28.4495 -37.1014 -0.2 - endloop - endfacet - facet normal 0.883597 -0.468248 0 - outer loop - vertex 28.4965 -36.9693 0 - vertex 28.5648 -36.8405 -0.2 - vertex 28.5648 -36.8405 0 - endloop - endfacet - facet normal 0.883597 -0.468248 0 - outer loop - vertex 28.5648 -36.8405 -0.2 - vertex 28.4965 -36.9693 0 - vertex 28.4965 -36.9693 -0.2 - endloop - endfacet - facet normal 0.814058 -0.580783 0 - outer loop - vertex 28.5648 -36.8405 0 - vertex 28.6534 -36.7163 -0.2 - vertex 28.6534 -36.7163 0 - endloop - endfacet - facet normal 0.814058 -0.580783 0 - outer loop - vertex 28.6534 -36.7163 -0.2 - vertex 28.5648 -36.8405 0 - vertex 28.5648 -36.8405 -0.2 - endloop - endfacet - facet normal 0.738176 -0.674608 0 - outer loop - vertex 28.6534 -36.7163 0 - vertex 28.7617 -36.5978 -0.2 - vertex 28.7617 -36.5978 0 - endloop - endfacet - facet normal 0.738176 -0.674608 0 - outer loop - vertex 28.7617 -36.5978 -0.2 - vertex 28.6534 -36.7163 0 - vertex 28.6534 -36.7163 -0.2 - endloop - endfacet - facet normal 0.659231 -0.75194 0 - outer loop - vertex 28.7617 -36.5978 -0.2 - vertex 28.8888 -36.4863 0 - vertex 28.7617 -36.5978 0 - endloop - endfacet - facet normal 0.659231 -0.75194 0 - outer loop - vertex 28.8888 -36.4863 0 - vertex 28.7617 -36.5978 -0.2 - vertex 28.8888 -36.4863 -0.2 - endloop - endfacet - facet normal 0.57926 -0.815143 0 - outer loop - vertex 28.8888 -36.4863 -0.2 - vertex 29.034 -36.3831 0 - vertex 28.8888 -36.4863 0 - endloop - endfacet - facet normal 0.57926 -0.815143 0 - outer loop - vertex 29.034 -36.3831 0 - vertex 28.8888 -36.4863 -0.2 - vertex 29.034 -36.3831 -0.2 - endloop - endfacet - facet normal 0.499403 -0.86637 0 - outer loop - vertex 29.034 -36.3831 -0.2 - vertex 29.1966 -36.2895 0 - vertex 29.034 -36.3831 0 - endloop - endfacet - facet normal 0.499403 -0.86637 0 - outer loop - vertex 29.1966 -36.2895 0 - vertex 29.034 -36.3831 -0.2 - vertex 29.1966 -36.2895 -0.2 - endloop - endfacet - facet normal 0.420274 -0.907397 0 - outer loop - vertex 29.1966 -36.2895 -0.2 - vertex 29.3757 -36.2065 0 - vertex 29.1966 -36.2895 0 - endloop - endfacet - facet normal 0.420274 -0.907397 0 - outer loop - vertex 29.3757 -36.2065 0 - vertex 29.1966 -36.2895 -0.2 - vertex 29.3757 -36.2065 -0.2 - endloop - endfacet - facet normal 0.34216 -0.939642 0 - outer loop - vertex 29.3757 -36.2065 -0.2 - vertex 29.5705 -36.1356 0 - vertex 29.3757 -36.2065 0 - endloop - endfacet - facet normal 0.34216 -0.939642 0 - outer loop - vertex 29.5705 -36.1356 0 - vertex 29.3757 -36.2065 -0.2 - vertex 29.5705 -36.1356 -0.2 - endloop - endfacet - facet normal 0.265166 -0.964203 0 - outer loop - vertex 29.5705 -36.1356 -0.2 - vertex 29.7804 -36.0779 0 - vertex 29.5705 -36.1356 0 - endloop - endfacet - facet normal 0.265166 -0.964203 0 - outer loop - vertex 29.7804 -36.0779 0 - vertex 29.5705 -36.1356 -0.2 - vertex 29.7804 -36.0779 -0.2 - endloop - endfacet - facet normal 0.237962 -0.971274 0 - outer loop - vertex 29.7804 -36.0779 -0.2 - vertex 30.4037 -35.9251 0 - vertex 29.7804 -36.0779 0 - endloop - endfacet - facet normal 0.237962 -0.971274 0 - outer loop - vertex 30.4037 -35.9251 0 - vertex 29.7804 -36.0779 -0.2 - vertex 30.4037 -35.9251 -0.2 - endloop - endfacet - facet normal 0.297523 -0.954715 0 - outer loop - vertex 30.4037 -35.9251 -0.2 - vertex 30.6629 -35.8443 0 - vertex 30.4037 -35.9251 0 - endloop - endfacet - facet normal 0.297523 -0.954715 0 - outer loop - vertex 30.6629 -35.8443 0 - vertex 30.4037 -35.9251 -0.2 - vertex 30.6629 -35.8443 -0.2 - endloop - endfacet - facet normal 0.380574 -0.92475 0 - outer loop - vertex 30.6629 -35.8443 -0.2 - vertex 30.8955 -35.7486 0 - vertex 30.6629 -35.8443 0 - endloop - endfacet - facet normal 0.380574 -0.92475 0 - outer loop - vertex 30.8955 -35.7486 0 - vertex 30.6629 -35.8443 -0.2 - vertex 30.8955 -35.7486 -0.2 - endloop - endfacet - facet normal 0.491191 -0.871052 0 - outer loop - vertex 30.8955 -35.7486 -0.2 - vertex 31.1075 -35.6291 0 - vertex 30.8955 -35.7486 0 - endloop - endfacet - facet normal 0.491191 -0.871052 0 - outer loop - vertex 31.1075 -35.6291 0 - vertex 30.8955 -35.7486 -0.2 - vertex 31.1075 -35.6291 -0.2 - endloop - endfacet - facet normal 0.610497 -0.792019 0 - outer loop - vertex 31.1075 -35.6291 -0.2 - vertex 31.3052 -35.4767 0 - vertex 31.1075 -35.6291 0 - endloop - endfacet - facet normal 0.610497 -0.792019 0 - outer loop - vertex 31.3052 -35.4767 0 - vertex 31.1075 -35.6291 -0.2 - vertex 31.3052 -35.4767 -0.2 - endloop - endfacet - facet normal 0.71556 -0.698551 0 - outer loop - vertex 31.3052 -35.4767 0 - vertex 31.4948 -35.2825 -0.2 - vertex 31.4948 -35.2825 0 - endloop - endfacet - facet normal 0.71556 -0.698551 0 - outer loop - vertex 31.4948 -35.2825 -0.2 - vertex 31.3052 -35.4767 0 - vertex 31.3052 -35.4767 -0.2 - endloop - endfacet - facet normal 0.793854 -0.608109 0 - outer loop - vertex 31.4948 -35.2825 0 - vertex 31.6824 -35.0376 -0.2 - vertex 31.6824 -35.0376 0 - endloop - endfacet - facet normal 0.793854 -0.608109 0 - outer loop - vertex 31.6824 -35.0376 -0.2 - vertex 31.4948 -35.2825 0 - vertex 31.4948 -35.2825 -0.2 - endloop - endfacet - facet normal 0.846168 -0.532916 0 - outer loop - vertex 31.6824 -35.0376 0 - vertex 31.8743 -34.7329 -0.2 - vertex 31.8743 -34.7329 0 - endloop - endfacet - facet normal 0.846168 -0.532916 0 - outer loop - vertex 31.8743 -34.7329 -0.2 - vertex 31.6824 -35.0376 0 - vertex 31.6824 -35.0376 -0.2 - endloop - endfacet - facet normal 0.879213 -0.47643 0 - outer loop - vertex 31.8743 -34.7329 0 - vertex 32.0766 -34.3595 -0.2 - vertex 32.0766 -34.3595 0 - endloop - endfacet - facet normal 0.879213 -0.47643 0 - outer loop - vertex 32.0766 -34.3595 -0.2 - vertex 31.8743 -34.7329 0 - vertex 31.8743 -34.7329 -0.2 - endloop - endfacet - facet normal 0.906414 -0.422389 0 - outer loop - vertex 32.0766 -34.3595 0 - vertex 32.5373 -33.371 -0.2 - vertex 32.5373 -33.371 0 - endloop - endfacet - facet normal 0.906414 -0.422389 0 - outer loop - vertex 32.5373 -33.371 -0.2 - vertex 32.0766 -34.3595 0 - vertex 32.0766 -34.3595 -0.2 - endloop - endfacet - facet normal 0.921762 -0.387755 0 - outer loop - vertex 32.5373 -33.371 0 - vertex 33.1139 -32.0001 -0.2 - vertex 33.1139 -32.0001 0 - endloop - endfacet - facet normal 0.921762 -0.387755 0 - outer loop - vertex 33.1139 -32.0001 -0.2 - vertex 32.5373 -33.371 0 - vertex 32.5373 -33.371 -0.2 - endloop - endfacet - facet normal 0.926317 -0.376745 0 - outer loop - vertex 33.1139 -32.0001 0 - vertex 33.8561 -30.1753 -0.2 - vertex 33.8561 -30.1753 0 - endloop - endfacet - facet normal 0.926317 -0.376745 0 - outer loop - vertex 33.8561 -30.1753 -0.2 - vertex 33.1139 -32.0001 0 - vertex 33.1139 -32.0001 -0.2 - endloop - endfacet - facet normal 0.926524 -0.376237 0 - outer loop - vertex 33.8561 -30.1753 0 - vertex 35.3422 -26.5156 -0.2 - vertex 35.3422 -26.5156 0 - endloop - endfacet - facet normal 0.926524 -0.376237 0 - outer loop - vertex 35.3422 -26.5156 -0.2 - vertex 33.8561 -30.1753 0 - vertex 33.8561 -30.1753 -0.2 - endloop - endfacet - facet normal 0.930815 -0.36549 0 - outer loop - vertex 35.3422 -26.5156 0 - vertex 35.6833 -25.6471 -0.2 - vertex 35.6833 -25.6471 0 - endloop - endfacet - facet normal 0.930815 -0.36549 0 - outer loop - vertex 35.6833 -25.6471 -0.2 - vertex 35.3422 -26.5156 0 - vertex 35.3422 -26.5156 -0.2 - endloop - endfacet - facet normal 0.940922 -0.338624 0 - outer loop - vertex 35.6833 -25.6471 0 - vertex 35.957 -24.8864 -0.2 - vertex 35.957 -24.8864 0 - endloop - endfacet - facet normal 0.940922 -0.338624 0 - outer loop - vertex 35.957 -24.8864 -0.2 - vertex 35.6833 -25.6471 0 - vertex 35.6833 -25.6471 -0.2 - endloop - endfacet - facet normal 0.953192 -0.302366 0 - outer loop - vertex 35.957 -24.8864 0 - vertex 36.1622 -24.2394 -0.2 - vertex 36.1622 -24.2394 0 - endloop - endfacet - facet normal 0.953192 -0.302366 0 - outer loop - vertex 36.1622 -24.2394 -0.2 - vertex 35.957 -24.8864 0 - vertex 35.957 -24.8864 -0.2 - endloop - endfacet - facet normal 0.968572 -0.248734 0 - outer loop - vertex 36.1622 -24.2394 0 - vertex 36.2977 -23.7121 -0.2 - vertex 36.2977 -23.7121 0 - endloop - endfacet - facet normal 0.968572 -0.248734 0 - outer loop - vertex 36.2977 -23.7121 -0.2 - vertex 36.1622 -24.2394 0 - vertex 36.1622 -24.2394 -0.2 - endloop - endfacet - facet normal 0.987422 -0.158107 0 - outer loop - vertex 36.2977 -23.7121 0 - vertex 36.362 -23.3104 -0.2 - vertex 36.362 -23.3104 0 - endloop - endfacet - facet normal 0.987422 -0.158107 0 - outer loop - vertex 36.362 -23.3104 -0.2 - vertex 36.2977 -23.7121 0 - vertex 36.2977 -23.7121 -0.2 - endloop - endfacet - facet normal 0.999436 -0.0335772 0 - outer loop - vertex 36.362 -23.3104 0 - vertex 36.3671 -23.1585 -0.2 - vertex 36.3671 -23.1585 0 - endloop - endfacet - facet normal 0.999436 -0.0335772 0 - outer loop - vertex 36.3671 -23.1585 -0.2 - vertex 36.362 -23.3104 0 - vertex 36.362 -23.3104 -0.2 - endloop - endfacet - facet normal 0.993888 0.110395 0 - outer loop - vertex 36.3671 -23.1585 0 - vertex 36.3539 -23.0402 -0.2 - vertex 36.3539 -23.0402 0 - endloop - endfacet - facet normal 0.993888 0.110395 0 - outer loop - vertex 36.3539 -23.0402 -0.2 - vertex 36.3671 -23.1585 0 - vertex 36.3671 -23.1585 -0.2 - endloop - endfacet - facet normal 0.93611 0.351708 0 - outer loop - vertex 36.3539 -23.0402 0 - vertex 36.3224 -22.9562 -0.2 - vertex 36.3224 -22.9562 0 - endloop - endfacet - facet normal 0.93611 0.351708 0 - outer loop - vertex 36.3224 -22.9562 -0.2 - vertex 36.3539 -23.0402 0 - vertex 36.3539 -23.0402 -0.2 - endloop - endfacet - facet normal 0.698293 0.715812 -0 - outer loop - vertex 36.3224 -22.9562 -0.2 - vertex 36.2723 -22.9073 0 - vertex 36.3224 -22.9562 0 - endloop - endfacet - facet normal 0.698293 0.715812 0 - outer loop - vertex 36.2723 -22.9073 0 - vertex 36.3224 -22.9562 -0.2 - vertex 36.2723 -22.9073 -0.2 - endloop - endfacet - facet normal 0.186395 0.982475 -0 - outer loop - vertex 36.2723 -22.9073 -0.2 - vertex 36.2034 -22.8943 0 - vertex 36.2723 -22.9073 0 - endloop - endfacet - facet normal 0.186395 0.982475 0 - outer loop - vertex 36.2034 -22.8943 0 - vertex 36.2723 -22.9073 -0.2 - vertex 36.2034 -22.8943 -0.2 - endloop - endfacet - facet normal -0.258789 0.965934 0 - outer loop - vertex 36.2034 -22.8943 -0.2 - vertex 36.1157 -22.9178 0 - vertex 36.2034 -22.8943 0 - endloop - endfacet - facet normal -0.258789 0.965934 0 - outer loop - vertex 36.1157 -22.9178 0 - vertex 36.2034 -22.8943 -0.2 - vertex 36.1157 -22.9178 -0.2 - endloop - endfacet - facet normal -0.248765 0.968564 0 - outer loop - vertex 36.1157 -22.9178 -0.2 - vertex 35.9442 -22.9618 0 - vertex 36.1157 -22.9178 0 - endloop - endfacet - facet normal -0.248765 0.968564 0 - outer loop - vertex 35.9442 -22.9618 0 - vertex 36.1157 -22.9178 -0.2 - vertex 35.9442 -22.9618 -0.2 - endloop - endfacet - facet normal -0.0720501 0.997401 0 - outer loop - vertex 35.9442 -22.9618 -0.2 - vertex 35.7166 -22.9783 0 - vertex 35.9442 -22.9618 0 - endloop - endfacet - facet normal -0.0720501 0.997401 0 - outer loop - vertex 35.7166 -22.9783 0 - vertex 35.9442 -22.9618 -0.2 - vertex 35.7166 -22.9783 -0.2 - endloop - endfacet - facet normal 0.0451334 0.998981 -0 - outer loop - vertex 35.7166 -22.9783 -0.2 - vertex 35.4626 -22.9668 0 - vertex 35.7166 -22.9783 0 - endloop - endfacet - facet normal 0.0451334 0.998981 0 - outer loop - vertex 35.4626 -22.9668 0 - vertex 35.7166 -22.9783 -0.2 - vertex 35.4626 -22.9668 -0.2 - endloop - endfacet - facet normal 0.156383 0.987697 -0 - outer loop - vertex 35.4626 -22.9668 -0.2 - vertex 35.2118 -22.9271 0 - vertex 35.4626 -22.9668 0 - endloop - endfacet - facet normal 0.156383 0.987697 0 - outer loop - vertex 35.2118 -22.9271 0 - vertex 35.4626 -22.9668 -0.2 - vertex 35.2118 -22.9271 -0.2 - endloop - endfacet - facet normal 0.299759 0.954015 -0 - outer loop - vertex 35.2118 -22.9271 -0.2 - vertex 34.9345 -22.8399 0 - vertex 35.2118 -22.9271 0 - endloop - endfacet - facet normal 0.299759 0.954015 0 - outer loop - vertex 34.9345 -22.8399 0 - vertex 35.2118 -22.9271 -0.2 - vertex 34.9345 -22.8399 -0.2 - endloop - endfacet - facet normal 0.486497 0.873682 -0 - outer loop - vertex 34.9345 -22.8399 -0.2 - vertex 34.8338 -22.7839 0 - vertex 34.9345 -22.8399 0 - endloop - endfacet - facet normal 0.486497 0.873682 0 - outer loop - vertex 34.8338 -22.7839 0 - vertex 34.9345 -22.8399 -0.2 - vertex 34.8338 -22.7839 -0.2 - endloop - endfacet - facet normal 0.653163 0.757217 -0 - outer loop - vertex 34.8338 -22.7839 -0.2 - vertex 34.7558 -22.7166 0 - vertex 34.8338 -22.7839 0 - endloop - endfacet - facet normal 0.653163 0.757217 0 - outer loop - vertex 34.7558 -22.7166 0 - vertex 34.8338 -22.7839 -0.2 - vertex 34.7558 -22.7166 -0.2 - endloop - endfacet - facet normal 0.815361 0.578952 0 - outer loop - vertex 34.7558 -22.7166 0 - vertex 34.6986 -22.636 -0.2 - vertex 34.6986 -22.636 0 - endloop - endfacet - facet normal 0.815361 0.578952 0 - outer loop - vertex 34.6986 -22.636 -0.2 - vertex 34.7558 -22.7166 0 - vertex 34.7558 -22.7166 -0.2 - endloop - endfacet - facet normal 0.928456 0.371442 0 - outer loop - vertex 34.6986 -22.636 0 - vertex 34.6602 -22.54 -0.2 - vertex 34.6602 -22.54 0 - endloop - endfacet - facet normal 0.928456 0.371442 0 - outer loop - vertex 34.6602 -22.54 -0.2 - vertex 34.6986 -22.636 0 - vertex 34.6986 -22.636 -0.2 - endloop - endfacet - facet normal 0.982392 0.186829 0 - outer loop - vertex 34.6602 -22.54 0 - vertex 34.6385 -22.4262 -0.2 - vertex 34.6385 -22.4262 0 - endloop - endfacet - facet normal 0.982392 0.186829 0 - outer loop - vertex 34.6385 -22.4262 -0.2 - vertex 34.6602 -22.54 0 - vertex 34.6602 -22.54 -0.2 - endloop - endfacet - facet normal 0.998716 0.050655 0 - outer loop - vertex 34.6385 -22.4262 0 - vertex 34.6318 -22.2927 -0.2 - vertex 34.6318 -22.2927 0 - endloop - endfacet - facet normal 0.998716 0.050655 0 - outer loop - vertex 34.6318 -22.2927 -0.2 - vertex 34.6385 -22.4262 0 - vertex 34.6385 -22.4262 -0.2 - endloop - endfacet - facet normal 0.995457 -0.0952108 0 - outer loop - vertex 34.6318 -22.2927 0 - vertex 34.653 -22.0706 -0.2 - vertex 34.653 -22.0706 0 - endloop - endfacet - facet normal 0.995457 -0.0952108 0 - outer loop - vertex 34.653 -22.0706 -0.2 - vertex 34.6318 -22.2927 0 - vertex 34.6318 -22.2927 -0.2 - endloop - endfacet - facet normal 0.963199 -0.268788 0 - outer loop - vertex 34.653 -22.0706 0 - vertex 34.713 -21.8554 -0.2 - vertex 34.713 -21.8554 0 - endloop - endfacet - facet normal 0.963199 -0.268788 0 - outer loop - vertex 34.713 -21.8554 -0.2 - vertex 34.653 -22.0706 0 - vertex 34.653 -22.0706 -0.2 - endloop - endfacet - facet normal 0.90719 -0.420722 0 - outer loop - vertex 34.713 -21.8554 0 - vertex 34.8063 -21.6543 -0.2 - vertex 34.8063 -21.6543 0 - endloop - endfacet - facet normal 0.90719 -0.420722 0 - outer loop - vertex 34.8063 -21.6543 -0.2 - vertex 34.713 -21.8554 0 - vertex 34.713 -21.8554 -0.2 - endloop - endfacet - facet normal 0.830216 -0.557442 0 - outer loop - vertex 34.8063 -21.6543 0 - vertex 34.9274 -21.474 -0.2 - vertex 34.9274 -21.474 0 - endloop - endfacet - facet normal 0.830216 -0.557442 0 - outer loop - vertex 34.9274 -21.474 -0.2 - vertex 34.8063 -21.6543 0 - vertex 34.8063 -21.6543 -0.2 - endloop - endfacet - facet normal 0.728585 -0.684956 0 - outer loop - vertex 34.9274 -21.474 0 - vertex 35.0706 -21.3217 -0.2 - vertex 35.0706 -21.3217 0 - endloop - endfacet - facet normal 0.728585 -0.684956 0 - outer loop - vertex 35.0706 -21.3217 -0.2 - vertex 34.9274 -21.474 0 - vertex 34.9274 -21.474 -0.2 - endloop - endfacet - facet normal 0.592071 -0.805886 0 - outer loop - vertex 35.0706 -21.3217 -0.2 - vertex 35.2304 -21.2043 0 - vertex 35.0706 -21.3217 0 - endloop - endfacet - facet normal 0.592071 -0.805886 0 - outer loop - vertex 35.2304 -21.2043 0 - vertex 35.0706 -21.3217 -0.2 - vertex 35.2304 -21.2043 -0.2 - endloop - endfacet - facet normal 0.404331 -0.914613 0 - outer loop - vertex 35.2304 -21.2043 -0.2 - vertex 35.4013 -21.1287 0 - vertex 35.2304 -21.2043 0 - endloop - endfacet - facet normal 0.404331 -0.914613 0 - outer loop - vertex 35.4013 -21.1287 0 - vertex 35.2304 -21.2043 -0.2 - vertex 35.4013 -21.1287 -0.2 - endloop - endfacet - facet normal 0.149785 -0.988719 0 - outer loop - vertex 35.4013 -21.1287 -0.2 - vertex 35.5778 -21.102 0 - vertex 35.4013 -21.1287 0 - endloop - endfacet - facet normal 0.149785 -0.988719 0 - outer loop - vertex 35.5778 -21.102 0 - vertex 35.4013 -21.1287 -0.2 - vertex 35.5778 -21.102 -0.2 - endloop - endfacet - facet normal 0.22645 -0.974023 0 - outer loop - vertex 35.5778 -21.102 -0.2 - vertex 35.9118 -21.0243 0 - vertex 35.5778 -21.102 0 - endloop - endfacet - facet normal 0.22645 -0.974023 0 - outer loop - vertex 35.9118 -21.0243 0 - vertex 35.5778 -21.102 -0.2 - vertex 35.9118 -21.0243 -0.2 - endloop - endfacet - facet normal 0.304725 -0.95244 0 - outer loop - vertex 35.9118 -21.0243 -0.2 - vertex 36.5724 -20.813 0 - vertex 35.9118 -21.0243 0 - endloop - endfacet - facet normal 0.304725 -0.95244 0 - outer loop - vertex 36.5724 -20.813 0 - vertex 35.9118 -21.0243 -0.2 - vertex 36.5724 -20.813 -0.2 - endloop - endfacet - facet normal 0.331013 -0.943626 0 - outer loop - vertex 36.5724 -20.813 -0.2 - vertex 37.4642 -20.5001 0 - vertex 36.5724 -20.813 0 - endloop - endfacet - facet normal 0.331013 -0.943626 0 - outer loop - vertex 37.4642 -20.5001 0 - vertex 36.5724 -20.813 -0.2 - vertex 37.4642 -20.5001 -0.2 - endloop - endfacet - facet normal 0.348531 -0.937297 0 - outer loop - vertex 37.4642 -20.5001 -0.2 - vertex 38.4916 -20.1181 0 - vertex 37.4642 -20.5001 0 - endloop - endfacet - facet normal 0.348531 -0.937297 0 - outer loop - vertex 38.4916 -20.1181 0 - vertex 37.4642 -20.5001 -0.2 - vertex 38.4916 -20.1181 -0.2 - endloop - endfacet - facet normal 0.345306 -0.93849 0 - outer loop - vertex 38.4916 -20.1181 -0.2 - vertex 39.5298 -19.7361 0 - vertex 38.4916 -20.1181 0 - endloop - endfacet - facet normal 0.345306 -0.93849 0 - outer loop - vertex 39.5298 -19.7361 0 - vertex 38.4916 -20.1181 -0.2 - vertex 39.5298 -19.7361 -0.2 - endloop - endfacet - facet normal 0.321461 -0.946923 0 - outer loop - vertex 39.5298 -19.7361 -0.2 - vertex 40.4513 -19.4233 0 - vertex 39.5298 -19.7361 0 - endloop - endfacet - facet normal 0.321461 -0.946923 0 - outer loop - vertex 40.4513 -19.4233 0 - vertex 39.5298 -19.7361 -0.2 - vertex 40.4513 -19.4233 -0.2 - endloop - endfacet - facet normal 0.28733 -0.957832 0 - outer loop - vertex 40.4513 -19.4233 -0.2 - vertex 41.156 -19.2119 0 - vertex 40.4513 -19.4233 0 - endloop - endfacet - facet normal 0.28733 -0.957832 0 - outer loop - vertex 41.156 -19.2119 0 - vertex 40.4513 -19.4233 -0.2 - vertex 41.156 -19.2119 -0.2 - endloop - endfacet - facet normal 0.23347 -0.972364 0 - outer loop - vertex 41.156 -19.2119 -0.2 - vertex 41.3957 -19.1543 0 - vertex 41.156 -19.2119 0 - endloop - endfacet - facet normal 0.23347 -0.972364 0 - outer loop - vertex 41.3957 -19.1543 0 - vertex 41.156 -19.2119 -0.2 - vertex 41.3957 -19.1543 -0.2 - endloop - endfacet - facet normal 0.13452 -0.990911 0 - outer loop - vertex 41.3957 -19.1543 -0.2 - vertex 41.5436 -19.1343 0 - vertex 41.3957 -19.1543 0 - endloop - endfacet - facet normal 0.13452 -0.990911 0 - outer loop - vertex 41.5436 -19.1343 0 - vertex 41.3957 -19.1543 -0.2 - vertex 41.5436 -19.1343 -0.2 - endloop - endfacet - facet normal -0.114485 -0.993425 0 - outer loop - vertex 41.5436 -19.1343 -0.2 - vertex 41.7426 -19.1572 0 - vertex 41.5436 -19.1343 0 - endloop - endfacet - facet normal -0.114485 -0.993425 -0 - outer loop - vertex 41.7426 -19.1572 0 - vertex 41.5436 -19.1343 -0.2 - vertex 41.7426 -19.1572 -0.2 - endloop - endfacet - facet normal -0.379137 -0.925341 0 - outer loop - vertex 41.7426 -19.1572 -0.2 - vertex 41.9051 -19.2238 0 - vertex 41.7426 -19.1572 0 - endloop - endfacet - facet normal -0.379137 -0.925341 -0 - outer loop - vertex 41.9051 -19.2238 0 - vertex 41.7426 -19.1572 -0.2 - vertex 41.9051 -19.2238 -0.2 - endloop - endfacet - facet normal -0.651079 -0.75901 0 - outer loop - vertex 41.9051 -19.2238 -0.2 - vertex 42.0297 -19.3306 0 - vertex 41.9051 -19.2238 0 - endloop - endfacet - facet normal -0.651079 -0.75901 -0 - outer loop - vertex 42.0297 -19.3306 0 - vertex 41.9051 -19.2238 -0.2 - vertex 42.0297 -19.3306 -0.2 - endloop - endfacet - facet normal -0.860116 -0.510098 0 - outer loop - vertex 42.1149 -19.4743 -0.2 - vertex 42.0297 -19.3306 0 - vertex 42.0297 -19.3306 -0.2 - endloop - endfacet - facet normal -0.860116 -0.510098 0 - outer loop - vertex 42.0297 -19.3306 0 - vertex 42.1149 -19.4743 -0.2 - vertex 42.1149 -19.4743 0 - endloop - endfacet - facet normal -0.969806 -0.243876 0 - outer loop - vertex 42.1595 -19.6516 -0.2 - vertex 42.1149 -19.4743 0 - vertex 42.1149 -19.4743 -0.2 - endloop - endfacet - facet normal -0.969806 -0.243876 0 - outer loop - vertex 42.1149 -19.4743 0 - vertex 42.1595 -19.6516 -0.2 - vertex 42.1595 -19.6516 0 - endloop - endfacet - facet normal -0.999925 -0.0122495 0 - outer loop - vertex 42.162 -19.859 -0.2 - vertex 42.1595 -19.6516 0 - vertex 42.1595 -19.6516 -0.2 - endloop - endfacet - facet normal -0.999925 -0.0122495 0 - outer loop - vertex 42.1595 -19.6516 0 - vertex 42.162 -19.859 -0.2 - vertex 42.162 -19.859 0 - endloop - endfacet - facet normal -0.985121 0.171861 0 - outer loop - vertex 42.1212 -20.0931 -0.2 - vertex 42.162 -19.859 0 - vertex 42.162 -19.859 -0.2 - endloop - endfacet - facet normal -0.985121 0.171861 0 - outer loop - vertex 42.162 -19.859 0 - vertex 42.1212 -20.0931 -0.2 - vertex 42.1212 -20.0931 0 - endloop - endfacet - facet normal -0.948956 0.315408 0 - outer loop - vertex 42.0356 -20.3507 -0.2 - vertex 42.1212 -20.0931 0 - vertex 42.1212 -20.0931 -0.2 - endloop - endfacet - facet normal -0.948956 0.315408 0 - outer loop - vertex 42.1212 -20.0931 0 - vertex 42.0356 -20.3507 -0.2 - vertex 42.0356 -20.3507 0 - endloop - endfacet - facet normal -0.935213 0.354086 0 - outer loop - vertex 41.9515 -20.5727 -0.2 - vertex 42.0356 -20.3507 0 - vertex 42.0356 -20.3507 -0.2 - endloop - endfacet - facet normal -0.935213 0.354086 0 - outer loop - vertex 42.0356 -20.3507 0 - vertex 41.9515 -20.5727 -0.2 - vertex 41.9515 -20.5727 0 - endloop - endfacet - facet normal -0.96654 0.256517 0 - outer loop - vertex 41.9099 -20.7296 -0.2 - vertex 41.9515 -20.5727 0 - vertex 41.9515 -20.5727 -0.2 - endloop - endfacet - facet normal -0.96654 0.256517 0 - outer loop - vertex 41.9515 -20.5727 0 - vertex 41.9099 -20.7296 -0.2 - vertex 41.9099 -20.7296 0 - endloop - endfacet - facet normal -0.996169 -0.0874488 0 - outer loop - vertex 41.9179 -20.8207 -0.2 - vertex 41.9099 -20.7296 0 - vertex 41.9099 -20.7296 -0.2 - endloop - endfacet - facet normal -0.996169 -0.0874488 0 - outer loop - vertex 41.9099 -20.7296 0 - vertex 41.9179 -20.8207 -0.2 - vertex 41.9179 -20.8207 0 - endloop - endfacet - facet normal -0.639023 -0.769188 0 - outer loop - vertex 41.9179 -20.8207 -0.2 - vertex 41.9427 -20.8413 0 - vertex 41.9179 -20.8207 0 - endloop - endfacet - facet normal -0.639023 -0.769188 -0 - outer loop - vertex 41.9427 -20.8413 0 - vertex 41.9179 -20.8207 -0.2 - vertex 41.9427 -20.8413 -0.2 - endloop - endfacet - facet normal -0.0984788 -0.995139 0 - outer loop - vertex 41.9427 -20.8413 -0.2 - vertex 41.9827 -20.8453 0 - vertex 41.9427 -20.8413 0 - endloop - endfacet - facet normal -0.0984788 -0.995139 -0 - outer loop - vertex 41.9827 -20.8453 0 - vertex 41.9427 -20.8413 -0.2 - vertex 41.9827 -20.8453 -0.2 - endloop - endfacet - facet normal 0.313279 -0.949661 0 - outer loop - vertex 41.9827 -20.8453 -0.2 - vertex 42.1116 -20.8028 0 - vertex 41.9827 -20.8453 0 - endloop - endfacet - facet normal 0.313279 -0.949661 0 - outer loop - vertex 42.1116 -20.8028 0 - vertex 41.9827 -20.8453 -0.2 - vertex 42.1116 -20.8028 -0.2 - endloop - endfacet - facet normal 0.482712 -0.875779 0 - outer loop - vertex 42.1116 -20.8028 -0.2 - vertex 42.3117 -20.6924 0 - vertex 42.1116 -20.8028 0 - endloop - endfacet - facet normal 0.482712 -0.875779 0 - outer loop - vertex 42.3117 -20.6924 0 - vertex 42.1116 -20.8028 -0.2 - vertex 42.3117 -20.6924 -0.2 - endloop - endfacet - facet normal 0.552983 -0.833193 0 - outer loop - vertex 42.3117 -20.6924 -0.2 - vertex 42.9547 -20.2657 0 - vertex 42.3117 -20.6924 0 - endloop - endfacet - facet normal 0.552983 -0.833193 0 - outer loop - vertex 42.9547 -20.2657 0 - vertex 42.3117 -20.6924 -0.2 - vertex 42.9547 -20.2657 -0.2 - endloop - endfacet - facet normal 0.550831 -0.834617 0 - outer loop - vertex 42.9547 -20.2657 -0.2 - vertex 43.4033 -19.9696 0 - vertex 42.9547 -20.2657 0 - endloop - endfacet - facet normal 0.550831 -0.834617 0 - outer loop - vertex 43.4033 -19.9696 0 - vertex 42.9547 -20.2657 -0.2 - vertex 43.4033 -19.9696 -0.2 - endloop - endfacet - facet normal 0.505722 -0.862696 0 - outer loop - vertex 43.4033 -19.9696 -0.2 - vertex 43.8201 -19.7253 0 - vertex 43.4033 -19.9696 0 - endloop - endfacet - facet normal 0.505722 -0.862696 0 - outer loop - vertex 43.8201 -19.7253 0 - vertex 43.4033 -19.9696 -0.2 - vertex 43.8201 -19.7253 -0.2 - endloop - endfacet - facet normal 0.444191 -0.895932 0 - outer loop - vertex 43.8201 -19.7253 -0.2 - vertex 44.2162 -19.5289 0 - vertex 43.8201 -19.7253 0 - endloop - endfacet - facet normal 0.444191 -0.895932 0 - outer loop - vertex 44.2162 -19.5289 0 - vertex 43.8201 -19.7253 -0.2 - vertex 44.2162 -19.5289 -0.2 - endloop - endfacet - facet normal 0.36641 -0.930454 0 - outer loop - vertex 44.2162 -19.5289 -0.2 - vertex 44.6026 -19.3768 0 - vertex 44.2162 -19.5289 0 - endloop - endfacet - facet normal 0.36641 -0.930454 0 - outer loop - vertex 44.6026 -19.3768 0 - vertex 44.2162 -19.5289 -0.2 - vertex 44.6026 -19.3768 -0.2 - endloop - endfacet - facet normal 0.276888 -0.960902 0 - outer loop - vertex 44.6026 -19.3768 -0.2 - vertex 44.9905 -19.265 0 - vertex 44.6026 -19.3768 0 - endloop - endfacet - facet normal 0.276888 -0.960902 0 - outer loop - vertex 44.9905 -19.265 0 - vertex 44.6026 -19.3768 -0.2 - vertex 44.9905 -19.265 -0.2 - endloop - endfacet - facet normal 0.184446 -0.982843 0 - outer loop - vertex 44.9905 -19.265 -0.2 - vertex 45.391 -19.1898 0 - vertex 44.9905 -19.265 0 - endloop - endfacet - facet normal 0.184446 -0.982843 0 - outer loop - vertex 45.391 -19.1898 0 - vertex 44.9905 -19.265 -0.2 - vertex 45.391 -19.1898 -0.2 - endloop - endfacet - facet normal 0.0992848 -0.995059 0 - outer loop - vertex 45.391 -19.1898 -0.2 - vertex 45.8151 -19.1475 0 - vertex 45.391 -19.1898 0 - endloop - endfacet - facet normal 0.0992848 -0.995059 0 - outer loop - vertex 45.8151 -19.1475 0 - vertex 45.391 -19.1898 -0.2 - vertex 45.8151 -19.1475 -0.2 - endloop - endfacet - facet normal 0.028896 -0.999582 0 - outer loop - vertex 45.8151 -19.1475 -0.2 - vertex 46.274 -19.1343 0 - vertex 45.8151 -19.1475 0 - endloop - endfacet - facet normal 0.028896 -0.999582 0 - outer loop - vertex 46.274 -19.1343 0 - vertex 45.8151 -19.1475 -0.2 - vertex 46.274 -19.1343 -0.2 - endloop - endfacet - facet normal -0.036999 -0.999315 0 - outer loop - vertex 46.274 -19.1343 -0.2 - vertex 46.8289 -19.1548 0 - vertex 46.274 -19.1343 0 - endloop - endfacet - facet normal -0.036999 -0.999315 -0 - outer loop - vertex 46.8289 -19.1548 0 - vertex 46.274 -19.1343 -0.2 - vertex 46.8289 -19.1548 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.1728 30.7024 -0.2 - vertex 12.3025 30.5214 -0.2 - vertex 12.291 30.606 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.1728 30.7024 -0.2 - vertex 12.291 30.606 -0.2 - vertex 12.2478 30.6663 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.0661 30.7144 -0.2 - vertex 12.3025 30.5214 -0.2 - vertex 12.1728 30.7024 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3025 30.5214 -0.2 - vertex 12.0661 30.7144 -0.2 - vertex 12.2821 30.4122 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.9476 30.6899 -0.2 - vertex 12.2821 30.4122 -0.2 - vertex 12.0661 30.7144 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.2821 30.4122 -0.2 - vertex 11.9476 30.6899 -0.2 - vertex 12.23 30.2784 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.7177 30.5077 -0.2 - vertex 12.23 30.2784 -0.2 - vertex 11.8311 30.6195 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.23 30.2784 -0.2 - vertex 11.9476 30.6899 -0.2 - vertex 11.8311 30.6195 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.6088 30.3591 -0.2 - vertex 12.23 30.2784 -0.2 - vertex 11.7177 30.5077 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.23 30.2784 -0.2 - vertex 11.6088 30.3591 -0.2 - vertex 12.0304 29.9363 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.5057 30.1782 -0.2 - vertex 12.0304 29.9363 -0.2 - vertex 11.6088 30.3591 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.0304 29.9363 -0.2 - vertex 11.5057 30.1782 -0.2 - vertex 11.965 29.8184 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.965 29.8184 -0.2 - vertex 11.4096 29.9696 -0.2 - vertex 11.9082 29.6745 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.4096 29.9696 -0.2 - vertex 11.965 29.8184 -0.2 - vertex 11.5057 30.1782 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.6784 17.7808 -0.2 - vertex 26.0696 17.9605 -0.2 - vertex 26.0933 17.5963 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.2605 19.0904 -0.2 - vertex 26.0009 18.2942 -0.2 - vertex 26.0696 17.9605 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.5652 19.0574 -0.2 - vertex 26.1176 19.296 -0.2 - vertex 25.9541 19.4837 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.2605 19.0904 -0.2 - vertex 25.8914 18.5921 -0.2 - vertex 26.0009 18.2942 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.5652 19.0574 -0.2 - vertex 25.9541 19.4837 -0.2 - vertex 25.7697 19.6539 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.2605 19.0904 -0.2 - vertex 25.7448 18.8483 -0.2 - vertex 25.8914 18.5921 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.1176 19.296 -0.2 - vertex 25.5652 19.0574 -0.2 - vertex 25.7448 18.8483 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3564 19.2137 -0.2 - vertex 25.7697 19.6539 -0.2 - vertex 25.5639 19.8069 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.7697 19.6539 -0.2 - vertex 25.3564 19.2137 -0.2 - vertex 25.5652 19.0574 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.1224 19.3115 -0.2 - vertex 25.5639 19.8069 -0.2 - vertex 25.3364 19.943 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.5639 19.8069 -0.2 - vertex 25.1224 19.3115 -0.2 - vertex 25.3564 19.2137 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.9972 19.3368 -0.2 - vertex 25.3364 19.943 -0.2 - vertex 25.087 20.0627 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3364 19.943 -0.2 - vertex 24.9972 19.3368 -0.2 - vertex 25.1224 19.3115 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.087 20.0627 -0.2 - vertex 24.8672 19.3454 -0.2 - vertex 24.9972 19.3368 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8151 20.1664 -0.2 - vertex 24.8672 19.3454 -0.2 - vertex 25.087 20.0627 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8151 20.1664 -0.2 - vertex 24.6124 19.3722 -0.2 - vertex 24.8672 19.3454 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.5205 20.2543 -0.2 - vertex 24.6124 19.3722 -0.2 - vertex 24.8151 20.1664 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.5205 20.2543 -0.2 - vertex 24.2514 19.4451 -0.2 - vertex 24.6124 19.3722 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.2028 20.3268 -0.2 - vertex 24.2514 19.4451 -0.2 - vertex 24.5205 20.2543 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.8321 19.5531 -0.2 - vertex 24.2028 20.3268 -0.2 - vertex 23.8617 20.3844 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.2028 20.3268 -0.2 - vertex 23.8321 19.5531 -0.2 - vertex 24.2514 19.4451 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.4027 19.6849 -0.2 - vertex 23.8617 20.3844 -0.2 - vertex 23.4814 20.4643 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.8617 20.3844 -0.2 - vertex 23.4027 19.6849 -0.2 - vertex 23.8321 19.5531 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.9977 19.8472 -0.2 - vertex 23.4814 20.4643 -0.2 - vertex 23.1504 20.59 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.4814 20.4643 -0.2 - vertex 22.9977 19.8472 -0.2 - vertex 23.4027 19.6849 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.6486 20.047 -0.2 - vertex 23.1504 20.59 -0.2 - vertex 22.8668 20.7638 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.3515 20.2895 -0.2 - vertex 22.8668 20.7638 -0.2 - vertex 22.7421 20.8693 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.1504 20.59 -0.2 - vertex 22.6486 20.047 -0.2 - vertex 22.9977 19.8472 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.2213 20.4283 -0.2 - vertex 22.7421 20.8693 -0.2 - vertex 22.6286 20.9877 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.8989 20.9229 -0.2 - vertex 22.6286 20.9877 -0.2 - vertex 22.4341 21.2638 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.8668 20.7638 -0.2 - vertex 22.3515 20.2895 -0.2 - vertex 22.6486 20.047 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.7362 21.3239 -0.2 - vertex 22.4341 21.2638 -0.2 - vertex 22.2815 21.5943 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.7421 20.8693 -0.2 - vertex 22.2213 20.4283 -0.2 - vertex 22.3515 20.2895 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.6111 21.7881 -0.2 - vertex 22.2815 21.5943 -0.2 - vertex 22.1689 21.9813 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.6286 20.9877 -0.2 - vertex 22.1028 20.5797 -0.2 - vertex 22.2213 20.4283 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.5197 22.3204 -0.2 - vertex 22.1689 21.9813 -0.2 - vertex 22.0944 22.427 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.4205 22.8275 -0.2 - vertex 22.0944 22.427 -0.2 - vertex 21.9928 23.1034 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.3493 23.064 -0.2 - vertex 21.9928 23.1034 -0.2 - vertex 21.926 23.397 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.6286 20.9877 -0.2 - vertex 21.8989 20.9229 -0.2 - vertex 22.1028 20.5797 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.2635 23.2891 -0.2 - vertex 21.926 23.397 -0.2 - vertex 21.8437 23.6658 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1632 23.503 -0.2 - vertex 21.8437 23.6658 -0.2 - vertex 21.7423 23.9135 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.4341 21.2638 -0.2 - vertex 21.7362 21.3239 -0.2 - vertex 21.8989 20.9229 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0482 23.7058 -0.2 - vertex 21.7423 23.9135 -0.2 - vertex 21.6182 24.144 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.2815 21.5943 -0.2 - vertex 21.6111 21.7881 -0.2 - vertex 21.7362 21.3239 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.1689 21.9813 -0.2 - vertex 21.5197 22.3204 -0.2 - vertex 21.6111 21.7881 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9184 23.8976 -0.2 - vertex 21.6182 24.144 -0.2 - vertex 21.4677 24.3609 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.0944 22.427 -0.2 - vertex 21.4205 22.8275 -0.2 - vertex 21.5197 22.3204 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.9928 23.1034 -0.2 - vertex 21.3493 23.064 -0.2 - vertex 21.4205 22.8275 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.7738 24.0784 -0.2 - vertex 21.4677 24.3609 -0.2 - vertex 21.2873 24.568 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.926 23.397 -0.2 - vertex 21.2635 23.2891 -0.2 - vertex 21.3493 23.064 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.8437 23.6658 -0.2 - vertex 21.1632 23.503 -0.2 - vertex 21.2635 23.2891 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.6143 24.2484 -0.2 - vertex 21.2873 24.568 -0.2 - vertex 21.0733 24.7691 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.7423 23.9135 -0.2 - vertex 21.0482 23.7058 -0.2 - vertex 21.1632 23.503 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.6182 24.144 -0.2 - vertex 20.9184 23.8976 -0.2 - vertex 21.0482 23.7058 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.4398 24.4076 -0.2 - vertex 21.0733 24.7691 -0.2 - vertex 20.8221 24.9679 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.4677 24.3609 -0.2 - vertex 20.7738 24.0784 -0.2 - vertex 20.9184 23.8976 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.2873 24.568 -0.2 - vertex 20.6143 24.2484 -0.2 - vertex 20.7738 24.0784 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2502 24.5562 -0.2 - vertex 20.8221 24.9679 -0.2 - vertex 20.53 25.168 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0733 24.7691 -0.2 - vertex 20.4398 24.4076 -0.2 - vertex 20.6143 24.2484 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.8221 24.9679 -0.2 - vertex 20.2502 24.5562 -0.2 - vertex 20.4398 24.4076 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0455 24.6942 -0.2 - vertex 20.53 25.168 -0.2 - vertex 20.1936 25.3734 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.53 25.168 -0.2 - vertex 20.0455 24.6942 -0.2 - vertex 20.2502 24.5562 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.1936 25.3734 -0.2 - vertex 19.5904 24.9388 -0.2 - vertex 20.0455 24.6942 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3729 25.8147 -0.2 - vertex 19.5904 24.9388 -0.2 - vertex 20.1936 25.3734 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3729 25.8147 -0.2 - vertex 19.0737 25.1422 -0.2 - vertex 19.5904 24.9388 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3729 25.8147 -0.2 - vertex 18.5685 25.3244 -0.2 - vertex 19.0737 25.1422 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.3311 26.3216 -0.2 - vertex 18.5685 25.3244 -0.2 - vertex 19.3729 25.8147 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.3311 26.3216 -0.2 - vertex 18.1033 25.5216 -0.2 - vertex 18.5685 25.3244 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.3311 26.3216 -0.2 - vertex 17.6707 25.7385 -0.2 - vertex 18.1033 25.5216 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6504 26.6607 -0.2 - vertex 17.6707 25.7385 -0.2 - vertex 18.3311 26.3216 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6504 26.6607 -0.2 - vertex 17.2631 25.98 -0.2 - vertex 17.6707 25.7385 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.873 26.2508 -0.2 - vertex 17.6504 26.6607 -0.2 - vertex 17.0889 26.9817 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6504 26.6607 -0.2 - vertex 16.873 26.2508 -0.2 - vertex 17.2631 25.98 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.4932 26.5558 -0.2 - vertex 17.0889 26.9817 -0.2 - vertex 16.6359 27.2959 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.0889 26.9817 -0.2 - vertex 16.4932 26.5558 -0.2 - vertex 16.873 26.2508 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.116 26.8997 -0.2 - vertex 16.6359 27.2959 -0.2 - vertex 16.4467 27.454 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.116 26.8997 -0.2 - vertex 16.4467 27.454 -0.2 - vertex 16.2806 27.6146 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.734 27.2872 -0.2 - vertex 16.2806 27.6146 -0.2 - vertex 16.1362 27.7792 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.6359 27.2959 -0.2 - vertex 16.116 26.8997 -0.2 - vertex 16.4932 26.5558 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.734 27.2872 -0.2 - vertex 16.1362 27.7792 -0.2 - vertex 16.0121 27.9491 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.344 27.7317 -0.2 - vertex 16.0121 27.9491 -0.2 - vertex 15.9071 28.1258 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2193 27.9155 -0.2 - vertex 15.9071 28.1258 -0.2 - vertex 15.8197 28.3106 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1337 28.0941 -0.2 - vertex 15.8197 28.3106 -0.2 - vertex 15.7487 28.5051 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2806 27.6146 -0.2 - vertex 15.734 27.2872 -0.2 - vertex 16.116 26.8997 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0574 28.4965 -0.2 - vertex 15.7487 28.5051 -0.2 - vertex 15.6927 28.7106 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.0552 28.7509 -0.2 - vertex 15.6927 28.7106 -0.2 - vertex 15.6202 29.1601 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.1102 29.496 -0.2 - vertex 15.6202 29.1601 -0.2 - vertex 15.5622 29.5773 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.1701 29.8123 -0.2 - vertex 15.5622 29.5773 -0.2 - vertex 15.49 29.8698 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.2437 30.0088 -0.2 - vertex 15.49 29.8698 -0.2 - vertex 15.4091 30.0386 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.2838 30.0618 -0.2 - vertex 15.4091 30.0386 -0.2 - vertex 15.3672 30.0768 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6202 29.1601 -0.2 - vertex 15.0694 29.0611 -0.2 - vertex 15.0552 28.7509 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2838 30.0618 -0.2 - vertex 15.3672 30.0768 -0.2 - vertex 15.3252 30.0845 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.4091 30.0386 -0.2 - vertex 15.2838 30.0618 -0.2 - vertex 15.2437 30.0088 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.49 29.8698 -0.2 - vertex 15.2437 30.0088 -0.2 - vertex 15.1701 29.8123 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6927 28.7106 -0.2 - vertex 15.0552 28.7509 -0.2 - vertex 15.0574 28.4965 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.5622 29.5773 -0.2 - vertex 15.1701 29.8123 -0.2 - vertex 15.1102 29.496 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6202 29.1601 -0.2 - vertex 15.1102 29.496 -0.2 - vertex 15.0694 29.0611 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.0121 27.9491 -0.2 - vertex 15.344 27.7317 -0.2 - vertex 15.734 27.2872 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.7487 28.5051 -0.2 - vertex 15.0574 28.4965 -0.2 - vertex 15.0817 28.2827 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.9071 28.1258 -0.2 - vertex 15.2193 27.9155 -0.2 - vertex 15.344 27.7317 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.7487 28.5051 -0.2 - vertex 15.0817 28.2827 -0.2 - vertex 15.1337 28.0941 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.8197 28.3106 -0.2 - vertex 15.1337 28.0941 -0.2 - vertex 15.2193 27.9155 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.6024 10.7775 -0.2 - vertex 21.7259 8.22365 -0.2 - vertex 27.5775 10.2019 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 23.6083 4.95794 -0.2 - vertex 27.0158 7.30485 -0.2 - vertex 23.5351 5.37146 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 22.0631 7.89267 -0.2 - vertex 27.5775 10.2019 -0.2 - vertex 21.7259 8.22365 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.5397 9.70386 -0.2 - vertex 22.0631 7.89267 -0.2 - vertex 27.4871 9.26334 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 23.6192 4.7586 -0.2 - vertex 27.0158 7.30485 -0.2 - vertex 23.6083 4.95794 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0158 7.30485 -0.2 - vertex 23.6192 4.7586 -0.2 - vertex 24.9074 2.59483 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 22.3621 7.54907 -0.2 - vertex 27.4871 9.26334 -0.2 - vertex 22.0631 7.89267 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.6129 4.5634 -0.2 - vertex 24.9074 2.59483 -0.2 - vertex 23.6192 4.7586 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.5494 4.18291 -0.2 - vertex 24.9074 2.59483 -0.2 - vertex 23.5897 4.3717 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4176 8.86037 -0.2 - vertex 22.3621 7.54907 -0.2 - vertex 27.3295 8.47496 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.4183 3.81156 -0.2 - vertex 24.9074 2.59483 -0.2 - vertex 23.5494 4.18291 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.22 3.44442 -0.2 - vertex 24.764 2.4559 -0.2 - vertex 23.4183 3.81156 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.9074 2.59483 -0.2 - vertex 23.4183 3.81156 -0.2 - vertex 24.764 2.4559 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.5897 4.3717 -0.2 - vertex 24.9074 2.59483 -0.2 - vertex 23.6129 4.5634 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0158 7.30485 -0.2 - vertex 23.3929 5.8089 -0.2 - vertex 23.5351 5.37146 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3295 8.47496 -0.2 - vertex 22.3621 7.54907 -0.2 - vertex 27.2208 8.08714 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0158 7.30485 -0.2 - vertex 23.1811 6.27516 -0.2 - vertex 23.3929 5.8089 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0158 7.30485 -0.2 - vertex 22.8992 6.77518 -0.2 - vertex 23.1811 6.27516 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.1048 7.68143 -0.2 - vertex 22.8992 6.77518 -0.2 - vertex 27.0158 7.30485 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 22.8992 6.77518 -0.2 - vertex 27.1048 7.68143 -0.2 - vertex 22.6364 7.18064 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4871 9.26334 -0.2 - vertex 22.3621 7.54907 -0.2 - vertex 27.4176 8.86037 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2208 8.08714 -0.2 - vertex 22.6364 7.18064 -0.2 - vertex 27.1048 7.68143 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 22.6364 7.18064 -0.2 - vertex 27.2208 8.08714 -0.2 - vertex 22.3621 7.54907 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.3371 8.55423 -0.2 - vertex 22.2336 15.278 -0.2 - vertex 21.6737 15.039 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.5775 10.2019 -0.2 - vertex 22.0631 7.89267 -0.2 - vertex 27.5397 9.70386 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.8834 8.89663 -0.2 - vertex 21.6737 15.039 -0.2 - vertex 21.1771 14.8489 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.6737 15.039 -0.2 - vertex 20.8834 8.89663 -0.2 - vertex 21.3371 8.55423 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3513 9.26304 -0.2 - vertex 21.1771 14.8489 -0.2 - vertex 20.8452 14.735 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7274 9.66569 -0.2 - vertex 20.8452 14.735 -0.2 - vertex 20.5722 14.6577 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1771 14.8489 -0.2 - vertex 20.3513 9.26304 -0.2 - vertex 20.8834 8.89663 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4723 9.81661 -0.2 - vertex 20.5722 14.6577 -0.2 - vertex 20.327 14.6203 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.2206 9.94402 -0.2 - vertex 20.327 14.6203 -0.2 - vertex 20.0785 14.6265 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.6964 10.137 -0.2 - vertex 20.0785 14.6265 -0.2 - vertex 19.7955 14.6797 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.8452 14.735 -0.2 - vertex 19.7274 9.66569 -0.2 - vertex 20.3513 9.26304 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.5722 14.6577 -0.2 - vertex 19.4723 9.81661 -0.2 - vertex 19.7274 9.66569 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4085 10.2069 -0.2 - vertex 19.7955 14.6797 -0.2 - vertex 19.4469 14.7833 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.327 14.6203 -0.2 - vertex 19.2206 9.94402 -0.2 - vertex 19.4723 9.81661 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0785 14.6265 -0.2 - vertex 18.9645 10.0501 -0.2 - vertex 19.2206 9.94402 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0785 14.6265 -0.2 - vertex 18.6964 10.137 -0.2 - vertex 18.9645 10.0501 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.093 10.2619 -0.2 - vertex 19.4469 14.7833 -0.2 - vertex 18.4281 15.1559 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7955 14.6797 -0.2 - vertex 18.4085 10.2069 -0.2 - vertex 18.6964 10.137 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4469 14.7833 -0.2 - vertex 18.093 10.2619 -0.2 - vertex 18.4085 10.2069 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.499 10.3797 -0.2 - vertex 18.4281 15.1559 -0.2 - vertex 17.448 15.5385 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4281 15.1559 -0.2 - vertex 17.3487 10.3363 -0.2 - vertex 18.093 10.2619 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2187 10.3704 -0.2 - vertex 17.448 15.5385 -0.2 - vertex 16.6072 15.8977 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4281 15.1559 -0.2 - vertex 16.499 10.3797 -0.2 - vertex 17.3487 10.3363 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.448 15.5385 -0.2 - vertex 16.2187 10.3704 -0.2 - vertex 16.499 10.3797 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.6072 15.8977 -0.2 - vertex 16.005 10.3315 -0.2 - vertex 16.2187 10.3704 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.8738 16.2527 -0.2 - vertex 16.005 10.3315 -0.2 - vertex 16.6072 15.8977 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.8738 16.2527 -0.2 - vertex 15.8355 10.2563 -0.2 - vertex 16.005 10.3315 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2162 16.623 -0.2 - vertex 15.8355 10.2563 -0.2 - vertex 15.8738 16.2527 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.8355 10.2563 -0.2 - vertex 15.2162 16.623 -0.2 - vertex 15.6879 10.1383 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.4375 16.5104 -0.2 - vertex 15.6879 10.1383 -0.2 - vertex 15.2162 16.623 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6879 10.1383 -0.2 - vertex 10.4375 16.5104 -0.2 - vertex 15.5399 9.97068 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.5399 9.97068 -0.2 - vertex 10.4375 16.5104 -0.2 - vertex 15.369 9.74689 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 9.73318 16.1788 -0.2 - vertex 15.369 9.74689 -0.2 - vertex 10.4375 16.5104 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.369 9.74689 -0.2 - vertex 9.73318 16.1788 -0.2 - vertex 15.213 9.52982 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.213 9.52982 -0.2 - vertex 9.73318 16.1788 -0.2 - vertex 15.0942 9.33737 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 9.19116 15.9452 -0.2 - vertex 15.0942 9.33737 -0.2 - vertex 9.73318 16.1788 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 8.99158 15.8746 -0.2 - vertex 15.0942 9.33737 -0.2 - vertex 9.19116 15.9452 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.4375 16.5104 -0.2 - vertex 15.2162 16.623 -0.2 - vertex 14.6028 17.0277 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 24.4388 2.25734 -0.2 - vertex 24.764 2.4559 -0.2 - vertex 23.22 3.44442 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.764 2.4559 -0.2 - vertex 24.4388 2.25734 -0.2 - vertex 24.6285 2.34829 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.4388 2.25734 -0.2 - vertex 23.22 3.44442 -0.2 - vertex 24.2201 2.19262 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.2201 2.19262 -0.2 - vertex 23.22 3.44442 -0.2 - vertex 23.9975 2.16372 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.9975 2.16372 -0.2 - vertex 23.22 3.44442 -0.2 - vertex 23.7673 2.14309 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.0427 3.12896 -0.2 - vertex 23.7673 2.14309 -0.2 - vertex 23.22 3.44442 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.7673 2.14309 -0.2 - vertex 23.0427 3.12896 -0.2 - vertex 23.5277 2.10089 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.9115 2.82433 -0.2 - vertex 23.5277 2.10089 -0.2 - vertex 23.0427 3.12896 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.827 2.54396 -0.2 - vertex 23.5277 2.10089 -0.2 - vertex 22.9115 2.82433 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.5277 2.10089 -0.2 - vertex 22.827 2.54396 -0.2 - vertex 23.3072 2.04326 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.7901 2.30129 -0.2 - vertex 23.3072 2.04326 -0.2 - vertex 22.827 2.54396 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.3072 2.04326 -0.2 - vertex 22.7901 2.30129 -0.2 - vertex 23.0469 1.94283 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 22.8016 2.10976 -0.2 - vertex 23.0469 1.94283 -0.2 - vertex 22.7901 2.30129 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 22.8257 2.03737 -0.2 - vertex 23.0469 1.94283 -0.2 - vertex 22.8016 2.10976 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0469 1.94283 -0.2 - vertex 22.8257 2.03737 -0.2 - vertex 22.9727 1.93385 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 22.8622 1.9828 -0.2 - vertex 22.9727 1.93385 -0.2 - vertex 22.8257 2.03737 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.9727 1.93385 -0.2 - vertex 22.8622 1.9828 -0.2 - vertex 22.9112 1.94773 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4227 15.3534 -0.2 - vertex 24.3498 16.3417 -0.2 - vertex 27.4995 15.0808 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3198 15.5987 -0.2 - vertex 24.3498 16.3417 -0.2 - vertex 27.4227 15.3534 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4995 15.0808 -0.2 - vertex 24.3498 16.3417 -0.2 - vertex 27.5539 14.7505 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.3498 16.3417 -0.2 - vertex 27.3198 15.5987 -0.2 - vertex 24.659 16.5397 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.5539 14.7505 -0.2 - vertex 24.3498 16.3417 -0.2 - vertex 27.5896 14.3319 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.1872 15.8473 -0.2 - vertex 24.659 16.5397 -0.2 - vertex 27.3198 15.5987 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.9148 16.0975 -0.2 - vertex 27.5896 14.3319 -0.2 - vertex 24.3498 16.3417 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.659 16.5397 -0.2 - vertex 25.8187 16.7495 -0.2 - vertex 24.7548 16.6154 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.5896 14.3319 -0.2 - vertex 23.9148 16.0975 -0.2 - vertex 27.6103 13.7945 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.3919 15.8262 -0.2 - vertex 27.6103 13.7945 -0.2 - vertex 23.9148 16.0975 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.7548 16.6154 -0.2 - vertex 25.8187 16.7495 -0.2 - vertex 24.8049 16.6725 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.6103 13.7945 -0.2 - vertex 23.3919 15.8262 -0.2 - vertex 27.6211 12.2412 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.659 16.5397 -0.2 - vertex 27.1872 15.8473 -0.2 - vertex 25.8187 16.7495 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.2336 15.278 -0.2 - vertex 27.6211 12.2412 -0.2 - vertex 23.3919 15.8262 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.3371 8.55423 -0.2 - vertex 27.6211 12.2412 -0.2 - vertex 22.2336 15.278 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.8659 16.7424 -0.2 - vertex 27.1872 15.8473 -0.2 - vertex 27.0139 16.2113 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.6211 12.2412 -0.2 - vertex 21.3371 8.55423 -0.2 - vertex 27.6024 10.7775 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 21.7259 8.22365 -0.2 - vertex 27.6024 10.7775 -0.2 - vertex 21.3371 8.55423 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0158 7.30485 -0.2 - vertex 24.9074 2.59483 -0.2 - vertex 26.9517 6.92758 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.1872 15.8473 -0.2 - vertex 25.8659 16.7424 -0.2 - vertex 25.8187 16.7495 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.8659 16.7424 -0.2 - vertex 27.0139 16.2113 -0.2 - vertex 26.8653 16.6367 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.8138 2.23679 -0.2 - vertex 26.9647 2.16551 -0.2 - vertex 26.9615 2.94949 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.4766 2.59351 -0.2 - vertex 26.9615 2.94949 -0.2 - vertex 26.9294 3.98634 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9647 2.16551 -0.2 - vertex 25.8138 2.23679 -0.2 - vertex 26.0094 1.96397 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.185 2.7087 -0.2 - vertex 26.9294 3.98634 -0.2 - vertex 26.8871 5.49316 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 26.3175 1.53367 -0.2 - vertex 26.9647 2.16551 -0.2 - vertex 26.0094 1.96397 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9517 6.92758 -0.2 - vertex 24.9074 2.59483 -0.2 - vertex 26.9103 6.51977 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9615 2.94949 -0.2 - vertex 25.6376 2.44612 -0.2 - vertex 25.8138 2.23679 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.9855 16.8461 -0.2 - vertex 26.8653 16.6367 -0.2 - vertex 26.7571 17.0706 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 26.4455 1.37999 -0.2 - vertex 26.9324 1.61996 -0.2 - vertex 26.3175 1.53367 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.0803 17.2678 -0.2 - vertex 26.7571 17.0706 -0.2 - vertex 26.7051 17.4601 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.0933 17.5963 -0.2 - vertex 26.7051 17.4601 -0.2 - vertex 26.6784 17.7808 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8653 16.6367 -0.2 - vertex 25.9855 16.8461 -0.2 - vertex 25.9096 16.7563 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.0696 17.9605 -0.2 - vertex 26.6784 17.7808 -0.2 - vertex 26.6332 18.0815 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0696 17.9605 -0.2 - vertex 26.6332 18.0815 -0.2 - vertex 26.5691 18.3624 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.7571 17.0706 -0.2 - vertex 26.0434 17.0172 -0.2 - vertex 25.9855 16.8461 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0696 17.9605 -0.2 - vertex 26.5691 18.3624 -0.2 - vertex 26.4859 18.624 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9324 1.61996 -0.2 - vertex 26.4455 1.37999 -0.2 - vertex 26.901 1.43209 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0696 17.9605 -0.2 - vertex 26.4859 18.624 -0.2 - vertex 26.3832 18.8665 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 26.5572 1.2697 -0.2 - vertex 26.901 1.43209 -0.2 - vertex 26.4455 1.37999 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0696 17.9605 -0.2 - vertex 26.3832 18.8665 -0.2 - vertex 26.2605 19.0904 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.7448 18.8483 -0.2 - vertex 26.2605 19.0904 -0.2 - vertex 26.1176 19.296 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.7051 17.4601 -0.2 - vertex 26.0933 17.5963 -0.2 - vertex 26.0803 17.2678 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.7571 17.0706 -0.2 - vertex 26.0803 17.2678 -0.2 - vertex 26.0434 17.0172 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 26.6535 1.20459 -0.2 - vertex 26.8581 1.29842 -0.2 - vertex 26.5572 1.2697 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8581 1.29842 -0.2 - vertex 26.6535 1.20459 -0.2 - vertex 26.8032 1.21715 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8032 1.21715 -0.2 - vertex 26.6535 1.20459 -0.2 - vertex 26.7352 1.18648 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.8659 16.7424 -0.2 - vertex 26.8653 16.6367 -0.2 - vertex 25.9096 16.7563 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9103 6.51977 -0.2 - vertex 24.9074 2.59483 -0.2 - vertex 26.8894 6.05157 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.7157 16.8274 -0.2 - vertex 24.8049 16.6725 -0.2 - vertex 25.8187 16.7495 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.901 1.43209 -0.2 - vertex 26.5572 1.2697 -0.2 - vertex 26.8581 1.29842 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8049 16.6725 -0.2 - vertex 25.7157 16.8274 -0.2 - vertex 24.8294 16.7672 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9647 2.16551 -0.2 - vertex 26.3175 1.53367 -0.2 - vertex 26.9324 1.61996 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8294 16.7672 -0.2 - vertex 25.7157 16.8274 -0.2 - vertex 25.6037 16.9917 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8232 16.8925 -0.2 - vertex 25.6037 16.9917 -0.2 - vertex 25.4856 17.2443 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9615 2.94949 -0.2 - vertex 25.4766 2.59351 -0.2 - vertex 25.6376 2.44612 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.789 17.0321 -0.2 - vertex 25.4856 17.2443 -0.2 - vertex 25.3467 17.5167 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 25.0464 2.67962 -0.2 - vertex 26.8894 6.05157 -0.2 - vertex 24.9074 2.59483 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.7291 17.1695 -0.2 - vertex 25.3467 17.5167 -0.2 - vertex 25.2614 17.6336 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9294 3.98634 -0.2 - vertex 25.3271 2.68052 -0.2 - vertex 25.4766 2.59351 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6602 17.253 -0.2 - vertex 25.2614 17.6336 -0.2 - vertex 25.163 17.7384 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6602 17.253 -0.2 - vertex 25.163 17.7384 -0.2 - vertex 25.0501 17.8316 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9294 3.98634 -0.2 - vertex 25.185 2.7087 -0.2 - vertex 25.3271 2.68052 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6602 17.253 -0.2 - vertex 25.0501 17.8316 -0.2 - vertex 24.9207 17.9138 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8871 5.49316 -0.2 - vertex 25.0464 2.67962 -0.2 - vertex 25.185 2.7087 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8894 6.05157 -0.2 - vertex 25.0464 2.67962 -0.2 - vertex 26.8871 5.49316 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.6037 16.9917 -0.2 - vertex 24.8232 16.8925 -0.2 - vertex 24.8294 16.7672 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.4856 17.2443 -0.2 - vertex 24.789 17.0321 -0.2 - vertex 24.8232 16.8925 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3467 17.5167 -0.2 - vertex 24.7291 17.1695 -0.2 - vertex 24.789 17.0321 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.2614 17.6336 -0.2 - vertex 24.6602 17.253 -0.2 - vertex 24.7291 17.1695 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.5483 17.3222 -0.2 - vertex 24.9207 17.9138 -0.2 - vertex 24.6059 18.0475 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.9207 17.9138 -0.2 - vertex 24.5483 17.3222 -0.2 - vertex 24.6602 17.253 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6059 18.0475 -0.2 - vertex 24.386 17.3783 -0.2 - vertex 24.5483 17.3222 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.166 17.4223 -0.2 - vertex 24.6059 18.0475 -0.2 - vertex 24.2049 18.1437 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6059 18.0475 -0.2 - vertex 24.166 17.4223 -0.2 - vertex 24.386 17.3783 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.7039 18.207 -0.2 - vertex 24.166 17.4223 -0.2 - vertex 24.2049 18.1437 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.7039 18.207 -0.2 - vertex 23.5226 17.4791 -0.2 - vertex 24.166 17.4223 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0891 18.2417 -0.2 - vertex 23.5226 17.4791 -0.2 - vertex 23.7039 18.207 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0891 18.2417 -0.2 - vertex 22.5588 17.5015 -0.2 - vertex 23.5226 17.4791 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.3468 18.2522 -0.2 - vertex 22.5588 17.5015 -0.2 - vertex 23.0891 18.2417 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.5679 18.2611 -0.2 - vertex 22.5588 17.5015 -0.2 - vertex 22.3468 18.2522 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.5679 18.2611 -0.2 - vertex 21.0506 17.5236 -0.2 - vertex 22.5588 17.5015 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9709 18.304 -0.2 - vertex 21.0506 17.5236 -0.2 - vertex 21.5679 18.2611 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.7319 18.3459 -0.2 - vertex 21.0506 17.5236 -0.2 - vertex 20.9709 18.304 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2276 17.5562 -0.2 - vertex 20.7319 18.3459 -0.2 - vertex 20.5281 18.4055 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0333 17.6179 -0.2 - vertex 20.5281 18.4055 -0.2 - vertex 20.3561 18.486 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.7319 18.3459 -0.2 - vertex 20.2276 17.5562 -0.2 - vertex 21.0506 17.5236 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6934 17.9694 -0.2 - vertex 20.3561 18.486 -0.2 - vertex 20.2124 18.5903 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.5281 18.4055 -0.2 - vertex 20.1284 17.5777 -0.2 - vertex 20.2276 17.5562 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5469 18.2611 -0.2 - vertex 20.2124 18.5903 -0.2 - vertex 20.0935 18.7216 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.5281 18.4055 -0.2 - vertex 20.0333 17.6179 -0.2 - vertex 20.1284 17.5777 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4153 18.6317 -0.2 - vertex 20.0935 18.7216 -0.2 - vertex 19.9962 18.8829 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3561 18.486 -0.2 - vertex 19.9424 17.6771 -0.2 - vertex 20.0333 17.6179 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4153 18.6317 -0.2 - vertex 19.9962 18.8829 -0.2 - vertex 19.9169 19.0772 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3561 18.486 -0.2 - vertex 19.8554 17.7553 -0.2 - vertex 19.9424 17.6771 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.2984 19.082 -0.2 - vertex 19.9169 19.0772 -0.2 - vertex 19.8522 19.3078 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.1956 19.6132 -0.2 - vertex 19.8522 19.3078 -0.2 - vertex 19.753 19.8896 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3561 18.486 -0.2 - vertex 19.6934 17.9694 -0.2 - vertex 19.8554 17.7553 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.1065 20.2262 -0.2 - vertex 19.753 19.8896 -0.2 - vertex 19.6713 20.6529 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.0081 20.8787 -0.2 - vertex 19.6713 20.6529 -0.2 - vertex 19.58 21.4118 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0935 18.7216 -0.2 - vertex 19.4153 18.6317 -0.2 - vertex 19.5469 18.2611 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 18.892 21.4494 -0.2 - vertex 19.58 21.4118 -0.2 - vertex 19.5238 21.6908 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.892 21.4494 -0.2 - vertex 19.5238 21.6908 -0.2 - vertex 19.4538 21.9215 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2124 18.5903 -0.2 - vertex 19.5469 18.2611 -0.2 - vertex 19.6934 17.9694 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.7726 21.8767 -0.2 - vertex 19.4538 21.9215 -0.2 - vertex 19.3646 22.1178 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.9169 19.0772 -0.2 - vertex 19.2984 19.082 -0.2 - vertex 19.4153 18.6317 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.7726 21.8767 -0.2 - vertex 19.3646 22.1178 -0.2 - vertex 19.2511 22.2936 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.8522 19.3078 -0.2 - vertex 19.1956 19.6132 -0.2 - vertex 19.2984 19.082 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.7163 22.0174 -0.2 - vertex 19.2511 22.2936 -0.2 - vertex 19.108 22.463 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.753 19.8896 -0.2 - vertex 19.1065 20.2262 -0.2 - vertex 19.1956 19.6132 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6713 20.6529 -0.2 - vertex 19.0081 20.8787 -0.2 - vertex 19.1065 20.2262 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.6646 22.0992 -0.2 - vertex 19.108 22.463 -0.2 - vertex 18.9302 22.6398 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.58 21.4118 -0.2 - vertex 18.892 21.4494 -0.2 - vertex 19.0081 20.8787 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4538 21.9215 -0.2 - vertex 18.7726 21.8767 -0.2 - vertex 18.892 21.4494 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.2511 22.2936 -0.2 - vertex 18.7163 22.0174 -0.2 - vertex 18.7726 21.8767 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.108 22.463 -0.2 - vertex 18.6646 22.0992 -0.2 - vertex 18.7163 22.0174 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4732 22.2317 -0.2 - vertex 18.9302 22.6398 -0.2 - vertex 18.6454 22.8797 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.9302 22.6398 -0.2 - vertex 18.4732 22.2317 -0.2 - vertex 18.6646 22.0992 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.127 22.4141 -0.2 - vertex 18.6454 22.8797 -0.2 - vertex 18.318 23.1114 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.6454 22.8797 -0.2 - vertex 18.127 22.4141 -0.2 - vertex 18.4732 22.2317 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6752 22.6222 -0.2 - vertex 18.318 23.1114 -0.2 - vertex 17.9883 23.3086 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6752 22.6222 -0.2 - vertex 17.9883 23.3086 -0.2 - vertex 17.6969 23.4449 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.318 23.1114 -0.2 - vertex 17.6752 22.6222 -0.2 - vertex 18.127 22.4141 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6969 23.4449 -0.2 - vertex 17.1667 22.8321 -0.2 - vertex 17.6752 22.6222 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2809 23.9862 -0.2 - vertex 17.1667 22.8321 -0.2 - vertex 17.6969 23.4449 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2809 23.9862 -0.2 - vertex 15.5173 23.4995 -0.2 - vertex 17.1667 22.8321 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1328 24.4531 -0.2 - vertex 15.5173 23.4995 -0.2 - vertex 16.2809 23.9862 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.0281 24.1527 -0.2 - vertex 15.1328 24.4531 -0.2 - vertex 14.2197 24.8651 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1328 24.4531 -0.2 - vertex 14.0281 24.1527 -0.2 - vertex 15.5173 23.4995 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.2197 24.8651 -0.2 - vertex 13.7923 24.2655 -0.2 - vertex 14.0281 24.1527 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.2197 24.8651 -0.2 - vertex 13.5553 24.3991 -0.2 - vertex 13.7923 24.2655 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.5086 25.2416 -0.2 - vertex 13.5553 24.3991 -0.2 - vertex 14.2197 24.8651 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.085 24.7212 -0.2 - vertex 13.5086 25.2416 -0.2 - vertex 13.2184 25.4225 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.5086 25.2416 -0.2 - vertex 13.085 24.7212 -0.2 - vertex 13.5553 24.3991 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.6316 25.1032 -0.2 - vertex 13.2184 25.4225 -0.2 - vertex 12.9664 25.6018 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.6316 25.1032 -0.2 - vertex 12.9664 25.6018 -0.2 - vertex 12.7484 25.782 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.2184 25.4225 -0.2 - vertex 12.6316 25.1032 -0.2 - vertex 13.085 24.7212 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.2092 25.5292 -0.2 - vertex 12.7484 25.782 -0.2 - vertex 12.5603 25.9653 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.2092 25.5292 -0.2 - vertex 12.5603 25.9653 -0.2 - vertex 12.3979 26.1543 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8324 25.9834 -0.2 - vertex 12.3979 26.1543 -0.2 - vertex 12.2572 26.3514 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.7484 25.782 -0.2 - vertex 12.2092 25.5292 -0.2 - vertex 12.6316 25.1032 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8324 25.9834 -0.2 - vertex 12.2572 26.3514 -0.2 - vertex 12.1339 26.5589 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5154 26.4501 -0.2 - vertex 12.1339 26.5589 -0.2 - vertex 12.0241 26.7794 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.3839 26.6832 -0.2 - vertex 12.0241 26.7794 -0.2 - vertex 11.903 27.1234 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3979 26.1543 -0.2 - vertex 11.8324 25.9834 -0.2 - vertex 12.2092 25.5292 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.1835 27.139 -0.2 - vertex 11.903 27.1234 -0.2 - vertex 11.8169 27.5343 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.0734 27.5937 -0.2 - vertex 11.8169 27.5343 -0.2 - vertex 11.7656 27.9858 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.0419 28.1143 -0.2 - vertex 11.7656 27.9858 -0.2 - vertex 11.7492 28.4518 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.2437 29.4873 -0.2 - vertex 11.9082 29.6745 -0.2 - vertex 11.4096 29.9696 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.9082 29.6745 -0.2 - vertex 11.2437 29.4873 -0.2 - vertex 11.8205 29.3224 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.7675 28.9061 -0.2 - vertex 11.1213 28.9486 -0.2 - vertex 11.7492 28.4518 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8205 29.3224 -0.2 - vertex 11.2437 29.4873 -0.2 - vertex 11.7675 28.9061 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.1213 28.9486 -0.2 - vertex 11.7675 28.9061 -0.2 - vertex 11.2437 29.4873 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.0528 28.3898 -0.2 - vertex 11.7492 28.4518 -0.2 - vertex 11.1213 28.9486 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.1339 26.5589 -0.2 - vertex 11.5154 26.4501 -0.2 - vertex 11.8324 25.9834 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.0419 28.1143 -0.2 - vertex 11.7492 28.4518 -0.2 - vertex 11.0528 28.3898 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.0241 26.7794 -0.2 - vertex 11.3839 26.6832 -0.2 - vertex 11.5154 26.4501 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.7656 27.9858 -0.2 - vertex 11.0419 28.1143 -0.2 - vertex 11.0484 27.8474 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.903 27.1234 -0.2 - vertex 11.2726 26.9135 -0.2 - vertex 11.3839 26.6832 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.7656 27.9858 -0.2 - vertex 11.0484 27.8474 -0.2 - vertex 11.0734 27.5937 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.903 27.1234 -0.2 - vertex 11.1835 27.139 -0.2 - vertex 11.2726 26.9135 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8169 27.5343 -0.2 - vertex 11.1184 27.3577 -0.2 - vertex 11.1835 27.139 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8169 27.5343 -0.2 - vertex 11.0734 27.5937 -0.2 - vertex 11.1184 27.3577 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.5155 0.168137 -0.2 - vertex 21.1355 -0.658014 -0.2 - vertex 21.1316 -0.233279 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.8646 0.230347 -0.2 - vertex 21.1316 -0.233279 -0.2 - vertex 21.099 0.0745682 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9772 0.235111 -0.2 - vertex 21.099 0.0745682 -0.2 - vertex 21.0726 0.170561 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9772 0.235111 -0.2 - vertex 21.0726 0.170561 -0.2 - vertex 21.0399 0.220413 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1316 -0.233279 -0.2 - vertex 20.8646 0.230347 -0.2 - vertex 20.5155 0.168137 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1355 -0.658014 -0.2 - vertex 20.5155 0.168137 -0.2 - vertex 20.0432 0.0451876 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.099 0.0745682 -0.2 - vertex 20.9772 0.235111 -0.2 - vertex 20.8646 0.230347 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1355 -0.658014 -0.2 - vertex 20.0432 0.0451876 -0.2 - vertex 21.1085 -1.15452 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.4982 -0.127099 -0.2 - vertex 21.1085 -1.15452 -0.2 - vertex 20.0432 0.0451876 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1085 -1.15452 -0.2 - vertex 19.4982 -0.127099 -0.2 - vertex 21.0399 -1.71534 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0399 -1.71534 -0.2 - vertex 19.4982 -0.127099 -0.2 - vertex 20.9878 -1.96317 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 18.7502 -0.369046 -0.2 - vertex 20.9878 -1.96317 -0.2 - vertex 19.4982 -0.127099 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9878 -1.96317 -0.2 - vertex 18.7502 -0.369046 -0.2 - vertex 20.9199 -2.19366 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9199 -2.19366 -0.2 - vertex 18.7502 -0.369046 -0.2 - vertex 20.8331 -2.41014 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.8331 -2.41014 -0.2 - vertex 18.7502 -0.369046 -0.2 - vertex 20.7245 -2.61588 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.7245 -2.61588 -0.2 - vertex 18.7502 -0.369046 -0.2 - vertex 20.591 -2.8142 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.591 -2.8142 -0.2 - vertex 18.7502 -0.369046 -0.2 - vertex 20.4297 -3.0084 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.4297 -3.0084 -0.2 - vertex 18.7502 -0.369046 -0.2 - vertex 20.2374 -3.20177 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2374 -3.20177 -0.2 - vertex 18.7502 -0.369046 -0.2 - vertex 20.0112 -3.39762 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 18.4876 -0.435405 -0.2 - vertex 20.0112 -3.39762 -0.2 - vertex 18.7502 -0.369046 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0112 -3.39762 -0.2 - vertex 18.4876 -0.435405 -0.2 - vertex 19.4451 -3.80993 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 18.2791 -0.466914 -0.2 - vertex 19.4451 -3.80993 -0.2 - vertex 18.4876 -0.435405 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.1098 -0.464739 -0.2 - vertex 19.4451 -3.80993 -0.2 - vertex 18.2791 -0.466914 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4451 -3.80993 -0.2 - vertex 18.1098 -0.464739 -0.2 - vertex 18.7073 -4.27174 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.9646 -0.430052 -0.2 - vertex 18.7073 -4.27174 -0.2 - vertex 18.1098 -0.464739 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.7736 -4.80944 -0.2 - vertex 17.9646 -0.430052 -0.2 - vertex 17.8284 -0.36402 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.9646 -0.430052 -0.2 - vertex 17.7736 -4.80944 -0.2 - vertex 18.7073 -4.27174 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.3217 -2.5049 -0.2 - vertex 17.8284 -0.36402 -0.2 - vertex 17.6862 -0.267812 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.2572 -2.23644 -0.2 - vertex 17.6862 -0.267812 -0.2 - vertex 17.4918 -0.0873203 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.1524 -1.94488 -0.2 - vertex 17.4918 -0.0873203 -0.2 - vertex 17.2889 0.169637 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.008 -1.63155 -0.2 - vertex 17.2889 0.169637 -0.2 - vertex 17.0802 0.495742 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.8249 -1.29782 -0.2 - vertex 17.0802 0.495742 -0.2 - vertex 16.8681 0.883681 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.604 -0.945011 -0.2 - vertex 16.8681 0.883681 -0.2 - vertex 16.6551 1.32614 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.3463 -0.574481 -0.2 - vertex 16.6551 1.32614 -0.2 - vertex 16.4437 1.81579 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6862 -0.267812 -0.2 - vertex 14.2572 -2.23644 -0.2 - vertex 14.3217 -2.5049 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.7237 0.214368 -0.2 - vertex 16.4437 1.81579 -0.2 - vertex 16.2363 2.34533 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3607 0.629996 -0.2 - vertex 16.2363 2.34533 -0.2 - vertex 16.0356 2.90743 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5355 1.49693 -0.2 - vertex 16.0356 2.90743 -0.2 - vertex 15.6639 4.10009 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.8284 -0.36402 -0.2 - vertex 14.3217 -2.5049 -0.2 - vertex 14.3448 -2.7489 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5355 1.49693 -0.2 - vertex 15.6639 4.10009 -0.2 - vertex 15.498 4.716 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.5842 2.40247 -0.2 - vertex 15.498 4.716 -0.2 - vertex 15.3486 5.33522 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.5842 2.40247 -0.2 - vertex 15.3486 5.33522 -0.2 - vertex 15.2183 5.95043 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.61741 3.25086 -0.2 - vertex 15.2183 5.95043 -0.2 - vertex 15.1095 6.5543 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.29624 3.50894 -0.2 - vertex 15.1095 6.5543 -0.2 - vertex 15.0249 7.13954 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.3256 -2.96711 -0.2 - vertex 17.7736 -4.80944 -0.2 - vertex 14.3448 -2.7489 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.14614 3.60373 -0.2 - vertex 15.0249 7.13954 -0.2 - vertex 14.9668 7.69881 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.19732 4.25764 -0.2 - vertex 14.9668 7.69881 -0.2 - vertex 14.9212 8.45633 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0942 9.33737 -0.2 - vertex 8.99158 15.8746 -0.2 - vertex 15.0092 9.15168 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.7736 -4.80944 -0.2 - vertex 14.3256 -2.96711 -0.2 - vertex 16.3254 -5.59514 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.1768 -3.32005 -0.2 - vertex 16.3254 -5.59514 -0.2 - vertex 14.2634 -3.15818 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.2634 -3.15818 -0.2 - vertex 16.3254 -5.59514 -0.2 - vertex 14.3256 -2.96711 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.8284 -0.36402 -0.2 - vertex 14.3448 -2.7489 -0.2 - vertex 17.7736 -4.80944 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.4918 -0.0873203 -0.2 - vertex 14.1524 -1.94488 -0.2 - vertex 14.2572 -2.23644 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.2889 0.169637 -0.2 - vertex 14.008 -1.63155 -0.2 - vertex 14.1524 -1.94488 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.4375 16.5104 -0.2 - vertex 14.6028 17.0277 -0.2 - vertex 14.0017 17.4864 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.0802 0.495742 -0.2 - vertex 13.8249 -1.29782 -0.2 - vertex 14.008 -1.63155 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.8681 0.883681 -0.2 - vertex 13.604 -0.945011 -0.2 - vertex 13.8249 -1.29782 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.4375 16.5104 -0.2 - vertex 14.0017 17.4864 -0.2 - vertex 13.3813 18.0182 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.6551 1.32614 -0.2 - vertex 13.3463 -0.574481 -0.2 - vertex 13.604 -0.945011 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.4437 1.81579 -0.2 - vertex 13.0525 -0.187573 -0.2 - vertex 13.3463 -0.574481 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.4437 1.81579 -0.2 - vertex 12.7237 0.214368 -0.2 - vertex 13.0525 -0.187573 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.4375 16.5104 -0.2 - vertex 13.3813 18.0182 -0.2 - vertex 12.71 18.6425 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2363 2.34533 -0.2 - vertex 12.3607 0.629996 -0.2 - vertex 12.7237 0.214368 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.4375 16.5104 -0.2 - vertex 12.71 18.6425 -0.2 - vertex 12.1494 19.1886 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.77546 17.1908 -0.2 - vertex 12.1494 19.1886 -0.2 - vertex 11.6914 19.6646 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 8.87708 15.8492 -0.2 - vertex 15.0092 9.15168 -0.2 - vertex 8.99158 15.8746 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.09841 17.8163 -0.2 - vertex 11.6914 19.6646 -0.2 - vertex 11.3113 20.1069 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.09841 17.8163 -0.2 - vertex 11.3113 20.1069 -0.2 - vertex 10.9846 20.5521 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.31493 18.4459 -0.2 - vertex 10.9846 20.5521 -0.2 - vertex 10.6869 21.0368 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.0356 2.90743 -0.2 - vertex 11.5355 1.49693 -0.2 - vertex 12.3607 0.629996 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.498 4.716 -0.2 - vertex 10.5842 2.40247 -0.2 - vertex 11.5355 1.49693 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.9444 18.7161 -0.2 - vertex 10.6869 21.0368 -0.2 - vertex 10.3935 21.5973 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.36805 19.075 -0.2 - vertex 10.3935 21.5973 -0.2 - vertex 10.0801 22.2703 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.1494 19.1886 -0.2 - vertex 9.77546 17.1908 -0.2 - vertex 10.4375 16.5104 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.21113 19.1268 -0.2 - vertex 10.0801 22.2703 -0.2 - vertex 9.72206 23.0922 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.6914 19.6646 -0.2 - vertex 9.46246 17.4938 -0.2 - vertex 9.77546 17.1908 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.21113 19.1268 -0.2 - vertex 9.72206 23.0922 -0.2 - vertex 9.38213 23.8626 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.6914 19.6646 -0.2 - vertex 9.09841 17.8163 -0.2 - vertex 9.46246 17.4938 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.76329 26.0408 -0.2 - vertex 9.38213 23.8626 -0.2 - vertex 9.08206 24.476 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.12606 25.9588 -0.2 - vertex 9.08206 24.476 -0.2 - vertex 8.80411 24.9522 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.55919 25.8755 -0.2 - vertex 8.80411 24.9522 -0.2 - vertex 8.6679 25.145 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.55919 25.8755 -0.2 - vertex 8.6679 25.145 -0.2 - vertex 8.53058 25.3107 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.55919 25.8755 -0.2 - vertex 8.53058 25.3107 -0.2 - vertex 8.38993 25.4519 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.9846 20.5521 -0.2 - vertex 8.31493 18.4459 -0.2 - vertex 9.09841 17.8163 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.92584 25.7528 -0.2 - vertex 8.38993 25.4519 -0.2 - vertex 8.24373 25.571 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.92584 25.7528 -0.2 - vertex 8.24373 25.571 -0.2 - vertex 8.08977 25.6705 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.6869 21.0368 -0.2 - vertex 7.9444 18.7161 -0.2 - vertex 8.31493 18.4459 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.38993 25.4519 -0.2 - vertex 7.92584 25.7528 -0.2 - vertex 7.55919 25.8755 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.3935 21.5973 -0.2 - vertex 7.62063 18.9319 -0.2 - vertex 7.9444 18.7161 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.80411 24.9522 -0.2 - vertex 7.55919 25.8755 -0.2 - vertex 7.12606 25.9588 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.3935 21.5973 -0.2 - vertex 7.36805 19.075 -0.2 - vertex 7.62063 18.9319 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.0801 22.2703 -0.2 - vertex 7.21113 19.1268 -0.2 - vertex 7.36805 19.075 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.76329 26.0408 -0.2 - vertex 9.08206 24.476 -0.2 - vertex 7.12606 25.9588 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.38213 23.8626 -0.2 - vertex 6.76329 26.0408 -0.2 - vertex 7.21113 19.1268 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.21113 19.1268 -0.2 - vertex 6.76329 26.0408 -0.2 - vertex 7.15267 19.0966 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.41393 26.1795 -0.2 - vertex 7.15267 19.0966 -0.2 - vertex 6.76329 26.0408 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.07308 26.3793 -0.2 - vertex 7.15267 19.0966 -0.2 - vertex 6.41393 26.1795 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.816408 27.0884 -0.2 - vertex 7.15267 19.0966 -0.2 - vertex 6.07308 26.3793 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 1.92323 12.5289 -0.2 - vertex 7.1242 19.0144 -0.2 - vertex 1.90284 12.6291 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 0.734953 27.0776 -0.2 - vertex 7.15267 19.0966 -0.2 - vertex 0.816408 27.0884 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.870515 27.1101 -0.2 - vertex 6.07308 26.3793 -0.2 - vertex 5.73586 26.6445 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.870515 27.1101 -0.2 - vertex 5.73586 26.6445 -0.2 - vertex 5.39739 26.9794 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 6.22936 5.32709 -0.2 - vertex 7.1242 19.0144 -0.2 - vertex 1.92323 12.5289 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 0.870515 27.1101 -0.2 - vertex 5.39739 26.9794 -0.2 - vertex 5.05276 27.3884 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.908598 27.1645 -0.2 - vertex 5.05276 27.3884 -0.2 - vertex 4.69711 27.8759 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.944126 27.2693 -0.2 - vertex 4.69711 27.8759 -0.2 - vertex 4.32553 28.4461 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 6.22936 5.32709 -0.2 - vertex 7.07462 4.9138 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.04514 28.0688 -0.2 - vertex 4.32553 28.4461 -0.2 - vertex 4.09087 28.8303 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.04514 28.0688 -0.2 - vertex 4.09087 28.8303 -0.2 - vertex 3.91157 29.1502 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.0601 28.6106 -0.2 - vertex 3.91157 29.1502 -0.2 - vertex 3.78021 29.4348 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.07949 29.2543 -0.2 - vertex 3.78021 29.4348 -0.2 - vertex 3.68937 29.7129 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.13903 29.8907 -0.2 - vertex 3.68937 29.7129 -0.2 - vertex 3.63162 30.0135 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.24074 30.5277 -0.2 - vertex 3.63162 30.0135 -0.2 - vertex 3.59957 30.3654 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.91748 12.4352 -0.2 - vertex 6.22936 5.32709 -0.2 - vertex 1.92323 12.5289 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.38662 31.173 -0.2 - vertex 3.59957 30.3654 -0.2 - vertex 3.58282 31.3388 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.0741 -3.47638 -0.2 - vertex 16.3254 -5.59514 -0.2 - vertex 14.1768 -3.32005 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.3254 -5.59514 -0.2 - vertex 14.0741 -3.47638 -0.2 - vertex 15.6549 -5.93433 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 13.8248 -3.7697 -0.2 - vertex 15.6549 -5.93433 -0.2 - vertex 14.0741 -3.47638 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6549 -5.93433 -0.2 - vertex 13.8248 -3.7697 -0.2 - vertex 15.0129 -6.23993 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 13.5249 -4.03275 -0.2 - vertex 15.0129 -6.23993 -0.2 - vertex 13.8248 -3.7697 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0129 -6.23993 -0.2 - vertex 13.5249 -4.03275 -0.2 - vertex 14.3941 -6.51356 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 13.1837 -4.26011 -0.2 - vertex 14.3941 -6.51356 -0.2 - vertex 13.5249 -4.03275 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.3941 -6.51356 -0.2 - vertex 13.1837 -4.26011 -0.2 - vertex 13.793 -6.75686 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.8106 -4.44636 -0.2 - vertex 13.793 -6.75686 -0.2 - vertex 13.1837 -4.26011 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.793 -6.75686 -0.2 - vertex 12.8106 -4.44636 -0.2 - vertex 13.2041 -6.97145 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.4149 -4.5861 -0.2 - vertex 13.2041 -6.97145 -0.2 - vertex 12.8106 -4.44636 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.2041 -6.97145 -0.2 - vertex 12.4149 -4.5861 -0.2 - vertex 12.6221 -7.15898 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.006 -4.67391 -0.2 - vertex 12.6221 -7.15898 -0.2 - vertex 12.4149 -4.5861 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.6221 -7.15898 -0.2 - vertex 12.006 -4.67391 -0.2 - vertex 12.0414 -7.32107 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.5931 -4.70438 -0.2 - vertex 12.0414 -7.32107 -0.2 - vertex 12.006 -4.67391 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5931 -4.70438 -0.2 - vertex 11.4568 -7.45935 -0.2 - vertex 12.0414 -7.32107 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.26 -4.69402 -0.2 - vertex 11.4568 -7.45935 -0.2 - vertex 11.5931 -4.70438 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.9319 -4.66264 -0.2 - vertex 11.4568 -7.45935 -0.2 - vertex 11.26 -4.69402 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.9319 -4.66264 -0.2 - vertex 10.8627 -7.57545 -0.2 - vertex 11.4568 -7.45935 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.608 -4.6098 -0.2 - vertex 10.8627 -7.57545 -0.2 - vertex 10.9319 -4.66264 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.2538 -7.67101 -0.2 - vertex 10.608 -4.6098 -0.2 - vertex 10.2875 -4.53506 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.608 -4.6098 -0.2 - vertex 10.2538 -7.67101 -0.2 - vertex 10.8627 -7.57545 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.62459 -7.74765 -0.2 - vertex 10.2875 -4.53506 -0.2 - vertex 9.96977 -4.43796 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.809 -5.75259 -0.2 - vertex 9.96977 -4.43796 -0.2 - vertex 9.65389 -4.31807 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.2875 -4.53506 -0.2 - vertex 9.62459 -7.74765 -0.2 - vertex 10.2538 -7.67101 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.809 -5.75259 -0.2 - vertex 9.65389 -4.31807 -0.2 - vertex 9.33912 -4.17495 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.809 -5.75259 -0.2 - vertex 9.33912 -4.17495 -0.2 - vertex 9.02468 -4.00814 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.96977 -4.43796 -0.2 - vertex 7.809 -5.75259 -0.2 - vertex 9.62459 -7.74765 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.809 -5.75259 -0.2 - vertex 9.02468 -4.00814 -0.2 - vertex 8.70978 -3.81721 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.04277 -4.97268 -0.2 - vertex 8.70978 -3.81721 -0.2 - vertex 8.39365 -3.60171 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.04277 -4.97268 -0.2 - vertex 8.39365 -3.60171 -0.2 - vertex 8.0755 -3.36119 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.62459 -7.74765 -0.2 - vertex 7.809 -5.75259 -0.2 - vertex 8.96966 -7.80701 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.809 -5.75259 -0.2 - vertex 7.56097 -7.88041 -0.2 - vertex 8.96966 -7.80701 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 7.2241 -5.88439 -0.2 - vertex 7.56097 -7.88041 -0.2 - vertex 7.809 -5.75259 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 6.87672 -5.95074 -0.2 - vertex 7.56097 -7.88041 -0.2 - vertex 7.2241 -5.88439 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 6.53505 -5.98957 -0.2 - vertex 7.56097 -7.88041 -0.2 - vertex 6.87672 -5.95074 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.04455 -7.91255 -0.2 - vertex 6.53505 -5.98957 -0.2 - vertex 6.18777 -5.99984 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.53505 -5.98957 -0.2 - vertex 6.04455 -7.91255 -0.2 - vertex 7.56097 -7.88041 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.82356 -5.98052 -0.2 - vertex 6.04455 -7.91255 -0.2 - vertex 6.18777 -5.99984 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.82356 -5.98052 -0.2 - vertex 5.49083 -7.9071 -0.2 - vertex 6.04455 -7.91255 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.4311 -5.93055 -0.2 - vertex 5.49083 -7.9071 -0.2 - vertex 5.82356 -5.98052 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.4311 -5.93055 -0.2 - vertex 5.0434 -7.88498 -0.2 - vertex 5.49083 -7.9071 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.99906 -5.84891 -0.2 - vertex 5.0434 -7.88498 -0.2 - vertex 5.4311 -5.93055 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.99906 -5.84891 -0.2 - vertex 4.67971 -7.84446 -0.2 - vertex 5.0434 -7.88498 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.11342 -7.70123 -0.2 - vertex 4.99906 -5.84891 -0.2 - vertex 4.51611 -5.73457 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.99906 -5.84891 -0.2 - vertex 4.37723 -7.78379 -0.2 - vertex 4.67971 -7.84446 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.99906 -5.84891 -0.2 - vertex 4.11342 -7.70123 -0.2 - vertex 4.37723 -7.78379 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.40104 -7.34622 -0.2 - vertex 4.51611 -5.73457 -0.2 - vertex 3.97093 -5.58648 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.51611 -5.73457 -0.2 - vertex 3.86574 -7.59505 -0.2 - vertex 4.11342 -7.70123 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.51611 -5.73457 -0.2 - vertex 3.40104 -7.34622 -0.2 - vertex 3.86574 -7.59505 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.71562 -6.94693 -0.2 - vertex 3.97093 -5.58648 -0.2 - vertex 3.25174 -5.37115 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 -0.2 - vertex 2.71562 -6.94693 -0.2 - vertex 3.40104 -7.34622 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.534 -5.13555 -0.2 - vertex 2.71562 -6.94693 -0.2 - vertex 3.25174 -5.37115 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.05193 -5.91722 -0.2 - vertex 2.534 -5.13555 -0.2 - vertex 1.81816 -4.87986 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.05193 -5.91722 -0.2 - vertex 1.81816 -4.87986 -0.2 - vertex 1.10471 -4.60426 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.534 -5.13555 -0.2 - vertex 1.05193 -5.91722 -0.2 - vertex 2.71562 -6.94693 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.394112 -4.30895 -0.2 - vertex 1.05193 -5.91722 -0.2 - vertex 1.10471 -4.60426 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.694871 -4.82613 -0.2 - vertex 0.394112 -4.30895 -0.2 - vertex -0.313177 -3.99411 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.394112 -4.30895 -0.2 - vertex -0.694871 -4.82613 -0.2 - vertex 1.05193 -5.91722 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.01669 -3.65993 -0.2 - vertex -0.694871 -4.82613 -0.2 - vertex -0.313177 -3.99411 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.47177 -3.7788 -0.2 - vertex -1.01669 -3.65993 -0.2 - vertex -1.71595 -3.30659 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.47177 -3.7788 -0.2 - vertex -1.71595 -3.30659 -0.2 - vertex -2.32857 -3.00041 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.01669 -3.65993 -0.2 - vertex -2.47177 -3.7788 -0.2 - vertex -0.694871 -4.82613 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.32857 -3.00041 -0.2 - vertex -2.8551 -3.51984 -0.2 - vertex -2.47177 -3.7788 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.87688 -2.74967 -0.2 - vertex -2.8551 -3.51984 -0.2 - vertex -2.32857 -3.00041 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.87688 -2.74967 -0.2 - vertex -3.18232 -3.26618 -0.2 - vertex -2.8551 -3.51984 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.44099 -3.03042 -0.2 - vertex -2.87688 -2.74967 -0.2 - vertex -3.301 -2.58026 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.87688 -2.74967 -0.2 - vertex -3.44099 -3.03042 -0.2 - vertex -3.18232 -3.26618 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.61865 -2.82513 -0.2 - vertex -3.301 -2.58026 -0.2 - vertex -3.54104 -2.51804 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.301 -2.58026 -0.2 - vertex -3.61865 -2.82513 -0.2 - vertex -3.44099 -3.03042 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 -0.2 - vertex -3.54104 -2.51804 -0.2 - vertex -3.62666 -2.52788 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70601 -2.60189 -0.2 - vertex -3.62666 -2.52788 -0.2 - vertex -3.68113 -2.55635 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.54104 -2.51804 -0.2 - vertex -3.70285 -2.66292 -0.2 - vertex -3.61865 -2.82513 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.62666 -2.52788 -0.2 - vertex -3.70601 -2.60189 -0.2 - vertex -3.70285 -2.66292 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.5419 27.5737 -0.2 - vertex -21.2799 26.5937 -0.2 - vertex -21.2563 26.5576 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.7979 27.6578 -0.2 - vertex -21.3473 26.6332 -0.2 - vertex -21.2799 26.5937 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5951 26.7172 -0.2 - vertex -21.1001 27.7294 -0.2 - vertex -21.4599 27.7917 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.1001 27.7294 -0.2 - vertex -21.5951 26.7172 -0.2 - vertex -21.3473 26.6332 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.4599 27.7917 -0.2 - vertex -21.9618 26.7994 -0.2 - vertex -21.5951 26.7172 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.3975 27.9007 -0.2 - vertex -21.9618 26.7994 -0.2 - vertex -21.4599 27.7917 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.3975 27.9007 -0.2 - vertex -22.4095 26.8695 -0.2 - vertex -21.9618 26.7994 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.3975 27.9007 -0.2 - vertex -22.8078 26.9423 -0.2 - vertex -22.4095 26.8695 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.1232 27.9594 -0.2 - vertex -22.8078 26.9423 -0.2 - vertex -22.3975 27.9007 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.1232 27.9594 -0.2 - vertex -23.1972 27.0531 -0.2 - vertex -22.8078 26.9423 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.1232 27.9594 -0.2 - vertex -23.56 27.1917 -0.2 - vertex -23.1972 27.0531 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.7335 27.9892 -0.2 - vertex -23.56 27.1917 -0.2 - vertex -23.1232 27.9594 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.7335 27.9892 -0.2 - vertex -23.8785 27.3484 -0.2 - vertex -23.56 27.1917 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.7335 27.9892 -0.2 - vertex -24.1346 27.513 -0.2 - vertex -23.8785 27.3484 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.1643 27.9885 -0.2 - vertex -24.1346 27.513 -0.2 - vertex -23.7335 27.9892 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3632 27.7532 -0.2 - vertex -24.1643 27.9885 -0.2 - vertex -24.2923 27.9761 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.1643 27.9885 -0.2 - vertex -24.3107 27.6757 -0.2 - vertex -24.1346 27.513 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3858 27.8943 -0.2 - vertex -24.2923 27.9761 -0.2 - vertex -24.3515 27.9554 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.1643 27.9885 -0.2 - vertex -24.3632 27.7532 -0.2 - vertex -24.3107 27.6757 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.2923 27.9761 -0.2 - vertex -24.3858 27.8943 -0.2 - vertex -24.3889 27.8265 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.2923 27.9761 -0.2 - vertex -24.3889 27.8265 -0.2 - vertex -24.3632 27.7532 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.89877 27.2865 -0.2 - vertex -10.5394 24.4322 -0.2 - vertex -10.5349 24.4109 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.2816 27.5955 -0.2 - vertex -10.6591 24.5009 -0.2 - vertex -10.5394 24.4322 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.2816 27.5955 -0.2 - vertex -10.9077 24.5958 -0.2 - vertex -10.6591 24.5009 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.2816 27.5955 -0.2 - vertex -11.2625 24.7069 -0.2 - vertex -10.9077 24.5958 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5342 27.7352 -0.2 - vertex -11.2625 24.7069 -0.2 - vertex -10.2816 27.5955 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5342 27.7352 -0.2 - vertex -11.7825 24.8213 -0.2 - vertex -11.2625 24.7069 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5342 27.7352 -0.2 - vertex -12.4277 24.907 -0.2 - vertex -11.7825 24.8213 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.6053 27.816 -0.2 - vertex -12.4277 24.907 -0.2 - vertex -11.5342 27.7352 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.6053 27.816 -0.2 - vertex -13.1566 24.9634 -0.2 - vertex -12.4277 24.907 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.5445 27.8374 -0.2 - vertex -13.1566 24.9634 -0.2 - vertex -12.6053 27.816 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.5445 27.8374 -0.2 - vertex -13.9275 24.99 -0.2 - vertex -13.1566 24.9634 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.4014 27.7989 -0.2 - vertex -13.9275 24.99 -0.2 - vertex -13.5445 27.8374 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.4014 27.7989 -0.2 - vertex -14.6988 24.986 -0.2 - vertex -13.9275 24.99 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.2259 27.7001 -0.2 - vertex -14.6988 24.986 -0.2 - vertex -14.4014 27.7989 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.2259 27.7001 -0.2 - vertex -15.4289 24.9511 -0.2 - vertex -14.6988 24.986 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.0674 27.5405 -0.2 - vertex -15.4289 24.9511 -0.2 - vertex -15.2259 27.7001 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.0674 27.5405 -0.2 - vertex -16.0762 24.8844 -0.2 - vertex -15.4289 24.9511 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.9758 27.3196 -0.2 - vertex -16.0762 24.8844 -0.2 - vertex -16.0674 27.5405 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.0762 24.8844 -0.2 - vertex -16.9758 27.3196 -0.2 - vertex -16.599 24.7853 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9758 27.3196 -0.2 - vertex -17.1707 24.6702 -0.2 - vertex -16.599 24.7853 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9758 27.3196 -0.2 - vertex -18.0818 24.5233 -0.2 - vertex -17.1707 24.6702 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -19.3233 26.703 -0.2 - vertex -18.0818 24.5233 -0.2 - vertex -16.9758 27.3196 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.0818 24.5233 -0.2 - vertex -19.3233 26.703 -0.2 - vertex -19.207 24.3637 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2669 26.4994 -0.2 - vertex -19.3233 26.703 -0.2 - vertex -19.9368 27.2141 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2563 26.5576 -0.2 - vertex -19.9368 27.2141 -0.2 - vertex -20.1227 27.3549 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2563 26.5576 -0.2 - vertex -20.1227 27.3549 -0.2 - vertex -20.3206 27.4738 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2997 26.4466 -0.2 - vertex -19.3233 26.703 -0.2 - vertex -21.2669 26.4994 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2563 26.5576 -0.2 - vertex -20.3206 27.4738 -0.2 - vertex -20.5419 27.5737 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2799 26.5937 -0.2 - vertex -20.5419 27.5737 -0.2 - vertex -20.7979 27.6578 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.3473 26.6332 -0.2 - vertex -20.7979 27.6578 -0.2 - vertex -21.1001 27.7294 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.9368 27.2141 -0.2 - vertex -21.2563 26.5576 -0.2 - vertex -21.2669 26.4994 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.3233 26.703 -0.2 - vertex -20.4207 24.2101 -0.2 - vertex -19.207 24.3637 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.3233 26.703 -0.2 - vertex -21.2997 26.4466 -0.2 - vertex -20.4207 24.2101 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.3558 26.3992 -0.2 - vertex -20.4207 24.2101 -0.2 - vertex -21.2997 26.4466 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.4368 26.3569 -0.2 - vertex -20.4207 24.2101 -0.2 - vertex -21.3558 26.3992 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.6785 26.2874 -0.2 - vertex -20.4207 24.2101 -0.2 - vertex -21.4368 26.3569 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.0356 26.2369 -0.2 - vertex -20.4207 24.2101 -0.2 - vertex -21.6785 26.2874 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.3692 23.8604 -0.2 - vertex -22.0356 26.2369 -0.2 - vertex -22.5186 26.2045 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.3692 23.8604 -0.2 - vertex -22.5186 26.2045 -0.2 - vertex -23.1385 26.1891 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.0356 26.2369 -0.2 - vertex -23.3692 23.8604 -0.2 - vertex -20.4207 24.2101 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.6523 24.0122 -0.2 - vertex -23.3692 23.8604 -0.2 - vertex -23.1385 26.1891 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.3692 23.8604 -0.2 - vertex -24.6523 24.0122 -0.2 - vertex -24.1455 19.0472 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.8316 26.205 -0.2 - vertex -24.6523 24.0122 -0.2 - vertex -23.1385 26.1891 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.8316 26.205 -0.2 - vertex -26.0107 24.2804 -0.2 - vertex -24.6523 24.0122 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.3751 26.2567 -0.2 - vertex -26.0107 24.2804 -0.2 - vertex -24.8316 26.205 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.3751 26.2567 -0.2 - vertex -26.5818 24.4056 -0.2 - vertex -26.0107 24.2804 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.1227 24.5501 -0.2 - vertex -26.3751 26.2567 -0.2 - vertex -26.9353 26.3003 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.3751 26.2567 -0.2 - vertex -27.1227 24.5501 -0.2 - vertex -26.5818 24.4056 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.636 24.7152 -0.2 - vertex -26.9353 26.3003 -0.2 - vertex -27.4097 26.3653 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.9353 26.3003 -0.2 - vertex -27.636 24.7152 -0.2 - vertex -27.1227 24.5501 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.1248 24.9019 -0.2 - vertex -27.4097 26.3653 -0.2 - vertex -27.8395 26.4592 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.4097 26.3653 -0.2 - vertex -28.1248 24.9019 -0.2 - vertex -27.636 24.7152 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.5919 25.1115 -0.2 - vertex -27.8395 26.4592 -0.2 - vertex -28.2663 26.5892 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.8395 26.4592 -0.2 - vertex -28.5919 25.1115 -0.2 - vertex -28.1248 24.9019 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0402 25.3453 -0.2 - vertex -28.2663 26.5892 -0.2 - vertex -28.7314 26.7626 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2663 26.5892 -0.2 - vertex -29.0402 25.3453 -0.2 - vertex -28.5919 25.1115 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.4725 25.6043 -0.2 - vertex -28.7314 26.7626 -0.2 - vertex -29.2762 26.9865 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.7314 26.7626 -0.2 - vertex -29.4725 25.6043 -0.2 - vertex -29.0402 25.3453 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.2762 26.9865 -0.2 - vertex -29.8918 25.8898 -0.2 - vertex -29.4725 25.6043 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0875 27.3102 -0.2 - vertex -29.8918 25.8898 -0.2 - vertex -29.2762 26.9865 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0875 27.3102 -0.2 - vertex -30.6514 26.471 -0.2 - vertex -29.8918 25.8898 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.9143 26.7038 -0.2 - vertex -30.0875 27.3102 -0.2 - vertex -30.6543 27.4912 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.1043 26.9038 -0.2 - vertex -30.6543 27.4912 -0.2 - vertex -30.8579 27.5312 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0875 27.3102 -0.2 - vertex -30.9143 26.7038 -0.2 - vertex -30.6514 26.471 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2248 27.0754 -0.2 - vertex -30.8579 27.5312 -0.2 - vertex -31.0145 27.539 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.6543 27.4912 -0.2 - vertex -31.1043 26.9038 -0.2 - vertex -30.9143 26.7038 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.272 27.3506 -0.2 - vertex -31.0145 27.539 -0.2 - vertex -31.1289 27.5158 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.272 27.3506 -0.2 - vertex -31.1289 27.5158 -0.2 - vertex -31.2059 27.4629 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.8579 27.5312 -0.2 - vertex -31.2248 27.0754 -0.2 - vertex -31.1043 26.9038 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.0145 27.539 -0.2 - vertex -31.272 27.3506 -0.2 - vertex -31.2795 27.2229 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.0145 27.539 -0.2 - vertex -31.2795 27.2229 -0.2 - vertex -31.2248 27.0754 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.22936 5.32709 -0.2 - vertex 1.91748 12.4352 -0.2 - vertex 5.27855 5.76024 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.32553 28.4461 -0.2 - vertex 1.00441 27.6053 -0.2 - vertex 0.944126 27.2693 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.60924 32.0876 -0.2 - vertex 1.57871 31.8344 -0.2 - vertex 3.58282 31.3388 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.69711 27.8759 -0.2 - vertex 0.944126 27.2693 -0.2 - vertex 0.908598 27.1645 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.38662 31.173 -0.2 - vertex 3.58282 31.3388 -0.2 - vertex 1.57871 31.8344 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 1.85843 12.7398 -0.2 - vertex 1.90284 12.6291 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.59957 30.3654 -0.2 - vertex 1.38662 31.173 -0.2 - vertex 1.24074 30.5277 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.32553 28.4461 -0.2 - vertex 1.04514 28.0688 -0.2 - vertex 1.00441 27.6053 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.63162 30.0135 -0.2 - vertex 1.24074 30.5277 -0.2 - vertex 1.13903 29.8907 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.68937 29.7129 -0.2 - vertex 1.13903 29.8907 -0.2 - vertex 1.07949 29.2543 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.78021 29.4348 -0.2 - vertex 1.07949 29.2543 -0.2 - vertex 1.0601 28.6106 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.91157 29.1502 -0.2 - vertex 1.0601 28.6106 -0.2 - vertex 1.04514 28.0688 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.05276 27.3884 -0.2 - vertex 0.908598 27.1645 -0.2 - vertex 0.870515 27.1101 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 1.7147 12.9716 -0.2 - vertex 1.85843 12.7398 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.07308 26.3793 -0.2 - vertex 0.870515 27.1101 -0.2 - vertex 0.816408 27.0884 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 1.51175 13.1874 -0.2 - vertex 1.7147 12.9716 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 1.25015 13.3869 -0.2 - vertex 1.51175 13.1874 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 0.930489 13.5702 -0.2 - vertex 1.25015 13.3869 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.15267 19.0966 -0.2 - vertex 0.734953 27.0776 -0.2 - vertex 7.1242 19.0144 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.371032 14.021 -0.2 - vertex 7.1242 19.0144 -0.2 - vertex 0.734953 27.0776 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 0.55335 13.737 -0.2 - vertex 0.930489 13.5702 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.917111 14.138 -0.2 - vertex 0.734953 27.0776 -0.2 - vertex 0.505992 27.0868 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.51834 14.2381 -0.2 - vertex 0.505992 27.0868 -0.2 - vertex 0.215611 27.1342 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 0.119316 13.8873 -0.2 - vertex 0.55335 13.737 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.17413 14.3212 -0.2 - vertex 0.215611 27.1342 -0.2 - vertex -0.104203 27.2162 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex -0.371032 14.021 -0.2 - vertex 0.119316 13.8873 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.8839 14.3873 -0.2 - vertex -0.104203 27.2162 -0.2 - vertex -0.438314 27.347 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.54439 27.3597 -0.2 - vertex -0.438314 27.347 -0.2 - vertex -0.7749 27.5359 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.734953 27.0776 -0.2 - vertex -0.917111 14.138 -0.2 - vertex -0.371032 14.021 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.54439 27.3597 -0.2 - vertex -0.7749 27.5359 -0.2 - vertex -1.11256 27.7809 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.44763 27.4571 -0.2 - vertex -1.11256 27.7809 -0.2 - vertex -1.44988 28.0795 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.505992 27.0868 -0.2 - vertex -1.51834 14.2381 -0.2 - vertex -0.917111 14.138 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.44763 27.4571 -0.2 - vertex -1.44988 28.0795 -0.2 - vertex -1.78547 28.4297 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.37156 27.6173 -0.2 - vertex -1.78547 28.4297 -0.2 - vertex -2.11792 28.8291 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.215611 27.1342 -0.2 - vertex -2.17413 14.3212 -0.2 - vertex -1.51834 14.2381 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.31368 27.8729 -0.2 - vertex -2.11792 28.8291 -0.2 - vertex -2.44583 29.2754 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.27149 28.2565 -0.2 - vertex -2.44583 29.2754 -0.2 - vertex -2.7678 29.7664 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.11256 27.7809 -0.2 - vertex -6.44763 27.4571 -0.2 - vertex -6.54439 27.3597 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.24249 28.8007 -0.2 - vertex -2.7678 29.7664 -0.2 - vertex -3.08241 30.2998 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.22417 29.538 -0.2 - vertex -3.08241 30.2998 -0.2 - vertex -3.38828 30.8734 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.438314 27.347 -0.2 - vertex -6.54439 27.3597 -0.2 - vertex -3.64708 14.4362 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.22417 29.538 -0.2 - vertex -3.38828 30.8734 -0.2 - vertex -3.68399 31.485 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.20957 31.7226 -0.2 - vertex -3.68399 31.485 -0.2 - vertex -3.96814 32.1322 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.20957 31.7226 -0.2 - vertex -3.96814 32.1322 -0.2 - vertex -4.23933 32.8128 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.78547 28.4297 -0.2 - vertex -6.37156 27.6173 -0.2 - vertex -6.44763 27.4571 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.19415 33.3563 -0.2 - vertex -4.23933 32.8128 -0.2 - vertex -4.49616 33.5245 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.19415 33.3563 -0.2 - vertex -4.49616 33.5245 -0.2 - vertex -4.73722 34.2652 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.15766 34.7516 -0.2 - vertex -4.73722 34.2652 -0.2 - vertex -4.96111 35.0324 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.15766 34.7516 -0.2 - vertex -4.96111 35.0324 -0.2 - vertex -5.11886 35.5644 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.10555 35.7605 -0.2 - vertex -5.11886 35.5644 -0.2 - vertex -5.26884 35.9859 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.7678 29.7664 -0.2 - vertex -6.24249 28.8007 -0.2 - vertex -6.27149 28.2565 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.07534 36.0738 -0.2 - vertex -5.26884 35.9859 -0.2 - vertex -5.41174 36.2975 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.92579 36.4611 -0.2 - vertex -5.41174 36.2975 -0.2 - vertex -5.54821 36.5001 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.86569 36.5344 -0.2 - vertex -5.54821 36.5001 -0.2 - vertex -5.61425 36.5608 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.80457 36.5812 -0.2 - vertex -5.61425 36.5608 -0.2 - vertex -5.67893 36.5944 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.80457 36.5812 -0.2 - vertex -5.67893 36.5944 -0.2 - vertex -5.74234 36.6012 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.61425 36.5608 -0.2 - vertex -5.80457 36.5812 -0.2 - vertex -5.86569 36.5344 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.54821 36.5001 -0.2 - vertex -5.86569 36.5344 -0.2 - vertex -5.92579 36.4611 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.41174 36.2975 -0.2 - vertex -5.92579 36.4611 -0.2 - vertex -6.04327 36.2349 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.41174 36.2975 -0.2 - vertex -6.04327 36.2349 -0.2 - vertex -6.07534 36.0738 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.26884 35.9859 -0.2 - vertex -6.07534 36.0738 -0.2 - vertex -6.10555 35.7605 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.11886 35.5644 -0.2 - vertex -6.10555 35.7605 -0.2 - vertex -6.15766 34.7516 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.73722 34.2652 -0.2 - vertex -6.15766 34.7516 -0.2 - vertex -6.19415 33.3563 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.23933 32.8128 -0.2 - vertex -6.19415 33.3563 -0.2 - vertex -6.20957 31.7226 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.68399 31.485 -0.2 - vertex -6.20957 31.7226 -0.2 - vertex -6.22417 29.538 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.08241 30.2998 -0.2 - vertex -6.22417 29.538 -0.2 - vertex -6.24249 28.8007 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.44583 29.2754 -0.2 - vertex -6.27149 28.2565 -0.2 - vertex -6.31368 27.8729 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.11792 28.8291 -0.2 - vertex -6.31368 27.8729 -0.2 - vertex -6.37156 27.6173 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.104203 27.2162 -0.2 - vertex -2.8839 14.3873 -0.2 - vertex -2.17413 14.3212 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.438314 27.347 -0.2 - vertex -3.64708 14.4362 -0.2 - vertex -2.8839 14.3873 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.65192 27.3056 -0.2 - vertex -3.64708 14.4362 -0.2 - vertex -6.54439 27.3597 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.64708 14.4362 -0.2 - vertex -6.65192 27.3056 -0.2 - vertex -4.46307 14.4678 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.904 19.9248 -0.2 - vertex -4.46307 14.4678 -0.2 - vertex -6.65192 27.3056 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.46307 14.4678 -0.2 - vertex -10.904 19.9248 -0.2 - vertex -5.33129 14.482 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.904 19.9248 -0.2 - vertex -6.65192 27.3056 -0.2 - vertex -6.80178 27.2682 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5349 24.4109 -0.2 - vertex -6.80178 27.2682 -0.2 - vertex -6.99768 27.2475 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.33129 14.482 -0.2 - vertex -10.904 19.9248 -0.2 - vertex -6.25117 14.4787 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5349 24.4109 -0.2 - vertex -6.99768 27.2475 -0.2 - vertex -7.24334 27.2437 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5349 24.4109 -0.2 - vertex -7.24334 27.2437 -0.2 - vertex -7.89877 27.2865 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5394 24.4322 -0.2 - vertex -7.89877 27.2865 -0.2 - vertex -8.79778 27.3973 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.80178 27.2682 -0.2 - vertex -10.5349 24.4109 -0.2 - vertex -10.904 19.9248 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.25117 14.4787 -0.2 - vertex -10.9261 19.832 -0.2 - vertex -7.22211 14.4578 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5394 24.4322 -0.2 - vertex -8.79778 27.3973 -0.2 - vertex -10.2816 27.5955 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.9261 19.832 -0.2 - vertex -6.25117 14.4787 -0.2 - vertex -10.904 19.9248 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.0035 20.0644 -0.2 - vertex -10.5349 24.4109 -0.2 - vertex -10.5711 24.4 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.9948 19.7221 -0.2 - vertex -7.22211 14.4578 -0.2 - vertex -10.9261 19.832 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.22211 14.4578 -0.2 - vertex -10.9948 19.7221 -0.2 - vertex -9.25643 14.3812 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5349 24.4109 -0.2 - vertex -10.9294 20.0018 -0.2 - vertex -10.904 19.9248 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5349 24.4109 -0.2 - vertex -11.0035 20.0644 -0.2 - vertex -10.9294 20.0018 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5711 24.4 -0.2 - vertex -11.1271 20.114 -0.2 - vertex -11.0035 20.0644 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5711 24.4 -0.2 - vertex -11.3013 20.1521 -0.2 - vertex -11.1271 20.114 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5711 24.4 -0.2 - vertex -11.5271 20.1801 -0.2 - vertex -11.3013 20.1521 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5711 24.4 -0.2 - vertex -12.1376 20.2112 -0.2 - vertex -11.5271 20.1801 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.1612 23.8467 -0.2 - vertex -12.1376 20.2112 -0.2 - vertex -10.5711 24.4 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.1376 20.2112 -0.2 - vertex -14.1612 23.8467 -0.2 - vertex -12.9665 20.2187 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.9665 20.2187 -0.2 - vertex -14.1612 23.8467 -0.2 - vertex -13.9037 20.2008 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1612 23.8467 -0.2 - vertex -14.8461 20.153 -0.2 - vertex -13.9037 20.2008 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.0412 23.3999 -0.2 - vertex -14.8461 20.153 -0.2 - vertex -14.1612 23.8467 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.8461 20.153 -0.2 - vertex -17.0412 23.3999 -0.2 - vertex -15.684 20.0825 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.684 20.0825 -0.2 - vertex -17.0412 23.3999 -0.2 - vertex -16.3079 19.9967 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.0412 23.3999 -0.2 - vertex -17.2235 19.8332 -0.2 - vertex -16.3079 19.9967 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -19.3158 23.0662 -0.2 - vertex -17.2235 19.8332 -0.2 - vertex -17.0412 23.3999 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.2235 19.8332 -0.2 - vertex -19.3158 23.0662 -0.2 - vertex -18.1791 19.6811 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.3158 23.0662 -0.2 - vertex -20.1671 19.4139 -0.2 - vertex -18.1791 19.6811 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -20.7318 22.8633 -0.2 - vertex -20.1671 19.4139 -0.2 - vertex -19.3158 23.0662 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.5474 22.7309 -0.2 - vertex -20.1671 19.4139 -0.2 - vertex -20.7318 22.8633 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.1849 19.2007 -0.2 - vertex -21.5474 22.7309 -0.2 - vertex -21.6404 22.7266 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.1849 19.2007 -0.2 - vertex -21.6404 22.7266 -0.2 - vertex -21.755 22.7463 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.1849 19.2007 -0.2 - vertex -21.755 22.7463 -0.2 - vertex -22.0315 22.8497 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5474 22.7309 -0.2 - vertex -22.1849 19.2007 -0.2 - vertex -20.1671 19.4139 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.3422 23.0246 -0.2 - vertex -22.1849 19.2007 -0.2 - vertex -22.0315 22.8497 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.1455 19.0472 -0.2 - vertex -22.3422 23.0246 -0.2 - vertex -22.6524 23.2546 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.1455 19.0472 -0.2 - vertex -22.6524 23.2546 -0.2 - vertex -23.3692 23.8604 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.3422 23.0246 -0.2 - vertex -24.1455 19.0472 -0.2 - vertex -22.1849 19.2007 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.10332 38.557 -0.2 - vertex 5.26494 38.4452 -0.2 - vertex 5.23504 38.5484 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.26494 38.4452 -0.2 - vertex 5.01738 38.4749 -0.2 - vertex 5.25596 38.2865 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 5.10332 38.557 -0.2 - vertex 5.23504 38.5484 -0.2 - vertex 5.20457 38.5758 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.10332 38.557 -0.2 - vertex 5.20457 38.5758 -0.2 - vertex 5.16325 38.5852 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.26494 38.4452 -0.2 - vertex 5.10332 38.557 -0.2 - vertex 5.01738 38.4749 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.25596 38.2865 -0.2 - vertex 5.01738 38.4749 -0.2 - vertex 5.21112 38.083 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.77727 38.1658 -0.2 - vertex 5.21112 38.083 -0.2 - vertex 5.01738 38.4749 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.21112 38.083 -0.2 - vertex 4.77727 38.1658 -0.2 - vertex 5.13345 37.8458 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.13345 37.8458 -0.2 - vertex 4.77727 38.1658 -0.2 - vertex 5.02596 37.5856 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.46246 37.6912 -0.2 - vertex 5.02596 37.5856 -0.2 - vertex 4.77727 38.1658 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.02596 37.5856 -0.2 - vertex 4.46246 37.6912 -0.2 - vertex 4.89167 37.3134 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.89167 37.3134 -0.2 - vertex 4.46246 37.6912 -0.2 - vertex 4.73361 37.0399 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.09252 37.0842 -0.2 - vertex 4.73361 37.0399 -0.2 - vertex 4.46246 37.6912 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.73361 37.0399 -0.2 - vertex 4.09252 37.0842 -0.2 - vertex 4.62814 36.8484 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.62814 36.8484 -0.2 - vertex 4.09252 37.0842 -0.2 - vertex 4.52293 36.6141 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.68699 36.3778 -0.2 - vertex 4.52293 36.6141 -0.2 - vertex 4.09252 37.0842 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.52293 36.6141 -0.2 - vertex 3.68699 36.3778 -0.2 - vertex 4.31688 36.0346 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.26543 35.6052 -0.2 - vertex 4.31688 36.0346 -0.2 - vertex 3.68699 36.3778 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.31688 36.0346 -0.2 - vertex 3.26543 35.6052 -0.2 - vertex 4.1227 35.3375 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.1227 35.3375 -0.2 - vertex 3.26543 35.6052 -0.2 - vertex 3.94762 34.5584 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 2.84738 34.7996 -0.2 - vertex 3.94762 34.5584 -0.2 - vertex 3.26543 35.6052 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.94762 34.5584 -0.2 - vertex 2.84738 34.7996 -0.2 - vertex 3.79886 33.7332 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 2.4524 33.9939 -0.2 - vertex 3.79886 33.7332 -0.2 - vertex 2.84738 34.7996 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.79886 33.7332 -0.2 - vertex 2.4524 33.9939 -0.2 - vertex 3.68366 32.8976 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 2.10958 33.2371 -0.2 - vertex 3.68366 32.8976 -0.2 - vertex 2.4524 33.9939 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.68366 32.8976 -0.2 - vertex 2.10958 33.2371 -0.2 - vertex 3.60924 32.0876 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.81903 32.5199 -0.2 - vertex 3.60924 32.0876 -0.2 - vertex 2.10958 33.2371 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.27855 5.76024 -0.2 - vertex 1.91748 12.4352 -0.2 - vertex 4.285 6.1855 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.57871 31.8344 -0.2 - vertex 3.60924 32.0876 -0.2 - vertex 1.81903 32.5199 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.88346 12.344 -0.2 - vertex 4.285 6.1855 -0.2 - vertex 1.91748 12.4352 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.285 6.1855 -0.2 - vertex 1.88346 12.344 -0.2 - vertex 3.31149 6.57517 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.81906 12.2515 -0.2 - vertex 3.31149 6.57517 -0.2 - vertex 1.88346 12.344 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.72214 12.1537 -0.2 - vertex 3.31149 6.57517 -0.2 - vertex 1.81906 12.2515 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.31149 6.57517 -0.2 - vertex 1.72214 12.1537 -0.2 - vertex 2.42084 6.9015 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.42228 11.926 -0.2 - vertex 2.42084 6.9015 -0.2 - vertex 1.72214 12.1537 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.42084 6.9015 -0.2 - vertex 1.42228 11.926 -0.2 - vertex 1.67583 7.13679 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 0.986004 11.656 -0.2 - vertex 1.67583 7.13679 -0.2 - vertex 1.42228 11.926 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.67583 7.13679 -0.2 - vertex 0.986004 11.656 -0.2 - vertex 1.30727 7.25861 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.986004 11.656 -0.2 - vertex 0.855811 7.43981 -0.2 - vertex 1.30727 7.25861 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 0.546849 11.4454 -0.2 - vertex 0.855811 7.43981 -0.2 - vertex 0.986004 11.656 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.23691 7.94665 -0.2 - vertex 0.546849 11.4454 -0.2 - vertex 0.0942225 11.293 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.546849 11.4454 -0.2 - vertex -0.23691 7.94665 -0.2 - vertex 0.855811 7.43981 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -0.382462 11.1972 -0.2 - vertex -0.23691 7.94665 -0.2 - vertex 0.0942225 11.293 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.48458 8.58988 -0.2 - vertex -0.382462 11.1972 -0.2 - vertex -0.893798 11.1566 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.48458 8.58988 -0.2 - vertex -0.893798 11.1566 -0.2 - vertex -1.45038 11.1697 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.382462 11.1972 -0.2 - vertex -1.48458 8.58988 -0.2 - vertex -0.23691 7.94665 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.76946 9.30203 -0.2 - vertex -1.45038 11.1697 -0.2 - vertex -2.06279 11.235 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.76946 9.30203 -0.2 - vertex -2.06279 11.235 -0.2 - vertex -2.74162 11.3511 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.45038 11.1697 -0.2 - vertex -2.76946 9.30203 -0.2 - vertex -1.48458 8.58988 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.97378 10.0157 -0.2 - vertex -2.74162 11.3511 -0.2 - vertex -3.43924 11.4799 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.74162 11.3511 -0.2 - vertex -3.97378 10.0157 -0.2 - vertex -2.76946 9.30203 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.06319 11.5774 -0.2 - vertex -3.97378 10.0157 -0.2 - vertex -3.43924 11.4799 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.9798 10.6633 -0.2 - vertex -4.06319 11.5774 -0.2 - vertex -4.60751 11.6434 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.06319 11.5774 -0.2 - vertex -4.9798 10.6633 -0.2 - vertex -3.97378 10.0157 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.06624 11.6776 -0.2 - vertex -4.9798 10.6633 -0.2 - vertex -4.60751 11.6434 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.06624 11.6776 -0.2 - vertex -5.37165 10.9414 -0.2 - vertex -4.9798 10.6633 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.4334 11.6797 -0.2 - vertex -5.37165 10.9414 -0.2 - vertex -5.06624 11.6776 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.4334 11.6797 -0.2 - vertex -5.66976 11.1776 -0.2 - vertex -5.37165 10.9414 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.70304 11.6495 -0.2 - vertex -5.66976 11.1776 -0.2 - vertex -5.4334 11.6797 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.85942 11.3636 -0.2 - vertex -5.70304 11.6495 -0.2 - vertex -5.79943 11.6221 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.70304 11.6495 -0.2 - vertex -5.85942 11.3636 -0.2 - vertex -5.66976 11.1776 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.8692 11.5867 -0.2 - vertex -5.85942 11.3636 -0.2 - vertex -5.79943 11.6221 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.8692 11.5867 -0.2 - vertex -5.90899 11.4352 -0.2 - vertex -5.85942 11.3636 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.91161 11.5429 -0.2 - vertex -5.90899 11.4352 -0.2 - vertex -5.8692 11.5867 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.90899 11.4352 -0.2 - vertex -5.91161 11.5429 -0.2 - vertex -5.92592 11.491 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.51759 -4.36865 -0.2 - vertex 8.0755 -3.36119 -0.2 - vertex 7.75455 -3.09522 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.2523 -4.01644 -0.2 - vertex 7.75455 -3.09522 -0.2 - vertex 7.10115 -2.48513 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.70978 -3.81721 -0.2 - vertex 7.04277 -4.97268 -0.2 - vertex 7.809 -5.75259 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.0755 -3.36119 -0.2 - vertex 6.78219 -4.68956 -0.2 - vertex 7.04277 -4.97268 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.0755 -3.36119 -0.2 - vertex 6.51759 -4.36865 -0.2 - vertex 6.78219 -4.68956 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.48552 -2.8367 -0.2 - vertex 7.10115 -2.48513 -0.2 - vertex 6.42718 -1.76788 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.75455 -3.09522 -0.2 - vertex 6.2523 -4.01644 -0.2 - vertex 6.51759 -4.36865 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.10115 -2.48513 -0.2 - vertex 5.98964 -3.63939 -0.2 - vertex 6.2523 -4.01644 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.03179 -2.01239 -0.2 - vertex 6.42718 -1.76788 -0.2 - vertex 5.79491 -1.04264 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.10115 -2.48513 -0.2 - vertex 5.48552 -2.8367 -0.2 - vertex 5.98964 -3.63939 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.65505 -1.21825 -0.2 - vertex 5.79491 -1.04264 -0.2 - vertex 5.24358 -0.384283 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.42718 -1.76788 -0.2 - vertex 5.03179 -2.01239 -0.2 - vertex 5.48552 -2.8367 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.38188 -0.506111 -0.2 - vertex 5.24358 -0.384283 -0.2 - vertex 4.83246 0.134689 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.79491 -1.04264 -0.2 - vertex 4.65505 -1.21825 -0.2 - vertex 5.03179 -2.01239 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.23886 0.0722368 -0.2 - vertex 4.83246 0.134689 -0.2 - vertex 4.62083 0.441773 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.24358 -0.384283 -0.2 - vertex 4.50386 -0.848697 -0.2 - vertex 4.65505 -1.21825 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.25257 0.464986 -0.2 - vertex 4.62083 0.441773 -0.2 - vertex 4.49221 0.674515 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.33872 0.684191 -0.2 - vertex 4.49221 0.674515 -0.2 - vertex 4.44662 0.733548 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.3737 0.738144 -0.2 - vertex 4.44662 0.733548 -0.2 - vertex 4.40839 0.754677 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.24358 -0.384283 -0.2 - vertex 4.38188 -0.506111 -0.2 - vertex 4.50386 -0.848697 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.44662 0.733548 -0.2 - vertex 4.3737 0.738144 -0.2 - vertex 4.33872 0.684191 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.49221 0.674515 -0.2 - vertex 4.33872 0.684191 -0.2 - vertex 4.25257 0.464986 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.83246 0.134689 -0.2 - vertex 4.29244 -0.196974 -0.2 - vertex 4.38188 -0.506111 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.62083 0.441773 -0.2 - vertex 4.25257 0.464986 -0.2 - vertex 4.22446 0.295049 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.83246 0.134689 -0.2 - vertex 4.23886 0.0722368 -0.2 - vertex 4.29244 -0.196974 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.62083 0.441773 -0.2 - vertex 4.22446 0.295049 -0.2 - vertex 4.23886 0.0722368 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0092 9.15168 -0.2 - vertex 8.87708 15.8492 -0.2 - vertex 14.9543 8.95485 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2183 5.95043 -0.2 - vertex 9.61741 3.25086 -0.2 - vertex 10.5842 2.40247 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1095 6.5543 -0.2 - vertex 9.29624 3.50894 -0.2 - vertex 9.61741 3.25086 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 14.9543 8.95485 -0.2 - vertex 8.87708 15.8492 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0249 7.13954 -0.2 - vertex 9.14614 3.60373 -0.2 - vertex 9.29624 3.50894 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9668 7.69881 -0.2 - vertex 8.19732 4.25764 -0.2 - vertex 8.81858 3.79581 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9543 8.95485 -0.2 - vertex 7.07462 4.9138 -0.2 - vertex 14.9262 8.72903 -0.2 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 7.75154 4.54807 -0.2 - vertex 14.9262 8.72903 -0.2 - vertex 7.07462 4.9138 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 8.87708 15.8492 -0.2 - vertex 8.83337 15.875 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.14614 3.60373 -0.2 - vertex 8.81858 3.79581 -0.2 - vertex 9.03464 3.65533 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 8.83337 15.875 -0.2 - vertex 8.76553 15.9481 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 8.76553 15.9481 -0.2 - vertex 8.57086 16.213 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9668 7.69881 -0.2 - vertex 8.81858 3.79581 -0.2 - vertex 9.14614 3.60373 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 8.57086 16.213 -0.2 - vertex 8.03973 17.0592 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9212 8.45633 -0.2 - vertex 8.00725 4.39171 -0.2 - vertex 8.19732 4.25764 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9212 8.45633 -0.2 - vertex 7.75154 4.54807 -0.2 - vertex 8.00725 4.39171 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 8.03973 17.0592 -0.2 - vertex 7.49889 18.0241 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 7.49889 18.0241 -0.2 - vertex 7.29207 18.4374 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 7.29207 18.4374 -0.2 - vertex 7.16351 18.7442 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 7.16351 18.7442 -0.2 - vertex 7.1273 18.8927 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9262 8.72903 -0.2 - vertex 7.75154 4.54807 -0.2 - vertex 14.9212 8.45633 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 -0.2 - vertex 7.1273 18.8927 -0.2 - vertex 7.1242 19.0144 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.1091 19.5935 -0.2 - vertex -9.25643 14.3812 -0.2 - vertex -10.9948 19.7221 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.4702 19.2748 -0.2 - vertex -9.25643 14.3812 -0.2 - vertex -11.1091 19.5935 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.25643 14.3812 -0.2 - vertex -11.4702 19.2748 -0.2 - vertex -9.98725 14.3241 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -12.0016 18.8648 -0.2 - vertex -9.98725 14.3241 -0.2 - vertex -11.4702 19.2748 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.98725 14.3241 -0.2 - vertex -12.0016 18.8648 -0.2 - vertex -10.6249 14.238 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.6249 14.238 -0.2 - vertex -12.0016 18.8648 -0.2 - vertex -11.2428 14.1101 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.8225 17.5152 -0.2 - vertex -11.2428 14.1101 -0.2 - vertex -12.0016 18.8648 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.2428 14.1101 -0.2 - vertex -13.8225 17.5152 -0.2 - vertex -11.9142 13.9281 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.9142 13.9281 -0.2 - vertex -13.8225 17.5152 -0.2 - vertex -12.7125 13.6795 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.4648 17.0612 -0.2 - vertex -12.7125 13.6795 -0.2 - vertex -13.8225 17.5152 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.9972 16.7116 -0.2 - vertex -12.7125 13.6795 -0.2 - vertex -14.4648 17.0612 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.7125 13.6795 -0.2 - vertex -14.9972 16.7116 -0.2 - vertex -13.7109 13.3517 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.4716 16.4339 -0.2 - vertex -13.7109 13.3517 -0.2 - vertex -14.9972 16.7116 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.7109 13.3517 -0.2 - vertex -15.4716 16.4339 -0.2 - vertex -14.949 12.9624 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.9397 16.1961 -0.2 - vertex -14.949 12.9624 -0.2 - vertex -15.4716 16.4339 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.4531 15.9659 -0.2 - vertex -14.949 12.9624 -0.2 - vertex -15.9397 16.1961 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.949 12.9624 -0.2 - vertex -16.4531 15.9659 -0.2 - vertex -16.0795 12.6436 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.0637 15.711 -0.2 - vertex -16.0795 12.6436 -0.2 - vertex -16.4531 15.9659 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.0795 12.6436 -0.2 - vertex -17.0637 15.711 -0.2 - vertex -16.9775 12.4282 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.4061 15.1884 -0.2 - vertex -16.9775 12.4282 -0.2 - vertex -17.0637 15.711 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9775 12.4282 -0.2 - vertex -18.4061 15.1884 -0.2 - vertex -17.3003 12.3696 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.3003 12.3696 -0.2 - vertex -18.4061 15.1884 -0.2 - vertex -17.5181 12.3491 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5181 12.3491 -0.2 - vertex -18.4061 15.1884 -0.2 - vertex -17.9556 12.3221 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.4061 15.1884 -0.2 - vertex -18.5728 12.2484 -0.2 - vertex -17.9556 12.3221 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -19.7213 14.7364 -0.2 - vertex -18.5728 12.2484 -0.2 - vertex -18.4061 15.1884 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5728 12.2484 -0.2 - vertex -19.7213 14.7364 -0.2 - vertex -19.2876 12.1394 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.7213 14.7364 -0.2 - vertex -20.0181 12.0063 -0.2 - vertex -19.2876 12.1394 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.0167 14.3533 -0.2 - vertex -20.0181 12.0063 -0.2 - vertex -19.7213 14.7364 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.0181 12.0063 -0.2 - vertex -21.0167 14.3533 -0.2 - vertex -20.4772 11.9313 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.0167 14.3533 -0.2 - vertex -21.0446 11.8651 -0.2 - vertex -20.4772 11.9313 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.3001 14.0374 -0.2 - vertex -21.0446 11.8651 -0.2 - vertex -21.0167 14.3533 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.3001 14.0374 -0.2 - vertex -22.4311 11.7593 -0.2 - vertex -21.0446 11.8651 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -23.579 13.787 -0.2 - vertex -22.4311 11.7593 -0.2 - vertex -22.3001 14.0374 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.579 13.787 -0.2 - vertex -24.031 11.6901 -0.2 - vertex -22.4311 11.7593 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.8613 13.6003 -0.2 - vertex -24.031 11.6901 -0.2 - vertex -23.579 13.787 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.8613 13.6003 -0.2 - vertex -25.698 11.6586 -0.2 - vertex -24.031 11.6901 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.1544 13.4758 -0.2 - vertex -25.698 11.6586 -0.2 - vertex -24.8613 13.6003 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.1544 13.4758 -0.2 - vertex -27.2855 11.6658 -0.2 - vertex -25.698 11.6586 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.4661 13.4117 -0.2 - vertex -27.2855 11.6658 -0.2 - vertex -26.1544 13.4758 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.4661 13.4117 -0.2 - vertex -28.647 11.7129 -0.2 - vertex -27.2855 11.6658 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -29.0548 13.353 -0.2 - vertex -28.647 11.7129 -0.2 - vertex -27.4661 13.4117 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0548 13.353 -0.2 - vertex -29.1973 11.7518 -0.2 - vertex -28.647 11.7129 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -29.5683 13.309 -0.2 - vertex -29.1973 11.7518 -0.2 - vertex -29.0548 13.353 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.5683 13.309 -0.2 - vertex -29.6362 11.801 -0.2 - vertex -29.1973 11.7518 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3556 12.4664 -0.2 - vertex -29.5683 13.309 -0.2 - vertex -29.9294 13.2465 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.5683 13.309 -0.2 - vertex -30.2975 12.2549 -0.2 - vertex -29.6362 11.801 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.6362 11.801 -0.2 - vertex -30.2975 12.2549 -0.2 - vertex -29.9453 11.8607 -0.2 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -30.2115 12.0683 -0.2 - vertex -29.9453 11.8607 -0.2 - vertex -30.2975 12.2549 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.377 12.6783 -0.2 - vertex -29.9294 13.2465 -0.2 - vertex -30.1646 13.1588 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.9453 11.8607 -0.2 - vertex -30.2115 12.0683 -0.2 - vertex -30.0456 11.8946 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3621 12.8813 -0.2 - vertex -30.1646 13.1588 -0.2 - vertex -30.2432 13.1034 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0456 11.8946 -0.2 - vertex -30.2115 12.0683 -0.2 - vertex -30.1065 11.9311 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3387 12.9655 -0.2 - vertex -30.2432 13.1034 -0.2 - vertex -30.3001 13.0393 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2432 13.1034 -0.2 - vertex -30.3387 12.9655 -0.2 - vertex -30.3621 12.8813 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.5683 13.309 -0.2 - vertex -30.3556 12.4664 -0.2 - vertex -30.2975 12.2549 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1646 13.1588 -0.2 - vertex -30.3621 12.8813 -0.2 - vertex -30.377 12.6783 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.9294 13.2465 -0.2 - vertex -30.377 12.6783 -0.2 - vertex -30.3556 12.4664 -0.2 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.053 23.8437 -0.2 - vertex -24.1455 19.0472 -0.2 - vertex -24.6523 24.0122 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.1455 19.0472 -0.2 - vertex -26.053 23.8437 -0.2 - vertex -25.9619 18.9589 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.3394 21.9725 -0.2 - vertex -26.053 23.8437 -0.2 - vertex -26.7338 23.7794 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.053 23.8437 -0.2 - vertex -28.3394 21.9725 -0.2 - vertex -25.9619 18.9589 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.3394 21.9725 -0.2 - vertex -26.7338 23.7794 -0.2 - vertex -27.3569 23.7586 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.9619 18.9589 -0.2 - vertex -28.3394 21.9725 -0.2 - vertex -26.7887 18.9409 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.3394 21.9725 -0.2 - vertex -27.3569 23.7586 -0.2 - vertex -27.9279 23.7822 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.7887 18.9409 -0.2 - vertex -28.3394 21.9725 -0.2 - vertex -27.5469 18.9414 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.5469 18.9414 -0.2 - vertex -28.3394 21.9725 -0.2 - vertex -28.2256 18.9609 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0186 22.3563 -0.2 - vertex -27.9279 23.7822 -0.2 - vertex -28.4524 23.8513 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.4321 22.5993 -0.2 - vertex -28.4524 23.8513 -0.2 - vertex -28.9359 23.9669 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.9279 23.7822 -0.2 - vertex -29.0186 22.3563 -0.2 - vertex -28.3394 21.9725 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.7937 22.8325 -0.2 - vertex -28.9359 23.9669 -0.2 - vertex -29.384 24.13 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.4524 23.8513 -0.2 - vertex -29.4321 22.5993 -0.2 - vertex -29.0186 22.3563 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.9359 23.9669 -0.2 - vertex -29.7937 22.8325 -0.2 - vertex -29.4321 22.5993 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3761 23.2826 -0.2 - vertex -29.384 24.13 -0.2 - vertex -29.8023 24.3416 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.384 24.13 -0.2 - vertex -30.1071 23.0591 -0.2 - vertex -29.7937 22.8325 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.7957 23.7338 -0.2 - vertex -29.8023 24.3416 -0.2 - vertex -30.1964 24.6027 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.384 24.13 -0.2 - vertex -30.3761 23.2826 -0.2 - vertex -30.1071 23.0591 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.0826 24.213 -0.2 - vertex -30.1964 24.6027 -0.2 - vertex -30.5308 24.8328 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.8023 24.3416 -0.2 - vertex -30.6044 23.5064 -0.2 - vertex -30.3761 23.2826 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.8023 24.3416 -0.2 - vertex -30.7957 23.7338 -0.2 - vertex -30.6044 23.5064 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2103 24.5339 -0.2 - vertex -30.5308 24.8328 -0.2 - vertex -30.8055 24.9813 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1964 24.6027 -0.2 - vertex -30.9539 23.9682 -0.2 - vertex -30.7957 23.7338 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2656 24.779 -0.2 - vertex -30.8055 24.9813 -0.2 - vertex -31.0185 25.0493 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1964 24.6027 -0.2 - vertex -31.0826 24.213 -0.2 - vertex -30.9539 23.9682 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2668 24.8727 -0.2 - vertex -31.0185 25.0493 -0.2 - vertex -31.1012 25.0533 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2507 24.9472 -0.2 - vertex -31.1012 25.0533 -0.2 - vertex -31.1676 25.0376 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.5308 24.8328 -0.2 - vertex -31.2103 24.5339 -0.2 - vertex -31.0826 24.213 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2507 24.9472 -0.2 - vertex -31.1676 25.0376 -0.2 - vertex -31.2175 25.0021 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.1012 25.0533 -0.2 - vertex -31.2507 24.9472 -0.2 - vertex -31.2668 24.8727 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.8055 24.9813 -0.2 - vertex -31.2656 24.779 -0.2 - vertex -31.2103 24.5339 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.0185 25.0493 -0.2 - vertex -31.2668 24.8727 -0.2 - vertex -31.2656 24.779 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.3394 21.9725 -0.2 - vertex -28.8137 19.0002 -0.2 - vertex -28.2256 18.9609 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.3394 21.9725 -0.2 - vertex -29.3006 19.0599 -0.2 - vertex -28.8137 19.0002 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.3394 21.9725 -0.2 - vertex -29.6752 19.1409 -0.2 - vertex -29.3006 19.0599 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0859 22.0525 -0.2 - vertex -29.6752 19.1409 -0.2 - vertex -28.3394 21.9725 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.5811 19.4165 -0.2 - vertex -30.0859 22.0525 -0.2 - vertex -30.5728 22.0884 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0859 22.0525 -0.2 - vertex -30.5811 19.4165 -0.2 - vertex -29.6752 19.1409 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.4466 19.7034 -0.2 - vertex -30.5728 22.0884 -0.2 - vertex -31.074 22.1513 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.5728 22.0884 -0.2 - vertex -31.4466 19.7034 -0.2 - vertex -30.5811 19.4165 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.271 20.0012 -0.2 - vertex -31.074 22.1513 -0.2 - vertex -31.5861 22.2399 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.271 20.0012 -0.2 - vertex -31.5861 22.2399 -0.2 - vertex -32.1061 22.3529 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.074 22.1513 -0.2 - vertex -32.271 20.0012 -0.2 - vertex -31.4466 19.7034 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.0533 20.3093 -0.2 - vertex -32.1061 22.3529 -0.2 - vertex -32.6306 22.489 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.1061 22.3529 -0.2 - vertex -33.0533 20.3093 -0.2 - vertex -32.271 20.0012 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.7926 20.6272 -0.2 - vertex -32.6306 22.489 -0.2 - vertex -33.1564 22.6469 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.4881 20.9542 -0.2 - vertex -33.1564 22.6469 -0.2 - vertex -33.6803 22.8253 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.6306 22.489 -0.2 - vertex -33.7926 20.6272 -0.2 - vertex -33.0533 20.3093 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.4881 20.9542 -0.2 - vertex -33.6803 22.8253 -0.2 - vertex -34.199 23.023 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.1564 22.6469 -0.2 - vertex -34.4881 20.9542 -0.2 - vertex -33.7926 20.6272 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.1386 21.2899 -0.2 - vertex -34.199 23.023 -0.2 - vertex -34.7094 23.2385 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.199 23.023 -0.2 - vertex -35.1386 21.2899 -0.2 - vertex -34.4881 20.9542 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.7435 21.6336 -0.2 - vertex -34.7094 23.2385 -0.2 - vertex -35.2082 23.4707 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.3017 21.985 -0.2 - vertex -35.2082 23.4707 -0.2 - vertex -35.6921 23.7183 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.7094 23.2385 -0.2 - vertex -35.7435 21.6336 -0.2 - vertex -35.1386 21.2899 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.8124 22.3433 -0.2 - vertex -35.6921 23.7183 -0.2 - vertex -36.1579 23.9798 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.2082 23.4707 -0.2 - vertex -36.3017 21.985 -0.2 - vertex -35.7435 21.6336 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.2746 22.7082 -0.2 - vertex -36.1579 23.9798 -0.2 - vertex -36.6025 24.2541 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.6921 23.7183 -0.2 - vertex -36.8124 22.3433 -0.2 - vertex -36.3017 21.985 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.6874 23.0789 -0.2 - vertex -36.6025 24.2541 -0.2 - vertex -37.0225 24.5398 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.1579 23.9798 -0.2 - vertex -37.2746 22.7082 -0.2 - vertex -36.8124 22.3433 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.3611 23.836 -0.2 - vertex -37.0225 24.5398 -0.2 - vertex -37.4147 24.8357 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.6025 24.2541 -0.2 - vertex -37.6874 23.0789 -0.2 - vertex -37.2746 22.7082 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.6203 24.2212 -0.2 - vertex -37.4147 24.8357 -0.2 - vertex -37.776 25.1404 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.0225 24.5398 -0.2 - vertex -38.0499 23.455 -0.2 - vertex -37.6874 23.0789 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.8265 24.6102 -0.2 - vertex -37.776 25.1404 -0.2 - vertex -38.2113 25.5018 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.0225 24.5398 -0.2 - vertex -38.3611 23.836 -0.2 - vertex -38.0499 23.455 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.0227 25.0923 -0.2 - vertex -38.2113 25.5018 -0.2 - vertex -38.5664 25.7376 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.4147 24.8357 -0.2 - vertex -38.6203 24.2212 -0.2 - vertex -38.3611 23.836 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.1186 25.4589 -0.2 - vertex -38.5664 25.7376 -0.2 - vertex -38.7129 25.8089 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.776 25.1404 -0.2 - vertex -38.8265 24.6102 -0.2 - vertex -38.6203 24.2212 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.13 25.5984 -0.2 - vertex -38.7129 25.8089 -0.2 - vertex -38.8381 25.8495 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.1175 25.7085 -0.2 - vertex -38.8381 25.8495 -0.2 - vertex -38.9416 25.8595 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.2113 25.5018 -0.2 - vertex -39.0227 25.0923 -0.2 - vertex -38.8265 24.6102 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.0817 25.7888 -0.2 - vertex -38.9416 25.8595 -0.2 - vertex -39.0229 25.8392 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.9416 25.8595 -0.2 - vertex -39.0817 25.7888 -0.2 - vertex -39.1175 25.7085 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.8381 25.8495 -0.2 - vertex -39.1175 25.7085 -0.2 - vertex -39.13 25.5984 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.5664 25.7376 -0.2 - vertex -39.1186 25.4589 -0.2 - vertex -39.0227 25.0923 -0.2 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.7129 25.8089 -0.2 - vertex -39.13 25.5984 -0.2 - vertex -39.1186 25.4589 -0.2 - endloop - endfacet - facet normal -0.668491 -0.74372 0 - outer loop - vertex 5.20457 38.5758 -0.2 - vertex 5.23504 38.5484 0 - vertex 5.20457 38.5758 0 - endloop - endfacet - facet normal -0.668491 -0.74372 -0 - outer loop - vertex 5.23504 38.5484 0 - vertex 5.20457 38.5758 -0.2 - vertex 5.23504 38.5484 -0.2 - endloop - endfacet - facet normal -0.96052 -0.278211 0 - outer loop - vertex 5.26494 38.4452 -0.2 - vertex 5.23504 38.5484 0 - vertex 5.23504 38.5484 -0.2 - endloop - endfacet - facet normal -0.96052 -0.278211 0 - outer loop - vertex 5.23504 38.5484 0 - vertex 5.26494 38.4452 -0.2 - vertex 5.26494 38.4452 0 - endloop - endfacet - facet normal -0.998404 0.0564745 0 - outer loop - vertex 5.25596 38.2865 -0.2 - vertex 5.26494 38.4452 0 - vertex 5.26494 38.4452 -0.2 - endloop - endfacet - facet normal -0.998404 0.0564745 0 - outer loop - vertex 5.26494 38.4452 0 - vertex 5.25596 38.2865 -0.2 - vertex 5.25596 38.2865 0 - endloop - endfacet - facet normal -0.976561 0.215243 0 - outer loop - vertex 5.21112 38.083 -0.2 - vertex 5.25596 38.2865 0 - vertex 5.25596 38.2865 -0.2 - endloop - endfacet - facet normal -0.976561 0.215243 0 - outer loop - vertex 5.25596 38.2865 0 - vertex 5.21112 38.083 -0.2 - vertex 5.21112 38.083 0 - endloop - endfacet - facet normal -0.950355 0.311168 0 - outer loop - vertex 5.13345 37.8458 -0.2 - vertex 5.21112 38.083 0 - vertex 5.21112 38.083 -0.2 - endloop - endfacet - facet normal -0.950355 0.311168 0 - outer loop - vertex 5.21112 38.083 0 - vertex 5.13345 37.8458 -0.2 - vertex 5.13345 37.8458 0 - endloop - endfacet - facet normal -0.924228 0.381841 0 - outer loop - vertex 5.02596 37.5856 -0.2 - vertex 5.13345 37.8458 0 - vertex 5.13345 37.8458 -0.2 - endloop - endfacet - facet normal -0.924228 0.381841 0 - outer loop - vertex 5.13345 37.8458 0 - vertex 5.02596 37.5856 -0.2 - vertex 5.02596 37.5856 0 - endloop - endfacet - facet normal -0.896839 0.442358 0 - outer loop - vertex 4.89167 37.3134 -0.2 - vertex 5.02596 37.5856 0 - vertex 5.02596 37.5856 -0.2 - endloop - endfacet - facet normal -0.896839 0.442358 0 - outer loop - vertex 5.02596 37.5856 0 - vertex 4.89167 37.3134 -0.2 - vertex 4.89167 37.3134 0 - endloop - endfacet - facet normal -0.865785 0.500416 0 - outer loop - vertex 4.73361 37.0399 -0.2 - vertex 4.89167 37.3134 0 - vertex 4.89167 37.3134 -0.2 - endloop - endfacet - facet normal -0.865785 0.500416 0 - outer loop - vertex 4.89167 37.3134 0 - vertex 4.73361 37.0399 -0.2 - vertex 4.73361 37.0399 0 - endloop - endfacet - facet normal -0.875928 0.482442 0 - outer loop - vertex 4.62814 36.8484 -0.2 - vertex 4.73361 37.0399 0 - vertex 4.73361 37.0399 -0.2 - endloop - endfacet - facet normal -0.875928 0.482442 0 - outer loop - vertex 4.73361 37.0399 0 - vertex 4.62814 36.8484 -0.2 - vertex 4.62814 36.8484 0 - endloop - endfacet - facet normal -0.912281 0.409566 0 - outer loop - vertex 4.52293 36.6141 -0.2 - vertex 4.62814 36.8484 0 - vertex 4.62814 36.8484 -0.2 - endloop - endfacet - facet normal -0.912281 0.409566 0 - outer loop - vertex 4.62814 36.8484 0 - vertex 4.52293 36.6141 -0.2 - vertex 4.52293 36.6141 0 - endloop - endfacet - facet normal -0.942197 0.335061 0 - outer loop - vertex 4.31688 36.0346 -0.2 - vertex 4.52293 36.6141 0 - vertex 4.52293 36.6141 -0.2 - endloop - endfacet - facet normal -0.942197 0.335061 0 - outer loop - vertex 4.52293 36.6141 0 - vertex 4.31688 36.0346 -0.2 - vertex 4.31688 36.0346 0 - endloop - endfacet - facet normal -0.963331 0.268317 0 - outer loop - vertex 4.1227 35.3375 -0.2 - vertex 4.31688 36.0346 0 - vertex 4.31688 36.0346 -0.2 - endloop - endfacet - facet normal -0.963331 0.268317 0 - outer loop - vertex 4.31688 36.0346 0 - vertex 4.1227 35.3375 -0.2 - vertex 4.1227 35.3375 0 - endloop - endfacet - facet normal -0.975667 0.219257 0 - outer loop - vertex 3.94762 34.5584 -0.2 - vertex 4.1227 35.3375 0 - vertex 4.1227 35.3375 -0.2 - endloop - endfacet - facet normal -0.975667 0.219257 0 - outer loop - vertex 4.1227 35.3375 0 - vertex 3.94762 34.5584 -0.2 - vertex 3.94762 34.5584 0 - endloop - endfacet - facet normal -0.984138 0.177404 0 - outer loop - vertex 3.79886 33.7332 -0.2 - vertex 3.94762 34.5584 0 - vertex 3.94762 34.5584 -0.2 - endloop - endfacet - facet normal -0.984138 0.177404 0 - outer loop - vertex 3.94762 34.5584 0 - vertex 3.79886 33.7332 -0.2 - vertex 3.79886 33.7332 0 - endloop - endfacet - facet normal -0.990628 0.136587 0 - outer loop - vertex 3.68366 32.8976 -0.2 - vertex 3.79886 33.7332 0 - vertex 3.79886 33.7332 -0.2 - endloop - endfacet - facet normal -0.990628 0.136587 0 - outer loop - vertex 3.79886 33.7332 0 - vertex 3.68366 32.8976 -0.2 - vertex 3.68366 32.8976 0 - endloop - endfacet - facet normal -0.995806 0.0914898 0 - outer loop - vertex 3.60924 32.0876 -0.2 - vertex 3.68366 32.8976 0 - vertex 3.68366 32.8976 -0.2 - endloop - endfacet - facet normal -0.995806 0.0914898 0 - outer loop - vertex 3.68366 32.8976 0 - vertex 3.60924 32.0876 -0.2 - vertex 3.60924 32.0876 0 - endloop - endfacet - facet normal -0.999378 0.0352546 0 - outer loop - vertex 3.58282 31.3388 -0.2 - vertex 3.60924 32.0876 0 - vertex 3.60924 32.0876 -0.2 - endloop - endfacet - facet normal -0.999378 0.0352546 0 - outer loop - vertex 3.60924 32.0876 0 - vertex 3.58282 31.3388 -0.2 - vertex 3.58282 31.3388 0 - endloop - endfacet - facet normal -0.999852 -0.0171991 0 - outer loop - vertex 3.59957 30.3654 -0.2 - vertex 3.58282 31.3388 0 - vertex 3.58282 31.3388 -0.2 - endloop - endfacet - facet normal -0.999852 -0.0171991 0 - outer loop - vertex 3.58282 31.3388 0 - vertex 3.59957 30.3654 -0.2 - vertex 3.59957 30.3654 0 - endloop - endfacet - facet normal -0.995876 -0.0907198 0 - outer loop - vertex 3.63162 30.0135 -0.2 - vertex 3.59957 30.3654 0 - vertex 3.59957 30.3654 -0.2 - endloop - endfacet - facet normal -0.995876 -0.0907198 0 - outer loop - vertex 3.59957 30.3654 0 - vertex 3.63162 30.0135 -0.2 - vertex 3.63162 30.0135 0 - endloop - endfacet - facet normal -0.982044 -0.188652 0 - outer loop - vertex 3.68937 29.7129 -0.2 - vertex 3.63162 30.0135 0 - vertex 3.63162 30.0135 -0.2 - endloop - endfacet - facet normal -0.982044 -0.188652 0 - outer loop - vertex 3.63162 30.0135 0 - vertex 3.68937 29.7129 -0.2 - vertex 3.68937 29.7129 0 - endloop - endfacet - facet normal -0.950581 -0.310477 0 - outer loop - vertex 3.78021 29.4348 -0.2 - vertex 3.68937 29.7129 0 - vertex 3.68937 29.7129 -0.2 - endloop - endfacet - facet normal -0.950581 -0.310477 0 - outer loop - vertex 3.68937 29.7129 0 - vertex 3.78021 29.4348 -0.2 - vertex 3.78021 29.4348 0 - endloop - endfacet - facet normal -0.907937 -0.419107 0 - outer loop - vertex 3.91157 29.1502 -0.2 - vertex 3.78021 29.4348 0 - vertex 3.78021 29.4348 -0.2 - endloop - endfacet - facet normal -0.907937 -0.419107 0 - outer loop - vertex 3.78021 29.4348 0 - vertex 3.91157 29.1502 -0.2 - vertex 3.91157 29.1502 0 - endloop - endfacet - facet normal -0.872337 -0.488905 0 - outer loop - vertex 4.09087 28.8303 -0.2 - vertex 3.91157 29.1502 0 - vertex 3.91157 29.1502 -0.2 - endloop - endfacet - facet normal -0.872337 -0.488905 0 - outer loop - vertex 3.91157 29.1502 0 - vertex 4.09087 28.8303 -0.2 - vertex 4.09087 28.8303 0 - endloop - endfacet - facet normal -0.853386 -0.52128 0 - outer loop - vertex 4.32553 28.4461 -0.2 - vertex 4.09087 28.8303 0 - vertex 4.09087 28.8303 -0.2 - endloop - endfacet - facet normal -0.853386 -0.52128 0 - outer loop - vertex 4.09087 28.8303 0 - vertex 4.32553 28.4461 -0.2 - vertex 4.32553 28.4461 0 - endloop - endfacet - facet normal -0.837817 -0.545951 0 - outer loop - vertex 4.69711 27.8759 -0.2 - vertex 4.32553 28.4461 0 - vertex 4.32553 28.4461 -0.2 - endloop - endfacet - facet normal -0.837817 -0.545951 0 - outer loop - vertex 4.32553 28.4461 0 - vertex 4.69711 27.8759 -0.2 - vertex 4.69711 27.8759 0 - endloop - endfacet - facet normal -0.807831 -0.589415 0 - outer loop - vertex 5.05276 27.3884 -0.2 - vertex 4.69711 27.8759 0 - vertex 4.69711 27.8759 -0.2 - endloop - endfacet - facet normal -0.807831 -0.589415 0 - outer loop - vertex 4.69711 27.8759 0 - vertex 5.05276 27.3884 -0.2 - vertex 5.05276 27.3884 0 - endloop - endfacet - facet normal -0.764742 -0.644337 0 - outer loop - vertex 5.39739 26.9794 -0.2 - vertex 5.05276 27.3884 0 - vertex 5.05276 27.3884 -0.2 - endloop - endfacet - facet normal -0.764742 -0.644337 0 - outer loop - vertex 5.05276 27.3884 0 - vertex 5.39739 26.9794 -0.2 - vertex 5.39739 26.9794 0 - endloop - endfacet - facet normal -0.703379 -0.710815 0 - outer loop - vertex 5.39739 26.9794 -0.2 - vertex 5.73586 26.6445 0 - vertex 5.39739 26.9794 0 - endloop - endfacet - facet normal -0.703379 -0.710815 -0 - outer loop - vertex 5.73586 26.6445 0 - vertex 5.39739 26.9794 -0.2 - vertex 5.73586 26.6445 -0.2 - endloop - endfacet - facet normal -0.618154 -0.786057 0 - outer loop - vertex 5.73586 26.6445 -0.2 - vertex 6.07308 26.3793 0 - vertex 5.73586 26.6445 0 - endloop - endfacet - facet normal -0.618154 -0.786057 -0 - outer loop - vertex 6.07308 26.3793 0 - vertex 5.73586 26.6445 -0.2 - vertex 6.07308 26.3793 -0.2 - endloop - endfacet - facet normal -0.505671 -0.862726 0 - outer loop - vertex 6.07308 26.3793 -0.2 - vertex 6.41393 26.1795 0 - vertex 6.07308 26.3793 0 - endloop - endfacet - facet normal -0.505671 -0.862726 -0 - outer loop - vertex 6.41393 26.1795 0 - vertex 6.07308 26.3793 -0.2 - vertex 6.41393 26.1795 -0.2 - endloop - endfacet - facet normal -0.369033 -0.929416 0 - outer loop - vertex 6.41393 26.1795 -0.2 - vertex 6.76329 26.0408 0 - vertex 6.41393 26.1795 0 - endloop - endfacet - facet normal -0.369033 -0.929416 -0 - outer loop - vertex 6.76329 26.0408 0 - vertex 6.41393 26.1795 -0.2 - vertex 6.76329 26.0408 -0.2 - endloop - endfacet - facet normal -0.220456 -0.975397 0 - outer loop - vertex 6.76329 26.0408 -0.2 - vertex 7.12606 25.9588 0 - vertex 6.76329 26.0408 0 - endloop - endfacet - facet normal -0.220456 -0.975397 -0 - outer loop - vertex 7.12606 25.9588 0 - vertex 6.76329 26.0408 -0.2 - vertex 7.12606 25.9588 -0.2 - endloop - endfacet - facet normal -0.188841 -0.982008 0 - outer loop - vertex 7.12606 25.9588 -0.2 - vertex 7.55919 25.8755 0 - vertex 7.12606 25.9588 0 - endloop - endfacet - facet normal -0.188841 -0.982008 -0 - outer loop - vertex 7.55919 25.8755 0 - vertex 7.12606 25.9588 -0.2 - vertex 7.55919 25.8755 -0.2 - endloop - endfacet - facet normal -0.317419 -0.948285 0 - outer loop - vertex 7.55919 25.8755 -0.2 - vertex 7.92584 25.7528 0 - vertex 7.55919 25.8755 0 - endloop - endfacet - facet normal -0.317419 -0.948285 -0 - outer loop - vertex 7.92584 25.7528 0 - vertex 7.55919 25.8755 -0.2 - vertex 7.92584 25.7528 -0.2 - endloop - endfacet - facet normal -0.448547 -0.893759 0 - outer loop - vertex 7.92584 25.7528 -0.2 - vertex 8.08977 25.6705 0 - vertex 7.92584 25.7528 0 - endloop - endfacet - facet normal -0.448547 -0.893759 -0 - outer loop - vertex 8.08977 25.6705 0 - vertex 7.92584 25.7528 -0.2 - vertex 8.08977 25.6705 -0.2 - endloop - endfacet - facet normal -0.542679 -0.83994 0 - outer loop - vertex 8.08977 25.6705 -0.2 - vertex 8.24373 25.571 0 - vertex 8.08977 25.6705 0 - endloop - endfacet - facet normal -0.542679 -0.83994 -0 - outer loop - vertex 8.24373 25.571 0 - vertex 8.08977 25.6705 -0.2 - vertex 8.24373 25.571 -0.2 - endloop - endfacet - facet normal -0.63165 -0.775254 0 - outer loop - vertex 8.24373 25.571 -0.2 - vertex 8.38993 25.4519 0 - vertex 8.24373 25.571 0 - endloop - endfacet - facet normal -0.63165 -0.775254 -0 - outer loop - vertex 8.38993 25.4519 0 - vertex 8.24373 25.571 -0.2 - vertex 8.38993 25.4519 -0.2 - endloop - endfacet - facet normal -0.708493 -0.705718 0 - outer loop - vertex 8.53058 25.3107 -0.2 - vertex 8.38993 25.4519 0 - vertex 8.38993 25.4519 -0.2 - endloop - endfacet - facet normal -0.708493 -0.705718 0 - outer loop - vertex 8.38993 25.4519 0 - vertex 8.53058 25.3107 -0.2 - vertex 8.53058 25.3107 0 - endloop - endfacet - facet normal -0.770043 -0.637991 0 - outer loop - vertex 8.6679 25.145 -0.2 - vertex 8.53058 25.3107 0 - vertex 8.53058 25.3107 -0.2 - endloop - endfacet - facet normal -0.770043 -0.637991 0 - outer loop - vertex 8.53058 25.3107 0 - vertex 8.6679 25.145 -0.2 - vertex 8.6679 25.145 0 - endloop - endfacet - facet normal -0.816637 -0.577152 0 - outer loop - vertex 8.80411 24.9522 -0.2 - vertex 8.6679 25.145 0 - vertex 8.6679 25.145 -0.2 - endloop - endfacet - facet normal -0.816637 -0.577152 0 - outer loop - vertex 8.6679 25.145 0 - vertex 8.80411 24.9522 -0.2 - vertex 8.80411 24.9522 0 - endloop - endfacet - facet normal -0.863652 -0.504088 0 - outer loop - vertex 9.08206 24.476 -0.2 - vertex 8.80411 24.9522 0 - vertex 8.80411 24.9522 -0.2 - endloop - endfacet - facet normal -0.863652 -0.504088 0 - outer loop - vertex 8.80411 24.9522 0 - vertex 9.08206 24.476 -0.2 - vertex 9.08206 24.476 0 - endloop - endfacet - facet normal -0.8983 -0.439382 0 - outer loop - vertex 9.38213 23.8626 -0.2 - vertex 9.08206 24.476 0 - vertex 9.08206 24.476 -0.2 - endloop - endfacet - facet normal -0.8983 -0.439382 0 - outer loop - vertex 9.08206 24.476 0 - vertex 9.38213 23.8626 -0.2 - vertex 9.38213 23.8626 0 - endloop - endfacet - facet normal -0.914889 -0.403706 0 - outer loop - vertex 9.72206 23.0922 -0.2 - vertex 9.38213 23.8626 0 - vertex 9.38213 23.8626 -0.2 - endloop - endfacet - facet normal -0.914889 -0.403706 0 - outer loop - vertex 9.38213 23.8626 0 - vertex 9.72206 23.0922 -0.2 - vertex 9.72206 23.0922 0 - endloop - endfacet - facet normal -0.916786 -0.399379 0 - outer loop - vertex 10.0801 22.2703 -0.2 - vertex 9.72206 23.0922 0 - vertex 9.72206 23.0922 -0.2 - endloop - endfacet - facet normal -0.916786 -0.399379 0 - outer loop - vertex 9.72206 23.0922 0 - vertex 10.0801 22.2703 -0.2 - vertex 10.0801 22.2703 0 - endloop - endfacet - facet normal -0.906506 -0.422192 0 - outer loop - vertex 10.3935 21.5973 -0.2 - vertex 10.0801 22.2703 0 - vertex 10.0801 22.2703 -0.2 - endloop - endfacet - facet normal -0.906506 -0.422192 0 - outer loop - vertex 10.0801 22.2703 0 - vertex 10.3935 21.5973 -0.2 - vertex 10.3935 21.5973 0 - endloop - endfacet - facet normal -0.886025 -0.463638 0 - outer loop - vertex 10.6869 21.0368 -0.2 - vertex 10.3935 21.5973 0 - vertex 10.3935 21.5973 -0.2 - endloop - endfacet - facet normal -0.886025 -0.463638 0 - outer loop - vertex 10.3935 21.5973 0 - vertex 10.6869 21.0368 -0.2 - vertex 10.6869 21.0368 0 - endloop - endfacet - facet normal -0.852053 -0.523456 0 - outer loop - vertex 10.9846 20.5521 -0.2 - vertex 10.6869 21.0368 0 - vertex 10.6869 21.0368 -0.2 - endloop - endfacet - facet normal -0.852053 -0.523456 0 - outer loop - vertex 10.6869 21.0368 0 - vertex 10.9846 20.5521 -0.2 - vertex 10.9846 20.5521 0 - endloop - endfacet - facet normal -0.806267 -0.591552 0 - outer loop - vertex 11.3113 20.1069 -0.2 - vertex 10.9846 20.5521 0 - vertex 10.9846 20.5521 -0.2 - endloop - endfacet - facet normal -0.806267 -0.591552 0 - outer loop - vertex 10.9846 20.5521 0 - vertex 11.3113 20.1069 -0.2 - vertex 11.3113 20.1069 0 - endloop - endfacet - facet normal -0.758443 -0.65174 0 - outer loop - vertex 11.6914 19.6646 -0.2 - vertex 11.3113 20.1069 0 - vertex 11.3113 20.1069 -0.2 - endloop - endfacet - facet normal -0.758443 -0.65174 0 - outer loop - vertex 11.3113 20.1069 0 - vertex 11.6914 19.6646 -0.2 - vertex 11.6914 19.6646 0 - endloop - endfacet - facet normal -0.720518 -0.693437 0 - outer loop - vertex 12.1494 19.1886 -0.2 - vertex 11.6914 19.6646 0 - vertex 11.6914 19.6646 -0.2 - endloop - endfacet - facet normal -0.720518 -0.693437 0 - outer loop - vertex 11.6914 19.6646 0 - vertex 12.1494 19.1886 -0.2 - vertex 12.1494 19.1886 0 - endloop - endfacet - facet normal -0.697808 -0.716285 0 - outer loop - vertex 12.1494 19.1886 -0.2 - vertex 12.71 18.6425 0 - vertex 12.1494 19.1886 0 - endloop - endfacet - facet normal -0.697808 -0.716285 -0 - outer loop - vertex 12.71 18.6425 0 - vertex 12.1494 19.1886 -0.2 - vertex 12.71 18.6425 -0.2 - endloop - endfacet - facet normal -0.680991 -0.732292 0 - outer loop - vertex 12.71 18.6425 -0.2 - vertex 13.3813 18.0182 0 - vertex 12.71 18.6425 0 - endloop - endfacet - facet normal -0.680991 -0.732292 -0 - outer loop - vertex 13.3813 18.0182 0 - vertex 12.71 18.6425 -0.2 - vertex 13.3813 18.0182 -0.2 - endloop - endfacet - facet normal -0.650845 -0.759211 0 - outer loop - vertex 13.3813 18.0182 -0.2 - vertex 14.0017 17.4864 0 - vertex 13.3813 18.0182 0 - endloop - endfacet - facet normal -0.650845 -0.759211 -0 - outer loop - vertex 14.0017 17.4864 0 - vertex 13.3813 18.0182 -0.2 - vertex 14.0017 17.4864 -0.2 - endloop - endfacet - facet normal -0.606609 -0.795001 0 - outer loop - vertex 14.0017 17.4864 -0.2 - vertex 14.6028 17.0277 0 - vertex 14.0017 17.4864 0 - endloop - endfacet - facet normal -0.606609 -0.795001 -0 - outer loop - vertex 14.6028 17.0277 0 - vertex 14.0017 17.4864 -0.2 - vertex 14.6028 17.0277 -0.2 - endloop - endfacet - facet normal -0.550734 -0.834681 0 - outer loop - vertex 14.6028 17.0277 -0.2 - vertex 15.2162 16.623 0 - vertex 14.6028 17.0277 0 - endloop - endfacet - facet normal -0.550734 -0.834681 -0 - outer loop - vertex 15.2162 16.623 0 - vertex 14.6028 17.0277 -0.2 - vertex 15.2162 16.623 -0.2 - endloop - endfacet - facet normal -0.490625 -0.871371 0 - outer loop - vertex 15.2162 16.623 -0.2 - vertex 15.8738 16.2527 0 - vertex 15.2162 16.623 0 - endloop - endfacet - facet normal -0.490625 -0.871371 -0 - outer loop - vertex 15.8738 16.2527 0 - vertex 15.2162 16.623 -0.2 - vertex 15.8738 16.2527 -0.2 - endloop - endfacet - facet normal -0.435747 -0.900069 0 - outer loop - vertex 15.8738 16.2527 -0.2 - vertex 16.6072 15.8977 0 - vertex 15.8738 16.2527 0 - endloop - endfacet - facet normal -0.435747 -0.900069 -0 - outer loop - vertex 16.6072 15.8977 0 - vertex 15.8738 16.2527 -0.2 - vertex 16.6072 15.8977 -0.2 - endloop - endfacet - facet normal -0.392812 -0.919619 0 - outer loop - vertex 16.6072 15.8977 -0.2 - vertex 17.448 15.5385 0 - vertex 16.6072 15.8977 0 - endloop - endfacet - facet normal -0.392812 -0.919619 -0 - outer loop - vertex 17.448 15.5385 0 - vertex 16.6072 15.8977 -0.2 - vertex 17.448 15.5385 -0.2 - endloop - endfacet - facet normal -0.36368 -0.931524 0 - outer loop - vertex 17.448 15.5385 -0.2 - vertex 18.4281 15.1559 0 - vertex 17.448 15.5385 0 - endloop - endfacet - facet normal -0.36368 -0.931524 -0 - outer loop - vertex 18.4281 15.1559 0 - vertex 17.448 15.5385 -0.2 - vertex 18.4281 15.1559 -0.2 - endloop - endfacet - facet normal -0.343445 -0.939173 0 - outer loop - vertex 18.4281 15.1559 -0.2 - vertex 19.4469 14.7833 0 - vertex 18.4281 15.1559 0 - endloop - endfacet - facet normal -0.343445 -0.939173 -0 - outer loop - vertex 19.4469 14.7833 0 - vertex 18.4281 15.1559 -0.2 - vertex 19.4469 14.7833 -0.2 - endloop - endfacet - facet normal -0.28492 -0.958551 0 - outer loop - vertex 19.4469 14.7833 -0.2 - vertex 19.7955 14.6797 0 - vertex 19.4469 14.7833 0 - endloop - endfacet - facet normal -0.28492 -0.958551 -0 - outer loop - vertex 19.7955 14.6797 0 - vertex 19.4469 14.7833 -0.2 - vertex 19.7955 14.6797 -0.2 - endloop - endfacet - facet normal -0.184649 -0.982804 0 - outer loop - vertex 19.7955 14.6797 -0.2 - vertex 20.0785 14.6265 0 - vertex 19.7955 14.6797 0 - endloop - endfacet - facet normal -0.184649 -0.982804 -0 - outer loop - vertex 20.0785 14.6265 0 - vertex 19.7955 14.6797 -0.2 - vertex 20.0785 14.6265 -0.2 - endloop - endfacet - facet normal -0.024894 -0.99969 0 - outer loop - vertex 20.0785 14.6265 -0.2 - vertex 20.327 14.6203 0 - vertex 20.0785 14.6265 0 - endloop - endfacet - facet normal -0.024894 -0.99969 -0 - outer loop - vertex 20.327 14.6203 0 - vertex 20.0785 14.6265 -0.2 - vertex 20.327 14.6203 -0.2 - endloop - endfacet - facet normal 0.150471 -0.988614 0 - outer loop - vertex 20.327 14.6203 -0.2 - vertex 20.5722 14.6577 0 - vertex 20.327 14.6203 0 - endloop - endfacet - facet normal 0.150471 -0.988614 0 - outer loop - vertex 20.5722 14.6577 0 - vertex 20.327 14.6203 -0.2 - vertex 20.5722 14.6577 -0.2 - endloop - endfacet - facet normal 0.272592 -0.96213 0 - outer loop - vertex 20.5722 14.6577 -0.2 - vertex 20.8452 14.735 0 - vertex 20.5722 14.6577 0 - endloop - endfacet - facet normal 0.272592 -0.96213 0 - outer loop - vertex 20.8452 14.735 0 - vertex 20.5722 14.6577 -0.2 - vertex 20.8452 14.735 -0.2 - endloop - endfacet - facet normal 0.32454 -0.945872 0 - outer loop - vertex 20.8452 14.735 -0.2 - vertex 21.1771 14.8489 0 - vertex 20.8452 14.735 0 - endloop - endfacet - facet normal 0.32454 -0.945872 0 - outer loop - vertex 21.1771 14.8489 0 - vertex 20.8452 14.735 -0.2 - vertex 21.1771 14.8489 -0.2 - endloop - endfacet - facet normal 0.357547 -0.933895 0 - outer loop - vertex 21.1771 14.8489 -0.2 - vertex 21.6737 15.039 0 - vertex 21.1771 14.8489 0 - endloop - endfacet - facet normal 0.357547 -0.933895 0 - outer loop - vertex 21.6737 15.039 0 - vertex 21.1771 14.8489 -0.2 - vertex 21.6737 15.039 -0.2 - endloop - endfacet - facet normal 0.392507 -0.919749 0 - outer loop - vertex 21.6737 15.039 -0.2 - vertex 22.2336 15.278 0 - vertex 21.6737 15.039 0 - endloop - endfacet - facet normal 0.392507 -0.919749 0 - outer loop - vertex 22.2336 15.278 0 - vertex 21.6737 15.039 -0.2 - vertex 22.2336 15.278 -0.2 - endloop - endfacet - facet normal 0.427814 -0.903867 0 - outer loop - vertex 22.2336 15.278 -0.2 - vertex 23.3919 15.8262 0 - vertex 22.2336 15.278 0 - endloop - endfacet - facet normal 0.427814 -0.903867 0 - outer loop - vertex 23.3919 15.8262 0 - vertex 22.2336 15.278 -0.2 - vertex 23.3919 15.8262 -0.2 - endloop - endfacet - facet normal 0.460603 -0.887606 0 - outer loop - vertex 23.3919 15.8262 -0.2 - vertex 23.9148 16.0975 0 - vertex 23.3919 15.8262 0 - endloop - endfacet - facet normal 0.460603 -0.887606 0 - outer loop - vertex 23.9148 16.0975 0 - vertex 23.3919 15.8262 -0.2 - vertex 23.9148 16.0975 -0.2 - endloop - endfacet - facet normal 0.489467 -0.872022 0 - outer loop - vertex 23.9148 16.0975 -0.2 - vertex 24.3498 16.3417 0 - vertex 23.9148 16.0975 0 - endloop - endfacet - facet normal 0.489467 -0.872022 0 - outer loop - vertex 24.3498 16.3417 0 - vertex 23.9148 16.0975 -0.2 - vertex 24.3498 16.3417 -0.2 - endloop - endfacet - facet normal 0.539107 -0.842237 0 - outer loop - vertex 24.3498 16.3417 -0.2 - vertex 24.659 16.5397 0 - vertex 24.3498 16.3417 0 - endloop - endfacet - facet normal 0.539107 -0.842237 0 - outer loop - vertex 24.659 16.5397 0 - vertex 24.3498 16.3417 -0.2 - vertex 24.659 16.5397 -0.2 - endloop - endfacet - facet normal 0.620549 -0.784168 0 - outer loop - vertex 24.659 16.5397 -0.2 - vertex 24.7548 16.6154 0 - vertex 24.659 16.5397 0 - endloop - endfacet - facet normal 0.620549 -0.784168 0 - outer loop - vertex 24.7548 16.6154 0 - vertex 24.659 16.5397 -0.2 - vertex 24.7548 16.6154 -0.2 - endloop - endfacet - facet normal 0.751376 -0.659874 0 - outer loop - vertex 24.7548 16.6154 0 - vertex 24.8049 16.6725 -0.2 - vertex 24.8049 16.6725 0 - endloop - endfacet - facet normal 0.751376 -0.659874 0 - outer loop - vertex 24.8049 16.6725 -0.2 - vertex 24.7548 16.6154 0 - vertex 24.7548 16.6154 -0.2 - endloop - endfacet - facet normal 0.968195 -0.250195 0 - outer loop - vertex 24.8049 16.6725 0 - vertex 24.8294 16.7672 -0.2 - vertex 24.8294 16.7672 0 - endloop - endfacet - facet normal 0.968195 -0.250195 0 - outer loop - vertex 24.8294 16.7672 -0.2 - vertex 24.8049 16.6725 0 - vertex 24.8049 16.6725 -0.2 - endloop - endfacet - facet normal 0.998807 0.0488365 0 - outer loop - vertex 24.8294 16.7672 0 - vertex 24.8232 16.8925 -0.2 - vertex 24.8232 16.8925 0 - endloop - endfacet - facet normal 0.998807 0.0488365 0 - outer loop - vertex 24.8232 16.8925 -0.2 - vertex 24.8294 16.7672 0 - vertex 24.8294 16.7672 -0.2 - endloop - endfacet - facet normal 0.971162 0.23842 0 - outer loop - vertex 24.8232 16.8925 0 - vertex 24.789 17.0321 -0.2 - vertex 24.789 17.0321 0 - endloop - endfacet - facet normal 0.971162 0.23842 0 - outer loop - vertex 24.789 17.0321 -0.2 - vertex 24.8232 16.8925 0 - vertex 24.8232 16.8925 -0.2 - endloop - endfacet - facet normal 0.916748 0.399467 0 - outer loop - vertex 24.789 17.0321 0 - vertex 24.7291 17.1695 -0.2 - vertex 24.7291 17.1695 0 - endloop - endfacet - facet normal 0.916748 0.399467 0 - outer loop - vertex 24.7291 17.1695 -0.2 - vertex 24.789 17.0321 0 - vertex 24.789 17.0321 -0.2 - endloop - endfacet - facet normal 0.771083 0.636734 0 - outer loop - vertex 24.7291 17.1695 0 - vertex 24.6602 17.253 -0.2 - vertex 24.6602 17.253 0 - endloop - endfacet - facet normal 0.771083 0.636734 0 - outer loop - vertex 24.6602 17.253 -0.2 - vertex 24.7291 17.1695 0 - vertex 24.7291 17.1695 -0.2 - endloop - endfacet - facet normal 0.526106 0.850419 -0 - outer loop - vertex 24.6602 17.253 -0.2 - vertex 24.5483 17.3222 0 - vertex 24.6602 17.253 0 - endloop - endfacet - facet normal 0.526106 0.850419 0 - outer loop - vertex 24.5483 17.3222 0 - vertex 24.6602 17.253 -0.2 - vertex 24.5483 17.3222 -0.2 - endloop - endfacet - facet normal 0.326655 0.945144 -0 - outer loop - vertex 24.5483 17.3222 -0.2 - vertex 24.386 17.3783 0 - vertex 24.5483 17.3222 0 - endloop - endfacet - facet normal 0.326655 0.945144 0 - outer loop - vertex 24.386 17.3783 0 - vertex 24.5483 17.3222 -0.2 - vertex 24.386 17.3783 -0.2 - endloop - endfacet - facet normal 0.19643 0.980518 -0 - outer loop - vertex 24.386 17.3783 -0.2 - vertex 24.166 17.4223 0 - vertex 24.386 17.3783 0 - endloop - endfacet - facet normal 0.19643 0.980518 0 - outer loop - vertex 24.166 17.4223 0 - vertex 24.386 17.3783 -0.2 - vertex 24.166 17.4223 -0.2 - endloop - endfacet - facet normal 0.0878721 0.996132 -0 - outer loop - vertex 24.166 17.4223 -0.2 - vertex 23.5226 17.4791 0 - vertex 24.166 17.4223 0 - endloop - endfacet - facet normal 0.0878721 0.996132 0 - outer loop - vertex 23.5226 17.4791 0 - vertex 24.166 17.4223 -0.2 - vertex 23.5226 17.4791 -0.2 - endloop - endfacet - facet normal 0.0232768 0.999729 -0 - outer loop - vertex 23.5226 17.4791 -0.2 - vertex 22.5588 17.5015 0 - vertex 23.5226 17.4791 0 - endloop - endfacet - facet normal 0.0232768 0.999729 0 - outer loop - vertex 22.5588 17.5015 0 - vertex 23.5226 17.4791 -0.2 - vertex 22.5588 17.5015 -0.2 - endloop - endfacet - facet normal 0.0146144 0.999893 -0 - outer loop - vertex 22.5588 17.5015 -0.2 - vertex 21.0506 17.5236 0 - vertex 22.5588 17.5015 0 - endloop - endfacet - facet normal 0.0146144 0.999893 0 - outer loop - vertex 21.0506 17.5236 0 - vertex 22.5588 17.5015 -0.2 - vertex 21.0506 17.5236 -0.2 - endloop - endfacet - facet normal 0.0395978 0.999216 -0 - outer loop - vertex 21.0506 17.5236 -0.2 - vertex 20.2276 17.5562 0 - vertex 21.0506 17.5236 0 - endloop - endfacet - facet normal 0.0395978 0.999216 0 - outer loop - vertex 20.2276 17.5562 0 - vertex 21.0506 17.5236 -0.2 - vertex 20.2276 17.5562 -0.2 - endloop - endfacet - facet normal 0.211618 0.977352 -0 - outer loop - vertex 20.2276 17.5562 -0.2 - vertex 20.1284 17.5777 0 - vertex 20.2276 17.5562 0 - endloop - endfacet - facet normal 0.211618 0.977352 0 - outer loop - vertex 20.1284 17.5777 0 - vertex 20.2276 17.5562 -0.2 - vertex 20.1284 17.5777 -0.2 - endloop - endfacet - facet normal 0.390006 0.920812 -0 - outer loop - vertex 20.1284 17.5777 -0.2 - vertex 20.0333 17.6179 0 - vertex 20.1284 17.5777 0 - endloop - endfacet - facet normal 0.390006 0.920812 0 - outer loop - vertex 20.0333 17.6179 0 - vertex 20.1284 17.5777 -0.2 - vertex 20.0333 17.6179 -0.2 - endloop - endfacet - facet normal 0.545234 0.838284 -0 - outer loop - vertex 20.0333 17.6179 -0.2 - vertex 19.9424 17.6771 0 - vertex 20.0333 17.6179 0 - endloop - endfacet - facet normal 0.545234 0.838284 0 - outer loop - vertex 19.9424 17.6771 0 - vertex 20.0333 17.6179 -0.2 - vertex 19.9424 17.6771 -0.2 - endloop - endfacet - facet normal 0.668778 0.743462 -0 - outer loop - vertex 19.9424 17.6771 -0.2 - vertex 19.8554 17.7553 0 - vertex 19.9424 17.6771 0 - endloop - endfacet - facet normal 0.668778 0.743462 0 - outer loop - vertex 19.8554 17.7553 0 - vertex 19.9424 17.6771 -0.2 - vertex 19.8554 17.7553 -0.2 - endloop - endfacet - facet normal 0.797362 0.603501 0 - outer loop - vertex 19.8554 17.7553 0 - vertex 19.6934 17.9694 -0.2 - vertex 19.6934 17.9694 0 - endloop - endfacet - facet normal 0.797362 0.603501 0 - outer loop - vertex 19.6934 17.9694 -0.2 - vertex 19.8554 17.7553 0 - vertex 19.8554 17.7553 -0.2 - endloop - endfacet - facet normal 0.893603 0.448858 0 - outer loop - vertex 19.6934 17.9694 0 - vertex 19.5469 18.2611 -0.2 - vertex 19.5469 18.2611 0 - endloop - endfacet - facet normal 0.893603 0.448858 0 - outer loop - vertex 19.5469 18.2611 -0.2 - vertex 19.6934 17.9694 0 - vertex 19.6934 17.9694 -0.2 - endloop - endfacet - facet normal 0.942385 0.33453 0 - outer loop - vertex 19.5469 18.2611 0 - vertex 19.4153 18.6317 -0.2 - vertex 19.4153 18.6317 0 - endloop - endfacet - facet normal 0.942385 0.33453 0 - outer loop - vertex 19.4153 18.6317 -0.2 - vertex 19.5469 18.2611 0 - vertex 19.5469 18.2611 -0.2 - endloop - endfacet - facet normal 0.967894 0.251357 0 - outer loop - vertex 19.4153 18.6317 0 - vertex 19.2984 19.082 -0.2 - vertex 19.2984 19.082 0 - endloop - endfacet - facet normal 0.967894 0.251357 0 - outer loop - vertex 19.2984 19.082 -0.2 - vertex 19.4153 18.6317 0 - vertex 19.4153 18.6317 -0.2 - endloop - endfacet - facet normal 0.981784 0.190002 0 - outer loop - vertex 19.2984 19.082 0 - vertex 19.1956 19.6132 -0.2 - vertex 19.1956 19.6132 0 - endloop - endfacet - facet normal 0.981784 0.190002 0 - outer loop - vertex 19.1956 19.6132 -0.2 - vertex 19.2984 19.082 0 - vertex 19.2984 19.082 -0.2 - endloop - endfacet - facet normal 0.989607 0.143797 0 - outer loop - vertex 19.1956 19.6132 0 - vertex 19.1065 20.2262 -0.2 - vertex 19.1065 20.2262 0 - endloop - endfacet - facet normal 0.989607 0.143797 0 - outer loop - vertex 19.1065 20.2262 -0.2 - vertex 19.1956 19.6132 0 - vertex 19.1956 19.6132 -0.2 - endloop - endfacet - facet normal 0.988819 0.149121 0 - outer loop - vertex 19.1065 20.2262 0 - vertex 19.0081 20.8787 -0.2 - vertex 19.0081 20.8787 0 - endloop - endfacet - facet normal 0.988819 0.149121 0 - outer loop - vertex 19.0081 20.8787 -0.2 - vertex 19.1065 20.2262 0 - vertex 19.1065 20.2262 -0.2 - endloop - endfacet - facet normal 0.979919 0.199398 0 - outer loop - vertex 19.0081 20.8787 0 - vertex 18.892 21.4494 -0.2 - vertex 18.892 21.4494 0 - endloop - endfacet - facet normal 0.979919 0.199398 0 - outer loop - vertex 18.892 21.4494 -0.2 - vertex 19.0081 20.8787 0 - vertex 19.0081 20.8787 -0.2 - endloop - endfacet - facet normal 0.963148 0.268972 0 - outer loop - vertex 18.892 21.4494 0 - vertex 18.7726 21.8767 -0.2 - vertex 18.7726 21.8767 0 - endloop - endfacet - facet normal 0.963148 0.268972 0 - outer loop - vertex 18.7726 21.8767 -0.2 - vertex 18.892 21.4494 0 - vertex 18.892 21.4494 -0.2 - endloop - endfacet - facet normal 0.928333 0.371749 0 - outer loop - vertex 18.7726 21.8767 0 - vertex 18.7163 22.0174 -0.2 - vertex 18.7163 22.0174 0 - endloop - endfacet - facet normal 0.928333 0.371749 0 - outer loop - vertex 18.7163 22.0174 -0.2 - vertex 18.7726 21.8767 0 - vertex 18.7726 21.8767 -0.2 - endloop - endfacet - facet normal 0.845312 0.534273 0 - outer loop - vertex 18.7163 22.0174 0 - vertex 18.6646 22.0992 -0.2 - vertex 18.6646 22.0992 0 - endloop - endfacet - facet normal 0.845312 0.534273 0 - outer loop - vertex 18.6646 22.0992 -0.2 - vertex 18.7163 22.0174 0 - vertex 18.7163 22.0174 -0.2 - endloop - endfacet - facet normal 0.569342 0.822101 -0 - outer loop - vertex 18.6646 22.0992 -0.2 - vertex 18.4732 22.2317 0 - vertex 18.6646 22.0992 0 - endloop - endfacet - facet normal 0.569342 0.822101 0 - outer loop - vertex 18.4732 22.2317 0 - vertex 18.6646 22.0992 -0.2 - vertex 18.4732 22.2317 -0.2 - endloop - endfacet - facet normal 0.466042 0.884763 -0 - outer loop - vertex 18.4732 22.2317 -0.2 - vertex 18.127 22.4141 0 - vertex 18.4732 22.2317 0 - endloop - endfacet - facet normal 0.466042 0.884763 0 - outer loop - vertex 18.127 22.4141 0 - vertex 18.4732 22.2317 -0.2 - vertex 18.127 22.4141 -0.2 - endloop - endfacet - facet normal 0.418359 0.908282 -0 - outer loop - vertex 18.127 22.4141 -0.2 - vertex 17.6752 22.6222 0 - vertex 18.127 22.4141 0 - endloop - endfacet - facet normal 0.418359 0.908282 0 - outer loop - vertex 17.6752 22.6222 0 - vertex 18.127 22.4141 -0.2 - vertex 17.6752 22.6222 -0.2 - endloop - endfacet - facet normal 0.381566 0.924342 -0 - outer loop - vertex 17.6752 22.6222 -0.2 - vertex 17.1667 22.8321 0 - vertex 17.6752 22.6222 0 - endloop - endfacet - facet normal 0.381566 0.924342 0 - outer loop - vertex 17.1667 22.8321 0 - vertex 17.6752 22.6222 -0.2 - vertex 17.1667 22.8321 -0.2 + vertex 17.155 22.8321 0 + vertex 18.6529 22.0992 -3 + vertex 17.155 22.8321 -3 endloop endfacet facet normal 0.375086 0.92699 -0 outer loop - vertex 17.1667 22.8321 -0.2 - vertex 15.5173 23.4995 0 - vertex 17.1667 22.8321 0 + vertex 17.155 22.8321 -3 + vertex 15.5055 23.4995 0 + vertex 17.155 22.8321 0 endloop endfacet facet normal 0.375086 0.92699 0 outer loop - vertex 15.5173 23.4995 0 - vertex 17.1667 22.8321 -0.2 - vertex 15.5173 23.4995 -0.2 + vertex 15.5055 23.4995 0 + vertex 17.155 22.8321 -3 + vertex 15.5055 23.4995 -3 endloop endfacet facet normal 0.401684 0.915778 -0 outer loop - vertex 15.5173 23.4995 -0.2 - vertex 14.0281 24.1527 0 - vertex 15.5173 23.4995 0 + vertex 15.5055 23.4995 -3 + vertex 14.0164 24.1527 0 + vertex 15.5055 23.4995 0 endloop endfacet facet normal 0.401684 0.915778 0 outer loop - vertex 14.0281 24.1527 0 - vertex 15.5173 23.4995 -0.2 - vertex 14.0281 24.1527 -0.2 + vertex 14.0164 24.1527 0 + vertex 15.5055 23.4995 -3 + vertex 14.0164 24.1527 -3 endloop endfacet - facet normal 0.431504 0.902111 -0 + facet normal 0.516309 0.856402 -0 outer loop - vertex 14.0281 24.1527 -0.2 - vertex 13.7923 24.2655 0 - vertex 14.0281 24.1527 0 + vertex 14.0164 24.1527 -3 + vertex 13.0733 24.7212 0 + vertex 14.0164 24.1527 0 endloop endfacet - facet normal 0.431504 0.902111 0 + facet normal 0.516309 0.856402 0 outer loop - vertex 13.7923 24.2655 0 - vertex 14.0281 24.1527 -0.2 - vertex 13.7923 24.2655 -0.2 + vertex 13.0733 24.7212 0 + vertex 14.0164 24.1527 -3 + vertex 13.0733 24.7212 -3 endloop endfacet - facet normal 0.491302 0.870989 -0 + facet normal 0.678054 0.735012 -0 outer loop - vertex 13.7923 24.2655 -0.2 - vertex 13.5553 24.3991 0 - vertex 13.7923 24.2655 0 + vertex 13.0733 24.7212 -3 + vertex 12.1975 25.5292 0 + vertex 13.0733 24.7212 0 endloop endfacet - facet normal 0.491302 0.870989 0 + facet normal 0.678054 0.735012 0 outer loop - vertex 13.5553 24.3991 0 - vertex 13.7923 24.2655 -0.2 - vertex 13.5553 24.3991 -0.2 + vertex 12.1975 25.5292 0 + vertex 13.0733 24.7212 -3 + vertex 12.1975 25.5292 -3 endloop endfacet - facet normal 0.565064 0.825047 -0 + facet normal 0.798708 0.601719 0 outer loop - vertex 13.5553 24.3991 -0.2 - vertex 13.085 24.7212 0 - vertex 13.5553 24.3991 0 + vertex 12.1975 25.5292 0 + vertex 11.5037 26.4501 -3 + vertex 11.5037 26.4501 0 endloop endfacet - facet normal 0.565064 0.825047 0 + facet normal 0.798708 0.601719 0 outer loop - vertex 13.085 24.7212 0 - vertex 13.5553 24.3991 -0.2 - vertex 13.085 24.7212 -0.2 + vertex 11.5037 26.4501 -3 + vertex 12.1975 25.5292 0 + vertex 12.1975 25.5292 -3 endloop endfacet - facet normal 0.644201 0.764857 -0 + facet normal 0.916155 0.400824 0 outer loop - vertex 13.085 24.7212 -0.2 - vertex 12.6316 25.1032 0 - vertex 13.085 24.7212 0 + vertex 11.5037 26.4501 0 + vertex 11.1066 27.3577 -3 + vertex 11.1066 27.3577 0 endloop endfacet - facet normal 0.644201 0.764857 0 + facet normal 0.916155 0.400824 0 outer loop - vertex 12.6316 25.1032 0 - vertex 13.085 24.7212 -0.2 - vertex 12.6316 25.1032 -0.2 + vertex 11.1066 27.3577 -3 + vertex 11.5037 26.4501 0 + vertex 11.5037 26.4501 -3 endloop endfacet - facet normal 0.710157 0.704043 0 + facet normal 0.997988 0.0634007 0 outer loop - vertex 12.6316 25.1032 0 - vertex 12.2092 25.5292 -0.2 - vertex 12.2092 25.5292 0 + vertex 11.1066 27.3577 0 + vertex 11.0411 28.3898 -3 + vertex 11.0411 28.3898 0 endloop endfacet - facet normal 0.710157 0.704043 0 + facet normal 0.997988 0.0634007 0 outer loop - vertex 12.2092 25.5292 -0.2 - vertex 12.6316 25.1032 0 - vertex 12.6316 25.1032 -0.2 + vertex 11.0411 28.3898 -3 + vertex 11.1066 27.3577 0 + vertex 11.1066 27.3577 -3 endloop endfacet - facet normal 0.769647 0.63847 0 + facet normal 0.985212 -0.171342 0 outer loop - vertex 12.2092 25.5292 0 - vertex 11.8324 25.9834 -0.2 - vertex 11.8324 25.9834 0 + vertex 11.0411 28.3898 0 + vertex 11.2319 29.4873 -3 + vertex 11.2319 29.4873 0 endloop endfacet - facet normal 0.769647 0.63847 0 + facet normal 0.985212 -0.171342 0 outer loop - vertex 11.8324 25.9834 -0.2 - vertex 12.2092 25.5292 0 - vertex 12.2092 25.5292 -0.2 + vertex 11.2319 29.4873 -3 + vertex 11.0411 28.3898 0 + vertex 11.0411 28.3898 -3 endloop endfacet - facet normal 0.827234 0.561857 0 + facet normal 0.92237 -0.386308 0 outer loop - vertex 11.8324 25.9834 0 - vertex 11.5154 26.4501 -0.2 - vertex 11.5154 26.4501 0 + vertex 11.2319 29.4873 0 + vertex 11.5971 30.3591 -3 + vertex 11.5971 30.3591 0 endloop endfacet - facet normal 0.827234 0.561857 0 + facet normal 0.92237 -0.386308 0 outer loop - vertex 11.5154 26.4501 -0.2 - vertex 11.8324 25.9834 0 - vertex 11.8324 25.9834 -0.2 + vertex 11.5971 30.3591 -3 + vertex 11.2319 29.4873 0 + vertex 11.2319 29.4873 -3 endloop endfacet - facet normal 0.870844 0.491559 0 + facet normal 0.613523 -0.789677 0 outer loop - vertex 11.5154 26.4501 0 - vertex 11.3839 26.6832 -0.2 - vertex 11.3839 26.6832 0 + vertex 11.5971 30.3591 -3 + vertex 12.0544 30.7144 0 + vertex 11.5971 30.3591 0 endloop endfacet - facet normal 0.870844 0.491559 0 + facet normal 0.613523 -0.789677 0 outer loop - vertex 11.3839 26.6832 -0.2 - vertex 11.5154 26.4501 0 - vertex 11.5154 26.4501 -0.2 + vertex 12.0544 30.7144 0 + vertex 11.5971 30.3591 -3 + vertex 12.0544 30.7144 -3 endloop endfacet - facet normal 0.900452 0.434955 0 + facet normal -0.632498 -0.774562 0 outer loop - vertex 11.3839 26.6832 0 - vertex 11.2726 26.9135 -0.2 - vertex 11.2726 26.9135 0 + vertex 12.0544 30.7144 -3 + vertex 12.2907 30.5214 0 + vertex 12.0544 30.7144 0 endloop endfacet - facet normal 0.900452 0.434955 0 + facet normal -0.632498 -0.774562 -0 outer loop - vertex 11.2726 26.9135 -0.2 - vertex 11.3839 26.6832 0 - vertex 11.3839 26.6832 -0.2 + vertex 12.2907 30.5214 0 + vertex 12.0544 30.7144 -3 + vertex 12.2907 30.5214 -3 endloop endfacet - facet normal 0.930028 0.367488 0 + facet normal -0.906769 0.421628 0 outer loop - vertex 11.2726 26.9135 0 - vertex 11.1835 27.139 -0.2 - vertex 11.1835 27.139 0 + vertex 12.0187 29.9363 -3 + vertex 12.2907 30.5214 0 + vertex 12.2907 30.5214 -3 endloop endfacet - facet normal 0.930028 0.367488 0 + facet normal -0.906769 0.421628 0 outer loop - vertex 11.1835 27.139 -0.2 - vertex 11.2726 26.9135 0 - vertex 11.2726 26.9135 -0.2 + vertex 12.2907 30.5214 0 + vertex 12.0187 29.9363 -3 + vertex 12.0187 29.9363 0 endloop endfacet - facet normal 0.958361 0.28556 0 + facet normal -0.946212 0.323547 0 outer loop - vertex 11.1835 27.139 0 - vertex 11.1184 27.3577 -0.2 - vertex 11.1184 27.3577 0 + vertex 11.8088 29.3224 -3 + vertex 12.0187 29.9363 0 + vertex 12.0187 29.9363 -3 endloop endfacet - facet normal 0.958361 0.28556 0 + facet normal -0.946212 0.323547 0 outer loop - vertex 11.1184 27.3577 -0.2 - vertex 11.1835 27.139 0 - vertex 11.1835 27.139 -0.2 + vertex 12.0187 29.9363 0 + vertex 11.8088 29.3224 -3 + vertex 11.8088 29.3224 0 endloop endfacet - facet normal 0.982358 0.187011 0 + facet normal -0.996661 0.0816499 0 outer loop - vertex 11.1184 27.3577 0 - vertex 11.0734 27.5937 -0.2 - vertex 11.0734 27.5937 0 + vertex 11.7374 28.4518 -3 + vertex 11.8088 29.3224 0 + vertex 11.8088 29.3224 -3 endloop endfacet - facet normal 0.982358 0.187011 0 + facet normal -0.996661 0.0816499 0 outer loop - vertex 11.0734 27.5937 -0.2 - vertex 11.1184 27.3577 0 - vertex 11.1184 27.3577 -0.2 + vertex 11.8088 29.3224 0 + vertex 11.7374 28.4518 -3 + vertex 11.7374 28.4518 0 endloop endfacet - facet normal 0.995162 0.0982451 0 + facet normal -0.997288 -0.0735994 0 outer loop - vertex 11.0734 27.5937 0 - vertex 11.0484 27.8474 -0.2 - vertex 11.0484 27.8474 0 + vertex 11.8052 27.5343 -3 + vertex 11.7374 28.4518 0 + vertex 11.7374 28.4518 -3 endloop endfacet - facet normal 0.995162 0.0982451 0 + facet normal -0.997288 -0.0735994 0 outer loop - vertex 11.0484 27.8474 -0.2 - vertex 11.0734 27.5937 0 - vertex 11.0734 27.5937 -0.2 + vertex 11.7374 28.4518 0 + vertex 11.8052 27.5343 -3 + vertex 11.8052 27.5343 0 endloop endfacet - facet normal 0.999708 0.0241697 0 + facet normal -0.964338 -0.264675 0 outer loop - vertex 11.0484 27.8474 0 - vertex 11.0419 28.1143 -0.2 - vertex 11.0419 28.1143 0 + vertex 12.0123 26.7794 -3 + vertex 11.8052 27.5343 0 + vertex 11.8052 27.5343 -3 endloop endfacet - facet normal 0.999708 0.0241697 0 + facet normal -0.964338 -0.264675 0 outer loop - vertex 11.0419 28.1143 -0.2 - vertex 11.0484 27.8474 0 - vertex 11.0484 27.8474 -0.2 + vertex 11.8052 27.5343 0 + vertex 12.0123 26.7794 -3 + vertex 12.0123 26.7794 0 endloop endfacet - facet normal 0.999225 -0.0393733 0 + facet normal -0.835126 -0.550059 0 outer loop - vertex 11.0419 28.1143 0 - vertex 11.0528 28.3898 -0.2 - vertex 11.0528 28.3898 0 + vertex 12.5486 25.9653 -3 + vertex 12.0123 26.7794 0 + vertex 12.0123 26.7794 -3 endloop endfacet - facet normal 0.999225 -0.0393733 0 + facet normal -0.835126 -0.550059 0 outer loop - vertex 11.0528 28.3898 -0.2 - vertex 11.0419 28.1143 0 - vertex 11.0419 28.1143 -0.2 + vertex 12.0123 26.7794 0 + vertex 12.5486 25.9653 -3 + vertex 12.5486 25.9653 0 endloop endfacet - facet normal 0.992566 -0.121707 0 + facet normal -0.606684 -0.794943 0 outer loop - vertex 11.0528 28.3898 0 - vertex 11.1213 28.9486 -0.2 - vertex 11.1213 28.9486 0 + vertex 12.5486 25.9653 -3 + vertex 13.4969 25.2416 0 + vertex 12.5486 25.9653 0 endloop endfacet - facet normal 0.992566 -0.121707 0 + facet normal -0.606684 -0.794943 -0 outer loop - vertex 11.1213 28.9486 -0.2 - vertex 11.0528 28.3898 0 - vertex 11.0528 28.3898 -0.2 + vertex 13.4969 25.2416 0 + vertex 12.5486 25.9653 -3 + vertex 13.4969 25.2416 -3 endloop endfacet - facet normal 0.975165 -0.221479 0 + facet normal -0.436683 -0.899615 0 outer loop - vertex 11.1213 28.9486 0 - vertex 11.2437 29.4873 -0.2 - vertex 11.2437 29.4873 0 + vertex 13.4969 25.2416 -3 + vertex 15.1211 24.4531 0 + vertex 13.4969 25.2416 0 endloop endfacet - facet normal 0.975165 -0.221479 0 + facet normal -0.436683 -0.899615 -0 outer loop - vertex 11.2437 29.4873 -0.2 - vertex 11.1213 28.9486 0 - vertex 11.1213 28.9486 -0.2 + vertex 15.1211 24.4531 0 + vertex 13.4969 25.2416 -3 + vertex 15.1211 24.4531 -3 endloop endfacet - facet normal 0.94561 -0.325304 0 + facet normal -0.365946 -0.930636 0 outer loop - vertex 11.2437 29.4873 0 - vertex 11.4096 29.9696 -0.2 - vertex 11.4096 29.9696 0 + vertex 15.1211 24.4531 -3 + vertex 17.6852 23.4449 0 + vertex 15.1211 24.4531 0 endloop endfacet - facet normal 0.94561 -0.325304 0 + facet normal -0.365946 -0.930636 -0 outer loop - vertex 11.4096 29.9696 -0.2 - vertex 11.2437 29.4873 0 - vertex 11.2437 29.4873 -0.2 + vertex 17.6852 23.4449 0 + vertex 15.1211 24.4531 -3 + vertex 17.6852 23.4449 -3 endloop endfacet - facet normal 0.908293 -0.418334 0 + facet normal -0.54663 -0.837374 0 outer loop - vertex 11.4096 29.9696 0 - vertex 11.5057 30.1782 -0.2 - vertex 11.5057 30.1782 0 + vertex 17.6852 23.4449 -3 + vertex 18.9185 22.6398 0 + vertex 17.6852 23.4449 0 endloop endfacet - facet normal 0.908293 -0.418334 0 + facet normal -0.54663 -0.837374 -0 outer loop - vertex 11.5057 30.1782 -0.2 - vertex 11.4096 29.9696 0 - vertex 11.4096 29.9696 -0.2 + vertex 18.9185 22.6398 0 + vertex 17.6852 23.4449 -3 + vertex 18.9185 22.6398 -3 endloop endfacet - facet normal 0.868734 -0.495279 0 + facet normal -0.808126 -0.58901 0 outer loop - vertex 11.5057 30.1782 0 - vertex 11.6088 30.3591 -0.2 - vertex 11.6088 30.3591 0 + vertex 19.4421 21.9215 -3 + vertex 18.9185 22.6398 0 + vertex 18.9185 22.6398 -3 endloop endfacet - facet normal 0.868734 -0.495279 0 + facet normal -0.808126 -0.58901 0 outer loop - vertex 11.6088 30.3591 -0.2 - vertex 11.5057 30.1782 0 - vertex 11.5057 30.1782 -0.2 + vertex 18.9185 22.6398 0 + vertex 19.4421 21.9215 -3 + vertex 19.4421 21.9215 0 endloop endfacet - facet normal 0.806643 -0.59104 0 + facet normal -0.985617 -0.168992 0 outer loop - vertex 11.6088 30.3591 0 - vertex 11.7177 30.5077 -0.2 - vertex 11.7177 30.5077 0 + vertex 19.6596 20.6529 -3 + vertex 19.4421 21.9215 0 + vertex 19.4421 21.9215 -3 endloop endfacet - facet normal 0.806643 -0.59104 0 + facet normal -0.985617 -0.168992 0 outer loop - vertex 11.7177 30.5077 -0.2 - vertex 11.6088 30.3591 0 - vertex 11.6088 30.3591 -0.2 + vertex 19.4421 21.9215 0 + vertex 19.6596 20.6529 -3 + vertex 19.6596 20.6529 0 endloop endfacet - facet normal 0.702105 -0.712073 0 + facet normal -0.991076 -0.133297 0 outer loop - vertex 11.7177 30.5077 -0.2 - vertex 11.8311 30.6195 0 - vertex 11.7177 30.5077 0 + vertex 19.8405 19.3078 -3 + vertex 19.6596 20.6529 0 + vertex 19.6596 20.6529 -3 endloop endfacet - facet normal 0.702105 -0.712073 0 + facet normal -0.991076 -0.133297 0 outer loop - vertex 11.8311 30.6195 0 - vertex 11.7177 30.5077 -0.2 - vertex 11.8311 30.6195 -0.2 + vertex 19.6596 20.6529 0 + vertex 19.8405 19.3078 -3 + vertex 19.8405 19.3078 0 endloop endfacet - facet normal 0.51702 -0.855973 0 + facet normal -0.89371 -0.448645 0 outer loop - vertex 11.8311 30.6195 -0.2 - vertex 11.9476 30.6899 0 - vertex 11.8311 30.6195 0 + vertex 20.2006 18.5903 -3 + vertex 19.8405 19.3078 0 + vertex 19.8405 19.3078 -3 endloop endfacet - facet normal 0.51702 -0.855973 0 + facet normal -0.89371 -0.448645 0 outer loop - vertex 11.9476 30.6899 0 - vertex 11.8311 30.6195 -0.2 - vertex 11.9476 30.6899 -0.2 + vertex 19.8405 19.3078 0 + vertex 20.2006 18.5903 -3 + vertex 20.2006 18.5903 0 endloop endfacet - facet normal 0.202357 -0.979312 0 + facet normal -0.353154 -0.935565 0 outer loop - vertex 11.9476 30.6899 -0.2 - vertex 12.0661 30.7144 0 - vertex 11.9476 30.6899 0 + vertex 20.2006 18.5903 -3 + vertex 20.9591 18.304 0 + vertex 20.2006 18.5903 0 endloop endfacet - facet normal 0.202357 -0.979312 0 + facet normal -0.353154 -0.935565 -0 outer loop - vertex 12.0661 30.7144 0 - vertex 11.9476 30.6899 -0.2 - vertex 12.0661 30.7144 -0.2 + vertex 20.9591 18.304 0 + vertex 20.2006 18.5903 -3 + vertex 20.9591 18.304 -3 endloop endfacet - facet normal -0.111663 -0.993746 0 + facet normal -0.0375868 -0.999293 0 outer loop - vertex 12.0661 30.7144 -0.2 - vertex 12.1728 30.7024 0 - vertex 12.0661 30.7144 0 + vertex 20.9591 18.304 -3 + vertex 22.335 18.2522 0 + vertex 20.9591 18.304 0 endloop endfacet - facet normal -0.111663 -0.993746 -0 + facet normal -0.0375868 -0.999293 -0 outer loop - vertex 12.1728 30.7024 0 - vertex 12.0661 30.7144 -0.2 - vertex 12.1728 30.7024 -0.2 + vertex 22.335 18.2522 0 + vertex 20.9591 18.304 -3 + vertex 22.335 18.2522 -3 endloop endfacet - facet normal -0.43355 -0.90113 0 + facet normal -0.0902677 -0.995918 0 outer loop - vertex 12.1728 30.7024 -0.2 - vertex 12.2478 30.6663 0 - vertex 12.1728 30.7024 0 + vertex 22.335 18.2522 -3 + vertex 24.5942 18.0475 0 + vertex 22.335 18.2522 0 endloop endfacet - facet normal -0.43355 -0.90113 -0 + facet normal -0.0902677 -0.995918 -0 outer loop - vertex 12.2478 30.6663 0 - vertex 12.1728 30.7024 -0.2 - vertex 12.2478 30.6663 -0.2 + vertex 24.5942 18.0475 0 + vertex 22.335 18.2522 -3 + vertex 24.5942 18.0475 -3 endloop endfacet - facet normal -0.812799 -0.582545 0 + facet normal -0.485131 -0.874442 0 outer loop - vertex 12.291 30.606 -0.2 - vertex 12.2478 30.6663 0 - vertex 12.2478 30.6663 -0.2 + vertex 24.5942 18.0475 -3 + vertex 25.1513 17.7384 0 + vertex 24.5942 18.0475 0 endloop endfacet - facet normal -0.812799 -0.582545 0 + facet normal -0.485131 -0.874442 -0 outer loop - vertex 12.2478 30.6663 0 - vertex 12.291 30.606 -0.2 - vertex 12.291 30.606 0 + vertex 25.1513 17.7384 0 + vertex 24.5942 18.0475 -3 + vertex 25.1513 17.7384 -3 endloop endfacet - facet normal -0.990983 -0.133984 0 + facet normal -0.837387 -0.54661 0 outer loop - vertex 12.3025 30.5214 -0.2 - vertex 12.291 30.606 0 - vertex 12.291 30.606 -0.2 + vertex 25.4738 17.2443 -3 + vertex 25.1513 17.7384 0 + vertex 25.1513 17.7384 -3 endloop endfacet - facet normal -0.990983 -0.133984 0 + facet normal -0.837387 -0.54661 0 outer loop - vertex 12.291 30.606 0 - vertex 12.3025 30.5214 -0.2 - vertex 12.3025 30.5214 0 + vertex 25.1513 17.7384 0 + vertex 25.4738 17.2443 -3 + vertex 25.4738 17.2443 0 endloop endfacet - facet normal -0.983093 0.183105 0 + facet normal -0.875441 -0.483325 0 outer loop - vertex 12.2821 30.4122 -0.2 - vertex 12.3025 30.5214 0 - vertex 12.3025 30.5214 -0.2 + vertex 25.704 16.8274 -3 + vertex 25.4738 17.2443 0 + vertex 25.4738 17.2443 -3 endloop endfacet - facet normal -0.983093 0.183105 0 + facet normal -0.875441 -0.483325 0 outer loop - vertex 12.3025 30.5214 0 - vertex 12.2821 30.4122 -0.2 - vertex 12.2821 30.4122 0 + vertex 25.4738 17.2443 0 + vertex 25.704 16.8274 -3 + vertex 25.704 16.8274 0 endloop endfacet - facet normal -0.931822 0.362917 0 + facet normal -0.34429 -0.938863 0 outer loop - vertex 12.23 30.2784 -0.2 - vertex 12.2821 30.4122 0 - vertex 12.2821 30.4122 -0.2 + vertex 25.704 16.8274 -3 + vertex 25.8979 16.7563 0 + vertex 25.704 16.8274 0 endloop endfacet - facet normal -0.931822 0.362917 0 + facet normal -0.34429 -0.938863 -0 outer loop - vertex 12.2821 30.4122 0 - vertex 12.23 30.2784 -0.2 - vertex 12.23 30.2784 0 + vertex 25.8979 16.7563 0 + vertex 25.704 16.8274 -3 + vertex 25.8979 16.7563 -3 endloop endfacet - facet normal -0.863735 0.503946 0 + facet normal 0.976922 -0.213594 0 outer loop - vertex 12.0304 29.9363 -0.2 - vertex 12.23 30.2784 0 - vertex 12.23 30.2784 -0.2 + vertex 25.8979 16.7563 0 + vertex 26.0816 17.5963 -3 + vertex 26.0816 17.5963 0 endloop endfacet - facet normal -0.863735 0.503946 0 + facet normal 0.976922 -0.213594 0 outer loop - vertex 12.23 30.2784 0 - vertex 12.0304 29.9363 -0.2 - vertex 12.0304 29.9363 0 + vertex 26.0816 17.5963 -3 + vertex 25.8979 16.7563 0 + vertex 25.8979 16.7563 -3 endloop endfacet - facet normal -0.874405 0.485196 0 + facet normal 0.991357 0.131195 0 outer loop - vertex 11.965 29.8184 -0.2 - vertex 12.0304 29.9363 0 - vertex 12.0304 29.9363 -0.2 + vertex 26.0816 17.5963 0 + vertex 25.9892 18.2943 -3 + vertex 25.9892 18.2943 0 endloop endfacet - facet normal -0.874405 0.485196 0 + facet normal 0.991357 0.131195 0 outer loop - vertex 12.0304 29.9363 0 - vertex 11.965 29.8184 -0.2 - vertex 11.965 29.8184 0 + vertex 25.9892 18.2943 -3 + vertex 26.0816 17.5963 0 + vertex 26.0816 17.5963 -3 endloop endfacet - facet normal -0.930071 0.367381 0 + facet normal 0.907716 0.419585 0 outer loop - vertex 11.9082 29.6745 -0.2 - vertex 11.965 29.8184 0 - vertex 11.965 29.8184 -0.2 + vertex 25.9892 18.2943 0 + vertex 25.7331 18.8483 -3 + vertex 25.7331 18.8483 0 endloop endfacet - facet normal -0.930071 0.367381 0 + facet normal 0.907716 0.419585 0 outer loop - vertex 11.965 29.8184 0 - vertex 11.9082 29.6745 -0.2 - vertex 11.9082 29.6745 0 + vertex 25.7331 18.8483 -3 + vertex 25.9892 18.2943 0 + vertex 25.9892 18.2943 -3 endloop endfacet - facet normal -0.970384 0.241567 0 + facet normal 0.685144 0.728407 -0 outer loop - vertex 11.8205 29.3224 -0.2 - vertex 11.9082 29.6745 0 - vertex 11.9082 29.6745 -0.2 + vertex 25.7331 18.8483 -3 + vertex 25.3447 19.2137 0 + vertex 25.7331 18.8483 0 endloop endfacet - facet normal -0.970384 0.241567 0 + facet normal 0.685144 0.728407 0 outer loop - vertex 11.9082 29.6745 0 - vertex 11.8205 29.3224 -0.2 - vertex 11.8205 29.3224 0 + vertex 25.3447 19.2137 0 + vertex 25.7331 18.8483 -3 + vertex 25.3447 19.2137 -3 endloop endfacet - facet normal -0.99199 0.126319 0 + facet normal 0.260028 0.965601 -0 outer loop - vertex 11.7675 28.9061 -0.2 - vertex 11.8205 29.3224 0 - vertex 11.8205 29.3224 -0.2 + vertex 25.3447 19.2137 -3 + vertex 24.8554 19.3454 0 + vertex 25.3447 19.2137 0 endloop endfacet - facet normal -0.99199 0.126319 0 + facet normal 0.260028 0.965601 0 outer loop - vertex 11.8205 29.3224 0 - vertex 11.7675 28.9061 -0.2 - vertex 11.7675 28.9061 0 + vertex 24.8554 19.3454 0 + vertex 25.3447 19.2137 -3 + vertex 24.8554 19.3454 -3 endloop endfacet - facet normal -0.999189 0.0402694 0 + facet normal 0.225805 0.974172 -0 outer loop - vertex 11.7492 28.4518 -0.2 - vertex 11.7675 28.9061 0 - vertex 11.7675 28.9061 -0.2 + vertex 24.8554 19.3454 -3 + vertex 23.3909 19.6849 0 + vertex 24.8554 19.3454 0 endloop endfacet - facet normal -0.999189 0.0402694 0 + facet normal 0.225805 0.974172 0 outer loop - vertex 11.7675 28.9061 0 - vertex 11.7492 28.4518 -0.2 - vertex 11.7492 28.4518 0 + vertex 23.3909 19.6849 0 + vertex 24.8554 19.3454 -3 + vertex 23.3909 19.6849 -3 endloop endfacet - facet normal -0.999377 -0.0352801 0 + facet normal 0.432873 0.901455 -0 outer loop - vertex 11.7656 27.9858 -0.2 - vertex 11.7492 28.4518 0 - vertex 11.7492 28.4518 -0.2 + vertex 23.3909 19.6849 -3 + vertex 22.6368 20.047 0 + vertex 23.3909 19.6849 0 endloop endfacet - facet normal -0.999377 -0.0352801 0 + facet normal 0.432873 0.901455 0 outer loop - vertex 11.7492 28.4518 0 - vertex 11.7656 27.9858 -0.2 - vertex 11.7656 27.9858 0 + vertex 22.6368 20.047 0 + vertex 23.3909 19.6849 -3 + vertex 22.6368 20.047 -3 endloop endfacet - facet normal -0.993617 -0.112806 0 + facet normal 0.698531 0.71558 -0 outer loop - vertex 11.8169 27.5343 -0.2 - vertex 11.7656 27.9858 0 - vertex 11.7656 27.9858 -0.2 + vertex 22.6368 20.047 -3 + vertex 22.0911 20.5797 0 + vertex 22.6368 20.047 0 endloop endfacet - facet normal -0.993617 -0.112806 0 + facet normal 0.698531 0.71558 0 outer loop - vertex 11.7656 27.9858 0 - vertex 11.8169 27.5343 -0.2 - vertex 11.8169 27.5343 0 + vertex 22.0911 20.5797 0 + vertex 22.6368 20.047 -3 + vertex 22.0911 20.5797 -3 endloop endfacet - facet normal -0.978727 -0.205168 0 + facet normal 0.897086 0.441856 0 outer loop - vertex 11.903 27.1234 -0.2 - vertex 11.8169 27.5343 0 - vertex 11.8169 27.5343 -0.2 + vertex 22.0911 20.5797 0 + vertex 21.7245 21.3239 -3 + vertex 21.7245 21.3239 0 endloop endfacet - facet normal -0.978727 -0.205168 0 + facet normal 0.897086 0.441856 0 outer loop - vertex 11.8169 27.5343 0 - vertex 11.903 27.1234 -0.2 - vertex 11.903 27.1234 0 + vertex 21.7245 21.3239 -3 + vertex 22.0911 20.5797 0 + vertex 22.0911 20.5797 -3 endloop endfacet - facet normal -0.943297 -0.331951 0 + facet normal 0.977198 0.212332 0 outer loop - vertex 12.0241 26.7794 -0.2 - vertex 11.903 27.1234 0 - vertex 11.903 27.1234 -0.2 + vertex 21.7245 21.3239 0 + vertex 21.508 22.3204 -3 + vertex 21.508 22.3204 0 endloop endfacet - facet normal -0.943297 -0.331951 0 + facet normal 0.977198 0.212332 0 outer loop - vertex 11.903 27.1234 0 - vertex 12.0241 26.7794 -0.2 - vertex 12.0241 26.7794 0 + vertex 21.508 22.3204 -3 + vertex 21.7245 21.3239 0 + vertex 21.7245 21.3239 -3 endloop endfacet - facet normal -0.895057 -0.445953 0 + facet normal 0.966755 0.255705 0 outer loop - vertex 12.1339 26.5589 -0.2 - vertex 12.0241 26.7794 0 - vertex 12.0241 26.7794 -0.2 + vertex 21.508 22.3204 0 + vertex 21.2518 23.2891 -3 + vertex 21.2518 23.2891 0 endloop endfacet - facet normal -0.895057 -0.445953 0 + facet normal 0.966755 0.255705 0 outer loop - vertex 12.0241 26.7794 0 - vertex 12.1339 26.5589 -0.2 - vertex 12.1339 26.5589 0 + vertex 21.2518 23.2891 -3 + vertex 21.508 22.3204 0 + vertex 21.508 22.3204 -3 endloop endfacet - facet normal -0.859859 -0.510531 0 + facet normal 0.849732 0.527214 0 outer loop - vertex 12.2572 26.3514 -0.2 - vertex 12.1339 26.5589 0 - vertex 12.1339 26.5589 -0.2 + vertex 21.2518 23.2891 0 + vertex 20.762 24.0784 -3 + vertex 20.762 24.0784 0 endloop endfacet - facet normal -0.859859 -0.510531 0 + facet normal 0.849732 0.527214 0 outer loop - vertex 12.1339 26.5589 0 - vertex 12.2572 26.3514 -0.2 - vertex 12.2572 26.3514 0 + vertex 20.762 24.0784 -3 + vertex 21.2518 23.2891 0 + vertex 21.2518 23.2891 -3 endloop endfacet - facet normal -0.813765 -0.581194 0 + facet normal 0.645661 0.763624 -0 outer loop - vertex 12.3979 26.1543 -0.2 - vertex 12.2572 26.3514 0 - vertex 12.2572 26.3514 -0.2 + vertex 20.762 24.0784 -3 + vertex 20.0338 24.6942 0 + vertex 20.762 24.0784 0 endloop endfacet - facet normal -0.813765 -0.581194 0 + facet normal 0.645661 0.763624 0 outer loop - vertex 12.2572 26.3514 0 - vertex 12.3979 26.1543 -0.2 - vertex 12.3979 26.1543 0 + vertex 20.0338 24.6942 0 + vertex 20.762 24.0784 -3 + vertex 20.0338 24.6942 -3 endloop endfacet - facet normal -0.758497 -0.651676 0 + facet normal 0.418642 0.908151 -0 outer loop - vertex 12.5603 25.9653 -0.2 - vertex 12.3979 26.1543 0 - vertex 12.3979 26.1543 -0.2 + vertex 20.0338 24.6942 -3 + vertex 19.062 25.1422 0 + vertex 20.0338 24.6942 0 endloop endfacet - facet normal -0.758497 -0.651676 0 + facet normal 0.418642 0.908151 0 outer loop - vertex 12.3979 26.1543 0 - vertex 12.5603 25.9653 -0.2 - vertex 12.5603 25.9653 0 + vertex 19.062 25.1422 0 + vertex 20.0338 24.6942 -3 + vertex 19.062 25.1422 -3 endloop endfacet - facet normal -0.697934 -0.716162 0 + facet normal 0.419948 0.907548 -0 outer loop - vertex 12.5603 25.9653 -0.2 - vertex 12.7484 25.782 0 - vertex 12.5603 25.9653 0 + vertex 19.062 25.1422 -3 + vertex 17.2513 25.98 0 + vertex 19.062 25.1422 0 endloop endfacet - facet normal -0.697934 -0.716162 -0 + facet normal 0.419948 0.907548 0 outer loop - vertex 12.7484 25.782 0 - vertex 12.5603 25.9653 -0.2 - vertex 12.7484 25.782 -0.2 + vertex 17.2513 25.98 0 + vertex 19.062 25.1422 -3 + vertex 17.2513 25.98 -3 endloop endfacet - facet normal -0.636928 -0.770923 0 + facet normal 0.649834 0.760076 -0 outer loop - vertex 12.7484 25.782 -0.2 - vertex 12.9664 25.6018 0 - vertex 12.7484 25.782 0 + vertex 17.2513 25.98 -3 + vertex 15.7223 27.2873 0 + vertex 17.2513 25.98 0 endloop endfacet - facet normal -0.636928 -0.770923 -0 + facet normal 0.649834 0.760076 0 outer loop - vertex 12.9664 25.6018 0 - vertex 12.7484 25.782 -0.2 - vertex 12.9664 25.6018 -0.2 + vertex 15.7223 27.2873 0 + vertex 17.2513 25.98 -3 + vertex 15.7223 27.2873 -3 endloop endfacet - facet normal -0.579754 -0.814791 0 + facet normal 0.802285 0.596942 0 outer loop - vertex 12.9664 25.6018 -0.2 - vertex 13.2184 25.4225 0 - vertex 12.9664 25.6018 0 + vertex 15.7223 27.2873 0 + vertex 15.122 28.0941 -3 + vertex 15.122 28.0941 0 endloop endfacet - facet normal -0.579754 -0.814791 -0 + facet normal 0.802285 0.596942 0 outer loop - vertex 13.2184 25.4225 0 - vertex 12.9664 25.6018 -0.2 - vertex 13.2184 25.4225 -0.2 + vertex 15.122 28.0941 -3 + vertex 15.7223 27.2873 0 + vertex 15.7223 27.2873 -3 endloop endfacet - facet normal -0.529164 -0.84852 0 + facet normal 0.997794 0.066389 0 outer loop - vertex 13.2184 25.4225 -0.2 - vertex 13.5086 25.2416 0 - vertex 13.2184 25.4225 0 + vertex 15.122 28.0941 0 + vertex 15.0577 29.0611 -3 + vertex 15.0577 29.0611 0 endloop endfacet - facet normal -0.529164 -0.84852 -0 + facet normal 0.997794 0.066389 0 outer loop - vertex 13.5086 25.2416 0 - vertex 13.2184 25.4225 -0.2 - vertex 13.5086 25.2416 -0.2 + vertex 15.0577 29.0611 -3 + vertex 15.122 28.0941 0 + vertex 15.122 28.0941 -3 endloop endfacet - facet normal -0.467835 -0.883816 0 + facet normal 0.991125 -0.132935 0 outer loop - vertex 13.5086 25.2416 -0.2 - vertex 14.2197 24.8651 0 - vertex 13.5086 25.2416 0 + vertex 15.0577 29.0611 0 + vertex 15.1584 29.8123 -3 + vertex 15.1584 29.8123 0 endloop endfacet - facet normal -0.467835 -0.883816 -0 + facet normal 0.991125 -0.132935 0 outer loop - vertex 14.2197 24.8651 0 - vertex 13.5086 25.2416 -0.2 - vertex 14.2197 24.8651 -0.2 + vertex 15.1584 29.8123 -3 + vertex 15.0577 29.0611 0 + vertex 15.0577 29.0611 -3 endloop endfacet - facet normal -0.411276 -0.911511 0 + facet normal 0.868998 -0.494816 0 outer loop - vertex 14.2197 24.8651 -0.2 - vertex 15.1328 24.4531 0 - vertex 14.2197 24.8651 0 + vertex 15.1584 29.8123 0 + vertex 15.3134 30.0845 -3 + vertex 15.3134 30.0845 0 endloop endfacet - facet normal -0.411276 -0.911511 -0 + facet normal 0.868998 -0.494816 0 outer loop - vertex 15.1328 24.4531 0 - vertex 14.2197 24.8651 -0.2 - vertex 15.1328 24.4531 -0.2 + vertex 15.3134 30.0845 -3 + vertex 15.1584 29.8123 0 + vertex 15.1584 29.8123 -3 endloop endfacet - facet normal -0.376758 -0.926312 0 + facet normal -0.793235 -0.608916 0 outer loop - vertex 15.1328 24.4531 -0.2 - vertex 16.2809 23.9862 0 - vertex 15.1328 24.4531 0 + vertex 15.4783 29.8698 -3 + vertex 15.3134 30.0845 0 + vertex 15.3134 30.0845 -3 endloop endfacet - facet normal -0.376758 -0.926312 -0 + facet normal -0.793235 -0.608916 0 outer loop - vertex 16.2809 23.9862 0 - vertex 15.1328 24.4531 -0.2 - vertex 16.2809 23.9862 -0.2 + vertex 15.3134 30.0845 0 + vertex 15.4783 29.8698 -3 + vertex 15.4783 29.8698 0 endloop endfacet - facet normal -0.357069 -0.934078 0 + facet normal -0.983592 -0.18041 0 outer loop - vertex 16.2809 23.9862 -0.2 - vertex 17.6969 23.4449 0 - vertex 16.2809 23.9862 0 + vertex 15.6084 29.1601 -3 + vertex 15.4783 29.8698 0 + vertex 15.4783 29.8698 -3 endloop endfacet - facet normal -0.357069 -0.934078 -0 + facet normal -0.983592 -0.18041 0 outer loop - vertex 17.6969 23.4449 0 - vertex 16.2809 23.9862 -0.2 - vertex 17.6969 23.4449 -0.2 + vertex 15.4783 29.8698 0 + vertex 15.6084 29.1601 -3 + vertex 15.6084 29.1601 0 endloop endfacet - facet normal -0.423576 -0.90586 0 + facet normal -0.973498 -0.228694 0 outer loop - vertex 17.6969 23.4449 -0.2 - vertex 17.9883 23.3086 0 - vertex 17.6969 23.4449 0 + vertex 15.808 28.3106 -3 + vertex 15.6084 29.1601 0 + vertex 15.6084 29.1601 -3 endloop endfacet - facet normal -0.423576 -0.90586 -0 + facet normal -0.973498 -0.228694 0 outer loop - vertex 17.9883 23.3086 0 - vertex 17.6969 23.4449 -0.2 - vertex 17.9883 23.3086 -0.2 + vertex 15.6084 29.1601 0 + vertex 15.808 28.3106 -3 + vertex 15.808 28.3106 0 endloop endfacet - facet normal -0.513377 -0.858163 0 + facet normal -0.833811 -0.55205 0 outer loop - vertex 17.9883 23.3086 -0.2 - vertex 18.318 23.1114 0 - vertex 17.9883 23.3086 0 + vertex 16.2688 27.6146 -3 + vertex 15.808 28.3106 0 + vertex 15.808 28.3106 -3 endloop endfacet - facet normal -0.513377 -0.858163 -0 + facet normal -0.833811 -0.55205 0 outer loop - vertex 18.318 23.1114 0 - vertex 17.9883 23.3086 -0.2 - vertex 18.318 23.1114 -0.2 + vertex 15.808 28.3106 0 + vertex 16.2688 27.6146 -3 + vertex 16.2688 27.6146 0 endloop endfacet - facet normal -0.57768 -0.816263 0 + facet normal -0.616484 -0.787368 0 outer loop - vertex 18.318 23.1114 -0.2 - vertex 18.6454 22.8797 0 - vertex 18.318 23.1114 0 + vertex 16.2688 27.6146 -3 + vertex 17.0772 26.9817 0 + vertex 16.2688 27.6146 0 endloop endfacet - facet normal -0.57768 -0.816263 -0 + facet normal -0.616484 -0.787368 -0 outer loop - vertex 18.6454 22.8797 0 - vertex 18.318 23.1114 -0.2 - vertex 18.6454 22.8797 -0.2 + vertex 17.0772 26.9817 0 + vertex 16.2688 27.6146 -3 + vertex 17.0772 26.9817 -3 endloop endfacet - facet normal -0.644197 -0.76486 0 + facet normal -0.469274 -0.883053 0 outer loop - vertex 18.6454 22.8797 -0.2 - vertex 18.9302 22.6398 0 - vertex 18.6454 22.8797 0 + vertex 17.0772 26.9817 -3 + vertex 18.3193 26.3216 0 + vertex 17.0772 26.9817 0 endloop endfacet - facet normal -0.644197 -0.76486 -0 + facet normal -0.469274 -0.883053 -0 outer loop - vertex 18.9302 22.6398 0 - vertex 18.6454 22.8797 -0.2 - vertex 18.9302 22.6398 -0.2 + vertex 18.3193 26.3216 0 + vertex 17.0772 26.9817 -3 + vertex 18.3193 26.3216 -3 endloop endfacet - facet normal -0.705164 -0.709044 0 + facet normal -0.453671 -0.891169 0 outer loop - vertex 18.9302 22.6398 -0.2 - vertex 19.108 22.463 0 - vertex 18.9302 22.6398 0 + vertex 18.3193 26.3216 -3 + vertex 20.1819 25.3734 0 + vertex 18.3193 26.3216 0 endloop endfacet - facet normal -0.705164 -0.709044 -0 + facet normal -0.453671 -0.891169 -0 outer loop - vertex 19.108 22.463 0 - vertex 18.9302 22.6398 -0.2 - vertex 19.108 22.463 -0.2 + vertex 20.1819 25.3734 0 + vertex 18.3193 26.3216 -3 + vertex 20.1819 25.3734 -3 endloop endfacet - facet normal -0.763943 -0.645283 0 + facet normal -0.592966 -0.805227 0 outer loop - vertex 19.2511 22.2936 -0.2 - vertex 19.108 22.463 0 - vertex 19.108 22.463 -0.2 + vertex 20.1819 25.3734 -3 + vertex 21.2755 24.568 0 + vertex 20.1819 25.3734 0 endloop endfacet - facet normal -0.763943 -0.645283 0 + facet normal -0.592966 -0.805227 -0 outer loop - vertex 19.108 22.463 0 - vertex 19.2511 22.2936 -0.2 - vertex 19.2511 22.2936 0 + vertex 21.2755 24.568 0 + vertex 20.1819 25.3734 -3 + vertex 21.2755 24.568 -3 endloop endfacet - facet normal -0.840155 -0.542346 0 + facet normal -0.85116 -0.524906 0 outer loop - vertex 19.3646 22.1178 -0.2 - vertex 19.2511 22.2936 0 - vertex 19.2511 22.2936 -0.2 + vertex 21.8319 23.6658 -3 + vertex 21.2755 24.568 0 + vertex 21.2755 24.568 -3 endloop endfacet - facet normal -0.840155 -0.542346 0 + facet normal -0.85116 -0.524906 0 outer loop - vertex 19.2511 22.2936 0 - vertex 19.3646 22.1178 -0.2 - vertex 19.3646 22.1178 0 + vertex 21.2755 24.568 0 + vertex 21.8319 23.6658 -3 + vertex 21.8319 23.6658 0 endloop endfacet - facet normal -0.910423 -0.413678 0 + facet normal -0.980126 -0.198375 0 outer loop - vertex 19.4538 21.9215 -0.2 - vertex 19.3646 22.1178 0 - vertex 19.3646 22.1178 -0.2 + vertex 22.0827 22.427 -3 + vertex 21.8319 23.6658 0 + vertex 21.8319 23.6658 -3 endloop endfacet - facet normal -0.910423 -0.413678 0 + facet normal -0.980126 -0.198375 0 outer loop - vertex 19.3646 22.1178 0 - vertex 19.4538 21.9215 -0.2 - vertex 19.4538 21.9215 0 + vertex 21.8319 23.6658 0 + vertex 22.0827 22.427 -3 + vertex 22.0827 22.427 0 endloop endfacet - facet normal -0.956843 -0.290607 0 + facet normal -0.975671 -0.219241 0 outer loop - vertex 19.5238 21.6908 -0.2 - vertex 19.4538 21.9215 0 - vertex 19.4538 21.9215 -0.2 + vertex 22.2698 21.5943 -3 + vertex 22.0827 22.427 0 + vertex 22.0827 22.427 -3 endloop endfacet - facet normal -0.956843 -0.290607 0 + facet normal -0.975671 -0.219241 0 outer loop - vertex 19.4538 21.9215 0 - vertex 19.5238 21.6908 -0.2 - vertex 19.5238 21.6908 0 + vertex 22.0827 22.427 0 + vertex 22.2698 21.5943 -3 + vertex 22.2698 21.5943 0 endloop endfacet - facet normal -0.980355 -0.19724 0 + facet normal -0.867972 -0.496613 0 outer loop - vertex 19.58 21.4118 -0.2 - vertex 19.5238 21.6908 0 - vertex 19.5238 21.6908 -0.2 + vertex 22.6169 20.9877 -3 + vertex 22.2698 21.5943 0 + vertex 22.2698 21.5943 -3 endloop endfacet - facet normal -0.980355 -0.19724 0 + facet normal -0.867972 -0.496613 0 outer loop - vertex 19.5238 21.6908 0 - vertex 19.58 21.4118 -0.2 - vertex 19.58 21.4118 0 + vertex 22.2698 21.5943 0 + vertex 22.6169 20.9877 -3 + vertex 22.6169 20.9877 0 endloop endfacet - facet normal -0.992839 -0.119457 0 + facet normal -0.60611 -0.795381 0 outer loop - vertex 19.6713 20.6529 -0.2 - vertex 19.58 21.4118 0 - vertex 19.58 21.4118 -0.2 + vertex 22.6169 20.9877 -3 + vertex 23.1387 20.59 0 + vertex 22.6169 20.9877 0 endloop endfacet - facet normal -0.992839 -0.119457 0 + facet normal -0.60611 -0.795381 -0 outer loop - vertex 19.58 21.4118 0 - vertex 19.6713 20.6529 -0.2 - vertex 19.6713 20.6529 0 + vertex 23.1387 20.59 0 + vertex 22.6169 20.9877 -3 + vertex 23.1387 20.59 -3 endloop endfacet - facet normal -0.994314 -0.106485 0 + facet normal -0.277742 -0.960656 0 outer loop - vertex 19.753 19.8896 -0.2 - vertex 19.6713 20.6529 0 - vertex 19.6713 20.6529 -0.2 + vertex 23.1387 20.59 -3 + vertex 23.8499 20.3844 0 + vertex 23.1387 20.59 0 endloop endfacet - facet normal -0.994314 -0.106485 0 + facet normal -0.277742 -0.960656 -0 outer loop - vertex 19.6713 20.6529 0 - vertex 19.753 19.8896 -0.2 - vertex 19.753 19.8896 0 + vertex 23.8499 20.3844 0 + vertex 23.1387 20.59 -3 + vertex 23.8499 20.3844 -3 endloop endfacet - facet normal -0.985782 -0.168027 0 + facet normal -0.253903 -0.96723 0 outer loop - vertex 19.8522 19.3078 -0.2 - vertex 19.753 19.8896 0 - vertex 19.753 19.8896 -0.2 + vertex 23.8499 20.3844 -3 + vertex 25.0752 20.0627 0 + vertex 23.8499 20.3844 0 endloop endfacet - facet normal -0.985782 -0.168027 0 + facet normal -0.253903 -0.96723 -0 outer loop - vertex 19.753 19.8896 0 - vertex 19.8522 19.3078 -0.2 - vertex 19.8522 19.3078 0 + vertex 25.0752 20.0627 0 + vertex 23.8499 20.3844 -3 + vertex 25.0752 20.0627 -3 endloop endfacet - facet normal -0.962825 -0.270127 0 + facet normal -0.555295 -0.831654 0 outer loop - vertex 19.9169 19.0772 -0.2 - vertex 19.8522 19.3078 0 - vertex 19.8522 19.3078 -0.2 + vertex 25.0752 20.0627 -3 + vertex 25.9424 19.4837 0 + vertex 25.0752 20.0627 0 endloop endfacet - facet normal -0.962825 -0.270127 0 + facet normal -0.555295 -0.831654 -0 outer loop - vertex 19.8522 19.3078 0 - vertex 19.9169 19.0772 -0.2 - vertex 19.9169 19.0772 0 + vertex 25.9424 19.4837 0 + vertex 25.0752 20.0627 -3 + vertex 25.9424 19.4837 -3 endloop endfacet - facet normal -0.925898 -0.377775 0 + facet normal -0.850459 -0.526041 0 outer loop - vertex 19.9962 18.8829 -0.2 - vertex 19.9169 19.0772 0 - vertex 19.9169 19.0772 -0.2 + vertex 26.4742 18.624 -3 + vertex 25.9424 19.4837 0 + vertex 25.9424 19.4837 -3 endloop endfacet - facet normal -0.925898 -0.377775 0 + facet normal -0.850459 -0.526041 0 outer loop - vertex 19.9169 19.0772 0 - vertex 19.9962 18.8829 -0.2 - vertex 19.9962 18.8829 0 + vertex 25.9424 19.4837 0 + vertex 26.4742 18.624 -3 + vertex 26.4742 18.624 0 endloop endfacet - facet normal -0.85612 -0.516776 0 + facet normal -0.982731 -0.185042 0 outer loop - vertex 20.0935 18.7216 -0.2 - vertex 19.9962 18.8829 0 - vertex 19.9962 18.8829 -0.2 + vertex 26.6933 17.4601 -3 + vertex 26.4742 18.624 0 + vertex 26.4742 18.624 -3 endloop endfacet - facet normal -0.85612 -0.516776 0 + facet normal -0.982731 -0.185042 0 outer loop - vertex 19.9962 18.8829 0 - vertex 20.0935 18.7216 -0.2 - vertex 20.0935 18.7216 0 + vertex 26.4742 18.624 0 + vertex 26.6933 17.4601 -3 + vertex 26.6933 17.4601 0 endloop endfacet - facet normal -0.741357 -0.67111 0 + facet normal -0.95811 -0.286401 0 outer loop - vertex 20.2124 18.5903 -0.2 - vertex 20.0935 18.7216 0 - vertex 20.0935 18.7216 -0.2 + vertex 27.1755 15.8473 -3 + vertex 26.6933 17.4601 0 + vertex 26.6933 17.4601 -3 endloop endfacet - facet normal -0.741357 -0.67111 0 + facet normal -0.95811 -0.286401 0 outer loop - vertex 20.0935 18.7216 0 - vertex 20.2124 18.5903 -0.2 - vertex 20.2124 18.5903 0 + vertex 26.6933 17.4601 0 + vertex 27.1755 15.8473 -3 + vertex 27.1755 15.8473 0 endloop endfacet - facet normal -0.587422 -0.809281 0 + facet normal -0.948381 -0.317134 0 outer loop - vertex 20.2124 18.5903 -0.2 - vertex 20.3561 18.486 0 - vertex 20.2124 18.5903 0 + vertex 27.5422 14.7505 -3 + vertex 27.1755 15.8473 0 + vertex 27.1755 15.8473 -3 endloop endfacet - facet normal -0.587422 -0.809281 -0 + facet normal -0.948381 -0.317134 0 outer loop - vertex 20.3561 18.486 0 - vertex 20.2124 18.5903 -0.2 - vertex 20.3561 18.486 -0.2 + vertex 27.1755 15.8473 0 + vertex 27.5422 14.7505 -3 + vertex 27.5422 14.7505 0 endloop endfacet - facet normal -0.423563 -0.905867 0 + facet normal -0.999642 -0.0267694 0 outer loop - vertex 20.3561 18.486 -0.2 - vertex 20.5281 18.4055 0 - vertex 20.3561 18.486 0 + vertex 27.6094 12.2412 -3 + vertex 27.5422 14.7505 0 + vertex 27.5422 14.7505 -3 endloop endfacet - facet normal -0.423563 -0.905867 -0 + facet normal -0.999642 -0.0267694 0 outer loop - vertex 20.5281 18.4055 0 - vertex 20.3561 18.486 -0.2 - vertex 20.5281 18.4055 -0.2 + vertex 27.5422 14.7505 0 + vertex 27.6094 12.2412 -3 + vertex 27.6094 12.2412 0 endloop endfacet - facet normal -0.280888 -0.95974 0 + facet normal -0.999486 0.0320667 0 outer loop - vertex 20.5281 18.4055 -0.2 - vertex 20.7319 18.3459 0 - vertex 20.5281 18.4055 0 + vertex 27.528 9.70386 -3 + vertex 27.6094 12.2412 0 + vertex 27.6094 12.2412 -3 endloop endfacet - facet normal -0.280888 -0.95974 -0 + facet normal -0.999486 0.0320667 0 outer loop - vertex 20.7319 18.3459 0 - vertex 20.5281 18.4055 -0.2 - vertex 20.7319 18.3459 -0.2 + vertex 27.6094 12.2412 0 + vertex 27.528 9.70386 -3 + vertex 27.528 9.70386 0 endloop endfacet - facet normal -0.172751 -0.984966 0 + facet normal -0.981091 0.193547 0 outer loop - vertex 20.7319 18.3459 -0.2 - vertex 20.9709 18.304 0 - vertex 20.7319 18.3459 0 + vertex 27.209 8.08714 -3 + vertex 27.528 9.70386 0 + vertex 27.528 9.70386 -3 endloop endfacet - facet normal -0.172751 -0.984966 -0 + facet normal -0.981091 0.193547 0 outer loop - vertex 20.9709 18.304 0 - vertex 20.7319 18.3459 -0.2 - vertex 20.9709 18.304 -0.2 + vertex 27.528 9.70386 0 + vertex 27.209 8.08714 -3 + vertex 27.209 8.08714 0 endloop endfacet - facet normal -0.0716809 -0.997428 0 + facet normal -0.980935 0.194337 0 outer loop - vertex 20.9709 18.304 -0.2 - vertex 21.5679 18.2611 0 - vertex 20.9709 18.304 0 + vertex 26.8985 6.51977 -3 + vertex 27.209 8.08714 0 + vertex 27.209 8.08714 -3 endloop endfacet - facet normal -0.0716809 -0.997428 -0 + facet normal -0.980935 0.194337 0 outer loop - vertex 21.5679 18.2611 0 - vertex 20.9709 18.304 -0.2 - vertex 21.5679 18.2611 -0.2 + vertex 27.209 8.08714 0 + vertex 26.8985 6.51977 -3 + vertex 26.8985 6.51977 0 endloop endfacet - facet normal -0.0113554 -0.999936 0 + facet normal -0.999971 -0.00756314 0 outer loop - vertex 21.5679 18.2611 -0.2 - vertex 22.3468 18.2522 0 - vertex 21.5679 18.2611 0 + vertex 26.9177 3.98634 -3 + vertex 26.8985 6.51977 0 + vertex 26.8985 6.51977 -3 endloop endfacet - facet normal -0.0113554 -0.999936 -0 + facet normal -0.999971 -0.00756314 0 outer loop - vertex 22.3468 18.2522 0 - vertex 21.5679 18.2611 -0.2 - vertex 22.3468 18.2522 -0.2 + vertex 26.8985 6.51977 0 + vertex 26.9177 3.98634 -3 + vertex 26.9177 3.98634 0 endloop endfacet - facet normal -0.0142554 -0.999898 0 + facet normal -0.999812 -0.0193848 0 outer loop - vertex 22.3468 18.2522 -0.2 - vertex 23.0891 18.2417 0 - vertex 22.3468 18.2522 0 + vertex 26.953 2.16551 -3 + vertex 26.9177 3.98634 0 + vertex 26.9177 3.98634 -3 endloop endfacet - facet normal -0.0142554 -0.999898 -0 + facet normal -0.999812 -0.0193848 0 outer loop - vertex 23.0891 18.2417 0 - vertex 22.3468 18.2522 -0.2 - vertex 23.0891 18.2417 -0.2 + vertex 26.9177 3.98634 0 + vertex 26.953 2.16551 -3 + vertex 26.953 2.16551 0 endloop endfacet - facet normal -0.0563557 -0.998411 0 + facet normal -0.99253 0.121998 0 outer loop - vertex 23.0891 18.2417 -0.2 - vertex 23.7039 18.207 0 - vertex 23.0891 18.2417 0 + vertex 26.8464 1.29842 -3 + vertex 26.953 2.16551 0 + vertex 26.953 2.16551 -3 endloop endfacet - facet normal -0.0563557 -0.998411 -0 + facet normal -0.99253 0.121998 0 outer loop - vertex 23.7039 18.207 0 - vertex 23.0891 18.2417 -0.2 - vertex 23.7039 18.207 -0.2 + vertex 26.953 2.16551 0 + vertex 26.8464 1.29842 -3 + vertex 26.8464 1.29842 0 endloop endfacet - facet normal -0.125256 -0.992124 0 + facet normal -0.673406 0.739273 0 outer loop - vertex 23.7039 18.207 -0.2 - vertex 24.2049 18.1437 0 - vertex 23.7039 18.207 0 + vertex 26.8464 1.29842 -3 + vertex 26.7235 1.18648 0 + vertex 26.8464 1.29842 0 endloop endfacet - facet normal -0.125256 -0.992124 -0 + facet normal -0.673406 0.739273 0 outer loop - vertex 24.2049 18.1437 0 - vertex 23.7039 18.207 -0.2 - vertex 24.2049 18.1437 -0.2 + vertex 26.7235 1.18648 0 + vertex 26.8464 1.29842 -3 + vertex 26.7235 1.18648 -3 endloop endfacet - facet normal -0.233347 -0.972393 0 + facet normal 0.423462 0.905914 -0 outer loop - vertex 24.2049 18.1437 -0.2 - vertex 24.6059 18.0475 0 - vertex 24.2049 18.1437 0 + vertex 26.7235 1.18648 -3 + vertex 26.5455 1.2697 0 + vertex 26.7235 1.18648 0 endloop endfacet - facet normal -0.233347 -0.972393 -0 + facet normal 0.423462 0.905914 0 outer loop - vertex 24.6059 18.0475 0 - vertex 24.2049 18.1437 -0.2 - vertex 24.6059 18.0475 -0.2 + vertex 26.5455 1.2697 0 + vertex 26.7235 1.18648 -3 + vertex 26.5455 1.2697 -3 endloop endfacet - facet normal -0.390765 -0.920491 0 + facet normal 0.785068 0.61941 0 outer loop - vertex 24.6059 18.0475 -0.2 - vertex 24.9207 17.9138 0 - vertex 24.6059 18.0475 0 + vertex 26.5455 1.2697 0 + vertex 25.9977 1.96397 -3 + vertex 25.9977 1.96397 0 endloop endfacet - facet normal -0.390765 -0.920491 -0 + facet normal 0.785068 0.61941 0 outer loop - vertex 24.9207 17.9138 0 - vertex 24.6059 18.0475 -0.2 - vertex 24.9207 17.9138 -0.2 + vertex 25.9977 1.96397 -3 + vertex 26.5455 1.2697 0 + vertex 26.5455 1.2697 -3 endloop endfacet - facet normal -0.536417 -0.843953 0 + facet normal 0.724168 0.689624 0 outer loop - vertex 24.9207 17.9138 -0.2 - vertex 25.0501 17.8316 0 - vertex 24.9207 17.9138 0 + vertex 25.9977 1.96397 0 + vertex 25.3153 2.68052 -3 + vertex 25.3153 2.68052 0 endloop endfacet - facet normal -0.536417 -0.843953 -0 + facet normal 0.724168 0.689624 0 outer loop - vertex 25.0501 17.8316 0 - vertex 24.9207 17.9138 -0.2 - vertex 25.0501 17.8316 -0.2 + vertex 25.3153 2.68052 -3 + vertex 25.9977 1.96397 0 + vertex 25.9977 1.96397 -3 endloop endfacet - facet normal -0.636483 -0.77129 0 + facet normal -0.00319409 0.999995 0 outer loop - vertex 25.0501 17.8316 -0.2 - vertex 25.163 17.7384 0 - vertex 25.0501 17.8316 0 + vertex 25.3153 2.68052 -3 + vertex 25.0347 2.67962 0 + vertex 25.3153 2.68052 0 endloop endfacet - facet normal -0.636483 -0.77129 -0 + facet normal -0.00319409 0.999995 0 outer loop - vertex 25.163 17.7384 0 - vertex 25.0501 17.8316 -0.2 - vertex 25.163 17.7384 -0.2 + vertex 25.0347 2.67962 0 + vertex 25.3153 2.68052 -3 + vertex 25.0347 2.67962 -3 endloop endfacet - facet normal -0.729305 -0.684189 0 + facet normal -0.620982 0.783825 0 outer loop - vertex 25.2614 17.6336 -0.2 - vertex 25.163 17.7384 0 - vertex 25.163 17.7384 -0.2 + vertex 25.0347 2.67962 -3 + vertex 24.7523 2.4559 0 + vertex 25.0347 2.67962 0 endloop endfacet - facet normal -0.729305 -0.684189 0 + facet normal -0.620982 0.783825 0 outer loop - vertex 25.163 17.7384 0 - vertex 25.2614 17.6336 -0.2 - vertex 25.2614 17.6336 0 + vertex 24.7523 2.4559 0 + vertex 25.0347 2.67962 -3 + vertex 24.7523 2.4559 -3 endloop endfacet - facet normal -0.807579 -0.589759 0 + facet normal -0.356176 0.934419 0 outer loop - vertex 25.3467 17.5167 -0.2 - vertex 25.2614 17.6336 0 - vertex 25.2614 17.6336 -0.2 + vertex 24.7523 2.4559 -3 + vertex 23.9858 2.16372 0 + vertex 24.7523 2.4559 0 endloop endfacet - facet normal -0.807579 -0.589759 0 + facet normal -0.356176 0.934419 0 outer loop - vertex 25.2614 17.6336 0 - vertex 25.3467 17.5167 -0.2 - vertex 25.3467 17.5167 0 + vertex 23.9858 2.16372 0 + vertex 24.7523 2.4559 -3 + vertex 23.9858 2.16372 -3 endloop endfacet - facet normal -0.890947 -0.454107 0 + facet normal -0.21204 0.977261 0 outer loop - vertex 25.4856 17.2443 -0.2 - vertex 25.3467 17.5167 0 - vertex 25.3467 17.5167 -0.2 + vertex 23.9858 2.16372 -3 + vertex 23.1222 1.97635 0 + vertex 23.9858 2.16372 0 endloop endfacet - facet normal -0.890947 -0.454107 0 + facet normal -0.21204 0.977261 0 outer loop - vertex 25.3467 17.5167 0 - vertex 25.4856 17.2443 -0.2 - vertex 25.4856 17.2443 0 + vertex 23.1222 1.97635 0 + vertex 23.9858 2.16372 -3 + vertex 23.1222 1.97635 -3 endloop endfacet - facet normal -0.905796 -0.423714 0 + facet normal 0.0237086 0.999719 -0 outer loop - vertex 25.6037 16.9917 -0.2 - vertex 25.4856 17.2443 0 - vertex 25.4856 17.2443 -0.2 + vertex 23.1222 1.97635 -3 + vertex 22.8505 1.9828 0 + vertex 23.1222 1.97635 0 endloop endfacet - facet normal -0.905796 -0.423714 0 + facet normal 0.0237086 0.999719 0 outer loop - vertex 25.4856 17.2443 0 - vertex 25.6037 16.9917 -0.2 - vertex 25.6037 16.9917 0 + vertex 22.8505 1.9828 0 + vertex 23.1222 1.97635 -3 + vertex 22.8505 1.9828 -3 endloop endfacet - facet normal -0.826293 -0.563241 0 + facet normal 0.97535 0.220664 0 outer loop - vertex 25.7157 16.8274 -0.2 - vertex 25.6037 16.9917 0 - vertex 25.6037 16.9917 -0.2 + vertex 22.8505 1.9828 0 + vertex 22.7784 2.30129 -3 + vertex 22.7784 2.30129 0 endloop endfacet - facet normal -0.826293 -0.563241 0 + facet normal 0.97535 0.220664 0 outer loop - vertex 25.6037 16.9917 0 - vertex 25.7157 16.8274 -0.2 - vertex 25.7157 16.8274 0 + vertex 22.7784 2.30129 -3 + vertex 22.8505 1.9828 0 + vertex 22.8505 1.9828 -3 endloop endfacet - facet normal -0.603414 -0.797428 0 + facet normal 0.936019 -0.35195 0 outer loop - vertex 25.7157 16.8274 -0.2 - vertex 25.8187 16.7495 0 - vertex 25.7157 16.8274 0 + vertex 22.7784 2.30129 0 + vertex 23.2082 3.44442 -3 + vertex 23.2082 3.44442 0 endloop endfacet - facet normal -0.603414 -0.797428 -0 + facet normal 0.936019 -0.35195 0 outer loop - vertex 25.8187 16.7495 0 - vertex 25.7157 16.8274 -0.2 - vertex 25.8187 16.7495 -0.2 + vertex 23.2082 3.44442 -3 + vertex 22.7784 2.30129 0 + vertex 22.7784 2.30129 -3 endloop endfacet - facet normal -0.148413 -0.988925 0 + facet normal 0.913236 -0.40743 0 outer loop - vertex 25.8187 16.7495 -0.2 - vertex 25.8659 16.7424 0 - vertex 25.8187 16.7495 0 + vertex 23.2082 3.44442 0 + vertex 23.5377 4.18291 -3 + vertex 23.5377 4.18291 0 endloop endfacet - facet normal -0.148413 -0.988925 -0 + facet normal 0.913236 -0.40743 0 outer loop - vertex 25.8659 16.7424 0 - vertex 25.8187 16.7495 -0.2 - vertex 25.8659 16.7424 -0.2 + vertex 23.5377 4.18291 -3 + vertex 23.2082 3.44442 0 + vertex 23.2082 3.44442 -3 endloop endfacet - facet normal 0.302537 -0.953138 0 + facet normal 0.997125 -0.0757773 0 outer loop - vertex 25.8659 16.7424 -0.2 - vertex 25.9096 16.7563 0 - vertex 25.8659 16.7424 0 + vertex 23.5377 4.18291 0 + vertex 23.5966 4.95794 -3 + vertex 23.5966 4.95794 0 endloop endfacet - facet normal 0.302537 -0.953138 0 + facet normal 0.997125 -0.0757773 0 outer loop - vertex 25.9096 16.7563 0 - vertex 25.8659 16.7424 -0.2 - vertex 25.9096 16.7563 -0.2 + vertex 23.5966 4.95794 -3 + vertex 23.5377 4.18291 0 + vertex 23.5377 4.18291 -3 endloop endfacet - facet normal 0.763836 -0.645411 0 + facet normal 0.969407 0.245457 0 outer loop - vertex 25.9096 16.7563 0 - vertex 25.9855 16.8461 -0.2 - vertex 25.9855 16.8461 0 + vertex 23.5966 4.95794 0 + vertex 23.3811 5.8089 -3 + vertex 23.3811 5.8089 0 endloop endfacet - facet normal 0.763836 -0.645411 0 + facet normal 0.969407 0.245457 0 outer loop - vertex 25.9855 16.8461 -0.2 - vertex 25.9096 16.7563 0 - vertex 25.9096 16.7563 -0.2 + vertex 23.3811 5.8089 -3 + vertex 23.5966 4.95794 0 + vertex 23.5966 4.95794 -3 endloop endfacet - facet normal 0.947245 -0.320511 0 + facet normal 0.890531 0.454923 0 outer loop - vertex 25.9855 16.8461 0 - vertex 26.0434 17.0172 -0.2 - vertex 26.0434 17.0172 0 + vertex 23.3811 5.8089 0 + vertex 22.8875 6.77518 -3 + vertex 22.8875 6.77518 0 endloop endfacet - facet normal 0.947245 -0.320511 0 + facet normal 0.890531 0.454923 0 outer loop - vertex 26.0434 17.0172 -0.2 - vertex 25.9855 16.8461 0 - vertex 25.9855 16.8461 -0.2 + vertex 22.8875 6.77518 -3 + vertex 23.3811 5.8089 0 + vertex 23.3811 5.8089 -3 endloop endfacet - facet normal 0.989326 -0.145716 0 + facet normal 0.77704 0.629451 0 outer loop - vertex 26.0434 17.0172 0 - vertex 26.0803 17.2678 -0.2 - vertex 26.0803 17.2678 0 + vertex 22.8875 6.77518 0 + vertex 21.7142 8.22365 -3 + vertex 21.7142 8.22365 0 endloop endfacet - facet normal 0.989326 -0.145716 0 + facet normal 0.77704 0.629451 0 outer loop - vertex 26.0803 17.2678 -0.2 - vertex 26.0434 17.0172 0 - vertex 26.0434 17.0172 -0.2 + vertex 21.7142 8.22365 -3 + vertex 22.8875 6.77518 0 + vertex 22.8875 6.77518 -3 endloop endfacet - facet normal 0.999222 -0.0394472 0 + facet normal 0.585146 0.810928 -0 outer loop - vertex 26.0803 17.2678 0 - vertex 26.0933 17.5963 -0.2 - vertex 26.0933 17.5963 0 + vertex 21.7142 8.22365 -3 + vertex 19.7157 9.66569 0 + vertex 21.7142 8.22365 0 endloop endfacet - facet normal 0.999222 -0.0394472 0 + facet normal 0.585146 0.810928 0 outer loop - vertex 26.0933 17.5963 -0.2 - vertex 26.0803 17.2678 0 - vertex 26.0803 17.2678 -0.2 + vertex 19.7157 9.66569 0 + vertex 21.7142 8.22365 -3 + vertex 19.7157 9.66569 -3 endloop endfacet - facet normal 0.99788 0.0650754 0 + facet normal 0.415721 0.909492 -0 outer loop - vertex 26.0933 17.5963 0 - vertex 26.0696 17.9605 -0.2 - vertex 26.0696 17.9605 0 + vertex 19.7157 9.66569 -3 + vertex 18.6847 10.137 0 + vertex 19.7157 9.66569 0 endloop endfacet - facet normal 0.99788 0.0650754 0 + facet normal 0.415721 0.909492 0 outer loop - vertex 26.0696 17.9605 -0.2 - vertex 26.0933 17.5963 0 - vertex 26.0933 17.5963 -0.2 + vertex 18.6847 10.137 0 + vertex 19.7157 9.66569 -3 + vertex 18.6847 10.137 -3 endloop endfacet - facet normal 0.979516 0.201364 0 + facet normal 0.146348 0.989233 -0 outer loop - vertex 26.0696 17.9605 0 - vertex 26.0009 18.2942 -0.2 - vertex 26.0009 18.2942 0 + vertex 18.6847 10.137 -3 + vertex 17.337 10.3363 0 + vertex 18.6847 10.137 0 endloop endfacet - facet normal 0.979516 0.201364 0 + facet normal 0.146348 0.989233 0 outer loop - vertex 26.0009 18.2942 -0.2 - vertex 26.0696 17.9605 0 - vertex 26.0696 17.9605 -0.2 + vertex 17.337 10.3363 0 + vertex 18.6847 10.137 -3 + vertex 17.337 10.3363 -3 endloop endfacet - facet normal 0.938515 0.345238 0 + facet normal -0.00363232 0.999993 0 outer loop - vertex 26.0009 18.2942 0 - vertex 25.8914 18.5921 -0.2 - vertex 25.8914 18.5921 0 + vertex 17.337 10.3363 -3 + vertex 15.9933 10.3315 0 + vertex 17.337 10.3363 0 endloop endfacet - facet normal 0.938515 0.345238 0 + facet normal -0.00363232 0.999993 0 outer loop - vertex 25.8914 18.5921 -0.2 - vertex 26.0009 18.2942 0 - vertex 26.0009 18.2942 -0.2 + vertex 15.9933 10.3315 0 + vertex 17.337 10.3363 -3 + vertex 15.9933 10.3315 -3 endloop endfacet - facet normal 0.86805 0.496476 0 + facet normal -0.520358 0.853948 0 outer loop - vertex 25.8914 18.5921 0 - vertex 25.7448 18.8483 -0.2 - vertex 25.7448 18.8483 0 + vertex 15.9933 10.3315 -3 + vertex 15.6762 10.1383 0 + vertex 15.9933 10.3315 0 endloop endfacet - facet normal 0.86805 0.496476 0 + facet normal -0.520358 0.853948 0 outer loop - vertex 25.7448 18.8483 -0.2 - vertex 25.8914 18.5921 0 - vertex 25.8914 18.5921 -0.2 + vertex 15.6762 10.1383 0 + vertex 15.9933 10.3315 -3 + vertex 15.6762 10.1383 -3 endloop endfacet - facet normal 0.758477 0.651699 0 + facet normal -0.775154 0.631772 0 outer loop - vertex 25.7448 18.8483 0 - vertex 25.5652 19.0574 -0.2 - vertex 25.5652 19.0574 0 + vertex 15.3572 9.74689 -3 + vertex 15.6762 10.1383 0 + vertex 15.6762 10.1383 -3 endloop endfacet - facet normal 0.758477 0.651699 0 + facet normal -0.775154 0.631772 0 outer loop - vertex 25.5652 19.0574 -0.2 - vertex 25.7448 18.8483 0 - vertex 25.7448 18.8483 -0.2 + vertex 15.6762 10.1383 0 + vertex 15.3572 9.74689 -3 + vertex 15.3572 9.74689 0 endloop endfacet - facet normal 0.599251 0.800561 -0 + facet normal -0.885944 0.463791 0 outer loop - vertex 25.5652 19.0574 -0.2 - vertex 25.3564 19.2137 0 - vertex 25.5652 19.0574 0 + vertex 14.9426 8.95486 -3 + vertex 15.3572 9.74689 0 + vertex 15.3572 9.74689 -3 endloop endfacet - facet normal 0.599251 0.800561 0 + facet normal -0.885944 0.463791 0 outer loop - vertex 25.3564 19.2137 0 - vertex 25.5652 19.0574 -0.2 - vertex 25.3564 19.2137 -0.2 + vertex 15.3572 9.74689 0 + vertex 14.9426 8.95486 -3 + vertex 14.9426 8.95486 0 endloop endfacet - facet normal 0.385907 0.922538 -0 + facet normal -0.999951 -0.00991933 0 outer loop - vertex 25.3564 19.2137 -0.2 - vertex 25.1224 19.3115 0 - vertex 25.3564 19.2137 0 + vertex 14.9551 7.69881 -3 + vertex 14.9426 8.95486 0 + vertex 14.9426 8.95486 -3 endloop endfacet - facet normal 0.385907 0.922538 0 + facet normal -0.999951 -0.00991933 0 outer loop - vertex 25.1224 19.3115 0 - vertex 25.3564 19.2137 -0.2 - vertex 25.1224 19.3115 -0.2 + vertex 14.9426 8.95486 0 + vertex 14.9551 7.69881 -3 + vertex 14.9551 7.69881 0 endloop endfacet - facet normal 0.197951 0.980212 -0 + facet normal -0.987205 -0.159458 0 outer loop - vertex 25.1224 19.3115 -0.2 - vertex 24.9972 19.3368 0 - vertex 25.1224 19.3115 0 + vertex 15.3368 5.33522 -3 + vertex 14.9551 7.69881 0 + vertex 14.9551 7.69881 -3 endloop endfacet - facet normal 0.197951 0.980212 0 + facet normal -0.987205 -0.159458 0 outer loop - vertex 24.9972 19.3368 0 - vertex 25.1224 19.3115 -0.2 - vertex 24.9972 19.3368 -0.2 + vertex 14.9551 7.69881 0 + vertex 15.3368 5.33522 -3 + vertex 15.3368 5.33522 0 endloop endfacet - facet normal 0.0658711 0.997828 -0 + facet normal -0.962213 -0.272299 0 outer loop - vertex 24.9972 19.3368 -0.2 - vertex 24.8672 19.3454 0 - vertex 24.9972 19.3368 0 + vertex 16.0239 2.90744 -3 + vertex 15.3368 5.33522 0 + vertex 15.3368 5.33522 -3 endloop endfacet - facet normal 0.0658711 0.997828 0 + facet normal -0.962213 -0.272299 0 outer loop - vertex 24.8672 19.3454 0 - vertex 24.9972 19.3368 -0.2 - vertex 24.8672 19.3454 -0.2 + vertex 15.3368 5.33522 0 + vertex 16.0239 2.90744 -3 + vertex 16.0239 2.90744 0 endloop endfacet - facet normal 0.104566 0.994518 -0 + facet normal -0.924811 -0.380427 0 outer loop - vertex 24.8672 19.3454 -0.2 - vertex 24.6124 19.3722 0 - vertex 24.8672 19.3454 0 + vertex 16.8564 0.883682 -3 + vertex 16.0239 2.90744 0 + vertex 16.0239 2.90744 -3 endloop endfacet - facet normal 0.104566 0.994518 0 + facet normal -0.924811 -0.380427 0 outer loop - vertex 24.6124 19.3722 0 - vertex 24.8672 19.3454 -0.2 - vertex 24.6124 19.3722 -0.2 + vertex 16.0239 2.90744 0 + vertex 16.8564 0.883682 -3 + vertex 16.8564 0.883682 0 endloop endfacet - facet normal 0.198003 0.980201 -0 + facet normal -0.815204 -0.579174 0 outer loop - vertex 24.6124 19.3722 -0.2 - vertex 24.2514 19.4451 0 - vertex 24.6124 19.3722 0 + vertex 17.6745 -0.267811 -3 + vertex 16.8564 0.883682 0 + vertex 16.8564 0.883682 -3 endloop endfacet - facet normal 0.198003 0.980201 0 + facet normal -0.815204 -0.579174 0 outer loop - vertex 24.2514 19.4451 0 - vertex 24.6124 19.3722 -0.2 - vertex 24.2514 19.4451 -0.2 + vertex 16.8564 0.883682 0 + vertex 17.6745 -0.267811 -3 + vertex 17.6745 -0.267811 0 endloop endfacet - facet normal 0.249312 0.968423 -0 + facet normal -0.318326 -0.947981 0 outer loop - vertex 24.2514 19.4451 -0.2 - vertex 23.8321 19.5531 0 - vertex 24.2514 19.4451 0 + vertex 17.6745 -0.267811 -3 + vertex 18.2674 -0.466912 0 + vertex 17.6745 -0.267811 0 endloop endfacet - facet normal 0.249312 0.968423 0 + facet normal -0.318326 -0.947981 -0 outer loop - vertex 23.8321 19.5531 0 - vertex 24.2514 19.4451 -0.2 - vertex 23.8321 19.5531 -0.2 + vertex 18.2674 -0.466912 0 + vertex 17.6745 -0.267811 -3 + vertex 18.2674 -0.466912 -3 endloop endfacet - facet normal 0.293412 0.955986 -0 + facet normal 0.268508 -0.963277 0 outer loop - vertex 23.8321 19.5531 -0.2 - vertex 23.4027 19.6849 0 - vertex 23.8321 19.5531 0 + vertex 18.2674 -0.466912 -3 + vertex 19.4865 -0.127098 0 + vertex 18.2674 -0.466912 0 endloop endfacet - facet normal 0.293412 0.955986 0 + facet normal 0.268508 -0.963277 0 outer loop - vertex 23.4027 19.6849 0 - vertex 23.8321 19.5531 -0.2 - vertex 23.4027 19.6849 -0.2 + vertex 19.4865 -0.127098 0 + vertex 18.2674 -0.466912 -3 + vertex 19.4865 -0.127098 -3 endloop endfacet - facet normal 0.372015 0.928227 -0 + facet normal 0.219889 -0.975525 0 outer loop - vertex 23.4027 19.6849 -0.2 - vertex 22.9977 19.8472 0 - vertex 23.4027 19.6849 0 + vertex 19.4865 -0.127098 -3 + vertex 21.0282 0.220415 0 + vertex 19.4865 -0.127098 0 endloop endfacet - facet normal 0.372015 0.928227 0 + facet normal 0.219889 -0.975525 0 outer loop - vertex 22.9977 19.8472 0 - vertex 23.4027 19.6849 -0.2 - vertex 22.9977 19.8472 -0.2 + vertex 21.0282 0.220415 0 + vertex 19.4865 -0.127098 -3 + vertex 21.0282 0.220415 -3 endloop endfacet - facet normal 0.496703 0.86792 -0 + facet normal -0.998758 -0.0498338 0 outer loop - vertex 22.9977 19.8472 -0.2 - vertex 22.6486 20.047 0 - vertex 22.9977 19.8472 0 + vertex 21.0968 -1.15452 -3 + vertex 21.0282 0.220415 0 + vertex 21.0282 0.220415 -3 endloop endfacet - facet normal 0.496703 0.86792 0 + facet normal -0.998758 -0.0498338 0 outer loop - vertex 22.6486 20.047 0 - vertex 22.9977 19.8472 -0.2 - vertex 22.6486 20.047 -0.2 + vertex 21.0282 0.220415 0 + vertex 21.0968 -1.15452 -3 + vertex 21.0968 -1.15452 0 endloop endfacet - facet normal 0.63232 0.774707 -0 + facet normal -0.983918 0.178619 0 outer loop - vertex 22.6486 20.047 -0.2 - vertex 22.3515 20.2895 0 - vertex 22.6486 20.047 0 + vertex 20.9081 -2.19366 -3 + vertex 21.0968 -1.15452 0 + vertex 21.0968 -1.15452 -3 endloop endfacet - facet normal 0.63232 0.774707 0 + facet normal -0.983918 0.178619 0 outer loop - vertex 22.3515 20.2895 0 - vertex 22.6486 20.047 -0.2 - vertex 22.3515 20.2895 -0.2 + vertex 21.0968 -1.15452 0 + vertex 20.9081 -2.19366 -3 + vertex 20.9081 -2.19366 0 endloop endfacet - facet normal 0.72955 0.683927 0 + facet normal -0.856849 0.515568 0 outer loop - vertex 22.3515 20.2895 0 - vertex 22.2213 20.4283 -0.2 - vertex 22.2213 20.4283 0 + vertex 20.4179 -3.0084 -3 + vertex 20.9081 -2.19366 0 + vertex 20.9081 -2.19366 -3 endloop endfacet - facet normal 0.72955 0.683927 0 + facet normal -0.856849 0.515568 0 outer loop - vertex 22.2213 20.4283 -0.2 - vertex 22.3515 20.2895 0 - vertex 22.3515 20.2895 -0.2 + vertex 20.9081 -2.19366 0 + vertex 20.4179 -3.0084 -3 + vertex 20.4179 -3.0084 0 endloop endfacet - facet normal 0.787511 0.616301 0 + facet normal -0.631353 0.775495 0 outer loop - vertex 22.2213 20.4283 0 - vertex 22.1028 20.5797 -0.2 - vertex 22.1028 20.5797 0 + vertex 20.4179 -3.0084 -3 + vertex 19.4334 -3.80993 0 + vertex 20.4179 -3.0084 0 endloop endfacet - facet normal 0.787511 0.616301 0 + facet normal -0.631353 0.775495 0 outer loop - vertex 22.1028 20.5797 -0.2 - vertex 22.2213 20.4283 0 - vertex 22.2213 20.4283 -0.2 + vertex 19.4334 -3.80993 0 + vertex 20.4179 -3.0084 -3 + vertex 19.4334 -3.80993 -3 endloop endfacet - facet normal 0.859714 0.510776 0 + facet normal -0.513213 0.858261 0 outer loop - vertex 22.1028 20.5797 0 - vertex 21.8989 20.9229 -0.2 - vertex 21.8989 20.9229 0 + vertex 19.4334 -3.80993 -3 + vertex 17.7619 -4.80944 0 + vertex 19.4334 -3.80993 0 endloop endfacet - facet normal 0.859714 0.510776 0 + facet normal -0.513213 0.858261 0 outer loop - vertex 21.8989 20.9229 -0.2 - vertex 22.1028 20.5797 0 - vertex 22.1028 20.5797 -0.2 + vertex 17.7619 -4.80944 0 + vertex 19.4334 -3.80993 -3 + vertex 17.7619 -4.80944 -3 endloop endfacet - facet normal 0.926661 0.375897 0 + facet normal -0.460069 0.887883 0 outer loop - vertex 21.8989 20.9229 0 - vertex 21.7362 21.3239 -0.2 - vertex 21.7362 21.3239 0 + vertex 17.7619 -4.80944 -3 + vertex 15.0012 -6.23992 0 + vertex 17.7619 -4.80944 0 endloop endfacet - facet normal 0.926661 0.375897 0 + facet normal -0.460069 0.887883 0 outer loop - vertex 21.7362 21.3239 -0.2 - vertex 21.8989 20.9229 0 - vertex 21.8989 20.9229 -0.2 + vertex 15.0012 -6.23992 0 + vertex 17.7619 -4.80944 -3 + vertex 15.0012 -6.23992 -3 endloop endfacet - facet normal 0.965497 0.260414 0 + facet normal -0.358805 0.933413 0 outer loop - vertex 21.7362 21.3239 0 - vertex 21.6111 21.7881 -0.2 - vertex 21.6111 21.7881 0 + vertex 15.0012 -6.23992 -3 + vertex 12.6103 -7.15898 0 + vertex 15.0012 -6.23992 0 endloop endfacet - facet normal 0.965497 0.260414 0 + facet normal -0.358805 0.933413 0 outer loop - vertex 21.6111 21.7881 -0.2 - vertex 21.7362 21.3239 0 - vertex 21.7362 21.3239 -0.2 + vertex 12.6103 -7.15898 0 + vertex 15.0012 -6.23992 -3 + vertex 12.6103 -7.15898 -3 endloop endfacet - facet normal 0.985599 0.169101 0 + facet normal -0.211321 0.977417 0 outer loop - vertex 21.6111 21.7881 0 - vertex 21.5197 22.3204 -0.2 - vertex 21.5197 22.3204 0 + vertex 12.6103 -7.15898 -3 + vertex 10.2421 -7.67101 0 + vertex 12.6103 -7.15898 0 endloop endfacet - facet normal 0.985599 0.169101 0 + facet normal -0.211321 0.977417 0 outer loop - vertex 21.5197 22.3204 -0.2 - vertex 21.6111 21.7881 0 - vertex 21.6111 21.7881 -0.2 + vertex 10.2421 -7.67101 0 + vertex 12.6103 -7.15898 -3 + vertex 10.2421 -7.67101 -3 endloop endfacet - facet normal 0.981389 0.192031 0 + facet normal -0.0775281 0.99699 0 outer loop - vertex 21.5197 22.3204 0 - vertex 21.4205 22.8275 -0.2 - vertex 21.4205 22.8275 0 + vertex 10.2421 -7.67101 -3 + vertex 7.54923 -7.88041 0 + vertex 10.2421 -7.67101 0 endloop endfacet - facet normal 0.981389 0.192031 0 + facet normal -0.0775281 0.99699 0 outer loop - vertex 21.4205 22.8275 -0.2 - vertex 21.5197 22.3204 0 - vertex 21.5197 22.3204 -0.2 + vertex 7.54923 -7.88041 0 + vertex 10.2421 -7.67101 -3 + vertex 7.54923 -7.88041 -3 endloop endfacet - facet normal 0.957484 0.288485 0 + facet normal -0.00181695 0.999998 0 outer loop - vertex 21.4205 22.8275 0 - vertex 21.3493 23.064 -0.2 - vertex 21.3493 23.064 0 + vertex 7.54923 -7.88041 -3 + vertex 5.03167 -7.88498 0 + vertex 7.54923 -7.88041 0 endloop endfacet - facet normal 0.957484 0.288485 0 + facet normal -0.00181695 0.999998 0 outer loop - vertex 21.3493 23.064 -0.2 - vertex 21.4205 22.8275 0 - vertex 21.4205 22.8275 -0.2 + vertex 5.03167 -7.88498 0 + vertex 7.54923 -7.88041 -3 + vertex 5.03167 -7.88498 -3 endloop endfacet - facet normal 0.934507 0.355946 0 + facet normal 0.239055 0.971006 -0 outer loop - vertex 21.3493 23.064 0 - vertex 21.2635 23.2891 -0.2 - vertex 21.2635 23.2891 0 + vertex 5.03167 -7.88498 -3 + vertex 3.854 -7.59505 0 + vertex 5.03167 -7.88498 0 endloop endfacet - facet normal 0.934507 0.355946 0 + facet normal 0.239055 0.971006 0 outer loop - vertex 21.2635 23.2891 -0.2 - vertex 21.3493 23.064 0 - vertex 21.3493 23.064 -0.2 + vertex 3.854 -7.59505 0 + vertex 5.03167 -7.88498 -3 + vertex 3.854 -7.59505 -3 endloop endfacet - facet normal 0.905346 0.424674 0 + facet normal 0.512147 0.858898 -0 outer loop - vertex 21.2635 23.2891 0 - vertex 21.1632 23.503 -0.2 - vertex 21.1632 23.503 0 + vertex 3.854 -7.59505 -3 + vertex 1.04019 -5.91722 0 + vertex 3.854 -7.59505 0 endloop endfacet - facet normal 0.905346 0.424674 0 + facet normal 0.512147 0.858898 0 outer loop - vertex 21.1632 23.503 -0.2 - vertex 21.2635 23.2891 0 - vertex 21.2635 23.2891 -0.2 + vertex 1.04019 -5.91722 0 + vertex 3.854 -7.59505 -3 + vertex 1.04019 -5.91722 -3 endloop endfacet - facet normal 0.869841 0.493332 0 + facet normal 0.520307 0.85398 -0 outer loop - vertex 21.1632 23.503 0 - vertex 21.0482 23.7058 -0.2 - vertex 21.0482 23.7058 0 + vertex 1.04019 -5.91722 -3 + vertex -2.05653 -4.03047 0 + vertex 1.04019 -5.91722 0 endloop endfacet - facet normal 0.869841 0.493332 0 + facet normal 0.520307 0.85398 0 outer loop - vertex 21.0482 23.7058 -0.2 - vertex 21.1632 23.503 0 - vertex 21.1632 23.503 -0.2 + vertex -2.05653 -4.03047 0 + vertex 1.04019 -5.91722 -3 + vertex -2.05653 -4.03047 -3 endloop endfacet - facet normal 0.828197 0.560437 0 + facet normal 0.582306 0.812969 -0 outer loop - vertex 21.0482 23.7058 0 - vertex 20.9184 23.8976 -0.2 - vertex 20.9184 23.8976 0 + vertex -2.05653 -4.03047 -3 + vertex -3.45272 -3.03042 0 + vertex -2.05653 -4.03047 0 endloop endfacet - facet normal 0.828197 0.560437 0 + facet normal 0.582306 0.812969 0 outer loop - vertex 20.9184 23.8976 -0.2 - vertex 21.0482 23.7058 0 - vertex 21.0482 23.7058 -0.2 + vertex -3.45272 -3.03042 0 + vertex -2.05653 -4.03047 -3 + vertex -3.45272 -3.03042 -3 endloop endfacet - facet normal 0.781014 0.624513 0 + facet normal 0.814407 0.580294 0 outer loop - vertex 20.9184 23.8976 0 - vertex 20.7738 24.0784 -0.2 - vertex 20.7738 24.0784 0 + vertex -3.45272 -3.03042 0 + vertex -3.71458 -2.66291 -3 + vertex -3.71458 -2.66291 0 endloop endfacet - facet normal 0.781014 0.624513 0 + facet normal 0.814407 0.580294 0 outer loop - vertex 20.7738 24.0784 -0.2 - vertex 20.9184 23.8976 0 - vertex 20.9184 23.8976 -0.2 + vertex -3.71458 -2.66291 -3 + vertex -3.45272 -3.03042 0 + vertex -3.45272 -3.03042 -3 endloop endfacet - facet normal 0.729218 0.684281 0 + facet normal 0.667074 -0.744991 0 outer loop - vertex 20.7738 24.0784 0 - vertex 20.6143 24.2484 -0.2 - vertex 20.6143 24.2484 0 + vertex -3.71458 -2.66291 -3 + vertex -3.55278 -2.51803 0 + vertex -3.71458 -2.66291 0 endloop endfacet - facet normal 0.729218 0.684281 0 + facet normal 0.667074 -0.744991 0 outer loop - vertex 20.6143 24.2484 -0.2 - vertex 20.7738 24.0784 0 - vertex 20.7738 24.0784 -0.2 + vertex -3.55278 -2.51803 0 + vertex -3.71458 -2.66291 -3 + vertex -3.55278 -2.51803 -3 endloop endfacet - facet normal 0.674059 0.738677 -0 + facet normal -0.396625 -0.917981 0 outer loop - vertex 20.6143 24.2484 -0.2 - vertex 20.4398 24.4076 0 - vertex 20.6143 24.2484 0 + vertex -3.55278 -2.51803 -3 + vertex -1.72768 -3.30659 0 + vertex -3.55278 -2.51803 0 endloop endfacet - facet normal 0.674059 0.738677 0 + facet normal -0.396625 -0.917981 -0 outer loop - vertex 20.4398 24.4076 0 - vertex 20.6143 24.2484 -0.2 - vertex 20.4398 24.4076 -0.2 + vertex -1.72768 -3.30659 0 + vertex -3.55278 -2.51803 -3 + vertex -1.72768 -3.30659 -3 endloop endfacet - facet normal 0.616853 0.787078 -0 + facet normal -0.417951 -0.90847 0 outer loop - vertex 20.4398 24.4076 -0.2 - vertex 20.2502 24.5562 0 - vertex 20.4398 24.4076 0 + vertex -1.72768 -3.30659 -3 + vertex 1.09298 -4.60426 0 + vertex -1.72768 -3.30659 0 endloop endfacet - facet normal 0.616853 0.787078 0 + facet normal -0.417951 -0.90847 -0 outer loop - vertex 20.2502 24.5562 0 - vertex 20.4398 24.4076 -0.2 - vertex 20.2502 24.5562 -0.2 + vertex 1.09298 -4.60426 0 + vertex -1.72768 -3.30659 -3 + vertex 1.09298 -4.60426 -3 endloop endfacet - facet normal 0.558944 0.829206 -0 + facet normal -0.324179 -0.945996 0 outer loop - vertex 20.2502 24.5562 -0.2 - vertex 20.0455 24.6942 0 - vertex 20.2502 24.5562 0 + vertex 1.09298 -4.60426 -3 + vertex 3.9592 -5.58648 0 + vertex 1.09298 -4.60426 0 endloop endfacet - facet normal 0.558944 0.829206 0 + facet normal -0.324179 -0.945996 -0 outer loop - vertex 20.0455 24.6942 0 - vertex 20.2502 24.5562 -0.2 - vertex 20.0455 24.6942 -0.2 + vertex 3.9592 -5.58648 0 + vertex 1.09298 -4.60426 -3 + vertex 3.9592 -5.58648 -3 endloop endfacet - facet normal 0.473385 0.880855 -0 + facet normal -0.208038 -0.978121 0 outer loop - vertex 20.0455 24.6942 -0.2 - vertex 19.5904 24.9388 0 - vertex 20.0455 24.6942 0 + vertex 3.9592 -5.58648 -3 + vertex 5.81183 -5.98051 0 + vertex 3.9592 -5.58648 0 endloop endfacet - facet normal 0.473385 0.880855 0 + facet normal -0.208038 -0.978121 -0 outer loop - vertex 19.5904 24.9388 0 - vertex 20.0455 24.6942 -0.2 - vertex 19.5904 24.9388 -0.2 + vertex 5.81183 -5.98051 0 + vertex 3.9592 -5.58648 -3 + vertex 5.81183 -5.98051 -3 endloop endfacet - facet normal 0.366293 0.930499 -0 + facet normal 0.0684734 -0.997653 0 outer loop - vertex 19.5904 24.9388 -0.2 - vertex 19.0737 25.1422 0 - vertex 19.5904 24.9388 0 + vertex 5.81183 -5.98051 -3 + vertex 7.21237 -5.88439 0 + vertex 5.81183 -5.98051 0 endloop endfacet - facet normal 0.366293 0.930499 0 + facet normal 0.0684734 -0.997653 0 outer loop - vertex 19.0737 25.1422 0 - vertex 19.5904 24.9388 -0.2 - vertex 19.0737 25.1422 -0.2 + vertex 7.21237 -5.88439 0 + vertex 5.81183 -5.98051 -3 + vertex 7.21237 -5.88439 -3 endloop endfacet - facet normal 0.339314 0.940673 -0 + facet normal 0.219818 -0.975541 0 outer loop - vertex 19.0737 25.1422 -0.2 - vertex 18.5685 25.3244 0 - vertex 19.0737 25.1422 0 + vertex 7.21237 -5.88439 -3 + vertex 7.79727 -5.75259 0 + vertex 7.21237 -5.88439 0 endloop endfacet - facet normal 0.339314 0.940673 0 + facet normal 0.219818 -0.975541 0 outer loop - vertex 18.5685 25.3244 0 - vertex 19.0737 25.1422 -0.2 - vertex 18.5685 25.3244 -0.2 - endloop - endfacet - facet normal 0.390266 0.920702 -0 - outer loop - vertex 18.5685 25.3244 -0.2 - vertex 18.1033 25.5216 0 - vertex 18.5685 25.3244 0 - endloop - endfacet - facet normal 0.390266 0.920702 0 - outer loop - vertex 18.1033 25.5216 0 - vertex 18.5685 25.3244 -0.2 - vertex 18.1033 25.5216 -0.2 - endloop - endfacet - facet normal 0.448214 0.893926 -0 - outer loop - vertex 18.1033 25.5216 -0.2 - vertex 17.6707 25.7385 0 - vertex 18.1033 25.5216 0 - endloop - endfacet - facet normal 0.448214 0.893926 0 - outer loop - vertex 17.6707 25.7385 0 - vertex 18.1033 25.5216 -0.2 - vertex 17.6707 25.7385 -0.2 - endloop - endfacet - facet normal 0.509711 0.860346 -0 - outer loop - vertex 17.6707 25.7385 -0.2 - vertex 17.2631 25.98 0 - vertex 17.6707 25.7385 0 - endloop - endfacet - facet normal 0.509711 0.860346 0 - outer loop - vertex 17.2631 25.98 0 - vertex 17.6707 25.7385 -0.2 - vertex 17.2631 25.98 -0.2 - endloop - endfacet - facet normal 0.570375 0.821384 -0 - outer loop - vertex 17.2631 25.98 -0.2 - vertex 16.873 26.2508 0 - vertex 17.2631 25.98 0 - endloop - endfacet - facet normal 0.570375 0.821384 0 - outer loop - vertex 16.873 26.2508 0 - vertex 17.2631 25.98 -0.2 - vertex 16.873 26.2508 -0.2 - endloop - endfacet - facet normal 0.626027 0.779801 -0 - outer loop - vertex 16.873 26.2508 -0.2 - vertex 16.4932 26.5558 0 - vertex 16.873 26.2508 0 - endloop - endfacet - facet normal 0.626027 0.779801 0 - outer loop - vertex 16.4932 26.5558 0 - vertex 16.873 26.2508 -0.2 - vertex 16.4932 26.5558 -0.2 - endloop - endfacet - facet normal 0.673725 0.738983 -0 - outer loop - vertex 16.4932 26.5558 -0.2 - vertex 16.116 26.8997 0 - vertex 16.4932 26.5558 0 - endloop - endfacet - facet normal 0.673725 0.738983 0 - outer loop - vertex 16.116 26.8997 0 - vertex 16.4932 26.5558 -0.2 - vertex 16.116 26.8997 -0.2 - endloop - endfacet - facet normal 0.71226 0.701916 0 - outer loop - vertex 16.116 26.8997 0 - vertex 15.734 27.2872 -0.2 - vertex 15.734 27.2872 0 - endloop - endfacet - facet normal 0.71226 0.701916 0 - outer loop - vertex 15.734 27.2872 -0.2 - vertex 16.116 26.8997 0 - vertex 16.116 26.8997 -0.2 - endloop - endfacet - facet normal 0.751608 0.65961 0 - outer loop - vertex 15.734 27.2872 0 - vertex 15.344 27.7317 -0.2 - vertex 15.344 27.7317 0 - endloop - endfacet - facet normal 0.751608 0.65961 0 - outer loop - vertex 15.344 27.7317 -0.2 - vertex 15.734 27.2872 0 - vertex 15.734 27.2872 -0.2 - endloop - endfacet - facet normal 0.827441 0.561552 0 - outer loop - vertex 15.344 27.7317 0 - vertex 15.2193 27.9155 -0.2 - vertex 15.2193 27.9155 0 - endloop - endfacet - facet normal 0.827441 0.561552 0 - outer loop - vertex 15.2193 27.9155 -0.2 - vertex 15.344 27.7317 0 - vertex 15.344 27.7317 -0.2 - endloop - endfacet - facet normal 0.901872 0.432003 0 - outer loop - vertex 15.2193 27.9155 0 - vertex 15.1337 28.0941 -0.2 - vertex 15.1337 28.0941 0 - endloop - endfacet - facet normal 0.901872 0.432003 0 - outer loop - vertex 15.1337 28.0941 -0.2 - vertex 15.2193 27.9155 0 - vertex 15.2193 27.9155 -0.2 - endloop - endfacet - facet normal 0.963972 0.266005 0 - outer loop - vertex 15.1337 28.0941 0 - vertex 15.0817 28.2827 -0.2 - vertex 15.0817 28.2827 0 - endloop - endfacet - facet normal 0.963972 0.266005 0 - outer loop - vertex 15.0817 28.2827 -0.2 - vertex 15.1337 28.0941 0 - vertex 15.1337 28.0941 -0.2 - endloop - endfacet - facet normal 0.993628 0.112714 0 - outer loop - vertex 15.0817 28.2827 0 - vertex 15.0574 28.4965 -0.2 - vertex 15.0574 28.4965 0 - endloop - endfacet - facet normal 0.993628 0.112714 0 - outer loop - vertex 15.0574 28.4965 -0.2 - vertex 15.0817 28.2827 0 - vertex 15.0817 28.2827 -0.2 - endloop - endfacet - facet normal 0.999963 0.00862244 0 - outer loop - vertex 15.0574 28.4965 0 - vertex 15.0552 28.7509 -0.2 - vertex 15.0552 28.7509 0 - endloop - endfacet - facet normal 0.999963 0.00862244 0 - outer loop - vertex 15.0552 28.7509 -0.2 - vertex 15.0574 28.4965 0 - vertex 15.0574 28.4965 -0.2 - endloop - endfacet - facet normal 0.99896 -0.0455854 0 - outer loop - vertex 15.0552 28.7509 0 - vertex 15.0694 29.0611 -0.2 - vertex 15.0694 29.0611 0 - endloop - endfacet - facet normal 0.99896 -0.0455854 0 - outer loop - vertex 15.0694 29.0611 -0.2 - vertex 15.0552 28.7509 0 - vertex 15.0552 28.7509 -0.2 - endloop - endfacet - facet normal 0.995626 -0.0934289 0 - outer loop - vertex 15.0694 29.0611 0 - vertex 15.1102 29.496 -0.2 - vertex 15.1102 29.496 0 - endloop - endfacet - facet normal 0.995626 -0.0934289 0 - outer loop - vertex 15.1102 29.496 -0.2 - vertex 15.0694 29.0611 0 - vertex 15.0694 29.0611 -0.2 - endloop - endfacet - facet normal 0.982507 -0.186226 0 - outer loop - vertex 15.1102 29.496 0 - vertex 15.1701 29.8123 -0.2 - vertex 15.1701 29.8123 0 - endloop - endfacet - facet normal 0.982507 -0.186226 0 - outer loop - vertex 15.1701 29.8123 -0.2 - vertex 15.1102 29.496 0 - vertex 15.1102 29.496 -0.2 - endloop - endfacet - facet normal 0.936612 -0.350368 0 - outer loop - vertex 15.1701 29.8123 0 - vertex 15.2437 30.0088 -0.2 - vertex 15.2437 30.0088 0 - endloop - endfacet - facet normal 0.936612 -0.350368 0 - outer loop - vertex 15.2437 30.0088 -0.2 - vertex 15.1701 29.8123 0 - vertex 15.1701 29.8123 -0.2 - endloop - endfacet - facet normal 0.797615 -0.603167 0 - outer loop - vertex 15.2437 30.0088 0 - vertex 15.2838 30.0618 -0.2 - vertex 15.2838 30.0618 0 - endloop - endfacet - facet normal 0.797615 -0.603167 0 - outer loop - vertex 15.2838 30.0618 -0.2 - vertex 15.2437 30.0088 0 - vertex 15.2437 30.0088 -0.2 - endloop - endfacet - facet normal 0.48104 -0.876698 0 - outer loop - vertex 15.2838 30.0618 -0.2 - vertex 15.3252 30.0845 0 - vertex 15.2838 30.0618 0 - endloop - endfacet - facet normal 0.48104 -0.876698 0 - outer loop - vertex 15.3252 30.0845 0 - vertex 15.2838 30.0618 -0.2 - vertex 15.3252 30.0845 -0.2 - endloop - endfacet - facet normal -0.180566 -0.983563 0 - outer loop - vertex 15.3252 30.0845 -0.2 - vertex 15.3672 30.0768 0 - vertex 15.3252 30.0845 0 - endloop - endfacet - facet normal -0.180566 -0.983563 -0 - outer loop - vertex 15.3672 30.0768 0 - vertex 15.3252 30.0845 -0.2 - vertex 15.3672 30.0768 -0.2 - endloop - endfacet - facet normal -0.674079 -0.738659 0 - outer loop - vertex 15.3672 30.0768 -0.2 - vertex 15.4091 30.0386 0 - vertex 15.3672 30.0768 0 - endloop - endfacet - facet normal -0.674079 -0.738659 -0 - outer loop - vertex 15.4091 30.0386 0 - vertex 15.3672 30.0768 -0.2 - vertex 15.4091 30.0386 -0.2 - endloop - endfacet - facet normal -0.901794 -0.432166 0 - outer loop - vertex 15.49 29.8698 -0.2 - vertex 15.4091 30.0386 0 - vertex 15.4091 30.0386 -0.2 - endloop - endfacet - facet normal -0.901794 -0.432166 0 - outer loop - vertex 15.4091 30.0386 0 - vertex 15.49 29.8698 -0.2 - vertex 15.49 29.8698 0 - endloop - endfacet - facet normal -0.970859 -0.239653 0 - outer loop - vertex 15.5622 29.5773 -0.2 - vertex 15.49 29.8698 0 - vertex 15.49 29.8698 -0.2 - endloop - endfacet - facet normal -0.970859 -0.239653 0 - outer loop - vertex 15.49 29.8698 0 - vertex 15.5622 29.5773 -0.2 - vertex 15.5622 29.5773 0 - endloop - endfacet - facet normal -0.990483 -0.137635 0 - outer loop - vertex 15.6202 29.1601 -0.2 - vertex 15.5622 29.5773 0 - vertex 15.5622 29.5773 -0.2 - endloop - endfacet - facet normal -0.990483 -0.137635 0 - outer loop - vertex 15.5622 29.5773 0 - vertex 15.6202 29.1601 -0.2 - vertex 15.6202 29.1601 0 - endloop - endfacet - facet normal -0.987242 -0.159229 0 - outer loop - vertex 15.6927 28.7106 -0.2 - vertex 15.6202 29.1601 0 - vertex 15.6202 29.1601 -0.2 - endloop - endfacet - facet normal -0.987242 -0.159229 0 - outer loop - vertex 15.6202 29.1601 0 - vertex 15.6927 28.7106 -0.2 - vertex 15.6927 28.7106 0 - endloop - endfacet - facet normal -0.964764 -0.263116 0 - outer loop - vertex 15.7487 28.5051 -0.2 - vertex 15.6927 28.7106 0 - vertex 15.6927 28.7106 -0.2 - endloop - endfacet - facet normal -0.964764 -0.263116 0 - outer loop - vertex 15.6927 28.7106 0 - vertex 15.7487 28.5051 -0.2 - vertex 15.7487 28.5051 0 - endloop - endfacet - facet normal -0.93932 -0.343042 0 - outer loop - vertex 15.8197 28.3106 -0.2 - vertex 15.7487 28.5051 0 - vertex 15.7487 28.5051 -0.2 - endloop - endfacet - facet normal -0.93932 -0.343042 0 - outer loop - vertex 15.7487 28.5051 0 - vertex 15.8197 28.3106 -0.2 - vertex 15.8197 28.3106 0 - endloop - endfacet - facet normal -0.904159 -0.427196 0 - outer loop - vertex 15.9071 28.1258 -0.2 - vertex 15.8197 28.3106 0 - vertex 15.8197 28.3106 -0.2 - endloop - endfacet - facet normal -0.904159 -0.427196 0 - outer loop - vertex 15.8197 28.3106 0 - vertex 15.9071 28.1258 -0.2 - vertex 15.9071 28.1258 0 - endloop - endfacet - facet normal -0.859613 -0.510945 0 - outer loop - vertex 16.0121 27.9491 -0.2 - vertex 15.9071 28.1258 0 - vertex 15.9071 28.1258 -0.2 - endloop - endfacet - facet normal -0.859613 -0.510945 0 - outer loop - vertex 15.9071 28.1258 0 - vertex 16.0121 27.9491 -0.2 - vertex 16.0121 27.9491 0 - endloop - endfacet - facet normal -0.807674 -0.589629 0 - outer loop - vertex 16.1362 27.7792 -0.2 - vertex 16.0121 27.9491 0 - vertex 16.0121 27.9491 -0.2 - endloop - endfacet - facet normal -0.807674 -0.589629 0 - outer loop - vertex 16.0121 27.9491 0 - vertex 16.1362 27.7792 -0.2 - vertex 16.1362 27.7792 0 - endloop - endfacet - facet normal -0.751613 -0.659605 0 - outer loop - vertex 16.2806 27.6146 -0.2 - vertex 16.1362 27.7792 0 - vertex 16.1362 27.7792 -0.2 - endloop - endfacet - facet normal -0.751613 -0.659605 0 - outer loop - vertex 16.1362 27.7792 0 - vertex 16.2806 27.6146 -0.2 - vertex 16.2806 27.6146 0 - endloop - endfacet - facet normal -0.695067 -0.718945 0 - outer loop - vertex 16.2806 27.6146 -0.2 - vertex 16.4467 27.454 0 - vertex 16.2806 27.6146 0 - endloop - endfacet - facet normal -0.695067 -0.718945 -0 - outer loop - vertex 16.4467 27.454 0 - vertex 16.2806 27.6146 -0.2 - vertex 16.4467 27.454 -0.2 - endloop - endfacet - facet normal -0.641168 -0.767401 0 - outer loop - vertex 16.4467 27.454 -0.2 - vertex 16.6359 27.2959 0 - vertex 16.4467 27.454 0 - endloop - endfacet - facet normal -0.641168 -0.767401 -0 - outer loop - vertex 16.6359 27.2959 0 - vertex 16.4467 27.454 -0.2 - vertex 16.6359 27.2959 -0.2 - endloop - endfacet - facet normal -0.569935 -0.82169 0 - outer loop - vertex 16.6359 27.2959 -0.2 - vertex 17.0889 26.9817 0 - vertex 16.6359 27.2959 0 - endloop - endfacet - facet normal -0.569935 -0.82169 -0 - outer loop - vertex 17.0889 26.9817 0 - vertex 16.6359 27.2959 -0.2 - vertex 17.0889 26.9817 -0.2 - endloop - endfacet - facet normal -0.496343 -0.868126 0 - outer loop - vertex 17.0889 26.9817 -0.2 - vertex 17.6504 26.6607 0 - vertex 17.0889 26.9817 0 - endloop - endfacet - facet normal -0.496343 -0.868126 -0 - outer loop - vertex 17.6504 26.6607 0 - vertex 17.0889 26.9817 -0.2 - vertex 17.6504 26.6607 -0.2 - endloop - endfacet - facet normal -0.4459 -0.895083 0 - outer loop - vertex 17.6504 26.6607 -0.2 - vertex 18.3311 26.3216 0 - vertex 17.6504 26.6607 0 - endloop - endfacet - facet normal -0.4459 -0.895083 -0 - outer loop - vertex 18.3311 26.3216 0 - vertex 17.6504 26.6607 -0.2 - vertex 18.3311 26.3216 -0.2 - endloop - endfacet - facet normal -0.437511 -0.899213 0 - outer loop - vertex 18.3311 26.3216 -0.2 - vertex 19.3729 25.8147 0 - vertex 18.3311 26.3216 0 - endloop - endfacet - facet normal -0.437511 -0.899213 -0 - outer loop - vertex 19.3729 25.8147 0 - vertex 18.3311 26.3216 -0.2 - vertex 19.3729 25.8147 -0.2 - endloop - endfacet - facet normal -0.473558 -0.880763 0 - outer loop - vertex 19.3729 25.8147 -0.2 - vertex 20.1936 25.3734 0 - vertex 19.3729 25.8147 0 - endloop - endfacet - facet normal -0.473558 -0.880763 -0 - outer loop - vertex 20.1936 25.3734 0 - vertex 19.3729 25.8147 -0.2 - vertex 20.1936 25.3734 -0.2 - endloop - endfacet - facet normal -0.521003 -0.853555 0 - outer loop - vertex 20.1936 25.3734 -0.2 - vertex 20.53 25.168 0 - vertex 20.1936 25.3734 0 - endloop - endfacet - facet normal -0.521003 -0.853555 -0 - outer loop - vertex 20.53 25.168 0 - vertex 20.1936 25.3734 -0.2 - vertex 20.53 25.168 -0.2 - endloop - endfacet - facet normal -0.565431 -0.824796 0 - outer loop - vertex 20.53 25.168 -0.2 - vertex 20.8221 24.9679 0 - vertex 20.53 25.168 0 - endloop - endfacet - facet normal -0.565431 -0.824796 -0 - outer loop - vertex 20.8221 24.9679 0 - vertex 20.53 25.168 -0.2 - vertex 20.8221 24.9679 -0.2 - endloop - endfacet - facet normal -0.620484 -0.784219 0 - outer loop - vertex 20.8221 24.9679 -0.2 - vertex 21.0733 24.7691 0 - vertex 20.8221 24.9679 0 - endloop - endfacet - facet normal -0.620484 -0.784219 -0 - outer loop - vertex 21.0733 24.7691 0 - vertex 20.8221 24.9679 -0.2 - vertex 21.0733 24.7691 -0.2 - endloop - endfacet - facet normal -0.684731 -0.728796 0 - outer loop - vertex 21.0733 24.7691 -0.2 - vertex 21.2873 24.568 0 - vertex 21.0733 24.7691 0 - endloop - endfacet - facet normal -0.684731 -0.728796 -0 - outer loop - vertex 21.2873 24.568 0 - vertex 21.0733 24.7691 -0.2 - vertex 21.2873 24.568 -0.2 - endloop - endfacet - facet normal -0.754027 -0.656843 0 - outer loop - vertex 21.4677 24.3609 -0.2 - vertex 21.2873 24.568 0 - vertex 21.2873 24.568 -0.2 - endloop - endfacet - facet normal -0.754027 -0.656843 0 - outer loop - vertex 21.2873 24.568 0 - vertex 21.4677 24.3609 -0.2 - vertex 21.4677 24.3609 0 - endloop - endfacet - facet normal -0.821674 -0.569958 0 - outer loop - vertex 21.6182 24.144 -0.2 - vertex 21.4677 24.3609 0 - vertex 21.4677 24.3609 -0.2 - endloop - endfacet - facet normal -0.821674 -0.569958 0 - outer loop - vertex 21.4677 24.3609 0 - vertex 21.6182 24.144 -0.2 - vertex 21.6182 24.144 0 - endloop - endfacet - facet normal -0.880428 -0.47418 0 - outer loop - vertex 21.7423 23.9135 -0.2 - vertex 21.6182 24.144 0 - vertex 21.6182 24.144 -0.2 - endloop - endfacet - facet normal -0.880428 -0.47418 0 - outer loop - vertex 21.6182 24.144 0 - vertex 21.7423 23.9135 -0.2 - vertex 21.7423 23.9135 0 - endloop - endfacet - facet normal -0.925485 -0.378785 0 - outer loop - vertex 21.8437 23.6658 -0.2 - vertex 21.7423 23.9135 0 - vertex 21.7423 23.9135 -0.2 - endloop - endfacet - facet normal -0.925485 -0.378785 0 - outer loop - vertex 21.7423 23.9135 0 - vertex 21.8437 23.6658 -0.2 - vertex 21.8437 23.6658 0 - endloop - endfacet - facet normal -0.956187 -0.292757 0 - outer loop - vertex 21.926 23.397 -0.2 - vertex 21.8437 23.6658 0 - vertex 21.8437 23.6658 -0.2 - endloop - endfacet - facet normal -0.956187 -0.292757 0 - outer loop - vertex 21.8437 23.6658 0 - vertex 21.926 23.397 -0.2 - vertex 21.926 23.397 0 - endloop - endfacet - facet normal -0.975069 -0.221901 0 - outer loop - vertex 21.9928 23.1034 -0.2 - vertex 21.926 23.397 0 - vertex 21.926 23.397 -0.2 - endloop - endfacet - facet normal -0.975069 -0.221901 0 - outer loop - vertex 21.926 23.397 0 - vertex 21.9928 23.1034 -0.2 - vertex 21.9928 23.1034 0 - endloop - endfacet - facet normal -0.988902 -0.14857 0 - outer loop - vertex 22.0944 22.427 -0.2 - vertex 21.9928 23.1034 0 - vertex 21.9928 23.1034 -0.2 - endloop - endfacet - facet normal -0.988902 -0.14857 0 - outer loop - vertex 21.9928 23.1034 0 - vertex 22.0944 22.427 -0.2 - vertex 22.0944 22.427 0 - endloop - endfacet - facet normal -0.986323 -0.164825 0 - outer loop - vertex 22.1689 21.9813 -0.2 - vertex 22.0944 22.427 0 - vertex 22.0944 22.427 -0.2 - endloop - endfacet - facet normal -0.986323 -0.164825 0 - outer loop - vertex 22.0944 22.427 0 - vertex 22.1689 21.9813 -0.2 - vertex 22.1689 21.9813 0 - endloop - endfacet - facet normal -0.960165 -0.279433 0 - outer loop - vertex 22.2815 21.5943 -0.2 - vertex 22.1689 21.9813 0 - vertex 22.1689 21.9813 -0.2 - endloop - endfacet - facet normal -0.960165 -0.279433 0 - outer loop - vertex 22.1689 21.9813 0 - vertex 22.2815 21.5943 -0.2 - vertex 22.2815 21.5943 0 - endloop - endfacet - facet normal -0.907871 -0.41925 0 - outer loop - vertex 22.4341 21.2638 -0.2 - vertex 22.2815 21.5943 0 - vertex 22.2815 21.5943 -0.2 - endloop - endfacet - facet normal -0.907871 -0.41925 0 - outer loop - vertex 22.2815 21.5943 0 - vertex 22.4341 21.2638 -0.2 - vertex 22.4341 21.2638 0 - endloop - endfacet - facet normal -0.817597 -0.575791 0 - outer loop - vertex 22.6286 20.9877 -0.2 - vertex 22.4341 21.2638 0 - vertex 22.4341 21.2638 -0.2 - endloop - endfacet - facet normal -0.817597 -0.575791 0 - outer loop - vertex 22.4341 21.2638 0 - vertex 22.6286 20.9877 -0.2 - vertex 22.6286 20.9877 0 - endloop - endfacet - facet normal -0.721714 -0.692192 0 - outer loop - vertex 22.7421 20.8693 -0.2 - vertex 22.6286 20.9877 0 - vertex 22.6286 20.9877 -0.2 - endloop - endfacet - facet normal -0.721714 -0.692192 0 - outer loop - vertex 22.6286 20.9877 0 - vertex 22.7421 20.8693 -0.2 - vertex 22.7421 20.8693 0 - endloop - endfacet - facet normal -0.646202 -0.763167 0 - outer loop - vertex 22.7421 20.8693 -0.2 - vertex 22.8668 20.7638 0 - vertex 22.7421 20.8693 0 - endloop - endfacet - facet normal -0.646202 -0.763167 -0 - outer loop - vertex 22.8668 20.7638 0 - vertex 22.7421 20.8693 -0.2 - vertex 22.8668 20.7638 -0.2 - endloop - endfacet - facet normal -0.522339 -0.852738 0 - outer loop - vertex 22.8668 20.7638 -0.2 - vertex 23.1504 20.59 0 - vertex 22.8668 20.7638 0 - endloop - endfacet - facet normal -0.522339 -0.852738 -0 - outer loop - vertex 23.1504 20.59 0 - vertex 22.8668 20.7638 -0.2 - vertex 23.1504 20.59 -0.2 - endloop - endfacet - facet normal -0.355133 -0.934816 0 - outer loop - vertex 23.1504 20.59 -0.2 - vertex 23.4814 20.4643 0 - vertex 23.1504 20.59 0 - endloop - endfacet - facet normal -0.355133 -0.934816 -0 - outer loop - vertex 23.4814 20.4643 0 - vertex 23.1504 20.59 -0.2 - vertex 23.4814 20.4643 -0.2 - endloop - endfacet - facet normal -0.205594 -0.978637 0 - outer loop - vertex 23.4814 20.4643 -0.2 - vertex 23.8617 20.3844 0 - vertex 23.4814 20.4643 0 - endloop - endfacet - facet normal -0.205594 -0.978637 -0 - outer loop - vertex 23.8617 20.3844 0 - vertex 23.4814 20.4643 -0.2 - vertex 23.8617 20.3844 -0.2 - endloop - endfacet - facet normal -0.166383 -0.986061 0 - outer loop - vertex 23.8617 20.3844 -0.2 - vertex 24.2028 20.3268 0 - vertex 23.8617 20.3844 0 - endloop - endfacet - facet normal -0.166383 -0.986061 -0 - outer loop - vertex 24.2028 20.3268 0 - vertex 23.8617 20.3844 -0.2 - vertex 24.2028 20.3268 -0.2 - endloop - endfacet - facet normal -0.222634 -0.974902 0 - outer loop - vertex 24.2028 20.3268 -0.2 - vertex 24.5205 20.2543 0 - vertex 24.2028 20.3268 0 - endloop - endfacet - facet normal -0.222634 -0.974902 -0 - outer loop - vertex 24.5205 20.2543 0 - vertex 24.2028 20.3268 -0.2 - vertex 24.5205 20.2543 -0.2 - endloop - endfacet - facet normal -0.285939 -0.958248 0 - outer loop - vertex 24.5205 20.2543 -0.2 - vertex 24.8151 20.1664 0 - vertex 24.5205 20.2543 0 - endloop - endfacet - facet normal -0.285939 -0.958248 -0 - outer loop - vertex 24.8151 20.1664 0 - vertex 24.5205 20.2543 -0.2 - vertex 24.8151 20.1664 -0.2 - endloop - endfacet - facet normal -0.356177 -0.934419 0 - outer loop - vertex 24.8151 20.1664 -0.2 - vertex 25.087 20.0627 0 - vertex 24.8151 20.1664 0 - endloop - endfacet - facet normal -0.356177 -0.934419 -0 - outer loop - vertex 25.087 20.0627 0 - vertex 24.8151 20.1664 -0.2 - vertex 25.087 20.0627 -0.2 - endloop - endfacet - facet normal -0.432613 -0.90158 0 - outer loop - vertex 25.087 20.0627 -0.2 - vertex 25.3364 19.943 0 - vertex 25.087 20.0627 0 - endloop - endfacet - facet normal -0.432613 -0.90158 -0 - outer loop - vertex 25.3364 19.943 0 - vertex 25.087 20.0627 -0.2 - vertex 25.3364 19.943 -0.2 - endloop - endfacet - facet normal -0.513641 -0.858005 0 - outer loop - vertex 25.3364 19.943 -0.2 - vertex 25.5639 19.8069 0 - vertex 25.3364 19.943 0 - endloop - endfacet - facet normal -0.513641 -0.858005 -0 - outer loop - vertex 25.5639 19.8069 0 - vertex 25.3364 19.943 -0.2 - vertex 25.5639 19.8069 -0.2 - endloop - endfacet - facet normal -0.59661 -0.802531 0 - outer loop - vertex 25.5639 19.8069 -0.2 - vertex 25.7697 19.6539 0 - vertex 25.5639 19.8069 0 - endloop - endfacet - facet normal -0.59661 -0.802531 -0 - outer loop - vertex 25.7697 19.6539 0 - vertex 25.5639 19.8069 -0.2 - vertex 25.7697 19.6539 -0.2 - endloop - endfacet - facet normal -0.678036 -0.735029 0 - outer loop - vertex 25.7697 19.6539 -0.2 - vertex 25.9541 19.4837 0 - vertex 25.7697 19.6539 0 - endloop - endfacet - facet normal -0.678036 -0.735029 -0 - outer loop - vertex 25.9541 19.4837 0 - vertex 25.7697 19.6539 -0.2 - vertex 25.9541 19.4837 -0.2 - endloop - endfacet - facet normal -0.75405 -0.656818 0 - outer loop - vertex 26.1176 19.296 -0.2 - vertex 25.9541 19.4837 0 - vertex 25.9541 19.4837 -0.2 - endloop - endfacet - facet normal -0.75405 -0.656818 0 - outer loop - vertex 25.9541 19.4837 0 - vertex 26.1176 19.296 -0.2 - vertex 26.1176 19.296 0 - endloop - endfacet - facet normal -0.821173 -0.570679 0 - outer loop - vertex 26.2605 19.0904 -0.2 - vertex 26.1176 19.296 0 - vertex 26.1176 19.296 -0.2 - endloop - endfacet - facet normal -0.821173 -0.570679 0 - outer loop - vertex 26.1176 19.296 0 - vertex 26.2605 19.0904 -0.2 - vertex 26.2605 19.0904 0 - endloop - endfacet - facet normal -0.877038 -0.480422 0 - outer loop - vertex 26.3832 18.8665 -0.2 - vertex 26.2605 19.0904 0 - vertex 26.2605 19.0904 -0.2 - endloop - endfacet - facet normal -0.877038 -0.480422 0 - outer loop - vertex 26.2605 19.0904 0 - vertex 26.3832 18.8665 -0.2 - vertex 26.3832 18.8665 0 - endloop - endfacet - facet normal -0.920777 -0.390089 0 - outer loop - vertex 26.4859 18.624 -0.2 - vertex 26.3832 18.8665 0 - vertex 26.3832 18.8665 -0.2 - endloop - endfacet - facet normal -0.920777 -0.390089 0 - outer loop - vertex 26.3832 18.8665 0 - vertex 26.4859 18.624 -0.2 - vertex 26.4859 18.624 0 - endloop - endfacet - facet normal -0.952936 -0.30317 0 - outer loop - vertex 26.5691 18.3624 -0.2 - vertex 26.4859 18.624 0 - vertex 26.4859 18.624 -0.2 - endloop - endfacet - facet normal -0.952936 -0.30317 0 - outer loop - vertex 26.4859 18.624 0 - vertex 26.5691 18.3624 -0.2 - vertex 26.5691 18.3624 0 - endloop - endfacet - facet normal -0.974998 -0.222215 0 - outer loop - vertex 26.6332 18.0815 -0.2 - vertex 26.5691 18.3624 0 - vertex 26.5691 18.3624 -0.2 - endloop - endfacet - facet normal -0.974998 -0.222215 0 - outer loop - vertex 26.5691 18.3624 0 - vertex 26.6332 18.0815 -0.2 - vertex 26.6332 18.0815 0 - endloop - endfacet - facet normal -0.98889 -0.148648 0 - outer loop - vertex 26.6784 17.7808 -0.2 - vertex 26.6332 18.0815 0 - vertex 26.6332 18.0815 -0.2 - endloop - endfacet - facet normal -0.98889 -0.148648 0 - outer loop - vertex 26.6332 18.0815 0 - vertex 26.6784 17.7808 -0.2 - vertex 26.6784 17.7808 0 - endloop - endfacet - facet normal -0.996548 -0.083019 0 - outer loop - vertex 26.7051 17.4601 -0.2 - vertex 26.6784 17.7808 0 - vertex 26.6784 17.7808 -0.2 - endloop - endfacet - facet normal -0.996548 -0.083019 0 - outer loop - vertex 26.6784 17.7808 0 - vertex 26.7051 17.4601 -0.2 - vertex 26.7051 17.4601 0 - endloop - endfacet - facet normal -0.991209 -0.132303 0 - outer loop - vertex 26.7571 17.0706 -0.2 - vertex 26.7051 17.4601 0 - vertex 26.7051 17.4601 -0.2 - endloop - endfacet - facet normal -0.991209 -0.132303 0 - outer loop - vertex 26.7051 17.4601 0 - vertex 26.7571 17.0706 -0.2 - vertex 26.7571 17.0706 0 - endloop - endfacet - facet normal -0.970274 -0.242008 0 - outer loop - vertex 26.8653 16.6367 -0.2 - vertex 26.7571 17.0706 0 - vertex 26.7571 17.0706 -0.2 - endloop - endfacet - facet normal -0.970274 -0.242008 0 - outer loop - vertex 26.7571 17.0706 0 - vertex 26.8653 16.6367 -0.2 - vertex 26.8653 16.6367 0 - endloop - endfacet - facet normal -0.944031 -0.329856 0 - outer loop - vertex 27.0139 16.2113 -0.2 - vertex 26.8653 16.6367 0 - vertex 26.8653 16.6367 -0.2 - endloop - endfacet - facet normal -0.944031 -0.329856 0 - outer loop - vertex 26.8653 16.6367 0 - vertex 27.0139 16.2113 -0.2 - vertex 27.0139 16.2113 0 - endloop - endfacet - facet normal -0.902944 -0.429757 0 - outer loop - vertex 27.1872 15.8473 -0.2 - vertex 27.0139 16.2113 0 - vertex 27.0139 16.2113 -0.2 - endloop - endfacet - facet normal -0.902944 -0.429757 0 - outer loop - vertex 27.0139 16.2113 0 - vertex 27.1872 15.8473 -0.2 - vertex 27.1872 15.8473 0 - endloop - endfacet - facet normal -0.882286 -0.470713 0 - outer loop - vertex 27.3198 15.5987 -0.2 - vertex 27.1872 15.8473 0 - vertex 27.1872 15.8473 -0.2 - endloop - endfacet - facet normal -0.882286 -0.470713 0 - outer loop - vertex 27.1872 15.8473 0 - vertex 27.3198 15.5987 -0.2 - vertex 27.3198 15.5987 0 - endloop - endfacet - facet normal -0.922173 -0.386777 0 - outer loop - vertex 27.4227 15.3534 -0.2 - vertex 27.3198 15.5987 0 - vertex 27.3198 15.5987 -0.2 - endloop - endfacet - facet normal -0.922173 -0.386777 0 - outer loop - vertex 27.3198 15.5987 0 - vertex 27.4227 15.3534 -0.2 - vertex 27.4227 15.3534 0 - endloop - endfacet - facet normal -0.962502 -0.271275 0 - outer loop - vertex 27.4995 15.0808 -0.2 - vertex 27.4227 15.3534 0 - vertex 27.4227 15.3534 -0.2 - endloop - endfacet - facet normal -0.962502 -0.271275 0 - outer loop - vertex 27.4227 15.3534 0 - vertex 27.4995 15.0808 -0.2 - vertex 27.4995 15.0808 0 - endloop - endfacet - facet normal -0.986697 -0.162567 0 - outer loop - vertex 27.5539 14.7505 -0.2 - vertex 27.4995 15.0808 0 - vertex 27.4995 15.0808 -0.2 - endloop - endfacet - facet normal -0.986697 -0.162567 0 - outer loop - vertex 27.4995 15.0808 0 - vertex 27.5539 14.7505 -0.2 - vertex 27.5539 14.7505 0 - endloop - endfacet - facet normal -0.996383 -0.0849723 0 - outer loop - vertex 27.5896 14.3319 -0.2 - vertex 27.5539 14.7505 0 - vertex 27.5539 14.7505 -0.2 - endloop - endfacet - facet normal -0.996383 -0.0849723 0 - outer loop - vertex 27.5539 14.7505 0 - vertex 27.5896 14.3319 -0.2 - vertex 27.5896 14.3319 0 - endloop - endfacet - facet normal -0.999262 -0.0383987 0 - outer loop - vertex 27.6103 13.7945 -0.2 - vertex 27.5896 14.3319 0 - vertex 27.5896 14.3319 -0.2 - endloop - endfacet - facet normal -0.999262 -0.0383987 0 - outer loop - vertex 27.5896 14.3319 0 - vertex 27.6103 13.7945 -0.2 - vertex 27.6103 13.7945 0 - endloop - endfacet - facet normal -0.999976 -0.0069841 0 - outer loop - vertex 27.6211 12.2412 -0.2 - vertex 27.6103 13.7945 0 - vertex 27.6103 13.7945 -0.2 - endloop - endfacet - facet normal -0.999976 -0.0069841 0 - outer loop - vertex 27.6103 13.7945 0 - vertex 27.6211 12.2412 -0.2 - vertex 27.6211 12.2412 0 - endloop - endfacet - facet normal -0.999918 0.0127851 0 - outer loop - vertex 27.6024 10.7775 -0.2 - vertex 27.6211 12.2412 0 - vertex 27.6211 12.2412 -0.2 - endloop - endfacet - facet normal -0.999918 0.0127851 0 - outer loop - vertex 27.6211 12.2412 0 - vertex 27.6024 10.7775 -0.2 - vertex 27.6024 10.7775 0 - endloop - endfacet - facet normal -0.999067 0.0431942 0 - outer loop - vertex 27.5775 10.2019 -0.2 - vertex 27.6024 10.7775 0 - vertex 27.6024 10.7775 -0.2 - endloop - endfacet - facet normal -0.999067 0.0431942 0 - outer loop - vertex 27.6024 10.7775 0 - vertex 27.5775 10.2019 -0.2 - vertex 27.5775 10.2019 0 - endloop - endfacet - facet normal -0.997132 0.0756876 0 - outer loop - vertex 27.5397 9.70386 -0.2 - vertex 27.5775 10.2019 0 - vertex 27.5775 10.2019 -0.2 - endloop - endfacet - facet normal -0.997132 0.0756876 0 - outer loop - vertex 27.5775 10.2019 0 - vertex 27.5397 9.70386 -0.2 - vertex 27.5397 9.70386 0 - endloop - endfacet - facet normal -0.992933 0.118678 0 - outer loop - vertex 27.4871 9.26334 -0.2 - vertex 27.5397 9.70386 0 - vertex 27.5397 9.70386 -0.2 - endloop - endfacet - facet normal -0.992933 0.118678 0 - outer loop - vertex 27.5397 9.70386 0 - vertex 27.4871 9.26334 -0.2 - vertex 27.4871 9.26334 0 - endloop - endfacet - facet normal -0.985483 0.169774 0 - outer loop - vertex 27.4176 8.86037 -0.2 - vertex 27.4871 9.26334 0 - vertex 27.4871 9.26334 -0.2 - endloop - endfacet - facet normal -0.985483 0.169774 0 - outer loop - vertex 27.4871 9.26334 0 - vertex 27.4176 8.86037 -0.2 - vertex 27.4176 8.86037 0 - endloop - endfacet - facet normal -0.974842 0.222899 0 - outer loop - vertex 27.3295 8.47496 -0.2 - vertex 27.4176 8.86037 0 - vertex 27.4176 8.86037 -0.2 - endloop - endfacet - facet normal -0.974842 0.222899 0 - outer loop - vertex 27.4176 8.86037 0 - vertex 27.3295 8.47496 -0.2 - vertex 27.3295 8.47496 0 - endloop - endfacet - facet normal -0.962864 0.269986 0 - outer loop - vertex 27.2208 8.08714 -0.2 - vertex 27.3295 8.47496 0 - vertex 27.3295 8.47496 -0.2 - endloop - endfacet - facet normal -0.962864 0.269986 0 - outer loop - vertex 27.3295 8.47496 0 - vertex 27.2208 8.08714 -0.2 - vertex 27.2208 8.08714 0 - endloop - endfacet - facet normal -0.961499 0.274809 0 - outer loop - vertex 27.1048 7.68143 -0.2 - vertex 27.2208 8.08714 0 - vertex 27.2208 8.08714 -0.2 - endloop - endfacet - facet normal -0.961499 0.274809 0 - outer loop - vertex 27.2208 8.08714 0 - vertex 27.1048 7.68143 -0.2 - vertex 27.1048 7.68143 0 - endloop - endfacet - facet normal -0.973193 0.229988 0 - outer loop - vertex 27.0158 7.30485 -0.2 - vertex 27.1048 7.68143 0 - vertex 27.1048 7.68143 -0.2 - endloop - endfacet - facet normal -0.973193 0.229988 0 - outer loop - vertex 27.1048 7.68143 0 - vertex 27.0158 7.30485 -0.2 - vertex 27.0158 7.30485 0 - endloop - endfacet - facet normal -0.985852 0.167619 0 - outer loop - vertex 26.9517 6.92758 -0.2 - vertex 27.0158 7.30485 0 - vertex 27.0158 7.30485 -0.2 - endloop - endfacet - facet normal -0.985852 0.167619 0 - outer loop - vertex 27.0158 7.30485 0 - vertex 26.9517 6.92758 -0.2 - vertex 26.9517 6.92758 0 - endloop - endfacet - facet normal -0.994881 0.101051 0 - outer loop - vertex 26.9103 6.51977 -0.2 - vertex 26.9517 6.92758 0 - vertex 26.9517 6.92758 -0.2 - endloop - endfacet - facet normal -0.994881 0.101051 0 - outer loop - vertex 26.9517 6.92758 0 - vertex 26.9103 6.51977 -0.2 - vertex 26.9103 6.51977 0 - endloop - endfacet - facet normal -0.999013 0.0444183 0 - outer loop - vertex 26.8894 6.05157 -0.2 - vertex 26.9103 6.51977 0 - vertex 26.9103 6.51977 -0.2 - endloop - endfacet - facet normal -0.999013 0.0444183 0 - outer loop - vertex 26.9103 6.51977 0 - vertex 26.8894 6.05157 -0.2 - vertex 26.8894 6.05157 0 - endloop - endfacet - facet normal -0.999991 0.00417733 0 - outer loop - vertex 26.8871 5.49316 -0.2 - vertex 26.8894 6.05157 0 - vertex 26.8894 6.05157 -0.2 - endloop - endfacet - facet normal -0.999991 0.00417733 0 - outer loop - vertex 26.8894 6.05157 0 - vertex 26.8871 5.49316 -0.2 - vertex 26.8871 5.49316 0 - endloop - endfacet - facet normal -0.999606 -0.0280683 0 - outer loop - vertex 26.9294 3.98634 -0.2 - vertex 26.8871 5.49316 0 - vertex 26.8871 5.49316 -0.2 - endloop - endfacet - facet normal -0.999606 -0.0280683 0 - outer loop - vertex 26.8871 5.49316 0 - vertex 26.9294 3.98634 -0.2 - vertex 26.9294 3.98634 0 - endloop - endfacet - facet normal -0.999521 -0.0309525 0 - outer loop - vertex 26.9615 2.94949 -0.2 - vertex 26.9294 3.98634 0 - vertex 26.9294 3.98634 -0.2 - endloop - endfacet - facet normal -0.999521 -0.0309525 0 - outer loop - vertex 26.9294 3.98634 0 - vertex 26.9615 2.94949 -0.2 - vertex 26.9615 2.94949 0 - endloop - endfacet - facet normal -0.999992 -0.00407505 0 - outer loop - vertex 26.9647 2.16551 -0.2 - vertex 26.9615 2.94949 0 - vertex 26.9615 2.94949 -0.2 - endloop - endfacet - facet normal -0.999992 -0.00407505 0 - outer loop - vertex 26.9615 2.94949 0 - vertex 26.9647 2.16551 -0.2 - vertex 26.9647 2.16551 0 - endloop - endfacet - facet normal -0.998255 0.0590558 0 - outer loop - vertex 26.9324 1.61996 -0.2 - vertex 26.9647 2.16551 0 - vertex 26.9647 2.16551 -0.2 - endloop - endfacet - facet normal -0.998255 0.0590558 0 - outer loop - vertex 26.9647 2.16551 0 - vertex 26.9324 1.61996 -0.2 - vertex 26.9324 1.61996 0 - endloop - endfacet - facet normal -0.986243 0.165303 0 - outer loop - vertex 26.901 1.43209 -0.2 - vertex 26.9324 1.61996 0 - vertex 26.9324 1.61996 -0.2 - endloop - endfacet - facet normal -0.986243 0.165303 0 - outer loop - vertex 26.9324 1.61996 0 - vertex 26.901 1.43209 -0.2 - vertex 26.901 1.43209 0 - endloop - endfacet - facet normal -0.952336 0.30505 0 - outer loop - vertex 26.8581 1.29842 -0.2 - vertex 26.901 1.43209 0 - vertex 26.901 1.43209 -0.2 - endloop - endfacet - facet normal -0.952336 0.30505 0 - outer loop - vertex 26.901 1.43209 0 - vertex 26.8581 1.29842 -0.2 - vertex 26.8581 1.29842 0 - endloop - endfacet - facet normal -0.828352 0.560208 0 - outer loop - vertex 26.8032 1.21715 -0.2 - vertex 26.8581 1.29842 0 - vertex 26.8581 1.29842 -0.2 - endloop - endfacet - facet normal -0.828352 0.560208 0 - outer loop - vertex 26.8581 1.29842 0 - vertex 26.8032 1.21715 -0.2 - vertex 26.8032 1.21715 0 - endloop - endfacet - facet normal -0.411544 0.91139 0 - outer loop - vertex 26.8032 1.21715 -0.2 - vertex 26.7352 1.18648 0 - vertex 26.8032 1.21715 0 - endloop - endfacet - facet normal -0.411544 0.91139 0 - outer loop - vertex 26.7352 1.18648 0 - vertex 26.8032 1.21715 -0.2 - vertex 26.7352 1.18648 -0.2 - endloop - endfacet - facet normal 0.216454 0.976293 -0 - outer loop - vertex 26.7352 1.18648 -0.2 - vertex 26.6535 1.20459 0 - vertex 26.7352 1.18648 0 - endloop - endfacet - facet normal 0.216454 0.976293 0 - outer loop - vertex 26.6535 1.20459 0 - vertex 26.7352 1.18648 -0.2 - vertex 26.6535 1.20459 -0.2 - endloop - endfacet - facet normal 0.559991 0.828498 -0 - outer loop - vertex 26.6535 1.20459 -0.2 - vertex 26.5572 1.2697 0 - vertex 26.6535 1.20459 0 - endloop - endfacet - facet normal 0.559991 0.828498 0 - outer loop - vertex 26.5572 1.2697 0 - vertex 26.6535 1.20459 -0.2 - vertex 26.5572 1.2697 -0.2 - endloop - endfacet - facet normal 0.702452 0.711731 -0 - outer loop - vertex 26.5572 1.2697 -0.2 - vertex 26.4455 1.37999 0 - vertex 26.5572 1.2697 0 - endloop - endfacet - facet normal 0.702452 0.711731 0 - outer loop - vertex 26.4455 1.37999 0 - vertex 26.5572 1.2697 -0.2 - vertex 26.4455 1.37999 -0.2 - endloop - endfacet - facet normal 0.76838 0.639993 0 - outer loop - vertex 26.4455 1.37999 0 - vertex 26.3175 1.53367 -0.2 - vertex 26.3175 1.53367 0 - endloop - endfacet - facet normal 0.76838 0.639993 0 - outer loop - vertex 26.3175 1.53367 -0.2 - vertex 26.4455 1.37999 0 - vertex 26.4455 1.37999 -0.2 - endloop - endfacet - facet normal 0.813139 0.58207 0 - outer loop - vertex 26.3175 1.53367 0 - vertex 26.0094 1.96397 -0.2 - vertex 26.0094 1.96397 0 - endloop - endfacet - facet normal 0.813139 0.58207 0 - outer loop - vertex 26.0094 1.96397 -0.2 - vertex 26.3175 1.53367 0 - vertex 26.3175 1.53367 -0.2 - endloop - endfacet - facet normal 0.812733 0.582636 0 - outer loop - vertex 26.0094 1.96397 0 - vertex 25.8138 2.23679 -0.2 - vertex 25.8138 2.23679 0 - endloop - endfacet - facet normal 0.812733 0.582636 0 - outer loop - vertex 25.8138 2.23679 -0.2 - vertex 26.0094 1.96397 0 - vertex 26.0094 1.96397 -0.2 - endloop - endfacet - facet normal 0.76488 0.644173 0 - outer loop - vertex 25.8138 2.23679 0 - vertex 25.6376 2.44612 -0.2 - vertex 25.6376 2.44612 0 - endloop - endfacet - facet normal 0.76488 0.644173 0 - outer loop - vertex 25.6376 2.44612 -0.2 - vertex 25.8138 2.23679 0 - vertex 25.8138 2.23679 -0.2 - endloop - endfacet - facet normal 0.675362 0.737487 -0 - outer loop - vertex 25.6376 2.44612 -0.2 - vertex 25.4766 2.59351 0 - vertex 25.6376 2.44612 0 - endloop - endfacet - facet normal 0.675362 0.737487 0 - outer loop - vertex 25.4766 2.59351 0 - vertex 25.6376 2.44612 -0.2 - vertex 25.4766 2.59351 -0.2 - endloop - endfacet - facet normal 0.502892 0.86435 -0 - outer loop - vertex 25.4766 2.59351 -0.2 - vertex 25.3271 2.68052 0 - vertex 25.4766 2.59351 0 - endloop - endfacet - facet normal 0.502892 0.86435 0 - outer loop - vertex 25.3271 2.68052 0 - vertex 25.4766 2.59351 -0.2 - vertex 25.3271 2.68052 -0.2 - endloop - endfacet - facet normal 0.194571 0.980889 -0 - outer loop - vertex 25.3271 2.68052 -0.2 - vertex 25.185 2.7087 0 - vertex 25.3271 2.68052 0 - endloop - endfacet - facet normal 0.194571 0.980889 0 - outer loop - vertex 25.185 2.7087 0 - vertex 25.3271 2.68052 -0.2 - vertex 25.185 2.7087 -0.2 - endloop - endfacet - facet normal -0.205381 0.978682 0 - outer loop - vertex 25.185 2.7087 -0.2 - vertex 25.0464 2.67962 0 - vertex 25.185 2.7087 0 - endloop - endfacet - facet normal -0.205381 0.978682 0 - outer loop - vertex 25.0464 2.67962 0 - vertex 25.185 2.7087 -0.2 - vertex 25.0464 2.67962 -0.2 - endloop - endfacet - facet normal -0.520731 0.853721 0 - outer loop - vertex 25.0464 2.67962 -0.2 - vertex 24.9074 2.59483 0 - vertex 25.0464 2.67962 0 - endloop - endfacet - facet normal -0.520731 0.853721 0 - outer loop - vertex 24.9074 2.59483 0 - vertex 25.0464 2.67962 -0.2 - vertex 24.9074 2.59483 -0.2 - endloop - endfacet - facet normal -0.695882 0.718157 0 - outer loop - vertex 24.9074 2.59483 -0.2 - vertex 24.764 2.4559 0 - vertex 24.9074 2.59483 0 - endloop - endfacet - facet normal -0.695882 0.718157 0 - outer loop - vertex 24.764 2.4559 0 - vertex 24.9074 2.59483 -0.2 - vertex 24.764 2.4559 -0.2 - endloop - endfacet - facet normal -0.621809 0.783169 0 - outer loop - vertex 24.764 2.4559 -0.2 - vertex 24.6285 2.34829 0 - vertex 24.764 2.4559 0 - endloop - endfacet - facet normal -0.621809 0.783169 0 - outer loop - vertex 24.6285 2.34829 0 - vertex 24.764 2.4559 -0.2 - vertex 24.6285 2.34829 -0.2 - endloop - endfacet - facet normal -0.432349 0.901706 0 - outer loop - vertex 24.6285 2.34829 -0.2 - vertex 24.4388 2.25734 0 - vertex 24.6285 2.34829 0 - endloop - endfacet - facet normal -0.432349 0.901706 0 - outer loop - vertex 24.4388 2.25734 0 - vertex 24.6285 2.34829 -0.2 - vertex 24.4388 2.25734 -0.2 - endloop - endfacet - facet normal -0.283745 0.9589 0 - outer loop - vertex 24.4388 2.25734 -0.2 - vertex 24.2201 2.19262 0 - vertex 24.4388 2.25734 0 - endloop - endfacet - facet normal -0.283745 0.9589 0 - outer loop - vertex 24.2201 2.19262 0 - vertex 24.4388 2.25734 -0.2 - vertex 24.2201 2.19262 -0.2 - endloop - endfacet - facet normal -0.128745 0.991678 0 - outer loop - vertex 24.2201 2.19262 -0.2 - vertex 23.9975 2.16372 0 - vertex 24.2201 2.19262 0 - endloop - endfacet - facet normal -0.128745 0.991678 0 - outer loop - vertex 23.9975 2.16372 0 - vertex 24.2201 2.19262 -0.2 - vertex 23.9975 2.16372 -0.2 - endloop - endfacet - facet normal -0.0892316 0.996011 0 - outer loop - vertex 23.9975 2.16372 -0.2 - vertex 23.7673 2.14309 0 - vertex 23.9975 2.16372 0 - endloop - endfacet - facet normal -0.0892316 0.996011 0 - outer loop - vertex 23.7673 2.14309 0 - vertex 23.9975 2.16372 -0.2 - vertex 23.7673 2.14309 -0.2 - endloop - endfacet - facet normal -0.173492 0.984835 0 - outer loop - vertex 23.7673 2.14309 -0.2 - vertex 23.5277 2.10089 0 - vertex 23.7673 2.14309 0 - endloop - endfacet - facet normal -0.173492 0.984835 0 - outer loop - vertex 23.5277 2.10089 0 - vertex 23.7673 2.14309 -0.2 - vertex 23.5277 2.10089 -0.2 - endloop - endfacet - facet normal -0.252811 0.967516 0 - outer loop - vertex 23.5277 2.10089 -0.2 - vertex 23.3072 2.04326 0 - vertex 23.5277 2.10089 0 - endloop - endfacet - facet normal -0.252811 0.967516 0 - outer loop - vertex 23.3072 2.04326 0 - vertex 23.5277 2.10089 -0.2 - vertex 23.3072 2.04326 -0.2 - endloop - endfacet - facet normal -0.360079 0.932922 0 - outer loop - vertex 23.3072 2.04326 -0.2 - vertex 23.0469 1.94283 0 - vertex 23.3072 2.04326 0 - endloop - endfacet - facet normal -0.360079 0.932922 0 - outer loop - vertex 23.0469 1.94283 0 - vertex 23.3072 2.04326 -0.2 - vertex 23.0469 1.94283 -0.2 - endloop - endfacet - facet normal -0.120091 0.992763 0 - outer loop - vertex 23.0469 1.94283 -0.2 - vertex 22.9727 1.93385 0 - vertex 23.0469 1.94283 0 - endloop - endfacet - facet normal -0.120091 0.992763 0 - outer loop - vertex 22.9727 1.93385 0 - vertex 23.0469 1.94283 -0.2 - vertex 22.9727 1.93385 -0.2 - endloop - endfacet - facet normal 0.220007 0.975498 -0 - outer loop - vertex 22.9727 1.93385 -0.2 - vertex 22.9112 1.94773 0 - vertex 22.9727 1.93385 0 - endloop - endfacet - facet normal 0.220007 0.975498 0 - outer loop - vertex 22.9112 1.94773 0 - vertex 22.9727 1.93385 -0.2 - vertex 22.9112 1.94773 -0.2 - endloop - endfacet - facet normal 0.582178 0.813061 -0 - outer loop - vertex 22.9112 1.94773 -0.2 - vertex 22.8622 1.9828 0 - vertex 22.9112 1.94773 0 - endloop - endfacet - facet normal 0.582178 0.813061 0 - outer loop - vertex 22.8622 1.9828 0 - vertex 22.9112 1.94773 -0.2 - vertex 22.8622 1.9828 -0.2 - endloop - endfacet - facet normal 0.831256 0.55589 0 - outer loop - vertex 22.8622 1.9828 0 - vertex 22.8257 2.03737 -0.2 - vertex 22.8257 2.03737 0 - endloop - endfacet - facet normal 0.831256 0.55589 0 - outer loop - vertex 22.8257 2.03737 -0.2 - vertex 22.8622 1.9828 0 - vertex 22.8622 1.9828 -0.2 - endloop - endfacet - facet normal 0.948775 0.315953 0 - outer loop - vertex 22.8257 2.03737 0 - vertex 22.8016 2.10976 -0.2 - vertex 22.8016 2.10976 0 - endloop - endfacet - facet normal 0.948775 0.315953 0 - outer loop - vertex 22.8016 2.10976 -0.2 - vertex 22.8257 2.03737 0 - vertex 22.8257 2.03737 -0.2 - endloop - endfacet - facet normal 0.998216 0.059713 0 - outer loop - vertex 22.8016 2.10976 0 - vertex 22.7901 2.30129 -0.2 - vertex 22.7901 2.30129 0 - endloop - endfacet - facet normal 0.998216 0.059713 0 - outer loop - vertex 22.7901 2.30129 -0.2 - vertex 22.8016 2.10976 0 - vertex 22.8016 2.10976 -0.2 - endloop - endfacet - facet normal 0.988638 -0.150314 0 - outer loop - vertex 22.7901 2.30129 0 - vertex 22.827 2.54396 -0.2 - vertex 22.827 2.54396 0 - endloop - endfacet - facet normal 0.988638 -0.150314 0 - outer loop - vertex 22.827 2.54396 -0.2 - vertex 22.7901 2.30129 0 - vertex 22.7901 2.30129 -0.2 - endloop - endfacet - facet normal 0.957496 -0.288446 0 - outer loop - vertex 22.827 2.54396 0 - vertex 22.9115 2.82433 -0.2 - vertex 22.9115 2.82433 0 - endloop - endfacet - facet normal 0.957496 -0.288446 0 - outer loop - vertex 22.9115 2.82433 -0.2 - vertex 22.827 2.54396 0 - vertex 22.827 2.54396 -0.2 - endloop - endfacet - facet normal 0.918399 -0.395656 0 - outer loop - vertex 22.9115 2.82433 0 - vertex 23.0427 3.12896 -0.2 - vertex 23.0427 3.12896 0 - endloop - endfacet - facet normal 0.918399 -0.395656 0 - outer loop - vertex 23.0427 3.12896 -0.2 - vertex 22.9115 2.82433 0 - vertex 22.9115 2.82433 -0.2 - endloop - endfacet - facet normal 0.87183 -0.489809 0 - outer loop - vertex 23.0427 3.12896 0 - vertex 23.22 3.44442 -0.2 - vertex 23.22 3.44442 0 - endloop - endfacet - facet normal 0.87183 -0.489809 0 - outer loop - vertex 23.22 3.44442 -0.2 - vertex 23.0427 3.12896 0 - vertex 23.0427 3.12896 -0.2 - endloop - endfacet - facet normal 0.879841 -0.475268 0 - outer loop - vertex 23.22 3.44442 0 - vertex 23.4183 3.81156 -0.2 - vertex 23.4183 3.81156 0 - endloop - endfacet - facet normal 0.879841 -0.475268 0 - outer loop - vertex 23.4183 3.81156 -0.2 - vertex 23.22 3.44442 0 - vertex 23.22 3.44442 -0.2 - endloop - endfacet - facet normal 0.942923 -0.33301 0 - outer loop - vertex 23.4183 3.81156 0 - vertex 23.5494 4.18291 -0.2 - vertex 23.5494 4.18291 0 - endloop - endfacet - facet normal 0.942923 -0.33301 0 - outer loop - vertex 23.5494 4.18291 -0.2 - vertex 23.4183 3.81156 0 - vertex 23.4183 3.81156 -0.2 - endloop - endfacet - facet normal 0.978031 -0.208457 0 - outer loop - vertex 23.5494 4.18291 0 - vertex 23.5897 4.3717 -0.2 - vertex 23.5897 4.3717 0 - endloop - endfacet - facet normal 0.978031 -0.208457 0 - outer loop - vertex 23.5897 4.3717 -0.2 - vertex 23.5494 4.18291 0 - vertex 23.5494 4.18291 -0.2 - endloop - endfacet - facet normal 0.992713 -0.120506 0 - outer loop - vertex 23.5897 4.3717 0 - vertex 23.6129 4.5634 -0.2 - vertex 23.6129 4.5634 0 - endloop - endfacet - facet normal 0.992713 -0.120506 0 - outer loop - vertex 23.6129 4.5634 -0.2 - vertex 23.5897 4.3717 0 - vertex 23.5897 4.3717 -0.2 - endloop - endfacet - facet normal 0.99949 -0.0319444 0 - outer loop - vertex 23.6129 4.5634 0 - vertex 23.6192 4.7586 -0.2 - vertex 23.6192 4.7586 0 - endloop - endfacet - facet normal 0.99949 -0.0319444 0 - outer loop - vertex 23.6192 4.7586 -0.2 - vertex 23.6129 4.5634 0 - vertex 23.6129 4.5634 -0.2 - endloop - endfacet - facet normal 0.998522 0.054345 0 - outer loop - vertex 23.6192 4.7586 0 - vertex 23.6083 4.95794 -0.2 - vertex 23.6083 4.95794 0 - endloop - endfacet - facet normal 0.998522 0.054345 0 - outer loop - vertex 23.6083 4.95794 -0.2 - vertex 23.6192 4.7586 0 - vertex 23.6192 4.7586 -0.2 - endloop - endfacet - facet normal 0.984692 0.174301 0 - outer loop - vertex 23.6083 4.95794 0 - vertex 23.5351 5.37146 -0.2 - vertex 23.5351 5.37146 0 - endloop - endfacet - facet normal 0.984692 0.174301 0 - outer loop - vertex 23.5351 5.37146 -0.2 - vertex 23.6083 4.95794 0 - vertex 23.6083 4.95794 -0.2 - endloop - endfacet - facet normal 0.95097 0.309282 0 - outer loop - vertex 23.5351 5.37146 0 - vertex 23.3929 5.8089 -0.2 - vertex 23.3929 5.8089 0 - endloop - endfacet - facet normal 0.95097 0.309282 0 - outer loop - vertex 23.3929 5.8089 -0.2 - vertex 23.5351 5.37146 0 - vertex 23.5351 5.37146 -0.2 - endloop - endfacet - facet normal 0.910464 0.413588 0 - outer loop - vertex 23.3929 5.8089 0 - vertex 23.1811 6.27516 -0.2 - vertex 23.1811 6.27516 0 - endloop - endfacet - facet normal 0.910464 0.413588 0 - outer loop - vertex 23.1811 6.27516 -0.2 - vertex 23.3929 5.8089 0 - vertex 23.3929 5.8089 -0.2 - endloop - endfacet - facet normal 0.871161 0.490997 0 - outer loop - vertex 23.1811 6.27516 0 - vertex 22.8992 6.77518 -0.2 - vertex 22.8992 6.77518 0 - endloop - endfacet - facet normal 0.871161 0.490997 0 - outer loop - vertex 22.8992 6.77518 -0.2 - vertex 23.1811 6.27516 0 - vertex 23.1811 6.27516 -0.2 - endloop - endfacet - facet normal 0.839072 0.54402 0 - outer loop - vertex 22.8992 6.77518 0 - vertex 22.6364 7.18064 -0.2 - vertex 22.6364 7.18064 0 - endloop - endfacet - facet normal 0.839072 0.54402 0 - outer loop - vertex 22.6364 7.18064 -0.2 - vertex 22.8992 6.77518 0 - vertex 22.8992 6.77518 -0.2 - endloop - endfacet - facet normal 0.802153 0.597118 0 - outer loop - vertex 22.6364 7.18064 0 - vertex 22.3621 7.54907 -0.2 - vertex 22.3621 7.54907 0 - endloop - endfacet - facet normal 0.802153 0.597118 0 - outer loop - vertex 22.3621 7.54907 -0.2 - vertex 22.6364 7.18064 0 - vertex 22.6364 7.18064 -0.2 - endloop - endfacet - facet normal 0.754344 0.65648 0 - outer loop - vertex 22.3621 7.54907 0 - vertex 22.0631 7.89267 -0.2 - vertex 22.0631 7.89267 0 - endloop - endfacet - facet normal 0.754344 0.65648 0 - outer loop - vertex 22.0631 7.89267 -0.2 - vertex 22.3621 7.54907 0 - vertex 22.3621 7.54907 -0.2 - endloop - endfacet - facet normal 0.700509 0.713644 -0 - outer loop - vertex 22.0631 7.89267 -0.2 - vertex 21.7259 8.22365 0 - vertex 22.0631 7.89267 0 - endloop - endfacet - facet normal 0.700509 0.713644 0 - outer loop - vertex 21.7259 8.22365 0 - vertex 22.0631 7.89267 -0.2 - vertex 21.7259 8.22365 -0.2 - endloop - endfacet - facet normal 0.647802 0.761808 -0 - outer loop - vertex 21.7259 8.22365 -0.2 - vertex 21.3371 8.55423 0 - vertex 21.7259 8.22365 0 - endloop - endfacet - facet normal 0.647802 0.761808 0 - outer loop - vertex 21.3371 8.55423 0 - vertex 21.7259 8.22365 -0.2 - vertex 21.3371 8.55423 -0.2 - endloop - endfacet - facet normal 0.602358 0.798226 -0 - outer loop - vertex 21.3371 8.55423 -0.2 - vertex 20.8834 8.89663 0 - vertex 21.3371 8.55423 0 - endloop - endfacet - facet normal 0.602358 0.798226 0 - outer loop - vertex 20.8834 8.89663 0 - vertex 21.3371 8.55423 -0.2 - vertex 20.8834 8.89663 -0.2 - endloop - endfacet - facet normal 0.567155 0.823611 -0 - outer loop - vertex 20.8834 8.89663 -0.2 - vertex 20.3513 9.26304 0 - vertex 20.8834 8.89663 0 - endloop - endfacet - facet normal 0.567155 0.823611 0 - outer loop - vertex 20.3513 9.26304 0 - vertex 20.8834 8.89663 -0.2 - vertex 20.3513 9.26304 -0.2 - endloop - endfacet - facet normal 0.542271 0.840203 -0 - outer loop - vertex 20.3513 9.26304 -0.2 - vertex 19.7274 9.66569 0 - vertex 20.3513 9.26304 0 - endloop - endfacet - facet normal 0.542271 0.840203 0 - outer loop - vertex 19.7274 9.66569 0 - vertex 20.3513 9.26304 -0.2 - vertex 19.7274 9.66569 -0.2 - endloop - endfacet - facet normal 0.509213 0.86064 -0 - outer loop - vertex 19.7274 9.66569 -0.2 - vertex 19.4723 9.81661 0 - vertex 19.7274 9.66569 0 - endloop - endfacet - facet normal 0.509213 0.86064 0 - outer loop - vertex 19.4723 9.81661 0 - vertex 19.7274 9.66569 -0.2 - vertex 19.4723 9.81661 -0.2 - endloop - endfacet - facet normal 0.451586 0.892227 -0 - outer loop - vertex 19.4723 9.81661 -0.2 - vertex 19.2206 9.94402 0 - vertex 19.4723 9.81661 0 - endloop - endfacet - facet normal 0.451586 0.892227 0 - outer loop - vertex 19.2206 9.94402 0 - vertex 19.4723 9.81661 -0.2 - vertex 19.2206 9.94402 -0.2 - endloop - endfacet - facet normal 0.382649 0.923894 -0 - outer loop - vertex 19.2206 9.94402 -0.2 - vertex 18.9645 10.0501 0 - vertex 19.2206 9.94402 0 - endloop - endfacet - facet normal 0.382649 0.923894 0 - outer loop - vertex 18.9645 10.0501 0 - vertex 19.2206 9.94402 -0.2 - vertex 18.9645 10.0501 -0.2 - endloop - endfacet - facet normal 0.308251 0.951305 -0 - outer loop - vertex 18.9645 10.0501 -0.2 - vertex 18.6964 10.137 0 - vertex 18.9645 10.0501 0 - endloop - endfacet - facet normal 0.308251 0.951305 0 - outer loop - vertex 18.6964 10.137 0 - vertex 18.9645 10.0501 -0.2 - vertex 18.6964 10.137 -0.2 - endloop - endfacet - facet normal 0.235891 0.971779 -0 - outer loop - vertex 18.6964 10.137 -0.2 - vertex 18.4085 10.2069 0 - vertex 18.6964 10.137 0 - endloop - endfacet - facet normal 0.235891 0.971779 0 - outer loop - vertex 18.4085 10.2069 0 - vertex 18.6964 10.137 -0.2 - vertex 18.4085 10.2069 -0.2 - endloop - endfacet - facet normal 0.172 0.985097 -0 - outer loop - vertex 18.4085 10.2069 -0.2 - vertex 18.093 10.2619 0 - vertex 18.4085 10.2069 0 - endloop - endfacet - facet normal 0.172 0.985097 0 - outer loop - vertex 18.093 10.2619 0 - vertex 18.4085 10.2069 -0.2 - vertex 18.093 10.2619 -0.2 - endloop - endfacet - facet normal 0.0994696 0.995041 -0 - outer loop - vertex 18.093 10.2619 -0.2 - vertex 17.3487 10.3363 0 - vertex 18.093 10.2619 0 - endloop - endfacet - facet normal 0.0994696 0.995041 0 - outer loop - vertex 17.3487 10.3363 0 - vertex 18.093 10.2619 -0.2 - vertex 17.3487 10.3363 -0.2 - endloop - endfacet - facet normal 0.0510048 0.998698 -0 - outer loop - vertex 17.3487 10.3363 -0.2 - vertex 16.499 10.3797 0 - vertex 17.3487 10.3363 0 - endloop - endfacet - facet normal 0.0510048 0.998698 0 - outer loop - vertex 16.499 10.3797 0 - vertex 17.3487 10.3363 -0.2 - vertex 16.499 10.3797 -0.2 - endloop - endfacet - facet normal -0.0333465 0.999444 0 - outer loop - vertex 16.499 10.3797 -0.2 - vertex 16.2187 10.3704 0 - vertex 16.499 10.3797 0 - endloop - endfacet - facet normal -0.0333465 0.999444 0 - outer loop - vertex 16.2187 10.3704 0 - vertex 16.499 10.3797 -0.2 - vertex 16.2187 10.3704 -0.2 - endloop - endfacet - facet normal -0.179208 0.983811 0 - outer loop - vertex 16.2187 10.3704 -0.2 - vertex 16.005 10.3315 0 - vertex 16.2187 10.3704 0 - endloop - endfacet - facet normal -0.179208 0.983811 0 - outer loop - vertex 16.005 10.3315 0 - vertex 16.2187 10.3704 -0.2 - vertex 16.005 10.3315 -0.2 - endloop - endfacet - facet normal -0.405411 0.914135 0 - outer loop - vertex 16.005 10.3315 -0.2 - vertex 15.8355 10.2563 0 - vertex 16.005 10.3315 0 - endloop - endfacet - facet normal -0.405411 0.914135 0 - outer loop - vertex 15.8355 10.2563 0 - vertex 16.005 10.3315 -0.2 - vertex 15.8355 10.2563 -0.2 - endloop - endfacet - facet normal -0.624597 0.780947 0 - outer loop - vertex 15.8355 10.2563 -0.2 - vertex 15.6879 10.1383 0 - vertex 15.8355 10.2563 0 - endloop - endfacet - facet normal -0.624597 0.780947 0 - outer loop - vertex 15.6879 10.1383 0 - vertex 15.8355 10.2563 -0.2 - vertex 15.6879 10.1383 -0.2 - endloop - endfacet - facet normal -0.749396 0.662122 0 - outer loop - vertex 15.5399 9.97068 -0.2 - vertex 15.6879 10.1383 0 - vertex 15.6879 10.1383 -0.2 - endloop - endfacet - facet normal -0.749396 0.662122 0 - outer loop - vertex 15.6879 10.1383 0 - vertex 15.5399 9.97068 -0.2 - vertex 15.5399 9.97068 0 - endloop - endfacet - facet normal -0.794739 0.606951 0 - outer loop - vertex 15.369 9.74689 -0.2 - vertex 15.5399 9.97068 0 - vertex 15.5399 9.97068 -0.2 - endloop - endfacet - facet normal -0.794739 0.606951 0 - outer loop - vertex 15.5399 9.97068 0 - vertex 15.369 9.74689 -0.2 - vertex 15.369 9.74689 0 - endloop - endfacet - facet normal -0.812079 0.583548 0 - outer loop - vertex 15.213 9.52982 -0.2 - vertex 15.369 9.74689 0 - vertex 15.369 9.74689 -0.2 - endloop - endfacet - facet normal -0.812079 0.583548 0 - outer loop - vertex 15.369 9.74689 0 - vertex 15.213 9.52982 -0.2 - vertex 15.213 9.52982 0 - endloop - endfacet - facet normal -0.851006 0.525156 0 - outer loop - vertex 15.0942 9.33737 -0.2 - vertex 15.213 9.52982 0 - vertex 15.213 9.52982 -0.2 - endloop - endfacet - facet normal -0.851006 0.525156 0 - outer loop - vertex 15.213 9.52982 0 - vertex 15.0942 9.33737 -0.2 - vertex 15.0942 9.33737 0 - endloop - endfacet - facet normal -0.909184 0.416395 0 - outer loop - vertex 15.0092 9.15168 -0.2 - vertex 15.0942 9.33737 0 - vertex 15.0942 9.33737 -0.2 - endloop - endfacet - facet normal -0.909184 0.416395 0 - outer loop - vertex 15.0942 9.33737 0 - vertex 15.0092 9.15168 -0.2 - vertex 15.0092 9.15168 0 - endloop - endfacet - facet normal -0.963304 0.268412 0 - outer loop - vertex 14.9543 8.95485 -0.2 - vertex 15.0092 9.15168 0 - vertex 15.0092 9.15168 -0.2 - endloop - endfacet - facet normal -0.963304 0.268412 0 - outer loop - vertex 15.0092 9.15168 0 - vertex 14.9543 8.95485 -0.2 - vertex 14.9543 8.95485 0 - endloop - endfacet - facet normal -0.99232 0.1237 0 - outer loop - vertex 14.9262 8.72903 -0.2 - vertex 14.9543 8.95485 0 - vertex 14.9543 8.95485 -0.2 - endloop - endfacet - facet normal -0.99232 0.1237 0 - outer loop - vertex 14.9543 8.95485 0 - vertex 14.9262 8.72903 -0.2 - vertex 14.9262 8.72903 0 - endloop - endfacet - facet normal -0.999834 0.0182102 0 - outer loop - vertex 14.9212 8.45633 -0.2 - vertex 14.9262 8.72903 0 - vertex 14.9262 8.72903 -0.2 - endloop - endfacet - facet normal -0.999834 0.0182102 0 - outer loop - vertex 14.9262 8.72903 0 - vertex 14.9212 8.45633 -0.2 - vertex 14.9212 8.45633 0 - endloop - endfacet - facet normal -0.998195 -0.0600559 0 - outer loop - vertex 14.9668 7.69881 -0.2 - vertex 14.9212 8.45633 0 - vertex 14.9212 8.45633 -0.2 - endloop - endfacet - facet normal -0.998195 -0.0600559 0 - outer loop - vertex 14.9212 8.45633 0 - vertex 14.9668 7.69881 -0.2 - vertex 14.9668 7.69881 0 - endloop - endfacet - facet normal -0.99465 -0.103302 0 - outer loop - vertex 15.0249 7.13954 -0.2 - vertex 14.9668 7.69881 0 - vertex 14.9668 7.69881 -0.2 - endloop - endfacet - facet normal -0.99465 -0.103302 0 - outer loop - vertex 14.9668 7.69881 0 - vertex 15.0249 7.13954 -0.2 - vertex 15.0249 7.13954 0 - endloop - endfacet - facet normal -0.989699 -0.143163 0 - outer loop - vertex 15.1095 6.5543 -0.2 - vertex 15.0249 7.13954 0 - vertex 15.0249 7.13954 -0.2 - endloop - endfacet - facet normal -0.989699 -0.143163 0 - outer loop - vertex 15.0249 7.13954 0 - vertex 15.1095 6.5543 -0.2 - vertex 15.1095 6.5543 0 - endloop - endfacet - facet normal -0.984174 -0.177204 0 - outer loop - vertex 15.2183 5.95043 -0.2 - vertex 15.1095 6.5543 0 - vertex 15.1095 6.5543 -0.2 - endloop - endfacet - facet normal -0.984174 -0.177204 0 - outer loop - vertex 15.1095 6.5543 0 - vertex 15.2183 5.95043 -0.2 - vertex 15.2183 5.95043 0 - endloop - endfacet - facet normal -0.978296 -0.207212 0 - outer loop - vertex 15.3486 5.33522 -0.2 - vertex 15.2183 5.95043 0 - vertex 15.2183 5.95043 -0.2 - endloop - endfacet - facet normal -0.978296 -0.207212 0 - outer loop - vertex 15.2183 5.95043 0 - vertex 15.3486 5.33522 -0.2 - vertex 15.3486 5.33522 0 - endloop - endfacet - facet normal -0.972111 -0.23452 0 - outer loop - vertex 15.498 4.716 -0.2 - vertex 15.3486 5.33522 0 - vertex 15.3486 5.33522 -0.2 - endloop - endfacet - facet normal -0.972111 -0.23452 0 - outer loop - vertex 15.3486 5.33522 0 - vertex 15.498 4.716 -0.2 - vertex 15.498 4.716 0 - endloop - endfacet - facet normal -0.965559 -0.260185 0 - outer loop - vertex 15.6639 4.10009 -0.2 - vertex 15.498 4.716 0 - vertex 15.498 4.716 -0.2 - endloop - endfacet - facet normal -0.965559 -0.260185 0 - outer loop - vertex 15.498 4.716 0 - vertex 15.6639 4.10009 -0.2 - vertex 15.6639 4.10009 0 - endloop - endfacet - facet normal -0.95471 -0.297537 0 - outer loop - vertex 16.0356 2.90743 -0.2 - vertex 15.6639 4.10009 0 - vertex 15.6639 4.10009 -0.2 - endloop - endfacet - facet normal -0.95471 -0.297537 0 - outer loop - vertex 15.6639 4.10009 0 - vertex 16.0356 2.90743 -0.2 - vertex 16.0356 2.90743 0 - endloop - endfacet - facet normal -0.941754 -0.336302 0 - outer loop - vertex 16.2363 2.34533 -0.2 - vertex 16.0356 2.90743 0 - vertex 16.0356 2.90743 -0.2 - endloop - endfacet - facet normal -0.941754 -0.336302 0 - outer loop - vertex 16.0356 2.90743 0 - vertex 16.2363 2.34533 -0.2 - vertex 16.2363 2.34533 0 - endloop - endfacet - facet normal -0.931176 -0.364571 0 - outer loop - vertex 16.4437 1.81579 -0.2 - vertex 16.2363 2.34533 0 - vertex 16.2363 2.34533 -0.2 - endloop - endfacet - facet normal -0.931176 -0.364571 0 - outer loop - vertex 16.2363 2.34533 0 - vertex 16.4437 1.81579 -0.2 - vertex 16.4437 1.81579 0 - endloop - endfacet - facet normal -0.91808 -0.396396 0 - outer loop - vertex 16.6551 1.32614 -0.2 - vertex 16.4437 1.81579 0 - vertex 16.4437 1.81579 -0.2 - endloop - endfacet - facet normal -0.91808 -0.396396 0 - outer loop - vertex 16.4437 1.81579 0 - vertex 16.6551 1.32614 -0.2 - vertex 16.6551 1.32614 0 - endloop - endfacet - facet normal -0.901015 -0.433787 0 - outer loop - vertex 16.8681 0.883681 -0.2 - vertex 16.6551 1.32614 0 - vertex 16.6551 1.32614 -0.2 - endloop - endfacet - facet normal -0.901015 -0.433787 0 - outer loop - vertex 16.6551 1.32614 0 - vertex 16.8681 0.883681 -0.2 - vertex 16.8681 0.883681 0 - endloop - endfacet - facet normal -0.877409 -0.479744 0 - outer loop - vertex 17.0802 0.495742 -0.2 - vertex 16.8681 0.883681 0 - vertex 16.8681 0.883681 -0.2 - endloop - endfacet - facet normal -0.877409 -0.479744 0 - outer loop - vertex 16.8681 0.883681 0 - vertex 17.0802 0.495742 -0.2 - vertex 17.0802 0.495742 0 - endloop - endfacet - facet normal -0.842258 -0.539075 0 - outer loop - vertex 17.2889 0.169637 -0.2 - vertex 17.0802 0.495742 0 - vertex 17.0802 0.495742 -0.2 - endloop - endfacet - facet normal -0.842258 -0.539075 0 - outer loop - vertex 17.0802 0.495742 0 - vertex 17.2889 0.169637 -0.2 - vertex 17.2889 0.169637 0 - endloop - endfacet - facet normal -0.784932 -0.619582 0 - outer loop - vertex 17.4918 -0.0873203 -0.2 - vertex 17.2889 0.169637 0 - vertex 17.2889 0.169637 -0.2 - endloop - endfacet - facet normal -0.784932 -0.619582 0 - outer loop - vertex 17.2889 0.169637 0 - vertex 17.4918 -0.0873203 -0.2 - vertex 17.4918 -0.0873203 0 - endloop - endfacet - facet normal -0.680344 -0.732893 0 - outer loop - vertex 17.4918 -0.0873203 -0.2 - vertex 17.6862 -0.267812 0 - vertex 17.4918 -0.0873203 0 - endloop - endfacet - facet normal -0.680344 -0.732893 -0 - outer loop - vertex 17.6862 -0.267812 0 - vertex 17.4918 -0.0873203 -0.2 - vertex 17.6862 -0.267812 -0.2 - endloop - endfacet - facet normal -0.560342 -0.828261 0 - outer loop - vertex 17.6862 -0.267812 -0.2 - vertex 17.8284 -0.36402 0 - vertex 17.6862 -0.267812 0 - endloop - endfacet - facet normal -0.560342 -0.828261 -0 - outer loop - vertex 17.8284 -0.36402 0 - vertex 17.6862 -0.267812 -0.2 - vertex 17.8284 -0.36402 -0.2 - endloop - endfacet - facet normal -0.436276 -0.899813 0 - outer loop - vertex 17.8284 -0.36402 -0.2 - vertex 17.9646 -0.430052 0 - vertex 17.8284 -0.36402 0 - endloop - endfacet - facet normal -0.436276 -0.899813 -0 - outer loop - vertex 17.9646 -0.430052 0 - vertex 17.8284 -0.36402 -0.2 - vertex 17.9646 -0.430052 -0.2 - endloop - endfacet - facet normal -0.23232 -0.972639 0 - outer loop - vertex 17.9646 -0.430052 -0.2 - vertex 18.1098 -0.464739 0 - vertex 17.9646 -0.430052 0 - endloop - endfacet - facet normal -0.23232 -0.972639 -0 - outer loop - vertex 18.1098 -0.464739 0 - vertex 17.9646 -0.430052 -0.2 - vertex 18.1098 -0.464739 -0.2 - endloop - endfacet - facet normal -0.0128436 -0.999918 0 - outer loop - vertex 18.1098 -0.464739 -0.2 - vertex 18.2791 -0.466914 0 - vertex 18.1098 -0.464739 0 - endloop - endfacet - facet normal -0.0128436 -0.999918 -0 - outer loop - vertex 18.2791 -0.466914 0 - vertex 18.1098 -0.464739 -0.2 - vertex 18.2791 -0.466914 -0.2 - endloop - endfacet - facet normal 0.149466 -0.988767 0 - outer loop - vertex 18.2791 -0.466914 -0.2 - vertex 18.4876 -0.435405 0 - vertex 18.2791 -0.466914 0 - endloop - endfacet - facet normal 0.149466 -0.988767 0 - outer loop - vertex 18.4876 -0.435405 0 - vertex 18.2791 -0.466914 -0.2 - vertex 18.4876 -0.435405 -0.2 - endloop - endfacet - facet normal 0.244974 -0.96953 0 - outer loop - vertex 18.4876 -0.435405 -0.2 - vertex 18.7502 -0.369046 0 - vertex 18.4876 -0.435405 0 - endloop - endfacet - facet normal 0.244974 -0.96953 0 - outer loop - vertex 18.7502 -0.369046 0 - vertex 18.4876 -0.435405 -0.2 - vertex 18.7502 -0.369046 -0.2 - endloop - endfacet - facet normal 0.307753 -0.951466 0 - outer loop - vertex 18.7502 -0.369046 -0.2 - vertex 19.4982 -0.127099 0 - vertex 18.7502 -0.369046 0 - endloop - endfacet - facet normal 0.307753 -0.951466 0 - outer loop - vertex 19.4982 -0.127099 0 - vertex 18.7502 -0.369046 -0.2 - vertex 19.4982 -0.127099 -0.2 - endloop - endfacet - facet normal 0.301432 -0.953488 0 - outer loop - vertex 19.4982 -0.127099 -0.2 - vertex 20.0432 0.0451876 0 - vertex 19.4982 -0.127099 0 - endloop - endfacet - facet normal 0.301432 -0.953488 0 - outer loop - vertex 20.0432 0.0451876 0 - vertex 19.4982 -0.127099 -0.2 - vertex 20.0432 0.0451876 -0.2 - endloop - endfacet - facet normal 0.251907 -0.967752 0 - outer loop - vertex 20.0432 0.0451876 -0.2 - vertex 20.5155 0.168137 0 - vertex 20.0432 0.0451876 0 - endloop - endfacet - facet normal 0.251907 -0.967752 0 - outer loop - vertex 20.5155 0.168137 0 - vertex 20.0432 0.0451876 -0.2 - vertex 20.5155 0.168137 -0.2 - endloop - endfacet - facet normal 0.175432 -0.984492 0 - outer loop - vertex 20.5155 0.168137 -0.2 - vertex 20.8646 0.230347 0 - vertex 20.5155 0.168137 0 - endloop - endfacet - facet normal 0.175432 -0.984492 0 - outer loop - vertex 20.8646 0.230347 0 - vertex 20.5155 0.168137 -0.2 - vertex 20.8646 0.230347 -0.2 - endloop - endfacet - facet normal 0.0422921 -0.999105 0 - outer loop - vertex 20.8646 0.230347 -0.2 - vertex 20.9772 0.235111 0 - vertex 20.8646 0.230347 0 - endloop - endfacet - facet normal 0.0422921 -0.999105 0 - outer loop - vertex 20.9772 0.235111 0 - vertex 20.8646 0.230347 -0.2 - vertex 20.9772 0.235111 -0.2 - endloop - endfacet - facet normal -0.228021 -0.973656 0 - outer loop - vertex 20.9772 0.235111 -0.2 - vertex 21.0399 0.220413 0 - vertex 20.9772 0.235111 0 - endloop - endfacet - facet normal -0.228021 -0.973656 -0 - outer loop - vertex 21.0399 0.220413 0 - vertex 20.9772 0.235111 -0.2 - vertex 21.0399 0.220413 -0.2 - endloop - endfacet - facet normal -0.836215 -0.548402 0 - outer loop - vertex 21.0726 0.170561 -0.2 - vertex 21.0399 0.220413 0 - vertex 21.0399 0.220413 -0.2 - endloop - endfacet - facet normal -0.836215 -0.548402 0 - outer loop - vertex 21.0399 0.220413 0 - vertex 21.0726 0.170561 -0.2 - vertex 21.0726 0.170561 0 - endloop - endfacet - facet normal -0.964289 -0.264852 0 - outer loop - vertex 21.099 0.0745682 -0.2 - vertex 21.0726 0.170561 0 - vertex 21.0726 0.170561 -0.2 - endloop - endfacet - facet normal -0.964289 -0.264852 0 - outer loop - vertex 21.0726 0.170561 0 - vertex 21.099 0.0745682 -0.2 - vertex 21.099 0.0745682 0 - endloop - endfacet - facet normal -0.994432 -0.105376 0 - outer loop - vertex 21.1316 -0.233279 -0.2 - vertex 21.099 0.0745682 0 - vertex 21.099 0.0745682 -0.2 - endloop - endfacet - facet normal -0.994432 -0.105376 0 - outer loop - vertex 21.099 0.0745682 0 - vertex 21.1316 -0.233279 -0.2 - vertex 21.1316 -0.233279 0 - endloop - endfacet - facet normal -0.999957 -0.00925488 0 - outer loop - vertex 21.1355 -0.658014 -0.2 - vertex 21.1316 -0.233279 0 - vertex 21.1316 -0.233279 -0.2 - endloop - endfacet - facet normal -0.999957 -0.00925488 0 - outer loop - vertex 21.1316 -0.233279 0 - vertex 21.1355 -0.658014 -0.2 - vertex 21.1355 -0.658014 0 - endloop - endfacet - facet normal -0.998524 0.0543158 0 - outer loop - vertex 21.1085 -1.15452 -0.2 - vertex 21.1355 -0.658014 0 - vertex 21.1355 -0.658014 -0.2 - endloop - endfacet - facet normal -0.998524 0.0543158 0 - outer loop - vertex 21.1355 -0.658014 0 - vertex 21.1085 -1.15452 -0.2 - vertex 21.1085 -1.15452 0 - endloop - endfacet - facet normal -0.992587 0.121535 0 - outer loop - vertex 21.0399 -1.71534 -0.2 - vertex 21.1085 -1.15452 0 - vertex 21.1085 -1.15452 -0.2 - endloop - endfacet - facet normal -0.992587 0.121535 0 - outer loop - vertex 21.1085 -1.15452 0 - vertex 21.0399 -1.71534 -0.2 - vertex 21.0399 -1.71534 0 - endloop - endfacet - facet normal -0.978633 0.205615 0 - outer loop - vertex 20.9878 -1.96317 -0.2 - vertex 21.0399 -1.71534 0 - vertex 21.0399 -1.71534 -0.2 - endloop - endfacet - facet normal -0.978633 0.205615 0 - outer loop - vertex 21.0399 -1.71534 0 - vertex 20.9878 -1.96317 -0.2 - vertex 20.9878 -1.96317 0 - endloop - endfacet - facet normal -0.959237 0.282603 0 - outer loop - vertex 20.9199 -2.19366 -0.2 - vertex 20.9878 -1.96317 0 - vertex 20.9878 -1.96317 -0.2 - endloop - endfacet - facet normal -0.959237 0.282603 0 - outer loop - vertex 20.9878 -1.96317 0 - vertex 20.9199 -2.19366 -0.2 - vertex 20.9199 -2.19366 0 - endloop - endfacet - facet normal -0.92823 0.372008 0 - outer loop - vertex 20.8331 -2.41014 -0.2 - vertex 20.9199 -2.19366 0 - vertex 20.9199 -2.19366 -0.2 - endloop - endfacet - facet normal -0.92823 0.372008 0 - outer loop - vertex 20.9199 -2.19366 0 - vertex 20.8331 -2.41014 -0.2 - vertex 20.8331 -2.41014 0 - endloop - endfacet - facet normal -0.884337 0.46685 0 - outer loop - vertex 20.7245 -2.61588 -0.2 - vertex 20.8331 -2.41014 0 - vertex 20.8331 -2.41014 -0.2 - endloop - endfacet - facet normal -0.884337 0.46685 0 - outer loop - vertex 20.8331 -2.41014 0 - vertex 20.7245 -2.61588 -0.2 - vertex 20.7245 -2.61588 0 - endloop - endfacet - facet normal -0.829583 0.558383 0 - outer loop - vertex 20.591 -2.8142 -0.2 - vertex 20.7245 -2.61588 0 - vertex 20.7245 -2.61588 -0.2 - endloop - endfacet - facet normal -0.829583 0.558383 0 - outer loop - vertex 20.7245 -2.61588 0 - vertex 20.591 -2.8142 -0.2 - vertex 20.591 -2.8142 0 - endloop - endfacet - facet normal -0.769117 0.639107 0 - outer loop - vertex 20.4297 -3.0084 -0.2 - vertex 20.591 -2.8142 0 - vertex 20.591 -2.8142 -0.2 - endloop - endfacet - facet normal -0.769117 0.639107 0 - outer loop - vertex 20.591 -2.8142 0 - vertex 20.4297 -3.0084 -0.2 - vertex 20.4297 -3.0084 0 - endloop - endfacet - facet normal -0.709135 0.705072 0 - outer loop - vertex 20.2374 -3.20177 -0.2 - vertex 20.4297 -3.0084 0 - vertex 20.4297 -3.0084 -0.2 - endloop - endfacet - facet normal -0.709135 0.705072 0 - outer loop - vertex 20.4297 -3.0084 0 - vertex 20.2374 -3.20177 -0.2 - vertex 20.2374 -3.20177 0 - endloop - endfacet - facet normal -0.654612 0.755965 0 - outer loop - vertex 20.2374 -3.20177 -0.2 - vertex 20.0112 -3.39762 0 - vertex 20.2374 -3.20177 0 - endloop - endfacet - facet normal -0.654612 0.755965 0 - outer loop - vertex 20.0112 -3.39762 0 - vertex 20.2374 -3.20177 -0.2 - vertex 20.0112 -3.39762 -0.2 - endloop - endfacet - facet normal -0.588742 0.808321 0 - outer loop - vertex 20.0112 -3.39762 -0.2 - vertex 19.4451 -3.80993 0 - vertex 20.0112 -3.39762 0 - endloop - endfacet - facet normal -0.588742 0.808321 0 - outer loop - vertex 19.4451 -3.80993 0 - vertex 20.0112 -3.39762 -0.2 - vertex 19.4451 -3.80993 -0.2 - endloop - endfacet - facet normal -0.530543 0.847658 0 - outer loop - vertex 19.4451 -3.80993 -0.2 - vertex 18.7073 -4.27174 0 - vertex 19.4451 -3.80993 0 - endloop - endfacet - facet normal -0.530543 0.847658 0 - outer loop - vertex 18.7073 -4.27174 0 - vertex 19.4451 -3.80993 -0.2 - vertex 18.7073 -4.27174 -0.2 - endloop - endfacet - facet normal -0.499058 0.866569 0 - outer loop - vertex 18.7073 -4.27174 -0.2 - vertex 17.7736 -4.80944 0 - vertex 18.7073 -4.27174 0 - endloop - endfacet - facet normal -0.499058 0.866569 0 - outer loop - vertex 17.7736 -4.80944 0 - vertex 18.7073 -4.27174 -0.2 - vertex 17.7736 -4.80944 -0.2 - endloop - endfacet - facet normal -0.476856 0.878981 0 - outer loop - vertex 17.7736 -4.80944 -0.2 - vertex 16.3254 -5.59514 0 - vertex 17.7736 -4.80944 0 - endloop - endfacet - facet normal -0.476856 0.878981 0 - outer loop - vertex 16.3254 -5.59514 0 - vertex 17.7736 -4.80944 -0.2 - vertex 16.3254 -5.59514 -0.2 - endloop - endfacet - facet normal -0.451418 0.892312 0 - outer loop - vertex 16.3254 -5.59514 -0.2 - vertex 15.6549 -5.93433 0 - vertex 16.3254 -5.59514 0 - endloop - endfacet - facet normal -0.451418 0.892312 0 - outer loop - vertex 15.6549 -5.93433 0 - vertex 16.3254 -5.59514 -0.2 - vertex 15.6549 -5.93433 -0.2 - endloop - endfacet - facet normal -0.429833 0.902908 0 - outer loop - vertex 15.6549 -5.93433 -0.2 - vertex 15.0129 -6.23993 0 - vertex 15.6549 -5.93433 0 - endloop - endfacet - facet normal -0.429833 0.902908 0 - outer loop - vertex 15.0129 -6.23993 0 - vertex 15.6549 -5.93433 -0.2 - vertex 15.0129 -6.23993 -0.2 - endloop - endfacet - facet normal -0.404408 0.914579 0 - outer loop - vertex 15.0129 -6.23993 -0.2 - vertex 14.3941 -6.51356 0 - vertex 15.0129 -6.23993 0 - endloop - endfacet - facet normal -0.404408 0.914579 0 - outer loop - vertex 14.3941 -6.51356 0 - vertex 15.0129 -6.23993 -0.2 - vertex 14.3941 -6.51356 -0.2 - endloop - endfacet - facet normal -0.375168 0.926957 0 - outer loop - vertex 14.3941 -6.51356 -0.2 - vertex 13.793 -6.75686 0 - vertex 14.3941 -6.51356 0 - endloop - endfacet - facet normal -0.375168 0.926957 0 - outer loop - vertex 13.793 -6.75686 0 - vertex 14.3941 -6.51356 -0.2 - vertex 13.793 -6.75686 -0.2 - endloop - endfacet - facet normal -0.342394 0.939557 0 - outer loop - vertex 13.793 -6.75686 -0.2 - vertex 13.2041 -6.97145 0 - vertex 13.793 -6.75686 0 - endloop - endfacet - facet normal -0.342394 0.939557 0 - outer loop - vertex 13.2041 -6.97145 0 - vertex 13.793 -6.75686 -0.2 - vertex 13.2041 -6.97145 -0.2 - endloop - endfacet - facet normal -0.306665 0.951818 0 - outer loop - vertex 13.2041 -6.97145 -0.2 - vertex 12.6221 -7.15898 0 - vertex 13.2041 -6.97145 0 - endloop - endfacet - facet normal -0.306665 0.951818 0 - outer loop - vertex 12.6221 -7.15898 0 - vertex 13.2041 -6.97145 -0.2 - vertex 12.6221 -7.15898 -0.2 - endloop - endfacet - facet normal -0.268881 0.963173 0 - outer loop - vertex 12.6221 -7.15898 -0.2 - vertex 12.0414 -7.32107 0 - vertex 12.6221 -7.15898 0 - endloop - endfacet - facet normal -0.268881 0.963173 0 - outer loop - vertex 12.0414 -7.32107 0 - vertex 12.6221 -7.15898 -0.2 - vertex 12.0414 -7.32107 -0.2 - endloop - endfacet - facet normal -0.230173 0.97315 0 - outer loop - vertex 12.0414 -7.32107 -0.2 - vertex 11.4568 -7.45935 0 - vertex 12.0414 -7.32107 0 - endloop - endfacet - facet normal -0.230173 0.97315 0 - outer loop - vertex 11.4568 -7.45935 0 - vertex 12.0414 -7.32107 -0.2 - vertex 11.4568 -7.45935 -0.2 - endloop - endfacet - facet normal -0.191808 0.981433 0 - outer loop - vertex 11.4568 -7.45935 -0.2 - vertex 10.8627 -7.57545 0 - vertex 11.4568 -7.45935 0 - endloop - endfacet - facet normal -0.191808 0.981433 0 - outer loop - vertex 10.8627 -7.57545 0 - vertex 11.4568 -7.45935 -0.2 - vertex 10.8627 -7.57545 -0.2 - endloop - endfacet - facet normal -0.155029 0.98791 0 - outer loop - vertex 10.8627 -7.57545 -0.2 - vertex 10.2538 -7.67101 0 - vertex 10.8627 -7.57545 0 - endloop - endfacet - facet normal -0.155029 0.98791 0 - outer loop - vertex 10.2538 -7.67101 0 - vertex 10.8627 -7.57545 -0.2 - vertex 10.2538 -7.67101 -0.2 - endloop - endfacet - facet normal -0.120913 0.992663 0 - outer loop - vertex 10.2538 -7.67101 -0.2 - vertex 9.62459 -7.74765 0 - vertex 10.2538 -7.67101 0 - endloop - endfacet - facet normal -0.120913 0.992663 0 - outer loop - vertex 9.62459 -7.74765 0 - vertex 10.2538 -7.67101 -0.2 - vertex 9.62459 -7.74765 -0.2 - endloop - endfacet - facet normal -0.0902671 0.995918 0 - outer loop - vertex 9.62459 -7.74765 -0.2 - vertex 8.96966 -7.80701 0 - vertex 9.62459 -7.74765 0 - endloop - endfacet - facet normal -0.0902671 0.995918 0 - outer loop - vertex 8.96966 -7.80701 0 - vertex 9.62459 -7.74765 -0.2 - vertex 8.96966 -7.80701 -0.2 - endloop - endfacet - facet normal -0.0520328 0.998645 0 - outer loop - vertex 8.96966 -7.80701 -0.2 - vertex 7.56097 -7.88041 0 - vertex 8.96966 -7.80701 0 - endloop - endfacet - facet normal -0.0520328 0.998645 0 - outer loop - vertex 7.56097 -7.88041 0 - vertex 8.96966 -7.80701 -0.2 - vertex 7.56097 -7.88041 -0.2 - endloop - endfacet - facet normal -0.0211888 0.999775 0 - outer loop - vertex 7.56097 -7.88041 -0.2 - vertex 6.04455 -7.91255 0 - vertex 7.56097 -7.88041 0 - endloop - endfacet - facet normal -0.0211888 0.999775 0 - outer loop - vertex 6.04455 -7.91255 0 - vertex 7.56097 -7.88041 -0.2 - vertex 6.04455 -7.91255 -0.2 - endloop - endfacet - facet normal 0.00984088 0.999952 -0 - outer loop - vertex 6.04455 -7.91255 -0.2 - vertex 5.49083 -7.9071 0 - vertex 6.04455 -7.91255 0 - endloop - endfacet - facet normal 0.00984088 0.999952 0 - outer loop - vertex 5.49083 -7.9071 0 - vertex 6.04455 -7.91255 -0.2 - vertex 5.49083 -7.9071 -0.2 - endloop - endfacet - facet normal 0.0493656 0.998781 -0 - outer loop - vertex 5.49083 -7.9071 -0.2 - vertex 5.0434 -7.88498 0 - vertex 5.49083 -7.9071 0 - endloop - endfacet - facet normal 0.0493656 0.998781 0 - outer loop - vertex 5.0434 -7.88498 0 - vertex 5.49083 -7.9071 -0.2 - vertex 5.0434 -7.88498 -0.2 - endloop - endfacet - facet normal 0.110735 0.99385 -0 - outer loop - vertex 5.0434 -7.88498 -0.2 - vertex 4.67971 -7.84446 0 - vertex 5.0434 -7.88498 0 - endloop - endfacet - facet normal 0.110735 0.99385 0 - outer loop - vertex 4.67971 -7.84446 0 - vertex 5.0434 -7.88498 -0.2 - vertex 4.67971 -7.84446 -0.2 - endloop - endfacet - facet normal 0.196653 0.980473 -0 - outer loop - vertex 4.67971 -7.84446 -0.2 - vertex 4.37723 -7.78379 0 - vertex 4.67971 -7.84446 0 - endloop - endfacet - facet normal 0.196653 0.980473 0 - outer loop - vertex 4.37723 -7.78379 0 - vertex 4.67971 -7.84446 -0.2 - vertex 4.37723 -7.78379 -0.2 - endloop - endfacet - facet normal 0.298658 0.95436 -0 - outer loop - vertex 4.37723 -7.78379 -0.2 - vertex 4.11342 -7.70123 0 - vertex 4.37723 -7.78379 0 - endloop - endfacet - facet normal 0.298658 0.95436 0 - outer loop - vertex 4.11342 -7.70123 0 - vertex 4.37723 -7.78379 -0.2 - vertex 4.11342 -7.70123 -0.2 - endloop - endfacet - facet normal 0.39403 0.919098 -0 - outer loop - vertex 4.11342 -7.70123 -0.2 - vertex 3.86574 -7.59505 0 - vertex 4.11342 -7.70123 0 - endloop - endfacet - facet normal 0.39403 0.919098 0 - outer loop - vertex 3.86574 -7.59505 0 - vertex 4.11342 -7.70123 -0.2 - vertex 3.86574 -7.59505 -0.2 - endloop - endfacet - facet normal 0.472054 0.88157 -0 - outer loop - vertex 3.86574 -7.59505 -0.2 - vertex 3.40104 -7.34622 0 - vertex 3.86574 -7.59505 0 - endloop - endfacet - facet normal 0.472054 0.88157 0 - outer loop - vertex 3.40104 -7.34622 0 - vertex 3.86574 -7.59505 -0.2 - vertex 3.40104 -7.34622 -0.2 - endloop - endfacet - facet normal 0.50336 0.864077 -0 - outer loop - vertex 3.40104 -7.34622 -0.2 - vertex 2.71562 -6.94693 0 - vertex 3.40104 -7.34622 0 - endloop - endfacet - facet normal 0.50336 0.864077 0 - outer loop - vertex 2.71562 -6.94693 0 - vertex 3.40104 -7.34622 -0.2 - vertex 2.71562 -6.94693 -0.2 - endloop - endfacet - facet normal 0.526285 0.850308 -0 - outer loop - vertex 2.71562 -6.94693 -0.2 - vertex 1.05193 -5.91722 0 - vertex 2.71562 -6.94693 0 - endloop - endfacet - facet normal 0.526285 0.850308 0 - outer loop - vertex 1.05193 -5.91722 0 - vertex 2.71562 -6.94693 -0.2 - vertex 1.05193 -5.91722 -0.2 - endloop - endfacet - facet normal 0.529768 0.848143 -0 - outer loop - vertex 1.05193 -5.91722 -0.2 - vertex -0.694871 -4.82613 0 - vertex 1.05193 -5.91722 0 - endloop - endfacet - facet normal 0.529768 0.848143 0 - outer loop - vertex -0.694871 -4.82613 0 - vertex 1.05193 -5.91722 -0.2 - vertex -0.694871 -4.82613 -0.2 - endloop - endfacet - facet normal 0.507777 0.861489 -0 - outer loop - vertex -0.694871 -4.82613 -0.2 - vertex -2.47177 -3.7788 0 - vertex -0.694871 -4.82613 0 - endloop - endfacet - facet normal 0.507777 0.861489 0 - outer loop - vertex -2.47177 -3.7788 0 - vertex -0.694871 -4.82613 -0.2 - vertex -2.47177 -3.7788 -0.2 - endloop - endfacet - facet normal 0.55979 0.828634 -0 - outer loop - vertex -2.47177 -3.7788 -0.2 - vertex -2.8551 -3.51984 0 - vertex -2.47177 -3.7788 0 - endloop - endfacet - facet normal 0.55979 0.828634 0 - outer loop - vertex -2.8551 -3.51984 0 - vertex -2.47177 -3.7788 -0.2 - vertex -2.8551 -3.51984 -0.2 - endloop - endfacet - facet normal 0.612658 0.790348 -0 - outer loop - vertex -2.8551 -3.51984 -0.2 - vertex -3.18232 -3.26618 0 - vertex -2.8551 -3.51984 0 - endloop - endfacet - facet normal 0.612658 0.790348 0 - outer loop - vertex -3.18232 -3.26618 0 - vertex -2.8551 -3.51984 -0.2 - vertex -3.18232 -3.26618 -0.2 - endloop - endfacet - facet normal 0.673628 0.73907 -0 - outer loop - vertex -3.18232 -3.26618 -0.2 - vertex -3.44099 -3.03042 0 - vertex -3.18232 -3.26618 0 - endloop - endfacet - facet normal 0.673628 0.73907 0 - outer loop - vertex -3.44099 -3.03042 0 - vertex -3.18232 -3.26618 -0.2 - vertex -3.44099 -3.03042 -0.2 - endloop - endfacet - facet normal 0.756151 0.654397 0 - outer loop - vertex -3.44099 -3.03042 0 - vertex -3.61865 -2.82513 -0.2 - vertex -3.61865 -2.82513 0 - endloop - endfacet - facet normal 0.756151 0.654397 0 - outer loop - vertex -3.61865 -2.82513 -0.2 - vertex -3.44099 -3.03042 0 - vertex -3.44099 -3.03042 -0.2 - endloop - endfacet - facet normal 0.887562 0.460688 0 - outer loop - vertex -3.61865 -2.82513 0 - vertex -3.70285 -2.66292 -0.2 - vertex -3.70285 -2.66292 0 - endloop - endfacet - facet normal 0.887562 0.460688 0 - outer loop - vertex -3.70285 -2.66292 -0.2 - vertex -3.61865 -2.82513 0 - vertex -3.61865 -2.82513 -0.2 - endloop - endfacet - facet normal 0.998663 0.0516973 0 - outer loop - vertex -3.70285 -2.66292 0 - vertex -3.70601 -2.60189 -0.2 - vertex -3.70601 -2.60189 0 - endloop - endfacet - facet normal 0.998663 0.0516973 0 - outer loop - vertex -3.70601 -2.60189 -0.2 - vertex -3.70285 -2.66292 0 - vertex -3.70285 -2.66292 -0.2 - endloop - endfacet - facet normal 0.877591 -0.479411 0 - outer loop - vertex -3.70601 -2.60189 0 - vertex -3.68113 -2.55635 -0.2 - vertex -3.68113 -2.55635 0 - endloop - endfacet - facet normal 0.877591 -0.479411 0 - outer loop - vertex -3.68113 -2.55635 -0.2 - vertex -3.70601 -2.60189 0 - vertex -3.70601 -2.60189 -0.2 - endloop - endfacet - facet normal 0.463305 -0.886199 0 - outer loop - vertex -3.68113 -2.55635 -0.2 - vertex -3.62666 -2.52788 0 - vertex -3.68113 -2.55635 0 - endloop - endfacet - facet normal 0.463305 -0.886199 0 - outer loop - vertex -3.62666 -2.52788 0 - vertex -3.68113 -2.55635 -0.2 - vertex -3.62666 -2.52788 -0.2 - endloop - endfacet - facet normal 0.114199 -0.993458 0 - outer loop - vertex -3.62666 -2.52788 -0.2 - vertex -3.54104 -2.51804 0 - vertex -3.62666 -2.52788 0 - endloop - endfacet - facet normal 0.114199 -0.993458 0 - outer loop - vertex -3.54104 -2.51804 0 - vertex -3.62666 -2.52788 -0.2 - vertex -3.54104 -2.51804 -0.2 - endloop - endfacet - facet normal -0.250917 -0.968009 0 - outer loop - vertex -3.54104 -2.51804 -0.2 - vertex -3.301 -2.58026 0 - vertex -3.54104 -2.51804 0 - endloop - endfacet - facet normal -0.250917 -0.968009 -0 - outer loop - vertex -3.301 -2.58026 0 - vertex -3.54104 -2.51804 -0.2 - vertex -3.301 -2.58026 -0.2 - endloop - endfacet - facet normal -0.37095 -0.928653 0 - outer loop - vertex -3.301 -2.58026 -0.2 - vertex -2.87688 -2.74967 0 - vertex -3.301 -2.58026 0 - endloop - endfacet - facet normal -0.37095 -0.928653 -0 - outer loop - vertex -2.87688 -2.74967 0 - vertex -3.301 -2.58026 -0.2 - vertex -2.87688 -2.74967 -0.2 - endloop - endfacet - facet normal -0.415868 -0.909425 0 - outer loop - vertex -2.87688 -2.74967 -0.2 - vertex -2.32857 -3.00041 0 - vertex -2.87688 -2.74967 0 - endloop - endfacet - facet normal -0.415868 -0.909425 -0 - outer loop - vertex -2.32857 -3.00041 0 - vertex -2.87688 -2.74967 -0.2 - vertex -2.32857 -3.00041 -0.2 - endloop - endfacet - facet normal -0.447064 -0.894502 0 - outer loop - vertex -2.32857 -3.00041 -0.2 - vertex -1.71595 -3.30659 0 - vertex -2.32857 -3.00041 0 - endloop - endfacet - facet normal -0.447064 -0.894502 -0 - outer loop - vertex -1.71595 -3.30659 0 - vertex -2.32857 -3.00041 -0.2 - vertex -1.71595 -3.30659 -0.2 - endloop - endfacet - facet normal -0.450995 -0.892526 0 - outer loop - vertex -1.71595 -3.30659 -0.2 - vertex -1.01669 -3.65993 0 - vertex -1.71595 -3.30659 0 - endloop - endfacet - facet normal -0.450995 -0.892526 -0 - outer loop - vertex -1.01669 -3.65993 0 - vertex -1.71595 -3.30659 -0.2 - vertex -1.01669 -3.65993 -0.2 - endloop - endfacet - facet normal -0.429074 -0.903269 0 - outer loop - vertex -1.01669 -3.65993 -0.2 - vertex -0.313177 -3.99411 0 - vertex -1.01669 -3.65993 0 - endloop - endfacet - facet normal -0.429074 -0.903269 -0 - outer loop - vertex -0.313177 -3.99411 0 - vertex -1.01669 -3.65993 -0.2 - vertex -0.313177 -3.99411 -0.2 - endloop - endfacet - facet normal -0.406667 -0.913576 0 - outer loop - vertex -0.313177 -3.99411 -0.2 - vertex 0.394112 -4.30895 0 - vertex -0.313177 -3.99411 0 - endloop - endfacet - facet normal -0.406667 -0.913576 -0 - outer loop - vertex 0.394112 -4.30895 0 - vertex -0.313177 -3.99411 -0.2 - vertex 0.394112 -4.30895 -0.2 - endloop - endfacet - facet normal -0.383759 -0.923433 0 - outer loop - vertex 0.394112 -4.30895 -0.2 - vertex 1.10471 -4.60426 0 - vertex 0.394112 -4.30895 0 - endloop - endfacet - facet normal -0.383759 -0.923433 -0 - outer loop - vertex 1.10471 -4.60426 0 - vertex 0.394112 -4.30895 -0.2 - vertex 1.10471 -4.60426 -0.2 - endloop - endfacet - facet normal -0.360336 -0.932823 0 - outer loop - vertex 1.10471 -4.60426 -0.2 - vertex 1.81816 -4.87986 0 - vertex 1.10471 -4.60426 0 - endloop - endfacet - facet normal -0.360336 -0.932823 -0 - outer loop - vertex 1.81816 -4.87986 0 - vertex 1.10471 -4.60426 -0.2 - vertex 1.81816 -4.87986 -0.2 - endloop - endfacet - facet normal -0.33638 -0.941726 0 - outer loop - vertex 1.81816 -4.87986 -0.2 - vertex 2.534 -5.13555 0 - vertex 1.81816 -4.87986 0 - endloop - endfacet - facet normal -0.33638 -0.941726 -0 - outer loop - vertex 2.534 -5.13555 0 - vertex 1.81816 -4.87986 -0.2 - vertex 2.534 -5.13555 -0.2 - endloop - endfacet - facet normal -0.311879 -0.950122 0 - outer loop - vertex 2.534 -5.13555 -0.2 - vertex 3.25174 -5.37115 0 - vertex 2.534 -5.13555 0 - endloop - endfacet - facet normal -0.311879 -0.950122 -0 - outer loop - vertex 3.25174 -5.37115 0 - vertex 2.534 -5.13555 -0.2 - vertex 3.25174 -5.37115 -0.2 - endloop - endfacet - facet normal -0.286817 -0.957985 0 - outer loop - vertex 3.25174 -5.37115 -0.2 - vertex 3.97093 -5.58648 0 - vertex 3.25174 -5.37115 0 - endloop - endfacet - facet normal -0.286817 -0.957985 -0 - outer loop - vertex 3.97093 -5.58648 0 - vertex 3.25174 -5.37115 -0.2 - vertex 3.97093 -5.58648 -0.2 - endloop - endfacet - facet normal -0.262141 -0.965029 0 - outer loop - vertex 3.97093 -5.58648 -0.2 - vertex 4.51611 -5.73457 0 - vertex 3.97093 -5.58648 0 - endloop - endfacet - facet normal -0.262141 -0.965029 -0 - outer loop - vertex 4.51611 -5.73457 0 - vertex 3.97093 -5.58648 -0.2 - vertex 4.51611 -5.73457 -0.2 - endloop - endfacet - facet normal -0.230397 -0.973097 0 - outer loop - vertex 4.51611 -5.73457 -0.2 - vertex 4.99906 -5.84891 0 - vertex 4.51611 -5.73457 0 - endloop - endfacet - facet normal -0.230397 -0.973097 -0 - outer loop - vertex 4.99906 -5.84891 0 - vertex 4.51611 -5.73457 -0.2 - vertex 4.99906 -5.84891 -0.2 - endloop - endfacet - facet normal -0.18567 -0.982612 0 - outer loop - vertex 4.99906 -5.84891 -0.2 - vertex 5.4311 -5.93055 0 - vertex 4.99906 -5.84891 0 - endloop - endfacet - facet normal -0.18567 -0.982612 -0 - outer loop - vertex 5.4311 -5.93055 0 - vertex 4.99906 -5.84891 -0.2 - vertex 5.4311 -5.93055 -0.2 - endloop - endfacet - facet normal -0.126289 -0.991994 0 - outer loop - vertex 5.4311 -5.93055 -0.2 - vertex 5.82356 -5.98052 0 - vertex 5.4311 -5.93055 0 - endloop - endfacet - facet normal -0.126289 -0.991994 -0 - outer loop - vertex 5.82356 -5.98052 0 - vertex 5.4311 -5.93055 -0.2 - vertex 5.82356 -5.98052 -0.2 - endloop - endfacet - facet normal -0.0529968 -0.998595 0 - outer loop - vertex 5.82356 -5.98052 -0.2 - vertex 6.18777 -5.99984 0 - vertex 5.82356 -5.98052 0 - endloop - endfacet - facet normal -0.0529968 -0.998595 -0 - outer loop - vertex 6.18777 -5.99984 0 - vertex 5.82356 -5.98052 -0.2 - vertex 6.18777 -5.99984 -0.2 - endloop - endfacet - facet normal 0.0295577 -0.999563 0 - outer loop - vertex 6.18777 -5.99984 -0.2 - vertex 6.53505 -5.98957 0 - vertex 6.18777 -5.99984 0 - endloop - endfacet - facet normal 0.0295577 -0.999563 0 - outer loop - vertex 6.53505 -5.98957 0 - vertex 6.18777 -5.99984 -0.2 - vertex 6.53505 -5.98957 -0.2 - endloop - endfacet - facet normal 0.112922 -0.993604 0 - outer loop - vertex 6.53505 -5.98957 -0.2 - vertex 6.87672 -5.95074 0 - vertex 6.53505 -5.98957 0 - endloop - endfacet - facet normal 0.112922 -0.993604 0 - outer loop - vertex 6.87672 -5.95074 0 - vertex 6.53505 -5.98957 -0.2 - vertex 6.87672 -5.95074 -0.2 - endloop - endfacet - facet normal 0.18762 -0.982242 0 - outer loop - vertex 6.87672 -5.95074 -0.2 - vertex 7.2241 -5.88439 0 - vertex 6.87672 -5.95074 0 - endloop - endfacet - facet normal 0.18762 -0.982242 0 - outer loop - vertex 7.2241 -5.88439 0 - vertex 6.87672 -5.95074 -0.2 - vertex 7.2241 -5.88439 -0.2 - endloop - endfacet - facet normal 0.21982 -0.975541 0 - outer loop - vertex 7.2241 -5.88439 -0.2 - vertex 7.809 -5.75259 0 - vertex 7.2241 -5.88439 0 - endloop - endfacet - facet normal 0.21982 -0.975541 0 - outer loop - vertex 7.809 -5.75259 0 - vertex 7.2241 -5.88439 -0.2 - vertex 7.809 -5.75259 -0.2 + vertex 7.79727 -5.75259 0 + vertex 7.21237 -5.88439 -3 + vertex 7.79727 -5.75259 -3 endloop endfacet facet normal 0.71334 0.700818 0 outer loop - vertex 7.809 -5.75259 0 - vertex 7.04277 -4.97268 -0.2 - vertex 7.04277 -4.97268 0 + vertex 7.79727 -5.75259 0 + vertex 7.03104 -4.97268 -3 + vertex 7.03104 -4.97268 0 endloop endfacet facet normal 0.71334 0.700818 0 outer loop - vertex 7.04277 -4.97268 -0.2 - vertex 7.809 -5.75259 0 - vertex 7.809 -5.75259 -0.2 + vertex 7.03104 -4.97268 -3 + vertex 7.79727 -5.75259 0 + vertex 7.79727 -5.75259 -3 endloop endfacet - facet normal 0.735784 0.677216 0 + facet normal 0.78473 0.619838 0 outer loop - vertex 7.04277 -4.97268 0 - vertex 6.78219 -4.68956 -0.2 - vertex 6.78219 -4.68956 0 + vertex 7.03104 -4.97268 0 + vertex 5.97791 -3.63939 -3 + vertex 5.97791 -3.63939 0 endloop endfacet - facet normal 0.735784 0.677216 0 + facet normal 0.78473 0.619838 0 outer loop - vertex 6.78219 -4.68956 -0.2 - vertex 7.04277 -4.97268 0 - vertex 7.04277 -4.97268 -0.2 + vertex 5.97791 -3.63939 -3 + vertex 7.03104 -4.97268 0 + vertex 7.03104 -4.97268 -3 endloop endfacet - facet normal 0.771549 0.636169 0 + facet normal 0.861751 0.507331 0 outer loop - vertex 6.78219 -4.68956 0 - vertex 6.51759 -4.36865 -0.2 - vertex 6.51759 -4.36865 0 + vertex 5.97791 -3.63939 0 + vertex 5.02006 -2.01238 -3 + vertex 5.02006 -2.01238 0 endloop endfacet - facet normal 0.771549 0.636169 0 + facet normal 0.861751 0.507331 0 outer loop - vertex 6.51759 -4.36865 -0.2 - vertex 6.78219 -4.68956 0 - vertex 6.78219 -4.68956 -0.2 + vertex 5.02006 -2.01238 -3 + vertex 5.97791 -3.63939 0 + vertex 5.97791 -3.63939 -3 endloop endfacet - facet normal 0.79877 0.601637 0 + facet normal 0.918179 0.396167 0 outer loop - vertex 6.51759 -4.36865 0 - vertex 6.2523 -4.01644 -0.2 - vertex 6.2523 -4.01644 0 + vertex 5.02006 -2.01238 0 + vertex 4.37015 -0.506109 -3 + vertex 4.37015 -0.506109 0 endloop endfacet - facet normal 0.79877 0.601637 0 + facet normal 0.918179 0.396167 0 outer loop - vertex 6.2523 -4.01644 -0.2 - vertex 6.51759 -4.36865 0 - vertex 6.51759 -4.36865 -0.2 + vertex 4.37015 -0.506109 -3 + vertex 5.02006 -2.01238 0 + vertex 5.02006 -2.01238 -3 endloop endfacet - facet normal 0.820534 0.571597 0 + facet normal 0.99125 0.131995 0 outer loop - vertex 6.2523 -4.01644 0 - vertex 5.98964 -3.63939 -0.2 - vertex 5.98964 -3.63939 0 + vertex 4.37015 -0.506109 0 + vertex 4.24084 0.464987 -3 + vertex 4.24084 0.464987 0 endloop endfacet - facet normal 0.820534 0.571597 0 + facet normal 0.99125 0.131995 0 outer loop - vertex 5.98964 -3.63939 -0.2 - vertex 6.2523 -4.01644 0 - vertex 6.2523 -4.01644 -0.2 + vertex 4.24084 0.464987 -3 + vertex 4.37015 -0.506109 0 + vertex 4.37015 -0.506109 -3 endloop endfacet - facet normal 0.846837 0.531853 0 + facet normal 0.880686 -0.473701 0 outer loop - vertex 5.98964 -3.63939 0 - vertex 5.48552 -2.8367 -0.2 - vertex 5.48552 -2.8367 0 + vertex 4.24084 0.464987 0 + vertex 4.39665 0.754678 -3 + vertex 4.39665 0.754678 0 endloop endfacet - facet normal 0.846837 0.531853 0 + facet normal 0.880686 -0.473701 0 outer loop - vertex 5.48552 -2.8367 -0.2 - vertex 5.98964 -3.63939 0 - vertex 5.98964 -3.63939 -0.2 + vertex 4.39665 0.754678 -3 + vertex 4.24084 0.464987 0 + vertex 4.24084 0.464987 -3 endloop endfacet - facet normal 0.876057 0.482207 0 + facet normal -0.827333 -0.561712 0 outer loop - vertex 5.48552 -2.8367 0 - vertex 5.03179 -2.01239 -0.2 - vertex 5.03179 -2.01239 0 + vertex 4.6091 0.441775 -3 + vertex 4.39665 0.754678 0 + vertex 4.39665 0.754678 -3 endloop endfacet - facet normal 0.876057 0.482207 0 + facet normal -0.827333 -0.561712 0 outer loop - vertex 5.03179 -2.01239 -0.2 - vertex 5.48552 -2.8367 0 - vertex 5.48552 -2.8367 -0.2 + vertex 4.39665 0.754678 0 + vertex 4.6091 0.441775 -3 + vertex 4.6091 0.441775 0 endloop endfacet - facet normal 0.903486 0.428618 0 + facet normal -0.774222 -0.632914 0 outer loop - vertex 5.03179 -2.01239 0 - vertex 4.65505 -1.21825 -0.2 - vertex 4.65505 -1.21825 0 + vertex 6.41545 -1.76788 -3 + vertex 4.6091 0.441775 0 + vertex 4.6091 0.441775 -3 endloop endfacet - facet normal 0.903486 0.428618 0 + facet normal -0.774222 -0.632914 0 outer loop - vertex 4.65505 -1.21825 -0.2 - vertex 5.03179 -2.01239 0 - vertex 5.03179 -2.01239 -0.2 + vertex 4.6091 0.441775 0 + vertex 6.41545 -1.76788 -3 + vertex 6.41545 -1.76788 0 endloop endfacet - facet normal 0.925537 0.378657 0 + facet normal -0.707099 -0.707114 0 outer loop - vertex 4.65505 -1.21825 0 - vertex 4.50386 -0.848697 -0.2 - vertex 4.50386 -0.848697 0 + vertex 6.41545 -1.76788 -3 + vertex 7.74282 -3.09522 0 + vertex 6.41545 -1.76788 0 endloop endfacet - facet normal 0.925537 0.378657 0 + facet normal -0.707099 -0.707114 -0 outer loop - vertex 4.50386 -0.848697 -0.2 - vertex 4.65505 -1.21825 0 - vertex 4.65505 -1.21825 -0.2 + vertex 7.74282 -3.09522 0 + vertex 6.41545 -1.76788 -3 + vertex 7.74282 -3.09522 -3 endloop endfacet - facet normal 0.942067 0.335426 0 + facet normal -0.583644 -0.812009 0 outer loop - vertex 4.50386 -0.848697 0 - vertex 4.38188 -0.506111 -0.2 - vertex 4.38188 -0.506111 0 + vertex 7.74282 -3.09522 -3 + vertex 9.01294 -4.00814 0 + vertex 7.74282 -3.09522 0 endloop endfacet - facet normal 0.942067 0.335426 0 + facet normal -0.583644 -0.812009 -0 outer loop - vertex 4.38188 -0.506111 -0.2 - vertex 4.50386 -0.848697 0 - vertex 4.50386 -0.848697 -0.2 + vertex 9.01294 -4.00814 0 + vertex 7.74282 -3.09522 -3 + vertex 9.01294 -4.00814 -3 endloop endfacet - facet normal 0.960602 0.277927 0 + facet normal -0.385065 -0.92289 0 outer loop - vertex 4.38188 -0.506111 0 - vertex 4.29244 -0.196974 -0.2 - vertex 4.29244 -0.196974 0 + vertex 9.01294 -4.00814 -3 + vertex 10.2758 -4.53506 0 + vertex 9.01294 -4.00814 0 endloop endfacet - facet normal 0.960602 0.277927 0 + facet normal -0.385065 -0.92289 -0 outer loop - vertex 4.29244 -0.196974 -0.2 - vertex 4.38188 -0.506111 0 - vertex 4.38188 -0.506111 -0.2 + vertex 10.2758 -4.53506 0 + vertex 9.01294 -4.00814 -3 + vertex 10.2758 -4.53506 -3 endloop endfacet - facet normal 0.980763 0.1952 0 + facet normal -0.128613 -0.991695 0 outer loop - vertex 4.29244 -0.196974 0 - vertex 4.23886 0.0722368 -0.2 - vertex 4.23886 0.0722368 0 + vertex 10.2758 -4.53506 -3 + vertex 11.5814 -4.70438 0 + vertex 10.2758 -4.53506 0 endloop endfacet - facet normal 0.980763 0.1952 0 + facet normal -0.128613 -0.991695 -0 outer loop - vertex 4.23886 0.0722368 -0.2 - vertex 4.29244 -0.196974 0 - vertex 4.29244 -0.196974 -0.2 + vertex 11.5814 -4.70438 0 + vertex 10.2758 -4.53506 -3 + vertex 11.5814 -4.70438 -3 endloop endfacet - facet normal 0.997919 0.0644811 0 + facet normal 0.142467 -0.9898 0 outer loop - vertex 4.23886 0.0722368 0 - vertex 4.22446 0.295049 -0.2 - vertex 4.22446 0.295049 0 + vertex 11.5814 -4.70438 -3 + vertex 12.4032 -4.58609 0 + vertex 11.5814 -4.70438 0 endloop endfacet - facet normal 0.997919 0.0644811 0 + facet normal 0.142467 -0.9898 0 outer loop - vertex 4.22446 0.295049 -0.2 - vertex 4.23886 0.0722368 0 - vertex 4.23886 0.0722368 -0.2 + vertex 12.4032 -4.58609 0 + vertex 11.5814 -4.70438 -3 + vertex 12.4032 -4.58609 -3 endloop endfacet - facet normal 0.986595 -0.163189 0 + facet normal 0.390375 -0.920656 0 outer loop - vertex 4.22446 0.295049 0 - vertex 4.25257 0.464986 -0.2 - vertex 4.25257 0.464986 0 + vertex 12.4032 -4.58609 -3 + vertex 13.172 -4.2601 0 + vertex 12.4032 -4.58609 0 endloop endfacet - facet normal 0.986595 -0.163189 0 + facet normal 0.390375 -0.920656 0 outer loop - vertex 4.25257 0.464986 -0.2 - vertex 4.22446 0.295049 0 - vertex 4.22446 0.295049 -0.2 + vertex 13.172 -4.2601 0 + vertex 12.4032 -4.58609 -3 + vertex 13.172 -4.2601 -3 endloop endfacet - facet normal 0.930706 -0.365767 0 + facet normal 0.607582 -0.794257 0 outer loop - vertex 4.25257 0.464986 0 - vertex 4.33872 0.684191 -0.2 - vertex 4.33872 0.684191 0 + vertex 13.172 -4.2601 -3 + vertex 13.8131 -3.7697 0 + vertex 13.172 -4.2601 0 endloop endfacet - facet normal 0.930706 -0.365767 0 + facet normal 0.607582 -0.794257 0 outer loop - vertex 4.33872 0.684191 -0.2 - vertex 4.25257 0.464986 0 - vertex 4.25257 0.464986 -0.2 + vertex 13.8131 -3.7697 0 + vertex 13.172 -4.2601 -3 + vertex 13.8131 -3.7697 -3 endloop endfacet - facet normal 0.83908 -0.544009 0 + facet normal 0.812619 -0.582795 0 outer loop - vertex 4.33872 0.684191 0 - vertex 4.3737 0.738144 -0.2 - vertex 4.3737 0.738144 0 + vertex 13.8131 -3.7697 0 + vertex 14.2516 -3.15818 -3 + vertex 14.2516 -3.15818 0 endloop endfacet - facet normal 0.83908 -0.544009 0 + facet normal 0.812619 -0.582795 0 outer loop - vertex 4.3737 0.738144 -0.2 - vertex 4.33872 0.684191 0 - vertex 4.33872 0.684191 -0.2 + vertex 14.2516 -3.15818 -3 + vertex 13.8131 -3.7697 0 + vertex 13.8131 -3.7697 -3 endloop endfacet - facet normal 0.430226 -0.902721 0 + facet normal 0.980799 -0.195021 0 outer loop - vertex 4.3737 0.738144 -0.2 - vertex 4.40839 0.754677 0 - vertex 4.3737 0.738144 0 + vertex 14.2516 -3.15818 0 + vertex 14.333 -2.7489 -3 + vertex 14.333 -2.7489 0 endloop endfacet - facet normal 0.430226 -0.902721 0 + facet normal 0.980799 -0.195021 0 outer loop - vertex 4.40839 0.754677 0 - vertex 4.3737 0.738144 -0.2 - vertex 4.40839 0.754677 -0.2 + vertex 14.333 -2.7489 -3 + vertex 14.2516 -3.15818 0 + vertex 14.2516 -3.15818 -3 endloop endfacet - facet normal -0.483736 -0.875214 0 + facet normal 0.98573 0.168336 0 outer loop - vertex 4.40839 0.754677 -0.2 - vertex 4.44662 0.733548 0 - vertex 4.40839 0.754677 0 + vertex 14.333 -2.7489 0 + vertex 14.2455 -2.23644 -3 + vertex 14.2455 -2.23644 0 endloop endfacet - facet normal -0.483736 -0.875214 -0 + facet normal 0.98573 0.168336 0 outer loop - vertex 4.44662 0.733548 0 - vertex 4.40839 0.754677 -0.2 - vertex 4.44662 0.733548 -0.2 + vertex 14.2455 -2.23644 -3 + vertex 14.333 -2.7489 0 + vertex 14.333 -2.7489 -3 endloop endfacet - facet normal -0.791399 -0.6113 0 + facet normal 0.892341 0.451362 0 outer loop - vertex 4.49221 0.674515 -0.2 - vertex 4.44662 0.733548 0 - vertex 4.44662 0.733548 -0.2 + vertex 14.2455 -2.23644 0 + vertex 13.5923 -0.94501 -3 + vertex 13.5923 -0.94501 0 endloop endfacet - facet normal -0.791399 -0.6113 0 + facet normal 0.892341 0.451362 0 outer loop - vertex 4.44662 0.733548 0 - vertex 4.49221 0.674515 -0.2 - vertex 4.49221 0.674515 0 + vertex 13.5923 -0.94501 -3 + vertex 14.2455 -2.23644 0 + vertex 14.2455 -2.23644 -3 endloop endfacet - facet normal -0.875249 -0.483672 0 + facet normal 0.784902 0.61962 0 outer loop - vertex 4.62083 0.441773 -0.2 - vertex 4.49221 0.674515 0 - vertex 4.49221 0.674515 -0.2 + vertex 13.5923 -0.94501 0 + vertex 12.3489 0.629998 -3 + vertex 12.3489 0.629998 0 endloop endfacet - facet normal -0.875249 -0.483672 0 + facet normal 0.784902 0.61962 0 outer loop - vertex 4.49221 0.674515 0 - vertex 4.62083 0.441773 -0.2 - vertex 4.62083 0.441773 0 + vertex 12.3489 0.629998 -3 + vertex 13.5923 -0.94501 0 + vertex 13.5923 -0.94501 -3 endloop endfacet - facet normal -0.8234 -0.567461 0 + facet normal 0.706306 0.707906 -0 outer loop - vertex 4.83246 0.134689 -0.2 - vertex 4.62083 0.441773 0 - vertex 4.62083 0.441773 -0.2 + vertex 12.3489 0.629998 -3 + vertex 10.5724 2.40247 0 + vertex 12.3489 0.629998 0 endloop endfacet - facet normal -0.8234 -0.567461 0 + facet normal 0.706306 0.707906 0 outer loop - vertex 4.62083 0.441773 0 - vertex 4.83246 0.134689 -0.2 - vertex 4.83246 0.134689 0 + vertex 10.5724 2.40247 0 + vertex 12.3489 0.629998 -3 + vertex 10.5724 2.40247 -3 endloop endfacet - facet normal -0.783851 -0.620949 0 + facet normal 0.641095 0.767462 -0 outer loop - vertex 5.24358 -0.384283 -0.2 - vertex 4.83246 0.134689 0 - vertex 4.83246 0.134689 -0.2 + vertex 10.5724 2.40247 -3 + vertex 9.13441 3.60373 0 + vertex 10.5724 2.40247 0 endloop endfacet - facet normal -0.783851 -0.620949 0 + facet normal 0.641095 0.767462 0 outer loop - vertex 4.83246 0.134689 0 - vertex 5.24358 -0.384283 -0.2 - vertex 5.24358 -0.384283 0 + vertex 9.13441 3.60373 0 + vertex 10.5724 2.40247 -3 + vertex 9.13441 3.60373 -3 endloop endfacet - facet normal -0.766673 -0.642037 0 + facet normal 0.56747 0.823394 -0 outer loop - vertex 5.79491 -1.04264 -0.2 - vertex 5.24358 -0.384283 0 - vertex 5.24358 -0.384283 -0.2 + vertex 9.13441 3.60373 -3 + vertex 8.18559 4.25764 0 + vertex 9.13441 3.60373 0 endloop endfacet - facet normal -0.766673 -0.642037 0 + facet normal 0.56747 0.823394 0 outer loop - vertex 5.24358 -0.384283 0 - vertex 5.79491 -1.04264 -0.2 - vertex 5.79491 -1.04264 0 + vertex 8.18559 4.25764 0 + vertex 9.13441 3.60373 -3 + vertex 8.18559 4.25764 -3 endloop endfacet - facet normal -0.753766 -0.657143 0 + facet normal 0.457713 0.8891 -0 outer loop - vertex 6.42718 -1.76788 -0.2 - vertex 5.79491 -1.04264 0 - vertex 5.79491 -1.04264 -0.2 + vertex 8.18559 4.25764 -3 + vertex 5.26682 5.76024 0 + vertex 8.18559 4.25764 0 endloop endfacet - facet normal -0.753766 -0.657143 0 + facet normal 0.457713 0.8891 0 outer loop - vertex 5.79491 -1.04264 0 - vertex 6.42718 -1.76788 -0.2 - vertex 6.42718 -1.76788 0 + vertex 5.26682 5.76024 0 + vertex 8.18559 4.25764 -3 + vertex 5.26682 5.76024 -3 endloop endfacet - facet normal -0.728754 -0.684775 0 + facet normal 0.356921 0.934135 -0 outer loop - vertex 7.10115 -2.48513 -0.2 - vertex 6.42718 -1.76788 0 - vertex 6.42718 -1.76788 -0.2 + vertex 5.26682 5.76024 -3 + vertex 1.66409 7.13679 0 + vertex 5.26682 5.76024 0 endloop endfacet - facet normal -0.728754 -0.684775 0 + facet normal 0.356921 0.934135 0 outer loop - vertex 6.42718 -1.76788 0 - vertex 7.10115 -2.48513 -0.2 - vertex 7.10115 -2.48513 0 + vertex 1.66409 7.13679 0 + vertex 5.26682 5.76024 -3 + vertex 1.66409 7.13679 -3 endloop endfacet - facet normal -0.682466 -0.730918 0 + facet normal 0.389896 0.920859 -0 outer loop - vertex 7.10115 -2.48513 -0.2 - vertex 7.75455 -3.09522 0 - vertex 7.10115 -2.48513 0 + vertex 1.66409 7.13679 -3 + vertex -0.248642 7.94666 0 + vertex 1.66409 7.13679 0 endloop endfacet - facet normal -0.682466 -0.730918 -0 + facet normal 0.389896 0.920859 0 outer loop - vertex 7.75455 -3.09522 0 - vertex 7.10115 -2.48513 -0.2 - vertex 7.75455 -3.09522 -0.2 + vertex -0.248642 7.94666 0 + vertex 1.66409 7.13679 -3 + vertex -0.248642 7.94666 -3 endloop endfacet - facet normal -0.638085 -0.769966 0 + facet normal 0.471857 0.881675 -0 outer loop - vertex 7.75455 -3.09522 -0.2 - vertex 8.0755 -3.36119 0 - vertex 7.75455 -3.09522 0 + vertex -0.248642 7.94666 -3 + vertex -2.78119 9.30203 0 + vertex -0.248642 7.94666 0 endloop endfacet - facet normal -0.638085 -0.769966 -0 + facet normal 0.471857 0.881675 0 outer loop - vertex 8.0755 -3.36119 0 - vertex 7.75455 -3.09522 -0.2 - vertex 8.0755 -3.36119 -0.2 + vertex -2.78119 9.30203 0 + vertex -0.248642 7.94666 -3 + vertex -2.78119 9.30203 -3 endloop endfacet - facet normal -0.60305 -0.797703 0 + facet normal 0.524404 0.851469 -0 outer loop - vertex 8.0755 -3.36119 -0.2 - vertex 8.39365 -3.60171 0 - vertex 8.0755 -3.36119 0 + vertex -2.78119 9.30203 -3 + vertex -4.99153 10.6633 0 + vertex -2.78119 9.30203 0 endloop endfacet - facet normal -0.60305 -0.797703 -0 + facet normal 0.524404 0.851469 0 outer loop - vertex 8.39365 -3.60171 0 - vertex 8.0755 -3.36119 -0.2 - vertex 8.39365 -3.60171 -0.2 + vertex -4.99153 10.6633 0 + vertex -2.78119 9.30203 -3 + vertex -4.99153 10.6633 -3 endloop endfacet - facet normal -0.563259 -0.826281 0 + facet normal 0.658419 0.752652 -0 outer loop - vertex 8.39365 -3.60171 -0.2 - vertex 8.70978 -3.81721 0 - vertex 8.39365 -3.60171 0 + vertex -4.99153 10.6633 -3 + vertex -5.93765 11.491 0 + vertex -4.99153 10.6633 0 endloop endfacet - facet normal -0.563259 -0.826281 -0 + facet normal 0.658419 0.752652 0 outer loop - vertex 8.70978 -3.81721 0 - vertex 8.39365 -3.60171 -0.2 - vertex 8.70978 -3.81721 -0.2 + vertex -5.93765 11.491 0 + vertex -4.99153 10.6633 -3 + vertex -5.93765 11.491 -3 endloop endfacet - facet normal -0.518472 -0.855094 0 + facet normal 0.579458 -0.815002 0 outer loop - vertex 8.70978 -3.81721 -0.2 - vertex 9.02468 -4.00814 0 - vertex 8.70978 -3.81721 0 + vertex -5.93765 11.491 -3 + vertex -5.71478 11.6495 0 + vertex -5.93765 11.491 0 endloop endfacet - facet normal -0.518472 -0.855094 -0 + facet normal 0.579458 -0.815002 0 outer loop - vertex 9.02468 -4.00814 0 - vertex 8.70978 -3.81721 -0.2 - vertex 9.02468 -4.00814 -0.2 + vertex -5.71478 11.6495 0 + vertex -5.93765 11.491 -3 + vertex -5.71478 11.6495 -3 endloop endfacet - facet normal -0.468624 -0.883398 0 + facet normal 0.0440908 -0.999028 0 outer loop - vertex 9.02468 -4.00814 -0.2 - vertex 9.33912 -4.17495 0 - vertex 9.02468 -4.00814 0 + vertex -5.71478 11.6495 -3 + vertex -5.07797 11.6776 0 + vertex -5.71478 11.6495 0 endloop endfacet - facet normal -0.468624 -0.883398 -0 + facet normal 0.0440908 -0.999028 0 outer loop - vertex 9.33912 -4.17495 0 - vertex 9.02468 -4.00814 -0.2 - vertex 9.33912 -4.17495 -0.2 + vertex -5.07797 11.6776 0 + vertex -5.71478 11.6495 -3 + vertex -5.07797 11.6776 -3 endloop endfacet - facet normal -0.413918 -0.910314 0 + facet normal -0.139075 -0.990282 0 outer loop - vertex 9.33912 -4.17495 -0.2 - vertex 9.65389 -4.31807 0 - vertex 9.33912 -4.17495 0 + vertex -5.07797 11.6776 -3 + vertex -2.75335 11.3511 0 + vertex -5.07797 11.6776 0 endloop endfacet - facet normal -0.413918 -0.910314 -0 + facet normal -0.139075 -0.990282 -0 outer loop - vertex 9.65389 -4.31807 0 - vertex 9.33912 -4.17495 -0.2 - vertex 9.65389 -4.31807 -0.2 + vertex -2.75335 11.3511 0 + vertex -5.07797 11.6776 -3 + vertex -2.75335 11.3511 -3 endloop endfacet - facet normal -0.354841 -0.934927 0 + facet normal -0.139152 -0.990271 0 outer loop - vertex 9.65389 -4.31807 -0.2 - vertex 9.96977 -4.43796 0 - vertex 9.65389 -4.31807 0 + vertex -2.75335 11.3511 -3 + vertex -1.46211 11.1697 0 + vertex -2.75335 11.3511 0 endloop endfacet - facet normal -0.354841 -0.934927 -0 + facet normal -0.139152 -0.990271 -0 outer loop - vertex 9.96977 -4.43796 0 - vertex 9.65389 -4.31807 -0.2 - vertex 9.96977 -4.43796 -0.2 + vertex -1.46211 11.1697 0 + vertex -2.75335 11.3511 -3 + vertex -1.46211 11.1697 -3 endloop endfacet - facet normal -0.292213 -0.956353 0 + facet normal 0.0257838 -0.999668 0 outer loop - vertex 9.96977 -4.43796 -0.2 - vertex 10.2875 -4.53506 0 - vertex 9.96977 -4.43796 0 + vertex -1.46211 11.1697 -3 + vertex -0.394194 11.1972 0 + vertex -1.46211 11.1697 0 endloop endfacet - facet normal -0.292213 -0.956353 -0 + facet normal 0.0257838 -0.999668 0 outer loop - vertex 10.2875 -4.53506 0 - vertex 9.96977 -4.43796 -0.2 - vertex 10.2875 -4.53506 -0.2 + vertex -0.394194 11.1972 0 + vertex -1.46211 11.1697 -3 + vertex -0.394194 11.1972 -3 endloop endfacet - facet normal -0.227161 -0.973857 0 + facet normal 0.258065 -0.966128 0 outer loop - vertex 10.2875 -4.53506 -0.2 - vertex 10.608 -4.6098 0 - vertex 10.2875 -4.53506 0 + vertex -0.394194 11.1972 -3 + vertex 0.535115 11.4454 0 + vertex -0.394194 11.1972 0 endloop endfacet - facet normal -0.227161 -0.973857 -0 + facet normal 0.258065 -0.966128 0 outer loop - vertex 10.608 -4.6098 0 - vertex 10.2875 -4.53506 -0.2 - vertex 10.608 -4.6098 -0.2 + vertex 0.535115 11.4454 0 + vertex -0.394194 11.1972 -3 + vertex 0.535115 11.4454 -3 endloop endfacet - facet normal -0.161011 -0.986953 0 + facet normal 0.481248 -0.876585 0 outer loop - vertex 10.608 -4.6098 -0.2 - vertex 10.9319 -4.66264 0 - vertex 10.608 -4.6098 0 + vertex 0.535115 11.4454 -3 + vertex 1.41055 11.926 0 + vertex 0.535115 11.4454 0 endloop endfacet - facet normal -0.161011 -0.986953 -0 + facet normal 0.481248 -0.876585 0 outer loop - vertex 10.9319 -4.66264 0 - vertex 10.608 -4.6098 -0.2 - vertex 10.9319 -4.66264 -0.2 + vertex 1.41055 11.926 0 + vertex 0.535115 11.4454 -3 + vertex 1.41055 11.926 -3 endloop endfacet - facet normal -0.0951962 -0.995459 0 + facet normal 0.671564 -0.740947 0 outer loop - vertex 10.9319 -4.66264 -0.2 - vertex 11.26 -4.69402 0 - vertex 10.9319 -4.66264 0 + vertex 1.41055 11.926 -3 + vertex 1.87173 12.344 0 + vertex 1.41055 11.926 0 endloop endfacet - facet normal -0.0951962 -0.995459 -0 + facet normal 0.671564 -0.740947 0 outer loop - vertex 11.26 -4.69402 0 - vertex 10.9319 -4.66264 -0.2 - vertex 11.26 -4.69402 -0.2 + vertex 1.87173 12.344 0 + vertex 1.41055 11.926 -3 + vertex 1.87173 12.344 -3 endloop endfacet - facet normal -0.0310839 -0.999517 0 + facet normal 0.998006 0.0631228 0 outer loop - vertex 11.26 -4.69402 -0.2 - vertex 11.5931 -4.70438 0 - vertex 11.26 -4.69402 0 + vertex 1.87173 12.344 0 + vertex 1.8467 12.7398 -3 + vertex 1.8467 12.7398 0 endloop endfacet - facet normal -0.0310839 -0.999517 -0 + facet normal 0.998006 0.0631228 0 outer loop - vertex 11.5931 -4.70438 0 - vertex 11.26 -4.69402 -0.2 - vertex 11.5931 -4.70438 -0.2 + vertex 1.8467 12.7398 -3 + vertex 1.87173 12.344 0 + vertex 1.87173 12.344 -3 endloop endfacet - facet normal 0.0736121 -0.997287 0 + facet normal 0.790564 0.612379 0 outer loop - vertex 11.5931 -4.70438 -0.2 - vertex 12.006 -4.67391 0 - vertex 11.5931 -4.70438 0 + vertex 1.8467 12.7398 0 + vertex 1.50002 13.1874 -3 + vertex 1.50002 13.1874 0 endloop endfacet - facet normal 0.0736121 -0.997287 0 + facet normal 0.790564 0.612379 0 outer loop - vertex 12.006 -4.67391 0 - vertex 11.5931 -4.70438 -0.2 - vertex 12.006 -4.67391 -0.2 + vertex 1.50002 13.1874 -3 + vertex 1.8467 12.7398 0 + vertex 1.8467 12.7398 -3 endloop endfacet - facet normal 0.209942 -0.977714 0 + facet normal 0.55001 0.835158 -0 outer loop - vertex 12.006 -4.67391 -0.2 - vertex 12.4149 -4.5861 0 - vertex 12.006 -4.67391 0 + vertex 1.50002 13.1874 -3 + vertex 0.918757 13.5702 0 + vertex 1.50002 13.1874 0 endloop endfacet - facet normal 0.209942 -0.977714 0 + facet normal 0.55001 0.835158 0 outer loop - vertex 12.4149 -4.5861 0 - vertex 12.006 -4.67391 -0.2 - vertex 12.4149 -4.5861 -0.2 + vertex 0.918757 13.5702 0 + vertex 1.50002 13.1874 -3 + vertex 0.918757 13.5702 -3 endloop endfacet - facet normal 0.332988 -0.942931 0 + facet normal 0.293762 0.955879 -0 outer loop - vertex 12.4149 -4.5861 -0.2 - vertex 12.8106 -4.44636 0 - vertex 12.4149 -4.5861 0 + vertex 0.918757 13.5702 -3 + vertex -0.928844 14.138 0 + vertex 0.918757 13.5702 0 endloop endfacet - facet normal 0.332988 -0.942931 0 + facet normal 0.293762 0.955879 0 outer loop - vertex 12.8106 -4.44636 0 - vertex 12.4149 -4.5861 -0.2 - vertex 12.8106 -4.44636 -0.2 + vertex -0.928844 14.138 0 + vertex 0.918757 13.5702 -3 + vertex -0.928844 14.138 -3 endloop endfacet - facet normal 0.44663 -0.894719 0 + facet normal 0.108589 0.994087 -0 outer loop - vertex 12.8106 -4.44636 -0.2 - vertex 13.1837 -4.26011 0 - vertex 12.8106 -4.44636 0 + vertex -0.928844 14.138 -3 + vertex -3.65881 14.4362 0 + vertex -0.928844 14.138 0 endloop endfacet - facet normal 0.44663 -0.894719 0 + facet normal 0.108589 0.994087 0 outer loop - vertex 13.1837 -4.26011 0 - vertex 12.8106 -4.44636 -0.2 - vertex 13.1837 -4.26011 -0.2 + vertex -3.65881 14.4362 0 + vertex -0.928844 14.138 -3 + vertex -3.65881 14.4362 -3 endloop endfacet - facet normal 0.554537 -0.832159 0 + facet normal 0.00602839 0.999982 -0 outer loop - vertex 13.1837 -4.26011 -0.2 - vertex 13.5249 -4.03275 0 - vertex 13.1837 -4.26011 0 + vertex -3.65881 14.4362 -3 + vertex -7.23385 14.4578 0 + vertex -3.65881 14.4362 0 endloop endfacet - facet normal 0.554537 -0.832159 0 + facet normal 0.00602839 0.999982 0 outer loop - vertex 13.5249 -4.03275 0 - vertex 13.1837 -4.26011 -0.2 - vertex 13.5249 -4.03275 -0.2 + vertex -7.23385 14.4578 0 + vertex -3.65881 14.4362 -3 + vertex -7.23385 14.4578 -3 endloop endfacet - facet normal 0.65941 -0.751784 0 + facet normal -0.0644585 0.99792 0 outer loop - vertex 13.5249 -4.03275 -0.2 - vertex 13.8248 -3.7697 0 - vertex 13.5249 -4.03275 0 + vertex -7.23385 14.4578 -3 + vertex -10.6367 14.238 0 + vertex -7.23385 14.4578 0 endloop endfacet - facet normal 0.65941 -0.751784 0 + facet normal -0.0644585 0.99792 0 outer loop - vertex 13.8248 -3.7697 0 - vertex 13.5249 -4.03275 -0.2 - vertex 13.8248 -3.7697 -0.2 + vertex -10.6367 14.238 0 + vertex -7.23385 14.4578 -3 + vertex -10.6367 14.238 -3 endloop endfacet - facet normal 0.762012 -0.647563 0 + facet normal -0.276015 0.961153 0 outer loop - vertex 13.8248 -3.7697 0 - vertex 14.0741 -3.47638 -0.2 - vertex 14.0741 -3.47638 0 + vertex -10.6367 14.238 -3 + vertex -13.7227 13.3517 0 + vertex -10.6367 14.238 0 endloop endfacet - facet normal 0.762012 -0.647563 0 + facet normal -0.276015 0.961153 0 outer loop - vertex 14.0741 -3.47638 -0.2 - vertex 13.8248 -3.7697 0 - vertex 13.8248 -3.7697 -0.2 + vertex -13.7227 13.3517 0 + vertex -10.6367 14.238 -3 + vertex -13.7227 13.3517 -3 endloop endfacet - facet normal 0.835702 -0.549183 0 + facet normal -0.25467 0.967028 0 outer loop - vertex 14.0741 -3.47638 0 - vertex 14.1768 -3.32005 -0.2 - vertex 14.1768 -3.32005 0 + vertex -13.7227 13.3517 -3 + vertex -17.5299 12.3491 0 + vertex -13.7227 13.3517 0 endloop endfacet - facet normal 0.835702 -0.549183 0 + facet normal -0.25467 0.967028 0 outer loop - vertex 14.1768 -3.32005 -0.2 - vertex 14.0741 -3.47638 0 - vertex 14.0741 -3.47638 -0.2 + vertex -17.5299 12.3491 0 + vertex -13.7227 13.3517 -3 + vertex -17.5299 12.3491 -3 endloop endfacet - facet normal 0.88181 -0.471605 0 + facet normal -0.135841 0.990731 0 outer loop - vertex 14.1768 -3.32005 0 - vertex 14.2634 -3.15818 -0.2 - vertex 14.2634 -3.15818 0 + vertex -17.5299 12.3491 -3 + vertex -20.0298 12.0063 0 + vertex -17.5299 12.3491 0 endloop endfacet - facet normal 0.88181 -0.471605 0 + facet normal -0.135841 0.990731 0 outer loop - vertex 14.2634 -3.15818 -0.2 - vertex 14.1768 -3.32005 0 - vertex 14.1768 -3.32005 -0.2 + vertex -20.0298 12.0063 0 + vertex -17.5299 12.3491 -3 + vertex -20.0298 12.0063 -3 endloop endfacet - facet normal 0.950814 -0.309764 0 + facet normal -0.101855 0.994799 0 outer loop - vertex 14.2634 -3.15818 0 - vertex 14.3256 -2.96711 -0.2 - vertex 14.3256 -2.96711 0 + vertex -20.0298 12.0063 -3 + vertex -22.4428 11.7593 0 + vertex -20.0298 12.0063 0 endloop endfacet - facet normal 0.950814 -0.309764 0 + facet normal -0.101855 0.994799 0 outer loop - vertex 14.3256 -2.96711 -0.2 - vertex 14.2634 -3.15818 0 - vertex 14.2634 -3.15818 -0.2 + vertex -22.4428 11.7593 0 + vertex -20.0298 12.0063 -3 + vertex -22.4428 11.7593 -3 endloop endfacet - facet normal 0.996178 -0.0873495 0 + facet normal -0.0308153 0.999525 0 outer loop - vertex 14.3256 -2.96711 0 - vertex 14.3448 -2.7489 -0.2 - vertex 14.3448 -2.7489 0 + vertex -22.4428 11.7593 -3 + vertex -25.7097 11.6586 0 + vertex -22.4428 11.7593 0 endloop endfacet - facet normal 0.996178 -0.0873495 0 + facet normal -0.0308153 0.999525 0 outer loop - vertex 14.3448 -2.7489 -0.2 - vertex 14.3256 -2.96711 0 - vertex 14.3256 -2.96711 -0.2 + vertex -25.7097 11.6586 0 + vertex -22.4428 11.7593 -3 + vertex -25.7097 11.6586 -3 endloop endfacet - facet normal 0.995552 0.0942095 0 + facet normal 0.0184303 0.99983 -0 outer loop - vertex 14.3448 -2.7489 0 - vertex 14.3217 -2.5049 -0.2 - vertex 14.3217 -2.5049 0 + vertex -25.7097 11.6586 -3 + vertex -28.6588 11.7129 0 + vertex -25.7097 11.6586 0 endloop endfacet - facet normal 0.995552 0.0942095 0 + facet normal 0.0184303 0.99983 0 outer loop - vertex 14.3217 -2.5049 -0.2 - vertex 14.3448 -2.7489 0 - vertex 14.3448 -2.7489 -0.2 + vertex -28.6588 11.7129 0 + vertex -25.7097 11.6586 -3 + vertex -28.6588 11.7129 -3 endloop endfacet - facet normal 0.972391 0.233358 0 + facet normal 0.147852 0.989009 -0 outer loop - vertex 14.3217 -2.5049 0 - vertex 14.2572 -2.23644 -0.2 - vertex 14.2572 -2.23644 0 + vertex -28.6588 11.7129 -3 + vertex -30.1182 11.9311 0 + vertex -28.6588 11.7129 0 endloop endfacet - facet normal 0.972391 0.233358 0 + facet normal 0.147852 0.989009 0 outer loop - vertex 14.2572 -2.23644 -0.2 - vertex 14.3217 -2.5049 0 - vertex 14.3217 -2.5049 -0.2 + vertex -30.1182 11.9311 0 + vertex -28.6588 11.7129 -3 + vertex -30.1182 11.9311 -3 endloop endfacet - facet normal 0.940985 0.338449 0 + facet normal 0.940295 0.34036 0 outer loop - vertex 14.2572 -2.23644 0 - vertex 14.1524 -1.94488 -0.2 - vertex 14.1524 -1.94488 0 + vertex -30.1182 11.9311 0 + vertex -30.3887 12.6783 -3 + vertex -30.3887 12.6783 0 endloop endfacet - facet normal 0.940985 0.338449 0 + facet normal 0.940295 0.34036 0 outer loop - vertex 14.1524 -1.94488 -0.2 - vertex 14.2572 -2.23644 0 - vertex 14.2572 -2.23644 -0.2 + vertex -30.3887 12.6783 -3 + vertex -30.1182 11.9311 0 + vertex -30.1182 11.9311 -3 endloop endfacet - facet normal 0.908169 0.418604 0 + facet normal 0.978074 -0.208259 0 outer loop - vertex 14.1524 -1.94488 0 - vertex 14.008 -1.63155 -0.2 - vertex 14.008 -1.63155 0 + vertex -30.3887 12.6783 0 + vertex -30.3118 13.0393 -3 + vertex -30.3118 13.0393 0 endloop endfacet - facet normal 0.908169 0.418604 0 + facet normal 0.978074 -0.208259 0 outer loop - vertex 14.008 -1.63155 -0.2 - vertex 14.1524 -1.94488 0 - vertex 14.1524 -1.94488 -0.2 + vertex -30.3118 13.0393 -3 + vertex -30.3887 12.6783 0 + vertex -30.3887 12.6783 -3 endloop endfacet - facet normal 0.876739 0.480967 0 + facet normal 0.488021 -0.872832 0 outer loop - vertex 14.008 -1.63155 0 - vertex 13.8249 -1.29782 -0.2 - vertex 13.8249 -1.29782 0 + vertex -30.3118 13.0393 -3 + vertex -29.9412 13.2465 0 + vertex -30.3118 13.0393 0 endloop endfacet - facet normal 0.876739 0.480967 0 + facet normal 0.488021 -0.872832 0 outer loop - vertex 13.8249 -1.29782 -0.2 - vertex 14.008 -1.63155 0 - vertex 14.008 -1.63155 -0.2 + vertex -29.9412 13.2465 0 + vertex -30.3118 13.0393 -3 + vertex -29.9412 13.2465 -3 endloop endfacet - facet normal 0.847618 0.530607 0 + facet normal 0.0669219 -0.997758 0 outer loop - vertex 13.8249 -1.29782 0 - vertex 13.604 -0.945011 -0.2 - vertex 13.604 -0.945011 0 + vertex -29.9412 13.2465 -3 + vertex -27.4778 13.4117 0 + vertex -29.9412 13.2465 0 endloop endfacet - facet normal 0.847618 0.530607 0 + facet normal 0.0669219 -0.997758 0 outer loop - vertex 13.604 -0.945011 -0.2 - vertex 13.8249 -1.29782 0 - vertex 13.8249 -1.29782 -0.2 + vertex -27.4778 13.4117 0 + vertex -29.9412 13.2465 -3 + vertex -27.4778 13.4117 -3 endloop endfacet - facet normal 0.820927 0.571033 0 + facet normal 0.0722192 -0.997389 0 outer loop - vertex 13.604 -0.945011 0 - vertex 13.3463 -0.574481 -0.2 - vertex 13.3463 -0.574481 0 + vertex -27.4778 13.4117 -3 + vertex -24.873 13.6003 0 + vertex -27.4778 13.4117 0 endloop endfacet - facet normal 0.820927 0.571033 0 + facet normal 0.0722192 -0.997389 0 outer loop - vertex 13.3463 -0.574481 -0.2 - vertex 13.604 -0.945011 0 - vertex 13.604 -0.945011 -0.2 + vertex -24.873 13.6003 0 + vertex -27.4778 13.4117 -3 + vertex -24.873 13.6003 -3 endloop endfacet - facet normal 0.796478 0.604667 0 + facet normal 0.168213 -0.985751 0 outer loop - vertex 13.3463 -0.574481 0 - vertex 13.0525 -0.187573 -0.2 - vertex 13.0525 -0.187573 0 + vertex -24.873 13.6003 -3 + vertex -22.3118 14.0374 0 + vertex -24.873 13.6003 0 endloop endfacet - facet normal 0.796478 0.604667 0 + facet normal 0.168213 -0.985751 0 outer loop - vertex 13.0525 -0.187573 -0.2 - vertex 13.3463 -0.574481 0 - vertex 13.3463 -0.574481 -0.2 + vertex -22.3118 14.0374 0 + vertex -24.873 13.6003 -3 + vertex -22.3118 14.0374 -3 endloop endfacet - facet normal 0.773983 0.633206 0 + facet normal 0.261629 -0.965169 0 outer loop - vertex 13.0525 -0.187573 0 - vertex 12.7237 0.214368 -0.2 - vertex 12.7237 0.214368 0 + vertex -22.3118 14.0374 -3 + vertex -19.733 14.7364 0 + vertex -22.3118 14.0374 0 endloop endfacet - facet normal 0.773983 0.633206 0 + facet normal 0.261629 -0.965169 0 outer loop - vertex 12.7237 0.214368 -0.2 - vertex 13.0525 -0.187573 0 - vertex 13.0525 -0.187573 -0.2 + vertex -19.733 14.7364 0 + vertex -22.3118 14.0374 -3 + vertex -19.733 14.7364 -3 endloop endfacet - facet normal 0.753142 0.657858 0 + facet normal 0.344283 -0.938866 0 outer loop - vertex 12.7237 0.214368 0 - vertex 12.3607 0.629996 -0.2 - vertex 12.3607 0.629996 0 + vertex -19.733 14.7364 -3 + vertex -17.0754 15.711 0 + vertex -19.733 14.7364 0 endloop endfacet - facet normal 0.753142 0.657858 0 + facet normal 0.344283 -0.938866 0 outer loop - vertex 12.3607 0.629996 -0.2 - vertex 12.7237 0.214368 0 - vertex 12.7237 0.214368 -0.2 + vertex -17.0754 15.711 0 + vertex -19.733 14.7364 -3 + vertex -17.0754 15.711 -3 endloop endfacet - facet normal 0.724343 0.68944 0 + facet normal 0.435809 -0.900039 0 outer loop - vertex 12.3607 0.629996 0 - vertex 11.5355 1.49693 -0.2 - vertex 11.5355 1.49693 0 + vertex -17.0754 15.711 -3 + vertex -15.009 16.7116 0 + vertex -17.0754 15.711 0 endloop endfacet - facet normal 0.724343 0.68944 0 + facet normal 0.435809 -0.900039 0 outer loop - vertex 11.5355 1.49693 -0.2 - vertex 12.3607 0.629996 0 - vertex 12.3607 0.629996 -0.2 + vertex -15.009 16.7116 0 + vertex -17.0754 15.711 -3 + vertex -15.009 16.7116 -3 endloop endfacet - facet normal 0.689461 0.724323 -0 + facet normal 0.583649 -0.812006 0 outer loop - vertex 11.5355 1.49693 -0.2 - vertex 10.5842 2.40247 0 - vertex 11.5355 1.49693 0 + vertex -15.009 16.7116 -3 + vertex -12.0133 18.8648 0 + vertex -15.009 16.7116 0 endloop endfacet - facet normal 0.689461 0.724323 0 + facet normal 0.583649 -0.812006 0 outer loop - vertex 10.5842 2.40247 0 - vertex 11.5355 1.49693 -0.2 - vertex 10.5842 2.40247 -0.2 + vertex -12.0133 18.8648 0 + vertex -15.009 16.7116 -3 + vertex -12.0133 18.8648 -3 endloop endfacet - facet normal 0.659589 0.751627 -0 + facet normal 0.632447 -0.774604 0 outer loop - vertex 10.5842 2.40247 -0.2 - vertex 9.61741 3.25086 0 - vertex 10.5842 2.40247 0 + vertex -12.0133 18.8648 -3 + vertex -11.1208 19.5935 0 + vertex -12.0133 18.8648 0 endloop endfacet - facet normal 0.659589 0.751627 0 + facet normal 0.632447 -0.774604 0 outer loop - vertex 9.61741 3.25086 0 - vertex 10.5842 2.40247 -0.2 - vertex 9.61741 3.25086 -0.2 + vertex -11.1208 19.5935 0 + vertex -12.0133 18.8648 -3 + vertex -11.1208 19.5935 -3 endloop endfacet - facet normal 0.626395 0.779506 -0 + facet normal 0.915349 -0.40266 0 outer loop - vertex 9.61741 3.25086 -0.2 - vertex 9.29624 3.50894 0 - vertex 9.61741 3.25086 0 + vertex -11.1208 19.5935 0 + vertex -10.9412 20.0018 -3 + vertex -10.9412 20.0018 0 endloop endfacet - facet normal 0.626395 0.779506 0 + facet normal 0.915349 -0.40266 0 outer loop - vertex 9.29624 3.50894 0 - vertex 9.61741 3.25086 -0.2 - vertex 9.29624 3.50894 -0.2 + vertex -10.9412 20.0018 -3 + vertex -11.1208 19.5935 0 + vertex -11.1208 19.5935 -3 endloop endfacet - facet normal 0.533935 0.845526 -0 + facet normal 0.285826 0.958281 -0 outer loop - vertex 9.29624 3.50894 -0.2 - vertex 9.14614 3.60373 0 - vertex 9.29624 3.50894 0 + vertex -10.9412 20.0018 -3 + vertex -11.5389 20.1801 0 + vertex -10.9412 20.0018 0 endloop endfacet - facet normal 0.533935 0.845526 0 + facet normal 0.285826 0.958281 0 outer loop - vertex 9.14614 3.60373 0 - vertex 9.29624 3.50894 -0.2 - vertex 9.14614 3.60373 -0.2 + vertex -11.5389 20.1801 0 + vertex -10.9412 20.0018 -3 + vertex -11.5389 20.1801 -3 endloop endfacet - facet normal 0.419972 0.907537 -0 + facet normal 0.0268157 0.99964 -0 outer loop - vertex 9.14614 3.60373 -0.2 - vertex 9.03464 3.65533 0 - vertex 9.14614 3.60373 0 + vertex -11.5389 20.1801 -3 + vertex -12.9783 20.2187 0 + vertex -11.5389 20.1801 0 endloop endfacet - facet normal 0.419972 0.907537 0 + facet normal 0.0268157 0.99964 0 outer loop - vertex 9.03464 3.65533 0 - vertex 9.14614 3.60373 -0.2 - vertex 9.03464 3.65533 -0.2 + vertex -12.9783 20.2187 0 + vertex -11.5389 20.1801 -3 + vertex -12.9783 20.2187 -3 endloop endfacet - facet normal 0.545127 0.838353 -0 + facet normal -0.0662732 0.997802 0 outer loop - vertex 9.03464 3.65533 -0.2 - vertex 8.81858 3.79581 0 - vertex 9.03464 3.65533 0 + vertex -12.9783 20.2187 -3 + vertex -16.3196 19.9968 0 + vertex -12.9783 20.2187 0 endloop endfacet - facet normal 0.545127 0.838353 0 + facet normal -0.0662732 0.997802 0 outer loop - vertex 8.81858 3.79581 0 - vertex 9.03464 3.65533 -0.2 - vertex 8.81858 3.79581 -0.2 + vertex -16.3196 19.9968 0 + vertex -12.9783 20.2187 -3 + vertex -16.3196 19.9968 -3 endloop endfacet - facet normal 0.596587 0.802549 -0 + facet normal -0.149342 0.988786 0 outer loop - vertex 8.81858 3.79581 -0.2 - vertex 8.19732 4.25764 0 - vertex 8.81858 3.79581 0 + vertex -16.3196 19.9968 -3 + vertex -20.1789 19.4139 0 + vertex -16.3196 19.9968 0 endloop endfacet - facet normal 0.596587 0.802549 0 + facet normal -0.149342 0.988786 0 outer loop - vertex 8.19732 4.25764 0 - vertex 8.81858 3.79581 -0.2 - vertex 8.19732 4.25764 -0.2 + vertex -20.1789 19.4139 0 + vertex -16.3196 19.9968 -3 + vertex -20.1789 19.4139 -3 endloop endfacet - facet normal 0.576403 0.817166 -0 + facet normal -0.0917718 0.99578 0 outer loop - vertex 8.19732 4.25764 -0.2 - vertex 8.00725 4.39171 0 - vertex 8.19732 4.25764 0 + vertex -20.1789 19.4139 -3 + vertex -24.1572 19.0472 0 + vertex -20.1789 19.4139 0 endloop endfacet - facet normal 0.576403 0.817166 0 + facet normal -0.0917718 0.99578 0 outer loop - vertex 8.00725 4.39171 0 - vertex 8.19732 4.25764 -0.2 - vertex 8.00725 4.39171 -0.2 + vertex -24.1572 19.0472 0 + vertex -20.1789 19.4139 -3 + vertex -24.1572 19.0472 -3 endloop endfacet - facet normal 0.52168 0.853141 -0 + facet normal -0.0311054 0.999516 0 outer loop - vertex 8.00725 4.39171 -0.2 - vertex 7.75154 4.54807 0 - vertex 8.00725 4.39171 0 + vertex -24.1572 19.0472 -3 + vertex -27.5587 18.9414 0 + vertex -24.1572 19.0472 0 endloop endfacet - facet normal 0.52168 0.853141 0 + facet normal -0.0311054 0.999516 0 outer loop - vertex 7.75154 4.54807 0 - vertex 8.00725 4.39171 -0.2 - vertex 7.75154 4.54807 -0.2 + vertex -27.5587 18.9414 0 + vertex -24.1572 19.0472 -3 + vertex -27.5587 18.9414 -3 endloop endfacet - facet normal 0.475339 0.879803 -0 + facet normal 0.0933351 0.995635 -0 outer loop - vertex 7.75154 4.54807 -0.2 - vertex 7.07462 4.9138 0 - vertex 7.75154 4.54807 0 + vertex -27.5587 18.9414 -3 + vertex -29.687 19.1409 0 + vertex -27.5587 18.9414 0 endloop endfacet - facet normal 0.475339 0.879803 0 + facet normal 0.0933351 0.995635 0 outer loop - vertex 7.07462 4.9138 0 - vertex 7.75154 4.54807 -0.2 - vertex 7.07462 4.9138 -0.2 + vertex -29.687 19.1409 0 + vertex -27.5587 18.9414 -3 + vertex -29.687 19.1409 -3 endloop endfacet - facet normal 0.439259 0.89836 -0 + facet normal 0.326889 0.945063 -0 outer loop - vertex 7.07462 4.9138 -0.2 - vertex 6.22936 5.32709 0 - vertex 7.07462 4.9138 0 + vertex -29.687 19.1409 -3 + vertex -33.0651 20.3093 0 + vertex -29.687 19.1409 0 endloop endfacet - facet normal 0.439259 0.89836 0 + facet normal 0.326889 0.945063 0 outer loop - vertex 6.22936 5.32709 0 - vertex 7.07462 4.9138 -0.2 - vertex 6.22936 5.32709 -0.2 + vertex -33.0651 20.3093 0 + vertex -29.687 19.1409 -3 + vertex -33.0651 20.3093 -3 endloop endfacet - facet normal 0.414563 0.910021 -0 + facet normal 0.441663 0.897181 -0 outer loop - vertex 6.22936 5.32709 -0.2 - vertex 5.27855 5.76024 0 - vertex 6.22936 5.32709 0 + vertex -33.0651 20.3093 -3 + vertex -35.7552 21.6337 0 + vertex -33.0651 20.3093 0 endloop endfacet - facet normal 0.414563 0.910021 0 + facet normal 0.441663 0.897181 0 outer loop - vertex 5.27855 5.76024 0 - vertex 6.22936 5.32709 -0.2 - vertex 5.27855 5.76024 -0.2 + vertex -35.7552 21.6337 0 + vertex -33.0651 20.3093 -3 + vertex -35.7552 21.6337 -3 endloop endfacet - facet normal 0.393495 0.919327 -0 + facet normal 0.596659 0.802495 -0 outer loop - vertex 5.27855 5.76024 -0.2 - vertex 4.285 6.1855 0 - vertex 5.27855 5.76024 0 + vertex -35.7552 21.6337 -3 + vertex -37.6991 23.0789 0 + vertex -35.7552 21.6337 0 endloop endfacet - facet normal 0.393495 0.919327 0 + facet normal 0.596659 0.802495 0 outer loop - vertex 4.285 6.1855 0 - vertex 5.27855 5.76024 -0.2 - vertex 4.285 6.1855 -0.2 + vertex -37.6991 23.0789 0 + vertex -35.7552 21.6337 -3 + vertex -37.6991 23.0789 -3 endloop endfacet - facet normal 0.371607 0.92839 -0 + facet normal 0.746999 0.664825 0 outer loop - vertex 4.285 6.1855 -0.2 - vertex 3.31149 6.57517 0 - vertex 4.285 6.1855 0 + vertex -37.6991 23.0789 0 + vertex -38.3729 23.836 -3 + vertex -38.3729 23.836 0 endloop endfacet - facet normal 0.371607 0.92839 0 + facet normal 0.746999 0.664825 0 outer loop - vertex 3.31149 6.57517 0 - vertex 4.285 6.1855 -0.2 - vertex 3.31149 6.57517 -0.2 + vertex -38.3729 23.836 -3 + vertex -37.6991 23.0789 0 + vertex -37.6991 23.0789 -3 endloop endfacet - facet normal 0.344035 0.938957 -0 + facet normal 0.857117 0.515122 0 outer loop - vertex 3.31149 6.57517 -0.2 - vertex 2.42084 6.9015 0 - vertex 3.31149 6.57517 0 + vertex -38.3729 23.836 0 + vertex -38.8382 24.6102 -3 + vertex -38.8382 24.6102 0 endloop endfacet - facet normal 0.344035 0.938957 0 + facet normal 0.857117 0.515122 0 outer loop - vertex 2.42084 6.9015 0 - vertex 3.31149 6.57517 -0.2 - vertex 2.42084 6.9015 -0.2 + vertex -38.8382 24.6102 -3 + vertex -38.3729 23.836 0 + vertex -38.3729 23.836 -3 endloop endfacet - facet normal 0.301156 0.953575 -0 + facet normal 0.945559 0.32545 0 outer loop - vertex 2.42084 6.9015 -0.2 - vertex 1.67583 7.13679 0 - vertex 2.42084 6.9015 0 + vertex -38.8382 24.6102 0 + vertex -39.1303 25.4589 -3 + vertex -39.1303 25.4589 0 endloop endfacet - facet normal 0.301156 0.953575 0 + facet normal 0.945559 0.32545 0 outer loop - vertex 1.67583 7.13679 0 - vertex 2.42084 6.9015 -0.2 - vertex 1.67583 7.13679 -0.2 + vertex -39.1303 25.4589 -3 + vertex -38.8382 24.6102 0 + vertex -38.8382 24.6102 -3 endloop endfacet - facet normal 0.313822 0.949482 -0 + facet normal 0.969805 -0.24388 0 outer loop - vertex 1.67583 7.13679 -0.2 - vertex 1.30727 7.25861 0 - vertex 1.67583 7.13679 0 + vertex -39.1303 25.4589 0 + vertex -39.0347 25.8392 -3 + vertex -39.0347 25.8392 0 endloop endfacet - facet normal 0.313822 0.949482 0 + facet normal 0.969805 -0.24388 0 outer loop - vertex 1.30727 7.25861 0 - vertex 1.67583 7.13679 -0.2 - vertex 1.30727 7.25861 -0.2 + vertex -39.0347 25.8392 -3 + vertex -39.1303 25.4589 0 + vertex -39.1303 25.4589 -3 endloop endfacet - facet normal 0.372489 0.928036 -0 + facet normal -0.217347 -0.976094 0 outer loop - vertex 1.30727 7.25861 -0.2 - vertex 0.855811 7.43981 0 - vertex 1.30727 7.25861 0 + vertex -39.0347 25.8392 -3 + vertex -38.5782 25.7376 0 + vertex -39.0347 25.8392 0 endloop endfacet - facet normal 0.372489 0.928036 0 + facet normal -0.217347 -0.976094 -0 outer loop - vertex 0.855811 7.43981 0 - vertex 1.30727 7.25861 -0.2 - vertex 0.855811 7.43981 -0.2 + vertex -38.5782 25.7376 0 + vertex -39.0347 25.8392 -3 + vertex -38.5782 25.7376 -3 endloop endfacet - facet normal 0.420776 0.907164 -0 + facet normal -0.602798 -0.797894 0 outer loop - vertex 0.855811 7.43981 -0.2 - vertex -0.23691 7.94665 0 - vertex 0.855811 7.43981 0 + vertex -38.5782 25.7376 -3 + vertex -37.7877 25.1404 0 + vertex -38.5782 25.7376 0 endloop endfacet - facet normal 0.420776 0.907164 0 + facet normal -0.602798 -0.797894 -0 outer loop - vertex -0.23691 7.94665 0 - vertex 0.855811 7.43981 -0.2 - vertex -0.23691 7.94665 -0.2 + vertex -37.7877 25.1404 0 + vertex -38.5782 25.7376 -3 + vertex -37.7877 25.1404 -3 endloop endfacet - facet normal 0.458228 0.888835 -0 + facet normal -0.582847 -0.812582 0 outer loop - vertex -0.23691 7.94665 -0.2 - vertex -1.48458 8.58988 0 - vertex -0.23691 7.94665 0 + vertex -37.7877 25.1404 -3 + vertex -36.1697 23.9798 0 + vertex -37.7877 25.1404 0 endloop endfacet - facet normal 0.458228 0.888835 0 + facet normal -0.582847 -0.812582 -0 outer loop - vertex -1.48458 8.58988 0 - vertex -0.23691 7.94665 -0.2 - vertex -1.48458 8.58988 -0.2 + vertex -36.1697 23.9798 0 + vertex -37.7877 25.1404 -3 + vertex -36.1697 23.9798 -3 endloop endfacet - facet normal 0.484776 0.874638 -0 + facet normal -0.438905 -0.898534 0 outer loop - vertex -1.48458 8.58988 -0.2 - vertex -2.76946 9.30203 0 - vertex -1.48458 8.58988 0 + vertex -36.1697 23.9798 -3 + vertex -34.2108 23.023 0 + vertex -36.1697 23.9798 0 endloop endfacet - facet normal 0.484776 0.874638 0 + facet normal -0.438905 -0.898534 -0 outer loop - vertex -2.76946 9.30203 0 - vertex -1.48458 8.58988 -0.2 - vertex -2.76946 9.30203 -0.2 + vertex -34.2108 23.023 0 + vertex -36.1697 23.9798 -3 + vertex -34.2108 23.023 -3 endloop endfacet - facet normal 0.509783 0.860303 -0 + facet normal -0.304923 -0.952377 0 outer loop - vertex -2.76946 9.30203 -0.2 - vertex -3.97378 10.0157 0 - vertex -2.76946 9.30203 0 + vertex -34.2108 23.023 -3 + vertex -32.1178 22.3529 0 + vertex -34.2108 23.023 0 endloop endfacet - facet normal 0.509783 0.860303 0 + facet normal -0.304923 -0.952377 -0 outer loop - vertex -3.97378 10.0157 0 - vertex -2.76946 9.30203 -0.2 - vertex -3.97378 10.0157 -0.2 + vertex -32.1178 22.3529 0 + vertex -34.2108 23.023 -3 + vertex -32.1178 22.3529 -3 endloop endfacet - facet normal 0.541316 0.840819 -0 + facet normal -0.147036 -0.989131 0 outer loop - vertex -3.97378 10.0157 -0.2 - vertex -4.9798 10.6633 0 - vertex -3.97378 10.0157 0 + vertex -32.1178 22.3529 -3 + vertex -30.0976 22.0525 0 + vertex -32.1178 22.3529 0 endloop endfacet - facet normal 0.541316 0.840819 0 + facet normal -0.147036 -0.989131 -0 outer loop - vertex -4.9798 10.6633 0 - vertex -3.97378 10.0157 -0.2 - vertex -4.9798 10.6633 -0.2 + vertex -30.0976 22.0525 0 + vertex -32.1178 22.3529 -3 + vertex -30.0976 22.0525 -3 endloop endfacet - facet normal 0.578658 0.81557 -0 + facet normal -0.0457632 -0.998952 0 outer loop - vertex -4.9798 10.6633 -0.2 - vertex -5.37165 10.9414 0 - vertex -4.9798 10.6633 0 + vertex -30.0976 22.0525 -3 + vertex -28.3511 21.9725 0 + vertex -30.0976 22.0525 0 endloop endfacet - facet normal 0.578658 0.81557 0 + facet normal -0.0457632 -0.998952 -0 outer loop - vertex -5.37165 10.9414 0 - vertex -4.9798 10.6633 -0.2 - vertex -5.37165 10.9414 -0.2 + vertex -28.3511 21.9725 0 + vertex -30.0976 22.0525 -3 + vertex -28.3511 21.9725 -3 endloop endfacet - facet normal 0.621078 0.783749 -0 + facet normal 0.491954 0.870621 -0 outer loop - vertex -5.37165 10.9414 -0.2 - vertex -5.66976 11.1776 0 - vertex -5.37165 10.9414 0 + vertex -28.3511 21.9725 -3 + vertex -29.0303 22.3563 0 + vertex -28.3511 21.9725 0 endloop endfacet - facet normal 0.621078 0.783749 0 + facet normal 0.491954 0.870621 0 outer loop - vertex -5.66976 11.1776 0 - vertex -5.37165 10.9414 -0.2 - vertex -5.66976 11.1776 -0.2 + vertex -29.0303 22.3563 0 + vertex -28.3511 21.9725 -3 + vertex -29.0303 22.3563 -3 endloop endfacet - facet normal 0.700224 0.713923 -0 + facet normal 0.563624 0.826031 -0 outer loop - vertex -5.66976 11.1776 -0.2 - vertex -5.85942 11.3636 0 - vertex -5.66976 11.1776 0 + vertex -29.0303 22.3563 -3 + vertex -30.3878 23.2826 0 + vertex -29.0303 22.3563 0 endloop endfacet - facet normal 0.700224 0.713923 0 + facet normal 0.563624 0.826031 0 outer loop - vertex -5.85942 11.3636 0 - vertex -5.66976 11.1776 -0.2 - vertex -5.85942 11.3636 -0.2 + vertex -30.3878 23.2826 0 + vertex -29.0303 22.3563 -3 + vertex -30.3878 23.2826 -3 endloop endfacet - facet normal 0.822029 0.569446 0 + facet normal 0.796403 0.604766 0 outer loop - vertex -5.85942 11.3636 0 - vertex -5.90899 11.4352 -0.2 - vertex -5.90899 11.4352 0 + vertex -30.3878 23.2826 0 + vertex -31.0943 24.213 -3 + vertex -31.0943 24.213 0 endloop endfacet - facet normal 0.822029 0.569446 0 + facet normal 0.796403 0.604766 0 outer loop - vertex -5.90899 11.4352 -0.2 - vertex -5.85942 11.3636 0 - vertex -5.85942 11.3636 -0.2 + vertex -31.0943 24.213 -3 + vertex -30.3878 23.2826 0 + vertex -30.3878 23.2826 -3 endloop endfacet - facet normal 0.95697 0.290185 0 + facet normal 0.951494 0.307667 0 outer loop - vertex -5.90899 11.4352 0 - vertex -5.92592 11.491 -0.2 - vertex -5.92592 11.491 0 + vertex -31.0943 24.213 0 + vertex -31.2773 24.779 -3 + vertex -31.2773 24.779 0 endloop endfacet - facet normal 0.95697 0.290185 0 + facet normal 0.951494 0.307667 0 outer loop - vertex -5.92592 11.491 -0.2 - vertex -5.90899 11.4352 0 - vertex -5.90899 11.4352 -0.2 + vertex -31.2773 24.779 -3 + vertex -31.0943 24.213 0 + vertex -31.0943 24.213 -3 endloop endfacet - facet normal 0.964129 -0.265435 0 + facet normal 0.935098 -0.35439 0 outer loop - vertex -5.92592 11.491 0 - vertex -5.91161 11.5429 -0.2 - vertex -5.91161 11.5429 0 + vertex -31.2773 24.779 0 + vertex -31.1793 25.0376 -3 + vertex -31.1793 25.0376 0 endloop endfacet - facet normal 0.964129 -0.265435 0 + facet normal 0.935098 -0.35439 0 outer loop - vertex -5.91161 11.5429 -0.2 - vertex -5.92592 11.491 0 - vertex -5.92592 11.491 -0.2 + vertex -31.1793 25.0376 -3 + vertex -31.2773 24.779 0 + vertex -31.2773 24.779 -3 endloop endfacet - facet normal 0.717664 -0.69639 0 + facet normal -0.153546 -0.988142 0 outer loop - vertex -5.91161 11.5429 0 - vertex -5.8692 11.5867 -0.2 - vertex -5.8692 11.5867 0 + vertex -31.1793 25.0376 -3 + vertex -30.8173 24.9813 0 + vertex -31.1793 25.0376 0 endloop endfacet - facet normal 0.717664 -0.69639 0 + facet normal -0.153546 -0.988142 -0 outer loop - vertex -5.8692 11.5867 -0.2 - vertex -5.91161 11.5429 0 - vertex -5.91161 11.5429 -0.2 + vertex -30.8173 24.9813 0 + vertex -31.1793 25.0376 -3 + vertex -30.8173 24.9813 -3 endloop endfacet - facet normal 0.453397 -0.891309 0 + facet normal -0.527885 -0.849316 0 outer loop - vertex -5.8692 11.5867 -0.2 - vertex -5.79943 11.6221 0 - vertex -5.8692 11.5867 0 + vertex -30.8173 24.9813 -3 + vertex -30.2081 24.6027 0 + vertex -30.8173 24.9813 0 endloop endfacet - facet normal 0.453397 -0.891309 0 + facet normal -0.527885 -0.849316 -0 outer loop - vertex -5.79943 11.6221 0 - vertex -5.8692 11.5867 -0.2 - vertex -5.79943 11.6221 -0.2 + vertex -30.2081 24.6027 0 + vertex -30.8173 24.9813 -3 + vertex -30.2081 24.6027 -3 endloop endfacet - facet normal 0.272626 -0.96212 0 + facet normal -0.502983 -0.864296 0 outer loop - vertex -5.79943 11.6221 -0.2 - vertex -5.70304 11.6495 0 - vertex -5.79943 11.6221 0 + vertex -30.2081 24.6027 -3 + vertex -29.3958 24.13 0 + vertex -30.2081 24.6027 0 endloop endfacet - facet normal 0.272626 -0.96212 0 + facet normal -0.502983 -0.864296 -0 outer loop - vertex -5.70304 11.6495 0 - vertex -5.79943 11.6221 -0.2 - vertex -5.70304 11.6495 -0.2 + vertex -29.3958 24.13 0 + vertex -30.2081 24.6027 -3 + vertex -29.3958 24.13 -3 endloop endfacet - facet normal 0.111359 -0.99378 0 + facet normal -0.286557 -0.958063 0 outer loop - vertex -5.70304 11.6495 -0.2 - vertex -5.4334 11.6797 0 - vertex -5.70304 11.6495 0 + vertex -29.3958 24.13 -3 + vertex -28.4642 23.8513 0 + vertex -29.3958 24.13 0 endloop endfacet - facet normal 0.111359 -0.99378 0 + facet normal -0.286557 -0.958063 -0 outer loop - vertex -5.4334 11.6797 0 - vertex -5.70304 11.6495 -0.2 - vertex -5.4334 11.6797 -0.2 + vertex -28.4642 23.8513 0 + vertex -29.3958 24.13 -3 + vertex -28.4642 23.8513 -3 endloop endfacet - facet normal -0.00575054 -0.999983 0 + facet normal -0.0843211 -0.996439 0 outer loop - vertex -5.4334 11.6797 -0.2 - vertex -5.06624 11.6776 0 - vertex -5.4334 11.6797 0 + vertex -28.4642 23.8513 -3 + vertex -27.3687 23.7586 0 + vertex -28.4642 23.8513 0 endloop endfacet - facet normal -0.00575054 -0.999983 -0 + facet normal -0.0843211 -0.996439 -0 outer loop - vertex -5.06624 11.6776 0 - vertex -5.4334 11.6797 -0.2 - vertex -5.06624 11.6776 -0.2 + vertex -27.3687 23.7586 0 + vertex -28.4642 23.8513 -3 + vertex -27.3687 23.7586 -3 endloop endfacet - facet normal -0.0742941 -0.997236 0 + facet normal 0.065101 -0.997879 0 outer loop - vertex -5.06624 11.6776 -0.2 - vertex -4.60751 11.6434 0 - vertex -5.06624 11.6776 0 + vertex -27.3687 23.7586 -3 + vertex -26.0647 23.8437 0 + vertex -27.3687 23.7586 0 endloop endfacet - facet normal -0.0742941 -0.997236 -0 + facet normal 0.065101 -0.997879 0 outer loop - vertex -4.60751 11.6434 0 - vertex -5.06624 11.6776 -0.2 - vertex -4.60751 11.6434 -0.2 - endloop - endfacet - facet normal -0.120331 -0.992734 0 - outer loop - vertex -4.60751 11.6434 -0.2 - vertex -4.06319 11.5774 0 - vertex -4.60751 11.6434 0 - endloop - endfacet - facet normal -0.120331 -0.992734 -0 - outer loop - vertex -4.06319 11.5774 0 - vertex -4.60751 11.6434 -0.2 - vertex -4.06319 11.5774 -0.2 - endloop - endfacet - facet normal -0.154416 -0.988006 0 - outer loop - vertex -4.06319 11.5774 -0.2 - vertex -3.43924 11.4799 0 - vertex -4.06319 11.5774 0 - endloop - endfacet - facet normal -0.154416 -0.988006 -0 - outer loop - vertex -3.43924 11.4799 0 - vertex -4.06319 11.5774 -0.2 - vertex -3.43924 11.4799 -0.2 - endloop - endfacet - facet normal -0.181553 -0.983381 0 - outer loop - vertex -3.43924 11.4799 -0.2 - vertex -2.74162 11.3511 0 - vertex -3.43924 11.4799 0 - endloop - endfacet - facet normal -0.181553 -0.983381 -0 - outer loop - vertex -2.74162 11.3511 0 - vertex -3.43924 11.4799 -0.2 - vertex -2.74162 11.3511 -0.2 - endloop - endfacet - facet normal -0.168602 -0.985684 0 - outer loop - vertex -2.74162 11.3511 -0.2 - vertex -2.06279 11.235 0 - vertex -2.74162 11.3511 0 - endloop - endfacet - facet normal -0.168602 -0.985684 -0 - outer loop - vertex -2.06279 11.235 0 - vertex -2.74162 11.3511 -0.2 - vertex -2.06279 11.235 -0.2 - endloop - endfacet - facet normal -0.106074 -0.994358 0 - outer loop - vertex -2.06279 11.235 -0.2 - vertex -1.45038 11.1697 0 - vertex -2.06279 11.235 0 - endloop - endfacet - facet normal -0.106074 -0.994358 -0 - outer loop - vertex -1.45038 11.1697 0 - vertex -2.06279 11.235 -0.2 - vertex -1.45038 11.1697 -0.2 - endloop - endfacet - facet normal -0.0235022 -0.999724 0 - outer loop - vertex -1.45038 11.1697 -0.2 - vertex -0.893798 11.1566 0 - vertex -1.45038 11.1697 0 - endloop - endfacet - facet normal -0.0235022 -0.999724 -0 - outer loop - vertex -0.893798 11.1566 0 - vertex -1.45038 11.1697 -0.2 - vertex -0.893798 11.1566 -0.2 - endloop - endfacet - facet normal 0.0792039 -0.996858 0 - outer loop - vertex -0.893798 11.1566 -0.2 - vertex -0.382462 11.1972 0 - vertex -0.893798 11.1566 0 - endloop - endfacet - facet normal 0.0792039 -0.996858 0 - outer loop - vertex -0.382462 11.1972 0 - vertex -0.893798 11.1566 -0.2 - vertex -0.382462 11.1972 -0.2 - endloop - endfacet - facet normal 0.197027 -0.980398 0 - outer loop - vertex -0.382462 11.1972 -0.2 - vertex 0.0942225 11.293 0 - vertex -0.382462 11.1972 0 - endloop - endfacet - facet normal 0.197027 -0.980398 0 - outer loop - vertex 0.0942225 11.293 0 - vertex -0.382462 11.1972 -0.2 - vertex 0.0942225 11.293 -0.2 - endloop - endfacet - facet normal 0.319159 -0.947701 0 - outer loop - vertex 0.0942225 11.293 -0.2 - vertex 0.546849 11.4454 0 - vertex 0.0942225 11.293 0 - endloop - endfacet - facet normal 0.319159 -0.947701 0 - outer loop - vertex 0.546849 11.4454 0 - vertex 0.0942225 11.293 -0.2 - vertex 0.546849 11.4454 -0.2 - endloop - endfacet - facet normal 0.432288 -0.901736 0 - outer loop - vertex 0.546849 11.4454 -0.2 - vertex 0.986004 11.656 0 - vertex 0.546849 11.4454 0 - endloop - endfacet - facet normal 0.432288 -0.901736 0 - outer loop - vertex 0.986004 11.656 0 - vertex 0.546849 11.4454 -0.2 - vertex 0.986004 11.656 -0.2 - endloop - endfacet - facet normal 0.52637 -0.850255 0 - outer loop - vertex 0.986004 11.656 -0.2 - vertex 1.42228 11.926 0 - vertex 0.986004 11.656 0 - endloop - endfacet - facet normal 0.52637 -0.850255 0 - outer loop - vertex 1.42228 11.926 0 - vertex 0.986004 11.656 -0.2 - vertex 1.42228 11.926 -0.2 - endloop - endfacet - facet normal 0.604613 -0.796519 0 - outer loop - vertex 1.42228 11.926 -0.2 - vertex 1.72214 12.1537 0 - vertex 1.42228 11.926 0 - endloop - endfacet - facet normal 0.604613 -0.796519 0 - outer loop - vertex 1.72214 12.1537 0 - vertex 1.42228 11.926 -0.2 - vertex 1.72214 12.1537 -0.2 - endloop - endfacet - facet normal 0.710535 -0.703661 0 - outer loop - vertex 1.72214 12.1537 0 - vertex 1.81906 12.2515 -0.2 - vertex 1.81906 12.2515 0 - endloop - endfacet - facet normal 0.710535 -0.703661 0 - outer loop - vertex 1.81906 12.2515 -0.2 - vertex 1.72214 12.1537 0 - vertex 1.72214 12.1537 -0.2 - endloop - endfacet - facet normal 0.820717 -0.571334 0 - outer loop - vertex 1.81906 12.2515 0 - vertex 1.88346 12.344 -0.2 - vertex 1.88346 12.344 0 - endloop - endfacet - facet normal 0.820717 -0.571334 0 - outer loop - vertex 1.88346 12.344 -0.2 - vertex 1.81906 12.2515 0 - vertex 1.81906 12.2515 -0.2 - endloop - endfacet - facet normal 0.936854 -0.349721 0 - outer loop - vertex 1.88346 12.344 0 - vertex 1.91748 12.4352 -0.2 - vertex 1.91748 12.4352 0 - endloop - endfacet - facet normal 0.936854 -0.349721 0 - outer loop - vertex 1.91748 12.4352 -0.2 - vertex 1.88346 12.344 0 - vertex 1.88346 12.344 -0.2 - endloop - endfacet - facet normal 0.998121 -0.0612747 0 - outer loop - vertex 1.91748 12.4352 0 - vertex 1.92323 12.5289 -0.2 - vertex 1.92323 12.5289 0 - endloop - endfacet - facet normal 0.998121 -0.0612747 0 - outer loop - vertex 1.92323 12.5289 -0.2 - vertex 1.91748 12.4352 0 - vertex 1.91748 12.4352 -0.2 - endloop - endfacet - facet normal 0.979928 0.199352 0 - outer loop - vertex 1.92323 12.5289 0 - vertex 1.90284 12.6291 -0.2 - vertex 1.90284 12.6291 0 - endloop - endfacet - facet normal 0.979928 0.199352 0 - outer loop - vertex 1.90284 12.6291 -0.2 - vertex 1.92323 12.5289 0 - vertex 1.92323 12.5289 -0.2 - endloop - endfacet - facet normal 0.928124 0.372271 0 - outer loop - vertex 1.90284 12.6291 0 - vertex 1.85843 12.7398 -0.2 - vertex 1.85843 12.7398 0 - endloop - endfacet - facet normal 0.928124 0.372271 0 - outer loop - vertex 1.85843 12.7398 -0.2 - vertex 1.90284 12.6291 0 - vertex 1.90284 12.6291 -0.2 - endloop - endfacet - facet normal 0.849902 0.526941 0 - outer loop - vertex 1.85843 12.7398 0 - vertex 1.7147 12.9716 -0.2 - vertex 1.7147 12.9716 0 - endloop - endfacet - facet normal 0.849902 0.526941 0 - outer loop - vertex 1.7147 12.9716 -0.2 - vertex 1.85843 12.7398 0 - vertex 1.85843 12.7398 -0.2 - endloop - endfacet - facet normal 0.728356 0.685198 0 - outer loop - vertex 1.7147 12.9716 0 - vertex 1.51175 13.1874 -0.2 - vertex 1.51175 13.1874 0 - endloop - endfacet - facet normal 0.728356 0.685198 0 - outer loop - vertex 1.51175 13.1874 -0.2 - vertex 1.7147 12.9716 0 - vertex 1.7147 12.9716 -0.2 - endloop - endfacet - facet normal 0.606497 0.795086 -0 - outer loop - vertex 1.51175 13.1874 -0.2 - vertex 1.25015 13.3869 0 - vertex 1.51175 13.1874 0 - endloop - endfacet - facet normal 0.606497 0.795086 0 - outer loop - vertex 1.25015 13.3869 0 - vertex 1.51175 13.1874 -0.2 - vertex 1.25015 13.3869 -0.2 - endloop - endfacet - facet normal 0.497341 0.867555 -0 - outer loop - vertex 1.25015 13.3869 -0.2 - vertex 0.930489 13.5702 0 - vertex 1.25015 13.3869 0 - endloop - endfacet - facet normal 0.497341 0.867555 0 - outer loop - vertex 0.930489 13.5702 0 - vertex 1.25015 13.3869 -0.2 - vertex 0.930489 13.5702 -0.2 - endloop - endfacet - facet normal 0.404567 0.914508 -0 - outer loop - vertex 0.930489 13.5702 -0.2 - vertex 0.55335 13.737 0 - vertex 0.930489 13.5702 0 - endloop - endfacet - facet normal 0.404567 0.914508 0 - outer loop - vertex 0.55335 13.737 0 - vertex 0.930489 13.5702 -0.2 - vertex 0.55335 13.737 -0.2 - endloop - endfacet - facet normal 0.327265 0.944933 -0 - outer loop - vertex 0.55335 13.737 -0.2 - vertex 0.119316 13.8873 0 - vertex 0.55335 13.737 0 - endloop - endfacet - facet normal 0.327265 0.944933 0 - outer loop - vertex 0.119316 13.8873 0 - vertex 0.55335 13.737 -0.2 - vertex 0.119316 13.8873 -0.2 - endloop - endfacet - facet normal 0.263047 0.964783 -0 - outer loop - vertex 0.119316 13.8873 -0.2 - vertex -0.371032 14.021 0 - vertex 0.119316 13.8873 0 - endloop - endfacet - facet normal 0.263047 0.964783 0 - outer loop - vertex -0.371032 14.021 0 - vertex 0.119316 13.8873 -0.2 - vertex -0.371032 14.021 -0.2 - endloop - endfacet - facet normal 0.209418 0.977826 -0 - outer loop - vertex -0.371032 14.021 -0.2 - vertex -0.917111 14.138 0 - vertex -0.371032 14.021 0 - endloop - endfacet - facet normal 0.209418 0.977826 0 - outer loop - vertex -0.917111 14.138 0 - vertex -0.371032 14.021 -0.2 - vertex -0.917111 14.138 -0.2 - endloop - endfacet - facet normal 0.164236 0.986421 -0 - outer loop - vertex -0.917111 14.138 -0.2 - vertex -1.51834 14.2381 0 - vertex -0.917111 14.138 0 - endloop - endfacet - facet normal 0.164236 0.986421 0 - outer loop - vertex -1.51834 14.2381 0 - vertex -0.917111 14.138 -0.2 - vertex -1.51834 14.2381 -0.2 - endloop - endfacet - facet normal 0.125776 0.992059 -0 - outer loop - vertex -1.51834 14.2381 -0.2 - vertex -2.17413 14.3212 0 - vertex -1.51834 14.2381 0 - endloop - endfacet - facet normal 0.125776 0.992059 0 - outer loop - vertex -2.17413 14.3212 0 - vertex -1.51834 14.2381 -0.2 - vertex -2.17413 14.3212 -0.2 - endloop - endfacet - facet normal 0.0926874 0.995695 -0 - outer loop - vertex -2.17413 14.3212 -0.2 - vertex -2.8839 14.3873 0 - vertex -2.17413 14.3212 0 - endloop - endfacet - facet normal 0.0926874 0.995695 0 - outer loop - vertex -2.8839 14.3873 0 - vertex -2.17413 14.3212 -0.2 - vertex -2.8839 14.3873 -0.2 - endloop - endfacet - facet normal 0.0639318 0.997954 -0 - outer loop - vertex -2.8839 14.3873 -0.2 - vertex -3.64708 14.4362 0 - vertex -2.8839 14.3873 0 - endloop - endfacet - facet normal 0.0639318 0.997954 0 - outer loop - vertex -3.64708 14.4362 0 - vertex -2.8839 14.3873 -0.2 - vertex -3.64708 14.4362 -0.2 - endloop - endfacet - facet normal 0.0386969 0.999251 -0 - outer loop - vertex -3.64708 14.4362 -0.2 - vertex -4.46307 14.4678 0 - vertex -3.64708 14.4362 0 - endloop - endfacet - facet normal 0.0386969 0.999251 0 - outer loop - vertex -4.46307 14.4678 0 - vertex -3.64708 14.4362 -0.2 - vertex -4.46307 14.4678 -0.2 - endloop - endfacet - facet normal 0.0163522 0.999866 -0 - outer loop - vertex -4.46307 14.4678 -0.2 - vertex -5.33129 14.482 0 - vertex -4.46307 14.4678 0 - endloop - endfacet - facet normal 0.0163522 0.999866 0 - outer loop - vertex -5.33129 14.482 0 - vertex -4.46307 14.4678 -0.2 - vertex -5.33129 14.482 -0.2 - endloop - endfacet - facet normal -0.00360162 0.999994 0 - outer loop - vertex -5.33129 14.482 -0.2 - vertex -6.25117 14.4787 0 - vertex -5.33129 14.482 0 - endloop - endfacet - facet normal -0.00360162 0.999994 0 - outer loop - vertex -6.25117 14.4787 0 - vertex -5.33129 14.482 -0.2 - vertex -6.25117 14.4787 -0.2 - endloop - endfacet - facet normal -0.0215556 0.999768 0 - outer loop - vertex -6.25117 14.4787 -0.2 - vertex -7.22211 14.4578 0 - vertex -6.25117 14.4787 0 - endloop - endfacet - facet normal -0.0215556 0.999768 0 - outer loop - vertex -7.22211 14.4578 0 - vertex -6.25117 14.4787 -0.2 - vertex -7.22211 14.4578 -0.2 - endloop - endfacet - facet normal -0.0376222 0.999292 0 - outer loop - vertex -7.22211 14.4578 -0.2 - vertex -9.25643 14.3812 0 - vertex -7.22211 14.4578 0 - endloop - endfacet - facet normal -0.0376222 0.999292 0 - outer loop - vertex -9.25643 14.3812 0 - vertex -7.22211 14.4578 -0.2 - vertex -9.25643 14.3812 -0.2 - endloop - endfacet - facet normal -0.0777977 0.996969 0 - outer loop - vertex -9.25643 14.3812 -0.2 - vertex -9.98725 14.3241 0 - vertex -9.25643 14.3812 0 - endloop - endfacet - facet normal -0.0777977 0.996969 0 - outer loop - vertex -9.98725 14.3241 0 - vertex -9.25643 14.3812 -0.2 - vertex -9.98725 14.3241 -0.2 - endloop - endfacet - facet normal -0.133926 0.990991 0 - outer loop - vertex -9.98725 14.3241 -0.2 - vertex -10.6249 14.238 0 - vertex -9.98725 14.3241 0 - endloop - endfacet - facet normal -0.133926 0.990991 0 - outer loop - vertex -10.6249 14.238 0 - vertex -9.98725 14.3241 -0.2 - vertex -10.6249 14.238 -0.2 - endloop - endfacet - facet normal -0.202593 0.979263 0 - outer loop - vertex -10.6249 14.238 -0.2 - vertex -11.2428 14.1101 0 - vertex -10.6249 14.238 0 - endloop - endfacet - facet normal -0.202593 0.979263 0 - outer loop - vertex -11.2428 14.1101 0 - vertex -10.6249 14.238 -0.2 - vertex -11.2428 14.1101 -0.2 - endloop - endfacet - facet normal -0.261603 0.965176 0 - outer loop - vertex -11.2428 14.1101 -0.2 - vertex -11.9142 13.9281 0 - vertex -11.2428 14.1101 0 - endloop - endfacet - facet normal -0.261603 0.965176 0 - outer loop - vertex -11.9142 13.9281 0 - vertex -11.2428 14.1101 -0.2 - vertex -11.9142 13.9281 -0.2 - endloop - endfacet - facet normal -0.297369 0.954762 0 - outer loop - vertex -11.9142 13.9281 -0.2 - vertex -12.7125 13.6795 0 - vertex -11.9142 13.9281 0 - endloop - endfacet - facet normal -0.297369 0.954762 0 - outer loop - vertex -12.7125 13.6795 0 - vertex -11.9142 13.9281 -0.2 - vertex -12.7125 13.6795 -0.2 - endloop - endfacet - facet normal -0.311908 0.950112 0 - outer loop - vertex -12.7125 13.6795 -0.2 - vertex -13.7109 13.3517 0 - vertex -12.7125 13.6795 0 - endloop - endfacet - facet normal -0.311908 0.950112 0 - outer loop - vertex -13.7109 13.3517 0 - vertex -12.7125 13.6795 -0.2 - vertex -13.7109 13.3517 -0.2 - endloop - endfacet - facet normal -0.299976 0.953947 0 - outer loop - vertex -13.7109 13.3517 -0.2 - vertex -14.949 12.9624 0 - vertex -13.7109 13.3517 0 - endloop - endfacet - facet normal -0.299976 0.953947 0 - outer loop - vertex -14.949 12.9624 0 - vertex -13.7109 13.3517 -0.2 - vertex -14.949 12.9624 -0.2 - endloop - endfacet - facet normal -0.271422 0.96246 0 - outer loop - vertex -14.949 12.9624 -0.2 - vertex -16.0795 12.6436 0 - vertex -14.949 12.9624 0 - endloop - endfacet - facet normal -0.271422 0.96246 0 - outer loop - vertex -16.0795 12.6436 0 - vertex -14.949 12.9624 -0.2 - vertex -16.0795 12.6436 -0.2 - endloop - endfacet - facet normal -0.233252 0.972416 0 - outer loop - vertex -16.0795 12.6436 -0.2 - vertex -16.9775 12.4282 0 - vertex -16.0795 12.6436 0 - endloop - endfacet - facet normal -0.233252 0.972416 0 - outer loop - vertex -16.9775 12.4282 0 - vertex -16.0795 12.6436 -0.2 - vertex -16.9775 12.4282 -0.2 - endloop - endfacet - facet normal -0.178763 0.983892 0 - outer loop - vertex -16.9775 12.4282 -0.2 - vertex -17.3003 12.3696 0 - vertex -16.9775 12.4282 0 - endloop - endfacet - facet normal -0.178763 0.983892 0 - outer loop - vertex -17.3003 12.3696 0 - vertex -16.9775 12.4282 -0.2 - vertex -17.3003 12.3696 -0.2 - endloop - endfacet - facet normal -0.0935268 0.995617 0 - outer loop - vertex -17.3003 12.3696 -0.2 - vertex -17.5181 12.3491 0 - vertex -17.3003 12.3696 0 - endloop - endfacet - facet normal -0.0935268 0.995617 0 - outer loop - vertex -17.5181 12.3491 0 - vertex -17.3003 12.3696 -0.2 - vertex -17.5181 12.3491 -0.2 - endloop - endfacet - facet normal -0.0617051 0.998094 0 - outer loop - vertex -17.5181 12.3491 -0.2 - vertex -17.9556 12.3221 0 - vertex -17.5181 12.3491 0 - endloop - endfacet - facet normal -0.0617051 0.998094 0 - outer loop - vertex -17.9556 12.3221 0 - vertex -17.5181 12.3491 -0.2 - vertex -17.9556 12.3221 -0.2 - endloop - endfacet - facet normal -0.11848 0.992956 0 - outer loop - vertex -17.9556 12.3221 -0.2 - vertex -18.5728 12.2484 0 - vertex -17.9556 12.3221 0 - endloop - endfacet - facet normal -0.11848 0.992956 0 - outer loop - vertex -18.5728 12.2484 0 - vertex -17.9556 12.3221 -0.2 - vertex -18.5728 12.2484 -0.2 - endloop - endfacet - facet normal -0.150729 0.988575 0 - outer loop - vertex -18.5728 12.2484 -0.2 - vertex -19.2876 12.1394 0 - vertex -18.5728 12.2484 0 - endloop - endfacet - facet normal -0.150729 0.988575 0 - outer loop - vertex -19.2876 12.1394 0 - vertex -18.5728 12.2484 -0.2 - vertex -19.2876 12.1394 -0.2 - endloop - endfacet - facet normal -0.179254 0.983803 0 - outer loop - vertex -19.2876 12.1394 -0.2 - vertex -20.0181 12.0063 0 - vertex -19.2876 12.1394 0 - endloop - endfacet - facet normal -0.179254 0.983803 0 - outer loop - vertex -20.0181 12.0063 0 - vertex -19.2876 12.1394 -0.2 - vertex -20.0181 12.0063 -0.2 - endloop - endfacet - facet normal -0.161235 0.986916 0 - outer loop - vertex -20.0181 12.0063 -0.2 - vertex -20.4772 11.9313 0 - vertex -20.0181 12.0063 0 - endloop - endfacet - facet normal -0.161235 0.986916 0 - outer loop - vertex -20.4772 11.9313 0 - vertex -20.0181 12.0063 -0.2 - vertex -20.4772 11.9313 -0.2 - endloop - endfacet - facet normal -0.116007 0.993248 0 - outer loop - vertex -20.4772 11.9313 -0.2 - vertex -21.0446 11.8651 0 - vertex -20.4772 11.9313 0 - endloop - endfacet - facet normal -0.116007 0.993248 0 - outer loop - vertex -21.0446 11.8651 0 - vertex -20.4772 11.9313 -0.2 - vertex -21.0446 11.8651 -0.2 - endloop - endfacet - facet normal -0.076075 0.997102 0 - outer loop - vertex -21.0446 11.8651 -0.2 - vertex -22.4311 11.7593 0 - vertex -21.0446 11.8651 0 - endloop - endfacet - facet normal -0.076075 0.997102 0 - outer loop - vertex -22.4311 11.7593 0 - vertex -21.0446 11.8651 -0.2 - vertex -22.4311 11.7593 -0.2 - endloop - endfacet - facet normal -0.0432101 0.999066 0 - outer loop - vertex -22.4311 11.7593 -0.2 - vertex -24.031 11.6901 0 - vertex -22.4311 11.7593 0 - endloop - endfacet - facet normal -0.0432101 0.999066 0 - outer loop - vertex -24.031 11.6901 0 - vertex -22.4311 11.7593 -0.2 - vertex -24.031 11.6901 -0.2 - endloop - endfacet - facet normal -0.0189053 0.999821 0 - outer loop - vertex -24.031 11.6901 -0.2 - vertex -25.698 11.6586 0 - vertex -24.031 11.6901 0 - endloop - endfacet - facet normal -0.0189053 0.999821 0 - outer loop - vertex -25.698 11.6586 0 - vertex -24.031 11.6901 -0.2 - vertex -25.698 11.6586 -0.2 - endloop - endfacet - facet normal 0.00456618 0.99999 -0 - outer loop - vertex -25.698 11.6586 -0.2 - vertex -27.2855 11.6658 0 - vertex -25.698 11.6586 0 - endloop - endfacet - facet normal 0.00456618 0.99999 0 - outer loop - vertex -27.2855 11.6658 0 - vertex -25.698 11.6586 -0.2 - vertex -27.2855 11.6658 -0.2 - endloop - endfacet - facet normal 0.034581 0.999402 -0 - outer loop - vertex -27.2855 11.6658 -0.2 - vertex -28.647 11.7129 0 - vertex -27.2855 11.6658 0 - endloop - endfacet - facet normal 0.034581 0.999402 0 - outer loop - vertex -28.647 11.7129 0 - vertex -27.2855 11.6658 -0.2 - vertex -28.647 11.7129 -0.2 - endloop - endfacet - facet normal 0.0704155 0.997518 -0 - outer loop - vertex -28.647 11.7129 -0.2 - vertex -29.1973 11.7518 0 - vertex -28.647 11.7129 0 - endloop - endfacet - facet normal 0.0704155 0.997518 0 - outer loop - vertex -29.1973 11.7518 0 - vertex -28.647 11.7129 -0.2 - vertex -29.1973 11.7518 -0.2 - endloop - endfacet - facet normal 0.111453 0.99377 -0 - outer loop - vertex -29.1973 11.7518 -0.2 - vertex -29.6362 11.801 0 - vertex -29.1973 11.7518 0 - endloop - endfacet - facet normal 0.111453 0.99377 0 - outer loop - vertex -29.6362 11.801 0 - vertex -29.1973 11.7518 -0.2 - vertex -29.6362 11.801 -0.2 - endloop - endfacet - facet normal 0.189706 0.981841 -0 - outer loop - vertex -29.6362 11.801 -0.2 - vertex -29.9453 11.8607 0 - vertex -29.6362 11.801 0 - endloop - endfacet - facet normal 0.189706 0.981841 0 - outer loop - vertex -29.9453 11.8607 0 - vertex -29.6362 11.801 -0.2 - vertex -29.9453 11.8607 -0.2 - endloop - endfacet - facet normal 0.320034 0.947406 -0 - outer loop - vertex -29.9453 11.8607 -0.2 - vertex -30.0456 11.8946 0 - vertex -29.9453 11.8607 0 - endloop - endfacet - facet normal 0.320034 0.947406 0 - outer loop - vertex -30.0456 11.8946 0 - vertex -29.9453 11.8607 -0.2 - vertex -30.0456 11.8946 -0.2 - endloop - endfacet - facet normal 0.514271 0.857628 -0 - outer loop - vertex -30.0456 11.8946 -0.2 - vertex -30.1065 11.9311 0 - vertex -30.0456 11.8946 0 - endloop - endfacet - facet normal 0.514271 0.857628 0 - outer loop - vertex -30.1065 11.9311 0 - vertex -30.0456 11.8946 -0.2 - vertex -30.1065 11.9311 -0.2 - endloop - endfacet - facet normal 0.794078 0.607816 0 - outer loop - vertex -30.1065 11.9311 0 - vertex -30.2115 12.0683 -0.2 - vertex -30.2115 12.0683 0 - endloop - endfacet - facet normal 0.794078 0.607816 0 - outer loop - vertex -30.2115 12.0683 -0.2 - vertex -30.1065 11.9311 0 - vertex -30.1065 11.9311 -0.2 - endloop - endfacet - facet normal 0.908198 0.418541 0 - outer loop - vertex -30.2115 12.0683 0 - vertex -30.2975 12.2549 -0.2 - vertex -30.2975 12.2549 0 - endloop - endfacet - facet normal 0.908198 0.418541 0 - outer loop - vertex -30.2975 12.2549 -0.2 - vertex -30.2115 12.0683 0 - vertex -30.2115 12.0683 -0.2 - endloop - endfacet - facet normal 0.964271 0.264918 0 - outer loop - vertex -30.2975 12.2549 0 - vertex -30.3556 12.4664 -0.2 - vertex -30.3556 12.4664 0 - endloop - endfacet - facet normal 0.964271 0.264918 0 - outer loop - vertex -30.3556 12.4664 -0.2 - vertex -30.2975 12.2549 0 - vertex -30.2975 12.2549 -0.2 - endloop - endfacet - facet normal 0.994966 0.10021 0 - outer loop - vertex -30.3556 12.4664 0 - vertex -30.377 12.6783 -0.2 - vertex -30.377 12.6783 0 - endloop - endfacet - facet normal 0.994966 0.10021 0 - outer loop - vertex -30.377 12.6783 -0.2 - vertex -30.3556 12.4664 0 - vertex -30.3556 12.4664 -0.2 - endloop - endfacet - facet normal 0.99734 -0.0728833 0 - outer loop - vertex -30.377 12.6783 0 - vertex -30.3621 12.8813 -0.2 - vertex -30.3621 12.8813 0 - endloop - endfacet - facet normal 0.99734 -0.0728833 0 - outer loop - vertex -30.3621 12.8813 -0.2 - vertex -30.377 12.6783 0 - vertex -30.377 12.6783 -0.2 - endloop - endfacet - facet normal 0.963268 -0.268541 0 - outer loop - vertex -30.3621 12.8813 0 - vertex -30.3387 12.9655 -0.2 - vertex -30.3387 12.9655 0 - endloop - endfacet - facet normal 0.963268 -0.268541 0 - outer loop - vertex -30.3387 12.9655 -0.2 - vertex -30.3621 12.8813 0 - vertex -30.3621 12.8813 -0.2 - endloop - endfacet - facet normal 0.886257 -0.463194 0 - outer loop - vertex -30.3387 12.9655 0 - vertex -30.3001 13.0393 -0.2 - vertex -30.3001 13.0393 0 - endloop - endfacet - facet normal 0.886257 -0.463194 0 - outer loop - vertex -30.3001 13.0393 -0.2 - vertex -30.3387 12.9655 0 - vertex -30.3387 12.9655 -0.2 - endloop - endfacet - facet normal 0.748065 -0.663625 0 - outer loop - vertex -30.3001 13.0393 0 - vertex -30.2432 13.1034 -0.2 - vertex -30.2432 13.1034 0 - endloop - endfacet - facet normal 0.748065 -0.663625 0 - outer loop - vertex -30.2432 13.1034 -0.2 - vertex -30.3001 13.0393 0 - vertex -30.3001 13.0393 -0.2 - endloop - endfacet - facet normal 0.576127 -0.81736 0 - outer loop - vertex -30.2432 13.1034 -0.2 - vertex -30.1646 13.1588 0 - vertex -30.2432 13.1034 0 - endloop - endfacet - facet normal 0.576127 -0.81736 0 - outer loop - vertex -30.1646 13.1588 0 - vertex -30.2432 13.1034 -0.2 - vertex -30.1646 13.1588 -0.2 - endloop - endfacet - facet normal 0.349457 -0.936953 0 - outer loop - vertex -30.1646 13.1588 -0.2 - vertex -29.9294 13.2465 0 - vertex -30.1646 13.1588 0 - endloop - endfacet - facet normal 0.349457 -0.936953 0 - outer loop - vertex -29.9294 13.2465 0 - vertex -30.1646 13.1588 -0.2 - vertex -29.9294 13.2465 -0.2 - endloop - endfacet - facet normal 0.170605 -0.985339 0 - outer loop - vertex -29.9294 13.2465 -0.2 - vertex -29.5683 13.309 0 - vertex -29.9294 13.2465 0 - endloop - endfacet - facet normal 0.170605 -0.985339 0 - outer loop - vertex -29.5683 13.309 0 - vertex -29.9294 13.2465 -0.2 - vertex -29.5683 13.309 -0.2 - endloop - endfacet - facet normal 0.0853267 -0.996353 0 - outer loop - vertex -29.5683 13.309 -0.2 - vertex -29.0548 13.353 0 - vertex -29.5683 13.309 0 - endloop - endfacet - facet normal 0.0853267 -0.996353 0 - outer loop - vertex -29.0548 13.353 0 - vertex -29.5683 13.309 -0.2 - vertex -29.0548 13.353 -0.2 - endloop - endfacet - facet normal 0.0369327 -0.999318 0 - outer loop - vertex -29.0548 13.353 -0.2 - vertex -27.4661 13.4117 0 - vertex -29.0548 13.353 0 - endloop - endfacet - facet normal 0.0369327 -0.999318 0 - outer loop - vertex -27.4661 13.4117 0 - vertex -29.0548 13.353 -0.2 - vertex -27.4661 13.4117 -0.2 - endloop - endfacet - facet normal 0.0488074 -0.998808 0 - outer loop - vertex -27.4661 13.4117 -0.2 - vertex -26.1544 13.4758 0 - vertex -27.4661 13.4117 0 - endloop - endfacet - facet normal 0.0488074 -0.998808 0 - outer loop - vertex -26.1544 13.4758 0 - vertex -27.4661 13.4117 -0.2 - vertex -26.1544 13.4758 -0.2 - endloop - endfacet - facet normal 0.0958463 -0.995396 0 - outer loop - vertex -26.1544 13.4758 -0.2 - vertex -24.8613 13.6003 0 - vertex -26.1544 13.4758 0 - endloop - endfacet - facet normal 0.0958463 -0.995396 0 - outer loop - vertex -24.8613 13.6003 0 - vertex -26.1544 13.4758 -0.2 - vertex -24.8613 13.6003 -0.2 - endloop - endfacet - facet normal 0.144031 -0.989573 0 - outer loop - vertex -24.8613 13.6003 -0.2 - vertex -23.579 13.787 0 - vertex -24.8613 13.6003 0 - endloop - endfacet - facet normal 0.144031 -0.989573 0 - outer loop - vertex -23.579 13.787 0 - vertex -24.8613 13.6003 -0.2 - vertex -23.579 13.787 -0.2 - endloop - endfacet - facet normal 0.192155 -0.981365 0 - outer loop - vertex -23.579 13.787 -0.2 - vertex -22.3001 14.0374 0 - vertex -23.579 13.787 0 - endloop - endfacet - facet normal 0.192155 -0.981365 0 - outer loop - vertex -22.3001 14.0374 0 - vertex -23.579 13.787 -0.2 - vertex -22.3001 14.0374 -0.2 - endloop - endfacet - facet normal 0.239032 -0.971012 0 - outer loop - vertex -22.3001 14.0374 -0.2 - vertex -21.0167 14.3533 0 - vertex -22.3001 14.0374 0 - endloop - endfacet - facet normal 0.239032 -0.971012 0 - outer loop - vertex -21.0167 14.3533 0 - vertex -22.3001 14.0374 -0.2 - vertex -21.0167 14.3533 -0.2 - endloop - endfacet - facet normal 0.283599 -0.958943 0 - outer loop - vertex -21.0167 14.3533 -0.2 - vertex -19.7213 14.7364 0 - vertex -21.0167 14.3533 0 - endloop - endfacet - facet normal 0.283599 -0.958943 0 - outer loop - vertex -19.7213 14.7364 0 - vertex -21.0167 14.3533 -0.2 - vertex -19.7213 14.7364 -0.2 - endloop - endfacet - facet normal 0.325025 -0.945706 0 - outer loop - vertex -19.7213 14.7364 -0.2 - vertex -18.4061 15.1884 0 - vertex -19.7213 14.7364 0 - endloop - endfacet - facet normal 0.325025 -0.945706 0 - outer loop - vertex -18.4061 15.1884 0 - vertex -19.7213 14.7364 -0.2 - vertex -18.4061 15.1884 -0.2 - endloop - endfacet - facet normal 0.362736 -0.931892 0 - outer loop - vertex -18.4061 15.1884 -0.2 - vertex -17.0637 15.711 0 - vertex -18.4061 15.1884 0 - endloop - endfacet - facet normal 0.362736 -0.931892 0 - outer loop - vertex -17.0637 15.711 0 - vertex -18.4061 15.1884 -0.2 - vertex -17.0637 15.711 -0.2 - endloop - endfacet - facet normal 0.385262 -0.922807 0 - outer loop - vertex -17.0637 15.711 -0.2 - vertex -16.4531 15.9659 0 - vertex -17.0637 15.711 0 - endloop - endfacet - facet normal 0.385262 -0.922807 0 - outer loop - vertex -16.4531 15.9659 0 - vertex -17.0637 15.711 -0.2 - vertex -16.4531 15.9659 -0.2 - endloop - endfacet - facet normal 0.409178 -0.912454 0 - outer loop - vertex -16.4531 15.9659 -0.2 - vertex -15.9397 16.1961 0 - vertex -16.4531 15.9659 0 - endloop - endfacet - facet normal 0.409178 -0.912454 0 - outer loop - vertex -15.9397 16.1961 0 - vertex -16.4531 15.9659 -0.2 - vertex -15.9397 16.1961 -0.2 - endloop - endfacet - facet normal 0.452989 -0.891516 0 - outer loop - vertex -15.9397 16.1961 -0.2 - vertex -15.4716 16.4339 0 - vertex -15.9397 16.1961 0 - endloop - endfacet - facet normal 0.452989 -0.891516 0 - outer loop - vertex -15.4716 16.4339 0 - vertex -15.9397 16.1961 -0.2 - vertex -15.4716 16.4339 -0.2 - endloop - endfacet - facet normal 0.505092 -0.863065 0 - outer loop - vertex -15.4716 16.4339 -0.2 - vertex -14.9972 16.7116 0 - vertex -15.4716 16.4339 0 - endloop - endfacet - facet normal 0.505092 -0.863065 0 - outer loop - vertex -14.9972 16.7116 0 - vertex -15.4716 16.4339 -0.2 - vertex -14.9972 16.7116 -0.2 - endloop - endfacet - facet normal 0.548914 -0.835879 0 - outer loop - vertex -14.9972 16.7116 -0.2 - vertex -14.4648 17.0612 0 - vertex -14.9972 16.7116 0 - endloop - endfacet - facet normal 0.548914 -0.835879 0 - outer loop - vertex -14.4648 17.0612 0 - vertex -14.9972 16.7116 -0.2 - vertex -14.4648 17.0612 -0.2 - endloop - endfacet - facet normal 0.577162 -0.81663 0 - outer loop - vertex -14.4648 17.0612 -0.2 - vertex -13.8225 17.5152 0 - vertex -14.4648 17.0612 0 - endloop - endfacet - facet normal 0.577162 -0.81663 0 - outer loop - vertex -13.8225 17.5152 0 - vertex -14.4648 17.0612 -0.2 - vertex -13.8225 17.5152 -0.2 - endloop - endfacet - facet normal 0.595448 -0.803394 0 - outer loop - vertex -13.8225 17.5152 -0.2 - vertex -12.0016 18.8648 0 - vertex -13.8225 17.5152 0 - endloop - endfacet - facet normal 0.595448 -0.803394 0 - outer loop - vertex -12.0016 18.8648 0 - vertex -13.8225 17.5152 -0.2 - vertex -12.0016 18.8648 -0.2 - endloop - endfacet - facet normal 0.610957 -0.791663 0 - outer loop - vertex -12.0016 18.8648 -0.2 - vertex -11.4702 19.2748 0 - vertex -12.0016 18.8648 0 - endloop - endfacet - facet normal 0.610957 -0.791663 0 - outer loop - vertex -11.4702 19.2748 0 - vertex -12.0016 18.8648 -0.2 - vertex -11.4702 19.2748 -0.2 - endloop - endfacet - facet normal 0.661597 -0.749859 0 - outer loop - vertex -11.4702 19.2748 -0.2 - vertex -11.1091 19.5935 0 - vertex -11.4702 19.2748 0 - endloop - endfacet - facet normal 0.661597 -0.749859 0 - outer loop - vertex -11.1091 19.5935 0 - vertex -11.4702 19.2748 -0.2 - vertex -11.1091 19.5935 -0.2 - endloop - endfacet - facet normal 0.747538 -0.664219 0 - outer loop - vertex -11.1091 19.5935 0 - vertex -10.9948 19.7221 -0.2 - vertex -10.9948 19.7221 0 - endloop - endfacet - facet normal 0.747538 -0.664219 0 - outer loop - vertex -10.9948 19.7221 -0.2 - vertex -11.1091 19.5935 0 - vertex -11.1091 19.5935 -0.2 - endloop - endfacet - facet normal 0.848145 -0.529765 0 - outer loop - vertex -10.9948 19.7221 0 - vertex -10.9261 19.832 -0.2 - vertex -10.9261 19.832 0 - endloop - endfacet - facet normal 0.848145 -0.529765 0 - outer loop - vertex -10.9261 19.832 -0.2 - vertex -10.9948 19.7221 0 - vertex -10.9948 19.7221 -0.2 - endloop - endfacet - facet normal 0.972725 -0.231962 0 - outer loop - vertex -10.9261 19.832 0 - vertex -10.904 19.9248 -0.2 - vertex -10.904 19.9248 0 - endloop - endfacet - facet normal 0.972725 -0.231962 0 - outer loop - vertex -10.904 19.9248 -0.2 - vertex -10.9261 19.832 0 - vertex -10.9261 19.832 -0.2 - endloop - endfacet - facet normal 0.949443 0.31394 0 - outer loop - vertex -10.904 19.9248 0 - vertex -10.9294 20.0018 -0.2 - vertex -10.9294 20.0018 0 - endloop - endfacet - facet normal 0.949443 0.31394 0 - outer loop - vertex -10.9294 20.0018 -0.2 - vertex -10.904 19.9248 0 - vertex -10.904 19.9248 -0.2 - endloop - endfacet - facet normal 0.645708 0.763585 -0 - outer loop - vertex -10.9294 20.0018 -0.2 - vertex -11.0035 20.0644 0 - vertex -10.9294 20.0018 0 - endloop - endfacet - facet normal 0.645708 0.763585 0 - outer loop - vertex -11.0035 20.0644 0 - vertex -10.9294 20.0018 -0.2 - vertex -11.0035 20.0644 -0.2 - endloop - endfacet - facet normal 0.372622 0.927983 -0 - outer loop - vertex -11.0035 20.0644 -0.2 - vertex -11.1271 20.114 0 - vertex -11.0035 20.0644 0 - endloop - endfacet - facet normal 0.372622 0.927983 0 - outer loop - vertex -11.1271 20.114 0 - vertex -11.0035 20.0644 -0.2 - vertex -11.1271 20.114 -0.2 - endloop - endfacet - facet normal 0.213569 0.976928 -0 - outer loop - vertex -11.1271 20.114 -0.2 - vertex -11.3013 20.1521 0 - vertex -11.1271 20.114 0 - endloop - endfacet - facet normal 0.213569 0.976928 0 - outer loop - vertex -11.3013 20.1521 0 - vertex -11.1271 20.114 -0.2 - vertex -11.3013 20.1521 -0.2 - endloop - endfacet - facet normal 0.122812 0.99243 -0 - outer loop - vertex -11.3013 20.1521 -0.2 - vertex -11.5271 20.1801 0 - vertex -11.3013 20.1521 0 - endloop - endfacet - facet normal 0.122812 0.99243 0 - outer loop - vertex -11.5271 20.1801 0 - vertex -11.3013 20.1521 -0.2 - vertex -11.5271 20.1801 -0.2 - endloop - endfacet - facet normal 0.050903 0.998704 -0 - outer loop - vertex -11.5271 20.1801 -0.2 - vertex -12.1376 20.2112 0 - vertex -11.5271 20.1801 0 - endloop - endfacet - facet normal 0.050903 0.998704 0 - outer loop - vertex -12.1376 20.2112 0 - vertex -11.5271 20.1801 -0.2 - vertex -12.1376 20.2112 -0.2 - endloop - endfacet - facet normal 0.00904467 0.999959 -0 - outer loop - vertex -12.1376 20.2112 -0.2 - vertex -12.9665 20.2187 0 - vertex -12.1376 20.2112 0 - endloop - endfacet - facet normal 0.00904467 0.999959 0 - outer loop - vertex -12.9665 20.2187 0 - vertex -12.1376 20.2112 -0.2 - vertex -12.9665 20.2187 -0.2 - endloop - endfacet - facet normal -0.0191031 0.999818 0 - outer loop - vertex -12.9665 20.2187 -0.2 - vertex -13.9037 20.2008 0 - vertex -12.9665 20.2187 0 - endloop - endfacet - facet normal -0.0191031 0.999818 0 - outer loop - vertex -13.9037 20.2008 0 - vertex -12.9665 20.2187 -0.2 - vertex -13.9037 20.2008 -0.2 - endloop - endfacet - facet normal -0.0506696 0.998715 0 - outer loop - vertex -13.9037 20.2008 -0.2 - vertex -14.8461 20.153 0 - vertex -13.9037 20.2008 0 - endloop - endfacet - facet normal -0.0506696 0.998715 0 - outer loop - vertex -14.8461 20.153 0 - vertex -13.9037 20.2008 -0.2 - vertex -14.8461 20.153 -0.2 - endloop - endfacet - facet normal -0.0837631 0.996486 0 - outer loop - vertex -14.8461 20.153 -0.2 - vertex -15.684 20.0825 0 - vertex -14.8461 20.153 0 - endloop - endfacet - facet normal -0.0837631 0.996486 0 - outer loop - vertex -15.684 20.0825 0 - vertex -14.8461 20.153 -0.2 - vertex -15.684 20.0825 -0.2 - endloop - endfacet - facet normal -0.136213 0.99068 0 - outer loop - vertex -15.684 20.0825 -0.2 - vertex -16.3079 19.9967 0 - vertex -15.684 20.0825 0 - endloop - endfacet - facet normal -0.136213 0.99068 0 - outer loop - vertex -16.3079 19.9967 0 - vertex -15.684 20.0825 -0.2 - vertex -16.3079 19.9967 -0.2 - endloop - endfacet - facet normal -0.175854 0.984416 0 - outer loop - vertex -16.3079 19.9967 -0.2 - vertex -17.2235 19.8332 0 - vertex -16.3079 19.9967 0 - endloop - endfacet - facet normal -0.175854 0.984416 0 - outer loop - vertex -17.2235 19.8332 0 - vertex -16.3079 19.9967 -0.2 - vertex -17.2235 19.8332 -0.2 - endloop - endfacet - facet normal -0.15721 0.987565 0 - outer loop - vertex -17.2235 19.8332 -0.2 - vertex -18.1791 19.6811 0 - vertex -17.2235 19.8332 0 - endloop - endfacet - facet normal -0.15721 0.987565 0 - outer loop - vertex -18.1791 19.6811 0 - vertex -17.2235 19.8332 -0.2 - vertex -18.1791 19.6811 -0.2 - endloop - endfacet - facet normal -0.133206 0.991088 0 - outer loop - vertex -18.1791 19.6811 -0.2 - vertex -20.1671 19.4139 0 - vertex -18.1791 19.6811 0 - endloop - endfacet - facet normal -0.133206 0.991088 0 - outer loop - vertex -20.1671 19.4139 0 - vertex -18.1791 19.6811 -0.2 - vertex -20.1671 19.4139 -0.2 - endloop - endfacet - facet normal -0.105044 0.994468 0 - outer loop - vertex -20.1671 19.4139 -0.2 - vertex -22.1849 19.2007 0 - vertex -20.1671 19.4139 0 - endloop - endfacet - facet normal -0.105044 0.994468 0 - outer loop - vertex -22.1849 19.2007 0 - vertex -20.1671 19.4139 -0.2 - vertex -22.1849 19.2007 -0.2 - endloop - endfacet - facet normal -0.0780607 0.996949 0 - outer loop - vertex -22.1849 19.2007 -0.2 - vertex -24.1455 19.0472 0 - vertex -22.1849 19.2007 0 - endloop - endfacet - facet normal -0.0780607 0.996949 0 - outer loop - vertex -24.1455 19.0472 0 - vertex -22.1849 19.2007 -0.2 - vertex -24.1455 19.0472 -0.2 - endloop - endfacet - facet normal -0.0485635 0.99882 0 - outer loop - vertex -24.1455 19.0472 -0.2 - vertex -25.9619 18.9589 0 - vertex -24.1455 19.0472 0 - endloop - endfacet - facet normal -0.0485635 0.99882 0 - outer loop - vertex -25.9619 18.9589 0 - vertex -24.1455 19.0472 -0.2 - vertex -25.9619 18.9589 -0.2 - endloop - endfacet - facet normal -0.0217214 0.999764 0 - outer loop - vertex -25.9619 18.9589 -0.2 - vertex -26.7887 18.9409 0 - vertex -25.9619 18.9589 0 - endloop - endfacet - facet normal -0.0217214 0.999764 0 - outer loop - vertex -26.7887 18.9409 0 - vertex -25.9619 18.9589 -0.2 - vertex -26.7887 18.9409 -0.2 - endloop - endfacet - facet normal 0.000558472 1 -0 - outer loop - vertex -26.7887 18.9409 -0.2 - vertex -27.5469 18.9414 0 - vertex -26.7887 18.9409 0 - endloop - endfacet - facet normal 0.000558472 1 0 - outer loop - vertex -27.5469 18.9414 0 - vertex -26.7887 18.9409 -0.2 - vertex -27.5469 18.9414 -0.2 - endloop - endfacet - facet normal 0.0287379 0.999587 -0 - outer loop - vertex -27.5469 18.9414 -0.2 - vertex -28.2256 18.9609 0 - vertex -27.5469 18.9414 0 - endloop - endfacet - facet normal 0.0287379 0.999587 0 - outer loop - vertex -28.2256 18.9609 0 - vertex -27.5469 18.9414 -0.2 - vertex -28.2256 18.9609 -0.2 - endloop - endfacet - facet normal 0.0666534 0.997776 -0 - outer loop - vertex -28.2256 18.9609 -0.2 - vertex -28.8137 19.0002 0 - vertex -28.2256 18.9609 0 - endloop - endfacet - facet normal 0.0666534 0.997776 0 - outer loop - vertex -28.8137 19.0002 0 - vertex -28.2256 18.9609 -0.2 - vertex -28.8137 19.0002 -0.2 - endloop - endfacet - facet normal 0.121854 0.992548 -0 - outer loop - vertex -28.8137 19.0002 -0.2 - vertex -29.3006 19.0599 0 - vertex -28.8137 19.0002 0 - endloop - endfacet - facet normal 0.121854 0.992548 0 - outer loop - vertex -29.3006 19.0599 0 - vertex -28.8137 19.0002 -0.2 - vertex -29.3006 19.0599 -0.2 - endloop - endfacet - facet normal 0.211179 0.977447 -0 - outer loop - vertex -29.3006 19.0599 -0.2 - vertex -29.6752 19.1409 0 - vertex -29.3006 19.0599 0 - endloop - endfacet - facet normal 0.211179 0.977447 0 - outer loop - vertex -29.6752 19.1409 0 - vertex -29.3006 19.0599 -0.2 - vertex -29.6752 19.1409 -0.2 - endloop - endfacet - facet normal 0.291073 0.956701 -0 - outer loop - vertex -29.6752 19.1409 -0.2 - vertex -30.5811 19.4165 0 - vertex -29.6752 19.1409 0 - endloop - endfacet - facet normal 0.291073 0.956701 0 - outer loop - vertex -30.5811 19.4165 0 - vertex -29.6752 19.1409 -0.2 - vertex -30.5811 19.4165 -0.2 - endloop - endfacet - facet normal 0.314696 0.949192 -0 - outer loop - vertex -30.5811 19.4165 -0.2 - vertex -31.4466 19.7034 0 - vertex -30.5811 19.4165 0 - endloop - endfacet - facet normal 0.314696 0.949192 0 - outer loop - vertex -31.4466 19.7034 0 - vertex -30.5811 19.4165 -0.2 - vertex -31.4466 19.7034 -0.2 - endloop - endfacet - facet normal 0.339748 0.940516 -0 - outer loop - vertex -31.4466 19.7034 -0.2 - vertex -32.271 20.0012 0 - vertex -31.4466 19.7034 0 - endloop - endfacet - facet normal 0.339748 0.940516 0 - outer loop - vertex -32.271 20.0012 0 - vertex -31.4466 19.7034 -0.2 - vertex -32.271 20.0012 -0.2 - endloop - endfacet - facet normal 0.366429 0.930446 -0 - outer loop - vertex -32.271 20.0012 -0.2 - vertex -33.0533 20.3093 0 - vertex -32.271 20.0012 0 - endloop - endfacet - facet normal 0.366429 0.930446 0 - outer loop - vertex -33.0533 20.3093 0 - vertex -32.271 20.0012 -0.2 - vertex -33.0533 20.3093 -0.2 - endloop - endfacet - facet normal 0.394948 0.918703 -0 - outer loop - vertex -33.0533 20.3093 -0.2 - vertex -33.7926 20.6272 0 - vertex -33.0533 20.3093 0 - endloop - endfacet - facet normal 0.394948 0.918703 0 - outer loop - vertex -33.7926 20.6272 0 - vertex -33.0533 20.3093 -0.2 - vertex -33.7926 20.6272 -0.2 - endloop - endfacet - facet normal 0.425556 0.904932 -0 - outer loop - vertex -33.7926 20.6272 -0.2 - vertex -34.4881 20.9542 0 - vertex -33.7926 20.6272 0 - endloop - endfacet - facet normal 0.425556 0.904932 0 - outer loop - vertex -34.4881 20.9542 0 - vertex -33.7926 20.6272 -0.2 - vertex -34.4881 20.9542 -0.2 - endloop - endfacet - facet normal 0.458522 0.888683 -0 - outer loop - vertex -34.4881 20.9542 -0.2 - vertex -35.1386 21.2899 0 - vertex -34.4881 20.9542 0 - endloop - endfacet - facet normal 0.458522 0.888683 0 - outer loop - vertex -35.1386 21.2899 0 - vertex -34.4881 20.9542 -0.2 - vertex -35.1386 21.2899 -0.2 - endloop - endfacet - facet normal 0.494132 0.869387 -0 - outer loop - vertex -35.1386 21.2899 -0.2 - vertex -35.7435 21.6336 0 - vertex -35.1386 21.2899 0 - endloop - endfacet - facet normal 0.494132 0.869387 0 - outer loop - vertex -35.7435 21.6336 0 - vertex -35.1386 21.2899 -0.2 - vertex -35.7435 21.6336 -0.2 - endloop - endfacet - facet normal 0.532679 0.846317 -0 - outer loop - vertex -35.7435 21.6336 -0.2 - vertex -36.3017 21.985 0 - vertex -35.7435 21.6336 0 - endloop - endfacet - facet normal 0.532679 0.846317 0 - outer loop - vertex -36.3017 21.985 0 - vertex -35.7435 21.6336 -0.2 - vertex -36.3017 21.985 -0.2 - endloop - endfacet - facet normal 0.574426 0.818556 -0 - outer loop - vertex -36.3017 21.985 -0.2 - vertex -36.8124 22.3433 0 - vertex -36.3017 21.985 0 - endloop - endfacet - facet normal 0.574426 0.818556 0 - outer loop - vertex -36.8124 22.3433 0 - vertex -36.3017 21.985 -0.2 - vertex -36.8124 22.3433 -0.2 - endloop - endfacet - facet normal 0.619583 0.784931 -0 - outer loop - vertex -36.8124 22.3433 -0.2 - vertex -37.2746 22.7082 0 - vertex -36.8124 22.3433 0 - endloop - endfacet - facet normal 0.619583 0.784931 0 - outer loop - vertex -37.2746 22.7082 0 - vertex -36.8124 22.3433 -0.2 - vertex -37.2746 22.7082 -0.2 - endloop - endfacet - facet normal 0.668193 0.743988 -0 - outer loop - vertex -37.2746 22.7082 -0.2 - vertex -37.6874 23.0789 0 - vertex -37.2746 22.7082 0 - endloop - endfacet - facet normal 0.668193 0.743988 0 - outer loop - vertex -37.6874 23.0789 0 - vertex -37.2746 22.7082 -0.2 - vertex -37.6874 23.0789 -0.2 - endloop - endfacet - facet normal 0.720024 0.69395 0 - outer loop - vertex -37.6874 23.0789 0 - vertex -38.0499 23.455 -0.2 - vertex -38.0499 23.455 0 - endloop - endfacet - facet normal 0.720024 0.69395 0 - outer loop - vertex -38.0499 23.455 -0.2 - vertex -37.6874 23.0789 0 - vertex -37.6874 23.0789 -0.2 - endloop - endfacet - facet normal 0.774355 0.632751 0 - outer loop - vertex -38.0499 23.455 0 - vertex -38.3611 23.836 -0.2 - vertex -38.3611 23.836 0 - endloop - endfacet - facet normal 0.774355 0.632751 0 - outer loop - vertex -38.3611 23.836 -0.2 - vertex -38.0499 23.455 0 - vertex -38.0499 23.455 -0.2 - endloop - endfacet - facet normal 0.829712 0.558192 0 - outer loop - vertex -38.3611 23.836 0 - vertex -38.6203 24.2212 -0.2 - vertex -38.6203 24.2212 0 - endloop - endfacet - facet normal 0.829712 0.558192 0 - outer loop - vertex -38.6203 24.2212 -0.2 - vertex -38.3611 23.836 0 - vertex -38.3611 23.836 -0.2 - endloop - endfacet - facet normal 0.883596 0.468251 0 - outer loop - vertex -38.6203 24.2212 0 - vertex -38.8265 24.6102 -0.2 - vertex -38.8265 24.6102 0 - endloop - endfacet - facet normal 0.883596 0.468251 0 - outer loop - vertex -38.8265 24.6102 -0.2 - vertex -38.6203 24.2212 0 - vertex -38.6203 24.2212 -0.2 - endloop - endfacet - facet normal 0.926216 0.376994 0 - outer loop - vertex -38.8265 24.6102 0 - vertex -39.0227 25.0923 -0.2 - vertex -39.0227 25.0923 0 - endloop - endfacet - facet normal 0.926216 0.376994 0 - outer loop - vertex -39.0227 25.0923 -0.2 - vertex -38.8265 24.6102 0 - vertex -38.8265 24.6102 -0.2 - endloop - endfacet - facet normal 0.967451 0.253059 0 - outer loop - vertex -39.0227 25.0923 0 - vertex -39.1186 25.4589 -0.2 - vertex -39.1186 25.4589 0 - endloop - endfacet - facet normal 0.967451 0.253059 0 - outer loop - vertex -39.1186 25.4589 -0.2 - vertex -39.0227 25.0923 0 - vertex -39.0227 25.0923 -0.2 - endloop - endfacet - facet normal 0.996684 0.0813708 0 - outer loop - vertex -39.1186 25.4589 0 - vertex -39.13 25.5984 -0.2 - vertex -39.13 25.5984 0 - endloop - endfacet - facet normal 0.996684 0.0813708 0 - outer loop - vertex -39.13 25.5984 -0.2 - vertex -39.1186 25.4589 0 - vertex -39.1186 25.4589 -0.2 - endloop - endfacet - facet normal 0.993685 -0.112203 0 - outer loop - vertex -39.13 25.5984 0 - vertex -39.1175 25.7085 -0.2 - vertex -39.1175 25.7085 0 - endloop - endfacet - facet normal 0.993685 -0.112203 0 - outer loop - vertex -39.1175 25.7085 -0.2 - vertex -39.13 25.5984 0 - vertex -39.13 25.5984 -0.2 - endloop - endfacet - facet normal 0.913337 -0.407205 0 - outer loop - vertex -39.1175 25.7085 0 - vertex -39.0817 25.7888 -0.2 - vertex -39.0817 25.7888 0 - endloop - endfacet - facet normal 0.913337 -0.407205 0 - outer loop - vertex -39.0817 25.7888 -0.2 - vertex -39.1175 25.7085 0 - vertex -39.1175 25.7085 -0.2 - endloop - endfacet - facet normal 0.651025 -0.759057 0 - outer loop - vertex -39.0817 25.7888 -0.2 - vertex -39.0229 25.8392 0 - vertex -39.0817 25.7888 0 - endloop - endfacet - facet normal 0.651025 -0.759057 0 - outer loop - vertex -39.0229 25.8392 0 - vertex -39.0817 25.7888 -0.2 - vertex -39.0229 25.8392 -0.2 - endloop - endfacet - facet normal 0.24215 -0.970239 0 - outer loop - vertex -39.0229 25.8392 -0.2 - vertex -38.9416 25.8595 0 - vertex -39.0229 25.8392 0 - endloop - endfacet - facet normal 0.24215 -0.970239 0 - outer loop - vertex -38.9416 25.8595 0 - vertex -39.0229 25.8392 -0.2 - vertex -38.9416 25.8595 -0.2 - endloop - endfacet - facet normal -0.0965024 -0.995333 0 - outer loop - vertex -38.9416 25.8595 -0.2 - vertex -38.8381 25.8495 0 - vertex -38.9416 25.8595 0 - endloop - endfacet - facet normal -0.0965024 -0.995333 -0 - outer loop - vertex -38.8381 25.8495 0 - vertex -38.9416 25.8595 -0.2 - vertex -38.8381 25.8495 -0.2 - endloop - endfacet - facet normal -0.308343 -0.951275 0 - outer loop - vertex -38.8381 25.8495 -0.2 - vertex -38.7129 25.8089 0 - vertex -38.8381 25.8495 0 - endloop - endfacet - facet normal -0.308343 -0.951275 -0 - outer loop - vertex -38.7129 25.8089 0 - vertex -38.8381 25.8495 -0.2 - vertex -38.7129 25.8089 -0.2 - endloop - endfacet - facet normal -0.437843 -0.899052 0 - outer loop - vertex -38.7129 25.8089 -0.2 - vertex -38.5664 25.7376 0 - vertex -38.7129 25.8089 0 - endloop - endfacet - facet normal -0.437843 -0.899052 -0 - outer loop - vertex -38.5664 25.7376 0 - vertex -38.7129 25.8089 -0.2 - vertex -38.5664 25.7376 -0.2 - endloop - endfacet - facet normal -0.553117 -0.833103 0 - outer loop - vertex -38.5664 25.7376 -0.2 - vertex -38.2113 25.5018 0 - vertex -38.5664 25.7376 0 - endloop - endfacet - facet normal -0.553117 -0.833103 -0 - outer loop - vertex -38.2113 25.5018 0 - vertex -38.5664 25.7376 -0.2 - vertex -38.2113 25.5018 -0.2 - endloop - endfacet - facet normal -0.638761 -0.769405 0 - outer loop - vertex -38.2113 25.5018 -0.2 - vertex -37.776 25.1404 0 - vertex -38.2113 25.5018 0 - endloop - endfacet - facet normal -0.638761 -0.769405 -0 - outer loop - vertex -37.776 25.1404 0 - vertex -38.2113 25.5018 -0.2 - vertex -37.776 25.1404 -0.2 - endloop - endfacet - facet normal -0.64475 -0.764393 0 - outer loop - vertex -37.776 25.1404 -0.2 - vertex -37.4147 24.8357 0 - vertex -37.776 25.1404 0 - endloop - endfacet - facet normal -0.64475 -0.764393 -0 - outer loop - vertex -37.4147 24.8357 0 - vertex -37.776 25.1404 -0.2 - vertex -37.4147 24.8357 -0.2 - endloop - endfacet - facet normal -0.602189 -0.798353 0 - outer loop - vertex -37.4147 24.8357 -0.2 - vertex -37.0225 24.5398 0 - vertex -37.4147 24.8357 0 - endloop - endfacet - facet normal -0.602189 -0.798353 -0 - outer loop - vertex -37.0225 24.5398 0 - vertex -37.4147 24.8357 -0.2 - vertex -37.0225 24.5398 -0.2 - endloop - endfacet - facet normal -0.562472 -0.826816 0 - outer loop - vertex -37.0225 24.5398 -0.2 - vertex -36.6025 24.2541 0 - vertex -37.0225 24.5398 0 - endloop - endfacet - facet normal -0.562472 -0.826816 -0 - outer loop - vertex -36.6025 24.2541 0 - vertex -37.0225 24.5398 -0.2 - vertex -36.6025 24.2541 -0.2 - endloop - endfacet - facet normal -0.525102 -0.851039 0 - outer loop - vertex -36.6025 24.2541 -0.2 - vertex -36.1579 23.9798 0 - vertex -36.6025 24.2541 0 - endloop - endfacet - facet normal -0.525102 -0.851039 -0 - outer loop - vertex -36.1579 23.9798 0 - vertex -36.6025 24.2541 -0.2 - vertex -36.1579 23.9798 -0.2 - endloop - endfacet - facet normal -0.489575 -0.871961 0 - outer loop - vertex -36.1579 23.9798 -0.2 - vertex -35.6921 23.7183 0 - vertex -36.1579 23.9798 0 - endloop - endfacet - facet normal -0.489575 -0.871961 -0 - outer loop - vertex -35.6921 23.7183 0 - vertex -36.1579 23.9798 -0.2 - vertex -35.6921 23.7183 -0.2 - endloop - endfacet - facet normal -0.455389 -0.890292 0 - outer loop - vertex -35.6921 23.7183 -0.2 - vertex -35.2082 23.4707 0 - vertex -35.6921 23.7183 0 - endloop - endfacet - facet normal -0.455389 -0.890292 -0 - outer loop - vertex -35.2082 23.4707 0 - vertex -35.6921 23.7183 -0.2 - vertex -35.2082 23.4707 -0.2 - endloop - endfacet - facet normal -0.422055 -0.90657 0 - outer loop - vertex -35.2082 23.4707 -0.2 - vertex -34.7094 23.2385 0 - vertex -35.2082 23.4707 0 - endloop - endfacet - facet normal -0.422055 -0.90657 -0 - outer loop - vertex -34.7094 23.2385 0 - vertex -35.2082 23.4707 -0.2 - vertex -34.7094 23.2385 -0.2 - endloop - endfacet - facet normal -0.389101 -0.921195 0 - outer loop - vertex -34.7094 23.2385 -0.2 - vertex -34.199 23.023 0 - vertex -34.7094 23.2385 0 - endloop - endfacet - facet normal -0.389101 -0.921195 -0 - outer loop - vertex -34.199 23.023 0 - vertex -34.7094 23.2385 -0.2 - vertex -34.199 23.023 -0.2 - endloop - endfacet - facet normal -0.356052 -0.934466 0 - outer loop - vertex -34.199 23.023 -0.2 - vertex -33.6803 22.8253 0 - vertex -34.199 23.023 0 - endloop - endfacet - facet normal -0.356052 -0.934466 -0 - outer loop - vertex -33.6803 22.8253 0 - vertex -34.199 23.023 -0.2 - vertex -33.6803 22.8253 -0.2 - endloop - endfacet - facet normal -0.3224 -0.946604 0 - outer loop - vertex -33.6803 22.8253 -0.2 - vertex -33.1564 22.6469 0 - vertex -33.6803 22.8253 0 - endloop - endfacet - facet normal -0.3224 -0.946604 -0 - outer loop - vertex -33.1564 22.6469 0 - vertex -33.6803 22.8253 -0.2 - vertex -33.1564 22.6469 -0.2 - endloop - endfacet - facet normal -0.287637 -0.95774 0 - outer loop - vertex -33.1564 22.6469 -0.2 - vertex -32.6306 22.489 0 - vertex -33.1564 22.6469 0 - endloop - endfacet - facet normal -0.287637 -0.95774 -0 - outer loop - vertex -32.6306 22.489 0 - vertex -33.1564 22.6469 -0.2 - vertex -32.6306 22.489 -0.2 - endloop - endfacet - facet normal -0.251171 -0.967943 0 - outer loop - vertex -32.6306 22.489 -0.2 - vertex -32.1061 22.3529 0 - vertex -32.6306 22.489 0 - endloop - endfacet - facet normal -0.251171 -0.967943 -0 - outer loop - vertex -32.1061 22.3529 0 - vertex -32.6306 22.489 -0.2 - vertex -32.1061 22.3529 -0.2 - endloop - endfacet - facet normal -0.212348 -0.977194 0 - outer loop - vertex -32.1061 22.3529 -0.2 - vertex -31.5861 22.2399 0 - vertex -32.1061 22.3529 0 - endloop - endfacet - facet normal -0.212348 -0.977194 -0 - outer loop - vertex -31.5861 22.2399 0 - vertex -32.1061 22.3529 -0.2 - vertex -31.5861 22.2399 -0.2 - endloop - endfacet - facet normal -0.170418 -0.985372 0 - outer loop - vertex -31.5861 22.2399 -0.2 - vertex -31.074 22.1513 0 - vertex -31.5861 22.2399 0 - endloop - endfacet - facet normal -0.170418 -0.985372 -0 - outer loop - vertex -31.074 22.1513 0 - vertex -31.5861 22.2399 -0.2 - vertex -31.074 22.1513 -0.2 - endloop - endfacet - facet normal -0.124476 -0.992223 0 - outer loop - vertex -31.074 22.1513 -0.2 - vertex -30.5728 22.0884 0 - vertex -31.074 22.1513 0 - endloop - endfacet - facet normal -0.124476 -0.992223 -0 - outer loop - vertex -30.5728 22.0884 0 - vertex -31.074 22.1513 -0.2 - vertex -30.5728 22.0884 -0.2 - endloop - endfacet - facet normal -0.0734593 -0.997298 0 - outer loop - vertex -30.5728 22.0884 -0.2 - vertex -30.0859 22.0525 0 - vertex -30.5728 22.0884 0 - endloop - endfacet - facet normal -0.0734593 -0.997298 -0 - outer loop - vertex -30.0859 22.0525 0 - vertex -30.5728 22.0884 -0.2 - vertex -30.0859 22.0525 -0.2 - endloop - endfacet - facet normal -0.0457633 -0.998952 0 - outer loop - vertex -30.0859 22.0525 -0.2 - vertex -28.3394 21.9725 0 - vertex -30.0859 22.0525 0 - endloop - endfacet - facet normal -0.0457633 -0.998952 -0 - outer loop - vertex -28.3394 21.9725 0 - vertex -30.0859 22.0525 -0.2 - vertex -28.3394 21.9725 -0.2 - endloop - endfacet - facet normal 0.491953 0.870622 -0 - outer loop - vertex -28.3394 21.9725 -0.2 - vertex -29.0186 22.3563 0 - vertex -28.3394 21.9725 0 - endloop - endfacet - facet normal 0.491953 0.870622 0 - outer loop - vertex -29.0186 22.3563 0 - vertex -28.3394 21.9725 -0.2 - vertex -29.0186 22.3563 -0.2 - endloop - endfacet - facet normal 0.506614 0.862173 -0 - outer loop - vertex -29.0186 22.3563 -0.2 - vertex -29.4321 22.5993 0 - vertex -29.0186 22.3563 0 - endloop - endfacet - facet normal 0.506614 0.862173 0 - outer loop - vertex -29.4321 22.5993 0 - vertex -29.0186 22.3563 -0.2 - vertex -29.4321 22.5993 -0.2 - endloop - endfacet - facet normal 0.54186 0.840469 -0 - outer loop - vertex -29.4321 22.5993 -0.2 - vertex -29.7937 22.8325 0 - vertex -29.4321 22.5993 0 - endloop - endfacet - facet normal 0.54186 0.840469 0 - outer loop - vertex -29.7937 22.8325 0 - vertex -29.4321 22.5993 -0.2 - vertex -29.7937 22.8325 -0.2 - endloop - endfacet - facet normal 0.585975 0.810329 -0 - outer loop - vertex -29.7937 22.8325 -0.2 - vertex -30.1071 23.0591 0 - vertex -29.7937 22.8325 0 - endloop - endfacet - facet normal 0.585975 0.810329 0 - outer loop - vertex -30.1071 23.0591 0 - vertex -29.7937 22.8325 -0.2 - vertex -30.1071 23.0591 -0.2 - endloop - endfacet - facet normal 0.639127 0.769101 -0 - outer loop - vertex -30.1071 23.0591 -0.2 - vertex -30.3761 23.2826 0 - vertex -30.1071 23.0591 0 - endloop - endfacet - facet normal 0.639127 0.769101 0 - outer loop - vertex -30.3761 23.2826 0 - vertex -30.1071 23.0591 -0.2 - vertex -30.3761 23.2826 -0.2 - endloop - endfacet - facet normal 0.700019 0.714124 -0 - outer loop - vertex -30.3761 23.2826 -0.2 - vertex -30.6044 23.5064 0 - vertex -30.3761 23.2826 0 - endloop - endfacet - facet normal 0.700019 0.714124 0 - outer loop - vertex -30.6044 23.5064 0 - vertex -30.3761 23.2826 -0.2 - vertex -30.6044 23.5064 -0.2 - endloop - endfacet - facet normal 0.765169 0.643829 0 - outer loop - vertex -30.6044 23.5064 0 - vertex -30.7957 23.7338 -0.2 - vertex -30.7957 23.7338 0 - endloop - endfacet - facet normal 0.765169 0.643829 0 - outer loop - vertex -30.7957 23.7338 -0.2 - vertex -30.6044 23.5064 0 - vertex -30.6044 23.5064 -0.2 - endloop - endfacet - facet normal 0.828969 0.559295 0 - outer loop - vertex -30.7957 23.7338 0 - vertex -30.9539 23.9682 -0.2 - vertex -30.9539 23.9682 0 - endloop - endfacet - facet normal 0.828969 0.559295 0 - outer loop - vertex -30.9539 23.9682 -0.2 - vertex -30.7957 23.7338 0 - vertex -30.7957 23.7338 -0.2 - endloop - endfacet - facet normal 0.885091 0.465418 0 - outer loop - vertex -30.9539 23.9682 0 - vertex -31.0826 24.213 -0.2 - vertex -31.0826 24.213 0 - endloop - endfacet - facet normal 0.885091 0.465418 0 - outer loop - vertex -31.0826 24.213 -0.2 - vertex -30.9539 23.9682 0 - vertex -30.9539 23.9682 -0.2 - endloop - endfacet - facet normal 0.929158 0.369682 0 - outer loop - vertex -31.0826 24.213 0 - vertex -31.2103 24.5339 -0.2 - vertex -31.2103 24.5339 0 - endloop - endfacet - facet normal 0.929158 0.369682 0 - outer loop - vertex -31.2103 24.5339 -0.2 - vertex -31.0826 24.213 0 - vertex -31.0826 24.213 -0.2 - endloop - endfacet - facet normal 0.975453 0.220208 0 - outer loop - vertex -31.2103 24.5339 0 - vertex -31.2656 24.779 -0.2 - vertex -31.2656 24.779 0 - endloop - endfacet - facet normal 0.975453 0.220208 0 - outer loop - vertex -31.2656 24.779 -0.2 - vertex -31.2103 24.5339 0 - vertex -31.2103 24.5339 -0.2 - endloop - endfacet - facet normal 0.99992 0.0126114 0 - outer loop - vertex -31.2656 24.779 0 - vertex -31.2668 24.8727 -0.2 - vertex -31.2668 24.8727 0 - endloop - endfacet - facet normal 0.99992 0.0126114 0 - outer loop - vertex -31.2668 24.8727 -0.2 - vertex -31.2656 24.779 0 - vertex -31.2656 24.779 -0.2 - endloop - endfacet - facet normal 0.977346 -0.211648 0 - outer loop - vertex -31.2668 24.8727 0 - vertex -31.2507 24.9472 -0.2 - vertex -31.2507 24.9472 0 - endloop - endfacet - facet normal 0.977346 -0.211648 0 - outer loop - vertex -31.2507 24.9472 -0.2 - vertex -31.2668 24.8727 0 - vertex -31.2668 24.8727 -0.2 - endloop - endfacet - facet normal 0.856395 -0.516321 0 - outer loop - vertex -31.2507 24.9472 0 - vertex -31.2175 25.0021 -0.2 - vertex -31.2175 25.0021 0 - endloop - endfacet - facet normal 0.856395 -0.516321 0 - outer loop - vertex -31.2175 25.0021 -0.2 - vertex -31.2507 24.9472 0 - vertex -31.2507 24.9472 -0.2 - endloop - endfacet - facet normal 0.578733 -0.815517 0 - outer loop - vertex -31.2175 25.0021 -0.2 - vertex -31.1676 25.0376 0 - vertex -31.2175 25.0021 0 - endloop - endfacet - facet normal 0.578733 -0.815517 0 - outer loop - vertex -31.1676 25.0376 0 - vertex -31.2175 25.0021 -0.2 - vertex -31.1676 25.0376 -0.2 - endloop - endfacet - facet normal 0.230651 -0.973037 0 - outer loop - vertex -31.1676 25.0376 -0.2 - vertex -31.1012 25.0533 0 - vertex -31.1676 25.0376 0 - endloop - endfacet - facet normal 0.230651 -0.973037 0 - outer loop - vertex -31.1012 25.0533 0 - vertex -31.1676 25.0376 -0.2 - vertex -31.1012 25.0533 -0.2 - endloop - endfacet - facet normal -0.0489514 -0.998801 0 - outer loop - vertex -31.1012 25.0533 -0.2 - vertex -31.0185 25.0493 0 - vertex -31.1012 25.0533 0 - endloop - endfacet - facet normal -0.0489514 -0.998801 -0 - outer loop - vertex -31.0185 25.0493 0 - vertex -31.1012 25.0533 -0.2 - vertex -31.0185 25.0493 -0.2 - endloop - endfacet - facet normal -0.303972 -0.952681 0 - outer loop - vertex -31.0185 25.0493 -0.2 - vertex -30.8055 24.9813 0 - vertex -31.0185 25.0493 0 - endloop - endfacet - facet normal -0.303972 -0.952681 -0 - outer loop - vertex -30.8055 24.9813 0 - vertex -31.0185 25.0493 -0.2 - vertex -30.8055 24.9813 -0.2 - endloop - endfacet - facet normal -0.475595 -0.879664 0 - outer loop - vertex -30.8055 24.9813 -0.2 - vertex -30.5308 24.8328 0 - vertex -30.8055 24.9813 0 - endloop - endfacet - facet normal -0.475595 -0.879664 -0 - outer loop - vertex -30.5308 24.8328 0 - vertex -30.8055 24.9813 -0.2 - vertex -30.5308 24.8328 -0.2 - endloop - endfacet - facet normal -0.566807 -0.82385 0 - outer loop - vertex -30.5308 24.8328 -0.2 - vertex -30.1964 24.6027 0 - vertex -30.5308 24.8328 0 - endloop - endfacet - facet normal -0.566807 -0.82385 -0 - outer loop - vertex -30.1964 24.6027 0 - vertex -30.5308 24.8328 -0.2 - vertex -30.1964 24.6027 -0.2 - endloop - endfacet - facet normal -0.552424 -0.833564 0 - outer loop - vertex -30.1964 24.6027 -0.2 - vertex -29.8023 24.3416 0 - vertex -30.1964 24.6027 0 - endloop - endfacet - facet normal -0.552424 -0.833564 -0 - outer loop - vertex -29.8023 24.3416 0 - vertex -30.1964 24.6027 -0.2 - vertex -29.8023 24.3416 -0.2 - endloop - endfacet - facet normal -0.451398 -0.892323 0 - outer loop - vertex -29.8023 24.3416 -0.2 - vertex -29.384 24.13 0 - vertex -29.8023 24.3416 0 - endloop - endfacet - facet normal -0.451398 -0.892323 -0 - outer loop - vertex -29.384 24.13 0 - vertex -29.8023 24.3416 -0.2 - vertex -29.384 24.13 -0.2 - endloop - endfacet - facet normal -0.34198 -0.939707 0 - outer loop - vertex -29.384 24.13 -0.2 - vertex -28.9359 23.9669 0 - vertex -29.384 24.13 0 - endloop - endfacet - facet normal -0.34198 -0.939707 -0 - outer loop - vertex -28.9359 23.9669 0 - vertex -29.384 24.13 -0.2 - vertex -28.9359 23.9669 -0.2 - endloop - endfacet - facet normal -0.232476 -0.972602 0 - outer loop - vertex -28.9359 23.9669 -0.2 - vertex -28.4524 23.8513 0 - vertex -28.9359 23.9669 0 - endloop - endfacet - facet normal -0.232476 -0.972602 -0 - outer loop - vertex -28.4524 23.8513 0 - vertex -28.9359 23.9669 -0.2 - vertex -28.4524 23.8513 -0.2 - endloop - endfacet - facet normal -0.130593 -0.991436 0 - outer loop - vertex -28.4524 23.8513 -0.2 - vertex -27.9279 23.7822 0 - vertex -28.4524 23.8513 0 - endloop - endfacet - facet normal -0.130593 -0.991436 -0 - outer loop - vertex -27.9279 23.7822 0 - vertex -28.4524 23.8513 -0.2 - vertex -27.9279 23.7822 -0.2 - endloop - endfacet - facet normal -0.0413274 -0.999146 0 - outer loop - vertex -27.9279 23.7822 -0.2 - vertex -27.3569 23.7586 0 - vertex -27.9279 23.7822 0 - endloop - endfacet - facet normal -0.0413274 -0.999146 -0 - outer loop - vertex -27.3569 23.7586 0 - vertex -27.9279 23.7822 -0.2 - vertex -27.3569 23.7586 -0.2 - endloop - endfacet - facet normal 0.0333972 -0.999442 0 - outer loop - vertex -27.3569 23.7586 -0.2 - vertex -26.7338 23.7794 0 - vertex -27.3569 23.7586 0 - endloop - endfacet - facet normal 0.0333972 -0.999442 0 - outer loop - vertex -26.7338 23.7794 0 - vertex -27.3569 23.7586 -0.2 - vertex -26.7338 23.7794 -0.2 - endloop - endfacet - facet normal 0.0939488 -0.995577 0 - outer loop - vertex -26.7338 23.7794 -0.2 - vertex -26.053 23.8437 0 - vertex -26.7338 23.7794 0 - endloop - endfacet - facet normal 0.0939488 -0.995577 0 - outer loop - vertex -26.053 23.8437 0 - vertex -26.7338 23.7794 -0.2 - vertex -26.053 23.8437 -0.2 + vertex -26.0647 23.8437 0 + vertex -27.3687 23.7586 -3 + vertex -26.0647 23.8437 -3 endloop endfacet facet normal 0.119464 -0.992839 0 outer loop - vertex -26.053 23.8437 -0.2 - vertex -24.6523 24.0122 0 - vertex -26.053 23.8437 0 + vertex -26.0647 23.8437 -3 + vertex -24.664 24.0122 0 + vertex -26.0647 23.8437 0 endloop endfacet facet normal 0.119464 -0.992839 0 outer loop - vertex -24.6523 24.0122 0 - vertex -26.053 23.8437 -0.2 - vertex -24.6523 24.0122 -0.2 + vertex -24.664 24.0122 0 + vertex -26.0647 23.8437 -3 + vertex -24.664 24.0122 -3 endloop endfacet facet normal 0.193693 0.981062 -0 outer loop - vertex -24.6523 24.0122 -0.2 - vertex -26.0107 24.2804 0 - vertex -24.6523 24.0122 0 + vertex -24.664 24.0122 -3 + vertex -26.0224 24.2804 0 + vertex -24.664 24.0122 0 endloop endfacet facet normal 0.193693 0.981062 0 outer loop - vertex -26.0107 24.2804 0 - vertex -24.6523 24.0122 -0.2 - vertex -26.0107 24.2804 -0.2 + vertex -26.0224 24.2804 0 + vertex -24.664 24.0122 -3 + vertex -26.0224 24.2804 -3 endloop endfacet - facet normal 0.214134 0.976804 -0 + facet normal 0.282043 0.959402 -0 outer loop - vertex -26.0107 24.2804 -0.2 - vertex -26.5818 24.4056 0 - vertex -26.0107 24.2804 0 + vertex -26.0224 24.2804 -3 + vertex -28.1365 24.9019 0 + vertex -26.0224 24.2804 0 endloop endfacet - facet normal 0.214134 0.976804 0 + facet normal 0.282043 0.959402 0 outer loop - vertex -26.5818 24.4056 0 - vertex -26.0107 24.2804 -0.2 - vertex -26.5818 24.4056 -0.2 + vertex -28.1365 24.9019 0 + vertex -26.0224 24.2804 -3 + vertex -28.1365 24.9019 -3 endloop endfacet - facet normal 0.258173 0.966099 -0 + facet normal 0.487989 0.87285 -0 outer loop - vertex -26.5818 24.4056 -0.2 - vertex -27.1227 24.5501 0 - vertex -26.5818 24.4056 0 + vertex -28.1365 24.9019 -3 + vertex -29.9035 25.8898 0 + vertex -28.1365 24.9019 0 endloop endfacet - facet normal 0.258173 0.966099 0 + facet normal 0.487989 0.87285 0 outer loop - vertex -27.1227 24.5501 0 - vertex -26.5818 24.4056 -0.2 - vertex -27.1227 24.5501 -0.2 + vertex -29.9035 25.8898 0 + vertex -28.1365 24.9019 -3 + vertex -29.9035 25.8898 -3 endloop endfacet - facet normal 0.306051 0.952015 -0 + facet normal 0.641558 0.767075 -0 outer loop - vertex -27.1227 24.5501 -0.2 - vertex -27.636 24.7152 0 - vertex -27.1227 24.5501 0 + vertex -29.9035 25.8898 -3 + vertex -31.116 26.9038 0 + vertex -29.9035 25.8898 0 endloop endfacet - facet normal 0.306051 0.952015 0 + facet normal 0.641558 0.767075 0 outer loop - vertex -27.636 24.7152 0 - vertex -27.1227 24.5501 -0.2 - vertex -27.636 24.7152 -0.2 + vertex -31.116 26.9038 0 + vertex -29.9035 25.8898 -3 + vertex -31.116 26.9038 -3 endloop endfacet - facet normal 0.356888 0.934147 -0 + facet normal 0.876545 0.48132 0 outer loop - vertex -27.636 24.7152 -0.2 - vertex -28.1248 24.9019 0 - vertex -27.636 24.7152 0 + vertex -31.116 26.9038 0 + vertex -31.2912 27.2229 -3 + vertex -31.2912 27.2229 0 endloop endfacet - facet normal 0.356888 0.934147 0 + facet normal 0.876545 0.48132 0 outer loop - vertex -28.1248 24.9019 0 - vertex -27.636 24.7152 -0.2 - vertex -28.1248 24.9019 -0.2 + vertex -31.2912 27.2229 -3 + vertex -31.116 26.9038 0 + vertex -31.116 26.9038 -3 endloop endfacet - facet normal 0.409468 0.912325 -0 + facet normal 0.956151 -0.292876 0 outer loop - vertex -28.1248 24.9019 -0.2 - vertex -28.5919 25.1115 0 - vertex -28.1248 24.9019 0 + vertex -31.2912 27.2229 0 + vertex -31.2177 27.4629 -3 + vertex -31.2177 27.4629 0 endloop endfacet - facet normal 0.409468 0.912325 0 + facet normal 0.956151 -0.292876 0 outer loop - vertex -28.5919 25.1115 0 - vertex -28.1248 24.9019 -0.2 - vertex -28.5919 25.1115 -0.2 + vertex -31.2177 27.4629 -3 + vertex -31.2912 27.2229 0 + vertex -31.2912 27.2229 -3 endloop endfacet - facet normal 0.462329 0.886708 -0 + facet normal 0.0512406 -0.998686 0 outer loop - vertex -28.5919 25.1115 -0.2 - vertex -29.0402 25.3453 0 - vertex -28.5919 25.1115 0 + vertex -31.2177 27.4629 -3 + vertex -30.666 27.4912 0 + vertex -31.2177 27.4629 0 endloop endfacet - facet normal 0.462329 0.886708 0 + facet normal 0.0512406 -0.998686 0 outer loop - vertex -29.0402 25.3453 0 - vertex -28.5919 25.1115 -0.2 - vertex -29.0402 25.3453 -0.2 + vertex -30.666 27.4912 0 + vertex -31.2177 27.4629 -3 + vertex -30.666 27.4912 -3 endloop endfacet - facet normal 0.51393 0.857832 -0 + facet normal -0.343857 -0.939022 0 outer loop - vertex -29.0402 25.3453 -0.2 - vertex -29.4725 25.6043 0 - vertex -29.0402 25.3453 0 + vertex -30.666 27.4912 -3 + vertex -29.2879 26.9865 0 + vertex -30.666 27.4912 0 endloop endfacet - facet normal 0.51393 0.857832 0 + facet normal -0.343857 -0.939022 -0 outer loop - vertex -29.4725 25.6043 0 - vertex -29.0402 25.3453 -0.2 - vertex -29.4725 25.6043 -0.2 + vertex -29.2879 26.9865 0 + vertex -30.666 27.4912 -3 + vertex -29.2879 26.9865 -3 endloop endfacet - facet normal 0.562822 0.826578 -0 + facet normal -0.315787 -0.94883 0 outer loop - vertex -29.4725 25.6043 -0.2 - vertex -29.8918 25.8898 0 - vertex -29.4725 25.6043 0 + vertex -29.2879 26.9865 -3 + vertex -27.4214 26.3653 0 + vertex -29.2879 26.9865 0 endloop endfacet - facet normal 0.562822 0.826578 0 + facet normal -0.315787 -0.94883 -0 outer loop - vertex -29.8918 25.8898 0 - vertex -29.4725 25.6043 -0.2 - vertex -29.8918 25.8898 -0.2 + vertex -27.4214 26.3653 0 + vertex -29.2879 26.9865 -3 + vertex -27.4214 26.3653 -3 endloop endfacet - facet normal 0.607723 0.794149 -0 + facet normal -0.0620611 -0.998072 0 outer loop - vertex -29.8918 25.8898 -0.2 - vertex -30.6514 26.471 0 - vertex -29.8918 25.8898 0 + vertex -27.4214 26.3653 -3 + vertex -24.8433 26.205 0 + vertex -27.4214 26.3653 0 endloop endfacet - facet normal 0.607723 0.794149 0 + facet normal -0.0620611 -0.998072 -0 outer loop - vertex -30.6514 26.471 0 - vertex -29.8918 25.8898 -0.2 - vertex -30.6514 26.471 -0.2 + vertex -24.8433 26.205 0 + vertex -27.4214 26.3653 -3 + vertex -24.8433 26.205 -3 endloop endfacet - facet normal 0.662833 0.748767 -0 + facet normal 0.0113967 -0.999935 0 outer loop - vertex -30.6514 26.471 -0.2 - vertex -30.9143 26.7038 0 - vertex -30.6514 26.471 0 + vertex -24.8433 26.205 -3 + vertex -22.0473 26.2369 0 + vertex -24.8433 26.205 0 endloop endfacet - facet normal 0.662833 0.748767 0 + facet normal 0.0113967 -0.999935 0 outer loop - vertex -30.9143 26.7038 0 - vertex -30.6514 26.471 -0.2 - vertex -30.9143 26.7038 -0.2 + vertex -22.0473 26.2369 0 + vertex -24.8433 26.205 -3 + vertex -22.0473 26.2369 -3 endloop endfacet - facet normal 0.725171 0.688569 0 + facet normal 0.196528 -0.980498 0 outer loop - vertex -30.9143 26.7038 0 - vertex -31.1043 26.9038 -0.2 - vertex -31.1043 26.9038 0 + vertex -22.0473 26.2369 -3 + vertex -21.4485 26.3569 0 + vertex -22.0473 26.2369 0 endloop endfacet - facet normal 0.725171 0.688569 0 + facet normal 0.196528 -0.980498 0 outer loop - vertex -31.1043 26.9038 -0.2 - vertex -30.9143 26.7038 0 - vertex -30.9143 26.7038 -0.2 + vertex -21.4485 26.3569 0 + vertex -22.0473 26.2369 -3 + vertex -21.4485 26.3569 -3 endloop endfacet - facet normal 0.818345 0.574727 0 + facet normal 0.743557 -0.668673 0 outer loop - vertex -31.1043 26.9038 0 - vertex -31.2248 27.0754 -0.2 - vertex -31.2248 27.0754 0 + vertex -21.4485 26.3569 0 + vertex -21.2681 26.5576 -3 + vertex -21.2681 26.5576 0 endloop endfacet - facet normal 0.818345 0.574727 0 + facet normal 0.743557 -0.668673 0 outer loop - vertex -31.2248 27.0754 -0.2 - vertex -31.1043 26.9038 0 - vertex -31.1043 26.9038 -0.2 + vertex -21.2681 26.5576 -3 + vertex -21.4485 26.3569 0 + vertex -21.4485 26.3569 -3 endloop endfacet - facet normal 0.937593 0.347734 0 + facet normal 0.261077 0.965318 -0 outer loop - vertex -31.2248 27.0754 0 - vertex -31.2795 27.2229 -0.2 - vertex -31.2795 27.2229 0 + vertex -21.2681 26.5576 -3 + vertex -22.4212 26.8695 0 + vertex -21.2681 26.5576 0 endloop endfacet - facet normal 0.937593 0.347734 0 + facet normal 0.261077 0.965318 0 outer loop - vertex -31.2795 27.2229 -0.2 - vertex -31.2248 27.0754 0 - vertex -31.2248 27.0754 -0.2 + vertex -22.4212 26.8695 0 + vertex -21.2681 26.5576 -3 + vertex -22.4212 26.8695 -3 endloop endfacet - facet normal 0.99829 -0.0584589 0 + facet normal 0.309949 0.950753 -0 outer loop - vertex -31.2795 27.2229 0 - vertex -31.272 27.3506 -0.2 - vertex -31.272 27.3506 0 + vertex -22.4212 26.8695 -3 + vertex -23.8902 27.3484 0 + vertex -22.4212 26.8695 0 endloop endfacet - facet normal 0.99829 -0.0584589 0 + facet normal 0.309949 0.950753 0 outer loop - vertex -31.272 27.3506 -0.2 - vertex -31.2795 27.2229 0 - vertex -31.2795 27.2229 -0.2 + vertex -23.8902 27.3484 0 + vertex -22.4212 26.8695 -3 + vertex -23.8902 27.3484 -3 endloop endfacet - facet normal 0.861994 -0.506918 0 + facet normal 0.603717 0.797199 -0 outer loop - vertex -31.272 27.3506 0 - vertex -31.2059 27.4629 -0.2 - vertex -31.2059 27.4629 0 + vertex -23.8902 27.3484 -3 + vertex -24.3225 27.6757 0 + vertex -23.8902 27.3484 0 endloop endfacet - facet normal 0.861994 -0.506918 0 + facet normal 0.603717 0.797199 0 outer loop - vertex -31.2059 27.4629 -0.2 - vertex -31.272 27.3506 0 - vertex -31.272 27.3506 -0.2 + vertex -24.3225 27.6757 0 + vertex -23.8902 27.3484 -3 + vertex -24.3225 27.6757 -3 endloop endfacet - facet normal 0.566536 -0.824037 0 + facet normal 0.98955 0.144189 0 outer loop - vertex -31.2059 27.4629 -0.2 - vertex -31.1289 27.5158 0 - vertex -31.2059 27.4629 0 + vertex -24.3225 27.6757 0 + vertex -24.3632 27.9554 -3 + vertex -24.3632 27.9554 0 endloop endfacet - facet normal 0.566536 -0.824037 0 + facet normal 0.98955 0.144189 0 outer loop - vertex -31.1289 27.5158 0 - vertex -31.2059 27.4629 -0.2 - vertex -31.1289 27.5158 -0.2 + vertex -24.3632 27.9554 -3 + vertex -24.3225 27.6757 0 + vertex -24.3225 27.6757 -3 endloop endfacet - facet normal 0.198224 -0.980157 0 + facet normal -0.0279773 -0.999609 0 outer loop - vertex -31.1289 27.5158 -0.2 - vertex -31.0145 27.539 0 - vertex -31.1289 27.5158 0 + vertex -24.3632 27.9554 -3 + vertex -22.4093 27.9007 0 + vertex -24.3632 27.9554 0 endloop endfacet - facet normal 0.198224 -0.980157 0 + facet normal -0.0279773 -0.999609 -0 outer loop - vertex -31.0145 27.539 0 - vertex -31.1289 27.5158 -0.2 - vertex -31.0145 27.539 -0.2 + vertex -22.4093 27.9007 0 + vertex -24.3632 27.9554 -3 + vertex -22.4093 27.9007 -3 endloop endfacet - facet normal -0.0498903 -0.998755 0 + facet normal -0.150133 -0.988666 0 outer loop - vertex -31.0145 27.539 -0.2 - vertex -30.8579 27.5312 0 - vertex -31.0145 27.539 0 + vertex -22.4093 27.9007 -3 + vertex -20.8096 27.6578 0 + vertex -22.4093 27.9007 0 endloop endfacet - facet normal -0.0498903 -0.998755 -0 + facet normal -0.150133 -0.988666 -0 outer loop - vertex -30.8579 27.5312 0 - vertex -31.0145 27.539 -0.2 - vertex -30.8579 27.5312 -0.2 + vertex -20.8096 27.6578 0 + vertex -22.4093 27.9007 -3 + vertex -20.8096 27.6578 -3 endloop endfacet - facet normal -0.192665 -0.981265 0 + facet normal -0.458094 -0.888904 0 outer loop - vertex -30.8579 27.5312 -0.2 - vertex -30.6543 27.4912 0 - vertex -30.8579 27.5312 0 + vertex -20.8096 27.6578 -3 + vertex -19.9485 27.2141 0 + vertex -20.8096 27.6578 0 endloop endfacet - facet normal -0.192665 -0.981265 -0 + facet normal -0.458094 -0.888904 -0 outer loop - vertex -30.6543 27.4912 0 - vertex -30.8579 27.5312 -0.2 - vertex -30.6543 27.4912 -0.2 - endloop - endfacet - facet normal -0.304248 -0.952593 0 - outer loop - vertex -30.6543 27.4912 -0.2 - vertex -30.0875 27.3102 0 - vertex -30.6543 27.4912 0 - endloop - endfacet - facet normal -0.304248 -0.952593 -0 - outer loop - vertex -30.0875 27.3102 0 - vertex -30.6543 27.4912 -0.2 - vertex -30.0875 27.3102 -0.2 - endloop - endfacet - facet normal -0.370492 -0.928836 0 - outer loop - vertex -30.0875 27.3102 -0.2 - vertex -29.2762 26.9865 0 - vertex -30.0875 27.3102 0 - endloop - endfacet - facet normal -0.370492 -0.928836 -0 - outer loop - vertex -29.2762 26.9865 0 - vertex -30.0875 27.3102 -0.2 - vertex -29.2762 26.9865 -0.2 - endloop - endfacet - facet normal -0.380261 -0.924879 0 - outer loop - vertex -29.2762 26.9865 -0.2 - vertex -28.7314 26.7626 0 - vertex -29.2762 26.9865 0 - endloop - endfacet - facet normal -0.380261 -0.924879 -0 - outer loop - vertex -28.7314 26.7626 0 - vertex -29.2762 26.9865 -0.2 - vertex -28.7314 26.7626 -0.2 - endloop - endfacet - facet normal -0.349246 -0.937031 0 - outer loop - vertex -28.7314 26.7626 -0.2 - vertex -28.2663 26.5892 0 - vertex -28.7314 26.7626 0 - endloop - endfacet - facet normal -0.349246 -0.937031 -0 - outer loop - vertex -28.2663 26.5892 0 - vertex -28.7314 26.7626 -0.2 - vertex -28.2663 26.5892 -0.2 - endloop - endfacet - facet normal -0.29135 -0.956616 0 - outer loop - vertex -28.2663 26.5892 -0.2 - vertex -27.8395 26.4592 0 - vertex -28.2663 26.5892 0 - endloop - endfacet - facet normal -0.29135 -0.956616 -0 - outer loop - vertex -27.8395 26.4592 0 - vertex -28.2663 26.5892 -0.2 - vertex -27.8395 26.4592 -0.2 - endloop - endfacet - facet normal -0.213404 -0.976964 0 - outer loop - vertex -27.8395 26.4592 -0.2 - vertex -27.4097 26.3653 0 - vertex -27.8395 26.4592 0 - endloop - endfacet - facet normal -0.213404 -0.976964 -0 - outer loop - vertex -27.4097 26.3653 0 - vertex -27.8395 26.4592 -0.2 - vertex -27.4097 26.3653 -0.2 - endloop - endfacet - facet normal -0.13595 -0.990716 0 - outer loop - vertex -27.4097 26.3653 -0.2 - vertex -26.9353 26.3003 0 - vertex -27.4097 26.3653 0 - endloop - endfacet - facet normal -0.13595 -0.990716 -0 - outer loop - vertex -26.9353 26.3003 0 - vertex -27.4097 26.3653 -0.2 - vertex -26.9353 26.3003 -0.2 - endloop - endfacet - facet normal -0.077531 -0.99699 0 - outer loop - vertex -26.9353 26.3003 -0.2 - vertex -26.3751 26.2567 0 - vertex -26.9353 26.3003 0 - endloop - endfacet - facet normal -0.077531 -0.99699 -0 - outer loop - vertex -26.3751 26.2567 0 - vertex -26.9353 26.3003 -0.2 - vertex -26.3751 26.2567 -0.2 - endloop - endfacet - facet normal -0.0334453 -0.999441 0 - outer loop - vertex -26.3751 26.2567 -0.2 - vertex -24.8316 26.205 0 - vertex -26.3751 26.2567 0 - endloop - endfacet - facet normal -0.0334453 -0.999441 -0 - outer loop - vertex -24.8316 26.205 0 - vertex -26.3751 26.2567 -0.2 - vertex -24.8316 26.205 -0.2 - endloop - endfacet - facet normal -0.00940958 -0.999956 0 - outer loop - vertex -24.8316 26.205 -0.2 - vertex -23.1385 26.1891 0 - vertex -24.8316 26.205 0 - endloop - endfacet - facet normal -0.00940958 -0.999956 -0 - outer loop - vertex -23.1385 26.1891 0 - vertex -24.8316 26.205 -0.2 - vertex -23.1385 26.1891 -0.2 - endloop - endfacet - facet normal 0.0248422 -0.999691 0 - outer loop - vertex -23.1385 26.1891 -0.2 - vertex -22.5186 26.2045 0 - vertex -23.1385 26.1891 0 - endloop - endfacet - facet normal 0.0248422 -0.999691 0 - outer loop - vertex -22.5186 26.2045 0 - vertex -23.1385 26.1891 -0.2 - vertex -22.5186 26.2045 -0.2 - endloop - endfacet - facet normal 0.066912 -0.997759 0 - outer loop - vertex -22.5186 26.2045 -0.2 - vertex -22.0356 26.2369 0 - vertex -22.5186 26.2045 0 - endloop - endfacet - facet normal 0.066912 -0.997759 0 - outer loop - vertex -22.0356 26.2369 0 - vertex -22.5186 26.2045 -0.2 - vertex -22.0356 26.2369 -0.2 - endloop - endfacet - facet normal 0.139914 -0.990164 0 - outer loop - vertex -22.0356 26.2369 -0.2 - vertex -21.6785 26.2874 0 - vertex -22.0356 26.2369 0 - endloop - endfacet - facet normal 0.139914 -0.990164 0 - outer loop - vertex -21.6785 26.2874 0 - vertex -22.0356 26.2369 -0.2 - vertex -21.6785 26.2874 -0.2 - endloop - endfacet - facet normal 0.276553 -0.960999 0 - outer loop - vertex -21.6785 26.2874 -0.2 - vertex -21.4368 26.3569 0 - vertex -21.6785 26.2874 0 - endloop - endfacet - facet normal 0.276553 -0.960999 0 - outer loop - vertex -21.4368 26.3569 0 - vertex -21.6785 26.2874 -0.2 - vertex -21.4368 26.3569 -0.2 - endloop - endfacet - facet normal 0.462821 -0.886452 0 - outer loop - vertex -21.4368 26.3569 -0.2 - vertex -21.3558 26.3992 0 - vertex -21.4368 26.3569 0 - endloop - endfacet - facet normal 0.462821 -0.886452 0 - outer loop - vertex -21.3558 26.3992 0 - vertex -21.4368 26.3569 -0.2 - vertex -21.3558 26.3992 -0.2 - endloop - endfacet - facet normal 0.645311 -0.76392 0 - outer loop - vertex -21.3558 26.3992 -0.2 - vertex -21.2997 26.4466 0 - vertex -21.3558 26.3992 0 - endloop - endfacet - facet normal 0.645311 -0.76392 0 - outer loop - vertex -21.2997 26.4466 0 - vertex -21.3558 26.3992 -0.2 - vertex -21.2997 26.4466 -0.2 - endloop - endfacet - facet normal 0.84984 -0.527041 0 - outer loop - vertex -21.2997 26.4466 0 - vertex -21.2669 26.4994 -0.2 - vertex -21.2669 26.4994 0 - endloop - endfacet - facet normal 0.84984 -0.527041 0 - outer loop - vertex -21.2669 26.4994 -0.2 - vertex -21.2997 26.4466 0 - vertex -21.2997 26.4466 -0.2 - endloop - endfacet - facet normal 0.98379 -0.179322 0 - outer loop - vertex -21.2669 26.4994 0 - vertex -21.2563 26.5576 -0.2 - vertex -21.2563 26.5576 0 - endloop - endfacet - facet normal 0.98379 -0.179322 0 - outer loop - vertex -21.2563 26.5576 -0.2 - vertex -21.2669 26.4994 0 - vertex -21.2669 26.4994 -0.2 - endloop - endfacet - facet normal 0.837844 0.54591 0 - outer loop - vertex -21.2563 26.5576 0 - vertex -21.2799 26.5937 -0.2 - vertex -21.2799 26.5937 0 - endloop - endfacet - facet normal 0.837844 0.54591 0 - outer loop - vertex -21.2799 26.5937 -0.2 - vertex -21.2563 26.5576 0 - vertex -21.2563 26.5576 -0.2 - endloop - endfacet - facet normal 0.505324 0.86293 -0 - outer loop - vertex -21.2799 26.5937 -0.2 - vertex -21.3473 26.6332 0 - vertex -21.2799 26.5937 0 - endloop - endfacet - facet normal 0.505324 0.86293 0 - outer loop - vertex -21.3473 26.6332 0 - vertex -21.2799 26.5937 -0.2 - vertex -21.3473 26.6332 -0.2 - endloop - endfacet - facet normal 0.321132 0.947035 -0 - outer loop - vertex -21.3473 26.6332 -0.2 - vertex -21.5951 26.7172 0 - vertex -21.3473 26.6332 0 - endloop - endfacet - facet normal 0.321132 0.947035 0 - outer loop - vertex -21.5951 26.7172 0 - vertex -21.3473 26.6332 -0.2 - vertex -21.5951 26.7172 -0.2 - endloop - endfacet - facet normal 0.218663 0.9758 -0 - outer loop - vertex -21.5951 26.7172 -0.2 - vertex -21.9618 26.7994 0 - vertex -21.5951 26.7172 0 - endloop - endfacet - facet normal 0.218663 0.9758 0 - outer loop - vertex -21.9618 26.7994 0 - vertex -21.5951 26.7172 -0.2 - vertex -21.9618 26.7994 -0.2 - endloop - endfacet - facet normal 0.154639 0.987971 -0 - outer loop - vertex -21.9618 26.7994 -0.2 - vertex -22.4095 26.8695 0 - vertex -21.9618 26.7994 0 - endloop - endfacet - facet normal 0.154639 0.987971 0 - outer loop - vertex -22.4095 26.8695 0 - vertex -21.9618 26.7994 -0.2 - vertex -22.4095 26.8695 -0.2 - endloop - endfacet - facet normal 0.17991 0.983683 -0 - outer loop - vertex -22.4095 26.8695 -0.2 - vertex -22.8078 26.9423 0 - vertex -22.4095 26.8695 0 - endloop - endfacet - facet normal 0.17991 0.983683 0 - outer loop - vertex -22.8078 26.9423 0 - vertex -22.4095 26.8695 -0.2 - vertex -22.8078 26.9423 -0.2 - endloop - endfacet - facet normal 0.273496 0.961873 -0 - outer loop - vertex -22.8078 26.9423 -0.2 - vertex -23.1972 27.0531 0 - vertex -22.8078 26.9423 0 - endloop - endfacet - facet normal 0.273496 0.961873 0 - outer loop - vertex -23.1972 27.0531 0 - vertex -22.8078 26.9423 -0.2 - vertex -23.1972 27.0531 -0.2 - endloop - endfacet - facet normal 0.356994 0.934107 -0 - outer loop - vertex -23.1972 27.0531 -0.2 - vertex -23.56 27.1917 0 - vertex -23.1972 27.0531 0 - endloop - endfacet - facet normal 0.356994 0.934107 0 - outer loop - vertex -23.56 27.1917 0 - vertex -23.1972 27.0531 -0.2 - vertex -23.56 27.1917 -0.2 - endloop - endfacet - facet normal 0.441429 0.897296 -0 - outer loop - vertex -23.56 27.1917 -0.2 - vertex -23.8785 27.3484 0 - vertex -23.56 27.1917 0 - endloop - endfacet - facet normal 0.441429 0.897296 0 - outer loop - vertex -23.8785 27.3484 0 - vertex -23.56 27.1917 -0.2 - vertex -23.8785 27.3484 -0.2 - endloop - endfacet - facet normal 0.540697 0.841217 -0 - outer loop - vertex -23.8785 27.3484 -0.2 - vertex -24.1346 27.513 0 - vertex -23.8785 27.3484 0 - endloop - endfacet - facet normal 0.540697 0.841217 0 - outer loop - vertex -24.1346 27.513 0 - vertex -23.8785 27.3484 -0.2 - vertex -24.1346 27.513 -0.2 - endloop - endfacet - facet normal 0.678607 0.734501 -0 - outer loop - vertex -24.1346 27.513 -0.2 - vertex -24.3107 27.6757 0 - vertex -24.1346 27.513 0 - endloop - endfacet - facet normal 0.678607 0.734501 0 - outer loop - vertex -24.3107 27.6757 0 - vertex -24.1346 27.513 -0.2 - vertex -24.3107 27.6757 -0.2 - endloop - endfacet - facet normal 0.828129 0.560537 0 - outer loop - vertex -24.3107 27.6757 0 - vertex -24.3632 27.7532 -0.2 - vertex -24.3632 27.7532 0 - endloop - endfacet - facet normal 0.828129 0.560537 0 - outer loop - vertex -24.3632 27.7532 -0.2 - vertex -24.3107 27.6757 0 - vertex -24.3107 27.6757 -0.2 - endloop - endfacet - facet normal 0.943401 0.331655 0 - outer loop - vertex -24.3632 27.7532 0 - vertex -24.3889 27.8265 -0.2 - vertex -24.3889 27.8265 0 - endloop - endfacet - facet normal 0.943401 0.331655 0 - outer loop - vertex -24.3889 27.8265 -0.2 - vertex -24.3632 27.7532 0 - vertex -24.3632 27.7532 -0.2 - endloop - endfacet - facet normal 0.998917 -0.0465292 0 - outer loop - vertex -24.3889 27.8265 0 - vertex -24.3858 27.8943 -0.2 - vertex -24.3858 27.8943 0 - endloop - endfacet - facet normal 0.998917 -0.0465292 0 - outer loop - vertex -24.3858 27.8943 -0.2 - vertex -24.3889 27.8265 0 - vertex -24.3889 27.8265 -0.2 - endloop - endfacet - facet normal 0.871924 -0.489641 0 - outer loop - vertex -24.3858 27.8943 0 - vertex -24.3515 27.9554 -0.2 - vertex -24.3515 27.9554 0 - endloop - endfacet - facet normal 0.871924 -0.489641 0 - outer loop - vertex -24.3515 27.9554 -0.2 - vertex -24.3858 27.8943 0 - vertex -24.3858 27.8943 -0.2 - endloop - endfacet - facet normal 0.330372 -0.943851 0 - outer loop - vertex -24.3515 27.9554 -0.2 - vertex -24.2923 27.9761 0 - vertex -24.3515 27.9554 0 - endloop - endfacet - facet normal 0.330372 -0.943851 0 - outer loop - vertex -24.2923 27.9761 0 - vertex -24.3515 27.9554 -0.2 - vertex -24.2923 27.9761 -0.2 - endloop - endfacet - facet normal 0.0962711 -0.995355 0 - outer loop - vertex -24.2923 27.9761 -0.2 - vertex -24.1643 27.9885 0 - vertex -24.2923 27.9761 0 - endloop - endfacet - facet normal 0.0962711 -0.995355 0 - outer loop - vertex -24.1643 27.9885 0 - vertex -24.2923 27.9761 -0.2 - vertex -24.1643 27.9885 -0.2 - endloop - endfacet - facet normal 0.00166914 -0.999999 0 - outer loop - vertex -24.1643 27.9885 -0.2 - vertex -23.7335 27.9892 0 - vertex -24.1643 27.9885 0 - endloop - endfacet - facet normal 0.00166914 -0.999999 0 - outer loop - vertex -23.7335 27.9892 0 - vertex -24.1643 27.9885 -0.2 - vertex -23.7335 27.9892 -0.2 - endloop - endfacet - facet normal -0.048866 -0.998805 0 - outer loop - vertex -23.7335 27.9892 -0.2 - vertex -23.1232 27.9594 0 - vertex -23.7335 27.9892 0 - endloop - endfacet - facet normal -0.048866 -0.998805 -0 - outer loop - vertex -23.1232 27.9594 0 - vertex -23.7335 27.9892 -0.2 - vertex -23.1232 27.9594 -0.2 - endloop - endfacet - facet normal -0.0805478 -0.996751 0 - outer loop - vertex -23.1232 27.9594 -0.2 - vertex -22.3975 27.9007 0 - vertex -23.1232 27.9594 0 - endloop - endfacet - facet normal -0.0805478 -0.996751 -0 - outer loop - vertex -22.3975 27.9007 0 - vertex -23.1232 27.9594 -0.2 - vertex -22.3975 27.9007 -0.2 - endloop - endfacet - facet normal -0.115526 -0.993304 0 - outer loop - vertex -22.3975 27.9007 -0.2 - vertex -21.4599 27.7917 0 - vertex -22.3975 27.9007 0 - endloop - endfacet - facet normal -0.115526 -0.993304 -0 - outer loop - vertex -21.4599 27.7917 0 - vertex -22.3975 27.9007 -0.2 - vertex -21.4599 27.7917 -0.2 - endloop - endfacet - facet normal -0.170472 -0.985363 0 - outer loop - vertex -21.4599 27.7917 -0.2 - vertex -21.1001 27.7294 0 - vertex -21.4599 27.7917 0 - endloop - endfacet - facet normal -0.170472 -0.985363 -0 - outer loop - vertex -21.1001 27.7294 0 - vertex -21.4599 27.7917 -0.2 - vertex -21.1001 27.7294 -0.2 - endloop - endfacet - facet normal -0.23059 -0.973051 0 - outer loop - vertex -21.1001 27.7294 -0.2 - vertex -20.7979 27.6578 0 - vertex -21.1001 27.7294 0 - endloop - endfacet - facet normal -0.23059 -0.973051 -0 - outer loop - vertex -20.7979 27.6578 0 - vertex -21.1001 27.7294 -0.2 - vertex -20.7979 27.6578 -0.2 - endloop - endfacet - facet normal -0.312278 -0.949991 0 - outer loop - vertex -20.7979 27.6578 -0.2 - vertex -20.5419 27.5737 0 - vertex -20.7979 27.6578 0 - endloop - endfacet - facet normal -0.312278 -0.949991 -0 - outer loop - vertex -20.5419 27.5737 0 - vertex -20.7979 27.6578 -0.2 - vertex -20.5419 27.5737 -0.2 - endloop - endfacet - facet normal -0.411473 -0.911422 0 - outer loop - vertex -20.5419 27.5737 -0.2 - vertex -20.3206 27.4738 0 - vertex -20.5419 27.5737 0 - endloop - endfacet - facet normal -0.411473 -0.911422 -0 - outer loop - vertex -20.3206 27.4738 0 - vertex -20.5419 27.5737 -0.2 - vertex -20.3206 27.4738 -0.2 - endloop - endfacet - facet normal -0.51473 -0.857352 0 - outer loop - vertex -20.3206 27.4738 -0.2 - vertex -20.1227 27.3549 0 - vertex -20.3206 27.4738 0 - endloop - endfacet - facet normal -0.51473 -0.857352 -0 - outer loop - vertex -20.1227 27.3549 0 - vertex -20.3206 27.4738 -0.2 - vertex -20.1227 27.3549 -0.2 - endloop - endfacet - facet normal -0.604059 -0.79694 0 - outer loop - vertex -20.1227 27.3549 -0.2 - vertex -19.9368 27.2141 0 - vertex -20.1227 27.3549 0 - endloop - endfacet - facet normal -0.604059 -0.79694 -0 - outer loop - vertex -19.9368 27.2141 0 - vertex -20.1227 27.3549 -0.2 - vertex -19.9368 27.2141 -0.2 + vertex -19.9485 27.2141 0 + vertex -20.8096 27.6578 -3 + vertex -19.9485 27.2141 -3 endloop endfacet facet normal -0.64002 -0.768358 0 outer loop - vertex -19.9368 27.2141 -0.2 - vertex -19.3233 26.703 0 - vertex -19.9368 27.2141 0 + vertex -19.9485 27.2141 -3 + vertex -19.335 26.703 0 + vertex -19.9485 27.2141 0 endloop endfacet facet normal -0.64002 -0.768358 -0 outer loop - vertex -19.3233 26.703 0 - vertex -19.9368 27.2141 -0.2 - vertex -19.3233 26.703 -0.2 + vertex -19.335 26.703 0 + vertex -19.9485 27.2141 -3 + vertex -19.335 26.703 -3 endloop endfacet - facet normal 0.254038 -0.967194 0 + facet normal 0.254037 -0.967194 0 outer loop - vertex -19.3233 26.703 -0.2 - vertex -16.9758 27.3196 0 - vertex -19.3233 26.703 0 + vertex -19.335 26.703 -3 + vertex -16.9875 27.3196 0 + vertex -19.335 26.703 0 endloop endfacet - facet normal 0.254038 -0.967194 0 + facet normal 0.254037 -0.967194 0 outer loop - vertex -16.9758 27.3196 0 - vertex -19.3233 26.703 -0.2 - vertex -16.9758 27.3196 -0.2 + vertex -16.9875 27.3196 0 + vertex -19.335 26.703 -3 + vertex -16.9875 27.3196 -3 endloop endfacet - facet normal 0.236306 -0.971679 0 + facet normal 0.212489 -0.977163 0 outer loop - vertex -16.9758 27.3196 -0.2 - vertex -16.0674 27.5405 0 - vertex -16.9758 27.3196 0 + vertex -16.9875 27.3196 -3 + vertex -15.2376 27.7001 0 + vertex -16.9875 27.3196 0 endloop endfacet - facet normal 0.236306 -0.971679 0 + facet normal 0.212489 -0.977163 0 outer loop - vertex -16.0674 27.5405 0 - vertex -16.9758 27.3196 -0.2 - vertex -16.0674 27.5405 -0.2 + vertex -15.2376 27.7001 0 + vertex -16.9875 27.3196 -3 + vertex -15.2376 27.7001 -3 endloop endfacet - facet normal 0.186349 -0.982484 0 + facet normal 0.0813778 -0.996683 0 outer loop - vertex -16.0674 27.5405 -0.2 - vertex -15.2259 27.7001 0 - vertex -16.0674 27.5405 0 + vertex -15.2376 27.7001 -3 + vertex -13.5562 27.8374 0 + vertex -15.2376 27.7001 0 endloop endfacet - facet normal 0.186349 -0.982484 0 + facet normal 0.0813778 -0.996683 0 outer loop - vertex -15.2259 27.7001 0 - vertex -16.0674 27.5405 -0.2 - vertex -15.2259 27.7001 -0.2 + vertex -13.5562 27.8374 0 + vertex -15.2376 27.7001 -3 + vertex -13.5562 27.8374 -3 endloop endfacet - facet normal 0.119004 -0.992894 0 + facet normal -0.0507625 -0.998711 0 outer loop - vertex -15.2259 27.7001 -0.2 - vertex -14.4014 27.7989 0 - vertex -15.2259 27.7001 0 + vertex -13.5562 27.8374 -3 + vertex -11.546 27.7352 0 + vertex -13.5562 27.8374 0 endloop endfacet - facet normal 0.119004 -0.992894 0 + facet normal -0.0507625 -0.998711 -0 outer loop - vertex -14.4014 27.7989 0 - vertex -15.2259 27.7001 -0.2 - vertex -14.4014 27.7989 -0.2 + vertex -11.546 27.7352 0 + vertex -13.5562 27.8374 -3 + vertex -11.546 27.7352 -3 endloop endfacet - facet normal 0.0448493 -0.998994 0 + facet normal -0.122536 -0.992464 0 outer loop - vertex -14.4014 27.7989 -0.2 - vertex -13.5445 27.8374 0 - vertex -14.4014 27.7989 0 + vertex -11.546 27.7352 -3 + vertex -8.80952 27.3973 0 + vertex -11.546 27.7352 0 endloop endfacet - facet normal 0.0448493 -0.998994 0 + facet normal -0.122536 -0.992464 -0 outer loop - vertex -13.5445 27.8374 0 - vertex -14.4014 27.7989 -0.2 - vertex -13.5445 27.8374 -0.2 + vertex -8.80952 27.3973 0 + vertex -11.546 27.7352 -3 + vertex -8.80952 27.3973 -3 endloop endfacet - facet normal -0.0227723 -0.999741 0 + facet normal -0.0983783 -0.995149 0 outer loop - vertex -13.5445 27.8374 -0.2 - vertex -12.6053 27.816 0 - vertex -13.5445 27.8374 0 + vertex -8.80952 27.3973 -3 + vertex -7.25507 27.2437 0 + vertex -8.80952 27.3973 0 endloop endfacet - facet normal -0.0227723 -0.999741 -0 + facet normal -0.0983783 -0.995149 -0 outer loop - vertex -12.6053 27.816 0 - vertex -13.5445 27.8374 -0.2 - vertex -12.6053 27.816 -0.2 + vertex -7.25507 27.2437 0 + vertex -8.80952 27.3973 -3 + vertex -7.25507 27.2437 -3 endloop endfacet - facet normal -0.0752121 -0.997168 0 + facet normal 0.163792 -0.986495 0 outer loop - vertex -12.6053 27.816 -0.2 - vertex -11.5342 27.7352 0 - vertex -12.6053 27.816 0 + vertex -7.25507 27.2437 -3 + vertex -6.55612 27.3597 0 + vertex -7.25507 27.2437 0 endloop endfacet - facet normal -0.0752121 -0.997168 -0 + facet normal 0.163792 -0.986495 0 outer loop - vertex -11.5342 27.7352 0 - vertex -12.6053 27.816 -0.2 - vertex -11.5342 27.7352 -0.2 + vertex -6.55612 27.3597 0 + vertex -7.25507 27.2437 -3 + vertex -6.55612 27.3597 -3 endloop endfacet - facet normal -0.110844 -0.993838 0 + facet normal 0.830428 -0.557126 0 outer loop - vertex -11.5342 27.7352 -0.2 - vertex -10.2816 27.5955 0 - vertex -11.5342 27.7352 0 + vertex -6.55612 27.3597 0 + vertex -6.38329 27.6173 -3 + vertex -6.38329 27.6173 0 endloop endfacet - facet normal -0.110844 -0.993838 -0 + facet normal 0.830428 -0.557126 0 outer loop - vertex -10.2816 27.5955 0 - vertex -11.5342 27.7352 -0.2 - vertex -10.2816 27.5955 -0.2 + vertex -6.38329 27.6173 -3 + vertex -6.55612 27.3597 0 + vertex -6.55612 27.3597 -3 endloop endfacet - facet normal -0.132367 -0.991201 0 + facet normal 0.987965 -0.154679 0 outer loop - vertex -10.2816 27.5955 -0.2 - vertex -8.79778 27.3973 0 - vertex -10.2816 27.5955 0 + vertex -6.38329 27.6173 0 + vertex -6.28322 28.2565 -3 + vertex -6.28322 28.2565 0 endloop endfacet - facet normal -0.132367 -0.991201 -0 + facet normal 0.987965 -0.154679 0 outer loop - vertex -8.79778 27.3973 0 - vertex -10.2816 27.5955 -0.2 - vertex -8.79778 27.3973 -0.2 + vertex -6.28322 28.2565 -3 + vertex -6.38329 27.6173 0 + vertex -6.38329 27.6173 -3 endloop endfacet - facet normal -0.122316 -0.992491 0 + facet normal 0.99984 -0.0178603 0 outer loop - vertex -8.79778 27.3973 -0.2 - vertex -7.89877 27.2865 0 - vertex -8.79778 27.3973 0 + vertex -6.28322 28.2565 0 + vertex -6.22131 31.7226 -3 + vertex -6.22131 31.7226 0 endloop endfacet - facet normal -0.122316 -0.992491 -0 + facet normal 0.99984 -0.0178603 0 outer loop - vertex -7.89877 27.2865 0 - vertex -8.79778 27.3973 -0.2 - vertex -7.89877 27.2865 -0.2 + vertex -6.22131 31.7226 -3 + vertex -6.28322 28.2565 0 + vertex -6.28322 28.2565 -3 endloop endfacet - facet normal -0.0652699 -0.997868 0 + facet normal 0.999322 -0.0368307 0 outer loop - vertex -7.89877 27.2865 -0.2 - vertex -7.24334 27.2437 0 - vertex -7.89877 27.2865 0 + vertex -6.22131 31.7226 0 + vertex -6.055 36.2349 -3 + vertex -6.055 36.2349 0 endloop endfacet - facet normal -0.0652699 -0.997868 -0 + facet normal 0.999322 -0.0368307 0 outer loop - vertex -7.24334 27.2437 0 - vertex -7.89877 27.2865 -0.2 - vertex -7.24334 27.2437 -0.2 + vertex -6.055 36.2349 -3 + vertex -6.22131 31.7226 0 + vertex -6.22131 31.7226 -3 endloop endfacet - facet normal 0.0157984 -0.999875 0 + facet normal 0.823305 -0.5676 0 outer loop - vertex -7.24334 27.2437 -0.2 - vertex -6.99768 27.2475 0 - vertex -7.24334 27.2437 0 + vertex -6.055 36.2349 0 + vertex -5.8163 36.5812 -3 + vertex -5.8163 36.5812 0 endloop endfacet - facet normal 0.0157984 -0.999875 0 + facet normal 0.823305 -0.5676 0 outer loop - vertex -6.99768 27.2475 0 - vertex -7.24334 27.2437 -0.2 - vertex -6.99768 27.2475 -0.2 + vertex -5.8163 36.5812 -3 + vertex -6.055 36.2349 0 + vertex -6.055 36.2349 -3 endloop endfacet - facet normal 0.104958 -0.994477 0 + facet normal -0.301391 -0.953501 0 outer loop - vertex -6.99768 27.2475 -0.2 - vertex -6.80178 27.2682 0 - vertex -6.99768 27.2475 0 + vertex -5.8163 36.5812 -3 + vertex -5.55994 36.5001 0 + vertex -5.8163 36.5812 0 endloop endfacet - facet normal 0.104958 -0.994477 0 + facet normal -0.301391 -0.953501 -0 outer loop - vertex -6.80178 27.2682 0 - vertex -6.99768 27.2475 -0.2 - vertex -6.80178 27.2682 -0.2 + vertex -5.55994 36.5001 0 + vertex -5.8163 36.5812 -3 + vertex -5.55994 36.5001 -3 endloop endfacet - facet normal 0.242196 -0.970227 0 + facet normal -0.928472 -0.371402 0 outer loop - vertex -6.80178 27.2682 -0.2 - vertex -6.65192 27.3056 0 - vertex -6.80178 27.2682 0 + vertex -4.97284 35.0324 -3 + vertex -5.55994 36.5001 0 + vertex -5.55994 36.5001 -3 endloop endfacet - facet normal 0.242196 -0.970227 0 + facet normal -0.928472 -0.371402 0 outer loop - vertex -6.65192 27.3056 0 - vertex -6.80178 27.2682 -0.2 - vertex -6.65192 27.3056 -0.2 + vertex -5.55994 36.5001 0 + vertex -4.97284 35.0324 -3 + vertex -4.97284 35.0324 0 endloop endfacet - facet normal 0.449315 -0.893373 0 + facet normal -0.946087 -0.323913 0 outer loop - vertex -6.65192 27.3056 -0.2 - vertex -6.54439 27.3597 0 - vertex -6.65192 27.3056 0 + vertex -3.97987 32.1322 -3 + vertex -4.97284 35.0324 0 + vertex -4.97284 35.0324 -3 endloop endfacet - facet normal 0.449315 -0.893373 0 + facet normal -0.946087 -0.323913 0 outer loop - vertex -6.54439 27.3597 0 - vertex -6.65192 27.3056 -0.2 - vertex -6.54439 27.3597 -0.2 + vertex -4.97284 35.0324 0 + vertex -3.97987 32.1322 -3 + vertex -3.97987 32.1322 0 endloop endfacet - facet normal 0.709468 -0.704738 0 + facet normal -0.891782 -0.452466 0 outer loop - vertex -6.54439 27.3597 0 - vertex -6.44763 27.4571 -0.2 - vertex -6.44763 27.4571 0 + vertex -2.77953 29.7664 -3 + vertex -3.97987 32.1322 0 + vertex -3.97987 32.1322 -3 endloop endfacet - facet normal 0.709468 -0.704738 0 + facet normal -0.891782 -0.452466 0 outer loop - vertex -6.44763 27.4571 -0.2 - vertex -6.54439 27.3597 0 - vertex -6.54439 27.3597 -0.2 + vertex -3.97987 32.1322 0 + vertex -2.77953 29.7664 -3 + vertex -2.77953 29.7664 0 endloop endfacet - facet normal 0.90334 -0.428926 0 + facet normal -0.788004 -0.61567 0 outer loop - vertex -6.44763 27.4571 0 - vertex -6.37156 27.6173 -0.2 - vertex -6.37156 27.6173 0 + vertex -1.46161 28.0795 -3 + vertex -2.77953 29.7664 0 + vertex -2.77953 29.7664 -3 endloop endfacet - facet normal 0.90334 -0.428926 0 + facet normal -0.788004 -0.61567 0 outer loop - vertex -6.37156 27.6173 -0.2 - vertex -6.44763 27.4571 0 - vertex -6.44763 27.4571 -0.2 + vertex -2.77953 29.7664 0 + vertex -1.46161 28.0795 -3 + vertex -1.46161 28.0795 0 endloop endfacet - facet normal 0.975305 -0.220862 0 + facet normal -0.627252 -0.778816 0 outer loop - vertex -6.37156 27.6173 0 - vertex -6.31368 27.8729 -0.2 - vertex -6.31368 27.8729 0 + vertex -1.46161 28.0795 -3 + vertex -0.786632 27.5359 0 + vertex -1.46161 28.0795 0 endloop endfacet - facet normal 0.975305 -0.220862 0 + facet normal -0.627252 -0.778816 -0 outer loop - vertex -6.31368 27.8729 -0.2 - vertex -6.37156 27.6173 0 - vertex -6.37156 27.6173 -0.2 + vertex -0.786632 27.5359 0 + vertex -1.46161 28.0795 -3 + vertex -0.786632 27.5359 -3 endloop endfacet - facet normal 0.994005 -0.109334 0 + facet normal -0.430266 -0.902702 0 outer loop - vertex -6.31368 27.8729 0 - vertex -6.27149 28.2565 -0.2 - vertex -6.27149 28.2565 0 + vertex -0.786632 27.5359 -3 + vertex -0.115935 27.2162 0 + vertex -0.786632 27.5359 0 endloop endfacet - facet normal 0.994005 -0.109334 0 + facet normal -0.430266 -0.902702 -0 outer loop - vertex -6.27149 28.2565 -0.2 - vertex -6.31368 27.8729 0 - vertex -6.31368 27.8729 -0.2 + vertex -0.115935 27.2162 0 + vertex -0.786632 27.5359 -3 + vertex -0.115935 27.2162 -3 endloop endfacet - facet normal 0.998582 -0.0532268 0 + facet normal -0.108301 -0.994118 0 outer loop - vertex -6.27149 28.2565 0 - vertex -6.24249 28.8007 -0.2 - vertex -6.24249 28.8007 0 + vertex -0.115935 27.2162 -3 + vertex 0.858783 27.1101 0 + vertex -0.115935 27.2162 0 endloop endfacet - facet normal 0.998582 -0.0532268 0 + facet normal -0.108301 -0.994118 -0 outer loop - vertex -6.24249 28.8007 -0.2 - vertex -6.27149 28.2565 0 - vertex -6.27149 28.2565 -0.2 + vertex 0.858783 27.1101 0 + vertex -0.115935 27.2162 -3 + vertex 0.858783 27.1101 -3 endloop endfacet - facet normal 0.999691 -0.0248385 0 + facet normal 0.992113 -0.125344 0 outer loop - vertex -6.24249 28.8007 0 - vertex -6.22417 29.538 -0.2 - vertex -6.22417 29.538 0 + vertex 0.858783 27.1101 0 + vertex 1.04836 28.6106 -3 + vertex 1.04836 28.6106 0 endloop endfacet - facet normal 0.999691 -0.0248385 0 + facet normal 0.992113 -0.125344 0 outer loop - vertex -6.22417 29.538 -0.2 - vertex -6.24249 28.8007 0 - vertex -6.24249 28.8007 -0.2 + vertex 1.04836 28.6106 -3 + vertex 0.858783 27.1101 0 + vertex 0.858783 27.1101 -3 endloop endfacet - facet normal 0.999978 -0.00667916 0 + facet normal 0.998104 -0.0615481 0 outer loop - vertex -6.22417 29.538 0 - vertex -6.20957 31.7226 -0.2 - vertex -6.20957 31.7226 0 + vertex 1.04836 28.6106 0 + vertex 1.1273 29.8907 -3 + vertex 1.1273 29.8907 0 endloop endfacet - facet normal 0.999978 -0.00667916 0 + facet normal 0.998104 -0.0615481 0 outer loop - vertex -6.20957 31.7226 -0.2 - vertex -6.22417 29.538 0 - vertex -6.22417 29.538 -0.2 + vertex 1.1273 29.8907 -3 + vertex 1.04836 28.6106 0 + vertex 1.04836 28.6106 -3 endloop endfacet - facet normal 0.999955 -0.00944041 0 + facet normal 0.981864 -0.189585 0 outer loop - vertex -6.20957 31.7226 0 - vertex -6.19415 33.3563 -0.2 - vertex -6.19415 33.3563 0 + vertex 1.1273 29.8907 0 + vertex 1.37489 31.173 -3 + vertex 1.37489 31.173 0 endloop endfacet - facet normal 0.999955 -0.00944041 0 + facet normal 0.981864 -0.189585 0 outer loop - vertex -6.19415 33.3563 -0.2 - vertex -6.20957 31.7226 0 - vertex -6.20957 31.7226 -0.2 + vertex 1.37489 31.173 -3 + vertex 1.1273 29.8907 0 + vertex 1.1273 29.8907 -3 endloop endfacet - facet normal 0.999658 -0.0261462 0 + facet normal 0.935462 -0.353427 0 outer loop - vertex -6.19415 33.3563 0 - vertex -6.15766 34.7516 -0.2 - vertex -6.15766 34.7516 0 + vertex 1.37489 31.173 0 + vertex 2.44067 33.9939 -3 + vertex 2.44067 33.9939 0 endloop endfacet - facet normal 0.999658 -0.0261462 0 + facet normal 0.935462 -0.353427 0 outer loop - vertex -6.15766 34.7516 -0.2 - vertex -6.19415 33.3563 0 - vertex -6.19415 33.3563 -0.2 + vertex 2.44067 33.9939 -3 + vertex 1.37489 31.173 0 + vertex 1.37489 31.173 -3 endloop endfacet - facet normal 0.998669 -0.0515827 0 + facet normal 0.883303 -0.468802 0 outer loop - vertex -6.15766 34.7516 0 - vertex -6.10555 35.7605 -0.2 - vertex -6.10555 35.7605 0 + vertex 2.44067 33.9939 0 + vertex 4.08079 37.0842 -3 + vertex 4.08079 37.0842 0 endloop endfacet - facet normal 0.998669 -0.0515827 0 + facet normal 0.883303 -0.468802 0 outer loop - vertex -6.10555 35.7605 -0.2 - vertex -6.15766 34.7516 0 - vertex -6.15766 34.7516 -0.2 + vertex 4.08079 37.0842 -3 + vertex 2.44067 33.9939 0 + vertex 2.44067 33.9939 -3 endloop endfacet - facet normal 0.995383 -0.0959818 0 + facet normal 0.814108 -0.580714 0 outer loop - vertex -6.10555 35.7605 0 - vertex -6.07534 36.0738 -0.2 - vertex -6.07534 36.0738 0 + vertex 4.08079 37.0842 0 + vertex 5.15152 38.5852 -3 + vertex 5.15152 38.5852 0 endloop endfacet - facet normal 0.995383 -0.0959818 0 + facet normal 0.814108 -0.580714 0 outer loop - vertex -6.07534 36.0738 -0.2 - vertex -6.10555 35.7605 0 - vertex -6.10555 35.7605 -0.2 + vertex 5.15152 38.5852 -3 + vertex 4.08079 37.0842 0 + vertex 4.08079 37.0842 -3 endloop endfacet - facet normal 0.980771 -0.195161 0 + facet normal -0.809167 -0.587578 0 outer loop - vertex -6.07534 36.0738 0 - vertex -6.04327 36.2349 -0.2 - vertex -6.04327 36.2349 0 + vertex 5.25321 38.4452 -3 + vertex 5.15152 38.5852 0 + vertex 5.15152 38.5852 -3 endloop endfacet - facet normal 0.980771 -0.195161 0 + facet normal -0.809167 -0.587578 0 outer loop - vertex -6.04327 36.2349 -0.2 - vertex -6.07534 36.0738 0 - vertex -6.07534 36.0738 -0.2 + vertex 5.15152 38.5852 0 + vertex 5.25321 38.4452 -3 + vertex 5.25321 38.4452 0 endloop endfacet - facet normal 0.887411 -0.460979 0 + facet normal -0.887211 -0.461365 0 outer loop - vertex -6.04327 36.2349 0 - vertex -5.92579 36.4611 -0.2 - vertex -5.92579 36.4611 0 + vertex 8.028 17.0592 -3 + vertex 7.15178 18.7442 0 + vertex 7.15178 18.7442 -3 endloop endfacet - facet normal 0.887411 -0.460979 0 + facet normal -0.887211 -0.461365 0 outer loop - vertex -5.92579 36.4611 -0.2 - vertex -6.04327 36.2349 0 - vertex -6.04327 36.2349 -0.2 + vertex 7.15178 18.7442 0 + vertex 8.028 17.0592 -3 + vertex 8.028 17.0592 0 endloop endfacet - facet normal 0.77348 -0.633821 0 + facet normal -0.822305 -0.569047 0 outer loop - vertex -5.92579 36.4611 0 - vertex -5.86569 36.5344 -0.2 - vertex -5.86569 36.5344 0 + vertex 8.86535 15.8492 -3 + vertex 8.028 17.0592 0 + vertex 8.028 17.0592 -3 endloop endfacet - facet normal 0.77348 -0.633821 0 + facet normal -0.822305 -0.569047 0 outer loop - vertex -5.86569 36.5344 -0.2 - vertex -5.92579 36.4611 0 - vertex -5.92579 36.4611 -0.2 + vertex 8.028 17.0592 0 + vertex 8.86535 15.8492 -3 + vertex 8.86535 15.8492 0 endloop endfacet - facet normal 0.607425 -0.794377 0 + facet normal 0.359337 -0.933208 0 outer loop - vertex -5.86569 36.5344 -0.2 - vertex -5.80457 36.5812 0 - vertex -5.86569 36.5344 0 + vertex 8.86535 15.8492 -3 + vertex 9.72145 16.1788 0 + vertex 8.86535 15.8492 0 endloop endfacet - facet normal 0.607425 -0.794377 0 + facet normal 0.359337 -0.933208 0 outer loop - vertex -5.80457 36.5812 0 - vertex -5.86569 36.5344 -0.2 - vertex -5.80457 36.5812 -0.2 - endloop - endfacet - facet normal 0.306429 -0.951894 0 - outer loop - vertex -5.80457 36.5812 -0.2 - vertex -5.74234 36.6012 0 - vertex -5.80457 36.5812 0 - endloop - endfacet - facet normal 0.306429 -0.951894 0 - outer loop - vertex -5.74234 36.6012 0 - vertex -5.80457 36.5812 -0.2 - vertex -5.74234 36.6012 -0.2 - endloop - endfacet - facet normal -0.106116 -0.994354 0 - outer loop - vertex -5.74234 36.6012 -0.2 - vertex -5.67893 36.5944 0 - vertex -5.74234 36.6012 0 - endloop - endfacet - facet normal -0.106116 -0.994354 -0 - outer loop - vertex -5.67893 36.5944 0 - vertex -5.74234 36.6012 -0.2 - vertex -5.67893 36.5944 -0.2 - endloop - endfacet - facet normal -0.461592 -0.887092 0 - outer loop - vertex -5.67893 36.5944 -0.2 - vertex -5.61425 36.5608 0 - vertex -5.67893 36.5944 0 - endloop - endfacet - facet normal -0.461592 -0.887092 -0 - outer loop - vertex -5.61425 36.5608 0 - vertex -5.67893 36.5944 -0.2 - vertex -5.61425 36.5608 -0.2 - endloop - endfacet - facet normal -0.67638 -0.736553 0 - outer loop - vertex -5.61425 36.5608 -0.2 - vertex -5.54821 36.5001 0 - vertex -5.61425 36.5608 0 - endloop - endfacet - facet normal -0.67638 -0.736553 -0 - outer loop - vertex -5.54821 36.5001 0 - vertex -5.61425 36.5608 -0.2 - vertex -5.54821 36.5001 -0.2 - endloop - endfacet - facet normal -0.829388 -0.558673 0 - outer loop - vertex -5.41174 36.2975 -0.2 - vertex -5.54821 36.5001 0 - vertex -5.54821 36.5001 -0.2 - endloop - endfacet - facet normal -0.829388 -0.558673 0 - outer loop - vertex -5.54821 36.5001 0 - vertex -5.41174 36.2975 -0.2 - vertex -5.41174 36.2975 0 - endloop - endfacet - facet normal -0.909006 -0.416783 0 - outer loop - vertex -5.26884 35.9859 -0.2 - vertex -5.41174 36.2975 0 - vertex -5.41174 36.2975 -0.2 - endloop - endfacet - facet normal -0.909006 -0.416783 0 - outer loop - vertex -5.41174 36.2975 0 - vertex -5.26884 35.9859 -0.2 - vertex -5.26884 35.9859 0 - endloop - endfacet - facet normal -0.942118 -0.335281 0 - outer loop - vertex -5.11886 35.5644 -0.2 - vertex -5.26884 35.9859 0 - vertex -5.26884 35.9859 -0.2 - endloop - endfacet - facet normal -0.942118 -0.335281 0 - outer loop - vertex -5.26884 35.9859 0 - vertex -5.11886 35.5644 -0.2 - vertex -5.11886 35.5644 0 - endloop - endfacet - facet normal -0.958738 -0.28429 0 - outer loop - vertex -4.96111 35.0324 -0.2 - vertex -5.11886 35.5644 0 - vertex -5.11886 35.5644 -0.2 - endloop - endfacet - facet normal -0.958738 -0.28429 0 - outer loop - vertex -5.11886 35.5644 0 - vertex -4.96111 35.0324 -0.2 - vertex -4.96111 35.0324 0 - endloop - endfacet - facet normal -0.959965 -0.280118 0 - outer loop - vertex -4.73722 34.2652 -0.2 - vertex -4.96111 35.0324 0 - vertex -4.96111 35.0324 -0.2 - endloop - endfacet - facet normal -0.959965 -0.280118 0 - outer loop - vertex -4.96111 35.0324 0 - vertex -4.73722 34.2652 -0.2 - vertex -4.73722 34.2652 0 - endloop - endfacet - facet normal -0.950901 -0.309494 0 - outer loop - vertex -4.49616 33.5245 -0.2 - vertex -4.73722 34.2652 0 - vertex -4.73722 34.2652 -0.2 - endloop - endfacet - facet normal -0.950901 -0.309494 0 - outer loop - vertex -4.73722 34.2652 0 - vertex -4.49616 33.5245 -0.2 - vertex -4.49616 33.5245 0 - endloop - endfacet - facet normal -0.940636 -0.339418 0 - outer loop - vertex -4.23933 32.8128 -0.2 - vertex -4.49616 33.5245 0 - vertex -4.49616 33.5245 -0.2 - endloop - endfacet - facet normal -0.940636 -0.339418 0 - outer loop - vertex -4.49616 33.5245 0 - vertex -4.23933 32.8128 -0.2 - vertex -4.23933 32.8128 0 - endloop - endfacet - facet normal -0.928971 -0.370153 0 - outer loop - vertex -3.96814 32.1322 -0.2 - vertex -4.23933 32.8128 0 - vertex -4.23933 32.8128 -0.2 - endloop - endfacet - facet normal -0.928971 -0.370153 0 - outer loop - vertex -4.23933 32.8128 0 - vertex -3.96814 32.1322 -0.2 - vertex -3.96814 32.1322 0 - endloop - endfacet - facet normal -0.915636 -0.402008 0 - outer loop - vertex -3.68399 31.485 -0.2 - vertex -3.96814 32.1322 0 - vertex -3.96814 32.1322 -0.2 - endloop - endfacet - facet normal -0.915636 -0.402008 0 - outer loop - vertex -3.96814 32.1322 0 - vertex -3.68399 31.485 -0.2 - vertex -3.68399 31.485 0 - endloop - endfacet - facet normal -0.900273 -0.435326 0 - outer loop - vertex -3.38828 30.8734 -0.2 - vertex -3.68399 31.485 0 - vertex -3.68399 31.485 -0.2 - endloop - endfacet - facet normal -0.900273 -0.435326 0 - outer loop - vertex -3.68399 31.485 0 - vertex -3.38828 30.8734 -0.2 - vertex -3.38828 30.8734 0 - endloop - endfacet - facet normal -0.882395 -0.47051 0 - outer loop - vertex -3.08241 30.2998 -0.2 - vertex -3.38828 30.8734 0 - vertex -3.38828 30.8734 -0.2 - endloop - endfacet - facet normal -0.882395 -0.47051 0 - outer loop - vertex -3.38828 30.8734 0 - vertex -3.08241 30.2998 -0.2 - vertex -3.08241 30.2998 0 - endloop - endfacet - facet normal -0.861349 -0.508014 0 - outer loop - vertex -2.7678 29.7664 -0.2 - vertex -3.08241 30.2998 0 - vertex -3.08241 30.2998 -0.2 - endloop - endfacet - facet normal -0.861349 -0.508014 0 - outer loop - vertex -3.08241 30.2998 0 - vertex -2.7678 29.7664 -0.2 - vertex -2.7678 29.7664 0 - endloop - endfacet - facet normal -0.83625 -0.548349 0 - outer loop - vertex -2.44583 29.2754 -0.2 - vertex -2.7678 29.7664 0 - vertex -2.7678 29.7664 -0.2 - endloop - endfacet - facet normal -0.83625 -0.548349 0 - outer loop - vertex -2.7678 29.7664 0 - vertex -2.44583 29.2754 -0.2 - vertex -2.44583 29.2754 0 - endloop - endfacet - facet normal -0.805875 -0.592086 0 - outer loop - vertex -2.11792 28.8291 -0.2 - vertex -2.44583 29.2754 0 - vertex -2.44583 29.2754 -0.2 - endloop - endfacet - facet normal -0.805875 -0.592086 0 - outer loop - vertex -2.44583 29.2754 0 - vertex -2.11792 28.8291 -0.2 - vertex -2.11792 28.8291 0 - endloop - endfacet - facet normal -0.768548 -0.639792 0 - outer loop - vertex -1.78547 28.4297 -0.2 - vertex -2.11792 28.8291 0 - vertex -2.11792 28.8291 -0.2 - endloop - endfacet - facet normal -0.768548 -0.639792 0 - outer loop - vertex -2.11792 28.8291 0 - vertex -1.78547 28.4297 -0.2 - vertex -1.78547 28.4297 0 - endloop - endfacet - facet normal -0.721954 -0.691941 0 - outer loop - vertex -1.44988 28.0795 -0.2 - vertex -1.78547 28.4297 0 - vertex -1.78547 28.4297 -0.2 - endloop - endfacet - facet normal -0.721954 -0.691941 0 - outer loop - vertex -1.78547 28.4297 0 - vertex -1.44988 28.0795 -0.2 - vertex -1.44988 28.0795 0 - endloop - endfacet - facet normal -0.662916 -0.748694 0 - outer loop - vertex -1.44988 28.0795 -0.2 - vertex -1.11256 27.7809 0 - vertex -1.44988 28.0795 0 - endloop - endfacet - facet normal -0.662916 -0.748694 -0 - outer loop - vertex -1.11256 27.7809 0 - vertex -1.44988 28.0795 -0.2 - vertex -1.11256 27.7809 -0.2 - endloop - endfacet - facet normal -0.5872 -0.809442 0 - outer loop - vertex -1.11256 27.7809 -0.2 - vertex -0.7749 27.5359 0 - vertex -1.11256 27.7809 0 - endloop - endfacet - facet normal -0.5872 -0.809442 -0 - outer loop - vertex -0.7749 27.5359 0 - vertex -1.11256 27.7809 -0.2 - vertex -0.7749 27.5359 -0.2 - endloop - endfacet - facet normal -0.48954 -0.871981 0 - outer loop - vertex -0.7749 27.5359 -0.2 - vertex -0.438314 27.347 0 - vertex -0.7749 27.5359 0 - endloop - endfacet - facet normal -0.48954 -0.871981 -0 - outer loop - vertex -0.438314 27.347 0 - vertex -0.7749 27.5359 -0.2 - vertex -0.438314 27.347 -0.2 - endloop - endfacet - facet normal -0.364353 -0.931261 0 - outer loop - vertex -0.438314 27.347 -0.2 - vertex -0.104203 27.2162 0 - vertex -0.438314 27.347 0 - endloop - endfacet - facet normal -0.364353 -0.931261 -0 - outer loop - vertex -0.104203 27.2162 0 - vertex -0.438314 27.347 -0.2 - vertex -0.104203 27.2162 -0.2 - endloop - endfacet - facet normal -0.248562 -0.968616 0 - outer loop - vertex -0.104203 27.2162 -0.2 - vertex 0.215611 27.1342 0 - vertex -0.104203 27.2162 0 - endloop - endfacet - facet normal -0.248562 -0.968616 -0 - outer loop - vertex 0.215611 27.1342 0 - vertex -0.104203 27.2162 -0.2 - vertex 0.215611 27.1342 -0.2 - endloop - endfacet - facet normal -0.161031 -0.986949 0 - outer loop - vertex 0.215611 27.1342 -0.2 - vertex 0.505992 27.0868 0 - vertex 0.215611 27.1342 0 - endloop - endfacet - facet normal -0.161031 -0.986949 -0 - outer loop - vertex 0.505992 27.0868 0 - vertex 0.215611 27.1342 -0.2 - vertex 0.505992 27.0868 -0.2 - endloop - endfacet - facet normal -0.0401535 -0.999194 0 - outer loop - vertex 0.505992 27.0868 -0.2 - vertex 0.734953 27.0776 0 - vertex 0.505992 27.0868 0 - endloop - endfacet - facet normal -0.0401535 -0.999194 -0 - outer loop - vertex 0.734953 27.0776 0 - vertex 0.505992 27.0868 -0.2 - vertex 0.734953 27.0776 -0.2 - endloop - endfacet - facet normal 0.1315 -0.991316 0 - outer loop - vertex 0.734953 27.0776 -0.2 - vertex 0.816408 27.0884 0 - vertex 0.734953 27.0776 0 - endloop - endfacet - facet normal 0.1315 -0.991316 0 - outer loop - vertex 0.816408 27.0884 0 - vertex 0.734953 27.0776 -0.2 - vertex 0.816408 27.0884 -0.2 - endloop - endfacet - facet normal 0.371587 -0.928398 0 - outer loop - vertex 0.816408 27.0884 -0.2 - vertex 0.870515 27.1101 0 - vertex 0.816408 27.0884 0 - endloop - endfacet - facet normal 0.371587 -0.928398 0 - outer loop - vertex 0.870515 27.1101 0 - vertex 0.816408 27.0884 -0.2 - vertex 0.870515 27.1101 -0.2 - endloop - endfacet - facet normal 0.819454 -0.573145 0 - outer loop - vertex 0.870515 27.1101 0 - vertex 0.908598 27.1645 -0.2 - vertex 0.908598 27.1645 0 - endloop - endfacet - facet normal 0.819454 -0.573145 0 - outer loop - vertex 0.908598 27.1645 -0.2 - vertex 0.870515 27.1101 0 - vertex 0.870515 27.1101 -0.2 - endloop - endfacet - facet normal 0.947054 -0.321074 0 - outer loop - vertex 0.908598 27.1645 0 - vertex 0.944126 27.2693 -0.2 - vertex 0.944126 27.2693 0 - endloop - endfacet - facet normal 0.947054 -0.321074 0 - outer loop - vertex 0.944126 27.2693 -0.2 - vertex 0.908598 27.1645 0 - vertex 0.908598 27.1645 -0.2 - endloop - endfacet - facet normal 0.984285 -0.17659 0 - outer loop - vertex 0.944126 27.2693 0 - vertex 1.00441 27.6053 -0.2 - vertex 1.00441 27.6053 0 - endloop - endfacet - facet normal 0.984285 -0.17659 0 - outer loop - vertex 1.00441 27.6053 -0.2 - vertex 0.944126 27.2693 0 - vertex 0.944126 27.2693 -0.2 - endloop - endfacet - facet normal 0.996161 -0.0875344 0 - outer loop - vertex 1.00441 27.6053 0 - vertex 1.04514 28.0688 -0.2 - vertex 1.04514 28.0688 0 - endloop - endfacet - facet normal 0.996161 -0.0875344 0 - outer loop - vertex 1.04514 28.0688 -0.2 - vertex 1.00441 27.6053 0 - vertex 1.00441 27.6053 -0.2 - endloop - endfacet - facet normal 0.999619 -0.0276007 0 - outer loop - vertex 1.04514 28.0688 0 - vertex 1.0601 28.6106 -0.2 - vertex 1.0601 28.6106 0 - endloop - endfacet - facet normal 0.999619 -0.0276007 0 - outer loop - vertex 1.0601 28.6106 -0.2 - vertex 1.04514 28.0688 0 - vertex 1.04514 28.0688 -0.2 - endloop - endfacet - facet normal 0.999546 -0.0301211 0 - outer loop - vertex 1.0601 28.6106 0 - vertex 1.07949 29.2543 -0.2 - vertex 1.07949 29.2543 0 - endloop - endfacet - facet normal 0.999546 -0.0301211 0 - outer loop - vertex 1.07949 29.2543 -0.2 - vertex 1.0601 28.6106 0 - vertex 1.0601 28.6106 -0.2 - endloop - endfacet - facet normal 0.995652 -0.0931476 0 - outer loop - vertex 1.07949 29.2543 0 - vertex 1.13903 29.8907 -0.2 - vertex 1.13903 29.8907 0 - endloop - endfacet - facet normal 0.995652 -0.0931476 0 - outer loop - vertex 1.13903 29.8907 -0.2 - vertex 1.07949 29.2543 0 - vertex 1.07949 29.2543 -0.2 - endloop - endfacet - facet normal 0.987491 -0.157674 0 - outer loop - vertex 1.13903 29.8907 0 - vertex 1.24074 30.5277 -0.2 - vertex 1.24074 30.5277 0 - endloop - endfacet - facet normal 0.987491 -0.157674 0 - outer loop - vertex 1.24074 30.5277 -0.2 - vertex 1.13903 29.8907 0 - vertex 1.13903 29.8907 -0.2 - endloop - endfacet - facet normal 0.975385 -0.220507 0 - outer loop - vertex 1.24074 30.5277 0 - vertex 1.38662 31.173 -0.2 - vertex 1.38662 31.173 0 - endloop - endfacet - facet normal 0.975385 -0.220507 0 - outer loop - vertex 1.38662 31.173 -0.2 - vertex 1.24074 30.5277 0 - vertex 1.24074 30.5277 -0.2 - endloop - endfacet - facet normal 0.960327 -0.278878 0 - outer loop - vertex 1.38662 31.173 0 - vertex 1.57871 31.8344 -0.2 - vertex 1.57871 31.8344 0 - endloop - endfacet - facet normal 0.960327 -0.278878 0 - outer loop - vertex 1.57871 31.8344 -0.2 - vertex 1.38662 31.173 0 - vertex 1.38662 31.173 -0.2 - endloop - endfacet - facet normal 0.943682 -0.330853 0 - outer loop - vertex 1.57871 31.8344 0 - vertex 1.81903 32.5199 -0.2 - vertex 1.81903 32.5199 0 - endloop - endfacet - facet normal 0.943682 -0.330853 0 - outer loop - vertex 1.81903 32.5199 -0.2 - vertex 1.57871 31.8344 0 - vertex 1.57871 31.8344 -0.2 - endloop - endfacet - facet normal 0.926833 -0.375474 0 - outer loop - vertex 1.81903 32.5199 0 - vertex 2.10958 33.2371 -0.2 - vertex 2.10958 33.2371 0 - endloop - endfacet - facet normal 0.926833 -0.375474 0 - outer loop - vertex 2.10958 33.2371 -0.2 - vertex 1.81903 32.5199 0 - vertex 1.81903 32.5199 -0.2 - endloop - endfacet - facet normal 0.910903 -0.412619 0 - outer loop - vertex 2.10958 33.2371 0 - vertex 2.4524 33.9939 -0.2 - vertex 2.4524 33.9939 0 - endloop - endfacet - facet normal 0.910903 -0.412619 0 - outer loop - vertex 2.4524 33.9939 -0.2 - vertex 2.10958 33.2371 0 - vertex 2.10958 33.2371 -0.2 - endloop - endfacet - facet normal 0.897899 -0.440202 0 - outer loop - vertex 2.4524 33.9939 0 - vertex 2.84738 34.7996 -0.2 - vertex 2.84738 34.7996 0 - endloop - endfacet - facet normal 0.897899 -0.440202 0 - outer loop - vertex 2.84738 34.7996 -0.2 - vertex 2.4524 33.9939 0 - vertex 2.4524 33.9939 -0.2 - endloop - endfacet - facet normal 0.887623 -0.460571 0 - outer loop - vertex 2.84738 34.7996 0 - vertex 3.26543 35.6052 -0.2 - vertex 3.26543 35.6052 0 - endloop - endfacet - facet normal 0.887623 -0.460571 0 - outer loop - vertex 3.26543 35.6052 -0.2 - vertex 2.84738 34.7996 0 - vertex 2.84738 34.7996 -0.2 - endloop - endfacet - facet normal 0.877821 -0.478989 0 - outer loop - vertex 3.26543 35.6052 0 - vertex 3.68699 36.3778 -0.2 - vertex 3.68699 36.3778 0 - endloop - endfacet - facet normal 0.877821 -0.478989 0 - outer loop - vertex 3.68699 36.3778 -0.2 - vertex 3.26543 35.6052 0 - vertex 3.26543 35.6052 -0.2 - endloop - endfacet - facet normal 0.867241 -0.497888 0 - outer loop - vertex 3.68699 36.3778 0 - vertex 4.09252 37.0842 -0.2 - vertex 4.09252 37.0842 0 - endloop - endfacet - facet normal 0.867241 -0.497888 0 - outer loop - vertex 4.09252 37.0842 -0.2 - vertex 3.68699 36.3778 0 - vertex 3.68699 36.3778 -0.2 - endloop - endfacet - facet normal 0.853923 -0.520399 0 - outer loop - vertex 4.09252 37.0842 0 - vertex 4.46246 37.6912 -0.2 - vertex 4.46246 37.6912 0 - endloop - endfacet - facet normal 0.853923 -0.520399 0 - outer loop - vertex 4.46246 37.6912 -0.2 - vertex 4.09252 37.0842 0 - vertex 4.09252 37.0842 -0.2 - endloop - endfacet - facet normal 0.833342 -0.552757 0 - outer loop - vertex 4.46246 37.6912 0 - vertex 4.77727 38.1658 -0.2 - vertex 4.77727 38.1658 0 - endloop - endfacet - facet normal 0.833342 -0.552757 0 - outer loop - vertex 4.77727 38.1658 -0.2 - vertex 4.46246 37.6912 0 - vertex 4.46246 37.6912 -0.2 - endloop - endfacet - facet normal 0.789667 -0.613535 0 - outer loop - vertex 4.77727 38.1658 0 - vertex 5.01738 38.4749 -0.2 - vertex 5.01738 38.4749 0 - endloop - endfacet - facet normal 0.789667 -0.613535 0 - outer loop - vertex 5.01738 38.4749 -0.2 - vertex 4.77727 38.1658 0 - vertex 4.77727 38.1658 -0.2 - endloop - endfacet - facet normal 0.690746 -0.723097 0 - outer loop - vertex 5.01738 38.4749 -0.2 - vertex 5.10332 38.557 0 - vertex 5.01738 38.4749 0 - endloop - endfacet - facet normal 0.690746 -0.723097 0 - outer loop - vertex 5.10332 38.557 0 - vertex 5.01738 38.4749 -0.2 - vertex 5.10332 38.557 -0.2 - endloop - endfacet - facet normal 0.426773 -0.904359 0 - outer loop - vertex 5.10332 38.557 -0.2 - vertex 5.16325 38.5852 0 - vertex 5.10332 38.557 0 - endloop - endfacet - facet normal 0.426773 -0.904359 0 - outer loop - vertex 5.16325 38.5852 0 - vertex 5.10332 38.557 -0.2 - vertex 5.16325 38.5852 -0.2 - endloop - endfacet - facet normal -0.22248 -0.974937 0 - outer loop - vertex 5.16325 38.5852 -0.2 - vertex 5.20457 38.5758 0 - vertex 5.16325 38.5852 0 - endloop - endfacet - facet normal -0.22248 -0.974937 -0 - outer loop - vertex 5.20457 38.5758 0 - vertex 5.16325 38.5852 -0.2 - vertex 5.20457 38.5758 -0.2 - endloop - endfacet - facet normal -0.944948 0.327219 0 - outer loop - vertex 7.1242 19.0144 -0.2 - vertex 7.15267 19.0966 0 - vertex 7.15267 19.0966 -0.2 - endloop - endfacet - facet normal -0.944948 0.327219 0 - outer loop - vertex 7.15267 19.0966 0 - vertex 7.1242 19.0144 -0.2 - vertex 7.1242 19.0144 0 - endloop - endfacet - facet normal -0.999677 -0.0254292 0 - outer loop - vertex 7.1273 18.8927 -0.2 - vertex 7.1242 19.0144 0 - vertex 7.1242 19.0144 -0.2 - endloop - endfacet - facet normal -0.999677 -0.0254292 0 - outer loop - vertex 7.1242 19.0144 0 - vertex 7.1273 18.8927 -0.2 - vertex 7.1273 18.8927 0 - endloop - endfacet - facet normal -0.971548 -0.236844 0 - outer loop - vertex 7.16351 18.7442 -0.2 - vertex 7.1273 18.8927 0 - vertex 7.1273 18.8927 -0.2 - endloop - endfacet - facet normal -0.971548 -0.236844 0 - outer loop - vertex 7.1273 18.8927 0 - vertex 7.16351 18.7442 -0.2 - vertex 7.16351 18.7442 0 - endloop - endfacet - facet normal -0.922269 -0.38655 0 - outer loop - vertex 7.29207 18.4374 -0.2 - vertex 7.16351 18.7442 0 - vertex 7.16351 18.7442 -0.2 - endloop - endfacet - facet normal -0.922269 -0.38655 0 - outer loop - vertex 7.16351 18.7442 0 - vertex 7.29207 18.4374 -0.2 - vertex 7.29207 18.4374 0 - endloop - endfacet - facet normal -0.894309 -0.44745 0 - outer loop - vertex 7.49889 18.0241 -0.2 - vertex 7.29207 18.4374 0 - vertex 7.29207 18.4374 -0.2 - endloop - endfacet - facet normal -0.894309 -0.44745 0 - outer loop - vertex 7.29207 18.4374 0 - vertex 7.49889 18.0241 -0.2 - vertex 7.49889 18.0241 0 - endloop - endfacet - facet normal -0.872312 -0.488949 0 - outer loop - vertex 8.03973 17.0592 -0.2 - vertex 7.49889 18.0241 0 - vertex 7.49889 18.0241 -0.2 - endloop - endfacet - facet normal -0.872312 -0.488949 0 - outer loop - vertex 7.49889 18.0241 0 - vertex 8.03973 17.0592 -0.2 - vertex 8.03973 17.0592 0 - endloop - endfacet - facet normal -0.84697 -0.53164 0 - outer loop - vertex 8.57086 16.213 -0.2 - vertex 8.03973 17.0592 0 - vertex 8.03973 17.0592 -0.2 - endloop - endfacet - facet normal -0.84697 -0.53164 0 - outer loop - vertex 8.03973 17.0592 0 - vertex 8.57086 16.213 -0.2 - vertex 8.57086 16.213 0 - endloop - endfacet - facet normal -0.805848 -0.592122 0 - outer loop - vertex 8.76553 15.9481 -0.2 - vertex 8.57086 16.213 0 - vertex 8.57086 16.213 -0.2 - endloop - endfacet - facet normal -0.805848 -0.592122 0 - outer loop - vertex 8.57086 16.213 0 - vertex 8.76553 15.9481 -0.2 - vertex 8.76553 15.9481 0 - endloop - endfacet - facet normal -0.732738 -0.680511 0 - outer loop - vertex 8.83337 15.875 -0.2 - vertex 8.76553 15.9481 0 - vertex 8.76553 15.9481 -0.2 - endloop - endfacet - facet normal -0.732738 -0.680511 0 - outer loop - vertex 8.76553 15.9481 0 - vertex 8.83337 15.875 -0.2 - vertex 8.83337 15.875 0 - endloop - endfacet - facet normal -0.509392 -0.860535 0 - outer loop - vertex 8.83337 15.875 -0.2 - vertex 8.87708 15.8492 0 - vertex 8.83337 15.875 0 - endloop - endfacet - facet normal -0.509392 -0.860535 -0 - outer loop - vertex 8.87708 15.8492 0 - vertex 8.83337 15.875 -0.2 - vertex 8.87708 15.8492 -0.2 - endloop - endfacet - facet normal 0.216566 -0.976268 0 - outer loop - vertex 8.87708 15.8492 -0.2 - vertex 8.99158 15.8746 0 - vertex 8.87708 15.8492 0 - endloop - endfacet - facet normal 0.216566 -0.976268 0 - outer loop - vertex 8.99158 15.8746 0 - vertex 8.87708 15.8492 -0.2 - vertex 8.99158 15.8746 -0.2 - endloop - endfacet - facet normal 0.333607 -0.942712 0 - outer loop - vertex 8.99158 15.8746 -0.2 - vertex 9.19116 15.9452 0 - vertex 8.99158 15.8746 0 - endloop - endfacet - facet normal 0.333607 -0.942712 0 - outer loop - vertex 9.19116 15.9452 0 - vertex 8.99158 15.8746 -0.2 - vertex 9.19116 15.9452 -0.2 - endloop - endfacet - facet normal 0.395815 -0.91833 0 - outer loop - vertex 9.19116 15.9452 -0.2 - vertex 9.73318 16.1788 0 - vertex 9.19116 15.9452 0 - endloop - endfacet - facet normal 0.395815 -0.91833 0 - outer loop - vertex 9.73318 16.1788 0 - vertex 9.19116 15.9452 -0.2 - vertex 9.73318 16.1788 -0.2 + vertex 9.72145 16.1788 0 + vertex 8.86535 15.8492 -3 + vertex 9.72145 16.1788 -3 endloop endfacet facet normal 0.425917 -0.904762 0 outer loop - vertex 9.73318 16.1788 -0.2 - vertex 10.4375 16.5104 0 - vertex 9.73318 16.1788 0 + vertex 9.72145 16.1788 -3 + vertex 10.4258 16.5104 0 + vertex 9.72145 16.1788 0 endloop endfacet facet normal 0.425917 -0.904762 0 outer loop - vertex 10.4375 16.5104 0 - vertex 9.73318 16.1788 -0.2 - vertex 10.4375 16.5104 -0.2 + vertex 10.4258 16.5104 0 + vertex 9.72145 16.1788 -3 + vertex 10.4258 16.5104 -3 endloop endfacet facet normal 0.716732 0.697349 0 outer loop - vertex 10.4375 16.5104 0 - vertex 9.77546 17.1908 -0.2 - vertex 9.77546 17.1908 0 + vertex 10.4258 16.5104 0 + vertex 9.76373 17.1908 -3 + vertex 9.76373 17.1908 0 endloop endfacet facet normal 0.716732 0.697349 0 outer loop - vertex 9.77546 17.1908 -0.2 - vertex 10.4375 16.5104 0 - vertex 10.4375 16.5104 -0.2 + vertex 9.76373 17.1908 -3 + vertex 10.4258 16.5104 0 + vertex 10.4258 16.5104 -3 endloop endfacet - facet normal 0.695522 0.718505 -0 + facet normal 0.65174 0.758443 -0 outer loop - vertex 9.77546 17.1908 -0.2 - vertex 9.46246 17.4938 0 - vertex 9.77546 17.1908 0 + vertex 9.76373 17.1908 -3 + vertex 8.30319 18.4459 0 + vertex 9.76373 17.1908 0 endloop endfacet - facet normal 0.695522 0.718505 0 + facet normal 0.65174 0.758443 0 outer loop - vertex 9.46246 17.4938 0 - vertex 9.77546 17.1908 -0.2 - vertex 9.46246 17.4938 -0.2 + vertex 8.30319 18.4459 0 + vertex 9.76373 17.1908 -3 + vertex 8.30319 18.4459 -3 endloop endfacet - facet normal 0.663067 0.74856 -0 + facet normal 0.52501 0.851096 -0 outer loop - vertex 9.46246 17.4938 -0.2 - vertex 9.09841 17.8163 0 - vertex 9.46246 17.4938 0 + vertex 8.30319 18.4459 -3 + vertex 7.1994 19.1268 0 + vertex 8.30319 18.4459 0 endloop endfacet - facet normal 0.663067 0.74856 0 + facet normal 0.52501 0.851096 0 outer loop - vertex 9.09841 17.8163 0 - vertex 9.46246 17.4938 -0.2 - vertex 9.09841 17.8163 -0.2 + vertex 7.1994 19.1268 0 + vertex 8.30319 18.4459 -3 + vertex 7.1994 19.1268 -3 endloop endfacet - facet normal 0.6264 0.779502 -0 + facet normal -0.992345 0.123496 0 outer loop - vertex 9.09841 17.8163 -0.2 - vertex 8.31493 18.4459 0 - vertex 9.09841 17.8163 0 + vertex 7.15178 18.7442 -3 + vertex 7.1994 19.1268 0 + vertex 7.1994 19.1268 -3 endloop endfacet - facet normal 0.6264 0.779502 0 + facet normal -0.992345 0.123496 0 outer loop - vertex 8.31493 18.4459 0 - vertex 9.09841 17.8163 -0.2 - vertex 8.31493 18.4459 -0.2 + vertex 7.1994 19.1268 0 + vertex 7.15178 18.7442 -3 + vertex 7.15178 18.7442 0 endloop endfacet - facet normal 0.58921 0.80798 -0 + facet normal -0.148843 0.988861 0 outer loop - vertex 8.31493 18.4459 -0.2 - vertex 7.9444 18.7161 0 - vertex 8.31493 18.4459 0 + vertex -16.6107 24.7853 -3 + vertex -20.4324 24.2101 0 + vertex -16.6107 24.7853 0 endloop endfacet - facet normal 0.58921 0.80798 0 + facet normal -0.148843 0.988861 0 outer loop - vertex 7.9444 18.7161 0 - vertex 8.31493 18.4459 -0.2 - vertex 7.9444 18.7161 -0.2 + vertex -20.4324 24.2101 0 + vertex -16.6107 24.7853 -3 + vertex -20.4324 24.2101 -3 endloop endfacet - facet normal 0.554709 0.832044 -0 + facet normal -0.117787 0.993039 0 outer loop - vertex 7.9444 18.7161 -0.2 - vertex 7.62063 18.9319 0 - vertex 7.9444 18.7161 0 + vertex -20.4324 24.2101 -3 + vertex -23.3809 23.8604 0 + vertex -20.4324 24.2101 0 endloop endfacet - facet normal 0.554709 0.832044 0 + facet normal -0.117787 0.993039 0 outer loop - vertex 7.62063 18.9319 0 - vertex 7.9444 18.7161 -0.2 - vertex 7.62063 18.9319 -0.2 - endloop - endfacet - facet normal 0.492817 0.870133 -0 - outer loop - vertex 7.62063 18.9319 -0.2 - vertex 7.36805 19.075 0 - vertex 7.62063 18.9319 0 - endloop - endfacet - facet normal 0.492817 0.870133 0 - outer loop - vertex 7.36805 19.075 0 - vertex 7.62063 18.9319 -0.2 - vertex 7.36805 19.075 -0.2 - endloop - endfacet - facet normal 0.313373 0.94963 -0 - outer loop - vertex 7.36805 19.075 -0.2 - vertex 7.21113 19.1268 0 - vertex 7.36805 19.075 0 - endloop - endfacet - facet normal 0.313373 0.94963 0 - outer loop - vertex 7.21113 19.1268 0 - vertex 7.36805 19.075 -0.2 - vertex 7.21113 19.1268 -0.2 - endloop - endfacet - facet normal -0.458832 0.888523 0 - outer loop - vertex 7.21113 19.1268 -0.2 - vertex 7.15267 19.0966 0 - vertex 7.21113 19.1268 0 - endloop - endfacet - facet normal -0.458832 0.888523 0 - outer loop - vertex 7.15267 19.0966 0 - vertex 7.21113 19.1268 -0.2 - vertex 7.15267 19.0966 -0.2 - endloop - endfacet - facet normal -0.0478819 0.998853 0 - outer loop - vertex -14.6988 24.986 -0.2 - vertex -15.4289 24.9511 0 - vertex -14.6988 24.986 0 - endloop - endfacet - facet normal -0.0478819 0.998853 0 - outer loop - vertex -15.4289 24.9511 0 - vertex -14.6988 24.986 -0.2 - vertex -15.4289 24.9511 -0.2 - endloop - endfacet - facet normal -0.102501 0.994733 0 - outer loop - vertex -15.4289 24.9511 -0.2 - vertex -16.0762 24.8844 0 - vertex -15.4289 24.9511 0 - endloop - endfacet - facet normal -0.102501 0.994733 0 - outer loop - vertex -16.0762 24.8844 0 - vertex -15.4289 24.9511 -0.2 - vertex -16.0762 24.8844 -0.2 - endloop - endfacet - facet normal -0.186067 0.982537 0 - outer loop - vertex -16.0762 24.8844 -0.2 - vertex -16.599 24.7853 0 - vertex -16.0762 24.8844 0 - endloop - endfacet - facet normal -0.186067 0.982537 0 - outer loop - vertex -16.599 24.7853 0 - vertex -16.0762 24.8844 -0.2 - vertex -16.599 24.7853 -0.2 - endloop - endfacet - facet normal -0.197458 0.980311 0 - outer loop - vertex -16.599 24.7853 -0.2 - vertex -17.1707 24.6702 0 - vertex -16.599 24.7853 0 - endloop - endfacet - facet normal -0.197458 0.980311 0 - outer loop - vertex -17.1707 24.6702 0 - vertex -16.599 24.7853 -0.2 - vertex -17.1707 24.6702 -0.2 - endloop - endfacet - facet normal -0.159115 0.98726 0 - outer loop - vertex -17.1707 24.6702 -0.2 - vertex -18.0818 24.5233 0 - vertex -17.1707 24.6702 0 - endloop - endfacet - facet normal -0.159115 0.98726 0 - outer loop - vertex -18.0818 24.5233 0 - vertex -17.1707 24.6702 -0.2 - vertex -18.0818 24.5233 -0.2 - endloop - endfacet - facet normal -0.140489 0.990082 0 - outer loop - vertex -18.0818 24.5233 -0.2 - vertex -19.207 24.3637 0 - vertex -18.0818 24.5233 0 - endloop - endfacet - facet normal -0.140489 0.990082 0 - outer loop - vertex -19.207 24.3637 0 - vertex -18.0818 24.5233 -0.2 - vertex -19.207 24.3637 -0.2 - endloop - endfacet - facet normal -0.125539 0.992089 0 - outer loop - vertex -19.207 24.3637 -0.2 - vertex -20.4207 24.2101 0 - vertex -19.207 24.3637 0 - endloop - endfacet - facet normal -0.125539 0.992089 0 - outer loop - vertex -20.4207 24.2101 0 - vertex -19.207 24.3637 -0.2 - vertex -20.4207 24.2101 -0.2 - endloop - endfacet - facet normal -0.117788 0.993039 0 - outer loop - vertex -20.4207 24.2101 -0.2 - vertex -23.3692 23.8604 0 - vertex -20.4207 24.2101 0 - endloop - endfacet - facet normal -0.117788 0.993039 0 - outer loop - vertex -23.3692 23.8604 0 - vertex -20.4207 24.2101 -0.2 - vertex -23.3692 23.8604 -0.2 + vertex -23.3809 23.8604 0 + vertex -20.4324 24.2101 -3 + vertex -23.3809 23.8604 -3 endloop endfacet facet normal -0.645441 -0.76381 0 outer loop - vertex -23.3692 23.8604 -0.2 - vertex -22.6524 23.2546 0 - vertex -23.3692 23.8604 0 + vertex -23.3809 23.8604 -3 + vertex -22.6641 23.2546 0 + vertex -23.3809 23.8604 0 endloop endfacet facet normal -0.645441 -0.76381 -0 outer loop - vertex -22.6524 23.2546 0 - vertex -23.3692 23.8604 -0.2 - vertex -22.6524 23.2546 -0.2 + vertex -22.6641 23.2546 0 + vertex -23.3809 23.8604 -3 + vertex -22.6641 23.2546 -3 endloop endfacet - facet normal -0.595678 -0.803224 0 + facet normal -0.546303 -0.837588 0 outer loop - vertex -22.6524 23.2546 -0.2 - vertex -22.3422 23.0246 0 - vertex -22.6524 23.2546 0 + vertex -22.6641 23.2546 -3 + vertex -22.0432 22.8497 0 + vertex -22.6641 23.2546 0 endloop endfacet - facet normal -0.595678 -0.803224 -0 + facet normal -0.546303 -0.837588 -0 outer loop - vertex -22.3422 23.0246 0 - vertex -22.6524 23.2546 -0.2 - vertex -22.3422 23.0246 -0.2 + vertex -22.0432 22.8497 0 + vertex -22.6641 23.2546 -3 + vertex -22.0432 22.8497 -3 endloop endfacet - facet normal -0.490603 -0.871383 0 + facet normal -0.238224 -0.97121 0 outer loop - vertex -22.3422 23.0246 -0.2 - vertex -22.0315 22.8497 0 - vertex -22.3422 23.0246 0 + vertex -22.0432 22.8497 -3 + vertex -21.5591 22.7309 0 + vertex -22.0432 22.8497 0 endloop endfacet - facet normal -0.490603 -0.871383 -0 + facet normal -0.238224 -0.97121 -0 outer loop - vertex -22.0315 22.8497 0 - vertex -22.3422 23.0246 -0.2 - vertex -22.0315 22.8497 -0.2 + vertex -21.5591 22.7309 0 + vertex -22.0432 22.8497 -3 + vertex -21.5591 22.7309 -3 endloop endfacet - facet normal -0.350196 -0.936677 0 + facet normal 0.148545 -0.988906 0 outer loop - vertex -22.0315 22.8497 -0.2 - vertex -21.755 22.7463 0 - vertex -22.0315 22.8497 0 + vertex -21.5591 22.7309 -3 + vertex -19.3275 23.0662 0 + vertex -21.5591 22.7309 0 endloop endfacet - facet normal -0.350196 -0.936677 -0 + facet normal 0.148545 -0.988906 0 outer loop - vertex -21.755 22.7463 0 - vertex -22.0315 22.8497 -0.2 - vertex -21.755 22.7463 -0.2 + vertex -19.3275 23.0662 0 + vertex -21.5591 22.7309 -3 + vertex -19.3275 23.0662 -3 endloop endfacet - facet normal -0.169545 -0.985522 0 + facet normal 0.149712 -0.98873 0 outer loop - vertex -21.755 22.7463 -0.2 - vertex -21.6404 22.7266 0 - vertex -21.755 22.7463 0 + vertex -19.3275 23.0662 -3 + vertex -14.1729 23.8467 0 + vertex -19.3275 23.0662 0 endloop endfacet - facet normal -0.169545 -0.985522 -0 + facet normal 0.149712 -0.98873 0 outer loop - vertex -21.6404 22.7266 0 - vertex -21.755 22.7463 -0.2 - vertex -21.6404 22.7266 -0.2 - endloop - endfacet - facet normal 0.0467747 -0.998905 0 - outer loop - vertex -21.6404 22.7266 -0.2 - vertex -21.5474 22.7309 0 - vertex -21.6404 22.7266 0 - endloop - endfacet - facet normal 0.0467747 -0.998905 0 - outer loop - vertex -21.5474 22.7309 0 - vertex -21.6404 22.7266 -0.2 - vertex -21.5474 22.7309 -0.2 - endloop - endfacet - facet normal 0.160131 -0.987096 0 - outer loop - vertex -21.5474 22.7309 -0.2 - vertex -20.7318 22.8633 0 - vertex -21.5474 22.7309 0 - endloop - endfacet - facet normal 0.160131 -0.987096 0 - outer loop - vertex -20.7318 22.8633 0 - vertex -21.5474 22.7309 -0.2 - vertex -20.7318 22.8633 -0.2 - endloop - endfacet - facet normal 0.141843 -0.989889 0 - outer loop - vertex -20.7318 22.8633 -0.2 - vertex -19.3158 23.0662 0 - vertex -20.7318 22.8633 0 - endloop - endfacet - facet normal 0.141843 -0.989889 0 - outer loop - vertex -19.3158 23.0662 0 - vertex -20.7318 22.8633 -0.2 - vertex -19.3158 23.0662 -0.2 - endloop - endfacet - facet normal 0.145154 -0.989409 0 - outer loop - vertex -19.3158 23.0662 -0.2 - vertex -17.0412 23.3999 0 - vertex -19.3158 23.0662 0 - endloop - endfacet - facet normal 0.145154 -0.989409 0 - outer loop - vertex -17.0412 23.3999 0 - vertex -19.3158 23.0662 -0.2 - vertex -17.0412 23.3999 -0.2 - endloop - endfacet - facet normal 0.153306 -0.988179 0 - outer loop - vertex -17.0412 23.3999 -0.2 - vertex -14.1612 23.8467 0 - vertex -17.0412 23.3999 0 - endloop - endfacet - facet normal 0.153306 -0.988179 0 - outer loop - vertex -14.1612 23.8467 0 - vertex -17.0412 23.3999 -0.2 - vertex -14.1612 23.8467 -0.2 + vertex -14.1729 23.8467 0 + vertex -19.3275 23.0662 -3 + vertex -14.1729 23.8467 -3 endloop endfacet facet normal 0.152324 -0.988331 0 outer loop - vertex -14.1612 23.8467 -0.2 - vertex -10.5711 24.4 0 - vertex -14.1612 23.8467 0 + vertex -14.1729 23.8467 -3 + vertex -10.5829 24.4 0 + vertex -14.1729 23.8467 0 endloop endfacet facet normal 0.152324 -0.988331 0 outer loop - vertex -10.5711 24.4 0 - vertex -14.1612 23.8467 -0.2 - vertex -10.5711 24.4 -0.2 + vertex -10.5829 24.4 0 + vertex -14.1729 23.8467 -3 + vertex -10.5829 24.4 -3 endloop endfacet - facet normal 0.28937 -0.957217 0 + facet normal 0.753595 0.657339 0 outer loop - vertex -10.5711 24.4 -0.2 - vertex -10.5349 24.4109 0 - vertex -10.5711 24.4 0 + vertex -10.5829 24.4 0 + vertex -10.6709 24.5009 -3 + vertex -10.6709 24.5009 0 endloop endfacet - facet normal 0.28937 -0.957217 0 + facet normal 0.753595 0.657339 0 outer loop - vertex -10.5349 24.4109 0 - vertex -10.5711 24.4 -0.2 - vertex -10.5349 24.4109 -0.2 + vertex -10.6709 24.5009 -3 + vertex -10.5829 24.4 0 + vertex -10.5829 24.4 -3 endloop endfacet - facet normal 0.978613 0.20571 0 + facet normal 0.323243 0.946316 -0 outer loop - vertex -10.5349 24.4109 0 - vertex -10.5394 24.4322 -0.2 - vertex -10.5394 24.4322 0 + vertex -10.6709 24.5009 -3 + vertex -11.2742 24.7069 0 + vertex -10.6709 24.5009 0 endloop endfacet - facet normal 0.978613 0.20571 0 + facet normal 0.323243 0.946316 0 outer loop - vertex -10.5394 24.4322 -0.2 - vertex -10.5349 24.4109 0 - vertex -10.5349 24.4109 -0.2 + vertex -11.2742 24.7069 0 + vertex -10.6709 24.5009 -3 + vertex -11.2742 24.7069 -3 endloop endfacet - facet normal 0.497201 0.867635 -0 + facet normal 0.105601 0.994409 -0 outer loop - vertex -10.5394 24.4322 -0.2 - vertex -10.6591 24.5009 0 - vertex -10.5394 24.4322 0 + vertex -11.2742 24.7069 -3 + vertex -13.9393 24.99 0 + vertex -11.2742 24.7069 0 endloop endfacet - facet normal 0.497201 0.867635 0 + facet normal 0.105601 0.994409 0 outer loop - vertex -10.6591 24.5009 0 - vertex -10.5394 24.4322 -0.2 - vertex -10.6591 24.5009 -0.2 + vertex -13.9393 24.99 0 + vertex -11.2742 24.7069 -3 + vertex -13.9393 24.99 -3 endloop endfacet - facet normal 0.356744 0.934202 -0 + facet normal -0.0763677 0.99708 0 outer loop - vertex -10.6591 24.5009 -0.2 - vertex -10.9077 24.5958 0 - vertex -10.6591 24.5009 0 + vertex -13.9393 24.99 -3 + vertex -16.6107 24.7853 0 + vertex -13.9393 24.99 0 endloop endfacet - facet normal 0.356744 0.934202 0 + facet normal -0.0763677 0.99708 0 outer loop - vertex -10.9077 24.5958 0 - vertex -10.6591 24.5009 -0.2 - vertex -10.9077 24.5958 -0.2 - endloop - endfacet - facet normal 0.299009 0.95425 -0 - outer loop - vertex -10.9077 24.5958 -0.2 - vertex -11.2625 24.7069 0 - vertex -10.9077 24.5958 0 - endloop - endfacet - facet normal 0.299009 0.95425 0 - outer loop - vertex -11.2625 24.7069 0 - vertex -10.9077 24.5958 -0.2 - vertex -11.2625 24.7069 -0.2 - endloop - endfacet - facet normal 0.214726 0.976674 -0 - outer loop - vertex -11.2625 24.7069 -0.2 - vertex -11.7825 24.8213 0 - vertex -11.2625 24.7069 0 - endloop - endfacet - facet normal 0.214726 0.976674 0 - outer loop - vertex -11.7825 24.8213 0 - vertex -11.2625 24.7069 -0.2 - vertex -11.7825 24.8213 -0.2 - endloop - endfacet - facet normal 0.131639 0.991298 -0 - outer loop - vertex -11.7825 24.8213 -0.2 - vertex -12.4277 24.907 0 - vertex -11.7825 24.8213 0 - endloop - endfacet - facet normal 0.131639 0.991298 0 - outer loop - vertex -12.4277 24.907 0 - vertex -11.7825 24.8213 -0.2 - vertex -12.4277 24.907 -0.2 - endloop - endfacet - facet normal 0.0771921 0.997016 -0 - outer loop - vertex -12.4277 24.907 -0.2 - vertex -13.1566 24.9634 0 - vertex -12.4277 24.907 0 - endloop - endfacet - facet normal 0.0771921 0.997016 0 - outer loop - vertex -13.1566 24.9634 0 - vertex -12.4277 24.907 -0.2 - vertex -13.1566 24.9634 -0.2 - endloop - endfacet - facet normal 0.0344425 0.999407 -0 - outer loop - vertex -13.1566 24.9634 -0.2 - vertex -13.9275 24.99 0 - vertex -13.1566 24.9634 0 - endloop - endfacet - facet normal 0.0344425 0.999407 0 - outer loop - vertex -13.9275 24.99 0 - vertex -13.1566 24.9634 -0.2 - vertex -13.9275 24.99 -0.2 - endloop - endfacet - facet normal -0.00506693 0.999987 0 - outer loop - vertex -13.9275 24.99 -0.2 - vertex -14.6988 24.986 0 - vertex -13.9275 24.99 0 - endloop - endfacet - facet normal -0.00506693 0.999987 0 - outer loop - vertex -14.6988 24.986 0 - vertex -13.9275 24.99 -0.2 - vertex -14.6988 24.986 -0.2 + vertex -16.6107 24.7853 0 + vertex -13.9393 24.99 -3 + vertex -16.6107 24.7853 -3 endloop endfacet facet normal -1 0 0 @@ -44003,14716 +14841,4972 @@ solid OpenSCAD_Model endfacet facet normal 0 0 1 outer loop - vertex -28.0919 -25.8829 0 - vertex -27.8988 -26.2055 0 - vertex -27.9236 -26.0946 0 + vertex -28.5713 -25.7117 0 + vertex -27.9105 -26.2055 0 + vertex -28.1036 -25.8829 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -27.8988 -26.2055 0 - vertex -28.2888 -25.7968 0 - vertex -27.8924 -26.5154 0 + vertex -32.142 -25.4759 0 + vertex -28.1838 -28.4809 0 + vertex -28.5713 -25.7117 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -28.0919 -25.8829 0 - vertex -27.9236 -26.0946 0 - vertex -27.9636 -26.0069 0 + vertex -27.9105 -26.2055 0 + vertex -28.5713 -25.7117 0 + vertex -28.1838 -28.4809 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -28.0919 -25.8829 0 - vertex -27.9636 -26.0069 0 - vertex -28.0195 -25.9379 0 + vertex -35.9073 -13.512 0 + vertex -35.4871 -14.1281 0 + vertex -35.5739 -13.718 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -27.8988 -26.2055 0 - vertex -28.0919 -25.8829 0 - vertex -28.2888 -25.7968 0 + vertex -36.5262 -13.4531 0 + vertex -35.4871 -14.1281 0 + vertex -35.9073 -13.512 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -28.5596 -25.7117 0 - vertex -27.8924 -26.5154 0 - vertex -28.2888 -25.7968 0 + vertex -35.4871 -14.1281 0 + vertex -36.5262 -13.4531 0 + vertex -35.6081 -14.799 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -27.8924 -26.5154 0 - vertex -28.5596 -25.7117 0 - vertex -27.9393 -26.9734 0 + vertex -37.2393 -13.2576 0 + vertex -35.6081 -14.799 0 + vertex -36.5262 -13.4531 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -28.7678 -25.6646 0 - vertex -27.9393 -26.9734 0 - vertex -28.5596 -25.7117 0 + vertex -35.6081 -14.799 0 + vertex -37.2393 -13.2576 0 + vertex -37.0548 -18.7102 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -22.9103 -14.3386 0 - vertex -21.5729 -16.4428 0 - vertex -21.5693 -15.5508 0 + vertex -37.5366 -12.7854 0 + vertex -37.0548 -18.7102 0 + vertex -37.2393 -13.2576 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -22.1296 -14.5577 0 - vertex -21.5693 -15.5508 0 - vertex -21.5879 -15.2616 0 + vertex -38.8382 24.6102 0 + vertex -37.3951 -12.1929 0 + vertex -38.3729 23.836 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.8956 -13.512 0 - vertex -35.4754 -14.1281 0 - vertex -35.4904 -13.894 0 + vertex -39.1303 25.4589 0 + vertex -37.3951 -12.1929 0 + vertex -38.8382 24.6102 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.6956 -13.593 0 - vertex -35.4904 -13.894 0 - vertex -35.5189 -13.7992 0 + vertex -37.3951 -12.1929 0 + vertex -39.1303 25.4589 0 + vertex -37.5366 -12.7854 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.6956 -13.593 0 - vertex -35.5189 -13.7992 0 - vertex -35.5622 -13.718 0 + vertex -37.5366 -12.7854 0 + vertex -39.9072 -25.4747 0 + vertex -37.0548 -18.7102 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.1669 -13.4677 0 - vertex -35.4754 -14.1281 0 - vertex -35.8956 -13.512 0 + vertex -47.8577 -36.863 0 + vertex -37.5366 -12.7854 0 + vertex -39.1303 25.4589 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.6956 -13.593 0 - vertex -35.5622 -13.718 0 - vertex -35.6209 -13.6496 0 + vertex -26.0224 24.2804 0 + vertex -26.0647 23.8437 0 + vertex -24.664 24.0122 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.4904 -13.894 0 - vertex -35.6956 -13.593 0 - vertex -35.8956 -13.512 0 + vertex -26.0224 24.2804 0 + vertex -27.3687 23.7586 0 + vertex -26.0647 23.8437 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.4754 -14.1281 0 - vertex -36.1669 -13.4677 0 - vertex -35.5123 -14.4274 0 + vertex -28.1365 24.9019 0 + vertex -27.3687 23.7586 0 + vertex -26.0224 24.2804 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.5145 -13.4531 0 - vertex -35.5123 -14.4274 0 - vertex -36.1669 -13.4677 0 + vertex -28.1365 24.9019 0 + vertex -28.4642 23.8513 0 + vertex -27.3687 23.7586 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.5123 -14.4274 0 - vertex -36.5145 -13.4531 0 - vertex -35.5964 -14.799 0 + vertex -28.1365 24.9019 0 + vertex -29.3958 24.13 0 + vertex -28.4642 23.8513 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.7305 -13.4387 0 - vertex -35.5964 -14.799 0 - vertex -36.5145 -13.4531 0 + vertex -29.9035 25.8898 0 + vertex -29.3958 24.13 0 + vertex -28.1365 24.9019 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.5964 -14.799 0 - vertex -36.7305 -13.4387 0 - vertex -35.7796 -15.3934 0 + vertex -29.9035 25.8898 0 + vertex -30.2081 24.6027 0 + vertex -29.3958 24.13 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.9216 -13.3997 0 - vertex -35.7796 -15.3934 0 - vertex -36.7305 -13.4387 0 + vertex -29.9035 25.8898 0 + vertex -30.8173 24.9813 0 + vertex -30.2081 24.6027 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.0874 -13.3385 0 - vertex -35.7796 -15.3934 0 - vertex -36.9216 -13.3997 0 + vertex -31.1793 25.0376 0 + vertex -29.9035 25.8898 0 + vertex -31.116 26.9038 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.7796 -15.3934 0 - vertex -37.0874 -13.3385 0 - vertex -36.0907 -16.2655 0 + vertex -29.9035 25.8898 0 + vertex -31.1793 25.0376 0 + vertex -30.8173 24.9813 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.2276 -13.2576 0 - vertex -36.0907 -16.2655 0 - vertex -37.0874 -13.3385 0 + vertex -31.2912 27.2229 0 + vertex -31.1793 25.0376 0 + vertex -31.116 26.9038 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.0907 -16.2655 0 - vertex -37.2276 -13.2576 0 - vertex -36.5163 -17.3821 0 + vertex -34.2108 23.023 0 + vertex -31.1793 25.0376 0 + vertex -31.2912 27.2229 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.3418 -13.1594 0 - vertex -36.5163 -17.3821 0 - vertex -37.2276 -13.2576 0 + vertex -11.5389 20.1801 0 + vertex -11.1208 19.5935 0 + vertex -10.9412 20.0018 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.4296 -13.0463 0 - vertex -36.5163 -17.3821 0 - vertex -37.3418 -13.1594 0 + vertex -11.5389 20.1801 0 + vertex -12.0133 18.8648 0 + vertex -11.1208 19.5935 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.5163 -17.3821 0 - vertex -37.4296 -13.0463 0 - vertex -37.0431 -18.7102 0 + vertex -12.9783 20.2187 0 + vertex -12.0133 18.8648 0 + vertex -11.5389 20.1801 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.4908 -12.9209 0 - vertex -37.0431 -18.7102 0 - vertex -37.4296 -13.0463 0 + vertex -12.9783 20.2187 0 + vertex -15.009 16.7116 0 + vertex -12.0133 18.8648 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -16.3196 19.9968 0 + vertex -15.009 16.7116 0 + vertex -12.9783 20.2187 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -38.3469 -21.8682 0 - vertex -37.4908 -12.9209 0 - vertex -37.5249 -12.7854 0 + vertex -16.3196 19.9968 0 + vertex -17.0754 15.711 0 + vertex -15.009 16.7116 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -20.1789 19.4139 0 + vertex -17.0754 15.711 0 + vertex -16.3196 19.9968 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.3834 -12.1929 0 - vertex -38.6203 24.2212 0 - vertex -37.4611 -12.3438 0 + vertex -17.0754 15.711 0 + vertex -20.1789 19.4139 0 + vertex -19.733 14.7364 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.4908 -12.9209 0 - vertex -38.3469 -21.8682 0 - vertex -37.0431 -18.7102 0 + vertex -20.1789 19.4139 0 + vertex -22.3118 14.0374 0 + vertex -19.733 14.7364 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -24.1572 19.0472 0 + vertex -22.3118 14.0374 0 + vertex -20.1789 19.4139 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -39.8955 -25.4747 0 - vertex -37.5249 -12.7854 0 - vertex -37.5315 -12.6425 0 + vertex -24.1572 19.0472 0 + vertex -24.873 13.6003 0 + vertex -22.3118 14.0374 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -27.5587 18.9414 0 + vertex -24.873 13.6003 0 + vertex -24.1572 19.0472 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -38.8265 24.6102 0 - vertex -37.4611 -12.3438 0 - vertex -38.6203 24.2212 0 + vertex -24.873 13.6003 0 + vertex -27.5587 18.9414 0 + vertex -27.4778 13.4117 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.4611 -12.3438 0 - vertex -38.8265 24.6102 0 - vertex -37.5104 -12.4945 0 + vertex -29.687 19.1409 0 + vertex -27.4778 13.4117 0 + vertex -27.5587 18.9414 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -39.0227 25.0923 0 - vertex -37.5104 -12.4945 0 - vertex -38.8265 24.6102 0 + vertex -29.687 19.1409 0 + vertex -29.9412 13.2465 0 + vertex -27.4778 13.4117 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -47.846 -36.863 0 - vertex -37.5104 -12.4945 0 - vertex -39.0227 25.0923 0 + vertex -29.687 19.1409 0 + vertex -30.3118 13.0393 0 + vertex -29.9412 13.2465 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -33.0651 20.3093 0 + vertex -30.3118 13.0393 0 + vertex -29.687 19.1409 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.3118 13.0393 0 + vertex -33.0651 20.3093 0 + vertex -30.3887 12.6783 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.2082 3.44442 0 + vertex 23.5966 4.95794 0 + vertex 23.3811 5.8089 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.5966 4.95794 0 + vertex 23.2082 3.44442 0 + vertex 23.5377 4.18291 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 22.8875 6.77518 0 + vertex 23.2082 3.44442 0 + vertex 23.3811 5.8089 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 16.0239 2.90744 0 + vertex 23.2082 3.44442 0 + vertex 22.8875 6.77518 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 16.0239 2.90744 0 + vertex 22.8875 6.77518 0 + vertex 21.7142 8.22365 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 47.2139 -19.2263 0 + vertex 26.9177 3.98634 0 + vertex 26.953 2.16551 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -47.7274 -36.6957 0 - vertex -37.5104 -12.4945 0 - vertex -47.846 -36.863 0 + vertex 26.9177 3.98634 0 + vertex 27.209 8.08714 0 + vertex 26.8985 6.51977 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 26.7235 1.18648 0 + vertex 38.4798 -20.1181 0 + vertex 26.8464 1.29842 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -47.846 -36.863 0 - vertex -39.0227 25.0923 0 - vertex -39.1186 25.4589 0 + vertex 26.9177 3.98634 0 + vertex 27.528 9.70386 0 + vertex 27.209 8.08714 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -117.5 117.5 0 - vertex -39.1186 25.4589 0 - vertex -39.13 25.5984 0 + vertex 38.4798 -20.1181 0 + vertex 26.7235 1.18648 0 + vertex 29.9429 -19.4981 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 29.9429 -19.4981 0 + vertex 26.7235 1.18648 0 + vertex 28.989 -19.2301 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 19.6777 -11.13 0 + vertex 28.989 -19.2301 0 + vertex 26.7235 1.18648 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.9081 -2.19366 0 + vertex 26.7235 1.18648 0 + vertex 26.5455 1.2697 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 28.989 -19.2301 0 + vertex 19.6777 -11.13 0 + vertex 27.8281 -19.1444 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.9858 2.16372 0 + vertex 26.5455 1.2697 0 + vertex 25.9977 1.96397 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 27.8281 -19.1444 0 + vertex 19.6777 -11.13 0 + vertex 26.5413 -19.2026 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 24.7523 2.4559 0 + vertex 25.9977 1.96397 0 + vertex 25.3153 2.68052 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 24.7523 2.4559 0 + vertex 25.3153 2.68052 0 + vertex 25.0347 2.67962 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 23.9858 2.16372 0 + vertex 25.9977 1.96397 0 + vertex 24.7523 2.4559 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 26.5455 1.2697 0 + vertex 23.9858 2.16372 0 + vertex 21.0968 -1.15452 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.0968 -1.15452 0 + vertex 23.9858 2.16372 0 + vertex 23.1222 1.97635 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 26.7235 1.18648 0 + vertex 20.9081 -2.19366 0 + vertex 20.4179 -3.0084 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.0282 0.220415 0 + vertex 23.1222 1.97635 0 + vertex 22.8505 1.9828 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.0282 0.220415 0 + vertex 22.8505 1.9828 0 + vertex 22.7784 2.30129 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.2082 3.44442 0 + vertex 16.0239 2.90744 0 + vertex 22.7784 2.30129 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 26.5455 1.2697 0 + vertex 21.0968 -1.15452 0 + vertex 20.9081 -2.19366 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 26.5413 -19.2026 0 + vertex 19.6777 -11.13 0 + vertex 25.4359 -19.4082 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.1222 1.97635 0 + vertex 21.0282 0.220415 0 + vertex 21.0968 -1.15452 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.3368 5.33522 0 + vertex 21.7142 8.22365 0 + vertex 19.7157 9.66569 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -47.5785 -36.5332 0 - vertex -37.5315 -12.6425 0 - vertex -47.7274 -36.6957 0 + vertex 19.4865 -0.127098 0 + vertex 22.7784 2.30129 0 + vertex 16.0239 2.90744 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -26.0107 24.2804 0 - vertex -26.053 23.8437 0 - vertex -24.6523 24.0122 0 + vertex 14.9551 7.69881 0 + vertex 19.7157 9.66569 0 + vertex 18.6847 10.137 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -26.5818 24.4056 0 - vertex -26.053 23.8437 0 - vertex -26.0107 24.2804 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.5818 24.4056 0 - vertex -26.7338 23.7794 0 - vertex -26.053 23.8437 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.1227 24.5501 0 - vertex -26.7338 23.7794 0 - vertex -26.5818 24.4056 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.1227 24.5501 0 - vertex -27.3569 23.7586 0 - vertex -26.7338 23.7794 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.636 24.7152 0 - vertex -27.3569 23.7586 0 - vertex -27.1227 24.5501 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.636 24.7152 0 - vertex -27.9279 23.7822 0 - vertex -27.3569 23.7586 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.1248 24.9019 0 - vertex -27.9279 23.7822 0 - vertex -27.636 24.7152 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.1248 24.9019 0 - vertex -28.4524 23.8513 0 - vertex -27.9279 23.7822 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.9359 23.9669 0 - vertex -28.1248 24.9019 0 - vertex -28.5919 25.1115 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.1248 24.9019 0 - vertex -28.9359 23.9669 0 - vertex -28.4524 23.8513 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.384 24.13 0 - vertex -28.5919 25.1115 0 - vertex -29.0402 25.3453 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.5919 25.1115 0 - vertex -29.384 24.13 0 - vertex -28.9359 23.9669 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.8023 24.3416 0 - vertex -29.0402 25.3453 0 - vertex -29.4725 25.6043 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0402 25.3453 0 - vertex -29.8023 24.3416 0 - vertex -29.384 24.13 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.5308 24.8328 0 - vertex -29.4725 25.6043 0 - vertex -29.8918 25.8898 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.4725 25.6043 0 - vertex -30.1964 24.6027 0 - vertex -29.8023 24.3416 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.4725 25.6043 0 - vertex -30.5308 24.8328 0 - vertex -30.1964 24.6027 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.8055 24.9813 0 - vertex -29.8918 25.8898 0 - vertex -30.6514 26.471 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.8918 25.8898 0 - vertex -30.8055 24.9813 0 - vertex -30.5308 24.8328 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.1676 25.0376 0 - vertex -30.6514 26.471 0 - vertex -30.9143 26.7038 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.6514 26.471 0 - vertex -31.0185 25.0493 0 - vertex -30.8055 24.9813 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.6514 26.471 0 - vertex -31.1012 25.0533 0 - vertex -31.0185 25.0493 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.1676 25.0376 0 - vertex -30.9143 26.7038 0 - vertex -31.1043 26.9038 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.6514 26.471 0 - vertex -31.1676 25.0376 0 - vertex -31.1012 25.0533 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.1043 26.9038 0 - vertex -31.2175 25.0021 0 - vertex -31.1676 25.0376 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2248 27.0754 0 - vertex -31.2175 25.0021 0 - vertex -31.1043 26.9038 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2248 27.0754 0 - vertex -31.2507 24.9472 0 - vertex -31.2175 25.0021 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.2082 23.4707 0 - vertex -31.2507 24.9472 0 - vertex -31.2248 27.0754 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.2082 23.4707 0 - vertex -31.2248 27.0754 0 - vertex -31.2795 27.2229 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.9294 20.0018 0 - vertex -10.9261 19.832 0 - vertex -10.904 19.9248 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.0035 20.0644 0 - vertex -10.9261 19.832 0 - vertex -10.9294 20.0018 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.9261 19.832 0 - vertex -11.0035 20.0644 0 - vertex -10.9948 19.7221 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.1271 20.114 0 - vertex -10.9948 19.7221 0 - vertex -11.0035 20.0644 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.9948 19.7221 0 - vertex -11.1271 20.114 0 - vertex -11.1091 19.5935 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.3013 20.1521 0 - vertex -11.1091 19.5935 0 - vertex -11.1271 20.114 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5271 20.1801 0 - vertex -11.1091 19.5935 0 - vertex -11.3013 20.1521 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.1091 19.5935 0 - vertex -11.5271 20.1801 0 - vertex -11.4702 19.2748 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.1376 20.2112 0 - vertex -11.4702 19.2748 0 - vertex -11.5271 20.1801 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.4702 19.2748 0 - vertex -12.1376 20.2112 0 - vertex -12.0016 18.8648 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.9665 20.2187 0 - vertex -12.0016 18.8648 0 - vertex -12.1376 20.2112 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.9665 20.2187 0 - vertex -13.8225 17.5152 0 - vertex -12.0016 18.8648 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.9037 20.2008 0 - vertex -13.8225 17.5152 0 - vertex -12.9665 20.2187 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.8461 20.153 0 - vertex -13.8225 17.5152 0 - vertex -13.9037 20.2008 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.8225 17.5152 0 - vertex -14.8461 20.153 0 - vertex -14.4648 17.0612 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.684 20.0825 0 - vertex -14.4648 17.0612 0 - vertex -14.8461 20.153 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.4648 17.0612 0 - vertex -15.684 20.0825 0 - vertex -14.9972 16.7116 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.3079 19.9967 0 - vertex -14.9972 16.7116 0 - vertex -15.684 20.0825 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.9972 16.7116 0 - vertex -16.3079 19.9967 0 - vertex -15.4716 16.4339 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.2235 19.8332 0 - vertex -15.4716 16.4339 0 - vertex -16.3079 19.9967 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.4716 16.4339 0 - vertex -17.2235 19.8332 0 - vertex -15.9397 16.1961 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.9397 16.1961 0 - vertex -17.2235 19.8332 0 - vertex -16.4531 15.9659 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.1791 19.6811 0 - vertex -16.4531 15.9659 0 - vertex -17.2235 19.8332 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.4531 15.9659 0 - vertex -18.1791 19.6811 0 - vertex -17.0637 15.711 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.1791 19.6811 0 - vertex -18.4061 15.1884 0 - vertex -17.0637 15.711 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -20.1671 19.4139 0 - vertex -18.4061 15.1884 0 - vertex -18.1791 19.6811 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.4061 15.1884 0 - vertex -20.1671 19.4139 0 - vertex -19.7213 14.7364 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.1849 19.2007 0 - vertex -19.7213 14.7364 0 - vertex -20.1671 19.4139 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.7213 14.7364 0 - vertex -22.1849 19.2007 0 - vertex -21.0167 14.3533 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.1849 19.2007 0 - vertex -22.3001 14.0374 0 - vertex -21.0167 14.3533 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.1455 19.0472 0 - vertex -22.3001 14.0374 0 - vertex -22.1849 19.2007 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.3001 14.0374 0 - vertex -24.1455 19.0472 0 - vertex -23.579 13.787 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.1455 19.0472 0 - vertex -24.8613 13.6003 0 - vertex -23.579 13.787 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -25.9619 18.9589 0 - vertex -24.8613 13.6003 0 - vertex -24.1455 19.0472 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.9619 18.9589 0 - vertex -26.1544 13.4758 0 - vertex -24.8613 13.6003 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.7887 18.9409 0 - vertex -26.1544 13.4758 0 - vertex -25.9619 18.9589 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.7887 18.9409 0 - vertex -27.4661 13.4117 0 - vertex -26.1544 13.4758 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.5469 18.9414 0 - vertex -27.4661 13.4117 0 - vertex -26.7887 18.9409 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2256 18.9609 0 - vertex -27.4661 13.4117 0 - vertex -27.5469 18.9414 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0548 13.353 0 - vertex -28.2256 18.9609 0 - vertex -28.8137 19.0002 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2256 18.9609 0 - vertex -29.0548 13.353 0 - vertex -27.4661 13.4117 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.3006 19.0599 0 - vertex -29.0548 13.353 0 - vertex -28.8137 19.0002 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.3006 19.0599 0 - vertex -29.5683 13.309 0 - vertex -29.0548 13.353 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.6752 19.1409 0 - vertex -29.5683 13.309 0 - vertex -29.3006 19.0599 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.6752 19.1409 0 - vertex -29.9294 13.2465 0 - vertex -29.5683 13.309 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.5811 19.4165 0 - vertex -29.9294 13.2465 0 - vertex -29.6752 19.1409 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.9294 13.2465 0 - vertex -30.5811 19.4165 0 - vertex -30.1646 13.1588 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.4466 19.7034 0 - vertex -30.1646 13.1588 0 - vertex -30.5811 19.4165 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1646 13.1588 0 - vertex -31.4466 19.7034 0 - vertex -30.2432 13.1034 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.271 20.0012 0 - vertex -30.2432 13.1034 0 - vertex -31.4466 19.7034 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.0533 20.3093 0 - vertex -30.3001 13.0393 0 - vertex -32.271 20.0012 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2432 13.1034 0 - vertex -32.271 20.0012 0 - vertex -30.3001 13.0393 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.6083 4.95794 0 - vertex 23.6129 4.5634 0 - vertex 23.6192 4.7586 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.6083 4.95794 0 - vertex 23.5897 4.3717 0 - vertex 23.6129 4.5634 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.6083 4.95794 0 - vertex 23.5494 4.18291 0 - vertex 23.5897 4.3717 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.4183 3.81156 0 - vertex 23.6083 4.95794 0 - vertex 23.5351 5.37146 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.6083 4.95794 0 - vertex 23.4183 3.81156 0 - vertex 23.5494 4.18291 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.22 3.44442 0 - vertex 23.5351 5.37146 0 - vertex 23.3929 5.8089 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.5351 5.37146 0 - vertex 23.22 3.44442 0 - vertex 23.4183 3.81156 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.1811 6.27516 0 - vertex 23.22 3.44442 0 - vertex 23.3929 5.8089 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.1811 6.27516 0 - vertex 23.0427 3.12896 0 - vertex 23.22 3.44442 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.8992 6.77518 0 - vertex 23.0427 3.12896 0 - vertex 23.1811 6.27516 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.6639 4.10009 0 - vertex 23.0427 3.12896 0 - vertex 22.8992 6.77518 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 16.0356 2.90743 0 - vertex 23.0427 3.12896 0 - vertex 15.6639 4.10009 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0427 3.12896 0 - vertex 16.0356 2.90743 0 - vertex 22.9115 2.82433 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6639 4.10009 0 - vertex 22.8992 6.77518 0 - vertex 22.6364 7.18064 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4871 9.26334 0 - vertex 26.9615 2.94949 0 - vertex 26.9647 2.16551 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9103 6.51977 0 - vertex 27.0158 7.30485 0 - vertex 26.9517 6.92758 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2208 8.08714 0 - vertex 26.9294 3.98634 0 - vertex 26.9615 2.94949 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0158 7.30485 0 - vertex 26.9103 6.51977 0 - vertex 26.8894 6.05157 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2208 8.08714 0 - vertex 26.8894 6.05157 0 - vertex 26.8871 5.49316 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.2208 8.08714 0 - vertex 26.8871 5.49316 0 - vertex 26.9294 3.98634 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.8032 1.21715 0 - vertex 41.156 -19.2119 0 - vertex 26.8581 1.29842 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.156 -19.2119 0 - vertex 26.8032 1.21715 0 - vertex 40.4513 -19.4233 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 40.4513 -19.4233 0 - vertex 26.8032 1.21715 0 - vertex 39.5298 -19.7361 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9647 2.16551 0 - vertex 27.5397 9.70386 0 - vertex 27.4871 9.26334 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9615 2.94949 0 - vertex 27.4871 9.26334 0 - vertex 27.4176 8.86037 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9615 2.94949 0 - vertex 27.4176 8.86037 0 - vertex 27.3295 8.47496 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.9615 2.94949 0 - vertex 27.3295 8.47496 0 - vertex 27.2208 8.08714 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 39.5298 -19.7361 0 - vertex 26.8032 1.21715 0 - vertex 29.9546 -19.4981 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8894 6.05157 0 - vertex 27.1048 7.68143 0 - vertex 27.0158 7.30485 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 27.1048 7.68143 0 - vertex 26.8894 6.05157 0 - vertex 27.2208 8.08714 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.9546 -19.4981 0 - vertex 26.8032 1.21715 0 - vertex 29.5013 -19.3404 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.5013 -19.3404 0 - vertex 26.8032 1.21715 0 - vertex 29.0007 -19.2301 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.7352 1.18648 0 - vertex 29.0007 -19.2301 0 - vertex 26.8032 1.21715 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.0007 -19.2301 0 - vertex 26.7352 1.18648 0 - vertex 28.4483 -19.1654 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.6819 -11.0243 0 - vertex 28.4483 -19.1654 0 - vertex 26.7352 1.18648 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.4483 -19.1654 0 - vertex 19.6819 -11.0243 0 - vertex 27.8398 -19.1444 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9199 -2.19366 0 - vertex 26.7352 1.18648 0 - vertex 26.6535 1.20459 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1085 -1.15452 0 - vertex 26.6535 1.20459 0 - vertex 26.5572 1.2697 0 + vertex 22.7784 2.30129 0 + vertex 19.4865 -0.127098 0 + vertex 21.0282 0.220415 0 endloop endfacet facet normal -0 -0 1 outer loop - vertex 19.6895 -11.13 0 - vertex 27.8398 -19.1444 0 - vertex 19.6819 -11.0243 0 + vertex 16.8564 0.883682 0 + vertex 19.4865 -0.127098 0 + vertex 16.0239 2.90744 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 23.9975 2.16372 0 - vertex 26.5572 1.2697 0 - vertex 26.4455 1.37999 0 + vertex 14.9551 7.69881 0 + vertex 18.6847 10.137 0 + vertex 17.337 10.3363 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.2201 2.19262 0 - vertex 26.4455 1.37999 0 - vertex 26.3175 1.53367 0 + vertex 19.4865 -0.127098 0 + vertex 16.8564 0.883682 0 + vertex 18.2674 -0.466912 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.4388 2.25734 0 - vertex 26.3175 1.53367 0 - vertex 26.0094 1.96397 0 + vertex 18.2674 -0.466912 0 + vertex 16.8564 0.883682 0 + vertex 17.6745 -0.267811 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 27.8398 -19.1444 0 - vertex 19.6895 -11.13 0 - vertex 27.1629 -19.1581 0 + vertex 15.3572 9.74689 0 + vertex 17.337 10.3363 0 + vertex 15.9933 10.3315 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.6285 2.34829 0 - vertex 26.0094 1.96397 0 - vertex 25.8138 2.23679 0 + vertex 15.3572 9.74689 0 + vertex 15.9933 10.3315 0 + vertex 15.6762 10.1383 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.764 2.4559 0 - vertex 25.8138 2.23679 0 - vertex 25.6376 2.44612 0 + vertex 14.9426 8.95486 0 + vertex 17.337 10.3363 0 + vertex 15.3572 9.74689 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.7142 8.22365 0 + vertex 15.3368 5.33522 0 + vertex 16.0239 2.90744 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.7157 9.66569 0 + vertex 14.9551 7.69881 0 + vertex 15.3368 5.33522 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 17.337 10.3363 0 + vertex 14.9426 8.95486 0 + vertex 14.9551 7.69881 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 25.4359 -19.4082 0 + vertex 19.6777 -11.13 0 + vertex 23.0737 -20.4525 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 26.7235 1.18648 0 + vertex 20.4179 -3.0084 0 + vertex 19.6777 -11.13 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 24.764 2.4559 0 - vertex 25.6376 2.44612 0 - vertex 25.4766 2.59351 0 + vertex 17.1521 -17.7131 0 + vertex 23.0737 -20.4525 0 + vertex 19.6777 -11.13 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 26.7352 1.18648 0 - vertex 20.8331 -2.41014 0 - vertex 20.7245 -2.61588 0 + vertex 23.0737 -20.4525 0 + vertex 17.1521 -17.7131 0 + vertex 21.6367 -21.3703 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.4179 -3.0084 0 + vertex 19.5452 -10.7956 0 + vertex 19.6777 -11.13 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 24.9074 2.59483 0 - vertex 25.4766 2.59351 0 - vertex 25.3271 2.68052 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.0464 2.67962 0 - vertex 25.3271 2.68052 0 - vertex 25.185 2.7087 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3271 2.68052 0 - vertex 25.0464 2.67962 0 - vertex 24.9074 2.59483 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.8138 2.23679 0 - vertex 24.764 2.4559 0 - vertex 24.6285 2.34829 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.4766 2.59351 0 - vertex 24.9074 2.59483 0 - vertex 24.764 2.4559 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0094 1.96397 0 - vertex 24.6285 2.34829 0 - vertex 24.4388 2.25734 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.1629 -19.1581 0 - vertex 19.6895 -11.13 0 - vertex 26.5531 -19.2026 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.3175 1.53367 0 - vertex 24.4388 2.25734 0 - vertex 24.2201 2.19262 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.5531 -19.2026 0 - vertex 19.6598 -11.2975 0 - vertex 25.9886 -19.284 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.4455 1.37999 0 - vertex 24.2201 2.19262 0 - vertex 23.9975 2.16372 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.5572 1.2697 0 - vertex 23.9975 2.16372 0 - vertex 21.1355 -0.658014 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0469 1.94283 0 - vertex 23.9975 2.16372 0 - vertex 23.7673 2.14309 0 + vertex 19.4334 -3.80993 0 + vertex 19.5452 -10.7956 0 + vertex 20.4179 -3.0084 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.6598 -11.2975 0 - vertex 26.5531 -19.2026 0 - vertex 19.6895 -11.13 0 + vertex 17.7619 -4.80944 0 + vertex 19.5452 -10.7956 0 + vertex 19.4334 -3.80993 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 23.0469 1.94283 0 - vertex 23.7673 2.14309 0 - vertex 23.5277 2.10089 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0469 1.94283 0 - vertex 23.5277 2.10089 0 - vertex 23.3072 2.04326 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.7352 1.18648 0 - vertex 20.9199 -2.19366 0 - vertex 20.8331 -2.41014 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.9975 2.16372 0 - vertex 23.0469 1.94283 0 - vertex 21.1355 -0.658014 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1316 -0.233279 0 - vertex 23.0469 1.94283 0 - vertex 22.9727 1.93385 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.099 0.0745682 0 - vertex 22.9727 1.93385 0 - vertex 22.9112 1.94773 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0726 0.170561 0 - vertex 22.9112 1.94773 0 - vertex 22.8622 1.9828 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0399 0.220413 0 - vertex 22.8622 1.9828 0 - vertex 22.8257 2.03737 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0399 0.220413 0 - vertex 22.8257 2.03737 0 - vertex 22.8016 2.10976 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9772 0.235111 0 - vertex 22.8016 2.10976 0 - vertex 22.7901 2.30129 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.9115 2.82433 0 - vertex 16.2363 2.34533 0 - vertex 22.827 2.54396 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6639 4.10009 0 - vertex 22.6364 7.18064 0 - vertex 22.3621 7.54907 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.6535 1.20459 0 - vertex 21.1085 -1.15452 0 - vertex 21.0399 -1.71534 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6639 4.10009 0 - vertex 22.3621 7.54907 0 - vertex 22.0631 7.89267 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6639 4.10009 0 - vertex 22.0631 7.89267 0 - vertex 21.7259 8.22365 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.5572 1.2697 0 - vertex 21.1355 -0.658014 0 - vertex 21.1085 -1.15452 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.498 4.716 0 - vertex 21.7259 8.22365 0 - vertex 21.3371 8.55423 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.6535 1.20459 0 - vertex 21.0399 -1.71534 0 - vertex 20.9878 -1.96317 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.6535 1.20459 0 - vertex 20.9878 -1.96317 0 - vertex 20.9199 -2.19366 0 + vertex 19.5452 -10.7956 0 + vertex 17.7619 -4.80944 0 + vertex 19.0845 -10.6988 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.5653 -11.6083 0 - vertex 25.9886 -19.284 0 - vertex 19.6598 -11.2975 0 + vertex 15.0012 -6.23992 0 + vertex 19.0845 -10.6988 0 + vertex 17.7619 -4.80944 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.0845 -10.6988 0 + vertex 15.0012 -6.23992 0 + vertex 16.7993 -11.2316 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.1479 -12.7477 0 - vertex 25.4477 -19.4082 0 - vertex 19.5653 -11.6083 0 + vertex 12.6103 -7.15898 0 + vertex 16.7993 -11.2316 0 + vertex 15.0012 -6.23992 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.9086 -19.5812 0 - vertex 18.3699 -14.7241 0 - vertex 24.3497 -19.8089 0 + vertex 16.7993 -11.2316 0 + vertex 12.6103 -7.15898 0 + vertex 13.71 -12.1451 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 13.71 -12.1451 0 + vertex 12.6103 -7.15898 0 + vertex 13.1035 -12.4147 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 18.3699 -14.7241 0 - vertex 24.9086 -19.5812 0 - vertex 19.1479 -12.7477 0 + vertex 10.2421 -7.67101 0 + vertex 13.1035 -12.4147 0 + vertex 12.6103 -7.15898 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 25.9886 -19.284 0 - vertex 19.5653 -11.6083 0 - vertex 25.4477 -19.4082 0 + vertex 13.1035 -12.4147 0 + vertex 10.2421 -7.67101 0 + vertex 12.6527 -12.8127 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 26.7352 1.18648 0 - vertex 20.7245 -2.61588 0 - vertex 19.6583 -10.9333 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6583 -10.9333 0 - vertex 20.7245 -2.61588 0 - vertex 20.591 -2.8142 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6583 -10.9333 0 - vertex 20.591 -2.8142 0 - vertex 20.4297 -3.0084 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.3497 -19.8089 0 - vertex 18.3699 -14.7241 0 - vertex 23.7493 -20.0973 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6172 -10.8571 0 - vertex 20.4297 -3.0084 0 - vertex 20.2374 -3.20177 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6172 -10.8571 0 - vertex 20.2374 -3.20177 0 - vertex 20.0112 -3.39762 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.7493 -20.0973 0 - vertex 18.3699 -14.7241 0 - vertex 23.0854 -20.4525 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 17.1638 -17.7131 0 - vertex 23.0854 -20.4525 0 - vertex 18.3699 -14.7241 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0854 -20.4525 0 - vertex 17.1638 -17.7131 0 - vertex 22.3543 -20.8886 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.3543 -20.8886 0 - vertex 17.1638 -17.7131 0 - vertex 21.6485 -21.3703 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.6485 -21.3703 0 - vertex 17.1638 -17.7131 0 - vertex 20.9665 -21.899 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9665 -21.899 0 - vertex 17.1638 -17.7131 0 - vertex 20.3071 -22.4759 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3071 -22.4759 0 - vertex 17.1638 -17.7131 0 - vertex 19.6689 -23.1024 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6689 -23.1024 0 - vertex 17.1638 -17.7131 0 - vertex 19.0503 -23.7798 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.5952 -23.8342 0 - vertex 19.0503 -23.7798 0 - vertex 17.1638 -17.7131 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.0503 -23.7798 0 - vertex 14.5952 -23.8342 0 - vertex 18.4501 -24.5093 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4501 -24.5093 0 - vertex 14.5952 -23.8342 0 - vertex 17.8667 -25.2923 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.8667 -25.2923 0 - vertex 14.5952 -23.8342 0 - vertex 17.4656 -25.8764 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.4656 -25.8764 0 - vertex 14.5952 -23.8342 0 - vertex 17.0901 -26.4624 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.0901 -26.4624 0 - vertex 14.5952 -23.8342 0 - vertex 16.7406 -27.0496 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.7406 -27.0496 0 - vertex 14.5952 -23.8342 0 - vertex 16.4172 -27.6373 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.8097 -28.1484 0 - vertex 16.4172 -27.6373 0 - vertex 14.5952 -23.8342 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.4172 -27.6373 0 - vertex 12.8097 -28.1484 0 - vertex 16.1203 -28.2246 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.1203 -28.2246 0 - vertex 12.8097 -28.1484 0 - vertex 15.8502 -28.8109 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.8502 -28.8109 0 - vertex 12.8097 -28.1484 0 - vertex 15.6071 -29.3953 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6071 -29.3953 0 - vertex 12.8097 -28.1484 0 - vertex 15.3912 -29.9771 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.0447 -30.0547 0 - vertex 15.3912 -29.9771 0 - vertex 12.8097 -28.1484 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.3912 -29.9771 0 - vertex 12.0447 -30.0547 0 - vertex 15.2028 -30.5555 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9098 -31.6993 0 - vertex 11.5005 -31.4602 0 - vertex 14.8056 -32.2631 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.5005 -31.4602 0 - vertex 14.9098 -31.6993 0 - vertex 12.0447 -30.0547 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0423 -31.1299 0 - vertex 12.0447 -30.0547 0 - vertex 14.9098 -31.6993 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2028 -30.5555 0 - vertex 12.0447 -30.0547 0 - vertex 15.0423 -31.1299 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0186 22.3563 0 - vertex -30.0859 22.0525 0 - vertex -28.3394 21.9725 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.4321 22.5993 0 - vertex -30.0859 22.0525 0 - vertex -29.0186 22.3563 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.7937 22.8325 0 - vertex -30.0859 22.0525 0 - vertex -29.4321 22.5993 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1071 23.0591 0 - vertex -30.0859 22.0525 0 - vertex -29.7937 22.8325 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.5728 22.0884 0 - vertex -30.1071 23.0591 0 - vertex -30.3761 23.2826 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1071 23.0591 0 - vertex -30.5728 22.0884 0 - vertex -30.0859 22.0525 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.074 22.1513 0 - vertex -30.3761 23.2826 0 - vertex -30.6044 23.5064 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.5861 22.2399 0 - vertex -30.6044 23.5064 0 - vertex -30.7957 23.7338 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.1061 22.3529 0 - vertex -30.7957 23.7338 0 - vertex -30.9539 23.9682 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3761 23.2826 0 - vertex -31.074 22.1513 0 - vertex -30.5728 22.0884 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.1061 22.3529 0 - vertex -30.9539 23.9682 0 - vertex -31.0826 24.213 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.6306 22.489 0 - vertex -31.0826 24.213 0 - vertex -31.2103 24.5339 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.1564 22.6469 0 - vertex -31.2103 24.5339 0 - vertex -31.2656 24.779 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.6044 23.5064 0 - vertex -31.5861 22.2399 0 - vertex -31.074 22.1513 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.199 23.023 0 - vertex -31.2656 24.779 0 - vertex -31.2668 24.8727 0 + vertex 12.6527 -12.8127 0 + vertex 10.2421 -7.67101 0 + vertex 12.4073 -13.2773 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -34.7094 23.2385 0 - vertex -31.2507 24.9472 0 - vertex -35.2082 23.4707 0 + vertex 11.2177 -19.5302 0 + vertex 12.4073 -13.2773 0 + vertex 10.3474 -19.1774 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -8.06691 -19.2358 0 - vertex -17.4002 -11.6639 0 - vertex -17.3941 -11.77 0 + vertex 12.058 -19.7199 0 + vertex 11.2177 -19.5302 0 + vertex 11.7785 -19.8211 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -16.9775 12.4282 0 - vertex -17.4268 -11.5861 0 - vertex -17.4002 -11.6639 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9775 12.4282 0 - vertex -17.4764 -11.5321 0 - vertex -17.4268 -11.5861 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5514 -11.4978 0 - vertex -17.3003 12.3696 0 - vertex -17.5181 12.3491 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9775 12.4282 0 - vertex -17.5514 -11.4978 0 - vertex -17.4764 -11.5321 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5181 12.3491 0 - vertex -17.7876 -11.4712 0 - vertex -17.5514 -11.4978 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5728 12.2484 0 - vertex -17.5181 12.3491 0 - vertex -17.9556 12.3221 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5181 12.3491 0 - vertex -18.5728 12.2484 0 - vertex -17.7876 -11.4712 0 + vertex 12.4073 -13.2773 0 + vertex 11.2177 -19.5302 0 + vertex 12.058 -19.7199 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -19.2876 12.1394 0 - vertex -17.7876 -11.4712 0 - vertex -18.5728 12.2484 0 + vertex 7.54923 -7.88041 0 + vertex 12.4073 -13.2773 0 + vertex 10.2421 -7.67101 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.4073 -13.2773 0 + vertex 8.75581 -19.1712 0 + vertex 10.3474 -19.1774 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 7.06268 -19.3694 0 + vertex 12.4073 -13.2773 0 + vertex 7.54923 -7.88041 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.4073 -13.2773 0 + vertex 7.06268 -19.3694 0 + vertex 8.75581 -19.1712 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -20.0181 12.0063 0 - vertex -17.7876 -11.4712 0 - vertex -19.2876 12.1394 0 + vertex 5.03167 -7.88498 0 + vertex 7.06268 -19.3694 0 + vertex 7.54923 -7.88041 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 7.06268 -19.3694 0 + vertex 5.03167 -7.88498 0 + vertex 5.689 -19.9339 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3.854 -7.59505 0 + vertex 5.689 -19.9339 0 + vertex 5.03167 -7.88498 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3.854 -7.59505 0 + vertex 3.72385 -21.1527 0 + vertex 5.689 -19.9339 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -20.4772 11.9313 0 - vertex -17.7876 -11.4712 0 - vertex -20.0181 12.0063 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -21.0446 11.8651 0 - vertex -17.7876 -11.4712 0 - vertex -20.4772 11.9313 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.4311 11.7593 0 - vertex -17.7876 -11.4712 0 - vertex -21.0446 11.8651 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.175 -11.3523 0 - vertex -22.4311 11.7593 0 - vertex -24.031 11.6901 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.175 -11.3523 0 - vertex -24.031 11.6901 0 - vertex -25.698 11.6586 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.4311 11.7593 0 - vertex -27.175 -11.3523 0 - vertex -17.7876 -11.4712 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.2855 11.6658 0 - vertex -27.175 -11.3523 0 - vertex -25.698 11.6586 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.647 11.7129 0 - vertex -27.175 -11.3523 0 - vertex -27.2855 11.6658 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.0944 -11.3029 0 - vertex -28.647 11.7129 0 - vertex -29.1973 11.7518 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.0944 -11.3029 0 - vertex -29.1973 11.7518 0 - vertex -29.6362 11.801 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.0944 -11.3029 0 - vertex -29.6362 11.801 0 - vertex -29.9453 11.8607 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.7011 -11.3017 0 - vertex -29.9453 11.8607 0 - vertex -30.0456 11.8946 0 + vertex -4.70045 -19.8327 0 + vertex 3.72385 -21.1527 0 + vertex 3.854 -7.59505 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.6555 -11.3595 0 - vertex -30.0456 11.8946 0 - vertex -30.1065 11.9311 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.527 -11.5152 0 - vertex -30.1065 11.9311 0 - vertex -30.2115 12.0683 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.9755 -11.7636 0 - vertex -30.2115 12.0683 0 - vertex -30.2975 12.2549 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.2746 22.7082 0 - vertex -30.2975 12.2549 0 - vertex -30.3556 12.4664 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3001 13.0393 0 - vertex -33.0533 20.3093 0 - vertex -30.3387 12.9655 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -33.7926 20.6272 0 - vertex -30.3387 12.9655 0 - vertex -33.0533 20.3093 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3387 12.9655 0 - vertex -33.7926 20.6272 0 - vertex -30.3621 12.8813 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.647 11.7129 0 - vertex -32.0944 -11.3029 0 - vertex -27.175 -11.3523 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -34.4881 20.9542 0 - vertex -30.3621 12.8813 0 - vertex -33.7926 20.6272 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.1386 21.2899 0 - vertex -30.3621 12.8813 0 - vertex -34.4881 20.9542 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.9453 11.8607 0 - vertex -33.7011 -11.3017 0 - vertex -32.0944 -11.3029 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.3621 12.8813 0 - vertex -35.1386 21.2899 0 - vertex -30.377 12.6783 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -35.7435 21.6336 0 - vertex -30.377 12.6783 0 - vertex -35.1386 21.2899 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0456 11.8946 0 - vertex -34.8583 -11.3197 0 - vertex -33.7011 -11.3017 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.3017 21.985 0 - vertex -30.377 12.6783 0 - vertex -35.7435 21.6336 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.0456 11.8946 0 - vertex -35.6555 -11.3595 0 - vertex -34.8583 -11.3197 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.377 12.6783 0 - vertex -36.3017 21.985 0 - vertex -30.3556 12.4664 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1065 11.9311 0 - vertex -36.1819 -11.4238 0 - vertex -35.6555 -11.3595 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -36.8124 22.3433 0 - vertex -30.3556 12.4664 0 - vertex -36.3017 21.985 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.1065 11.9311 0 - vertex -36.527 -11.5152 0 - vertex -36.1819 -11.4238 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2115 12.0683 0 - vertex -36.7802 -11.6364 0 - vertex -36.527 -11.5152 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.2746 22.7082 0 - vertex -30.3556 12.4664 0 - vertex -36.8124 22.3433 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2115 12.0683 0 - vertex -36.9755 -11.7636 0 - vertex -36.7802 -11.6364 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2975 12.2549 0 - vertex -37.2746 22.7082 0 - vertex -37.1409 -11.9004 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2975 12.2549 0 - vertex -37.1409 -11.9004 0 - vertex -36.9755 -11.7636 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.6874 23.0789 0 - vertex -37.1409 -11.9004 0 - vertex -37.2746 22.7082 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.1409 -11.9004 0 - vertex -37.6874 23.0789 0 - vertex -37.2767 -12.0443 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.0499 23.455 0 - vertex -37.2767 -12.0443 0 - vertex -37.6874 23.0789 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.3611 23.836 0 - vertex -37.2767 -12.0443 0 - vertex -38.0499 23.455 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.2767 -12.0443 0 - vertex -38.3611 23.836 0 - vertex -37.3834 -12.1929 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.6203 24.2212 0 - vertex -37.3834 -12.1929 0 - vertex -38.3611 23.836 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.15561 -22.5851 0 - vertex -8.45645 -23.4267 0 - vertex -8.48242 -23.1923 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.39946 -22.5595 0 - vertex -8.45645 -23.4267 0 - vertex -9.15561 -22.5851 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.94827 -22.6394 0 - vertex -8.48242 -23.1923 0 - vertex -8.54451 -22.9989 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.45645 -23.4267 0 - vertex -9.39946 -22.5595 0 - vertex -8.46654 -23.7044 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.77736 -22.7249 0 - vertex -8.54451 -22.9989 0 - vertex -8.64279 -22.8439 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -9.67988 -22.56 0 - vertex -8.46654 -23.7044 0 - vertex -9.39946 -22.5595 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.54451 -22.9989 0 - vertex -8.77736 -22.7249 0 - vertex -8.94827 -22.6394 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.48242 -23.1923 0 - vertex -8.94827 -22.6394 0 - vertex -9.15561 -22.5851 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.46654 -23.7044 0 - vertex -9.67988 -22.56 0 - vertex -8.51259 -24.0278 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.0796 -22.6123 0 - vertex -8.51259 -24.0278 0 - vertex -9.67988 -22.56 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.51259 -24.0278 0 - vertex -10.0796 -22.6123 0 - vertex -8.59455 -24.3995 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.5344 -22.7271 0 - vertex -8.59455 -24.3995 0 - vertex -10.0796 -22.6123 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.59455 -24.3995 0 - vertex -10.5344 -22.7271 0 - vertex -8.71232 -24.8218 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.9881 -22.8877 0 - vertex -8.71232 -24.8218 0 - vertex -10.5344 -22.7271 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.3849 -23.0769 0 - vertex -8.71232 -24.8218 0 - vertex -10.9881 -22.8877 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.71232 -24.8218 0 - vertex -11.3849 -23.0769 0 - vertex -9.05502 -25.8283 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.9359 -23.4045 0 - vertex -9.05502 -25.8283 0 - vertex -11.3849 -23.0769 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -12.4007 -23.7203 0 - vertex -9.05502 -25.8283 0 - vertex -11.9359 -23.4045 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -12.7941 -24.0414 0 - vertex -9.05502 -25.8283 0 - vertex -12.4007 -23.7203 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.2098 -26.3227 0 - vertex -9.5401 -27.0667 0 - vertex -13.9508 -25.7195 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.3777 -29.1914 0 - vertex -9.5401 -27.0667 0 - vertex -14.2098 -26.3227 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.05502 -25.8283 0 - vertex -12.7941 -24.0414 0 - vertex -9.5401 -27.0667 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5815 -32.143 0 - vertex -15.3777 -29.1914 0 - vertex -11.9595 -33.0513 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.131 -24.3848 0 - vertex -9.5401 -27.0667 0 - vertex -12.7941 -24.0414 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.8163 -32.7116 0 - vertex -11.9595 -33.0513 0 - vertex -15.3777 -29.1914 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.4262 -24.7676 0 - vertex -9.5401 -27.0667 0 - vertex -13.131 -24.3848 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.9595 -33.0513 0 - vertex -16.8163 -32.7116 0 - vertex -12.3268 -33.8339 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.3268 -33.8339 0 - vertex -16.8163 -32.7116 0 - vertex -12.6843 -34.4922 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.5401 -27.0667 0 - vertex -13.4262 -24.7676 0 - vertex -13.6945 -25.2068 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.6843 -34.4922 0 - vertex -16.8163 -32.7116 0 - vertex -13.0331 -35.0276 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.5401 -27.0667 0 - vertex -13.6945 -25.2068 0 - vertex -13.9508 -25.7195 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.5401 -27.0667 0 - vertex -15.3777 -29.1914 0 - vertex -11.5815 -32.143 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.0331 -35.0276 0 - vertex -16.8163 -32.7116 0 - vertex -13.2045 -35.2497 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -14.4713 -35.9816 0 - vertex -13.2045 -35.2497 0 - vertex -16.8163 -32.7116 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.2045 -35.2497 0 - vertex -14.4713 -35.9816 0 - vertex -13.3741 -35.4417 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.3741 -35.4417 0 - vertex -14.4713 -35.9816 0 - vertex -13.5421 -35.6036 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -14.3614 -35.9691 0 - vertex -13.5421 -35.6036 0 - vertex -14.4713 -35.9816 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.5421 -35.6036 0 - vertex -14.3614 -35.9691 0 - vertex -13.7085 -35.7356 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.8736 -35.838 0 - vertex -14.3614 -35.9691 0 - vertex -14.0373 -35.911 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.0373 -35.911 0 - vertex -14.3614 -35.9691 0 - vertex -14.1999 -35.9546 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.7085 -35.7356 0 - vertex -14.3614 -35.9691 0 - vertex -13.8736 -35.838 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.1674 -33.591 0 - vertex -14.4713 -35.9816 0 - vertex -16.8163 -32.7116 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.4713 -35.9816 0 - vertex -17.1674 -33.591 0 - vertex -14.5979 -36.0176 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.5979 -36.0176 0 - vertex -17.1674 -33.591 0 - vertex -14.8831 -36.1495 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.4329 -34.3072 0 - vertex -14.8831 -36.1495 0 - vertex -17.1674 -33.591 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -16.5729 -36.2152 0 - vertex -14.8831 -36.1495 0 - vertex -17.4329 -34.3072 0 + vertex -5.57075 -19.2012 0 + vertex 3.854 -7.59505 0 + vertex 1.04019 -5.91722 0 endloop endfacet facet normal -0 -0 1 outer loop - vertex -16.3106 -36.4662 0 - vertex -15.4564 -36.5832 0 - vertex -16.4249 -36.334 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.4564 -36.5832 0 - vertex -16.237 -36.6071 0 - vertex -15.7439 -36.902 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.2485 -36.9225 0 - vertex -15.8411 -37.0399 0 - vertex -16.2109 -36.752 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.8411 -37.0399 0 - vertex -16.2485 -36.9225 0 - vertex -15.9096 -37.1689 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.3508 -37.1428 0 - vertex -15.9096 -37.1689 0 - vertex -16.2485 -36.9225 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.7439 -36.902 0 - vertex -16.2109 -36.752 0 - vertex -15.8411 -37.0399 0 + vertex -4.06681 -20.6308 0 + vertex 3.72385 -21.1527 0 + vertex -4.70045 -19.8327 0 endloop endfacet facet normal -0 -0 1 outer loop - vertex -16.2109 -36.752 0 - vertex -15.7439 -36.902 0 - vertex -16.237 -36.6071 0 + vertex -3.85646 -21.6547 0 + vertex 1.84511 -22.661 0 + vertex -4.06681 -20.6308 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -5.57075 -19.2012 0 + vertex 1.04019 -5.91722 0 + vertex -2.05653 -4.03047 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1.84511 -22.661 0 + vertex -3.85646 -21.6547 0 + vertex 0.168338 -24.355 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 0.168338 -24.355 0 + vertex -3.89417 -22.8317 0 + vertex -1.19093 -26.1306 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -7.1272 -19.1706 0 + vertex -2.05653 -4.03047 0 + vertex -3.45272 -3.03042 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -17.4385 -11.5861 0 + vertex -3.45272 -3.03042 0 + vertex -3.71458 -2.66291 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -4.26405 -24.3543 0 + vertex -1.19093 -26.1306 0 + vertex -3.89417 -22.8317 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.6367 -21.3703 0 + vertex 17.1521 -17.7131 0 + vertex 20.2954 -22.4759 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.2954 -22.4759 0 + vertex 17.1521 -17.7131 0 + vertex 19.0386 -23.7798 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 14.5835 -23.8342 0 + vertex 19.0386 -23.7798 0 + vertex 17.1521 -17.7131 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.0386 -23.7798 0 + vertex 14.5835 -23.8342 0 + vertex 17.855 -25.2923 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 17.855 -25.2923 0 + vertex 14.5835 -23.8342 0 + vertex 16.4055 -27.6373 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 16.4055 -27.6373 0 + vertex 14.5835 -23.8342 0 + vertex 15.3794 -29.9771 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.3794 -29.9771 0 + vertex 11.4887 -31.4602 0 + vertex 14.7938 -32.2631 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 11.4887 -31.4602 0 + vertex 15.3794 -29.9771 0 + vertex 14.5835 -23.8342 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 25.1513 17.7384 0 + vertex 26.0816 17.5963 0 + vertex 25.9892 18.2943 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 25.1513 17.7384 0 + vertex 25.9892 18.2943 0 + vertex 25.7331 18.8483 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -16.237 -36.6071 0 - vertex -15.4564 -36.5832 0 - vertex -16.3106 -36.4662 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -16.4249 -36.334 0 - vertex -15.1813 -36.3448 0 - vertex -16.5729 -36.2152 0 + vertex 25.704 16.8274 0 + vertex 26.0816 17.5963 0 + vertex 25.4738 17.2443 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -15.1813 -36.3448 0 - vertex -16.4249 -36.334 0 - vertex -15.4564 -36.5832 0 + vertex 26.0816 17.5963 0 + vertex 25.704 16.8274 0 + vertex 25.8979 16.7563 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -14.8831 -36.1495 0 - vertex -16.5729 -36.2152 0 - vertex -15.1813 -36.3448 0 + vertex 24.5942 18.0475 0 + vertex 25.7331 18.8483 0 + vertex 25.3447 19.2137 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -16.5729 -36.2152 0 - vertex -17.4329 -34.3072 0 - vertex -16.7476 -36.1146 0 + vertex 26.0816 17.5963 0 + vertex 25.1513 17.7384 0 + vertex 25.4738 17.2443 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -16.7476 -36.1146 0 - vertex -17.4329 -34.3072 0 - vertex -16.942 -36.0369 0 + vertex 24.5942 18.0475 0 + vertex 25.3447 19.2137 0 + vertex 24.8554 19.3454 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 25.7331 18.8483 0 + vertex 24.5942 18.0475 0 + vertex 25.1513 17.7384 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.3909 19.6849 0 + vertex 24.5942 18.0475 0 + vertex 24.8554 19.3454 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 22.335 18.2522 0 + vertex 23.3909 19.6849 0 + vertex 22.6368 20.047 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.3909 19.6849 0 + vertex 22.335 18.2522 0 + vertex 24.5942 18.0475 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.9591 18.304 0 + vertex 22.6368 20.047 0 + vertex 22.0911 20.5797 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -17.6153 -34.8741 0 - vertex -16.942 -36.0369 0 - vertex -17.4329 -34.3072 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.942 -36.0369 0 - vertex -17.6153 -34.8741 0 - vertex -17.1493 -35.9869 0 + vertex 19.6596 20.6529 0 + vertex 22.0911 20.5797 0 + vertex 21.7245 21.3239 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -17.7168 -35.3062 0 - vertex -17.1493 -35.9869 0 - vertex -17.6153 -34.8741 0 + vertex 19.4421 21.9215 0 + vertex 21.7245 21.3239 0 + vertex 21.508 22.3204 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.4421 21.9215 0 + vertex 21.508 22.3204 0 + vertex 21.2518 23.2891 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 22.0911 20.5797 0 + vertex 19.6596 20.6529 0 + vertex 19.8405 19.3078 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 18.9185 22.6398 0 + vertex 21.2518 23.2891 0 + vertex 20.762 24.0784 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 22.6368 20.047 0 + vertex 20.9591 18.304 0 + vertex 22.335 18.2522 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 18.9185 22.6398 0 + vertex 20.762 24.0784 0 + vertex 20.0338 24.6942 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 22.0911 20.5797 0 + vertex 19.8405 19.3078 0 + vertex 20.9591 18.304 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.9591 18.304 0 + vertex 19.8405 19.3078 0 + vertex 20.2006 18.5903 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.7245 21.3239 0 + vertex 19.4421 21.9215 0 + vertex 19.6596 20.6529 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 18.9185 22.6398 0 + vertex 20.0338 24.6942 0 + vertex 19.062 25.1422 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.2518 23.2891 0 + vertex 18.9185 22.6398 0 + vertex 19.4421 21.9215 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.062 25.1422 0 + vertex 17.6852 23.4449 0 + vertex 18.9185 22.6398 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 17.2513 25.98 0 + vertex 17.6852 23.4449 0 + vertex 19.062 25.1422 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.1211 24.4531 0 + vertex 17.2513 25.98 0 + vertex 15.7223 27.2873 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 13.4969 25.2416 0 + vertex 15.7223 27.2873 0 + vertex 15.122 28.0941 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 17.2513 25.98 0 + vertex 15.1211 24.4531 0 + vertex 17.6852 23.4449 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -17.738 -35.4761 0 - vertex -17.1493 -35.9869 0 - vertex -17.7168 -35.3062 0 + vertex 11.7374 28.4518 0 + vertex 15.122 28.0941 0 + vertex 15.0577 29.0611 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -17.1493 -35.9869 0 - vertex -17.738 -35.4761 0 - vertex -17.3625 -35.9691 0 + vertex 15.7223 27.2873 0 + vertex 13.4969 25.2416 0 + vertex 15.1211 24.4531 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -29.0303 22.3563 0 + vertex -30.0976 22.0525 0 + vertex -28.3511 21.9725 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.3878 23.2826 0 + vertex -30.0976 22.0525 0 + vertex -29.0303 22.3563 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -32.1178 22.3529 0 + vertex -30.3878 23.2826 0 + vertex -31.0943 24.213 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.3878 23.2826 0 + vertex -32.1178 22.3529 0 + vertex -30.0976 22.0525 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -34.2108 23.023 0 + vertex -31.0943 24.213 0 + vertex -31.2773 24.779 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -31.1793 25.0376 0 + vertex -34.2108 23.023 0 + vertex -31.2773 24.779 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.5428 -26.6889 0 + vertex -23.655 -30.4649 0 + vertex -23.4462 -30.738 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -25.4741 -26.9141 0 + vertex -18.5428 -26.6889 0 + vertex -24.4076 -24.3815 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.5428 -26.6889 0 + vertex -25.4741 -26.9141 0 + vertex -23.655 -30.4649 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -23.655 -30.4649 0 + vertex -25.4741 -26.9141 0 + vertex -24.0819 -30.2475 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -24.0819 -30.2475 0 + vertex -25.4741 -26.9141 0 + vertex -24.4667 -30.1541 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -17.7399 -35.6175 0 - vertex -17.3625 -35.9691 0 - vertex -17.738 -35.4761 0 + vertex -26.2338 -28.3696 0 + vertex -24.4667 -30.1541 0 + vertex -25.4741 -26.9141 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -17.3625 -35.9691 0 - vertex -17.7399 -35.6175 0 - vertex -17.4702 -35.9608 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -17.7228 -35.7323 0 - vertex -17.4702 -35.9608 0 - vertex -17.7399 -35.6175 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4702 -35.9608 0 - vertex -17.7228 -35.7323 0 - vertex -17.5603 -35.9348 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -17.6869 -35.8223 0 - vertex -17.5603 -35.9348 0 - vertex -17.7228 -35.7323 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5603 -35.9348 0 - vertex -17.6869 -35.8223 0 - vertex -17.6327 -35.8892 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.56309 -35.9367 0 - vertex -7.30266 -36.7536 0 - vertex -7.29619 -36.8569 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.97004 -33.2395 0 - vertex -7.32635 -36.6539 0 - vertex -7.30266 -36.7536 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.13453 -33.8652 0 - vertex -3.97004 -33.2395 0 - vertex -7.70823 -32.8163 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.97004 -33.2395 0 - vertex -7.36727 -36.5579 0 - vertex -7.32635 -36.6539 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.97004 -33.2395 0 - vertex -7.50076 -36.3769 0 - vertex -7.36727 -36.5579 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.97004 -33.2395 0 - vertex -8.13453 -33.8652 0 - vertex -7.50076 -36.3769 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.50076 -36.3769 0 - vertex -8.13453 -33.8652 0 - vertex -7.70312 -36.2106 0 + vertex -24.4667 -30.1541 0 + vertex -26.2338 -28.3696 0 + vertex -24.8569 -30.2998 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -8.32474 -34.384 0 - vertex -7.70312 -36.2106 0 - vertex -8.13453 -33.8652 0 + vertex -26.8752 -29.0336 0 + vertex -24.8569 -30.2998 0 + vertex -26.2338 -28.3696 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -7.70312 -36.2106 0 - vertex -8.32474 -34.384 0 - vertex -7.97432 -36.0592 0 + vertex -24.8569 -30.2998 0 + vertex -26.8752 -29.0336 0 + vertex -26.8283 -32.1012 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -8.55649 -35.3052 0 - vertex -7.97432 -36.0592 0 - vertex -8.32474 -34.384 0 + vertex -27.5872 -29.1914 0 + vertex -26.8283 -32.1012 0 + vertex -26.8752 -29.0336 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -7.97432 -36.0592 0 - vertex -8.55649 -35.3052 0 - vertex -8.30497 -35.8814 0 + vertex -28.1878 -29.097 0 + vertex -26.8283 -32.1012 0 + vertex -27.5872 -29.1914 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -8.30497 -35.8814 0 - vertex -8.55649 -35.3052 0 - vertex -8.41808 -35.7975 0 + vertex -28.1878 -29.097 0 + vertex -29.0969 -33.8499 0 + vertex -26.8283 -32.1012 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -28.1838 -28.4809 0 + vertex -32.142 -25.4759 0 + vertex -28.1878 -29.097 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -8.57785 -35.4236 0 - vertex -8.41808 -35.7975 0 - vertex -8.55649 -35.3052 0 + vertex -35.4824 -26.6225 0 + vertex -28.1878 -29.097 0 + vertex -32.142 -25.4759 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -8.41808 -35.7975 0 - vertex -8.57785 -35.4236 0 - vertex -8.49955 -35.7129 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -8.57707 -35.529 0 - vertex -8.49955 -35.7129 0 - vertex -8.57785 -35.4236 0 + vertex -28.1878 -29.097 0 + vertex -30.2578 -34.4631 0 + vertex -29.0969 -33.8499 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -8.49955 -35.7129 0 - vertex -8.57707 -35.529 0 - vertex -8.55176 -35.6244 0 + vertex -28.1878 -29.097 0 + vertex -31.3644 -34.8586 0 + vertex -30.2578 -34.4631 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 1.88346 12.344 0 - vertex 1.92323 12.5289 0 - vertex 1.90284 12.6291 0 + vertex -35.4824 -26.6225 0 + vertex -32.142 -25.4759 0 + vertex -34.9626 -25.4747 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 1.92323 12.5289 0 - vertex 1.88346 12.344 0 - vertex 1.91748 12.4352 0 + vertex -28.1878 -29.097 0 + vertex -35.4824 -26.6225 0 + vertex -31.3644 -34.8586 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 1.81906 12.2515 0 - vertex 1.90284 12.6291 0 - vertex 1.85843 12.7398 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.90284 12.6291 0 - vertex 1.81906 12.2515 0 - vertex 1.88346 12.344 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.85843 12.7398 0 - vertex 1.72214 12.1537 0 - vertex 1.81906 12.2515 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.7147 12.9716 0 - vertex 1.72214 12.1537 0 - vertex 1.85843 12.7398 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.42228 11.926 0 - vertex 1.7147 12.9716 0 - vertex 1.51175 13.1874 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.7147 12.9716 0 - vertex 1.42228 11.926 0 - vertex 1.72214 12.1537 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.25015 13.3869 0 - vertex 1.42228 11.926 0 - vertex 1.51175 13.1874 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.25015 13.3869 0 - vertex 0.986004 11.656 0 - vertex 1.42228 11.926 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.930489 13.5702 0 - vertex 0.986004 11.656 0 - vertex 1.25015 13.3869 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.55335 13.737 0 - vertex 0.986004 11.656 0 - vertex 0.930489 13.5702 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.55335 13.737 0 - vertex 0.546849 11.4454 0 - vertex 0.986004 11.656 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.119316 13.8873 0 - vertex 0.546849 11.4454 0 - vertex 0.55335 13.737 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.119316 13.8873 0 - vertex 0.0942225 11.293 0 - vertex 0.546849 11.4454 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.382462 11.1972 0 - vertex 0.119316 13.8873 0 - vertex -0.371032 14.021 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.119316 13.8873 0 - vertex -0.382462 11.1972 0 - vertex 0.0942225 11.293 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.371032 14.021 0 - vertex -0.893798 11.1566 0 - vertex -0.382462 11.1972 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.917111 14.138 0 - vertex -0.893798 11.1566 0 - vertex -0.371032 14.021 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.917111 14.138 0 - vertex -1.45038 11.1697 0 - vertex -0.893798 11.1566 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.51834 14.2381 0 - vertex -1.45038 11.1697 0 - vertex -0.917111 14.138 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.51834 14.2381 0 - vertex -2.06279 11.235 0 - vertex -1.45038 11.1697 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.17413 14.3212 0 - vertex -2.06279 11.235 0 - vertex -1.51834 14.2381 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.17413 14.3212 0 - vertex -2.74162 11.3511 0 - vertex -2.06279 11.235 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.8839 14.3873 0 - vertex -2.74162 11.3511 0 - vertex -2.17413 14.3212 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.8839 14.3873 0 - vertex -3.43924 11.4799 0 - vertex -2.74162 11.3511 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.64708 14.4362 0 - vertex -3.43924 11.4799 0 - vertex -2.8839 14.3873 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.64708 14.4362 0 - vertex -4.06319 11.5774 0 - vertex -3.43924 11.4799 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.46307 14.4678 0 - vertex -4.06319 11.5774 0 - vertex -3.64708 14.4362 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.46307 14.4678 0 - vertex -4.60751 11.6434 0 - vertex -4.06319 11.5774 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.46307 14.4678 0 - vertex -5.06624 11.6776 0 - vertex -4.60751 11.6434 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.33129 14.482 0 - vertex -5.06624 11.6776 0 - vertex -4.46307 14.4678 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.33129 14.482 0 - vertex -5.4334 11.6797 0 - vertex -5.06624 11.6776 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.33129 14.482 0 - vertex -5.70304 11.6495 0 - vertex -5.4334 11.6797 0 + vertex -31.3644 -34.8586 0 + vertex -35.4824 -26.6225 0 + vertex -35.0529 -35.0835 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -6.25117 14.4787 0 - vertex -5.70304 11.6495 0 - vertex -5.33129 14.482 0 + vertex -38.7331 -34.5543 0 + vertex -35.0529 -35.0835 0 + vertex -35.4824 -26.6225 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -5.70304 11.6495 0 - vertex -6.25117 14.4787 0 - vertex -5.79943 11.6221 0 + vertex -35.0529 -35.0835 0 + vertex -38.7331 -34.5543 0 + vertex -38.4261 -34.9619 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -5.79943 11.6221 0 - vertex -6.25117 14.4787 0 - vertex -5.8692 11.5867 0 + vertex -18.6886 -22.3738 0 + vertex -24.4076 -24.3815 0 + vertex -18.5428 -26.6889 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -7.22211 14.4578 0 - vertex -5.8692 11.5867 0 - vertex -6.25117 14.4787 0 + vertex -23.8149 -31.5911 0 + vertex -21.28 -33.2523 0 + vertex -23.4462 -30.738 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -5.8692 11.5867 0 - vertex -7.22211 14.4578 0 - vertex -5.91161 11.5429 0 + vertex -18.5428 -26.6889 0 + vertex -23.4462 -30.738 0 + vertex -21.28 -33.2523 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -9.25643 14.3812 0 - vertex -5.91161 11.5429 0 - vertex -7.22211 14.4578 0 + vertex -24.7956 -33.2498 0 + vertex -21.28 -33.2523 0 + vertex -23.8149 -31.5911 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -3.70285 -2.66292 0 - vertex -17.4002 -11.6639 0 - vertex -6.14058 -19.1411 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.91161 11.5429 0 - vertex -9.25643 14.3812 0 - vertex -5.92592 11.491 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -7.11547 -19.1706 0 - vertex -6.14058 -19.1411 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -7.63584 -19.198 0 - vertex -7.11547 -19.1706 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -8.06691 -19.2358 0 - vertex -7.63584 -19.198 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.06691 -19.2358 0 - vertex -17.3941 -11.77 0 - vertex -8.43701 -19.2929 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -12.0792 -19.1571 0 - vertex -8.43701 -19.2929 0 - vertex -17.3941 -11.77 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -9.98725 14.3241 0 - vertex -5.92592 11.491 0 - vertex -9.25643 14.3812 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.43701 -19.2929 0 - vertex -12.0792 -19.1571 0 - vertex -8.77447 -19.378 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -11.9023 -19.2259 0 - vertex -8.77447 -19.378 0 - vertex -12.0792 -19.1571 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -10.6249 14.238 0 - vertex -5.92592 11.491 0 - vertex -9.98725 14.3241 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.77447 -19.378 0 - vertex -11.9023 -19.2259 0 - vertex -9.10766 -19.4997 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.2428 14.1101 0 - vertex -5.92592 11.491 0 - vertex -10.6249 14.238 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.92592 11.491 0 - vertex -11.2428 14.1101 0 - vertex -11.9142 13.9281 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -11.7723 -19.3375 0 - vertex -9.46489 -19.667 0 - vertex -11.9023 -19.2259 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.6707 -19.9072 0 - vertex -10.3649 -20.1728 0 - vertex -11.6557 -19.6804 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.3649 -20.1728 0 - vertex -11.6899 -19.4898 0 - vertex -11.6557 -19.6804 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.87453 -19.8884 0 - vertex -11.6899 -19.4898 0 - vertex -10.3649 -20.1728 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -11.6899 -19.4898 0 - vertex -9.87453 -19.8884 0 - vertex -11.7723 -19.3375 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.92592 11.491 0 - vertex -11.9142 13.9281 0 - vertex -12.7125 13.6795 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.46489 -19.667 0 - vertex -11.7723 -19.3375 0 - vertex -9.87453 -19.8884 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.10766 -19.4997 0 - vertex -11.9023 -19.2259 0 - vertex -9.46489 -19.667 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.4339 -12.0833 0 - vertex -12.0792 -19.1571 0 - vertex -17.3941 -11.77 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -13.7109 13.3517 0 - vertex -5.92592 11.491 0 - vertex -12.7125 13.6795 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0792 -19.1571 0 - vertex -17.4339 -12.0833 0 - vertex -12.302 -19.1333 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.949 12.9624 0 - vertex -5.92592 11.491 0 - vertex -13.7109 13.3517 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.5116 -12.3759 0 - vertex -12.302 -19.1333 0 - vertex -17.4339 -12.0833 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.0795 12.6436 0 - vertex -5.92592 11.491 0 - vertex -14.949 12.9624 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.6664 -12.8441 0 - vertex -12.302 -19.1333 0 - vertex -17.5116 -12.3759 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -5.92592 11.491 0 - vertex -16.0795 12.6436 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.302 -19.1333 0 - vertex -17.6664 -12.8441 0 - vertex -12.6849 -19.1929 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -16.0795 12.6436 0 - vertex -16.9775 12.4282 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.5514 -11.4978 0 - vertex -16.9775 12.4282 0 - vertex -17.3003 12.3696 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.1466 -14.1495 0 - vertex -12.6849 -19.1929 0 - vertex -17.6664 -12.8441 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.6849 -19.1929 0 - vertex -18.1466 -14.1495 0 - vertex -13.3483 -19.3556 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.3483 -19.3556 0 - vertex -18.1466 -14.1495 0 - vertex -14.1989 -19.5967 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.7537 -15.6836 0 - vertex -14.1989 -19.5967 0 - vertex -18.1466 -14.1495 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1989 -19.5967 0 - vertex -18.7537 -15.6836 0 - vertex -15.1436 -19.8912 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -19.3667 -17.1305 0 - vertex -15.1436 -19.8912 0 - vertex -18.7537 -15.6836 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.1436 -19.8912 0 - vertex -19.3667 -17.1305 0 - vertex -16.9393 -20.461 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -19.4996 -17.3696 0 - vertex -16.9393 -20.461 0 - vertex -19.3667 -17.1305 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9393 -20.461 0 - vertex -19.4996 -17.3696 0 - vertex -17.9865 -20.7653 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -19.6713 -17.584 0 - vertex -17.9865 -20.7653 0 - vertex -19.4996 -17.3696 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -19.8743 -17.7693 0 - vertex -17.9865 -20.7653 0 - vertex -19.6713 -17.584 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.9865 -20.7653 0 - vertex -19.8743 -17.7693 0 - vertex -18.1109 -20.8023 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.1109 -20.8023 0 - vertex -19.8743 -17.7693 0 - vertex -18.2248 -20.8552 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -20.1009 -17.9213 0 - vertex -18.2248 -20.8552 0 - vertex -19.8743 -17.7693 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.2248 -20.8552 0 - vertex -20.1009 -17.9213 0 - vertex -18.3284 -20.924 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -20.3435 -18.0357 0 - vertex -18.3284 -20.924 0 - vertex -20.1009 -17.9213 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.3284 -20.924 0 - vertex -20.3435 -18.0357 0 - vertex -18.4218 -21.0091 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.7355 -20.1677 0 - vertex -10.3649 -20.1728 0 - vertex -11.6707 -19.9072 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.3649 -20.1728 0 - vertex -11.7355 -20.1677 0 - vertex -11.5073 -20.829 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -11.851 -20.4599 0 - vertex -11.5073 -20.829 0 - vertex -11.7355 -20.1677 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0288 -20.9134 0 - vertex -11.5073 -20.829 0 - vertex -11.851 -20.4599 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5073 -20.829 0 - vertex -12.0288 -20.9134 0 - vertex -11.8784 -21.0286 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0594 -21.0513 0 - vertex -11.8784 -21.0286 0 - vertex -12.0288 -20.9134 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.8784 -21.0286 0 - vertex -12.0594 -21.0513 0 - vertex -12.0427 -21.102 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -12.0427 -21.102 0 - vertex -12.0594 -21.0513 0 - vertex -12.0573 -21.0889 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.3267 -22.6747 0 - vertex -17.2249 -22.8126 0 - vertex -17.2578 -22.7276 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4374 -22.6462 0 - vertex -17.2249 -22.8126 0 - vertex -17.3267 -22.6747 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.2249 -22.8126 0 - vertex -17.4374 -22.6462 0 - vertex -17.2226 -22.9371 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.8061 -22.6324 0 - vertex -17.2226 -22.9371 0 - vertex -17.4374 -22.6462 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.2226 -22.9371 0 - vertex -17.8061 -22.6324 0 - vertex -17.2873 -23.335 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.1091 -22.6172 0 - vertex -17.2873 -23.335 0 - vertex -17.8061 -22.6324 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.2873 -23.335 0 - vertex -18.1091 -22.6172 0 - vertex -17.4084 -23.7485 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.3541 -22.5704 0 - vertex -17.4084 -23.7485 0 - vertex -18.1091 -22.6172 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4084 -23.7485 0 - vertex -18.3541 -22.5704 0 - vertex -17.6656 -24.469 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5429 -22.4899 0 - vertex -17.6656 -24.469 0 - vertex -18.3541 -22.5704 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.6769 -22.3738 0 - vertex -17.6656 -24.469 0 - vertex -18.5429 -22.4899 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.6656 -24.469 0 - vertex -18.6769 -22.3738 0 - vertex -18.5311 -26.6889 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.116 -21.2395 0 - vertex -18.6769 -22.3738 0 - vertex -18.7577 -22.2202 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.116 -21.2395 0 - vertex -18.7577 -22.2202 0 - vertex -18.7869 -22.0269 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.4218 -21.0091 0 - vertex -20.3435 -18.0357 0 - vertex -18.5053 -21.1105 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -20.5945 -18.108 0 - vertex -18.5053 -21.1105 0 - vertex -20.3435 -18.0357 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5053 -21.1105 0 - vertex -20.5945 -18.108 0 - vertex -18.5788 -21.2283 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -20.8463 -18.1339 0 - vertex -18.5788 -21.2283 0 - vertex -20.5945 -18.108 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.6874 -20.0641 0 - vertex -18.5788 -21.2283 0 - vertex -22.5978 -19.6581 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.8608 -20.5868 0 - vertex -18.6967 -21.5139 0 - vertex -22.6874 -20.0641 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -23.116 -21.2395 0 - vertex -18.7869 -22.0269 0 - vertex -22.8608 -20.5868 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.6967 -21.5139 0 - vertex -22.8608 -20.5868 0 - vertex -18.766 -21.7922 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5788 -21.2283 0 - vertex -20.8463 -18.1339 0 - vertex -22.5978 -19.6581 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.585 -19.4947 0 - vertex -20.8463 -18.1339 0 - vertex -21.0912 -18.1093 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.594 -19.3555 0 - vertex -21.0912 -18.1093 0 - vertex -21.2545 -18.0693 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.6769 -22.3738 0 - vertex -23.116 -21.2395 0 - vertex -24.3958 -24.3815 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.625 -19.2389 0 - vertex -21.2545 -18.0693 0 - vertex -21.378 -18.0171 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.6782 -19.1432 0 - vertex -21.378 -18.0171 0 - vertex -21.4669 -17.9347 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.7539 -19.0668 0 - vertex -21.4669 -17.9347 0 - vertex -21.5263 -17.8042 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.9739 -18.9651 0 - vertex -21.5263 -17.8042 0 - vertex -21.5614 -17.6077 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.1186 -18.9365 0 - vertex -21.5614 -17.6077 0 - vertex -21.5774 -17.3273 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.766 -21.7922 0 - vertex -22.8608 -20.5868 0 - vertex -18.7869 -22.0269 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5729 -16.4428 0 - vertex -22.9103 -14.3386 0 - vertex -23.3301 -14.2877 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.9412 -14.6683 0 - vertex -21.5879 -15.2616 0 - vertex -21.6284 -15.0493 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.7989 -14.7733 0 - vertex -21.6284 -15.0493 0 - vertex -21.6966 -14.8935 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.6284 -15.0493 0 - vertex -21.7989 -14.7733 0 - vertex -21.9412 -14.6683 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5788 -21.2283 0 - vertex -22.6874 -20.0641 0 - vertex -18.6967 -21.5139 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5879 -15.2616 0 - vertex -21.9412 -14.6683 0 - vertex -22.1296 -14.5577 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5693 -15.5508 0 - vertex -22.1296 -14.5577 0 - vertex -22.3213 -14.4724 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.8463 -18.1339 0 - vertex -22.585 -19.4947 0 - vertex -22.5978 -19.6581 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5693 -15.5508 0 - vertex -22.3213 -14.4724 0 - vertex -22.5778 -14.3998 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.6769 -22.3738 0 - vertex -24.3958 -24.3815 0 - vertex -18.5311 -26.6889 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5693 -15.5508 0 - vertex -22.5778 -14.3998 0 - vertex -22.9103 -14.3386 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.9793 -25.8003 0 - vertex -18.5311 -26.6889 0 - vertex -24.3958 -24.3815 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.5311 -26.6889 0 - vertex -24.9793 -25.8003 0 - vertex -19.7699 -29.7113 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.0912 -18.1093 0 - vertex -22.594 -19.3555 0 - vertex -22.585 -19.4947 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2545 -18.0693 0 - vertex -22.625 -19.2389 0 - vertex -22.594 -19.3555 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.378 -18.0171 0 - vertex -22.6782 -19.1432 0 - vertex -22.625 -19.2389 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.4669 -17.9347 0 - vertex -22.7539 -19.0668 0 - vertex -22.6782 -19.1432 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5263 -17.8042 0 - vertex -22.8524 -19.008 0 - vertex -22.7539 -19.0668 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.6632 -18.9241 0 - vertex -21.5729 -16.4428 0 - vertex -23.3301 -14.2877 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5263 -17.8042 0 - vertex -22.9739 -18.9651 0 - vertex -22.8524 -19.008 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5614 -17.6077 0 - vertex -23.1186 -18.9365 0 - vertex -22.9739 -18.9651 0 + vertex -21.28 -33.2523 0 + vertex -24.7956 -33.2498 0 + vertex -22.458 -35.4568 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -23.4791 -18.9156 0 - vertex -21.5729 -16.4428 0 - vertex -23.6632 -18.9241 0 + vertex -23.6767 -35.9691 0 + vertex -22.458 -35.4568 0 + vertex -24.7956 -33.2498 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -21.5774 -17.3273 0 - vertex -23.4791 -18.9156 0 - vertex -23.1186 -18.9365 0 + vertex -22.458 -35.4568 0 + vertex -23.6767 -35.9691 0 + vertex -23.007 -35.8619 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -21.5729 -16.4428 0 - vertex -23.4791 -18.9156 0 - vertex -21.5774 -17.3273 0 + vertex -23.6767 -35.9691 0 + vertex -24.7956 -33.2498 0 + vertex -24.4194 -36.2501 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.4767 -14.2125 0 - vertex -23.6632 -18.9241 0 - vertex -23.3301 -14.2877 0 + vertex -27.2791 -36.8782 0 + vertex -24.4194 -36.2501 0 + vertex -24.7956 -33.2498 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -23.6632 -18.9241 0 - vertex -24.4767 -14.2125 0 - vertex -23.8226 -18.954 0 + vertex -24.4194 -36.2501 0 + vertex -27.2791 -36.8782 0 + vertex -24.9699 -36.888 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -23.8226 -18.954 0 - vertex -24.4767 -14.2125 0 - vertex -23.9653 -19.0124 0 + vertex -24.9699 -36.888 0 + vertex -27.2791 -36.8782 0 + vertex -25.157 -37.5754 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -26.1077 -14.1654 0 - vertex -23.9653 -19.0124 0 - vertex -24.4767 -14.2125 0 + vertex -22.4212 26.8695 0 + vertex -21.4485 26.3569 0 + vertex -21.2681 26.5576 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -23.9653 -19.0124 0 - vertex -26.1077 -14.1654 0 - vertex -24.0993 -19.1062 0 + vertex -21.4485 26.3569 0 + vertex -22.4212 26.8695 0 + vertex -22.0473 26.2369 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.0993 -19.1062 0 - vertex -26.1077 -14.1654 0 - vertex -24.2328 -19.2424 0 + vertex -24.8433 26.205 0 + vertex -22.4212 26.8695 0 + vertex -23.8902 27.3484 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.2328 -19.2424 0 - vertex -26.1077 -14.1654 0 - vertex -24.3738 -19.4278 0 + vertex -22.4212 26.8695 0 + vertex -24.8433 26.205 0 + vertex -22.0473 26.2369 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -28.2448 -14.1442 0 - vertex -24.3738 -19.4278 0 - vertex -26.1077 -14.1654 0 + vertex -24.3225 27.6757 0 + vertex -24.8433 26.205 0 + vertex -23.8902 27.3484 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.3738 -19.4278 0 - vertex -28.2448 -14.1442 0 - vertex -24.7108 -19.9745 0 + vertex -27.4214 26.3653 0 + vertex -24.3225 27.6757 0 + vertex -24.3632 27.9554 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -8.78909 -22.7249 0 + vertex -8.46819 -23.4267 0 + vertex -8.55624 -22.9989 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -8.46819 -23.4267 0 + vertex -8.78909 -22.7249 0 + vertex -9.69161 -22.56 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -8.46819 -23.4267 0 + vertex -9.69161 -22.56 0 + vertex -8.72405 -24.8218 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -31.1223 -16.1487 0 - vertex -24.7108 -19.9745 0 - vertex -28.2448 -14.1442 0 + vertex -10.5461 -22.7271 0 + vertex -8.72405 -24.8218 0 + vertex -9.69161 -22.56 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -31.4477 -16.8607 0 - vertex -24.7108 -19.9745 0 - vertex -31.1223 -16.1487 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.7108 -19.9745 0 - vertex -31.4477 -16.8607 0 - vertex -24.9407 -20.3516 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.9407 -20.3516 0 - vertex -31.4477 -16.8607 0 - vertex -25.1784 -20.695 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.1784 -20.695 0 - vertex -31.4477 -16.8607 0 - vertex -25.4267 -21.0057 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.4267 -21.0057 0 - vertex -31.4477 -16.8607 0 - vertex -25.6884 -21.2849 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.6884 -21.2849 0 - vertex -31.4477 -16.8607 0 - vertex -25.9661 -21.5339 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.9661 -21.5339 0 - vertex -31.4477 -16.8607 0 - vertex -26.2627 -21.7538 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.2627 -21.7538 0 - vertex -31.4477 -16.8607 0 - vertex -26.5809 -21.9457 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.5809 -21.9457 0 - vertex -31.8034 -17.6899 0 - vertex -26.9234 -22.1109 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.9234 -22.1109 0 - vertex -31.8034 -17.6899 0 - vertex -27.2929 -22.2506 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.2929 -22.2506 0 - vertex -31.8034 -17.6899 0 - vertex -27.6923 -22.3658 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.678 -15.2903 0 - vertex -28.2448 -14.1442 0 - vertex -28.9898 -14.1579 0 + vertex -11.3967 -23.0769 0 + vertex -8.72405 -24.8218 0 + vertex -10.5461 -22.7271 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -31.8034 -17.6899 0 - vertex -26.5809 -21.9457 0 - vertex -31.4477 -16.8607 0 + vertex -12.4124 -23.7203 0 + vertex -8.72405 -24.8218 0 + vertex -11.3967 -23.0769 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -30.5215 -14.964 0 - vertex -28.9898 -14.1579 0 - vertex -29.549 -14.1906 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.6923 -22.3658 0 - vertex -31.8034 -17.6899 0 - vertex -28.1242 -22.4577 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.4158 -14.7057 0 - vertex -29.549 -14.1906 0 - vertex -29.9449 -14.2443 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.377 -14.5514 0 - vertex -29.9449 -14.2443 0 - vertex -30.1999 -14.321 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.9898 -14.1579 0 - vertex -30.5215 -14.964 0 - vertex -30.678 -15.2903 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.377 -14.5514 0 - vertex -30.1999 -14.321 0 - vertex -30.2816 -14.3686 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.377 -14.5514 0 - vertex -30.2816 -14.3686 0 - vertex -30.3364 -14.4227 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.377 -14.5514 0 - vertex -30.3364 -14.4227 0 - vertex -30.3673 -14.4836 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.9449 -14.2443 0 - vertex -30.377 -14.5514 0 - vertex -30.4158 -14.7057 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.549 -14.1906 0 - vertex -30.4158 -14.7057 0 - vertex -30.5215 -14.964 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2448 -14.1442 0 - vertex -30.678 -15.2903 0 - vertex -30.8691 -15.6487 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2448 -14.1442 0 - vertex -30.8691 -15.6487 0 - vertex -31.1223 -16.1487 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.1242 -22.4577 0 - vertex -31.8034 -17.6899 0 - vertex -28.5914 -22.5277 0 + vertex -8.72405 -24.8218 0 + vertex -12.4124 -23.7203 0 + vertex -9.55184 -27.0667 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -32.1476 -18.5412 0 - vertex -28.5914 -22.5277 0 - vertex -31.8034 -17.6899 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.5914 -22.5277 0 - vertex -32.1476 -18.5412 0 - vertex -29.0966 -22.5767 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0966 -22.5767 0 - vertex -32.1476 -18.5412 0 - vertex -29.6427 -22.606 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.6427 -22.606 0 - vertex -32.1476 -18.5412 0 - vertex -30.2322 -22.6168 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2322 -22.6168 0 - vertex -32.1476 -18.5412 0 - vertex -30.868 -22.6102 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.868 -22.6102 0 - vertex -32.1476 -18.5412 0 - vertex -31.8095 -22.5865 0 + vertex -13.1427 -24.3848 0 + vertex -9.55184 -27.0667 0 + vertex -12.4124 -23.7203 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -33.2902 -21.4299 0 - vertex -31.8095 -22.5865 0 - vertex -32.1476 -18.5412 0 + vertex -14.2216 -26.3227 0 + vertex -9.55184 -27.0667 0 + vertex -13.7062 -25.2068 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -31.8095 -22.5865 0 - vertex -33.2902 -21.4299 0 - vertex -32.5132 -22.5543 0 + vertex -9.55184 -27.0667 0 + vertex -15.3894 -29.1914 0 + vertex -11.5932 -32.143 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -32.5132 -22.5543 0 - vertex -33.2902 -21.4299 0 - vertex -33.0067 -22.5002 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -33.4325 -21.7956 0 - vertex -33.0067 -22.5002 0 - vertex -33.2902 -21.4299 0 + vertex -9.55184 -27.0667 0 + vertex -13.1427 -24.3848 0 + vertex -13.7062 -25.2068 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -33.0067 -22.5002 0 - vertex -33.4325 -21.7956 0 - vertex -33.1833 -22.4608 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -33.503 -22.0719 0 - vertex -33.1833 -22.4608 0 - vertex -33.4325 -21.7956 0 + vertex -15.3894 -29.1914 0 + vertex -9.55184 -27.0667 0 + vertex -14.2216 -26.3227 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -33.1833 -22.4608 0 - vertex -33.503 -22.0719 0 - vertex -33.3177 -22.4108 0 + vertex -16.8281 -32.7116 0 + vertex -11.5932 -32.143 0 + vertex -15.3894 -29.1914 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -33.3177 -22.4108 0 - vertex -33.503 -22.0719 0 - vertex -33.4135 -22.3486 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -33.5026 -22.1809 0 - vertex -33.4135 -22.3486 0 - vertex -33.503 -22.0719 0 + vertex -11.5932 -32.143 0 + vertex -16.8281 -32.7116 0 + vertex -12.3385 -33.8339 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -33.4135 -22.3486 0 - vertex -33.5026 -22.1809 0 - vertex -33.4739 -22.2725 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -23.8031 -31.5911 0 - vertex -21.2682 -33.2523 0 - vertex -23.5218 -31.031 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.2375 -32.3527 0 - vertex -21.2682 -33.2523 0 - vertex -23.8031 -31.5911 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2682 -33.2523 0 - vertex -24.2375 -32.3527 0 - vertex -21.6072 -34.0169 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.6072 -34.0169 0 - vertex -24.2375 -32.3527 0 - vertex -21.9074 -34.6287 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -23.5218 -31.031 0 - vertex -21.2682 -33.2523 0 - vertex -23.4513 -30.847 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -24.7839 -33.2498 0 - vertex -21.9074 -34.6287 0 - vertex -24.2375 -32.3527 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.7699 -29.7113 0 - vertex -23.4345 -30.738 0 - vertex -21.2682 -33.2523 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.9074 -34.6287 0 - vertex -24.7839 -33.2498 0 - vertex -22.1824 -35.1035 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.1824 -35.1035 0 - vertex -24.7839 -33.2498 0 - vertex -22.4463 -35.4568 0 + vertex -12.3385 -33.8339 0 + vertex -16.8281 -32.7116 0 + vertex -13.0448 -35.0276 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -23.665 -35.9691 0 - vertex -22.4463 -35.4568 0 - vertex -24.7839 -33.2498 0 + vertex -14.3732 -35.9691 0 + vertex -13.0448 -35.0276 0 + vertex -16.8281 -32.7116 0 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 1 outer loop - vertex -23.4513 -30.847 0 - vertex -21.2682 -33.2523 0 - vertex -23.4345 -30.738 0 + vertex -13.0448 -35.0276 0 + vertex -14.3732 -35.9691 0 + vertex -13.7203 -35.7356 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -14.3732 -35.9691 0 + vertex -16.8281 -32.7116 0 + vertex -14.8949 -36.1495 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -23.4345 -30.738 0 - vertex -19.7699 -29.7113 0 - vertex -23.4571 -30.6716 0 + vertex -16.5846 -36.2152 0 + vertex -14.8949 -36.1495 0 + vertex -16.8281 -32.7116 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -19.7699 -29.7113 0 - vertex -23.5012 -30.6026 0 - vertex -23.4571 -30.6716 0 + vertex -16.6989 -37.6188 0 + vertex -15.9213 -37.1689 0 + vertex -16.2226 -36.752 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -19.7699 -29.7113 0 - vertex -23.6433 -30.465 0 - vertex -23.5012 -30.6026 0 + vertex -14.8949 -36.1495 0 + vertex -16.5846 -36.2152 0 + vertex -15.4682 -36.5832 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -15.4682 -36.5832 0 + vertex -16.2226 -36.752 0 + vertex -15.9213 -37.1689 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -15.4682 -36.5832 0 + vertex -16.5846 -36.2152 0 + vertex -16.2226 -36.752 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -17.7285 -35.3062 0 + vertex -16.5846 -36.2152 0 + vertex -16.8281 -32.7116 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -16.5846 -36.2152 0 + vertex -17.7285 -35.3062 0 + vertex -17.3742 -35.9691 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -17.3742 -35.9691 0 + vertex -17.7285 -35.3062 0 + vertex -17.6987 -35.8223 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -10.3766 -20.1728 0 + vertex -11.7016 -19.4898 0 + vertex -11.6824 -19.9072 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.45272 -3.03042 0 + vertex -11.9141 -19.2259 0 + vertex -11.7016 -19.4898 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.45272 -3.03042 0 + vertex -17.4385 -11.5861 0 + vertex -11.9141 -19.2259 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -17.5299 12.3491 0 + vertex -3.71458 -2.66291 0 + vertex -13.7227 13.3517 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -17.4456 -12.0833 0 + vertex -11.9141 -19.2259 0 + vertex -17.4385 -11.5861 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -11.9141 -19.2259 0 + vertex -17.4456 -12.0833 0 + vertex -12.3137 -19.1333 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -17.7993 -11.4712 0 + vertex -3.71458 -2.66291 0 + vertex -17.5299 12.3491 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.71458 -2.66291 0 + vertex -17.7993 -11.4712 0 + vertex -17.4385 -11.5861 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -20.0298 12.0063 0 + vertex -17.7993 -11.4712 0 + vertex -17.5299 12.3491 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -22.4428 11.7593 0 + vertex -17.7993 -11.4712 0 + vertex -20.0298 12.0063 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -27.1868 -11.3523 0 + vertex -22.4428 11.7593 0 + vertex -25.7097 11.6586 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.4428 11.7593 0 + vertex -27.1868 -11.3523 0 + vertex -17.7993 -11.4712 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -28.6588 11.7129 0 + vertex -27.1868 -11.3523 0 + vertex -25.7097 11.6586 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -34.87 -11.3196 0 + vertex -28.6588 11.7129 0 + vertex -30.1182 11.9311 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -36.792 -11.6364 0 + vertex -30.1182 11.9311 0 + vertex -30.3887 12.6783 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -35.7552 21.6337 0 + vertex -30.3887 12.6783 0 + vertex -33.0651 20.3093 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -28.6588 11.7129 0 + vertex -34.87 -11.3196 0 + vertex -27.1868 -11.3523 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -37.6991 23.0789 0 + vertex -30.3887 12.6783 0 + vertex -35.7552 21.6337 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.1182 11.9311 0 + vertex -36.1936 -11.4238 0 + vertex -34.87 -11.3196 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.1182 11.9311 0 + vertex -36.792 -11.6364 0 + vertex -36.1936 -11.4238 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.3887 12.6783 0 + vertex -37.6991 23.0789 0 + vertex -36.792 -11.6364 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -36.792 -11.6364 0 + vertex -37.6991 23.0789 0 + vertex -37.3951 -12.1929 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -38.3729 23.836 0 + vertex -37.3951 -12.1929 0 + vertex -37.6991 23.0789 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.80393 -35.193 0 + vertex -7.51249 -36.3769 0 + vertex -7.31439 -36.7536 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.99709 -33.5697 0 + vertex -8.33648 -34.384 0 + vertex -7.51249 -36.3769 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -7.51249 -36.3769 0 + vertex -8.33648 -34.384 0 + vertex -7.98605 -36.0592 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -8.56822 -35.3052 0 + vertex -7.98605 -36.0592 0 + vertex -8.33648 -34.384 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -7.98605 -36.0592 0 + vertex -8.56822 -35.3052 0 + vertex -8.51129 -35.7129 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1.41055 11.926 0 + vertex 1.8467 12.7398 0 + vertex 1.50002 13.1874 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1.8467 12.7398 0 + vertex 1.41055 11.926 0 + vertex 1.87173 12.344 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 0.918757 13.5702 0 + vertex 1.41055 11.926 0 + vertex 1.50002 13.1874 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 0.918757 13.5702 0 + vertex 0.535115 11.4454 0 + vertex 1.41055 11.926 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 0.918757 13.5702 0 + vertex -0.394194 11.1972 0 + vertex 0.535115 11.4454 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -0.928844 14.138 0 + vertex -0.394194 11.1972 0 + vertex 0.918757 13.5702 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -0.928844 14.138 0 + vertex -1.46211 11.1697 0 + vertex -0.394194 11.1972 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -0.928844 14.138 0 + vertex -2.75335 11.3511 0 + vertex -1.46211 11.1697 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.65881 14.4362 0 + vertex -2.75335 11.3511 0 + vertex -0.928844 14.138 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.65881 14.4362 0 + vertex -5.07797 11.6776 0 + vertex -2.75335 11.3511 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -7.23385 14.4578 0 + vertex -5.07797 11.6776 0 + vertex -3.65881 14.4362 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -5.07797 11.6776 0 + vertex -7.23385 14.4578 0 + vertex -5.71478 11.6495 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -5.71478 11.6495 0 + vertex -7.23385 14.4578 0 + vertex -5.93765 11.491 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -13.7227 13.3517 0 + vertex -5.93765 11.491 0 + vertex -10.6367 14.238 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -4.99153 10.6633 0 + vertex -13.7227 13.3517 0 + vertex -3.71458 -2.66291 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.45272 -3.03042 0 + vertex -8.78621 -19.378 0 + vertex -7.1272 -19.1706 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.45272 -3.03042 0 + vertex -11.7016 -19.4898 0 + vertex -8.78621 -19.378 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -11.7016 -19.4898 0 + vertex -10.3766 -20.1728 0 + vertex -8.78621 -19.378 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -11.8627 -20.4599 0 + vertex -10.3766 -20.1728 0 + vertex -11.6824 -19.9072 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -10.3766 -20.1728 0 + vertex -11.8627 -20.4599 0 + vertex -12.0544 -21.102 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -12.3137 -19.1333 0 + vertex -17.4456 -12.0833 0 + vertex -15.1553 -19.8912 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -19.3785 -17.1305 0 + vertex -15.1553 -19.8912 0 + vertex -17.4456 -12.0833 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -15.1553 -19.8912 0 + vertex -19.3785 -17.1305 0 + vertex -17.9982 -20.7653 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -19.683 -17.584 0 + vertex -17.9982 -20.7653 0 + vertex -19.3785 -17.1305 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -20.1126 -17.9213 0 + vertex -17.9982 -20.7653 0 + vertex -19.683 -17.584 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -17.9982 -20.7653 0 + vertex -20.1126 -17.9213 0 + vertex -18.4336 -21.0091 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -17.8179 -22.6324 0 + vertex -17.299 -23.335 0 + vertex -17.2695 -22.7276 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.3659 -22.5704 0 + vertex -17.299 -23.335 0 + vertex -17.8179 -22.6324 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.3659 -22.5704 0 + vertex -18.5428 -26.6889 0 + vertex -17.299 -23.335 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.6886 -22.3738 0 + vertex -18.5428 -26.6889 0 + vertex -18.3659 -22.5704 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.7084 -21.5139 0 + vertex -22.6991 -20.0641 0 + vertex -18.7986 -22.0269 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -20.6062 -18.108 0 + vertex -18.4336 -21.0091 0 + vertex -20.1126 -17.9213 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.4336 -21.0091 0 + vertex -20.6062 -18.108 0 + vertex -18.7084 -21.5139 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.6991 -20.0641 0 + vertex -20.6062 -18.108 0 + vertex -22.6057 -19.3555 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -20.6062 -18.108 0 + vertex -22.6991 -20.0641 0 + vertex -18.7084 -21.5139 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.6057 -19.3555 0 + vertex -20.6062 -18.108 0 + vertex -21.1029 -18.1093 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -23.1278 -21.2395 0 + vertex -18.7986 -22.0269 0 + vertex -22.6991 -20.0641 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.6057 -19.3555 0 + vertex -21.1029 -18.1093 0 + vertex -21.3898 -18.0171 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.8641 -19.008 0 + vertex -21.3898 -18.0171 0 + vertex -21.538 -17.8042 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -23.4908 -18.9156 0 + vertex -21.538 -17.8042 0 + vertex -21.5846 -16.4428 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.1413 -14.5577 0 + vertex -21.5846 -16.4428 0 + vertex -21.6401 -15.0493 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.1413 -14.5577 0 + vertex -21.6401 -15.0493 0 + vertex -21.8106 -14.7733 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -18.7986 -22.0269 0 + vertex -23.1278 -21.2395 0 + vertex -18.6886 -22.3738 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -21.5846 -16.4428 0 + vertex -22.1413 -14.5577 0 + vertex -23.3419 -14.2877 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -24.4076 -24.3815 0 + vertex -18.6886 -22.3738 0 + vertex -23.1278 -21.2395 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -21.28 -33.2523 0 + vertex -22.458 -35.4568 0 + vertex -21.9191 -34.6287 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -21.3898 -18.0171 0 + vertex -22.8641 -19.008 0 + vertex -22.6057 -19.3555 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -21.5846 -16.4428 0 + vertex -23.3419 -14.2877 0 + vertex -23.4908 -18.9156 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -21.538 -17.8042 0 + vertex -23.4908 -18.9156 0 + vertex -22.8641 -19.008 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -23.3419 -14.2877 0 + vertex -24.1111 -19.1062 0 + vertex -23.4908 -18.9156 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -26.1195 -14.1654 0 + vertex -24.1111 -19.1062 0 + vertex -23.3419 -14.2877 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -24.1111 -19.1062 0 + vertex -26.1195 -14.1654 0 + vertex -24.7225 -19.9745 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -30.8809 -15.6487 0 + vertex -24.7225 -19.9745 0 + vertex -26.1195 -14.1654 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -24.7225 -19.9745 0 + vertex -30.8809 -15.6487 0 + vertex -25.7001 -21.2849 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -32.1593 -18.5412 0 + vertex -25.7001 -21.2849 0 + vertex -30.8809 -15.6487 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.8809 -15.6487 0 + vertex -26.1195 -14.1654 0 + vertex -29.5608 -14.1906 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.3887 -14.5514 0 + vertex -29.5608 -14.1906 0 + vertex -30.2116 -14.321 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -29.5608 -14.1906 0 + vertex -30.3887 -14.5514 0 + vertex -30.8809 -15.6487 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -25.7001 -21.2849 0 + vertex -32.1593 -18.5412 0 + vertex -26.9351 -22.1109 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -26.9351 -22.1109 0 + vertex -32.1593 -18.5412 0 + vertex -28.6031 -22.5277 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -28.6031 -22.5277 0 + vertex -32.1593 -18.5412 0 + vertex -30.8797 -22.6102 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex -33.3019 -21.4299 0 + vertex -30.8797 -22.6102 0 + vertex -32.1593 -18.5412 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -30.8797 -22.6102 0 + vertex -33.3019 -21.4299 0 + vertex -32.5249 -22.5543 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -33.3019 -21.4299 0 + vertex -33.3295 -22.4108 0 + vertex -32.5249 -22.5543 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -23.8399 -30.3412 0 - vertex -19.7699 -29.7113 0 - vertex -24.9793 -25.8003 0 + vertex -33.3295 -22.4108 0 + vertex -33.3019 -21.4299 0 + vertex -33.5147 -22.0719 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -19.7699 -29.7113 0 - vertex -23.8399 -30.3412 0 - vertex -23.6433 -30.465 0 + vertex 14.2455 -2.23644 0 + vertex 14.2516 -3.15818 0 + vertex 14.333 -2.7489 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 14.2455 -2.23644 0 + vertex 13.8131 -3.7697 0 + vertex 14.2516 -3.15818 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 13.172 -4.2601 0 + vertex 14.2455 -2.23644 0 + vertex 13.5923 -0.94501 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 14.2455 -2.23644 0 + vertex 13.172 -4.2601 0 + vertex 13.8131 -3.7697 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 13.5923 -0.94501 0 + vertex 12.4032 -4.58609 0 + vertex 13.172 -4.2601 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 10.2758 -4.53506 0 + vertex 13.5923 -0.94501 0 + vertex 12.3489 0.629998 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 13.5923 -0.94501 0 + vertex 11.5814 -4.70438 0 + vertex 12.4032 -4.58609 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 7.74282 -3.09522 0 + vertex 12.3489 0.629998 0 + vertex 10.5724 2.40247 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 13.5923 -0.94501 0 + vertex 10.2758 -4.53506 0 + vertex 11.5814 -4.70438 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 6.41545 -1.76788 0 + vertex 10.5724 2.40247 0 + vertex 9.13441 3.60373 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.3489 0.629998 0 + vertex 9.01294 -4.00814 0 + vertex 10.2758 -4.53506 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 4.6091 0.441775 0 + vertex 9.13441 3.60373 0 + vertex 8.18559 4.25764 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.3489 0.629998 0 + vertex 7.74282 -3.09522 0 + vertex 9.01294 -4.00814 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 10.5724 2.40247 0 + vertex 6.41545 -1.76788 0 + vertex 7.74282 -3.09522 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 4.39665 0.754678 0 + vertex 8.18559 4.25764 0 + vertex 5.26682 5.76024 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 9.13441 3.60373 0 + vertex 4.6091 0.441775 0 + vertex 6.41545 -1.76788 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 8.18559 4.25764 0 + vertex 4.39665 0.754678 0 + vertex 4.6091 0.441775 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1.66409 7.13679 0 + vertex 4.39665 0.754678 0 + vertex 5.26682 5.76024 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 4.39665 0.754678 0 + vertex 1.66409 7.13679 0 + vertex 4.24084 0.464987 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.55278 -2.51803 0 + vertex 4.24084 0.464987 0 + vertex 1.66409 7.13679 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 4.24084 0.464987 0 + vertex 1.09298 -4.60426 0 + vertex 3.9592 -5.58648 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.55278 -2.51803 0 + vertex 1.66409 7.13679 0 + vertex -0.248642 7.94666 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 4.24084 0.464987 0 + vertex -1.72768 -3.30659 0 + vertex 1.09298 -4.60426 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.55278 -2.51803 0 + vertex -0.248642 7.94666 0 + vertex -2.78119 9.30203 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 4.24084 0.464987 0 + vertex -3.55278 -2.51803 0 + vertex -1.72768 -3.30659 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -4.99153 10.6633 0 + vertex -3.55278 -2.51803 0 + vertex -2.78119 9.30203 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -1.19093 -26.1306 0 + vertex -4.26405 -24.3543 0 + vertex -2.25121 -28.0146 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -25.4624 -26.9141 0 - vertex -23.8399 -30.3412 0 - vertex -24.9793 -25.8003 0 + vertex -3.89417 -22.8317 0 + vertex 0.168338 -24.355 0 + vertex -3.85646 -21.6547 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -23.8399 -30.3412 0 - vertex -25.4624 -26.9141 0 - vertex -24.0701 -30.2475 0 + vertex 3.72385 -21.1527 0 + vertex -4.06681 -20.6308 0 + vertex 1.84511 -22.661 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.0701 -30.2475 0 - vertex -25.4624 -26.9141 0 - vertex -24.2803 -30.1833 0 + vertex -3.55278 -2.51803 0 + vertex -4.99153 10.6633 0 + vertex -3.71458 -2.66291 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -13.7227 13.3517 0 + vertex -4.99153 10.6633 0 + vertex -5.93765 11.491 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3.854 -7.59505 0 + vertex -5.57075 -19.2012 0 + vertex -4.70045 -19.8327 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -25.8688 -27.7587 0 - vertex -24.2803 -30.1833 0 - vertex -25.4624 -26.9141 0 + vertex -10.6367 14.238 0 + vertex -5.93765 11.491 0 + vertex -7.23385 14.4578 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.2803 -30.1833 0 - vertex -25.8688 -27.7587 0 - vertex -24.455 -30.1541 0 + vertex -2.05653 -4.03047 0 + vertex -7.1272 -19.1706 0 + vertex -5.57075 -19.2012 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.455 -30.1541 0 - vertex -25.8688 -27.7587 0 - vertex -24.5406 -30.1604 0 + vertex 7.03104 -4.97268 0 + vertex 7.21237 -5.88439 0 + vertex 7.79727 -5.75259 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 5.81183 -5.98051 0 + vertex 7.03104 -4.97268 0 + vertex 5.97791 -3.63939 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 7.03104 -4.97268 0 + vertex 5.81183 -5.98051 0 + vertex 7.21237 -5.88439 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3.9592 -5.58648 0 + vertex 5.97791 -3.63939 0 + vertex 5.02006 -2.01238 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3.9592 -5.58648 0 + vertex 5.02006 -2.01238 0 + vertex 4.37015 -0.506109 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 5.97791 -3.63939 0 + vertex 3.9592 -5.58648 0 + vertex 5.81183 -5.98051 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3.9592 -5.58648 0 + vertex 4.37015 -0.506109 0 + vertex 4.24084 0.464987 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 14.6656 -34.4466 0 + vertex 12.1385 -34.7994 0 + vertex 12.2351 -35.1874 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 14.7938 -32.2631 0 + vertex 11.871 -34.5351 0 + vertex 14.6656 -34.4466 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 14.6656 -34.4466 0 + vertex 11.871 -34.5351 0 + vertex 12.1385 -34.7994 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -26.0506 -28.0911 0 - vertex -24.5406 -30.1604 0 - vertex -25.8688 -27.7587 0 + vertex 10.915 -33.0747 0 + vertex 11.871 -34.5351 0 + vertex 11.4887 -31.4602 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.5406 -30.1604 0 - vertex -26.0506 -28.0911 0 - vertex -24.6311 -30.1847 0 + vertex 11.871 -34.5351 0 + vertex 10.915 -33.0747 0 + vertex 11.4551 -34.4353 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -26.2221 -28.3696 0 - vertex -24.6311 -30.1847 0 - vertex -26.0506 -28.0911 0 + vertex 10.7197 -33.9677 0 + vertex 11.4551 -34.4353 0 + vertex 10.915 -33.0747 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.6311 -30.1847 0 - vertex -26.2221 -28.3696 0 - vertex -24.8452 -30.2998 0 + vertex 11.4551 -34.4353 0 + vertex 10.7197 -33.9677 0 + vertex 10.9006 -34.3507 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.858 -14.1239 0 + vertex 13.2867 -16.8469 0 + vertex 14.1246 -14.3424 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.417 -13.7469 0 + vertex 13.2867 -16.8469 0 + vertex 12.858 -14.1239 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.417 -13.7469 0 + vertex 12.058 -19.7199 0 + vertex 13.2867 -16.8469 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.058 -19.7199 0 + vertex 12.417 -13.7469 0 + vertex 12.4073 -13.2773 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -26.3861 -28.5987 0 - vertex -24.8452 -30.2998 0 - vertex -26.2221 -28.3696 0 + vertex 11.8088 29.3224 0 + vertex 15.0577 29.0611 0 + vertex 12.0187 29.9363 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.122 28.0941 0 + vertex 11.7374 28.4518 0 + vertex 11.8052 27.5343 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.0577 29.0611 0 + vertex 11.8088 29.3224 0 + vertex 11.7374 28.4518 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.122 28.0941 0 + vertex 11.8052 27.5343 0 + vertex 12.0123 26.7794 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.122 28.0941 0 + vertex 12.0123 26.7794 0 + vertex 12.5486 25.9653 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 24.1542 17.4223 0 + vertex 24.7931 16.6725 0 + vertex 24.7174 17.1695 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 24.1542 17.4223 0 + vertex 23.3802 15.8262 0 + vertex 24.7931 16.6725 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 22.547 17.5015 0 + vertex 23.3802 15.8262 0 + vertex 24.1542 17.4223 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 22.547 17.5015 0 + vertex 21.1653 14.8489 0 + vertex 23.3802 15.8262 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.2159 17.5562 0 + vertex 21.1653 14.8489 0 + vertex 22.547 17.5015 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.2159 17.5562 0 + vertex 20.0668 14.6265 0 + vertex 21.1653 14.8489 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 18.4164 15.1559 0 + vertex 20.2159 17.5562 0 + vertex 19.8437 17.7553 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 16.5954 15.8977 0 + vertex 19.8437 17.7553 0 + vertex 19.5351 18.2611 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.2045 16.623 0 + vertex 19.5351 18.2611 0 + vertex 19.0948 20.2262 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 17.155 22.8321 0 + vertex 19.0948 20.2262 0 + vertex 18.6529 22.0992 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.2159 17.5562 0 + vertex 18.4164 15.1559 0 + vertex 20.0668 14.6265 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 13.99 17.4864 0 + vertex 19.0948 20.2262 0 + vertex 17.155 22.8321 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.8437 17.7553 0 + vertex 16.5954 15.8977 0 + vertex 18.4164 15.1559 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 12.6982 18.6425 0 + vertex 17.155 22.8321 0 + vertex 15.5055 23.4995 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.5351 18.2611 0 + vertex 15.2045 16.623 0 + vertex 16.5954 15.8977 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 10.9729 20.5521 0 + vertex 15.5055 23.4995 0 + vertex 14.0164 24.1527 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.0948 20.2262 0 + vertex 13.99 17.4864 0 + vertex 15.2045 16.623 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 10.9729 20.5521 0 + vertex 14.0164 24.1527 0 + vertex 13.0733 24.7212 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 17.155 22.8321 0 + vertex 12.6982 18.6425 0 + vertex 13.99 17.4864 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 9.71033 23.0922 0 + vertex 13.0733 24.7212 0 + vertex 12.1975 25.5292 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 9.07032 24.476 0 + vertex 12.1975 25.5292 0 + vertex 11.5037 26.4501 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 8.51885 25.3107 0 + vertex 11.5037 26.4501 0 + vertex 11.1066 27.3577 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 15.5055 23.4995 0 + vertex 10.9729 20.5521 0 + vertex 12.6982 18.6425 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 7.91411 25.7528 0 + vertex 11.1066 27.3577 0 + vertex 11.0411 28.3898 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -26.5458 -28.7827 0 - vertex -24.8452 -30.2998 0 - vertex -26.3861 -28.5987 0 + vertex 4.30515 36.0346 0 + vertex 12.0544 30.7144 0 + vertex 4.72188 37.0399 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.8452 -30.2998 0 - vertex -26.5458 -28.7827 0 - vertex -25.1341 -30.5242 0 + vertex 12.0544 30.7144 0 + vertex 4.30515 36.0346 0 + vertex 11.5971 30.3591 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -26.7039 -28.9262 0 - vertex -25.1341 -30.5242 0 - vertex -26.5458 -28.7827 0 + vertex 3.57109 31.3388 0 + vertex 11.5971 30.3591 0 + vertex 3.93589 34.5584 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -25.1341 -30.5242 0 - vertex -26.7039 -28.9262 0 - vertex -25.5344 -30.8827 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -26.8635 -29.0336 0 - vertex -25.5344 -30.8827 0 - vertex -26.7039 -28.9262 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.0275 -29.1093 0 - vertex -25.5344 -30.8827 0 - vertex -26.8635 -29.0336 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.1989 -29.1579 0 - vertex -25.5344 -30.8827 0 - vertex -27.0275 -29.1093 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.5344 -30.8827 0 - vertex -27.1989 -29.1579 0 - vertex -26.8166 -32.1012 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.3805 -29.1838 0 - vertex -26.8166 -32.1012 0 - vertex -27.1989 -29.1579 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.5755 -29.1914 0 - vertex -26.8166 -32.1012 0 - vertex -27.3805 -29.1838 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.9775 -29.1782 0 - vertex -26.8166 -32.1012 0 - vertex -27.5755 -29.1914 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.8166 -32.1012 0 - vertex -27.9775 -29.1782 0 - vertex -27.3602 -32.5933 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.0989 -29.15 0 - vertex -27.3602 -32.5933 0 - vertex -27.9775 -29.1782 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.3602 -32.5933 0 - vertex -28.0989 -29.15 0 - vertex -27.924 -33.0516 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.176 -29.097 0 - vertex -27.924 -33.0516 0 - vertex -28.0989 -29.15 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.2461 -34.4632 0 - vertex -28.176 -29.097 0 - vertex -28.2154 -29.0113 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.176 -29.097 0 - vertex -28.5012 -33.4718 0 - vertex -27.924 -33.0516 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.1303 -25.4759 0 - vertex -28.2154 -29.0113 0 - vertex -28.2235 -28.8853 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.0734 -25.6205 0 - vertex -27.9393 -26.9734 0 - vertex -28.7678 -25.6646 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -29.9179 -25.5457 0 - vertex -27.9393 -26.9734 0 - vertex -29.0734 -25.6205 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.9393 -26.9734 0 - vertex -29.9179 -25.5457 0 - vertex -28.1721 -28.4809 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.9759 -25.4949 0 - vertex -28.1721 -28.4809 0 - vertex -29.9179 -25.5457 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.1721 -28.4809 0 - vertex -30.9759 -25.4949 0 - vertex -28.2235 -28.8853 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -32.1303 -25.4759 0 - vertex -28.2235 -28.8853 0 - vertex -30.9759 -25.4949 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.176 -29.097 0 - vertex -29.0852 -33.8499 0 - vertex -28.5012 -33.4718 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.176 -29.097 0 - vertex -29.669 -34.1817 0 - vertex -29.0852 -33.8499 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2154 -29.0113 0 - vertex -32.1303 -25.4759 0 - vertex -36.4516 -28.8697 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.176 -29.097 0 - vertex -30.2461 -34.4632 0 - vertex -29.669 -34.1817 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2154 -29.0113 0 - vertex -36.4516 -28.8697 0 - vertex -30.8095 -34.6902 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2154 -29.0113 0 - vertex -30.8095 -34.6902 0 - vertex -30.2461 -34.4632 0 + vertex 11.5971 30.3591 0 + vertex 4.30515 36.0346 0 + vertex 3.93589 34.5584 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -31.9023 -34.9414 0 - vertex -30.8095 -34.6902 0 - vertex -36.4516 -28.8697 0 + vertex 4.3138 28.4461 0 + vertex 11.5971 30.3591 0 + vertex 3.57109 31.3388 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -30.8095 -34.6902 0 - vertex -31.5797 -34.902 0 - vertex -31.3526 -34.8586 0 + vertex 11.5971 30.3591 0 + vertex 4.3138 28.4461 0 + vertex 5.72413 26.6445 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -30.8095 -34.6902 0 - vertex -31.9023 -34.9414 0 - vertex -31.5797 -34.902 0 + vertex 4.3138 28.4461 0 + vertex 3.57109 31.3388 0 + vertex 3.67763 29.7129 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -31.9023 -34.9414 0 - vertex -36.4516 -28.8697 0 - vertex -32.7769 -35.0076 0 + vertex -6.41168 -29.738 0 + vertex -2.25121 -28.0146 0 + vertex -4.26405 -24.3543 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.4707 -26.6225 0 - vertex -32.1303 -25.4759 0 - vertex -34.9509 -25.4747 0 + vertex -2.25121 -28.0146 0 + vertex -6.41168 -29.738 0 + vertex -3.14673 -30.0798 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.4516 -28.8697 0 - vertex -32.1303 -25.4759 0 - vertex -35.4707 -26.6225 0 + vertex -3.14673 -30.0798 0 + vertex -6.41168 -29.738 0 + vertex -3.7659 -32.0301 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -32.7769 -35.0076 0 - vertex -36.4516 -28.8697 0 - vertex -33.8615 -35.0556 0 + vertex 33.8444 -30.1753 0 + vertex 30.1062 -30.7807 0 + vertex 30.2029 -31.1764 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 30.7817 -27.1595 0 + vertex 29.6885 -30.4984 0 + vertex 30.1062 -30.7807 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -37.5165 -31.4193 0 - vertex -33.8615 -35.0556 0 - vertex -36.4516 -28.8697 0 + vertex 28.9763 -27.4135 0 + vertex 29.6885 -30.4984 0 + vertex 30.7817 -27.1595 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -33.8615 -35.0556 0 - vertex -37.5165 -31.4193 0 - vertex -35.0412 -35.0835 0 + vertex 29.6885 -30.4984 0 + vertex 28.9763 -27.4135 0 + vertex 29.2916 -30.4642 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -35.0412 -35.0835 0 - vertex -37.5165 -31.4193 0 - vertex -36.2012 -35.0898 0 + vertex 28.9763 -27.4135 0 + vertex 28.199 -31.2235 0 + vertex 29.2916 -30.4642 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -38.3711 -33.5534 0 - vertex -36.2012 -35.0898 0 - vertex -37.5165 -31.4193 0 + vertex 25.3774 -27.4375 0 + vertex 28.199 -31.2235 0 + vertex 28.9763 -27.4135 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -36.2012 -35.0898 0 - vertex -38.3711 -33.5534 0 - vertex -37.2267 -35.0727 0 + vertex 28.199 -31.2235 0 + vertex 25.3774 -27.4375 0 + vertex 26.4192 -32.7448 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -37.2267 -35.0727 0 - vertex -38.3711 -33.5534 0 - vertex -38.0027 -35.0306 0 + vertex 25.3774 -27.4375 0 + vertex 24.9271 -33.7368 0 + vertex 26.4192 -32.7448 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -38.6277 -34.2404 0 - vertex -38.0027 -35.0306 0 - vertex -38.3711 -33.5534 0 + vertex 19.5138 -29.5327 0 + vertex 24.9271 -33.7368 0 + vertex 25.3774 -27.4375 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -38.0027 -35.0306 0 - vertex -38.6277 -34.2404 0 - vertex -38.2613 -34.9997 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.2613 -34.9997 0 - vertex -38.6277 -34.2404 0 - vertex -38.4144 -34.9619 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.4144 -34.9619 0 - vertex -38.6277 -34.2404 0 - vertex -38.5336 -34.8886 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.6277 -34.2404 0 - vertex -38.6312 -34.7874 0 - vertex -38.5336 -34.8886 0 + vertex 24.9271 -33.7368 0 + vertex 19.5138 -29.5327 0 + vertex 23.5816 -34.2758 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -38.7214 -34.5543 0 - vertex -38.6312 -34.7874 0 - vertex -38.6277 -34.2404 0 + vertex 19.3087 -31.0557 0 + vertex 23.5816 -34.2758 0 + vertex 19.5138 -29.5327 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -38.6312 -34.7874 0 - vertex -38.7214 -34.5543 0 - vertex -38.6971 -34.6715 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -23.3082 -35.9449 0 - vertex -22.4463 -35.4568 0 - vertex -23.665 -35.9691 0 + vertex 22.2417 -34.4379 0 + vertex 19.3087 -31.0557 0 + vertex 21.4183 -34.349 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -22.5782 -35.5929 0 - vertex -23.3082 -35.9449 0 - vertex -22.7126 -35.7044 0 + vertex 19.9054 -28.0436 0 + vertex 25.3774 -27.4375 0 + vertex 20.1129 -27.4424 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -22.7126 -35.7044 0 - vertex -23.3082 -35.9449 0 - vertex -22.8511 -35.7934 0 + vertex 19.5138 -29.5327 0 + vertex 25.3774 -27.4375 0 + vertex 19.9054 -28.0436 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -22.8511 -35.7934 0 - vertex -23.3082 -35.9449 0 - vertex -22.9953 -35.8619 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.9953 -35.8619 0 - vertex -23.3082 -35.9449 0 - vertex -23.1471 -35.9117 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.4463 -35.4568 0 - vertex -23.3082 -35.9449 0 - vertex -22.5782 -35.5929 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.665 -35.9691 0 - vertex -24.7839 -33.2498 0 - vertex -23.8593 -35.9891 0 + vertex 23.5816 -34.2758 0 + vertex 19.3087 -31.0557 0 + vertex 22.2417 -34.4379 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -25.4011 -34.2168 0 - vertex -23.8593 -35.9891 0 - vertex -24.7839 -33.2498 0 + vertex 19.3085 -32.3556 0 + vertex 21.4183 -34.349 0 + vertex 19.3087 -31.0557 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -23.8593 -35.9891 0 - vertex -25.4011 -34.2168 0 - vertex -24.0497 -36.0458 0 + vertex 21.4183 -34.349 0 + vertex 19.3085 -32.3556 0 + vertex 20.6651 -34.0963 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.0497 -36.0458 0 - vertex -25.4011 -34.2168 0 - vertex -24.2334 -36.1344 0 + vertex 20.6651 -34.0963 0 + vertex 19.3085 -32.3556 0 + vertex 20.0228 -33.6987 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 20.0228 -33.6987 0 + vertex 19.3085 -32.3556 0 + vertex 19.5322 -33.1754 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 45.3585 -24.1311 0 + vertex 37.9618 -36.3241 0 + vertex 38.113 -36.8464 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -26.0482 -35.1877 0 - vertex -24.2334 -36.1344 0 - vertex -25.4011 -34.2168 0 + vertex 36.8272 -33.2656 0 + vertex 37.9618 -36.3241 0 + vertex 38.2188 -29.6614 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.2334 -36.1344 0 - vertex -26.0482 -35.1877 0 - vertex -24.4077 -36.2501 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.4077 -36.2501 0 - vertex -26.0482 -35.1877 0 - vertex -24.57 -36.3881 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.57 -36.3881 0 - vertex -26.0482 -35.1877 0 - vertex -24.7177 -36.5437 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.7177 -36.5437 0 - vertex -26.0482 -35.1877 0 - vertex -24.8479 -36.7119 0 + vertex 37.9618 -36.3241 0 + vertex 36.8272 -33.2656 0 + vertex 37.1913 -36.0604 0 endloop endfacet facet normal -0 0 1 outer loop - vertex -26.6839 -36.0968 0 - vertex -24.8479 -36.7119 0 - vertex -26.0482 -35.1877 0 + vertex 36.2918 -35.0946 0 + vertex 37.1913 -36.0604 0 + vertex 36.8272 -33.2656 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.8479 -36.7119 0 - vertex -26.6839 -36.0968 0 - vertex -24.9582 -36.888 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.0457 -37.0673 0 - vertex -26.6839 -36.0968 0 - vertex -25.1078 -37.2448 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.9582 -36.888 0 - vertex -26.6839 -36.0968 0 - vertex -25.0457 -37.0673 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2799 26.5937 0 - vertex -21.2669 26.4994 0 - vertex -21.2563 26.5576 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.3473 26.6332 0 - vertex -21.2669 26.4994 0 - vertex -21.2799 26.5937 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.2669 26.4994 0 - vertex -21.3473 26.6332 0 - vertex -21.2997 26.4466 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.3473 26.6332 0 - vertex -21.3558 26.3992 0 - vertex -21.2997 26.4466 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.3473 26.6332 0 - vertex -21.4368 26.3569 0 - vertex -21.3558 26.3992 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5951 26.7172 0 - vertex -21.4368 26.3569 0 - vertex -21.3473 26.6332 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5951 26.7172 0 - vertex -21.6785 26.2874 0 - vertex -21.4368 26.3569 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.9618 26.7994 0 - vertex -21.6785 26.2874 0 - vertex -21.5951 26.7172 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.9618 26.7994 0 - vertex -22.0356 26.2369 0 - vertex -21.6785 26.2874 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.4095 26.8695 0 - vertex -22.0356 26.2369 0 - vertex -21.9618 26.7994 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.4095 26.8695 0 - vertex -22.5186 26.2045 0 - vertex -22.0356 26.2369 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.8078 26.9423 0 - vertex -22.5186 26.2045 0 - vertex -22.4095 26.8695 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -22.8078 26.9423 0 - vertex -23.1385 26.1891 0 - vertex -22.5186 26.2045 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.1972 27.0531 0 - vertex -23.1385 26.1891 0 - vertex -22.8078 26.9423 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.56 27.1917 0 - vertex -23.1385 26.1891 0 - vertex -23.1972 27.0531 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.8316 26.205 0 - vertex -23.56 27.1917 0 - vertex -23.8785 27.3484 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.8316 26.205 0 - vertex -23.8785 27.3484 0 - vertex -24.1346 27.513 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.8316 26.205 0 - vertex -24.1346 27.513 0 - vertex -24.3107 27.6757 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.56 27.1917 0 - vertex -24.8316 26.205 0 - vertex -23.1385 26.1891 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3632 27.7532 0 - vertex -24.8316 26.205 0 - vertex -24.3107 27.6757 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.3751 26.2567 0 - vertex -24.3632 27.7532 0 - vertex -24.3889 27.8265 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.1768 -3.32005 0 - vertex 14.3448 -2.7489 0 - vertex 14.3217 -2.5049 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.3448 -2.7489 0 - vertex 14.2634 -3.15818 0 - vertex 14.3256 -2.96711 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.0741 -3.47638 0 - vertex 14.3217 -2.5049 0 - vertex 14.2572 -2.23644 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.3448 -2.7489 0 - vertex 14.1768 -3.32005 0 - vertex 14.2634 -3.15818 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.8248 -3.7697 0 - vertex 14.2572 -2.23644 0 - vertex 14.1524 -1.94488 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.3217 -2.5049 0 - vertex 14.0741 -3.47638 0 - vertex 14.1768 -3.32005 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.5249 -4.03275 0 - vertex 14.1524 -1.94488 0 - vertex 14.008 -1.63155 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.1837 -4.26011 0 - vertex 14.008 -1.63155 0 - vertex 13.8249 -1.29782 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.2572 -2.23644 0 - vertex 13.8248 -3.7697 0 - vertex 14.0741 -3.47638 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.4149 -4.5861 0 - vertex 13.8249 -1.29782 0 - vertex 13.604 -0.945011 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.1524 -1.94488 0 - vertex 13.5249 -4.03275 0 - vertex 13.8248 -3.7697 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.26 -4.69402 0 - vertex 13.604 -0.945011 0 - vertex 13.3463 -0.574481 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.008 -1.63155 0 - vertex 13.1837 -4.26011 0 - vertex 13.5249 -4.03275 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.608 -4.6098 0 - vertex 13.3463 -0.574481 0 - vertex 13.0525 -0.187573 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.8249 -1.29782 0 - vertex 12.8106 -4.44636 0 - vertex 13.1837 -4.26011 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.65389 -4.31807 0 - vertex 13.0525 -0.187573 0 - vertex 12.7237 0.214368 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.8249 -1.29782 0 - vertex 12.4149 -4.5861 0 - vertex 12.8106 -4.44636 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.02468 -4.00814 0 - vertex 12.7237 0.214368 0 - vertex 12.3607 0.629996 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.604 -0.945011 0 - vertex 12.006 -4.67391 0 - vertex 12.4149 -4.5861 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.604 -0.945011 0 - vertex 11.5931 -4.70438 0 - vertex 12.006 -4.67391 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.0755 -3.36119 0 - vertex 12.3607 0.629996 0 - vertex 11.5355 1.49693 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.604 -0.945011 0 - vertex 11.26 -4.69402 0 - vertex 11.5931 -4.70438 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.3463 -0.574481 0 - vertex 10.9319 -4.66264 0 - vertex 11.26 -4.69402 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.3463 -0.574481 0 - vertex 10.608 -4.6098 0 - vertex 10.9319 -4.66264 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.10115 -2.48513 0 - vertex 11.5355 1.49693 0 - vertex 10.5842 2.40247 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.0525 -0.187573 0 - vertex 10.2875 -4.53506 0 - vertex 10.608 -4.6098 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.0525 -0.187573 0 - vertex 9.96977 -4.43796 0 - vertex 10.2875 -4.53506 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.0525 -0.187573 0 - vertex 9.65389 -4.31807 0 - vertex 9.96977 -4.43796 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.79491 -1.04264 0 - vertex 10.5842 2.40247 0 - vertex 9.61741 3.25086 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.7237 0.214368 0 - vertex 9.33912 -4.17495 0 - vertex 9.65389 -4.31807 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.03464 3.65533 0 - vertex 9.61741 3.25086 0 - vertex 9.29624 3.50894 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.03464 3.65533 0 - vertex 9.29624 3.50894 0 - vertex 9.14614 3.60373 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.61741 3.25086 0 - vertex 9.03464 3.65533 0 - vertex 5.79491 -1.04264 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.7237 0.214368 0 - vertex 9.02468 -4.00814 0 - vertex 9.33912 -4.17495 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.24358 -0.384283 0 - vertex 9.03464 3.65533 0 - vertex 8.81858 3.79581 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3607 0.629996 0 - vertex 8.70978 -3.81721 0 - vertex 9.02468 -4.00814 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3607 0.629996 0 - vertex 8.39365 -3.60171 0 - vertex 8.70978 -3.81721 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.62083 0.441773 0 - vertex 8.81858 3.79581 0 - vertex 8.19732 4.25764 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3607 0.629996 0 - vertex 8.0755 -3.36119 0 - vertex 8.39365 -3.60171 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.49221 0.674515 0 - vertex 8.19732 4.25764 0 - vertex 8.00725 4.39171 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5355 1.49693 0 - vertex 7.75455 -3.09522 0 - vertex 8.0755 -3.36119 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.49221 0.674515 0 - vertex 8.00725 4.39171 0 - vertex 7.75154 4.54807 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5355 1.49693 0 - vertex 7.10115 -2.48513 0 - vertex 7.75455 -3.09522 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.44662 0.733548 0 - vertex 7.75154 4.54807 0 - vertex 7.07462 4.9138 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.5842 2.40247 0 - vertex 6.42718 -1.76788 0 - vertex 7.10115 -2.48513 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.40839 0.754677 0 - vertex 7.07462 4.9138 0 - vertex 6.22936 5.32709 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.5842 2.40247 0 - vertex 5.79491 -1.04264 0 - vertex 6.42718 -1.76788 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.40839 0.754677 0 - vertex 6.22936 5.32709 0 - vertex 5.27855 5.76024 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.03464 3.65533 0 - vertex 5.24358 -0.384283 0 - vertex 5.79491 -1.04264 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.81858 3.79581 0 - vertex 4.83246 0.134689 0 - vertex 5.24358 -0.384283 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.19732 4.25764 0 - vertex 4.49221 0.674515 0 - vertex 4.62083 0.441773 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.81858 3.79581 0 - vertex 4.62083 0.441773 0 - vertex 4.83246 0.134689 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.75154 4.54807 0 - vertex 4.44662 0.733548 0 - vertex 4.49221 0.674515 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07462 4.9138 0 - vertex 4.40839 0.754677 0 - vertex 4.44662 0.733548 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.285 6.1855 0 - vertex 4.40839 0.754677 0 - vertex 5.27855 5.76024 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.40839 0.754677 0 - vertex 4.285 6.1855 0 - vertex 4.3737 0.738144 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.31149 6.57517 0 - vertex 4.3737 0.738144 0 - vertex 4.285 6.1855 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.42084 6.9015 0 - vertex 4.3737 0.738144 0 - vertex 3.31149 6.57517 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.3737 0.738144 0 - vertex 2.42084 6.9015 0 - vertex 4.33872 0.684191 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.67583 7.13679 0 - vertex 4.33872 0.684191 0 - vertex 2.42084 6.9015 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.30727 7.25861 0 - vertex 4.33872 0.684191 0 - vertex 1.67583 7.13679 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex 3.25174 -5.37115 0 - vertex 3.97093 -5.58648 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex 2.534 -5.13555 0 - vertex 3.25174 -5.37115 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.33872 0.684191 0 - vertex 1.30727 7.25861 0 - vertex 4.25257 0.464986 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex 1.81816 -4.87986 0 - vertex 2.534 -5.13555 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.87688 -2.74967 0 - vertex 4.25257 0.464986 0 - vertex 1.30727 7.25861 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -2.32857 -3.00041 0 - vertex 4.25257 0.464986 0 - vertex -2.87688 -2.74967 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex 1.10471 -4.60426 0 - vertex 1.81816 -4.87986 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.87688 -2.74967 0 - vertex 1.30727 7.25861 0 - vertex 0.855811 7.43981 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex 0.394112 -4.30895 0 - vertex 1.10471 -4.60426 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.301 -2.58026 0 - vertex 0.855811 7.43981 0 - vertex -0.23691 7.94665 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex -0.313177 -3.99411 0 - vertex 0.394112 -4.30895 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex -1.01669 -3.65993 0 - vertex -0.313177 -3.99411 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.54104 -2.51804 0 - vertex -0.23691 7.94665 0 - vertex -1.48458 8.58988 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex -1.71595 -3.30659 0 - vertex -1.01669 -3.65993 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22446 0.295049 0 - vertex -2.32857 -3.00041 0 - vertex -1.71595 -3.30659 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.62666 -2.52788 0 - vertex -1.48458 8.58988 0 - vertex -2.76946 9.30203 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.25257 0.464986 0 - vertex -2.32857 -3.00041 0 - vertex 4.22446 0.295049 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.855811 7.43981 0 - vertex -3.301 -2.58026 0 - vertex -2.87688 -2.74967 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.23691 7.94665 0 - vertex -3.54104 -2.51804 0 - vertex -3.301 -2.58026 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.48458 8.58988 0 - vertex -3.62666 -2.52788 0 - vertex -3.54104 -2.51804 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.76946 9.30203 0 - vertex -3.68113 -2.55635 0 - vertex -3.62666 -2.52788 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.97378 10.0157 0 - vertex -3.68113 -2.55635 0 - vertex -2.76946 9.30203 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -4.59396 -25.347 0 - vertex -1.45361 -26.5684 0 - vertex -4.25232 -24.3543 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -3.84473 -21.6547 0 - vertex -3.82849 -22.2203 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -3.87719 -21.3353 0 - vertex -3.84473 -21.6547 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -3.91934 -21.0662 0 - vertex -3.87719 -21.3353 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.9798 10.6633 0 - vertex -3.68113 -2.55635 0 - vertex -3.97378 10.0157 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.37165 10.9414 0 - vertex -3.68113 -2.55635 0 - vertex -4.9798 10.6633 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -3.97677 -20.8354 0 - vertex -3.91934 -21.0662 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -4.05507 -20.6308 0 - vertex -3.97677 -20.8354 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -4.15983 -20.4402 0 - vertex -4.05507 -20.6308 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -4.29663 -20.2518 0 - vertex -4.15983 -20.4402 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -4.47107 -20.0532 0 - vertex -4.29663 -20.2518 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -4.68872 -19.8327 0 - vertex -4.47107 -20.0532 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -4.93899 -19.592 0 - vertex -4.68872 -19.8327 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.66976 11.1776 0 - vertex -3.68113 -2.55635 0 - vertex -5.37165 10.9414 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -5.14898 -19.4116 0 - vertex -4.93899 -19.592 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -5.34642 -19.2839 0 - vertex -5.14898 -19.4116 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.68113 -2.55635 0 - vertex -5.66976 11.1776 0 - vertex -3.70601 -2.60189 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -5.55901 -19.2012 0 - vertex -5.34642 -19.2839 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.85942 11.3636 0 - vertex -3.70601 -2.60189 0 - vertex -5.66976 11.1776 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -5.8145 -19.1562 0 - vertex -5.55901 -19.2012 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -5.85942 11.3636 0 - vertex -5.90899 11.4352 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.85942 11.3636 0 - vertex -17.4002 -11.6639 0 - vertex -3.70601 -2.60189 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -5.90899 11.4352 0 - vertex -5.92592 11.491 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.70285 -2.66292 0 - vertex -6.14058 -19.1411 0 - vertex -5.8145 -19.1562 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.04277 -4.97268 0 - vertex 7.2241 -5.88439 0 - vertex 7.809 -5.75259 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.04277 -4.97268 0 - vertex 6.87672 -5.95074 0 - vertex 7.2241 -5.88439 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.53505 -5.98957 0 - vertex 7.04277 -4.97268 0 - vertex 6.78219 -4.68956 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.04277 -4.97268 0 - vertex 6.53505 -5.98957 0 - vertex 6.87672 -5.95074 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.82356 -5.98052 0 - vertex 6.78219 -4.68956 0 - vertex 6.51759 -4.36865 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.4311 -5.93055 0 - vertex 6.51759 -4.36865 0 - vertex 6.2523 -4.01644 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.78219 -4.68956 0 - vertex 6.18777 -5.99984 0 - vertex 6.53505 -5.98957 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.99906 -5.84891 0 - vertex 6.2523 -4.01644 0 - vertex 5.98964 -3.63939 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.78219 -4.68956 0 - vertex 5.82356 -5.98052 0 - vertex 6.18777 -5.99984 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 5.98964 -3.63939 0 - vertex 5.48552 -2.8367 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.51759 -4.36865 0 - vertex 5.4311 -5.93055 0 - vertex 5.82356 -5.98052 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 5.48552 -2.8367 0 - vertex 5.03179 -2.01239 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.2523 -4.01644 0 - vertex 4.99906 -5.84891 0 - vertex 5.4311 -5.93055 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 5.03179 -2.01239 0 - vertex 4.65505 -1.21825 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.98964 -3.63939 0 - vertex 4.51611 -5.73457 0 - vertex 4.99906 -5.84891 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 4.65505 -1.21825 0 - vertex 4.50386 -0.848697 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 4.50386 -0.848697 0 - vertex 4.38188 -0.506111 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 4.38188 -0.506111 0 - vertex 4.29244 -0.196974 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 4.29244 -0.196974 0 - vertex 4.23886 0.0722368 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.97093 -5.58648 0 - vertex 4.23886 0.0722368 0 - vertex 4.22446 0.295049 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.98964 -3.63939 0 - vertex 3.97093 -5.58648 0 - vertex 4.51611 -5.73457 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.7369 -35.0944 0 - vertex 12.2214 -34.9805 0 - vertex 12.2468 -35.1875 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.73 -32.8205 0 - vertex 11.1661 -32.3709 0 - vertex 14.6832 -33.3707 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.6656 -33.913 0 - vertex 12.1503 -34.7994 0 - vertex 12.2214 -34.9805 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.8827 -34.5351 0 - vertex 14.6832 -33.3707 0 - vertex 11.1661 -32.3709 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.6656 -33.913 0 - vertex 12.0364 -34.6492 0 - vertex 12.1503 -34.7994 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 12.0364 -34.6492 0 - vertex 14.6832 -33.3707 0 - vertex 11.8827 -34.5351 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.6832 -33.3707 0 - vertex 12.0364 -34.6492 0 - vertex 14.6656 -33.913 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.9267 -33.0747 0 - vertex 11.8827 -34.5351 0 - vertex 11.1661 -32.3709 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8827 -34.5351 0 - vertex 10.9267 -33.0747 0 - vertex 11.6919 -34.4621 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.6919 -34.4621 0 - vertex 10.9267 -33.0747 0 - vertex 11.4668 -34.4353 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.7819 -33.5982 0 - vertex 11.4668 -34.4353 0 - vertex 10.9267 -33.0747 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.7449 -33.8005 0 - vertex 11.4668 -34.4353 0 - vertex 10.7819 -33.5982 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.4668 -34.4353 0 - vertex 10.7449 -33.8005 0 - vertex 11.143 -34.4171 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.7315 -33.9677 0 - vertex 11.143 -34.4171 0 - vertex 10.7449 -33.8005 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.143 -34.4171 0 - vertex 10.7315 -33.9677 0 - vertex 11.016 -34.3915 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 10.7415 -34.103 0 - vertex 11.016 -34.3915 0 - vertex 10.7315 -33.9677 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.016 -34.3915 0 - vertex 10.7415 -34.103 0 - vertex 10.9123 -34.3507 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 10.775 -34.2097 0 - vertex 10.9123 -34.3507 0 - vertex 10.7415 -34.103 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.9123 -34.3507 0 - vertex 10.775 -34.2097 0 - vertex 10.832 -34.2912 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.0881 -14.3092 0 - vertex 14.1362 -14.4186 0 - vertex 14.1363 -14.3424 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.0003 -14.2763 0 - vertex 14.1362 -14.4186 0 - vertex 14.0881 -14.3092 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.1362 -14.4186 0 - vertex 14.0003 -14.2763 0 - vertex 14.0967 -14.5873 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.7222 -14.2141 0 - vertex 14.0967 -14.5873 0 - vertex 14.0003 -14.2763 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.0967 -14.5873 0 - vertex 13.7222 -14.2141 0 - vertex 13.9185 -15.1524 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.3346 -14.1615 0 - vertex 13.9185 -15.1524 0 - vertex 13.7222 -14.2141 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.8698 -14.1239 0 - vertex 13.9185 -15.1524 0 - vertex 13.3346 -14.1615 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.9185 -15.1524 0 - vertex 12.8698 -14.1239 0 - vertex 13.6397 -15.9386 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.7363 -14.0885 0 - vertex 13.6397 -15.9386 0 - vertex 12.8698 -14.1239 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.6397 -15.9386 0 - vertex 12.7363 -14.0885 0 - vertex 13.2984 -16.8469 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.6087 -14.0056 0 - vertex 13.2984 -16.8469 0 - vertex 12.7363 -14.0885 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.0711 -19.1496 0 - vertex 13.2984 -16.8469 0 - vertex 12.6087 -14.0056 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.0711 -19.1496 0 - vertex 12.6087 -14.0056 0 - vertex 12.5013 -13.8876 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.72114 -19.1409 0 - vertex 12.5013 -13.8876 0 - vertex 12.4287 -13.7469 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.76754 -19.1712 0 - vertex 12.4287 -13.7469 0 - vertex 12.3997 -13.6324 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.80885 -19.2424 0 - vertex 12.3997 -13.6324 0 - vertex 12.3889 -13.5153 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 10.602 -19.227 0 - vertex 13.2984 -16.8469 0 - vertex 10.3591 -19.1774 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.8205 29.3224 0 - vertex 15.0694 29.0611 0 - vertex 12.0304 29.9363 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0694 29.0611 0 - vertex 11.8205 29.3224 0 - vertex 15.0552 28.7509 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.8169 27.5343 0 - vertex 15.0574 28.4965 0 - vertex 11.7656 27.9858 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.903 27.1234 0 - vertex 15.0574 28.4965 0 - vertex 11.8169 27.5343 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.7675 28.9061 0 - vertex 15.0552 28.7509 0 - vertex 11.8205 29.3224 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0574 28.4965 0 - vertex 12.2572 26.3514 0 - vertex 12.3979 26.1543 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.9082 29.6745 0 - vertex 12.0304 29.9363 0 - vertex 11.965 29.8184 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.0304 29.9363 0 - vertex 11.9082 29.6745 0 - vertex 11.8205 29.3224 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0574 28.4965 0 - vertex 12.1339 26.5589 0 - vertex 12.2572 26.3514 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0552 28.7509 0 - vertex 11.7675 28.9061 0 - vertex 15.0574 28.4965 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0574 28.4965 0 - vertex 12.0241 26.7794 0 - vertex 12.1339 26.5589 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0574 28.4965 0 - vertex 11.7675 28.9061 0 - vertex 11.7492 28.4518 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 12.0241 26.7794 0 - vertex 15.0574 28.4965 0 - vertex 11.903 27.1234 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0574 28.4965 0 - vertex 11.7492 28.4518 0 - vertex 11.7656 27.9858 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.7548 16.6154 0 - vertex 24.8294 16.7672 0 - vertex 24.8232 16.8925 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.659 16.5397 0 - vertex 24.8232 16.8925 0 - vertex 24.789 17.0321 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8294 16.7672 0 - vertex 24.7548 16.6154 0 - vertex 24.8049 16.6725 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.5483 17.3222 0 - vertex 24.789 17.0321 0 - vertex 24.7291 17.1695 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.5483 17.3222 0 - vertex 24.7291 17.1695 0 - vertex 24.6602 17.253 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8232 16.8925 0 - vertex 24.659 16.5397 0 - vertex 24.7548 16.6154 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.789 17.0321 0 - vertex 24.5483 17.3222 0 - vertex 24.659 16.5397 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.386 17.3783 0 - vertex 24.659 16.5397 0 - vertex 24.5483 17.3222 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.386 17.3783 0 - vertex 24.3498 16.3417 0 - vertex 24.659 16.5397 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.166 17.4223 0 - vertex 24.3498 16.3417 0 - vertex 24.386 17.3783 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.166 17.4223 0 - vertex 23.9148 16.0975 0 - vertex 24.3498 16.3417 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.5226 17.4791 0 - vertex 23.9148 16.0975 0 - vertex 24.166 17.4223 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.5226 17.4791 0 - vertex 23.3919 15.8262 0 - vertex 23.9148 16.0975 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.5588 17.5015 0 - vertex 23.3919 15.8262 0 - vertex 23.5226 17.4791 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.5588 17.5015 0 - vertex 22.2336 15.278 0 - vertex 23.3919 15.8262 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0506 17.5236 0 - vertex 22.2336 15.278 0 - vertex 22.5588 17.5015 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.2336 15.278 0 - vertex 21.0506 17.5236 0 - vertex 21.6737 15.039 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.6737 15.039 0 - vertex 21.0506 17.5236 0 - vertex 21.1771 14.8489 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2276 17.5562 0 - vertex 21.1771 14.8489 0 - vertex 21.0506 17.5236 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.1771 14.8489 0 - vertex 20.2276 17.5562 0 - vertex 20.8452 14.735 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.8452 14.735 0 - vertex 20.2276 17.5562 0 - vertex 20.5722 14.6577 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.5722 14.6577 0 - vertex 20.2276 17.5562 0 - vertex 20.327 14.6203 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4469 14.7833 0 - vertex 20.2276 17.5562 0 - vertex 20.1284 17.5777 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2276 17.5562 0 - vertex 20.0785 14.6265 0 - vertex 20.327 14.6203 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4469 14.7833 0 - vertex 20.1284 17.5777 0 - vertex 20.0333 17.6179 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4281 15.1559 0 - vertex 20.0333 17.6179 0 - vertex 19.9424 17.6771 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4281 15.1559 0 - vertex 19.9424 17.6771 0 - vertex 19.8554 17.7553 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2276 17.5562 0 - vertex 19.7955 14.6797 0 - vertex 20.0785 14.6265 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.448 15.5385 0 - vertex 19.8554 17.7553 0 - vertex 19.6934 17.9694 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.448 15.5385 0 - vertex 19.6934 17.9694 0 - vertex 19.5469 18.2611 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2276 17.5562 0 - vertex 19.4469 14.7833 0 - vertex 19.7955 14.6797 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.6072 15.8977 0 - vertex 19.5469 18.2611 0 - vertex 19.4153 18.6317 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.8738 16.2527 0 - vertex 19.4153 18.6317 0 - vertex 19.2984 19.082 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2162 16.623 0 - vertex 19.2984 19.082 0 - vertex 19.1956 19.6132 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.6028 17.0277 0 - vertex 19.1956 19.6132 0 - vertex 19.1065 20.2262 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.1667 22.8321 0 - vertex 19.1065 20.2262 0 - vertex 19.0081 20.8787 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6752 22.6222 0 - vertex 19.0081 20.8787 0 - vertex 18.892 21.4494 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4732 22.2317 0 - vertex 18.892 21.4494 0 - vertex 18.7726 21.8767 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4732 22.2317 0 - vertex 18.7726 21.8767 0 - vertex 18.7163 22.0174 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4732 22.2317 0 - vertex 18.7163 22.0174 0 - vertex 18.6646 22.0992 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.892 21.4494 0 - vertex 18.4732 22.2317 0 - vertex 18.127 22.4141 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0333 17.6179 0 - vertex 18.4281 15.1559 0 - vertex 19.4469 14.7833 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.892 21.4494 0 - vertex 18.127 22.4141 0 - vertex 17.6752 22.6222 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.0081 20.8787 0 - vertex 17.6752 22.6222 0 - vertex 17.1667 22.8321 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.8554 17.7553 0 - vertex 17.448 15.5385 0 - vertex 18.4281 15.1559 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.1065 20.2262 0 - vertex 17.1667 22.8321 0 - vertex 14.0017 17.4864 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5469 18.2611 0 - vertex 16.6072 15.8977 0 - vertex 17.448 15.5385 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4153 18.6317 0 - vertex 15.8738 16.2527 0 - vertex 16.6072 15.8977 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.3813 18.0182 0 - vertex 17.1667 22.8321 0 - vertex 15.5173 23.4995 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.2984 19.082 0 - vertex 15.2162 16.623 0 - vertex 15.8738 16.2527 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.1956 19.6132 0 - vertex 14.6028 17.0277 0 - vertex 15.2162 16.623 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.6914 19.6646 0 - vertex 15.5173 23.4995 0 - vertex 14.0281 24.1527 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.1065 20.2262 0 - vertex 14.0017 17.4864 0 - vertex 14.6028 17.0277 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.9846 20.5521 0 - vertex 14.0281 24.1527 0 - vertex 13.7923 24.2655 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.6869 21.0368 0 - vertex 13.7923 24.2655 0 - vertex 13.5553 24.3991 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.1667 22.8321 0 - vertex 13.3813 18.0182 0 - vertex 14.0017 17.4864 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.3935 21.5973 0 - vertex 13.5553 24.3991 0 - vertex 13.085 24.7212 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.5173 23.4995 0 - vertex 12.71 18.6425 0 - vertex 13.3813 18.0182 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.0801 22.2703 0 - vertex 13.085 24.7212 0 - vertex 12.6316 25.1032 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.72206 23.0922 0 - vertex 12.6316 25.1032 0 - vertex 12.2092 25.5292 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.5173 23.4995 0 - vertex 12.1494 19.1886 0 - vertex 12.71 18.6425 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.38213 23.8626 0 - vertex 12.2092 25.5292 0 - vertex 11.8324 25.9834 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.5173 23.4995 0 - vertex 11.6914 19.6646 0 - vertex 12.1494 19.1886 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.08206 24.476 0 - vertex 11.8324 25.9834 0 - vertex 11.5154 26.4501 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.80411 24.9522 0 - vertex 11.5154 26.4501 0 - vertex 11.3839 26.6832 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.0281 24.1527 0 - vertex 11.3113 20.1069 0 - vertex 11.6914 19.6646 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.6679 25.145 0 - vertex 11.3839 26.6832 0 - vertex 11.2726 26.9135 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.53058 25.3107 0 - vertex 11.2726 26.9135 0 - vertex 11.1835 27.139 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.38993 25.4519 0 - vertex 11.1835 27.139 0 - vertex 11.1184 27.3577 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.24373 25.571 0 - vertex 11.1184 27.3577 0 - vertex 11.0734 27.5937 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.08977 25.6705 0 - vertex 11.0734 27.5937 0 - vertex 11.0484 27.8474 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.0281 24.1527 0 - vertex 10.9846 20.5521 0 - vertex 11.3113 20.1069 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.92584 25.7528 0 - vertex 11.0484 27.8474 0 - vertex 11.0419 28.1143 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.9476 30.6899 0 - vertex 4.89167 37.3134 0 - vertex 11.8311 30.6195 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.73361 37.0399 0 - vertex 11.8311 30.6195 0 - vertex 4.89167 37.3134 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.31688 36.0346 0 - vertex 11.8311 30.6195 0 - vertex 4.73361 37.0399 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.1227 35.3375 0 - vertex 11.8311 30.6195 0 - vertex 4.31688 36.0346 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8311 30.6195 0 - vertex 3.94762 34.5584 0 - vertex 11.7177 30.5077 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.68366 32.8976 0 - vertex 11.6088 30.3591 0 - vertex 3.79886 33.7332 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.94762 34.5584 0 - vertex 11.8311 30.6195 0 - vertex 4.1227 35.3375 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.7177 30.5077 0 - vertex 3.79886 33.7332 0 - vertex 11.6088 30.3591 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.52293 36.6141 0 - vertex 4.73361 37.0399 0 - vertex 4.62814 36.8484 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.73361 37.0399 0 - vertex 4.52293 36.6141 0 - vertex 4.31688 36.0346 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.6088 30.3591 0 - vertex 3.68366 32.8976 0 - vertex 11.5057 30.1782 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.79886 33.7332 0 - vertex 11.7177 30.5077 0 - vertex 3.94762 34.5584 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.60924 32.0876 0 - vertex 11.5057 30.1782 0 - vertex 3.68366 32.8976 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.58282 31.3388 0 - vertex 11.5057 30.1782 0 - vertex 3.60924 32.0876 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5057 30.1782 0 - vertex 5.05276 27.3884 0 - vertex 5.39739 26.9794 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5057 30.1782 0 - vertex 4.69711 27.8759 0 - vertex 5.05276 27.3884 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 3.59957 30.3654 0 - vertex 11.5057 30.1782 0 - vertex 3.58282 31.3388 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5057 30.1782 0 - vertex 4.32553 28.4461 0 - vertex 4.69711 27.8759 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5057 30.1782 0 - vertex 4.09087 28.8303 0 - vertex 4.32553 28.4461 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5057 30.1782 0 - vertex 3.59957 30.3654 0 - vertex 4.09087 28.8303 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.09087 28.8303 0 - vertex 3.59957 30.3654 0 - vertex 3.91157 29.1502 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 3.63162 30.0135 0 - vertex 3.91157 29.1502 0 - vertex 3.59957 30.3654 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.91157 29.1502 0 - vertex 3.63162 30.0135 0 - vertex 3.78021 29.4348 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.78021 29.4348 0 - vertex 3.63162 30.0135 0 - vertex 3.68937 29.7129 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.45361 -26.5684 0 - vertex -4.59396 -25.347 0 - vertex -1.72295 -27.0315 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.05721 -26.548 0 - vertex -1.72295 -27.0315 0 - vertex -4.59396 -25.347 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.72295 -27.0315 0 - vertex -5.05721 -26.548 0 - vertex -2.23947 -28.0146 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.23947 -28.0146 0 - vertex -5.05721 -26.548 0 - vertex -2.71481 -29.043 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.65492 -27.9982 0 - vertex -2.71481 -29.043 0 - vertex -5.05721 -26.548 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.71481 -29.043 0 - vertex -5.65492 -27.9982 0 - vertex -3.135 -30.0798 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -6.39994 -29.738 0 - vertex -3.135 -30.0798 0 - vertex -5.65492 -27.9982 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.135 -30.0798 0 - vertex -6.39994 -29.738 0 - vertex -3.4861 -31.0878 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.4477 -19.4082 0 - vertex 19.1479 -12.7477 0 - vertex 24.9086 -19.5812 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.7352 1.18648 0 - vertex 19.6583 -10.9333 0 - vertex 19.6819 -11.0243 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.4297 -3.0084 0 - vertex 19.6172 -10.8571 0 - vertex 19.6583 -10.9333 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0112 -3.39762 0 - vertex 19.557 -10.7956 0 - vertex 19.6172 -10.8571 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.4451 -3.80993 0 - vertex 19.557 -10.7956 0 - vertex 20.0112 -3.39762 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.557 -10.7956 0 - vertex 19.4451 -3.80993 0 - vertex 19.4763 -10.749 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 18.7073 -4.27174 0 - vertex 19.4763 -10.749 0 - vertex 19.4451 -3.80993 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4763 -10.749 0 - vertex 18.7073 -4.27174 0 - vertex 19.3736 -10.7173 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 17.7736 -4.80944 0 - vertex 19.3736 -10.7173 0 - vertex 18.7073 -4.27174 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3736 -10.7173 0 - vertex 17.7736 -4.80944 0 - vertex 19.0963 -10.6988 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.0963 -10.6988 0 - vertex 17.7736 -4.80944 0 - vertex 18.7132 -10.7406 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 16.3254 -5.59514 0 - vertex 18.7132 -10.7406 0 - vertex 17.7736 -4.80944 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.7132 -10.7406 0 - vertex 16.3254 -5.59514 0 - vertex 18.2126 -10.843 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.6549 -5.93433 0 - vertex 18.2126 -10.843 0 - vertex 16.3254 -5.59514 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.2126 -10.843 0 - vertex 15.6549 -5.93433 0 - vertex 17.5824 -11.0066 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 15.0129 -6.23993 0 - vertex 17.5824 -11.0066 0 - vertex 15.6549 -5.93433 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.5824 -11.0066 0 - vertex 15.0129 -6.23993 0 - vertex 16.811 -11.2316 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.3941 -6.51356 0 - vertex 16.811 -11.2316 0 - vertex 15.0129 -6.23993 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 13.793 -6.75686 0 - vertex 16.811 -11.2316 0 - vertex 14.3941 -6.51356 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.793 -6.75686 0 - vertex 13.7217 -12.1451 0 - vertex 16.811 -11.2316 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 13.2041 -6.97145 0 - vertex 13.7217 -12.1451 0 - vertex 13.793 -6.75686 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.6221 -7.15898 0 - vertex 13.7217 -12.1451 0 - vertex 13.2041 -6.97145 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.0414 -7.32107 0 - vertex 13.7217 -12.1451 0 - vertex 12.6221 -7.15898 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.7217 -12.1451 0 - vertex 12.0414 -7.32107 0 - vertex 13.4022 -12.26 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.4568 -7.45935 0 - vertex 13.4022 -12.26 0 - vertex 12.0414 -7.32107 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.4022 -12.26 0 - vertex 11.4568 -7.45935 0 - vertex 13.1153 -12.4148 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.8627 -7.57545 0 - vertex 13.1153 -12.4148 0 - vertex 11.4568 -7.45935 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.1153 -12.4148 0 - vertex 10.8627 -7.57545 0 - vertex 12.8673 -12.6015 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.2538 -7.67101 0 - vertex 12.8673 -12.6015 0 - vertex 10.8627 -7.57545 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 10.8168 -19.3006 0 - vertex 12.5806 -18.6336 0 - vertex 10.602 -19.227 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.8673 -12.6015 0 - vertex 10.2538 -7.67101 0 - vertex 12.6645 -12.8127 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 9.62459 -7.74765 0 - vertex 12.6645 -12.8127 0 - vertex 10.2538 -7.67101 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.5806 -18.6336 0 - vertex 11.0203 -19.4009 0 - vertex 12.2803 -19.3138 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.5538 -19.7266 0 - vertex 12.2803 -19.3138 0 - vertex 11.2294 -19.5302 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.2803 -19.3138 0 - vertex 11.5538 -19.7266 0 - vertex 12.0697 -19.7199 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.7902 -19.8211 0 - vertex 12.0697 -19.7199 0 - vertex 11.5538 -19.7266 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.881 -19.8313 0 - vertex 12.0697 -19.7199 0 - vertex 11.7902 -19.8211 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.6645 -12.8127 0 - vertex 9.62459 -7.74765 0 - vertex 12.513 -13.0405 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.0185 -19.7802 0 - vertex 11.881 -19.8313 0 - vertex 11.9563 -19.8175 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.0697 -19.7199 0 - vertex 11.881 -19.8313 0 - vertex 12.0185 -19.7802 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 8.96966 -7.80701 0 - vertex 12.513 -13.0405 0 - vertex 9.62459 -7.74765 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.2294 -19.5302 0 - vertex 12.2803 -19.3138 0 - vertex 11.0203 -19.4009 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 11.0203 -19.4009 0 - vertex 12.5806 -18.6336 0 - vertex 10.8168 -19.3006 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.2984 -16.8469 0 - vertex 10.602 -19.227 0 - vertex 12.5806 -18.6336 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.513 -13.0405 0 - vertex 8.96966 -7.80701 0 - vertex 12.419 -13.2773 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.2984 -16.8469 0 - vertex 10.0711 -19.1496 0 - vertex 10.3591 -19.1774 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 7.56097 -7.88041 0 - vertex 12.419 -13.2773 0 - vertex 8.96966 -7.80701 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.5013 -13.8876 0 - vertex 9.72114 -19.1409 0 - vertex 10.0711 -19.1496 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.419 -13.2773 0 - vertex 7.56097 -7.88041 0 - vertex 12.3889 -13.5153 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.4287 -13.7469 0 - vertex 8.76754 -19.1712 0 - vertex 9.72114 -19.1409 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 6.04455 -7.91255 0 - vertex 12.3889 -13.5153 0 - vertex 7.56097 -7.88041 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3997 -13.6324 0 - vertex 7.80885 -19.2424 0 - vertex 8.76754 -19.1712 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 7.42262 -19.2967 0 - vertex 12.3889 -13.5153 0 - vertex 6.04455 -7.91255 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3889 -13.5153 0 - vertex 7.42262 -19.2967 0 - vertex 7.80885 -19.2424 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.42262 -19.2967 0 - vertex 6.04455 -7.91255 0 - vertex 7.07441 -19.3694 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.49083 -7.9071 0 - vertex 7.07441 -19.3694 0 - vertex 6.04455 -7.91255 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.07441 -19.3694 0 - vertex 5.49083 -7.9071 0 - vertex 6.74616 -19.4649 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.0434 -7.88498 0 - vertex 6.74616 -19.4649 0 - vertex 5.49083 -7.9071 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.74616 -19.4649 0 - vertex 5.0434 -7.88498 0 - vertex 6.41984 -19.5879 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.67971 -7.84446 0 - vertex 6.41984 -19.5879 0 - vertex 5.0434 -7.88498 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.41984 -19.5879 0 - vertex 4.67971 -7.84446 0 - vertex 6.07737 -19.7427 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.37723 -7.78379 0 - vertex 6.07737 -19.7427 0 - vertex 4.67971 -7.84446 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.07737 -19.7427 0 - vertex 4.37723 -7.78379 0 - vertex 5.70074 -19.9339 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.70074 -19.9339 0 - vertex 4.37723 -7.78379 0 - vertex 5.20766 -20.2058 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.11342 -7.70123 0 - vertex 5.20766 -20.2058 0 - vertex 4.37723 -7.78379 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.20766 -20.2058 0 - vertex 4.11342 -7.70123 0 - vertex 4.71458 -20.5006 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.86574 -7.59505 0 - vertex 4.71458 -20.5006 0 - vertex 4.11342 -7.70123 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.71458 -20.5006 0 - vertex 3.86574 -7.59505 0 - vertex 4.22328 -20.8168 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.40104 -7.34622 0 - vertex 4.22328 -20.8168 0 - vertex 3.86574 -7.59505 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.22328 -20.8168 0 - vertex 3.40104 -7.34622 0 - vertex 3.73558 -21.1527 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.71562 -6.94693 0 - vertex 3.73558 -21.1527 0 - vertex 3.40104 -7.34622 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex 3.73558 -21.1527 0 - vertex 2.71562 -6.94693 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.73558 -21.1527 0 - vertex -3.82849 -22.2203 0 - vertex 3.25328 -21.5067 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex 2.71562 -6.94693 0 - vertex 1.05193 -5.91722 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.25328 -21.5067 0 - vertex -3.82849 -22.2203 0 - vertex 2.77819 -21.8771 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.77819 -21.8771 0 - vertex -3.82849 -22.2203 0 - vertex 2.31211 -22.2625 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex 1.05193 -5.91722 0 - vertex -0.694871 -4.82613 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.31211 -22.2625 0 - vertex -3.82849 -22.2203 0 - vertex 1.85684 -22.661 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.85684 -22.661 0 - vertex -3.82849 -22.2203 0 - vertex 1.4142 -23.0712 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex -0.694871 -4.82613 0 - vertex -2.47177 -3.7788 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.4142 -23.0712 0 - vertex -3.82849 -22.2203 0 - vertex 0.985991 -23.4913 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.985991 -23.4913 0 - vertex -3.82849 -22.2203 0 - vertex 0.574011 -23.9198 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex -2.47177 -3.7788 0 - vertex -2.8551 -3.51984 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.574011 -23.9198 0 - vertex -3.82849 -22.2203 0 - vertex 0.18007 -24.355 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -3.84589 -22.5177 0 - vertex 0.18007 -24.355 0 - vertex -3.82849 -22.2203 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex -2.8551 -3.51984 0 - vertex -3.18232 -3.26618 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -3.88244 -22.8317 0 - vertex 0.18007 -24.355 0 - vertex -3.84589 -22.5177 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex -3.18232 -3.26618 0 - vertex -3.44099 -3.03042 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.18007 -24.355 0 - vertex -3.88244 -22.8317 0 - vertex -0.194025 -24.7953 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -3.93975 -23.1672 0 - vertex -0.194025 -24.7953 0 - vertex -3.88244 -22.8317 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex -3.44099 -3.03042 0 - vertex -3.61865 -2.82513 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.194025 -24.7953 0 - vertex -3.93975 -23.1672 0 - vertex -0.546472 -25.2391 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -4.01943 -23.5295 0 - vertex -0.546472 -25.2391 0 - vertex -3.93975 -23.1672 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.546472 -25.2391 0 - vertex -4.01943 -23.5295 0 - vertex -0.875463 -25.6847 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.82849 -22.2203 0 - vertex -3.61865 -2.82513 0 - vertex -3.70285 -2.66292 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -4.25232 -24.3543 0 - vertex -0.875463 -25.6847 0 - vertex -4.01943 -23.5295 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.875463 -25.6847 0 - vertex -4.25232 -24.3543 0 - vertex -1.17919 -26.1306 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.4002 -11.6639 0 - vertex -3.70285 -2.66292 0 - vertex -3.70601 -2.60189 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.17919 -26.1306 0 - vertex -4.25232 -24.3543 0 - vertex -1.45361 -26.5684 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0469 1.94283 0 - vertex 21.1316 -0.233279 0 - vertex 21.1355 -0.658014 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.9727 1.93385 0 - vertex 21.099 0.0745682 0 - vertex 21.1316 -0.233279 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.9112 1.94773 0 - vertex 21.0726 0.170561 0 - vertex 21.099 0.0745682 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.8622 1.9828 0 - vertex 21.0399 0.220413 0 - vertex 21.0726 0.170561 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.8016 2.10976 0 - vertex 20.9772 0.235111 0 - vertex 21.0399 0.220413 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.498 4.716 0 - vertex 21.3371 8.55423 0 - vertex 20.8834 8.89663 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.7901 2.30129 0 - vertex 20.8646 0.230347 0 - vertex 20.9772 0.235111 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 20.5155 0.168137 0 - vertex 22.827 2.54396 0 - vertex 16.2363 2.34533 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.3486 5.33522 0 - vertex 20.8834 8.89663 0 - vertex 20.3513 9.26304 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.7901 2.30129 0 - vertex 20.5155 0.168137 0 - vertex 20.8646 0.230347 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2183 5.95043 0 - vertex 20.3513 9.26304 0 - vertex 19.7274 9.66569 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.827 2.54396 0 - vertex 20.5155 0.168137 0 - vertex 22.7901 2.30129 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1095 6.5543 0 - vertex 19.7274 9.66569 0 - vertex 19.4723 9.81661 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1095 6.5543 0 - vertex 19.4723 9.81661 0 - vertex 19.2206 9.94402 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1095 6.5543 0 - vertex 19.2206 9.94402 0 - vertex 18.9645 10.0501 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.5155 0.168137 0 - vertex 16.2363 2.34533 0 - vertex 20.0432 0.0451876 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0249 7.13954 0 - vertex 18.9645 10.0501 0 - vertex 18.6964 10.137 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 16.4437 1.81579 0 - vertex 20.0432 0.0451876 0 - vertex 16.2363 2.34533 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0249 7.13954 0 - vertex 18.6964 10.137 0 - vertex 18.4085 10.2069 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 16.6551 1.32614 0 - vertex 20.0432 0.0451876 0 - vertex 16.4437 1.81579 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 16.8681 0.883681 0 - vertex 19.4982 -0.127099 0 - vertex 16.6551 1.32614 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0249 7.13954 0 - vertex 18.4085 10.2069 0 - vertex 18.093 10.2619 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 17.0802 0.495742 0 - vertex 19.4982 -0.127099 0 - vertex 16.8681 0.883681 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 17.2889 0.169637 0 - vertex 18.7502 -0.369046 0 - vertex 17.0802 0.495742 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 17.4918 -0.0873203 0 - vertex 18.7502 -0.369046 0 - vertex 17.2889 0.169637 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.7502 -0.369046 0 - vertex 17.4918 -0.0873203 0 - vertex 18.4876 -0.435405 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9668 7.69881 0 - vertex 18.093 10.2619 0 - vertex 17.3487 10.3363 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4876 -0.435405 0 - vertex 17.6862 -0.267812 0 - vertex 18.2791 -0.466914 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 17.8284 -0.36402 0 - vertex 18.2791 -0.466914 0 - vertex 17.6862 -0.267812 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.1098 -0.464739 0 - vertex 17.8284 -0.36402 0 - vertex 17.9646 -0.430052 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.2791 -0.466914 0 - vertex 17.8284 -0.36402 0 - vertex 18.1098 -0.464739 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9212 8.45633 0 - vertex 17.3487 10.3363 0 - vertex 16.499 10.3797 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 17.6862 -0.267812 0 - vertex 18.4876 -0.435405 0 - vertex 17.4918 -0.0873203 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4982 -0.127099 0 - vertex 17.0802 0.495742 0 - vertex 18.7502 -0.369046 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.5399 9.97068 0 - vertex 16.499 10.3797 0 - vertex 16.2187 10.3704 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0432 0.0451876 0 - vertex 16.6551 1.32614 0 - vertex 19.4982 -0.127099 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6879 10.1383 0 - vertex 16.2187 10.3704 0 - vertex 16.005 10.3315 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.6879 10.1383 0 - vertex 16.005 10.3315 0 - vertex 15.8355 10.2563 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2187 10.3704 0 - vertex 15.6879 10.1383 0 - vertex 15.5399 9.97068 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 16.2363 2.34533 0 - vertex 22.9115 2.82433 0 - vertex 16.0356 2.90743 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.499 10.3797 0 - vertex 15.5399 9.97068 0 - vertex 15.369 9.74689 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.7259 8.22365 0 - vertex 15.498 4.716 0 - vertex 15.6639 4.10009 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.213 9.52982 0 - vertex 16.499 10.3797 0 - vertex 15.369 9.74689 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.8834 8.89663 0 - vertex 15.3486 5.33522 0 - vertex 15.498 4.716 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3513 9.26304 0 - vertex 15.2183 5.95043 0 - vertex 15.3486 5.33522 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.499 10.3797 0 - vertex 15.213 9.52982 0 - vertex 14.9212 8.45633 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7274 9.66569 0 - vertex 15.1095 6.5543 0 - vertex 15.2183 5.95043 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9262 8.72903 0 - vertex 15.213 9.52982 0 - vertex 15.0942 9.33737 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.9645 10.0501 0 - vertex 15.0249 7.13954 0 - vertex 15.1095 6.5543 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.9543 8.95485 0 - vertex 15.0942 9.33737 0 - vertex 15.0092 9.15168 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.093 10.2619 0 - vertex 14.9668 7.69881 0 - vertex 15.0249 7.13954 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0942 9.33737 0 - vertex 14.9543 8.95485 0 - vertex 14.9262 8.72903 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.213 9.52982 0 - vertex 14.9262 8.72903 0 - vertex 14.9212 8.45633 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.3487 10.3363 0 - vertex 14.9212 8.45633 0 - vertex 14.9668 7.69881 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3467 17.5167 0 - vertex 26.0933 17.5963 0 - vertex 26.0696 17.9605 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 25.4856 17.2443 0 - vertex 26.0933 17.5963 0 - vertex 25.3467 17.5167 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.163 17.7384 0 - vertex 26.0696 17.9605 0 - vertex 26.0009 18.2942 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 25.6037 16.9917 0 - vertex 26.0803 17.2678 0 - vertex 25.4856 17.2443 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0803 17.2678 0 - vertex 25.6037 16.9917 0 - vertex 26.0434 17.0172 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.0501 17.8316 0 - vertex 26.0009 18.2942 0 - vertex 25.8914 18.5921 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 25.7157 16.8274 0 - vertex 26.0434 17.0172 0 - vertex 25.6037 16.9917 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0434 17.0172 0 - vertex 25.7157 16.8274 0 - vertex 25.9855 16.8461 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.9207 17.9138 0 - vertex 25.8914 18.5921 0 - vertex 25.7448 18.8483 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 25.8187 16.7495 0 - vertex 25.9855 16.8461 0 - vertex 25.7157 16.8274 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.9855 16.8461 0 - vertex 25.8187 16.7495 0 - vertex 25.9096 16.7563 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.9207 17.9138 0 - vertex 25.7448 18.8483 0 - vertex 25.5652 19.0574 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.9096 16.7563 0 - vertex 25.8187 16.7495 0 - vertex 25.8659 16.7424 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.9207 17.9138 0 - vertex 25.5652 19.0574 0 - vertex 25.3564 19.2137 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0933 17.5963 0 - vertex 25.4856 17.2443 0 - vertex 26.0803 17.2678 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0696 17.9605 0 - vertex 25.2614 17.6336 0 - vertex 25.3467 17.5167 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0696 17.9605 0 - vertex 25.163 17.7384 0 - vertex 25.2614 17.6336 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6059 18.0475 0 - vertex 25.3564 19.2137 0 - vertex 25.1224 19.3115 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0009 18.2942 0 - vertex 25.0501 17.8316 0 - vertex 25.163 17.7384 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6059 18.0475 0 - vertex 25.1224 19.3115 0 - vertex 24.9972 19.3368 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.8914 18.5921 0 - vertex 24.9207 17.9138 0 - vertex 25.0501 17.8316 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6059 18.0475 0 - vertex 24.9972 19.3368 0 - vertex 24.8672 19.3454 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6059 18.0475 0 - vertex 24.8672 19.3454 0 - vertex 24.6124 19.3722 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3564 19.2137 0 - vertex 24.6059 18.0475 0 - vertex 24.9207 17.9138 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.2049 18.1437 0 - vertex 24.6124 19.3722 0 - vertex 24.2514 19.4451 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.6124 19.3722 0 - vertex 24.2049 18.1437 0 - vertex 24.6059 18.0475 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.7039 18.207 0 - vertex 24.2514 19.4451 0 - vertex 23.8321 19.5531 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.2514 19.4451 0 - vertex 23.7039 18.207 0 - vertex 24.2049 18.1437 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.0891 18.2417 0 - vertex 23.8321 19.5531 0 - vertex 23.4027 19.6849 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.8321 19.5531 0 - vertex 23.0891 18.2417 0 - vertex 23.7039 18.207 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.9977 19.8472 0 - vertex 23.0891 18.2417 0 - vertex 23.4027 19.6849 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.3468 18.2522 0 - vertex 22.9977 19.8472 0 - vertex 22.6486 20.047 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.5679 18.2611 0 - vertex 22.6486 20.047 0 - vertex 22.3515 20.2895 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.9977 19.8472 0 - vertex 22.3468 18.2522 0 - vertex 23.0891 18.2417 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.5679 18.2611 0 - vertex 22.3515 20.2895 0 - vertex 22.2213 20.4283 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.8522 19.3078 0 - vertex 22.2213 20.4283 0 - vertex 22.1028 20.5797 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.753 19.8896 0 - vertex 22.1028 20.5797 0 - vertex 21.8989 20.9229 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.6713 20.6529 0 - vertex 21.8989 20.9229 0 - vertex 21.7362 21.3239 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 19.58 21.4118 0 - vertex 21.7362 21.3239 0 - vertex 21.6111 21.7881 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.6486 20.047 0 - vertex 21.5679 18.2611 0 - vertex 22.3468 18.2522 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5238 21.6908 0 - vertex 21.6111 21.7881 0 - vertex 21.5197 22.3204 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.4538 21.9215 0 - vertex 21.5197 22.3204 0 - vertex 21.4205 22.8275 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3646 22.1178 0 - vertex 21.4205 22.8275 0 - vertex 21.3493 23.064 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.3646 22.1178 0 - vertex 21.3493 23.064 0 - vertex 21.2635 23.2891 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.2511 22.2936 0 - vertex 21.2635 23.2891 0 - vertex 21.1632 23.503 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.2511 22.2936 0 - vertex 21.1632 23.503 0 - vertex 21.0482 23.7058 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.8989 20.9229 0 - vertex 19.6713 20.6529 0 - vertex 19.753 19.8896 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.108 22.463 0 - vertex 21.0482 23.7058 0 - vertex 20.9184 23.8976 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.108 22.463 0 - vertex 20.9184 23.8976 0 - vertex 20.7738 24.0784 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.1028 20.5797 0 - vertex 19.753 19.8896 0 - vertex 19.8522 19.3078 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.108 22.463 0 - vertex 20.7738 24.0784 0 - vertex 20.6143 24.2484 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.2213 20.4283 0 - vertex 20.9709 18.304 0 - vertex 21.5679 18.2611 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.9302 22.6398 0 - vertex 20.6143 24.2484 0 - vertex 20.4398 24.4076 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.2213 20.4283 0 - vertex 19.8522 19.3078 0 - vertex 20.9709 18.304 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.9302 22.6398 0 - vertex 20.4398 24.4076 0 - vertex 20.2502 24.5562 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.9709 18.304 0 - vertex 19.8522 19.3078 0 - vertex 20.7319 18.3459 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 19.9169 19.0772 0 - vertex 20.7319 18.3459 0 - vertex 19.8522 19.3078 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.6454 22.8797 0 - vertex 20.2502 24.5562 0 - vertex 20.0455 24.6942 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.7319 18.3459 0 - vertex 19.9169 19.0772 0 - vertex 20.5281 18.4055 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 19.9962 18.8829 0 - vertex 20.5281 18.4055 0 - vertex 19.9169 19.0772 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.5281 18.4055 0 - vertex 19.9962 18.8829 0 - vertex 20.3561 18.486 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3561 18.486 0 - vertex 20.0935 18.7216 0 - vertex 20.2124 18.5903 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 20.0935 18.7216 0 - vertex 20.3561 18.486 0 - vertex 19.9962 18.8829 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.6454 22.8797 0 - vertex 20.0455 24.6942 0 - vertex 19.5904 24.9388 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.7362 21.3239 0 - vertex 19.58 21.4118 0 - vertex 19.6713 20.6529 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.6111 21.7881 0 - vertex 19.5238 21.6908 0 - vertex 19.58 21.4118 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.5197 22.3204 0 - vertex 19.4538 21.9215 0 - vertex 19.5238 21.6908 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.4205 22.8275 0 - vertex 19.3646 22.1178 0 - vertex 19.4538 21.9215 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.2635 23.2891 0 - vertex 19.2511 22.2936 0 - vertex 19.3646 22.1178 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0482 23.7058 0 - vertex 19.108 22.463 0 - vertex 19.2511 22.2936 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.318 23.1114 0 - vertex 19.5904 24.9388 0 - vertex 19.0737 25.1422 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.6143 24.2484 0 - vertex 18.9302 22.6398 0 - vertex 19.108 22.463 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.2502 24.5562 0 - vertex 18.6454 22.8797 0 - vertex 18.9302 22.6398 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.9883 23.3086 0 - vertex 19.0737 25.1422 0 - vertex 18.5685 25.3244 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5904 24.9388 0 - vertex 18.318 23.1114 0 - vertex 18.6454 22.8797 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6969 23.4449 0 - vertex 18.5685 25.3244 0 - vertex 18.1033 25.5216 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.0737 25.1422 0 - vertex 17.9883 23.3086 0 - vertex 18.318 23.1114 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.5685 25.3244 0 - vertex 17.6969 23.4449 0 - vertex 17.9883 23.3086 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6707 25.7385 0 - vertex 17.6969 23.4449 0 - vertex 18.1033 25.5216 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2809 23.9862 0 - vertex 17.6707 25.7385 0 - vertex 17.2631 25.98 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.2809 23.9862 0 - vertex 17.2631 25.98 0 - vertex 16.873 26.2508 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1328 24.4531 0 - vertex 16.873 26.2508 0 - vertex 16.4932 26.5558 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6707 25.7385 0 - vertex 16.2809 23.9862 0 - vertex 17.6969 23.4449 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1328 24.4531 0 - vertex 16.4932 26.5558 0 - vertex 16.116 26.8997 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.2197 24.8651 0 - vertex 16.116 26.8997 0 - vertex 15.734 27.2872 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 13.5086 25.2416 0 - vertex 15.734 27.2872 0 - vertex 15.344 27.7317 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.9664 25.6018 0 - vertex 15.344 27.7317 0 - vertex 15.2193 27.9155 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3979 26.1543 0 - vertex 15.2193 27.9155 0 - vertex 15.1337 28.0941 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.873 26.2508 0 - vertex 15.1328 24.4531 0 - vertex 16.2809 23.9862 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3979 26.1543 0 - vertex 15.1337 28.0941 0 - vertex 15.0817 28.2827 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3979 26.1543 0 - vertex 15.0817 28.2827 0 - vertex 15.0574 28.4965 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.116 26.8997 0 - vertex 14.2197 24.8651 0 - vertex 15.1328 24.4531 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1102 29.496 0 - vertex 12.23 30.2784 0 - vertex 15.0694 29.0611 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 45.6826 -24.0317 0 - vertex 38.119 -36.6694 0 - vertex 38.1248 -36.8464 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 45.3703 -24.1311 0 - vertex 38.0969 -36.5276 0 - vertex 38.119 -36.6694 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.2305 -29.6614 0 - vertex 38.0509 -36.4146 0 - vertex 38.0969 -36.5276 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 37.444 -31.6395 0 - vertex 38.0509 -36.4146 0 - vertex 38.2305 -29.6614 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.0509 -36.4146 0 - vertex 37.444 -31.6395 0 - vertex 37.9736 -36.3241 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.8389 -33.2656 0 - vertex 37.9736 -36.3241 0 - vertex 37.444 -31.6395 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.9736 -36.3241 0 - vertex 36.8389 -33.2656 0 - vertex 37.8576 -36.2498 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.8576 -36.2498 0 - vertex 36.8389 -33.2656 0 - vertex 37.6954 -36.1853 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.4479 -34.448 0 - vertex 37.6954 -36.1853 0 - vertex 36.8389 -33.2656 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.6954 -36.1853 0 - vertex 36.4479 -34.448 0 - vertex 37.203 -36.0604 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.3428 -34.844 0 - vertex 37.203 -36.0604 0 - vertex 36.4479 -34.448 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.3035 -35.0946 0 - vertex 37.203 -36.0604 0 - vertex 36.3428 -34.844 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.203 -36.0604 0 - vertex 36.3035 -35.0946 0 - vertex 36.6812 -35.9318 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.2992 -35.3418 0 - vertex 36.6812 -35.9318 0 - vertex 36.3035 -35.0946 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 36.3089 -35.532 0 - vertex 36.6812 -35.9318 0 - vertex 36.2992 -35.3418 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 36.3422 -35.6758 0 - vertex 36.5187 -35.8653 0 - vertex 36.3089 -35.532 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.6812 -35.9318 0 - vertex 36.3089 -35.532 0 - vertex 36.5187 -35.8653 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.5187 -35.8653 0 - vertex 36.3422 -35.6758 0 - vertex 36.4089 -35.7834 0 + vertex 37.1913 -36.0604 0 + vertex 36.2918 -35.0946 0 + vertex 36.3972 -35.7834 0 endloop endfacet facet normal 0 0 1 outer loop vertex 117.5 117.5 0 - vertex 47.9993 -20.1225 0 + vertex 47.9875 -20.1225 0 vertex 117.5 -117.5 0 endloop endfacet facet normal 0 0 1 outer loop vertex 117.5 117.5 0 - vertex 47.9745 -19.9807 0 - vertex 47.9993 -20.1225 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 47.9233 -19.8512 0 - vertex 47.9745 -19.9807 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 47.845 -19.7221 0 - vertex 47.9233 -19.8512 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 47.7384 -19.5813 0 - vertex 47.845 -19.7221 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 47.6302 -19.4614 0 - vertex 47.7384 -19.5813 0 + vertex 47.7267 -19.5813 0 + vertex 47.9875 -20.1225 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 27.4995 15.0808 0 - vertex 47.6302 -19.4614 0 + vertex 27.5422 14.7505 0 + vertex 47.7267 -19.5813 0 vertex 117.5 117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 47.6302 -19.4614 0 - vertex 27.4995 15.0808 0 - vertex 47.5127 -19.3635 0 + vertex 47.7267 -19.5813 0 + vertex 27.5422 14.7505 0 + vertex 47.2139 -19.2263 0 endloop endfacet facet normal -0 -0 1 outer loop - vertex 27.5539 14.7505 0 - vertex 47.5127 -19.3635 0 - vertex 27.4995 15.0808 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 27.5896 14.3319 0 - vertex 47.5127 -19.3635 0 - vertex 27.5539 14.7505 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 47.5127 -19.3635 0 - vertex 27.5896 14.3319 0 - vertex 47.3799 -19.2858 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 27.6103 13.7945 0 - vertex 47.3799 -19.2858 0 - vertex 27.5896 14.3319 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 27.6211 12.2412 0 - vertex 47.3799 -19.2858 0 - vertex 27.6103 13.7945 0 + vertex 27.6094 12.2412 0 + vertex 47.2139 -19.2263 0 + vertex 27.5422 14.7505 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 27.6024 10.7775 0 - vertex 47.3799 -19.2858 0 - vertex 27.6211 12.2412 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 47.3799 -19.2858 0 - vertex 27.6024 10.7775 0 - vertex 47.2257 -19.2263 0 + vertex 27.528 9.70386 0 + vertex 47.2139 -19.2263 0 + vertex 27.6094 12.2412 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 27.5775 10.2019 0 - vertex 47.2257 -19.2263 0 - vertex 27.6024 10.7775 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 27.5397 9.70386 0 - vertex 47.2257 -19.2263 0 - vertex 27.5775 10.2019 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 47.2257 -19.2263 0 - vertex 27.5397 9.70386 0 - vertex 47.044 -19.1833 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.9647 2.16551 0 - vertex 47.044 -19.1833 0 - vertex 27.5397 9.70386 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 47.044 -19.1833 0 - vertex 26.9647 2.16551 0 - vertex 46.8289 -19.1548 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 45.391 -19.1898 0 - vertex 41.7426 -19.1572 0 - vertex 44.9905 -19.265 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 42.162 -19.859 0 - vertex 42.9547 -20.2657 0 - vertex 42.1595 -19.6516 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 42.1212 -20.0931 0 - vertex 42.9547 -20.2657 0 - vertex 42.162 -19.859 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 43.4033 -19.9696 0 - vertex 42.1595 -19.6516 0 - vertex 42.9547 -20.2657 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 42.1595 -19.6516 0 - vertex 43.4033 -19.9696 0 - vertex 42.1149 -19.4743 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.9905 -19.265 0 - vertex 41.7426 -19.1572 0 - vertex 44.6026 -19.3768 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 41.9051 -19.2238 0 - vertex 44.6026 -19.3768 0 - vertex 41.7426 -19.1572 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 43.8201 -19.7253 0 - vertex 42.1149 -19.4743 0 - vertex 43.4033 -19.9696 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.6026 -19.3768 0 - vertex 41.9051 -19.2238 0 - vertex 44.2162 -19.5289 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.2162 -19.5289 0 - vertex 42.0297 -19.3306 0 - vertex 43.8201 -19.7253 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 42.0297 -19.3306 0 - vertex 44.2162 -19.5289 0 - vertex 41.9051 -19.2238 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 46.8289 -19.1548 0 - vertex 26.9647 2.16551 0 - vertex 46.274 -19.1343 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.9324 1.61996 0 - vertex 46.274 -19.1343 0 - vertex 26.9647 2.16551 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 46.274 -19.1343 0 - vertex 26.9324 1.61996 0 - vertex 45.8151 -19.1475 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 45.8151 -19.1475 0 - vertex 26.901 1.43209 0 - vertex 45.391 -19.1898 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.3957 -19.1543 0 - vertex 26.8581 1.29842 0 - vertex 41.156 -19.2119 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 39.5298 -19.7361 0 - vertex 29.9546 -19.4981 0 - vertex 38.4916 -20.1181 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.4916 -20.1181 0 - vertex 30.3649 -19.705 0 - vertex 37.4642 -20.5001 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 37.4642 -20.5001 0 - vertex 30.3649 -19.705 0 - vertex 36.5724 -20.813 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 30.7365 -19.9631 0 - vertex 36.5724 -20.813 0 - vertex 30.3649 -19.705 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.5724 -20.813 0 - vertex 30.7365 -19.9631 0 - vertex 35.9118 -21.0243 0 + vertex 26.9177 3.98634 0 + vertex 47.2139 -19.2263 0 + vertex 27.528 9.70386 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex 35.4013 -21.1287 0 - vertex 35.9118 -21.0243 0 - vertex 30.7365 -19.9631 0 + vertex 42.1032 -19.4743 0 + vertex 44.5909 -19.3768 0 + vertex 41.8934 -19.2238 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 44.5909 -19.3768 0 + vertex 42.1032 -19.4743 0 + vertex 42.943 -20.2657 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 46.2623 -19.1343 0 + vertex 41.5319 -19.1343 0 + vertex 44.5909 -19.3768 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 44.5909 -19.3768 0 + vertex 41.5319 -19.1343 0 + vertex 41.8934 -19.2238 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 47.2139 -19.2263 0 + vertex 26.953 2.16551 0 + vertex 46.2623 -19.1343 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 46.2623 -19.1343 0 + vertex 26.8464 1.29842 0 + vertex 41.5319 -19.1343 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 32.0349 -22.2828 0 - vertex 34.6318 -22.2927 0 - vertex 34.653 -22.0706 0 + vertex 31.4974 -26.3899 0 + vertex 35.3305 -26.5156 0 + vertex 31.8275 -24.8188 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 34.6318 -22.2927 0 - vertex 31.6784 -25.7224 0 - vertex 33.8561 -30.1753 0 + vertex 31.8275 -24.8188 0 + vertex 34.62 -22.2927 0 + vertex 32.0255 -23.3848 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 31.8086 -21.404 0 + vertex 34.62 -22.2927 0 + vertex 34.9156 -21.474 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 38.4798 -20.1181 0 + vertex 30.7248 -19.9631 0 + vertex 35.5661 -21.102 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 34.62 -22.2927 0 + vertex 32.0232 -22.2828 0 + vertex 32.0255 -23.3848 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 34.62 -22.2927 0 + vertex 31.8086 -21.404 0 + vertex 32.0232 -22.2828 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 35.5661 -21.102 0 + vertex 30.7248 -19.9631 0 + vertex 35.2187 -21.2043 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 34.9156 -21.474 0 + vertex 31.3699 -20.64 0 + vertex 31.8086 -21.404 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 35.2187 -21.2043 0 + vertex 31.3699 -20.64 0 + vertex 34.9156 -21.474 0 + endloop + endfacet + facet normal -0 -0 1 + outer loop + vertex 31.3699 -20.64 0 + vertex 35.2187 -21.2043 0 + vertex 30.7248 -19.9631 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 31.5092 -26.3899 0 - vertex 33.8561 -30.1753 0 - vertex 31.6003 -26.0834 0 + vertex 26.8464 1.29842 0 + vertex 46.2623 -19.1343 0 + vertex 26.953 2.16551 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 41.5319 -19.1343 0 + vertex 26.8464 1.29842 0 + vertex 38.4798 -20.1181 0 + endloop + endfacet + facet normal -0 -0 1 + outer loop + vertex 30.7248 -19.9631 0 + vertex 38.4798 -20.1181 0 + vertex 29.9429 -19.4981 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 31.2435 -26.857 0 - vertex 33.8561 -30.1753 0 - vertex 31.3939 -26.6463 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.6318 -22.2927 0 - vertex 32.0619 -22.7991 0 - vertex 32.0372 -23.3848 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.9549 -21.8223 0 - vertex 34.653 -22.0706 0 - vertex 34.713 -21.8554 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.8204 -21.404 0 - vertex 34.713 -21.8554 0 - vertex 34.8063 -21.6543 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 31.074 -20.2742 0 - vertex 35.4013 -21.1287 0 - vertex 30.7365 -19.9631 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.6318 -22.2927 0 - vertex 32.0349 -22.2828 0 - vertex 32.0619 -22.7991 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.653 -22.0706 0 - vertex 31.9549 -21.8223 0 - vertex 32.0349 -22.2828 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 31.3816 -20.64 0 - vertex 35.2304 -21.2043 0 - vertex 31.074 -20.2742 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.713 -21.8554 0 - vertex 31.8204 -21.404 0 - vertex 31.9549 -21.8223 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.9274 -21.474 0 - vertex 31.8204 -21.404 0 - vertex 34.8063 -21.6543 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 31.8204 -21.404 0 - vertex 34.9274 -21.474 0 - vertex 31.6298 -21.0145 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.0706 -21.3217 0 - vertex 31.6298 -21.0145 0 - vertex 34.9274 -21.474 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 31.6298 -21.0145 0 - vertex 35.0706 -21.3217 0 - vertex 31.3816 -20.64 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.2304 -21.2043 0 - vertex 31.3816 -20.64 0 - vertex 35.0706 -21.3217 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.9118 -21.0243 0 - vertex 35.4013 -21.1287 0 - vertex 35.5778 -21.102 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.5436 -19.1343 0 - vertex 26.8581 1.29842 0 - vertex 41.3957 -19.1543 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 45.391 -19.1898 0 - vertex 26.901 1.43209 0 - vertex 41.7426 -19.1572 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.7426 -19.1572 0 - vertex 26.901 1.43209 0 - vertex 41.5436 -19.1343 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.8581 1.29842 0 - vertex 41.5436 -19.1343 0 - vertex 26.901 1.43209 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.4013 -21.1287 0 - vertex 31.074 -20.2742 0 - vertex 35.2304 -21.2043 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 30.3649 -19.705 0 - vertex 38.4916 -20.1181 0 - vertex 29.9546 -19.4981 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.901 1.43209 0 - vertex 45.8151 -19.1475 0 - vertex 26.9324 1.61996 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 42.1149 -19.4743 0 - vertex 43.8201 -19.7253 0 - vertex 42.0297 -19.3306 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 27.4227 15.3534 0 - vertex 27.4995 15.0808 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.5691 18.3624 0 - vertex 27.4227 15.3534 0 - vertex 117.5 117.5 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 26.6332 18.0815 0 - vertex 27.4227 15.3534 0 - vertex 26.5691 18.3624 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 26.6784 17.7808 0 - vertex 27.3198 15.5987 0 - vertex 26.6332 18.0815 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.3198 15.5987 0 - vertex 26.6784 17.7808 0 - vertex 27.1872 15.8473 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.1872 15.8473 0 - vertex 26.7051 17.4601 0 - vertex 27.0139 16.2113 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.0139 16.2113 0 - vertex 26.7051 17.4601 0 - vertex 26.8653 16.6367 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.8653 16.6367 0 - vertex 26.7051 17.4601 0 - vertex 26.7571 17.0706 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 26.7051 17.4601 0 - vertex 27.1872 15.8473 0 - vertex 26.6784 17.7808 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4227 15.3534 0 - vertex 26.6332 18.0815 0 - vertex 27.3198 15.5987 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 26.4859 18.624 0 - vertex 26.5691 18.3624 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 26.3832 18.8665 0 - vertex 26.4859 18.624 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 26.2605 19.0904 0 - vertex 26.3832 18.8665 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 26.1176 19.296 0 - vertex 26.2605 19.0904 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 25.9541 19.4837 0 - vertex 26.1176 19.296 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.4677 24.3609 0 - vertex 25.9541 19.4837 0 + vertex 26.4742 18.624 0 + vertex 27.5422 14.7505 0 vertex 117.5 117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 25.9541 19.4837 0 - vertex 21.4677 24.3609 0 - vertex 25.7697 19.6539 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 21.6182 24.144 0 - vertex 25.7697 19.6539 0 - vertex 21.4677 24.3609 0 + vertex 27.5422 14.7505 0 + vertex 26.4742 18.624 0 + vertex 27.1755 15.8473 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 25.7697 19.6539 0 - vertex 21.6182 24.144 0 - vertex 25.5639 19.8069 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 21.7423 23.9135 0 - vertex 25.5639 19.8069 0 - vertex 21.6182 24.144 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.5639 19.8069 0 - vertex 21.7423 23.9135 0 - vertex 25.3364 19.943 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3364 19.943 0 - vertex 21.8437 23.6658 0 - vertex 25.087 20.0627 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 21.926 23.397 0 - vertex 25.087 20.0627 0 - vertex 21.8437 23.6658 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.087 20.0627 0 - vertex 21.926 23.397 0 - vertex 24.8151 20.1664 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.8151 20.1664 0 - vertex 21.9928 23.1034 0 - vertex 24.5205 20.2543 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 22.0944 22.427 0 - vertex 24.2028 20.3268 0 - vertex 21.9928 23.1034 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.2028 20.3268 0 - vertex 22.0944 22.427 0 - vertex 23.8617 20.3844 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 22.2815 21.5943 0 - vertex 23.8617 20.3844 0 - vertex 22.1689 21.9813 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.8617 20.3844 0 - vertex 22.2815 21.5943 0 - vertex 23.4814 20.4643 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 22.4341 21.2638 0 - vertex 23.1504 20.59 0 - vertex 22.2815 21.5943 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.1504 20.59 0 - vertex 22.4341 21.2638 0 - vertex 22.8668 20.7638 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.7421 20.8693 0 - vertex 22.4341 21.2638 0 - vertex 22.6286 20.9877 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.8668 20.7638 0 - vertex 22.4341 21.2638 0 - vertex 22.7421 20.8693 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.4814 20.4643 0 - vertex 22.2815 21.5943 0 - vertex 23.1504 20.59 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 22.1689 21.9813 0 - vertex 23.8617 20.3844 0 - vertex 22.0944 22.427 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.5205 20.2543 0 - vertex 21.9928 23.1034 0 - vertex 24.2028 20.3268 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 21.9928 23.1034 0 - vertex 24.8151 20.1664 0 - vertex 21.926 23.397 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 21.8437 23.6658 0 - vertex 25.3364 19.943 0 - vertex 21.7423 23.9135 0 + vertex 27.1755 15.8473 0 + vertex 26.4742 18.624 0 + vertex 26.6933 17.4601 0 endloop endfacet facet normal 0 0 1 outer loop vertex 117.5 117.5 0 - vertex 21.2873 24.568 0 - vertex 21.4677 24.3609 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 21.0733 24.7691 0 - vertex 21.2873 24.568 0 + vertex 25.9424 19.4837 0 + vertex 26.4742 18.624 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 15.4091 30.0386 0 - vertex 21.0733 24.7691 0 + vertex 21.2755 24.568 0 + vertex 25.9424 19.4837 0 + vertex 117.5 117.5 0 + endloop + endfacet + facet normal -0 -0 1 + outer loop + vertex 21.8319 23.6658 0 + vertex 25.9424 19.4837 0 + vertex 21.2755 24.568 0 + endloop + endfacet + facet normal -0 -0 1 + outer loop + vertex 22.0827 22.427 0 + vertex 25.0752 20.0627 0 + vertex 21.8319 23.6658 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 25.0752 20.0627 0 + vertex 22.0827 22.427 0 + vertex 23.8499 20.3844 0 + endloop + endfacet + facet normal -0 -0 1 + outer loop + vertex 22.2698 21.5943 0 + vertex 23.8499 20.3844 0 + vertex 22.0827 22.427 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.1387 20.59 0 + vertex 22.2698 21.5943 0 + vertex 22.6169 20.9877 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 23.8499 20.3844 0 + vertex 22.2698 21.5943 0 + vertex 23.1387 20.59 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 25.9424 19.4837 0 + vertex 21.8319 23.6658 0 + vertex 25.0752 20.0627 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 15.3134 30.0845 0 + vertex 21.2755 24.568 0 vertex 117.5 117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 21.0733 24.7691 0 - vertex 15.4091 30.0386 0 - vertex 20.8221 24.9679 0 + vertex 21.2755 24.568 0 + vertex 15.3134 30.0845 0 + vertex 20.1819 25.3734 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 20.8221 24.9679 0 - vertex 15.4091 30.0386 0 - vertex 20.53 25.168 0 + vertex 20.1819 25.3734 0 + vertex 15.4783 29.8698 0 + vertex 18.3193 26.3216 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 20.53 25.168 0 - vertex 15.4091 30.0386 0 - vertex 20.1936 25.3734 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.1936 25.3734 0 - vertex 15.4091 30.0386 0 - vertex 19.3729 25.8147 0 + vertex 18.3193 26.3216 0 + vertex 15.4783 29.8698 0 + vertex 17.0772 26.9817 0 endloop endfacet facet normal -0 -0 1 outer loop - vertex 15.49 29.8698 0 - vertex 19.3729 25.8147 0 - vertex 15.4091 30.0386 0 + vertex 15.6084 29.1601 0 + vertex 17.0772 26.9817 0 + vertex 15.4783 29.8698 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 19.3729 25.8147 0 - vertex 15.49 29.8698 0 - vertex 18.3311 26.3216 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 15.5622 29.5773 0 - vertex 18.3311 26.3216 0 - vertex 15.49 29.8698 0 + vertex 17.0772 26.9817 0 + vertex 15.6084 29.1601 0 + vertex 16.2688 27.6146 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 17.6504 26.6607 0 - vertex 15.5622 29.5773 0 - vertex 17.0889 26.9817 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 15.6202 29.1601 0 - vertex 17.0889 26.9817 0 - vertex 15.5622 29.5773 0 + vertex 16.2688 27.6146 0 + vertex 15.6084 29.1601 0 + vertex 15.808 28.3106 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 17.0889 26.9817 0 - vertex 15.6202 29.1601 0 - vertex 16.6359 27.2959 0 + vertex 20.1819 25.3734 0 + vertex 15.3134 30.0845 0 + vertex 15.4783 29.8698 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 16.6359 27.2959 0 - vertex 15.6202 29.1601 0 - vertex 16.4467 27.454 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 15.6927 28.7106 0 - vertex 16.4467 27.454 0 - vertex 15.6202 29.1601 0 + vertex 12.2907 30.5214 0 + vertex 15.0577 29.0611 0 + vertex 15.1584 29.8123 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 16.2806 27.6146 0 - vertex 15.6927 28.7106 0 - vertex 16.1362 27.7792 0 + vertex 15.122 28.0941 0 + vertex 12.5486 25.9653 0 + vertex 13.4969 25.2416 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 16.1362 27.7792 0 - vertex 15.6927 28.7106 0 - vertex 16.0121 27.9491 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.0121 27.9491 0 - vertex 15.6927 28.7106 0 - vertex 15.9071 28.1258 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.9071 28.1258 0 - vertex 15.6927 28.7106 0 - vertex 15.8197 28.3106 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.8197 28.3106 0 - vertex 15.6927 28.7106 0 - vertex 15.7487 28.5051 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.4467 27.454 0 - vertex 15.6927 28.7106 0 - vertex 16.2806 27.6146 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.3311 26.3216 0 - vertex 15.5622 29.5773 0 - vertex 17.6504 26.6607 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 117.5 117.5 0 - vertex 15.3672 30.0768 0 - vertex 15.4091 30.0386 0 + vertex 12.2907 30.5214 0 + vertex 15.1584 29.8123 0 + vertex 15.3134 30.0845 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 5.23504 38.5484 0 - vertex 15.3672 30.0768 0 + vertex 12.0187 29.9363 0 + vertex 15.0577 29.0611 0 + vertex 12.2907 30.5214 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 5.15152 38.5852 0 + vertex 15.3134 30.0845 0 vertex 117.5 117.5 0 endloop endfacet - facet normal 0 0 1 + facet normal -0 -0 1 outer loop - vertex 15.3672 30.0768 0 - vertex 5.23504 38.5484 0 - vertex 15.3252 30.0845 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.23 30.2784 0 - vertex 15.1102 29.496 0 - vertex 12.2821 30.4122 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1701 29.8123 0 - vertex 12.2821 30.4122 0 - vertex 15.1102 29.496 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.2821 30.4122 0 - vertex 15.1701 29.8123 0 - vertex 12.3025 30.5214 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.734 27.2872 0 - vertex 13.5086 25.2416 0 - vertex 14.2197 24.8651 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.344 27.7317 0 - vertex 13.2184 25.4225 0 - vertex 13.5086 25.2416 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.3025 30.5214 0 - vertex 15.1701 29.8123 0 - vertex 15.2437 30.0088 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.344 27.7317 0 - vertex 12.9664 25.6018 0 - vertex 13.2184 25.4225 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2193 27.9155 0 - vertex 12.7484 25.782 0 - vertex 12.9664 25.6018 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2193 27.9155 0 - vertex 12.5603 25.9653 0 - vertex 12.7484 25.782 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2193 27.9155 0 - vertex 12.3979 26.1543 0 - vertex 12.5603 25.9653 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.0304 29.9363 0 - vertex 15.0694 29.0611 0 - vertex 12.23 30.2784 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.291 30.606 0 - vertex 15.2437 30.0088 0 - vertex 15.2838 30.0618 0 + vertex 5.25321 38.4452 0 + vertex 15.3134 30.0845 0 + vertex 5.15152 38.5852 0 endloop endfacet facet normal -0 -0 1 outer loop - vertex 5.26494 38.4452 0 - vertex 15.3252 30.0845 0 - vertex 5.23504 38.5484 0 + vertex 12.0544 30.7144 0 + vertex 15.3134 30.0845 0 + vertex 5.25321 38.4452 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 15.2437 30.0088 0 - vertex 12.291 30.606 0 - vertex 12.3025 30.5214 0 + vertex 13.0733 24.7212 0 + vertex 9.71033 23.0922 0 + vertex 10.9729 20.5521 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 15.2838 30.0618 0 - vertex 12.2478 30.6663 0 - vertex 12.291 30.606 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 12.1728 30.7024 0 - vertex 15.3252 30.0845 0 - vertex 5.26494 38.4452 0 + vertex 5.72413 26.6445 0 + vertex 11.0411 28.3898 0 + vertex 11.2319 29.4873 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 15.3252 30.0845 0 - vertex 12.2478 30.6663 0 - vertex 15.2838 30.0618 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 12.2478 30.6663 0 - vertex 15.3252 30.0845 0 - vertex 12.1728 30.7024 0 + vertex 12.1975 25.5292 0 + vertex 9.07032 24.476 0 + vertex 9.71033 23.0922 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 12.1728 30.7024 0 - vertex 5.26494 38.4452 0 - vertex 12.0661 30.7144 0 + vertex 5.72413 26.6445 0 + vertex 11.2319 29.4873 0 + vertex 11.5971 30.3591 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 13.7923 24.2655 0 - vertex 10.6869 21.0368 0 - vertex 10.9846 20.5521 0 + vertex 11.5037 26.4501 0 + vertex 8.51885 25.3107 0 + vertex 9.07032 24.476 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 7.55919 25.8755 0 - vertex 11.0419 28.1143 0 - vertex 11.0528 28.3898 0 + vertex 11.1066 27.3577 0 + vertex 7.91411 25.7528 0 + vertex 8.51885 25.3107 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 13.5553 24.3991 0 - vertex 10.3935 21.5973 0 - vertex 10.6869 21.0368 0 + vertex 11.0411 28.3898 0 + vertex 7.11433 25.9588 0 + vertex 7.91411 25.7528 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 13.085 24.7212 0 - vertex 10.0801 22.2703 0 - vertex 10.3935 21.5973 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.55919 25.8755 0 - vertex 11.0528 28.3898 0 - vertex 11.1213 28.9486 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.6316 25.1032 0 - vertex 9.72206 23.0922 0 - vertex 10.0801 22.2703 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.39739 26.9794 0 - vertex 11.1213 28.9486 0 - vertex 11.2437 29.4873 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.2092 25.5292 0 - vertex 9.38213 23.8626 0 - vertex 9.72206 23.0922 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.8324 25.9834 0 - vertex 9.08206 24.476 0 - vertex 9.38213 23.8626 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.39739 26.9794 0 - vertex 11.2437 29.4873 0 - vertex 11.4096 29.9696 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.5154 26.4501 0 - vertex 8.80411 24.9522 0 - vertex 9.08206 24.476 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.39739 26.9794 0 - vertex 11.4096 29.9696 0 - vertex 11.5057 30.1782 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.3839 26.6832 0 - vertex 8.6679 25.145 0 - vertex 8.80411 24.9522 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.2726 26.9135 0 - vertex 8.53058 25.3107 0 - vertex 8.6679 25.145 0 + vertex 11.0411 28.3898 0 + vertex 5.72413 26.6445 0 + vertex 7.11433 25.9588 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 5.02596 37.5856 0 - vertex 11.9476 30.6899 0 - vertex 5.13345 37.8458 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.1835 27.139 0 - vertex 8.38993 25.4519 0 - vertex 8.53058 25.3107 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.1184 27.3577 0 - vertex 8.24373 25.571 0 - vertex 8.38993 25.4519 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 11.0734 27.5937 0 - vertex 8.08977 25.6705 0 - vertex 8.24373 25.571 0 + vertex 5.19939 38.083 0 + vertex 12.0544 30.7144 0 + vertex 5.25321 38.4452 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 5.13345 37.8458 0 - vertex 11.9476 30.6899 0 - vertex 5.21112 38.083 0 + vertex 4.72188 37.0399 0 + vertex 12.0544 30.7144 0 + vertex 5.19939 38.083 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 11.0484 27.8474 0 - vertex 7.92584 25.7528 0 - vertex 8.08977 25.6705 0 + vertex 7.11433 25.9588 0 + vertex 5.72413 26.6445 0 + vertex 6.4022 26.1795 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 11.0419 28.1143 0 - vertex 7.55919 25.8755 0 - vertex 7.92584 25.7528 0 + vertex 15.3134 30.0845 0 + vertex 12.0544 30.7144 0 + vertex 12.2907 30.5214 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 11.1213 28.9486 0 - vertex 5.39739 26.9794 0 - vertex 7.12606 25.9588 0 + vertex -1.46161 28.0795 0 + vertex 1.04836 28.6106 0 + vertex 1.1273 29.8907 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 11.1213 28.9486 0 - vertex 7.12606 25.9588 0 - vertex 7.55919 25.8755 0 + vertex 1.04836 28.6106 0 + vertex -0.115935 27.2162 0 + vertex 0.858783 27.1101 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 12.0661 30.7144 0 - vertex 5.21112 38.083 0 - vertex 11.9476 30.6899 0 + vertex -2.77953 29.7664 0 + vertex 1.1273 29.8907 0 + vertex 1.37489 31.173 0 endloop endfacet - facet normal -0 -0 1 + facet normal 0 0 1 outer loop - vertex 5.73586 26.6445 0 - vertex 7.12606 25.9588 0 - vertex 5.39739 26.9794 0 + vertex 1.04836 28.6106 0 + vertex -0.786632 27.5359 0 + vertex -0.115935 27.2162 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 5.25596 38.2865 0 - vertex 12.0661 30.7144 0 - vertex 5.26494 38.4452 0 + vertex -3.97987 32.1322 0 + vertex 1.37489 31.173 0 + vertex 2.44067 33.9939 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 1.04836 28.6106 0 + vertex -1.46161 28.0795 0 + vertex -0.786632 27.5359 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 4.89167 37.3134 0 - vertex 11.9476 30.6899 0 - vertex 5.02596 37.5856 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 6.07308 26.3793 0 - vertex 7.12606 25.9588 0 - vertex 5.73586 26.6445 0 + vertex -5.55994 36.5001 0 + vertex 2.44067 33.9939 0 + vertex 4.08079 37.0842 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 7.12606 25.9588 0 - vertex 6.07308 26.3793 0 - vertex 6.76329 26.0408 0 + vertex 1.1273 29.8907 0 + vertex -2.77953 29.7664 0 + vertex -1.46161 28.0795 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 6.76329 26.0408 0 - vertex 6.07308 26.3793 0 - vertex 6.41393 26.1795 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 5.21112 38.083 0 - vertex 12.0661 30.7144 0 - vertex 5.25596 38.2865 0 + vertex -5.55994 36.5001 0 + vertex 4.08079 37.0842 0 + vertex 5.15152 38.5852 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 117.5 117.5 0 - vertex 5.20457 38.5758 0 - vertex 5.23504 38.5484 0 + vertex 1.37489 31.173 0 + vertex -3.97987 32.1322 0 + vertex -2.77953 29.7664 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 117.5 117.5 0 - vertex 5.16325 38.5852 0 - vertex 5.20457 38.5758 0 + vertex 2.44067 33.9939 0 + vertex -4.97284 35.0324 0 + vertex -3.97987 32.1322 0 endloop endfacet facet normal -0 0 1 outer loop vertex -117.5 117.5 0 - vertex 5.16325 38.5852 0 + vertex 5.15152 38.5852 0 vertex 117.5 117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -0.438314 27.347 0 - vertex 1.04514 28.0688 0 - vertex 1.0601 28.6106 0 + vertex 2.44067 33.9939 0 + vertex -5.55994 36.5001 0 + vertex -4.97284 35.0324 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -1.11256 27.7809 0 - vertex 1.0601 28.6106 0 - vertex 1.07949 29.2543 0 + vertex 5.15152 38.5852 0 + vertex -5.8163 36.5812 0 + vertex -5.55994 36.5001 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 1.04514 28.0688 0 - vertex -0.438314 27.347 0 - vertex -0.104203 27.2162 0 + vertex -8.80952 27.3973 0 + vertex -6.28322 28.2565 0 + vertex -6.22131 31.7226 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -11.546 27.7352 0 + vertex -6.22131 31.7226 0 + vertex -6.055 36.2349 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex 0.505992 27.0868 0 - vertex 1.00441 27.6053 0 - vertex 0.215611 27.1342 0 + vertex -7.25507 27.2437 0 + vertex -6.28322 28.2565 0 + vertex -8.80952 27.3973 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 1.00441 27.6053 0 - vertex 0.505992 27.0868 0 - vertex 0.944126 27.2693 0 + vertex -6.28322 28.2565 0 + vertex -7.25507 27.2437 0 + vertex -6.38329 27.6173 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -1.78547 28.4297 0 - vertex 1.07949 29.2543 0 - vertex 1.13903 29.8907 0 + vertex -6.38329 27.6173 0 + vertex -7.25507 27.2437 0 + vertex -6.55612 27.3597 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 0.944126 27.2693 0 - vertex 0.734953 27.0776 0 - vertex 0.908598 27.1645 0 + vertex -6.22131 31.7226 0 + vertex -11.546 27.7352 0 + vertex -8.80952 27.3973 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -6.055 36.2349 0 + vertex -13.5562 27.8374 0 + vertex -11.546 27.7352 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -22.4093 27.9007 0 + vertex -6.055 36.2349 0 + vertex -5.8163 36.5812 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -6.055 36.2349 0 + vertex -15.2376 27.7001 0 + vertex -13.5562 27.8374 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -6.055 36.2349 0 + vertex -20.8096 27.6578 0 + vertex -15.2376 27.7001 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -15.2376 27.7001 0 + vertex -20.8096 27.6578 0 + vertex -16.9875 27.3196 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -16.9875 27.3196 0 + vertex -19.9485 27.2141 0 + vertex -19.335 26.703 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -16.9875 27.3196 0 + vertex -20.8096 27.6578 0 + vertex -19.9485 27.2141 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 5.15152 38.5852 0 + vertex -117.5 117.5 0 + vertex -5.8163 36.5812 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex 0.816408 27.0884 0 - vertex 0.908598 27.1645 0 - vertex 0.734953 27.0776 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.908598 27.1645 0 - vertex 0.816408 27.0884 0 - vertex 0.870515 27.1101 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.44583 29.2754 0 - vertex 1.13903 29.8907 0 - vertex 1.24074 30.5277 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 0.734953 27.0776 0 - vertex 0.944126 27.2693 0 - vertex 0.505992 27.0868 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.08241 30.2998 0 - vertex 1.24074 30.5277 0 - vertex 1.38662 31.173 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.04514 28.0688 0 - vertex 0.215611 27.1342 0 - vertex 1.00441 27.6053 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.38828 30.8734 0 - vertex 1.38662 31.173 0 - vertex 1.57871 31.8344 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -3.96814 32.1322 0 - vertex 1.57871 31.8344 0 - vertex 1.81903 32.5199 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex 0.215611 27.1342 0 - vertex 1.04514 28.0688 0 - vertex -0.104203 27.2162 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -4.23933 32.8128 0 - vertex 1.81903 32.5199 0 - vertex 2.10958 33.2371 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.0601 28.6106 0 - vertex -0.7749 27.5359 0 - vertex -0.438314 27.347 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.73722 34.2652 0 - vertex 2.10958 33.2371 0 - vertex 2.4524 33.9939 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -4.96111 35.0324 0 - vertex 2.4524 33.9939 0 - vertex 2.84738 34.7996 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.0601 28.6106 0 - vertex -1.11256 27.7809 0 - vertex -0.7749 27.5359 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.11886 35.5644 0 - vertex 2.84738 34.7996 0 - vertex 3.26543 35.6052 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -5.41174 36.2975 0 - vertex 3.26543 35.6052 0 - vertex 3.68699 36.3778 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.07949 29.2543 0 - vertex -1.44988 28.0795 0 - vertex -1.11256 27.7809 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.41174 36.2975 0 - vertex 3.68699 36.3778 0 - vertex 4.09252 37.0842 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.54821 36.5001 0 - vertex 4.09252 37.0842 0 - vertex 4.46246 37.6912 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.07949 29.2543 0 - vertex -1.78547 28.4297 0 - vertex -1.44988 28.0795 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.61425 36.5608 0 - vertex 4.46246 37.6912 0 - vertex 4.77727 38.1658 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.13903 29.8907 0 - vertex -2.11792 28.8291 0 - vertex -1.78547 28.4297 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.13903 29.8907 0 - vertex -2.44583 29.2754 0 - vertex -2.11792 28.8291 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.61425 36.5608 0 - vertex 4.77727 38.1658 0 - vertex 5.01738 38.4749 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.24074 30.5277 0 - vertex -2.7678 29.7664 0 - vertex -2.44583 29.2754 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.24074 30.5277 0 - vertex -3.08241 30.2998 0 - vertex -2.7678 29.7664 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.38662 31.173 0 - vertex -3.38828 30.8734 0 - vertex -3.08241 30.2998 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.67893 36.5944 0 - vertex 5.01738 38.4749 0 - vertex 5.10332 38.557 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.57871 31.8344 0 - vertex -3.68399 31.485 0 - vertex -3.38828 30.8734 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.57871 31.8344 0 - vertex -3.96814 32.1322 0 - vertex -3.68399 31.485 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.81903 32.5199 0 - vertex -4.23933 32.8128 0 - vertex -3.96814 32.1322 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -5.74234 36.6012 0 - vertex 5.16325 38.5852 0 + vertex -31.2177 27.4629 0 + vertex -5.8163 36.5812 0 vertex -117.5 117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 2.4524 33.9939 0 - vertex -4.96111 35.0324 0 - vertex -4.73722 34.2652 0 + vertex -6.055 36.2349 0 + vertex -22.4093 27.9007 0 + vertex -20.8096 27.6578 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 2.10958 33.2371 0 - vertex -4.49616 33.5245 0 - vertex -4.23933 32.8128 0 + vertex -24.3225 27.6757 0 + vertex -27.4214 26.3653 0 + vertex -24.8433 26.205 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 2.10958 33.2371 0 - vertex -4.73722 34.2652 0 - vertex -4.49616 33.5245 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.84738 34.7996 0 - vertex -5.11886 35.5644 0 - vertex -4.96111 35.0324 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.26543 35.6052 0 - vertex -5.26884 35.9859 0 - vertex -5.11886 35.5644 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 3.26543 35.6052 0 - vertex -5.41174 36.2975 0 - vertex -5.26884 35.9859 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.09252 37.0842 0 - vertex -5.54821 36.5001 0 - vertex -5.41174 36.2975 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.46246 37.6912 0 - vertex -5.61425 36.5608 0 - vertex -5.54821 36.5001 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.01738 38.4749 0 - vertex -5.67893 36.5944 0 - vertex -5.61425 36.5608 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.10332 38.557 0 - vertex -5.74234 36.6012 0 - vertex -5.67893 36.5944 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.16325 38.5852 0 - vertex -5.74234 36.6012 0 - vertex 5.10332 38.557 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.2816 27.5955 0 - vertex -6.22417 29.538 0 - vertex -6.20957 31.7226 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.5342 27.7352 0 - vertex -6.20957 31.7226 0 - vertex -6.19415 33.3563 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.22417 29.538 0 - vertex -10.2816 27.5955 0 - vertex -8.79778 27.3973 0 + vertex -5.8163 36.5812 0 + vertex -24.3632 27.9554 0 + vertex -22.4093 27.9007 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -7.89877 27.2865 0 - vertex -6.24249 28.8007 0 - vertex -8.79778 27.3973 0 + vertex -29.2879 26.9865 0 + vertex -24.3632 27.9554 0 + vertex -30.666 27.4912 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -6.24249 28.8007 0 - vertex -7.89877 27.2865 0 - vertex -6.27149 28.2565 0 + vertex -24.3632 27.9554 0 + vertex -29.2879 26.9865 0 + vertex -27.4214 26.3653 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -12.6053 27.816 0 - vertex -6.19415 33.3563 0 - vertex -6.15766 34.7516 0 + vertex -5.8163 36.5812 0 + vertex -30.666 27.4912 0 + vertex -24.3632 27.9554 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -31.0943 24.213 0 + vertex -34.2108 23.023 0 + vertex -32.1178 22.3529 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -37.7877 25.1404 0 + vertex -31.2912 27.2229 0 + vertex -31.2177 27.4629 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -31.2912 27.2229 0 + vertex -36.1697 23.9798 0 + vertex -34.2108 23.023 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -31.2912 27.2229 0 + vertex -37.7877 25.1404 0 + vertex -36.1697 23.9798 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -5.8163 36.5812 0 + vertex -31.2177 27.4629 0 + vertex -30.666 27.4912 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -31.2177 27.4629 0 + vertex -38.5782 25.7376 0 + vertex -37.7877 25.1404 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -7.24334 27.2437 0 - vertex -6.27149 28.2565 0 - vertex -7.89877 27.2865 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -6.99768 27.2475 0 - vertex -6.31368 27.8729 0 - vertex -7.24334 27.2437 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -13.5445 27.8374 0 - vertex -6.15766 34.7516 0 - vertex -6.10555 35.7605 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -6.80178 27.2682 0 - vertex -6.31368 27.8729 0 - vertex -6.99768 27.2475 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.31368 27.8729 0 - vertex -6.80178 27.2682 0 - vertex -6.37156 27.6173 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.37156 27.6173 0 - vertex -6.65192 27.3056 0 - vertex -6.44763 27.4571 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.4014 27.7989 0 - vertex -6.10555 35.7605 0 - vertex -6.07534 36.0738 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.44763 27.4571 0 - vertex -6.65192 27.3056 0 - vertex -6.54439 27.3597 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -6.65192 27.3056 0 - vertex -6.37156 27.6173 0 - vertex -6.80178 27.2682 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.2259 27.7001 0 - vertex -6.07534 36.0738 0 - vertex -6.04327 36.2349 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.27149 28.2565 0 - vertex -7.24334 27.2437 0 - vertex -6.31368 27.8729 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.22417 29.538 0 - vertex -8.79778 27.3973 0 - vertex -6.24249 28.8007 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.20957 31.7226 0 - vertex -11.5342 27.7352 0 - vertex -10.2816 27.5955 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.4599 27.7917 0 - vertex -6.04327 36.2349 0 - vertex -5.92579 36.4611 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.19415 33.3563 0 - vertex -12.6053 27.816 0 - vertex -11.5342 27.7352 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.15766 34.7516 0 - vertex -13.5445 27.8374 0 - vertex -12.6053 27.816 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.7335 27.9892 0 - vertex -5.92579 36.4611 0 - vertex -5.86569 36.5344 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.10555 35.7605 0 - vertex -14.4014 27.7989 0 - vertex -13.5445 27.8374 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.07534 36.0738 0 - vertex -15.2259 27.7001 0 - vertex -14.4014 27.7989 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.04327 36.2349 0 - vertex -16.0674 27.5405 0 - vertex -15.2259 27.7001 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.04327 36.2349 0 - vertex -20.7979 27.6578 0 - vertex -16.0674 27.5405 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex -20.5419 27.5737 0 - vertex -16.0674 27.5405 0 - vertex -20.7979 27.6578 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.0145 27.539 0 - vertex -5.86569 36.5344 0 - vertex -5.80457 36.5812 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9758 27.3196 0 - vertex -19.9368 27.2141 0 - vertex -19.3233 26.703 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9758 27.3196 0 - vertex -20.1227 27.3549 0 - vertex -19.9368 27.2141 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.74234 36.6012 0 - vertex -117.5 117.5 0 - vertex -5.80457 36.5812 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9758 27.3196 0 - vertex -20.3206 27.4738 0 - vertex -20.1227 27.3549 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.9758 27.3196 0 - vertex -20.5419 27.5737 0 - vertex -20.3206 27.4738 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -16.0674 27.5405 0 - vertex -20.5419 27.5737 0 - vertex -16.9758 27.3196 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.04327 36.2349 0 - vertex -21.1001 27.7294 0 - vertex -20.7979 27.6578 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -6.04327 36.2349 0 - vertex -21.4599 27.7917 0 - vertex -21.1001 27.7294 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -31.0145 27.539 0 - vertex -5.80457 36.5812 0 + vertex -39.0347 25.8392 0 + vertex -31.2177 27.4629 0 vertex -117.5 117.5 0 endloop endfacet - facet normal 0 0 1 + facet normal 0 -0 1 outer loop - vertex -5.92579 36.4611 0 - vertex -22.3975 27.9007 0 - vertex -21.4599 27.7917 0 + vertex -47.2102 -36.2359 0 + vertex -37.5366 -12.7854 0 + vertex -47.8577 -36.863 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -5.92579 36.4611 0 - vertex -23.1232 27.9594 0 - vertex -22.3975 27.9007 0 + vertex -39.9072 -25.4747 0 + vertex -47.2102 -36.2359 0 + vertex -42.237 -30.9405 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -5.92579 36.4611 0 - vertex -23.7335 27.9892 0 - vertex -23.1232 27.9594 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.86569 36.5344 0 - vertex -24.1643 27.9885 0 - vertex -23.7335 27.9892 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.86569 36.5344 0 - vertex -24.2923 27.9761 0 - vertex -24.1643 27.9885 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -26.3751 26.2567 0 - vertex -24.3889 27.8265 0 - vertex -24.3858 27.8943 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3632 27.7532 0 - vertex -26.3751 26.2567 0 - vertex -24.8316 26.205 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -27.8395 26.4592 0 - vertex -24.3858 27.8943 0 - vertex -24.3515 27.9554 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3858 27.8943 0 - vertex -26.9353 26.3003 0 - vertex -26.3751 26.2567 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.3858 27.8943 0 - vertex -27.4097 26.3653 0 - vertex -26.9353 26.3003 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -5.86569 36.5344 0 - vertex -31.0145 27.539 0 - vertex -24.2923 27.9761 0 + vertex -42.237 -30.9405 0 + vertex -47.2102 -36.2359 0 + vertex -43.2543 -33.2915 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -29.2762 26.9865 0 - vertex -24.3515 27.9554 0 - vertex -30.0875 27.3102 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -28.7314 26.7626 0 - vertex -24.3515 27.9554 0 - vertex -29.2762 26.9865 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -27.8395 26.4592 0 - vertex -24.3515 27.9554 0 - vertex -28.2663 26.5892 0 + vertex -46.1801 -35.8499 0 + vertex -43.2543 -33.2915 0 + vertex -47.2102 -36.2359 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.3858 27.8943 0 - vertex -27.8395 26.4592 0 - vertex -27.4097 26.3653 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -28.2663 26.5892 0 - vertex -24.3515 27.9554 0 - vertex -28.7314 26.7626 0 + vertex -44.1198 -34.7306 0 + vertex -46.1801 -35.8499 0 + vertex -45.0296 -35.5019 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.3515 27.9554 0 - vertex -30.6543 27.4912 0 - vertex -30.0875 27.3102 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -30.8579 27.5312 0 - vertex -24.2923 27.9761 0 - vertex -31.0145 27.539 0 + vertex -43.2543 -33.2915 0 + vertex -46.1801 -35.8499 0 + vertex -44.1198 -34.7306 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -24.3515 27.9554 0 - vertex -30.8579 27.5312 0 - vertex -30.6543 27.4912 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -24.2923 27.9761 0 - vertex -30.8579 27.5312 0 - vertex -24.3515 27.9554 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.0225 24.5398 0 - vertex -31.2795 27.2229 0 - vertex -31.272 27.3506 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -30.7957 23.7338 0 - vertex -32.1061 22.3529 0 - vertex -31.5861 22.2399 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.0826 24.213 0 - vertex -32.6306 22.489 0 - vertex -32.1061 22.3529 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2103 24.5339 0 - vertex -33.1564 22.6469 0 - vertex -32.6306 22.489 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2656 24.779 0 - vertex -33.6803 22.8253 0 - vertex -33.1564 22.6469 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2656 24.779 0 - vertex -34.199 23.023 0 - vertex -33.6803 22.8253 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.5664 25.7376 0 - vertex -31.272 27.3506 0 - vertex -31.2059 27.4629 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2668 24.8727 0 - vertex -34.7094 23.2385 0 - vertex -34.199 23.023 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2507 24.9472 0 - vertex -34.7094 23.2385 0 - vertex -31.2668 24.8727 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2795 27.2229 0 - vertex -35.6921 23.7183 0 - vertex -35.2082 23.4707 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2795 27.2229 0 - vertex -36.1579 23.9798 0 - vertex -35.6921 23.7183 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2795 27.2229 0 - vertex -36.6025 24.2541 0 - vertex -36.1579 23.9798 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.8381 25.8495 0 - vertex -31.2059 27.4629 0 - vertex -31.1289 27.5158 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.0145 27.539 0 - vertex -117.5 117.5 0 - vertex -31.1289 27.5158 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.272 27.3506 0 - vertex -38.2113 25.5018 0 - vertex -37.776 25.1404 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.272 27.3506 0 - vertex -37.776 25.1404 0 - vertex -37.4147 24.8357 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.272 27.3506 0 - vertex -37.4147 24.8357 0 - vertex -37.0225 24.5398 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2795 27.2229 0 - vertex -37.0225 24.5398 0 - vertex -36.6025 24.2541 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.272 27.3506 0 - vertex -38.5664 25.7376 0 - vertex -38.2113 25.5018 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2059 27.4629 0 - vertex -38.7129 25.8089 0 - vertex -38.5664 25.7376 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -38.9416 25.8595 0 - vertex -31.1289 27.5158 0 - vertex -117.5 117.5 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.2059 27.4629 0 - vertex -38.8381 25.8495 0 - vertex -38.7129 25.8089 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -31.1289 27.5158 0 - vertex -38.9416 25.8595 0 - vertex -38.8381 25.8495 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -39.8955 -25.4747 0 - vertex -37.5315 -12.6425 0 - vertex -47.5785 -36.5332 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -47.4015 -36.3788 0 - vertex -39.8955 -25.4747 0 - vertex -47.5785 -36.5332 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.8955 -25.4747 0 - vertex -47.4015 -36.3788 0 - vertex -41.2695 -28.6585 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -41.2695 -28.6585 0 - vertex -47.1985 -36.2359 0 - vertex -42.2252 -30.9405 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -42.2252 -30.9405 0 - vertex -46.9715 -36.1082 0 - vertex -42.7651 -32.2453 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -46.7228 -35.999 0 - vertex -42.7651 -32.2453 0 - vertex -46.9715 -36.1082 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -42.7651 -32.2453 0 - vertex -46.4544 -35.9117 0 - vertex -43.2426 -33.2915 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -43.2426 -33.2915 0 - vertex -46.4544 -35.9117 0 - vertex -43.4655 -33.7273 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -43.4655 -33.7273 0 - vertex -46.1684 -35.8499 0 - vertex -43.682 -34.1098 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -43.682 -34.1098 0 - vertex -46.1684 -35.8499 0 - vertex -43.8952 -34.443 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -45.8475 -35.7893 0 - vertex -43.8952 -34.443 0 - vertex -46.1684 -35.8499 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -45.5508 -35.7136 0 - vertex -44.108 -34.7306 0 - vertex -45.8475 -35.7893 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -44.108 -34.7306 0 - vertex -45.5508 -35.7136 0 - vertex -44.3237 -34.9765 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -44.3237 -34.9765 0 - vertex -45.5508 -35.7136 0 - vertex -44.5451 -35.1844 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -44.7755 -35.3583 0 - vertex -45.5508 -35.7136 0 - vertex -45.0179 -35.5019 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -45.0179 -35.5019 0 - vertex -45.5508 -35.7136 0 - vertex -45.2753 -35.6191 0 + vertex -37.5366 -12.7854 0 + vertex -47.2102 -36.2359 0 + vertex -39.9072 -25.4747 0 endloop endfacet facet normal 0 0 1 outer loop vertex -117.5 117.5 0 - vertex -39.13 25.5984 0 - vertex -39.1175 25.7085 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -44.5451 -35.1844 0 - vertex -45.5508 -35.7136 0 - vertex -44.7755 -35.3583 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -43.8952 -34.443 0 - vertex -45.8475 -35.7893 0 - vertex -44.108 -34.7306 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -46.1684 -35.8499 0 - vertex -43.4655 -33.7273 0 - vertex -46.4544 -35.9117 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -46.4544 -35.9117 0 - vertex -42.7651 -32.2453 0 - vertex -46.7228 -35.999 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -46.9715 -36.1082 0 - vertex -42.2252 -30.9405 0 - vertex -47.1985 -36.2359 0 - endloop - endfacet - facet normal 0 -0 1 - outer loop - vertex -47.1985 -36.2359 0 - vertex -41.2695 -28.6585 0 - vertex -47.4015 -36.3788 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.5249 -12.7854 0 - vertex -39.8955 -25.4747 0 - vertex -38.3469 -21.8682 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -37.5104 -12.4945 0 - vertex -47.7274 -36.6957 0 - vertex -37.5315 -12.6425 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.1186 25.4589 0 - vertex -47.9322 -37.0315 0 - vertex -47.846 -36.863 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.1186 25.4589 0 - vertex -117.5 117.5 0 - vertex -47.9322 -37.0315 0 + vertex -47.8577 -36.863 0 + vertex -39.1303 25.4589 0 endloop endfacet facet normal 0 0 1 outer loop vertex -117.5 -117.5 0 - vertex -47.984 -37.1977 0 + vertex -47.8577 -36.863 0 vertex -117.5 117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -47.9322 -37.0315 0 + vertex -39.0347 25.8392 0 vertex -117.5 117.5 0 - vertex -47.984 -37.1977 0 + vertex -39.1303 25.4589 0 endloop endfacet facet normal 0 0 1 outer loop - vertex -39.0817 25.7888 0 - vertex -117.5 117.5 0 - vertex -39.1175 25.7085 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -39.0229 25.8392 0 - vertex -117.5 117.5 0 - vertex -39.0817 25.7888 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -38.9416 25.8595 0 - vertex -117.5 117.5 0 - vertex -39.0229 25.8392 0 + vertex -31.2177 27.4629 0 + vertex -39.0347 25.8392 0 + vertex -38.5782 25.7376 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 47.9987 -20.2887 0 + vertex 47.8425 -21.0531 0 vertex 117.5 -117.5 0 - vertex 47.9993 -20.1225 0 + vertex 47.9875 -20.1225 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 47.9737 -20.4912 0 + vertex 47.5305 -21.9981 0 vertex 117.5 -117.5 0 - vertex 47.9987 -20.2887 0 + vertex 47.8425 -21.0531 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 47.8542 -21.0531 0 + vertex 47.0957 -22.796 0 vertex 117.5 -117.5 0 - vertex 47.9737 -20.4912 0 + vertex 47.5305 -21.9981 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 47.7155 -21.5429 0 + vertex 46.5684 -23.4293 0 vertex 117.5 -117.5 0 - vertex 47.8542 -21.0531 0 + vertex 47.0957 -22.796 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 37.9939 -37.5705 0 + vertex 46.5684 -23.4293 0 + vertex 45.9792 -23.8802 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 38.113 -36.8464 0 + vertex 45.9792 -23.8802 0 + vertex 45.3585 -24.1311 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 38.2188 -29.6614 0 + vertex 45.3585 -24.1311 0 + vertex 44.7368 -24.1643 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 40.0289 -25.46 0 + vertex 44.7368 -24.1643 0 + vertex 44.1445 -23.9621 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 47.5422 -21.9981 0 - vertex 117.5 -117.5 0 - vertex 47.7155 -21.5429 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 47.3383 -22.4165 0 - vertex 117.5 -117.5 0 - vertex 47.5422 -21.9981 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 47.1074 -22.796 0 - vertex 117.5 -117.5 0 - vertex 47.3383 -22.4165 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 46.8534 -23.1343 0 - vertex 117.5 -117.5 0 - vertex 47.1074 -22.796 0 + vertex 41.2986 -23.9223 0 + vertex 44.1445 -23.9621 0 + vertex 43.6122 -23.5069 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 38.0668 -37.4245 0 - vertex 46.8534 -23.1343 0 - vertex 46.5801 -23.4293 0 + vertex 41.2986 -23.9223 0 + vertex 43.6122 -23.5069 0 + vertex 42.7682 -22.851 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 38.0668 -37.4245 0 - vertex 46.5801 -23.4293 0 - vertex 46.2914 -23.6786 0 + vertex 44.1445 -23.9621 0 + vertex 41.2986 -23.9223 0 + vertex 40.5923 -24.6171 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 38.103 -37.2562 0 - vertex 46.2914 -23.6786 0 - vertex 45.9909 -23.8802 0 + vertex 44.1445 -23.9621 0 + vertex 40.5923 -24.6171 0 + vertex 40.0289 -25.46 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 38.1248 -36.8464 0 - vertex 45.9909 -23.8802 0 - vertex 45.6826 -24.0317 0 + vertex 44.7368 -24.1643 0 + vertex 40.0289 -25.46 0 + vertex 38.2188 -29.6614 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 38.119 -36.6694 0 - vertex 45.6826 -24.0317 0 - vertex 45.3703 -24.1311 0 + vertex 37.9618 -36.3241 0 + vertex 45.3585 -24.1311 0 + vertex 38.2188 -29.6614 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 38.2305 -29.6614 0 - vertex 45.3703 -24.1311 0 - vertex 45.0576 -24.176 0 + vertex 45.9792 -23.8802 0 + vertex 38.113 -36.8464 0 + vertex 37.9939 -37.5705 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 39.342 -26.9688 0 - vertex 45.0576 -24.176 0 - vertex 44.7485 -24.1643 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 39.342 -26.9688 0 - vertex 44.7485 -24.1643 0 - vertex 44.4468 -24.0937 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 40.0406 -25.46 0 - vertex 44.4468 -24.0937 0 - vertex 44.1563 -23.9621 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 41.3103 -23.9223 0 - vertex 44.1563 -23.9621 0 - vertex 43.8807 -23.7673 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.7898 -23.5063 0 - vertex 43.8807 -23.7673 0 - vertex 43.6239 -23.5069 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.2267 -23.1657 0 - vertex 43.6239 -23.5069 0 - vertex 43.3873 -23.2523 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 42.2267 -23.1657 0 - vertex 43.3873 -23.2523 0 - vertex 43.1493 -23.0437 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 42.5728 -22.9356 0 - vertex 43.1493 -23.0437 0 - vertex 42.9376 -22.9028 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 42.6968 -22.8729 0 - vertex 42.9376 -22.9028 0 - vertex 42.8503 -22.8644 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.6968 -22.8729 0 - vertex 42.8503 -22.8644 0 - vertex 42.7799 -22.851 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.9376 -22.9028 0 - vertex 42.6968 -22.8729 0 - vertex 42.5728 -22.9356 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 43.1493 -23.0437 0 - vertex 42.5728 -22.9356 0 - vertex 42.2267 -23.1657 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 43.6239 -23.5069 0 - vertex 42.2267 -23.1657 0 - vertex 41.7898 -23.5063 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 43.8807 -23.7673 0 - vertex 41.7898 -23.5063 0 - vertex 41.3103 -23.9223 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.1563 -23.9621 0 - vertex 41.3103 -23.9223 0 - vertex 40.922 -24.2835 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.1563 -23.9621 0 - vertex 40.922 -24.2835 0 - vertex 40.604 -24.6171 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.1563 -23.9621 0 - vertex 40.604 -24.6171 0 - vertex 40.3218 -24.9877 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.1563 -23.9621 0 - vertex 40.3218 -24.9877 0 - vertex 40.0406 -25.46 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.4468 -24.0937 0 - vertex 40.0406 -25.46 0 - vertex 39.7256 -26.0988 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 44.4468 -24.0937 0 - vertex 39.7256 -26.0988 0 - vertex 39.342 -26.9688 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 45.0576 -24.176 0 - vertex 39.342 -26.9688 0 - vertex 38.2305 -29.6614 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 38.0969 -36.5276 0 - vertex 45.3703 -24.1311 0 - vertex 38.2305 -29.6614 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 45.9909 -23.8802 0 - vertex 38.1248 -36.8464 0 - vertex 38.103 -37.2562 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 46.2914 -23.6786 0 - vertex 38.103 -37.2562 0 - vertex 38.0668 -37.4245 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 46.8534 -23.1343 0 - vertex 38.0668 -37.4245 0 - vertex 38.0057 -37.5705 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 46.8534 -23.1343 0 - vertex 38.0057 -37.5705 0 + vertex 46.5684 -23.4293 0 + vertex 37.9939 -37.5705 0 vertex 117.5 -117.5 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 37.9137 -37.6957 0 + vertex 37.381 -37.9628 0 vertex 117.5 -117.5 0 - vertex 38.0057 -37.5705 0 + vertex 37.9939 -37.5705 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 37.7849 -37.8018 0 + vertex 35.8907 -38.1241 0 vertex 117.5 -117.5 0 - vertex 37.9137 -37.6957 0 + vertex 37.381 -37.9628 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 37.6132 -37.8903 0 + vertex 33.1396 -38.1555 0 vertex 117.5 -117.5 0 - vertex 37.7849 -37.8018 0 + vertex 35.8907 -38.1241 0 endloop endfacet - facet normal -0 0 1 + facet normal 0 0 1 outer loop - vertex 37.3927 -37.9628 0 + vertex 29.8074 -38.0948 0 vertex 117.5 -117.5 0 - vertex 37.6132 -37.8903 0 + vertex 33.1396 -38.1555 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 21.4079 -38.2833 0 + vertex 29.8074 -38.0948 0 + vertex 28.6431 -37.8931 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 28.553 -36.8405 0 + vertex 25.9895 -35.834 0 + vertex 28.4102 -37.3704 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 37.1174 -38.0208 0 - vertex 117.5 -117.5 0 - vertex 37.3927 -37.9628 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 36.7812 -38.066 0 - vertex 117.5 -117.5 0 - vertex 37.1174 -38.0208 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 35.9024 -38.1241 0 - vertex 117.5 -117.5 0 - vertex 36.7812 -38.066 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 34.7085 -38.1497 0 - vertex 117.5 -117.5 0 - vertex 35.9024 -38.1241 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 33.1514 -38.1555 0 - vertex 117.5 -117.5 0 - vertex 34.7085 -38.1497 0 + vertex 24.0601 -37.0678 0 + vertex 28.4102 -37.3704 0 + vertex 25.9895 -35.834 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 31.1824 -38.1409 0 - vertex 117.5 -117.5 0 - vertex 33.1514 -38.1555 0 + vertex 28.4102 -37.3704 0 + vertex 24.0601 -37.0678 0 + vertex 28.6431 -37.8931 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 20.3202 -38.5182 0 - vertex 31.1824 -38.1409 0 - vertex 29.8192 -38.0948 0 + vertex 21.4079 -38.2833 0 + vertex 28.6431 -37.8931 0 + vertex 24.0601 -37.0678 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 20.3202 -38.5182 0 - vertex 29.8192 -38.0948 0 - vertex 29.3448 -38.0588 0 + vertex 29.8074 -38.0948 0 + vertex 21.4079 -38.2833 0 + vertex 20.3084 -38.5182 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 20.8717 -38.4255 0 - vertex 29.3448 -38.0588 0 - vertex 28.9979 -38.0135 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.4197 -38.2833 0 - vertex 28.9979 -38.0135 0 - vertex 28.7706 -37.9584 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 22.6041 -37.8201 0 - vertex 28.7706 -37.9584 0 - vertex 28.6548 -37.8931 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.4965 -36.9693 0 - vertex 26.4377 -35.4824 0 - vertex 28.4495 -37.1014 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.0012 -35.834 0 - vertex 28.4495 -37.1014 0 - vertex 26.4377 -35.4824 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.4495 -37.1014 0 - vertex 26.0012 -35.834 0 - vertex 28.4243 -37.2355 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.4243 -37.2355 0 - vertex 26.0012 -35.834 0 - vertex 28.4219 -37.3704 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.5601 -36.1579 0 - vertex 28.4219 -37.3704 0 - vertex 26.0012 -35.834 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.4219 -37.3704 0 - vertex 25.5601 -36.1579 0 - vertex 28.443 -37.5048 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 25.1006 -36.4644 0 - vertex 28.443 -37.5048 0 - vertex 25.5601 -36.1579 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.443 -37.5048 0 - vertex 25.1006 -36.4644 0 - vertex 28.4883 -37.6376 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.6091 -36.7642 0 - vertex 28.4883 -37.6376 0 - vertex 25.1006 -36.4644 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.4883 -37.6376 0 - vertex 24.6091 -36.7642 0 - vertex 28.5587 -37.7674 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 24.0719 -37.0678 0 - vertex 28.5587 -37.7674 0 - vertex 24.6091 -36.7642 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.5587 -37.7674 0 - vertex 24.0719 -37.0678 0 - vertex 28.6548 -37.8931 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.2902 -37.4839 0 - vertex 28.6548 -37.8931 0 - vertex 24.0719 -37.0678 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.6041 -37.8201 0 - vertex 28.6548 -37.8931 0 - vertex 23.2902 -37.4839 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.7706 -37.9584 0 - vertex 22.6041 -37.8201 0 - vertex 21.9889 -38.084 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.7706 -37.9584 0 - vertex 21.9889 -38.084 0 - vertex 21.4197 -38.2833 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.9979 -38.0135 0 - vertex 21.4197 -38.2833 0 - vertex 20.8717 -38.4255 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.3448 -38.0588 0 - vertex 20.8717 -38.4255 0 - vertex 20.3202 -38.5182 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.1824 -38.1409 0 - vertex 20.3202 -38.5182 0 + vertex 29.8074 -38.0948 0 + vertex 20.3084 -38.5182 0 vertex 117.5 -117.5 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.7403 -38.5689 0 + vertex 19.0956 -38.5852 0 vertex 117.5 -117.5 0 - vertex 20.3202 -38.5182 0 + vertex 20.3084 -38.5182 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.1073 -38.5852 0 - vertex 117.5 -117.5 0 - vertex 19.7403 -38.5689 0 + vertex 5.33583 -38.4712 0 + vertex 19.0956 -38.5852 0 + vertex 17.8945 -38.4707 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 18.4669 -38.5591 0 - vertex 117.5 -117.5 0 - vertex 19.1073 -38.5852 0 + vertex 5.33583 -38.4712 0 + vertex 17.8945 -38.4707 0 + vertex 16.8412 -38.0675 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 5.34756 -38.4712 0 - vertex 18.4669 -38.5591 0 - vertex 18.1792 -38.5233 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.55983 -38.4413 0 - vertex 18.1792 -38.5233 0 - vertex 17.9062 -38.4707 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.81563 -38.3852 0 - vertex 17.9062 -38.4707 0 - vertex 17.6424 -38.4 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 6.47346 -38.1927 0 - vertex 17.6424 -38.4 0 - vertex 17.3825 -38.3101 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.35232 -37.8908 0 - vertex 17.3825 -38.3101 0 - vertex 17.1211 -38.1997 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.35232 -37.8908 0 - vertex 17.1211 -38.1997 0 - vertex 16.8529 -38.0675 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.2137 -37.0171 0 - vertex 16.8529 -38.0675 0 - vertex 16.342 -37.7658 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.5307 -36.9119 0 - vertex 16.342 -37.7658 0 - vertex 16.1153 -37.6039 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.8056 -32.2631 0 - vertex 11.5005 -31.4602 0 - vertex 14.73 -32.8205 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.1661 -32.3709 0 - vertex 14.73 -32.8205 0 - vertex 11.5005 -31.4602 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.2214 -34.9805 0 - vertex 14.6774 -34.4466 0 - vertex 14.6656 -33.913 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.2214 -34.9805 0 - vertex 14.7369 -35.0944 0 - vertex 14.6774 -34.4466 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 12.2239 -35.4151 0 - vertex 14.7369 -35.0944 0 - vertex 12.2468 -35.1875 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.7369 -35.0944 0 - vertex 12.2239 -35.4151 0 - vertex 14.8496 -35.6738 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.1496 -35.6584 0 - vertex 14.8496 -35.6738 0 - vertex 12.2239 -35.4151 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.8496 -35.6738 0 - vertex 12.1496 -35.6584 0 - vertex 14.927 -35.9398 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.0956 -35.7642 0 - vertex 14.927 -35.9398 0 - vertex 12.1496 -35.6584 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 14.927 -35.9398 0 - vertex 12.0956 -35.7642 0 - vertex 15.0191 -36.1911 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 12.0181 -35.8752 0 - vertex 15.0191 -36.1911 0 - vertex 12.0956 -35.7642 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.0191 -36.1911 0 - vertex 12.0181 -35.8752 0 - vertex 15.1264 -36.4284 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.8034 -36.1064 0 - vertex 15.1264 -36.4284 0 - vertex 12.0181 -35.8752 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.1264 -36.4284 0 - vertex 11.8034 -36.1064 0 - vertex 15.2493 -36.6526 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.2493 -36.6526 0 - vertex 11.8034 -36.1064 0 - vertex 15.3884 -36.8644 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.5264 -36.339 0 - vertex 15.3884 -36.8644 0 - vertex 11.8034 -36.1064 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.3884 -36.8644 0 - vertex 11.5264 -36.339 0 - vertex 15.544 -37.0647 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 11.208 -36.5595 0 - vertex 15.544 -37.0647 0 - vertex 11.5264 -36.339 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.544 -37.0647 0 - vertex 11.208 -36.5595 0 - vertex 15.7167 -37.2541 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.8691 -36.7549 0 - vertex 15.7167 -37.2541 0 - vertex 11.208 -36.5595 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.7167 -37.2541 0 - vertex 10.8691 -36.7549 0 - vertex 15.907 -37.4336 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 15.907 -37.4336 0 - vertex 10.8691 -36.7549 0 - vertex 16.1153 -37.6039 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 10.5307 -36.9119 0 - vertex 16.1153 -37.6039 0 - vertex 10.8691 -36.7549 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.342 -37.7658 0 - vertex 10.5307 -36.9119 0 - vertex 10.2137 -37.0171 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.8529 -38.0675 0 - vertex 10.2137 -37.0171 0 - vertex 8.4835 -37.477 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.94379 -37.3156 0 - vertex 10.2137 -37.0171 0 - vertex 9.93892 -37.0575 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.37163 -37.1827 0 - vertex 9.93892 -37.0575 0 - vertex 9.71926 -37.0921 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.93892 -37.0575 0 - vertex 9.37163 -37.1827 0 - vertex 8.94379 -37.3156 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.2137 -37.0171 0 - vertex 8.94379 -37.3156 0 - vertex 8.4835 -37.477 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.8529 -38.0675 0 - vertex 8.4835 -37.477 0 - vertex 7.35232 -37.8908 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.3825 -38.3101 0 - vertex 7.35232 -37.8908 0 - vertex 6.47346 -38.1927 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.6424 -38.4 0 - vertex 6.47346 -38.1927 0 - vertex 5.81563 -38.3852 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 17.9062 -38.4707 0 - vertex 5.81563 -38.3852 0 - vertex 5.55983 -38.4413 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.1792 -38.5233 0 - vertex 5.55983 -38.4413 0 - vertex 5.34756 -38.4712 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 18.4669 -38.5591 0 - vertex 5.34756 -38.4712 0 - vertex 117.5 -117.5 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 5.17491 -38.475 0 - vertex 117.5 -117.5 0 - vertex 5.34756 -38.4712 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 0.974434 -38.4962 0 - vertex 5.17491 -38.475 0 - vertex 5.03796 -38.4533 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.32439 -38.26 0 - vertex 5.03796 -38.4533 0 - vertex 4.93281 -38.4063 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.26446 -37.4494 0 - vertex 4.74716 -37.8041 0 - vertex 4.72035 -37.4346 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.65588 -37.2809 0 - vertex 4.72035 -37.4346 0 - vertex 4.69132 -37.3222 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.72035 -37.4346 0 - vertex 4.65588 -37.2809 0 - vertex 4.26446 -37.4494 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.74716 -37.8041 0 - vertex 4.26446 -37.4494 0 - vertex 4.76904 -38.117 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.45158 -37.8545 0 - vertex 4.76904 -38.117 0 - vertex 4.26446 -37.4494 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.76904 -38.117 0 - vertex 3.45158 -37.8545 0 - vertex 4.80226 -38.2378 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.80226 -38.2378 0 - vertex 3.45158 -37.8545 0 - vertex 4.85555 -38.3343 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.20396 -37.9704 0 - vertex 4.85555 -38.3343 0 - vertex 3.45158 -37.8545 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 4.85555 -38.3343 0 - vertex 3.20396 -37.9704 0 - vertex 4.93281 -38.4063 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 2.93102 -38.0768 0 - vertex 4.93281 -38.4063 0 - vertex 3.20396 -37.9704 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 2.32439 -38.26 0 - vertex 4.93281 -38.4063 0 - vertex 2.93102 -38.0768 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.03796 -38.4533 0 - vertex 2.32439 -38.26 0 - vertex 1.66207 -38.4009 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.03796 -38.4533 0 - vertex 1.66207 -38.4009 0 - vertex 0.974434 -38.4962 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.17491 -38.475 0 - vertex 0.974434 -38.4962 0 - vertex 0.291868 -38.543 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.17491 -38.475 0 - vertex 0.291868 -38.543 0 - vertex 117.5 -117.5 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.355246 -38.538 0 - vertex 117.5 -117.5 0 - vertex 0.291868 -38.543 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -9.84865 -38.1451 0 - vertex -0.355246 -38.538 0 - vertex -0.936529 -38.478 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.657 -38.0883 0 - vertex -0.936529 -38.478 0 - vertex -1.19299 -38.4265 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.30871 -38.0303 0 - vertex -1.19299 -38.4265 0 - vertex -1.4216 -38.36 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.30871 -38.0303 0 - vertex -1.4216 -38.36 0 - vertex -1.69347 -38.2465 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -8.0676 -37.9462 0 - vertex -1.69347 -38.2465 0 - vertex -1.95525 -38.0993 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.4861 -31.0878 0 - vertex -6.39994 -29.738 0 - vertex -3.75417 -32.0301 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.75417 -32.0301 0 - vertex -6.39994 -29.738 0 - vertex -3.8527 -32.4651 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.70823 -32.8163 0 - vertex -3.8527 -32.4651 0 - vertex -6.39994 -29.738 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.8527 -32.4651 0 - vertex -7.70823 -32.8163 0 - vertex -3.92523 -32.8697 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.92523 -32.8697 0 - vertex -7.70823 -32.8163 0 - vertex -3.97004 -33.2395 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 0 - vertex -3.98536 -33.5697 0 - vertex -3.97004 -33.2395 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 0 - vertex -3.97277 -33.9877 0 - vertex -3.98536 -33.5697 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 0 - vertex -3.93569 -34.3989 0 - vertex -3.97277 -33.9877 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 0 - vertex -3.87516 -34.8013 0 - vertex -3.93569 -34.3989 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 0 - vertex -3.79219 -35.193 0 - vertex -3.87516 -34.8013 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 0 - vertex -3.68783 -35.5721 0 - vertex -3.79219 -35.193 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30266 -36.7536 0 - vertex -3.56309 -35.9367 0 - vertex -3.68783 -35.5721 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.56309 -35.9367 0 - vertex -7.29619 -36.8569 0 - vertex -3.41901 -36.2848 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.30695 -36.9638 0 - vertex -3.41901 -36.2848 0 - vertex -7.29619 -36.8569 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.41901 -36.2848 0 - vertex -7.30695 -36.9638 0 - vertex -3.25661 -36.6145 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.38017 -37.1883 0 - vertex -3.25661 -36.6145 0 - vertex -7.30695 -36.9638 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.25661 -36.6145 0 - vertex -7.38017 -37.1883 0 - vertex -3.07693 -36.924 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -3.07693 -36.924 0 - vertex -7.38017 -37.1883 0 - vertex -2.88099 -37.2112 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.52232 -37.4271 0 - vertex -2.88099 -37.2112 0 - vertex -7.38017 -37.1883 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.88099 -37.2112 0 - vertex -7.52232 -37.4271 0 - vertex -2.66982 -37.4742 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.73344 -37.6801 0 - vertex -2.66982 -37.4742 0 - vertex -7.52232 -37.4271 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.66982 -37.4742 0 - vertex -7.73344 -37.6801 0 - vertex -2.44446 -37.7112 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -7.8903 -37.8311 0 - vertex -2.44446 -37.7112 0 - vertex -7.73344 -37.6801 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.44446 -37.7112 0 - vertex -7.8903 -37.8311 0 - vertex -2.20592 -37.9202 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -2.20592 -37.9202 0 - vertex -7.8903 -37.8311 0 - vertex -1.95525 -38.0993 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -8.0676 -37.9462 0 - vertex -1.95525 -38.0993 0 - vertex -7.8903 -37.8311 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.69347 -38.2465 0 - vertex -8.0676 -37.9462 0 - vertex -8.30871 -38.0303 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -1.19299 -38.4265 0 - vertex -8.30871 -38.0303 0 - vertex -8.657 -38.0883 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.936529 -38.478 0 - vertex -8.657 -38.0883 0 - vertex -9.15585 -38.1249 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.936529 -38.478 0 - vertex -9.15585 -38.1249 0 - vertex -9.84865 -38.1451 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.355246 -38.538 0 - vertex -9.84865 -38.1451 0 - vertex -117.5 -117.5 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -9.84865 -38.1451 0 - vertex -11.9896 -38.1555 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -11.9896 -38.1555 0 - vertex -14.1677 -38.1469 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -14.1677 -38.1469 0 - vertex -14.8486 -38.1282 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.0369 -38.1201 0 - vertex -14.8486 -38.1282 0 - vertex -15.316 -38.0928 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.5664 -38.0841 0 - vertex -15.316 -38.0928 0 - vertex -15.614 -38.0352 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.2437 -38.0218 0 - vertex -15.614 -38.0352 0 - vertex -15.7132 -37.9965 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.9096 -37.1689 0 - vertex -16.3508 -37.1428 0 - vertex -15.9511 -37.293 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.9511 -37.293 0 - vertex -16.3508 -37.1428 0 - vertex -15.9675 -37.4163 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.5023 -37.3844 0 - vertex -15.9675 -37.4163 0 - vertex -16.3508 -37.1428 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.9675 -37.4163 0 - vertex -16.5023 -37.3844 0 - vertex -15.9604 -37.5428 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.9604 -37.5428 0 - vertex -16.5023 -37.3844 0 - vertex -15.9316 -37.6764 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.6872 -37.6188 0 - vertex -15.9316 -37.6764 0 - vertex -16.5023 -37.3844 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.9316 -37.6764 0 - vertex -16.6872 -37.6188 0 - vertex -15.8777 -37.8324 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -16.8516 -37.795 0 - vertex -15.8777 -37.8324 0 - vertex -16.6872 -37.6188 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.8777 -37.8324 0 - vertex -16.8516 -37.795 0 - vertex -15.8396 -37.8957 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.8396 -37.8957 0 - vertex -16.8516 -37.795 0 - vertex -15.7865 -37.9502 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.0213 -37.9274 0 - vertex -15.7865 -37.9502 0 - vertex -16.8516 -37.795 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.7865 -37.9502 0 - vertex -17.0213 -37.9274 0 - vertex -15.7132 -37.9965 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.2437 -38.0218 0 - vertex -15.7132 -37.9965 0 - vertex -17.0213 -37.9274 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.614 -38.0352 0 - vertex -17.2437 -38.0218 0 - vertex -17.5664 -38.0841 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.316 -38.0928 0 - vertex -17.5664 -38.0841 0 - vertex -18.0369 -38.1201 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.8486 -38.1282 0 - vertex -18.0369 -38.1201 0 - vertex -117.5 -117.5 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -18.0369 -38.1201 0 - vertex -18.7028 -38.1359 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -18.7028 -38.1359 0 - vertex -20.8109 -38.1301 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -20.8109 -38.1301 0 - vertex -23.4866 -38.0828 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2718 -38.1638 0 - vertex -23.4866 -38.0828 0 - vertex -24.3782 -38.0456 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2718 -38.1638 0 - vertex -24.3782 -38.0456 0 - vertex -24.7978 -38.0047 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2718 -38.1638 0 - vertex -24.7978 -38.0047 0 - vertex -24.9442 -37.9384 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -27.2673 -36.8782 0 - vertex -25.1078 -37.2448 0 - vertex -26.6839 -36.0968 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.1078 -37.2448 0 - vertex -27.2673 -36.8782 0 - vertex -25.1419 -37.4158 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.1419 -37.4158 0 - vertex -27.2673 -36.8782 0 - vertex -25.1453 -37.5754 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.1453 -37.5754 0 - vertex -27.2673 -36.8782 0 - vertex -25.1152 -37.719 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -28.2718 -38.1638 0 - vertex -25.1152 -37.719 0 - vertex -27.2673 -36.8782 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.1152 -37.719 0 - vertex -28.2718 -38.1638 0 - vertex -25.0491 -37.8416 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -25.0491 -37.8416 0 - vertex -28.2718 -38.1638 0 - vertex -24.9442 -37.9384 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -23.4866 -38.0828 0 - vertex -28.2718 -38.1638 0 - vertex -117.5 -117.5 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -28.2718 -38.1638 0 - vertex -37.6203 -38.1325 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -37.6203 -38.1325 0 - vertex -41.2883 -38.1087 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -41.2883 -38.1087 0 - vertex -44.3648 -38.0673 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -44.3648 -38.0673 0 - vertex -46.5272 -38.014 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -46.5272 -38.014 0 - vertex -47.1648 -37.9848 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -47.1648 -37.9848 0 - vertex -47.4529 -37.9547 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -117.5 -117.5 0 - vertex -47.4529 -37.9547 0 - vertex -47.6522 -37.8745 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.984 -37.1977 0 - vertex -117.5 -117.5 0 - vertex -47.9993 -37.3583 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -0.355246 -38.538 0 - vertex -117.5 -117.5 0 - vertex 117.5 -117.5 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.8044 -37.7712 0 - vertex -117.5 -117.5 0 - vertex -47.6522 -37.8745 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.9115 -37.6485 0 - vertex -117.5 -117.5 0 - vertex -47.8044 -37.7712 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.9758 -37.5097 0 - vertex -117.5 -117.5 0 - vertex -47.9115 -37.6485 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -47.9993 -37.3583 0 - vertex -117.5 -117.5 0 - vertex -47.9758 -37.5097 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.9547 -20.2657 0 - vertex 42.1212 -20.0931 0 - vertex 42.3117 -20.6924 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 42.0356 -20.3507 0 - vertex 42.3117 -20.6924 0 - vertex 42.1212 -20.0931 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 41.9515 -20.5727 0 - vertex 42.3117 -20.6924 0 - vertex 42.0356 -20.3507 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.3117 -20.6924 0 - vertex 41.9515 -20.5727 0 - vertex 42.1116 -20.8028 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 41.9099 -20.7296 0 - vertex 42.1116 -20.8028 0 - vertex 41.9515 -20.5727 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 42.1116 -20.8028 0 - vertex 41.9099 -20.7296 0 - vertex 41.9827 -20.8453 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 41.9179 -20.8207 0 - vertex 41.9827 -20.8453 0 - vertex 41.9099 -20.7296 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 41.9827 -20.8453 0 - vertex 41.9179 -20.8207 0 - vertex 41.9427 -20.8413 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.1157 -22.9178 0 - vertex 36.3671 -23.1585 0 - vertex 36.3539 -23.0402 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.1157 -22.9178 0 - vertex 36.3539 -23.0402 0 - vertex 36.3224 -22.9562 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 35.9442 -22.9618 0 - vertex 36.3671 -23.1585 0 - vertex 36.1157 -22.9178 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.2034 -22.8943 0 - vertex 36.3224 -22.9562 0 - vertex 36.2723 -22.9073 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3224 -22.9562 0 - vertex 36.2034 -22.8943 0 - vertex 36.1157 -22.9178 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.3671 -23.1585 0 - vertex 35.9442 -22.9618 0 - vertex 36.362 -23.3104 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.362 -23.3104 0 - vertex 35.9442 -22.9618 0 - vertex 36.2977 -23.7121 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 35.7166 -22.9783 0 - vertex 36.2977 -23.7121 0 - vertex 35.9442 -22.9618 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.4626 -22.9668 0 - vertex 36.2977 -23.7121 0 - vertex 35.7166 -22.9783 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.2977 -23.7121 0 - vertex 35.4626 -22.9668 0 - vertex 36.1622 -24.2394 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.2118 -22.9271 0 - vertex 36.1622 -24.2394 0 - vertex 35.4626 -22.9668 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 36.1622 -24.2394 0 - vertex 35.2118 -22.9271 0 - vertex 35.957 -24.8864 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.9345 -22.8399 0 - vertex 35.957 -24.8864 0 - vertex 35.2118 -22.9271 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.957 -24.8864 0 - vertex 34.9345 -22.8399 0 - vertex 35.6833 -25.6471 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.8338 -22.7839 0 - vertex 35.6833 -25.6471 0 - vertex 34.9345 -22.8399 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.7558 -22.7166 0 - vertex 35.6833 -25.6471 0 - vertex 34.8338 -22.7839 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 35.6833 -25.6471 0 - vertex 34.7558 -22.7166 0 - vertex 35.3422 -26.5156 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.6986 -22.636 0 - vertex 35.3422 -26.5156 0 - vertex 34.7558 -22.7166 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 33.8561 -30.1753 0 - vertex 34.6986 -22.636 0 - vertex 34.6602 -22.54 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 33.8561 -30.1753 0 - vertex 34.6602 -22.54 0 - vertex 34.6385 -22.4262 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.6986 -22.636 0 - vertex 33.8561 -30.1753 0 - vertex 35.3422 -26.5156 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 33.8561 -30.1753 0 - vertex 34.6385 -22.4262 0 - vertex 34.6318 -22.2927 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.6318 -22.2927 0 - vertex 32.0372 -23.3848 0 - vertex 31.9625 -24.0535 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.6318 -22.2927 0 - vertex 31.9625 -24.0535 0 - vertex 31.8392 -24.8188 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 34.6318 -22.2927 0 - vertex 31.8392 -24.8188 0 - vertex 31.6784 -25.7224 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 33.8561 -30.1753 0 - vertex 31.6784 -25.7224 0 - vertex 31.6003 -26.0834 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 31.3939 -26.6463 0 - vertex 33.8561 -30.1753 0 - vertex 31.5092 -26.3899 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 31.047 -27.0266 0 - vertex 33.8561 -30.1753 0 - vertex 31.2435 -26.857 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 30.7934 -27.1595 0 - vertex 33.8561 -30.1753 0 - vertex 31.047 -27.0266 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 30.2299 -31.0524 0 - vertex 33.1139 -32.0001 0 - vertex 30.2187 -30.9454 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 30.1034 -31.4773 0 - vertex 33.1139 -32.0001 0 - vertex 30.1726 -31.3179 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 33.1139 -32.0001 0 - vertex 30.1034 -31.4773 0 - vertex 32.5373 -33.371 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.8827 -31.8517 0 - vertex 32.5373 -33.371 0 - vertex 30.1034 -31.4773 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 30.2146 -31.1764 0 - vertex 33.1139 -32.0001 0 - vertex 30.2299 -31.0524 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 29.5499 -32.3032 0 - vertex 32.5373 -33.371 0 - vertex 29.8827 -31.8517 0 + vertex 10.519 -36.9119 0 + vertex 16.8412 -38.0675 0 + vertex 15.8953 -37.4336 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex 30.2187 -30.9454 0 - vertex 33.8561 -30.1753 0 - vertex 30.1812 -30.855 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 32.5373 -33.371 0 - vertex 29.5499 -32.3032 0 - vertex 32.0766 -34.3595 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.1179 -30.7807 0 - vertex 33.8561 -30.1753 0 - vertex 30.7934 -27.1595 0 + vertex 11.871 -34.5351 0 + vertex 14.7938 -32.2631 0 + vertex 11.4887 -31.4602 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 29.1028 -32.8352 0 - vertex 32.0766 -34.3595 0 - vertex 29.5499 -32.3032 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.9008 -30.6099 0 - vertex 30.7934 -27.1595 0 - vertex 30.4717 -27.2602 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 32.0766 -34.3595 0 - vertex 29.1028 -32.8352 0 - vertex 31.8743 -34.7329 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.8743 -34.7329 0 - vertex 29.1028 -32.8352 0 - vertex 31.6824 -35.0376 0 + vertex 12.2351 -35.1874 0 + vertex 14.8379 -35.6738 0 + vertex 14.6656 -34.4466 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 30.1726 -31.3179 0 - vertex 33.1139 -32.0001 0 - vertex 30.2146 -31.1764 0 + vertex 12.1379 -35.6584 0 + vertex 14.8379 -35.6738 0 + vertex 12.2351 -35.1874 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 33.8561 -30.1753 0 - vertex 30.2187 -30.9454 0 - vertex 33.1139 -32.0001 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 33.8561 -30.1753 0 - vertex 30.1179 -30.7807 0 - vertex 30.1812 -30.855 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.7002 -30.4984 0 - vertex 30.4717 -27.2602 0 - vertex 30.0709 -27.3331 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.7934 -27.1595 0 - vertex 29.9008 -30.6099 0 - vertex 30.1179 -30.7807 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.4717 -27.2602 0 - vertex 29.7002 -30.4984 0 - vertex 29.9008 -30.6099 0 + vertex 14.8379 -35.6738 0 + vertex 12.1379 -35.6584 0 + vertex 15.2376 -36.6526 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 29.58 -27.3827 0 - vertex 29.7002 -30.4984 0 - vertex 30.0709 -27.3331 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.58 -27.3827 0 - vertex 29.5048 -30.449 0 - vertex 29.7002 -30.4984 0 + vertex 11.7916 -36.1064 0 + vertex 15.2376 -36.6526 0 + vertex 12.1379 -35.6584 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 28.988 -27.4135 0 - vertex 29.5048 -30.449 0 - vertex 29.58 -27.3827 0 + vertex 11.1962 -36.5595 0 + vertex 15.2376 -36.6526 0 + vertex 11.7916 -36.1064 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 29.5048 -30.449 0 - vertex 28.988 -27.4135 0 - vertex 29.3033 -30.4642 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.3033 -30.4642 0 - vertex 28.988 -27.4135 0 - vertex 29.0845 -30.5466 0 + vertex 15.2376 -36.6526 0 + vertex 11.1962 -36.5595 0 + vertex 15.8953 -37.4336 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 27.4568 -27.4364 0 - vertex 29.0845 -30.5466 0 - vertex 28.988 -27.4135 0 + vertex 10.519 -36.9119 0 + vertex 15.8953 -37.4336 0 + vertex 11.1962 -36.5595 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 29.0845 -30.5466 0 - vertex 27.4568 -27.4364 0 - vertex 28.8369 -30.6989 0 + vertex 16.8412 -38.0675 0 + vertex 10.519 -36.9119 0 + vertex 9.92719 -37.0575 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 28.8369 -30.6989 0 - vertex 27.4568 -27.4364 0 - vertex 28.5495 -30.9236 0 + vertex 16.8412 -38.0675 0 + vertex 9.92719 -37.0575 0 + vertex 8.47177 -37.477 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 28.5495 -30.9236 0 - vertex 27.4568 -27.4364 0 - vertex 28.2108 -31.2235 0 + vertex 16.8412 -38.0675 0 + vertex 8.47177 -37.477 0 + vertex 5.33583 -38.4712 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 19.0956 -38.5852 0 + vertex 5.33583 -38.4712 0 + vertex 117.5 -117.5 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 2.31266 -38.26 0 + vertex 5.33583 -38.4712 0 + vertex 4.84381 -38.3343 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 3.43985 -37.8545 0 + vertex 4.73542 -37.8041 0 + vertex 4.64415 -37.2809 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 25.3891 -27.4375 0 - vertex 28.2108 -31.2235 0 - vertex 27.4568 -27.4364 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.2108 -31.2235 0 - vertex 25.3891 -27.4375 0 - vertex 27.276 -32.055 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.276 -32.055 0 - vertex 25.3891 -27.4375 0 - vertex 26.4309 -32.7448 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.4309 -32.7448 0 - vertex 25.3891 -27.4375 0 - vertex 25.6577 -33.3022 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3891 -27.4375 0 - vertex 25.2926 -33.5342 0 - vertex 25.6577 -33.3022 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.3891 -27.4375 0 - vertex 24.9388 -33.7368 0 - vertex 25.2926 -33.5342 0 + vertex 3.43985 -37.8545 0 + vertex 4.84381 -38.3343 0 + vertex 4.73542 -37.8041 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.5256 -29.5327 0 - vertex 24.9388 -33.7368 0 - vertex 25.3891 -27.4375 0 + vertex 2.31266 -38.26 0 + vertex 4.84381 -38.3343 0 + vertex 3.43985 -37.8545 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.9388 -33.7368 0 - vertex 19.5256 -29.5327 0 - vertex 24.5942 -33.911 0 + vertex 5.33583 -38.4712 0 + vertex 2.31266 -38.26 0 + vertex 0.962702 -38.4962 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 5.33583 -38.4712 0 + vertex 0.962702 -38.4962 0 + vertex 117.5 -117.5 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.3985 -30.306 0 - vertex 24.5942 -33.911 0 - vertex 19.5256 -29.5327 0 + vertex -0.366978 -38.538 0 + vertex 117.5 -117.5 0 + vertex 0.962702 -38.4962 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.5942 -33.911 0 - vertex 19.3985 -30.306 0 - vertex 24.2566 -34.0582 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.9237 -34.1793 0 - vertex 19.3985 -30.306 0 - vertex 23.5933 -34.2758 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.5933 -34.2758 0 - vertex 19.3985 -30.306 0 - vertex 23.2634 -34.3487 0 + vertex -8.66873 -38.0883 0 + vertex -0.366978 -38.538 0 + vertex -1.43333 -38.36 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.3204 -31.0557 0 - vertex 23.2634 -34.3487 0 - vertex 19.3985 -30.306 0 + vertex -8.07933 -37.9462 0 + vertex -1.43333 -38.36 0 + vertex -2.45619 -37.7112 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 23.2634 -34.3487 0 - vertex 19.3204 -31.0557 0 - vertex 22.9315 -34.3992 0 + vertex -3.7659 -32.0301 0 + vertex -6.41168 -29.738 0 + vertex -3.99709 -33.5697 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 22.9315 -34.3992 0 - vertex 19.3204 -31.0557 0 - vertex 22.5956 -34.4285 0 + vertex -8.33648 -34.384 0 + vertex -3.99709 -33.5697 0 + vertex -6.41168 -29.738 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 22.5956 -34.4285 0 - vertex 19.3204 -31.0557 0 - vertex 22.2534 -34.4379 0 + vertex -7.51249 -36.3769 0 + vertex -3.80393 -35.193 0 + vertex -3.99709 -33.5697 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 22.2534 -34.4379 0 - vertex 19.3204 -31.0557 0 - vertex 21.8355 -34.4151 0 + vertex -3.80393 -35.193 0 + vertex -7.31439 -36.7536 0 + vertex -3.26834 -36.6145 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -7.3919 -37.1883 0 + vertex -3.26834 -36.6145 0 + vertex -7.31439 -36.7536 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -3.26834 -36.6145 0 + vertex -7.3919 -37.1883 0 + vertex -2.45619 -37.7112 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 19.2935 -31.7496 0 - vertex 21.8355 -34.4151 0 - vertex 19.3204 -31.0557 0 + vertex -7.74517 -37.6801 0 + vertex -2.45619 -37.7112 0 + vertex -7.3919 -37.1883 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 21.8355 -34.4151 0 - vertex 19.2935 -31.7496 0 - vertex 21.43 -34.349 0 + vertex -8.07933 -37.9462 0 + vertex -2.45619 -37.7112 0 + vertex -7.74517 -37.6801 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 19.9171 -28.0436 0 - vertex 25.3891 -27.4375 0 - vertex 20.1247 -27.4424 0 + vertex -1.43333 -38.36 0 + vertex -8.07933 -37.9462 0 + vertex -8.66873 -38.0883 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 19.6992 -28.7679 0 - vertex 25.3891 -27.4375 0 - vertex 19.9171 -28.0436 0 + vertex -0.366978 -38.538 0 + vertex -8.66873 -38.0883 0 + vertex -12.0013 -38.1555 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 19.5256 -29.5327 0 - vertex 25.3891 -27.4375 0 - vertex 19.6992 -28.7679 0 + vertex -0.366978 -38.538 0 + vertex -12.0013 -38.1555 0 + vertex -117.5 -117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.2566 -34.0582 0 - vertex 19.3985 -30.306 0 - vertex 23.9237 -34.1793 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.43 -34.349 0 - vertex 19.2935 -31.7496 0 - vertex 21.0421 -34.2419 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.0421 -34.2419 0 - vertex 19.2935 -31.7496 0 - vertex 20.6768 -34.0963 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.6768 -34.0963 0 - vertex 19.2935 -31.7496 0 - vertex 20.3392 -33.9144 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 19.3203 -32.3556 0 - vertex 20.3392 -33.9144 0 - vertex 19.2935 -31.7496 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.3392 -33.9144 0 - vertex 19.3203 -32.3556 0 - vertex 20.0345 -33.6987 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20.0345 -33.6987 0 - vertex 19.3203 -32.3556 0 - vertex 19.7677 -33.4516 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 19.3545 -32.6156 0 - vertex 19.7677 -33.4516 0 - vertex 19.3203 -32.3556 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 19.403 -32.8415 0 - vertex 19.7677 -33.4516 0 - vertex 19.3545 -32.6156 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.7677 -33.4516 0 - vertex 19.403 -32.8415 0 - vertex 19.5439 -33.1754 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 19.5439 -33.1754 0 - vertex 19.403 -32.8415 0 - vertex 19.466 -33.0295 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.6824 -35.0376 0 - vertex 29.1028 -32.8352 0 - vertex 31.4948 -35.2825 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.4948 -35.2825 0 - vertex 29.1028 -32.8352 0 - vertex 31.3052 -35.4767 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.3052 -35.4767 0 - vertex 29.1028 -32.8352 0 - vertex 31.1075 -35.6291 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 31.1075 -35.6291 0 - vertex 29.1028 -32.8352 0 - vertex 30.8955 -35.7486 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.8955 -35.7486 0 - vertex 29.1028 -32.8352 0 - vertex 30.6629 -35.8443 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 30.6629 -35.8443 0 - vertex 29.1028 -32.8352 0 - vertex 30.4037 -35.9251 0 + vertex -117.5 -117.5 0 + vertex -12.0013 -38.1555 0 + vertex -15.3277 -38.0928 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 28.539 -33.4515 0 - vertex 30.4037 -35.9251 0 - vertex 29.1028 -32.8352 0 + vertex -17.5781 -38.0841 0 + vertex -15.3277 -38.0928 0 + vertex -15.7983 -37.9502 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 30.4037 -35.9251 0 - vertex 28.539 -33.4515 0 - vertex 29.7804 -36.0779 0 + vertex -15.9213 -37.1689 0 + vertex -16.6989 -37.6188 0 + vertex -15.9433 -37.6764 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 29.7804 -36.0779 0 - vertex 28.539 -33.4515 0 - vertex 29.5705 -36.1356 0 + vertex -16.6989 -37.6188 0 + vertex -15.7983 -37.9502 0 + vertex -15.9433 -37.6764 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 27.856 -34.1555 0 - vertex 29.5705 -36.1356 0 - vertex 28.539 -33.4515 0 + vertex -17.033 -37.9274 0 + vertex -15.7983 -37.9502 0 + vertex -16.6989 -37.6188 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 29.5705 -36.1356 0 - vertex 27.856 -34.1555 0 - vertex 29.3757 -36.2065 0 + vertex -17.5781 -38.0841 0 + vertex -15.7983 -37.9502 0 + vertex -17.033 -37.9274 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 29.3757 -36.2065 0 - vertex 27.856 -34.1555 0 - vertex 29.1966 -36.2895 0 + vertex -15.3277 -38.0928 0 + vertex -17.5781 -38.0841 0 + vertex -117.5 -117.5 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 29.1966 -36.2895 0 - vertex 27.856 -34.1555 0 - vertex 29.034 -36.3831 0 + vertex -117.5 -117.5 0 + vertex -17.5781 -38.0841 0 + vertex -20.8226 -38.1301 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -28.2835 -38.1638 0 + vertex -20.8226 -38.1301 0 + vertex -24.8096 -38.0047 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -27.2791 -36.8782 0 + vertex -25.0608 -37.8416 0 + vertex -25.157 -37.5754 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -28.2835 -38.1638 0 + vertex -25.0608 -37.8416 0 + vertex -27.2791 -36.8782 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -25.0608 -37.8416 0 + vertex -28.2835 -38.1638 0 + vertex -24.8096 -38.0047 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -20.8226 -38.1301 0 + vertex -28.2835 -38.1638 0 + vertex -117.5 -117.5 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -117.5 -117.5 0 + vertex -28.2835 -38.1638 0 + vertex -37.632 -38.1325 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -117.5 -117.5 0 + vertex -37.632 -38.1325 0 + vertex -47.4646 -37.9547 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -0.366978 -38.538 0 + vertex -117.5 -117.5 0 + vertex 117.5 -117.5 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -47.8161 -37.7712 0 + vertex -117.5 -117.5 0 + vertex -47.4646 -37.9547 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -47.9875 -37.5097 0 + vertex -117.5 -117.5 0 + vertex -47.8161 -37.7712 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -47.8577 -36.863 0 + vertex -117.5 -117.5 0 + vertex -47.9875 -37.5097 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 42.0238 -20.3507 0 + vertex 42.943 -20.2657 0 + vertex 42.1032 -19.4743 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 27.3514 -34.6537 0 - vertex 29.034 -36.3831 0 - vertex 27.856 -34.1555 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 29.034 -36.3831 0 - vertex 27.3514 -34.6537 0 - vertex 28.8888 -36.4863 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.8888 -36.4863 0 - vertex 27.3514 -34.6537 0 - vertex 28.7617 -36.5978 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.8832 -35.0925 0 - vertex 28.7617 -36.5978 0 - vertex 27.3514 -34.6537 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.7617 -36.5978 0 - vertex 26.8832 -35.0925 0 - vertex 28.6534 -36.7163 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.6534 -36.7163 0 - vertex 26.8832 -35.0925 0 - vertex 28.5648 -36.8405 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 28.5648 -36.8405 0 - vertex 26.4377 -35.4824 0 - vertex 28.4965 -36.9693 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 26.4377 -35.4824 0 - vertex 28.5648 -36.8405 0 - vertex 26.8832 -35.0925 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.5394 24.4322 0 - vertex -10.5711 24.4 0 - vertex -10.5349 24.4109 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.6591 24.5009 0 - vertex -10.5711 24.4 0 - vertex -10.5394 24.4322 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -10.9077 24.5958 0 - vertex -10.5711 24.4 0 - vertex -10.6591 24.5009 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.2625 24.7069 0 - vertex -10.5711 24.4 0 - vertex -10.9077 24.5958 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1612 23.8467 0 - vertex -11.2625 24.7069 0 - vertex -11.7825 24.8213 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1612 23.8467 0 - vertex -11.7825 24.8213 0 - vertex -12.4277 24.907 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1612 23.8467 0 - vertex -12.4277 24.907 0 - vertex -13.1566 24.9634 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -14.1612 23.8467 0 - vertex -13.1566 24.9634 0 - vertex -13.9275 24.99 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -11.2625 24.7069 0 - vertex -14.1612 23.8467 0 - vertex -10.5711 24.4 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -14.6988 24.986 0 - vertex -14.1612 23.8467 0 - vertex -13.9275 24.99 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -15.4289 24.9511 0 - vertex -14.1612 23.8467 0 - vertex -14.6988 24.986 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.0412 23.3999 0 - vertex -15.4289 24.9511 0 - vertex -16.0762 24.8844 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -17.0412 23.3999 0 - vertex -16.0762 24.8844 0 - vertex -16.599 24.7853 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -15.4289 24.9511 0 - vertex -17.0412 23.3999 0 - vertex -14.1612 23.8467 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -17.1707 24.6702 0 - vertex -17.0412 23.3999 0 - vertex -16.599 24.7853 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -18.0818 24.5233 0 - vertex -17.0412 23.3999 0 - vertex -17.1707 24.6702 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -19.3158 23.0662 0 - vertex -18.0818 24.5233 0 - vertex -19.207 24.3637 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -18.0818 24.5233 0 - vertex -19.3158 23.0662 0 - vertex -17.0412 23.3999 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -20.4207 24.2101 0 - vertex -19.3158 23.0662 0 - vertex -19.207 24.3637 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.4207 24.2101 0 - vertex -20.7318 22.8633 0 - vertex -19.3158 23.0662 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.4207 24.2101 0 - vertex -21.5474 22.7309 0 - vertex -20.7318 22.8633 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex -22.0315 22.8497 0 - vertex -21.5474 22.7309 0 - vertex -20.4207 24.2101 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5474 22.7309 0 - vertex -21.755 22.7463 0 - vertex -21.6404 22.7266 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -21.5474 22.7309 0 - vertex -22.0315 22.8497 0 - vertex -21.755 22.7463 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.4207 24.2101 0 - vertex -22.3422 23.0246 0 - vertex -22.0315 22.8497 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex -20.4207 24.2101 0 - vertex -22.6524 23.2546 0 - vertex -22.3422 23.0246 0 + vertex 42.0238 -20.3507 0 + vertex 41.971 -20.8453 0 + vertex 42.943 -20.2657 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex -22.6524 23.2546 0 - vertex -20.4207 24.2101 0 - vertex -23.3692 23.8604 0 + vertex 41.971 -20.8453 0 + vertex 42.0238 -20.3507 0 + vertex 41.8981 -20.7296 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 8.12348 -21.5274 0 - vertex 10.1807 -23.3758 0 - vertex 10.149 -22.9513 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.50498 -21.5121 0 - vertex 10.149 -22.9513 0 - vertex 10.1103 -22.7594 0 + vertex 36.104 -22.9178 0 + vertex 36.2859 -23.7121 0 + vertex 36.3422 -23.0402 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 7.71946 -21.5983 0 - vertex 10.1807 -23.3758 0 - vertex 8.12348 -21.5274 0 + vertex 35.2001 -22.9271 0 + vertex 36.2859 -23.7121 0 + vertex 36.104 -22.9178 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 8.85925 -21.5524 0 - vertex 10.1103 -22.7594 0 - vertex 10.0571 -22.5812 0 + vertex 36.2859 -23.7121 0 + vertex 35.2001 -22.9271 0 + vertex 35.3305 -26.5156 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 8.85925 -21.5524 0 - vertex 10.0571 -22.5812 0 - vertex 9.99008 -22.4166 0 + vertex 34.7441 -22.7166 0 + vertex 35.3305 -26.5156 0 + vertex 35.2001 -22.9271 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 10.1807 -23.3758 0 - vertex 7.71946 -21.5983 0 - vertex 10.1598 -23.7848 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.18157 -21.6481 0 - vertex 9.99008 -22.4166 0 - vertex 9.90973 -22.2656 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.18157 -21.6481 0 - vertex 9.90973 -22.2656 0 - vertex 9.81668 -22.1284 0 + vertex 31.8275 -24.8188 0 + vertex 34.7441 -22.7166 0 + vertex 34.62 -22.2927 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 7.29763 -21.7251 0 - vertex 10.1598 -23.7848 0 - vertex 7.71946 -21.5983 0 + vertex 31.8275 -24.8188 0 + vertex 35.3305 -26.5156 0 + vertex 34.7441 -22.7166 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 9.18157 -21.6481 0 - vertex 9.81668 -22.1284 0 - vertex 9.71152 -22.0048 0 + vertex 31.2318 -26.857 0 + vertex 35.3305 -26.5156 0 + vertex 31.4974 -26.3899 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 9.18157 -21.6481 0 - vertex 9.71152 -22.0048 0 - vertex 9.59484 -21.895 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.18157 -21.6481 0 - vertex 9.59484 -21.895 0 - vertex 9.46723 -21.7989 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 10.1598 -23.7848 0 - vertex 7.29763 -21.7251 0 - vertex 10.0892 -24.2416 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.99008 -22.4166 0 - vertex 9.18157 -21.6481 0 - vertex 8.85925 -21.5524 0 + vertex 35.3305 -26.5156 0 + vertex 31.2318 -26.857 0 + vertex 33.8444 -30.1753 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 6.8627 -21.9079 0 - vertex 10.0892 -24.2416 0 - vertex 7.29763 -21.7251 0 + vertex 30.7817 -27.1595 0 + vertex 33.8444 -30.1753 0 + vertex 31.2318 -26.857 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 10.1103 -22.7594 0 - vertex 8.85925 -21.5524 0 - vertex 8.50498 -21.5121 0 + vertex 33.8444 -30.1753 0 + vertex 30.2029 -31.1764 0 + vertex 32.5255 -33.371 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 29.8709 -31.8517 0 + vertex 32.5255 -33.371 0 + vertex 30.2029 -31.1764 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 10.149 -22.9513 0 - vertex 8.50498 -21.5121 0 - vertex 8.12348 -21.5274 0 + vertex 30.1062 -30.7807 0 + vertex 33.8444 -30.1753 0 + vertex 30.7817 -27.1595 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 10.0892 -24.2416 0 - vertex 6.8627 -21.9079 0 - vertex 9.95745 -24.7805 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 6.41939 -22.1469 0 - vertex 9.95745 -24.7805 0 - vertex 6.8627 -21.9079 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 5.97241 -22.4422 0 - vertex 9.95745 -24.7805 0 - vertex 6.41939 -22.1469 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 5.52647 -22.794 0 - vertex 9.75283 -25.4359 0 - vertex 5.97241 -22.4422 0 + vertex 32.5255 -33.371 0 + vertex 29.8709 -31.8517 0 + vertex 31.6707 -35.0376 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 9.95745 -24.7805 0 - vertex 5.97241 -22.4422 0 - vertex 9.75283 -25.4359 0 + vertex 31.6707 -35.0376 0 + vertex 29.8709 -31.8517 0 + vertex 30.8837 -35.7486 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 27.8442 -34.1555 0 + vertex 30.8837 -35.7486 0 + vertex 29.8709 -31.8517 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 9.75283 -25.4359 0 - vertex 5.52647 -22.794 0 - vertex 9.46376 -26.2422 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 5.08628 -23.2024 0 - vertex 9.46376 -26.2422 0 - vertex 5.52647 -22.794 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 4.45147 -23.8871 0 - vertex 9.46376 -26.2422 0 - vertex 5.08628 -23.2024 0 + vertex 30.8837 -35.7486 0 + vertex 27.8442 -34.1555 0 + vertex 29.7686 -36.0779 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 9.46376 -26.2422 0 - vertex 4.45147 -23.8871 0 - vertex 9.07864 -27.2338 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.85887 -24.6213 0 - vertex 9.07864 -27.2338 0 - vertex 4.45147 -23.8871 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.31148 -25.3951 0 - vertex 9.07864 -27.2338 0 - vertex 3.85887 -24.6213 0 + vertex 29.7686 -36.0779 0 + vertex 27.8442 -34.1555 0 + vertex 29.0223 -36.3831 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 9.07864 -27.2338 0 - vertex 3.31148 -25.3951 0 - vertex 7.97377 -29.9101 0 + vertex 29.0223 -36.3831 0 + vertex 27.8442 -34.1555 0 + vertex 28.553 -36.8405 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 2.81229 -26.1986 0 - vertex 7.97377 -29.9101 0 - vertex 3.31148 -25.3951 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 2.36428 -27.0218 0 - vertex 7.97377 -29.9101 0 - vertex 2.81229 -26.1986 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.97046 -27.8549 0 - vertex 7.97377 -29.9101 0 - vertex 2.36428 -27.0218 0 + vertex 25.9895 -35.834 0 + vertex 28.553 -36.8405 0 + vertex 27.8442 -34.1555 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 7.97377 -29.9101 0 - vertex 1.97046 -27.8549 0 - vertex 7.44603 -31.1479 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.63381 -28.6878 0 - vertex 7.44603 -31.1479 0 - vertex 1.97046 -27.8549 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.35733 -29.5107 0 - vertex 7.44603 -31.1479 0 - vertex 1.63381 -28.6878 0 + vertex -11.2742 24.7069 0 + vertex -10.5829 24.4 0 + vertex -10.6709 24.5009 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 7.44603 -31.1479 0 - vertex 1.35733 -29.5107 0 - vertex 7.00854 -32.1311 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 1.144 -30.3137 0 - vertex 7.00854 -32.1311 0 - vertex 1.35733 -29.5107 0 + vertex -14.1729 23.8467 0 + vertex -11.2742 24.7069 0 + vertex -13.9393 24.99 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 7.00854 -32.1311 0 - vertex 1.144 -30.3137 0 - vertex 6.63949 -32.8952 0 + vertex -11.2742 24.7069 0 + vertex -14.1729 23.8467 0 + vertex -10.5829 24.4 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 0.99682 -31.0867 0 - vertex 6.63949 -32.8952 0 - vertex 1.144 -30.3137 0 + vertex -16.6107 24.7853 0 + vertex -14.1729 23.8467 0 + vertex -13.9393 24.99 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 6.63949 -32.8952 0 - vertex 0.99682 -31.0867 0 - vertex 6.31707 -33.4759 0 + vertex -16.6107 24.7853 0 + vertex -19.3275 23.0662 0 + vertex -14.1729 23.8467 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 0.918778 -31.8199 0 - vertex 6.31707 -33.4759 0 - vertex 0.99682 -31.0867 0 + vertex -20.4324 24.2101 0 + vertex -19.3275 23.0662 0 + vertex -16.6107 24.7853 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 6.31707 -33.4759 0 - vertex 0.918778 -31.8199 0 - vertex 6.01946 -33.9088 0 + vertex -20.4324 24.2101 0 + vertex -21.5591 22.7309 0 + vertex -19.3275 23.0662 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -20.4324 24.2101 0 + vertex -22.0432 22.8497 0 + vertex -21.5591 22.7309 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex -20.4324 24.2101 0 + vertex -22.6641 23.2546 0 + vertex -22.0432 22.8497 0 endloop endfacet facet normal 0 -0 1 outer loop - vertex 5.05744 -34.678 0 - vertex 6.01946 -33.9088 0 - vertex 0.918778 -31.8199 0 + vertex -22.6641 23.2546 0 + vertex -20.4324 24.2101 0 + vertex -23.3809 23.8604 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 6.01946 -33.9088 0 - vertex 5.41146 -34.4742 0 - vertex 5.87315 -34.0811 0 + vertex 8.49325 -21.5121 0 + vertex 10.169 -23.3758 0 + vertex 10.0454 -22.5812 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 5.87315 -34.0811 0 - vertex 5.41146 -34.4742 0 - vertex 5.72486 -34.2297 0 + vertex 10.169 -23.3758 0 + vertex 7.70773 -21.5983 0 + vertex 10.0775 -24.2416 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 6.01946 -33.9088 0 - vertex 5.05744 -34.678 0 - vertex 5.41146 -34.4742 0 + vertex 9.16984 -21.6481 0 + vertex 10.0454 -22.5812 0 + vertex 9.69979 -22.0048 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 10.0454 -22.5812 0 + vertex 9.16984 -21.6481 0 + vertex 8.49325 -21.5121 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 10.169 -23.3758 0 + vertex 8.49325 -21.5121 0 + vertex 7.70773 -21.5983 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 0.906618 -32.1685 0 - vertex 5.05744 -34.678 0 - vertex 0.918778 -31.8199 0 + vertex 6.85097 -21.9079 0 + vertex 10.0775 -24.2416 0 + vertex 7.70773 -21.5983 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 5.05744 -34.678 0 - vertex 0.906618 -32.1685 0 - vertex 4.59905 -34.8756 0 + vertex 10.0775 -24.2416 0 + vertex 6.85097 -21.9079 0 + vertex 9.7411 -25.4359 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 5.96068 -22.4422 0 + vertex 9.7411 -25.4359 0 + vertex 6.85097 -21.9079 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 5.07455 -23.2024 0 + vertex 9.7411 -25.4359 0 + vertex 5.96068 -22.4422 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 3.84714 -24.6213 0 + vertex 9.7411 -25.4359 0 + vertex 5.07455 -23.2024 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 9.7411 -25.4359 0 + vertex 3.84714 -24.6213 0 + vertex 7.96204 -29.9101 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 2.80055 -26.1986 0 + vertex 7.96204 -29.9101 0 + vertex 3.84714 -24.6213 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 1.95873 -27.8549 0 + vertex 7.96204 -29.9101 0 + vertex 2.80055 -26.1986 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 1.3456 -29.5107 0 + vertex 7.96204 -29.9101 0 + vertex 1.95873 -27.8549 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 7.96204 -29.9101 0 + vertex 1.3456 -29.5107 0 + vertex 6.30534 -33.4759 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 0.985088 -31.0867 0 + vertex 6.30534 -33.4759 0 + vertex 1.3456 -29.5107 0 + endloop + endfacet + facet normal -0 0 1 + outer loop + vertex 0.901133 -32.5034 0 + vertex 6.30534 -33.4759 0 + vertex 0.985088 -31.0867 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 6.30534 -33.4759 0 + vertex 0.901133 -32.5034 0 + vertex 5.71313 -34.2297 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 5.71313 -34.2297 0 + vertex 0.901133 -32.5034 0 + vertex 5.04571 -34.678 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 5.04571 -34.678 0 + vertex 0.901133 -32.5034 0 + vertex 4.11511 -35.011 0 + endloop + endfacet + facet normal 0 0 1 + outer loop + vertex 4.11511 -35.011 0 + vertex 0.901133 -32.5034 0 + vertex 3.17687 -35.0966 0 endloop endfacet facet normal -0 -0 1 outer loop - vertex 0.912865 -32.5034 0 - vertex 4.59905 -34.8756 0 - vertex 0.906618 -32.1685 0 + vertex 1.11766 -33.6813 0 + vertex 3.17687 -35.0966 0 + vertex 0.901133 -32.5034 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 4.59905 -34.8756 0 - vertex 0.912865 -32.5034 0 - vertex 4.12685 -35.011 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 0.937893 -32.8234 0 - vertex 4.12685 -35.011 0 - vertex 0.912865 -32.5034 0 + vertex 3.17687 -35.0966 0 + vertex 1.11766 -33.6813 0 + vertex 2.32628 -34.9386 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 4.12685 -35.011 0 - vertex 0.937893 -32.8234 0 - vertex 3.65273 -35.0844 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 0.982074 -33.1272 0 - vertex 3.65273 -35.0844 0 - vertex 0.937893 -32.8234 0 + vertex 2.32628 -34.9386 0 + vertex 1.11766 -33.6813 0 + vertex 1.65861 -34.5411 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 3.65273 -35.0844 0 - vertex 0.982074 -33.1272 0 - vertex 3.18861 -35.0966 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 1.04578 -33.4136 0 - vertex 3.18861 -35.0966 0 - vertex 0.982074 -33.1272 0 + vertex 9.76373 17.1908 0 + vertex 9.72145 16.1788 0 + vertex 10.4258 16.5104 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 3.18861 -35.0966 0 - vertex 1.04578 -33.4136 0 - vertex 2.7464 -35.0478 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 1.1294 -33.6813 0 - vertex 2.7464 -35.0478 0 - vertex 1.04578 -33.4136 0 + vertex 9.76373 17.1908 0 + vertex 8.86535 15.8492 0 + vertex 9.72145 16.1788 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 2.7464 -35.0478 0 - vertex 1.1294 -33.6813 0 - vertex 2.53723 -35.0007 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 1.23329 -33.9292 0 - vertex 2.53723 -35.0007 0 - vertex 1.1294 -33.6813 0 + vertex 8.028 17.0592 0 + vertex 9.76373 17.1908 0 + vertex 8.30319 18.4459 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 2.53723 -35.0007 0 - vertex 1.23329 -33.9292 0 - vertex 2.33801 -34.9386 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.33801 -34.9386 0 - vertex 1.23329 -33.9292 0 - vertex 2.15022 -34.8616 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 1.35782 -34.1559 0 - vertex 2.15022 -34.8616 0 - vertex 1.23329 -33.9292 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 2.15022 -34.8616 0 - vertex 1.35782 -34.1559 0 - vertex 1.97535 -34.7696 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.8149 -34.6627 0 - vertex 1.50339 -34.3603 0 - vertex 1.67035 -34.5411 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 1.97535 -34.7696 0 - vertex 1.50339 -34.3603 0 - vertex 1.8149 -34.6627 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 1.50339 -34.3603 0 - vertex 1.97535 -34.7696 0 - vertex 1.35782 -34.1559 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.77546 17.1908 0 - vertex 9.73318 16.1788 0 - vertex 10.4375 16.5104 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.57086 16.213 0 - vertex 9.77546 17.1908 0 - vertex 9.46246 17.4938 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.77546 17.1908 0 - vertex 9.19116 15.9452 0 - vertex 9.73318 16.1788 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.03973 17.0592 0 - vertex 9.46246 17.4938 0 - vertex 9.09841 17.8163 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.77546 17.1908 0 - vertex 8.57086 16.213 0 - vertex 9.19116 15.9452 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 8.76553 15.9481 0 - vertex 9.19116 15.9452 0 - vertex 8.57086 16.213 0 - endloop - endfacet - facet normal -0 -0 1 - outer loop - vertex 8.83337 15.875 0 - vertex 8.99158 15.8746 0 - vertex 8.76553 15.9481 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.99158 15.8746 0 - vertex 8.83337 15.875 0 - vertex 8.87708 15.8492 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.19116 15.9452 0 - vertex 8.76553 15.9481 0 - vertex 8.99158 15.8746 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.03973 17.0592 0 - vertex 9.09841 17.8163 0 - vertex 8.31493 18.4459 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 9.46246 17.4938 0 - vertex 8.03973 17.0592 0 - vertex 8.57086 16.213 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.49889 18.0241 0 - vertex 8.31493 18.4459 0 - vertex 7.9444 18.7161 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.29207 18.4374 0 - vertex 7.9444 18.7161 0 - vertex 7.62063 18.9319 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 8.31493 18.4459 0 - vertex 7.49889 18.0241 0 - vertex 8.03973 17.0592 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.16351 18.7442 0 - vertex 7.62063 18.9319 0 - vertex 7.36805 19.075 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.9444 18.7161 0 - vertex 7.29207 18.4374 0 - vertex 7.49889 18.0241 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 0 - vertex 7.36805 19.075 0 - vertex 7.21113 19.1268 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.62063 18.9319 0 - vertex 7.16351 18.7442 0 - vertex 7.29207 18.4374 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.1242 19.0144 0 - vertex 7.21113 19.1268 0 - vertex 7.15267 19.0966 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.36805 19.075 0 - vertex 7.1273 18.8927 0 - vertex 7.16351 18.7442 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 7.36805 19.075 0 - vertex 7.1242 19.0144 0 - vertex 7.1273 18.8927 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 25.8138 -21.8092 0 - vertex 27.4312 -23.3865 0 - vertex 27.4186 -23.1088 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.0922 -21.8157 0 - vertex 27.4186 -23.1088 0 - vertex 27.3785 -22.8574 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4312 -23.3865 0 - vertex 25.8138 -21.8092 0 - vertex 27.4161 -23.6904 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 26.3449 -21.8501 0 - vertex 27.3785 -22.8574 0 - vertex 27.3111 -22.6325 0 + vertex 9.76373 17.1908 0 + vertex 8.028 17.0592 0 + vertex 8.86535 15.8492 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 25.51 -21.8307 0 - vertex 27.4161 -23.6904 0 - vertex 25.8138 -21.8092 0 + vertex 7.15178 18.7442 0 + vertex 8.30319 18.4459 0 + vertex 7.1994 19.1268 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 26.5717 -21.9122 0 - vertex 27.3111 -22.6325 0 - vertex 27.2166 -22.4344 0 + vertex 8.30319 18.4459 0 + vertex 7.15178 18.7442 0 + vertex 8.028 17.0592 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 26.7726 -22.0019 0 - vertex 27.2166 -22.4344 0 - vertex 27.0952 -22.2631 0 + vertex 26.0804 -21.8157 0 + vertex 27.3613 -24.0204 0 + vertex 27.3668 -22.8574 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 26.7726 -22.0019 0 - vertex 27.0952 -22.2631 0 - vertex 26.9471 -22.1189 0 + vertex 26.0804 -21.8157 0 + vertex 27.3668 -22.8574 0 + vertex 26.9354 -22.1189 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 27.2166 -22.4344 0 - vertex 26.7726 -22.0019 0 - vertex 26.5717 -21.9122 0 + vertex 27.3613 -24.0204 0 + vertex 26.0804 -21.8157 0 + vertex 24.4233 -24.8188 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 27.3111 -22.6325 0 - vertex 26.5717 -21.9122 0 - vertex 26.3449 -21.8501 0 + vertex 24.4233 -24.8188 0 + vertex 26.0804 -21.8157 0 + vertex 24.8153 -21.9586 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 27.3785 -22.8574 0 - vertex 26.3449 -21.8501 0 - vertex 26.0922 -21.8157 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4186 -23.1088 0 - vertex 26.0922 -21.8157 0 - vertex 25.8138 -21.8092 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.435 -24.8188 0 - vertex 27.4161 -23.6904 0 - vertex 25.51 -21.8307 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.4161 -23.6904 0 - vertex 24.435 -24.8188 0 - vertex 27.373 -24.0204 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.435 -24.8188 0 - vertex 25.51 -21.8307 0 - vertex 25.181 -21.8805 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.435 -24.8188 0 - vertex 25.181 -21.8805 0 - vertex 24.827 -21.9586 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 24.435 -24.8188 0 - vertex 24.827 -21.9586 0 - vertex 24.5319 -22.0421 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 27.373 -24.0204 0 - vertex 24.435 -24.8188 0 - vertex 27.2401 -24.8188 0 + vertex 27.3613 -24.0204 0 + vertex 24.4233 -24.8188 0 + vertex 27.2283 -24.8188 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 24.2621 -22.1397 0 - vertex 24.435 -24.8188 0 - vertex 24.5319 -22.0421 0 + vertex 23.7526 -22.3987 0 + vertex 24.4233 -24.8188 0 + vertex 24.8153 -21.9586 0 endloop endfacet facet normal -0 0 1 outer loop - vertex 24.0091 -22.2567 0 - vertex 24.435 -24.8188 0 - vertex 24.2621 -22.1397 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.7644 -22.3987 0 - vertex 24.435 -24.8188 0 - vertex 24.0091 -22.2567 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.5194 -22.5712 0 - vertex 24.435 -24.8188 0 - vertex 23.7644 -22.3987 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 23.2657 -22.7795 0 - vertex 24.435 -24.8188 0 - vertex 23.5194 -22.5712 0 + vertex 22.6861 -23.3258 0 + vertex 24.4233 -24.8188 0 + vertex 23.7526 -22.3987 0 endloop endfacet facet normal 0 0 1 outer loop - vertex 24.435 -24.8188 0 - vertex 23.2657 -22.7795 0 - vertex 23.3459 -24.8032 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.6979 -23.3258 0 - vertex 23.3459 -24.8032 0 - vertex 23.2657 -22.7795 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 22.2832 -23.7683 0 - vertex 23.3459 -24.8032 0 - vertex 22.6979 -23.3258 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 23.3459 -24.8032 0 - vertex 22.2832 -23.7683 0 - vertex 22.454 -24.761 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.9437 -24.1601 0 - vertex 22.454 -24.761 0 - vertex 22.2832 -23.7683 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.9437 -24.1601 0 - vertex 21.8514 -24.6984 0 - vertex 22.454 -24.761 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.7143 -24.4589 0 - vertex 21.8514 -24.6984 0 - vertex 21.9437 -24.1601 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.7143 -24.4589 0 - vertex 21.6873 -24.6616 0 - vertex 21.8514 -24.6984 0 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 21.6518 -24.5601 0 - vertex 21.6873 -24.6616 0 - vertex 21.7143 -24.4589 0 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 21.6873 -24.6616 0 - vertex 21.6518 -24.5601 0 - vertex 21.63 -24.6221 0 + vertex 24.4233 -24.8188 0 + vertex 22.6861 -23.3258 0 + vertex 21.6183 -24.6221 0 endloop endfacet facet normal 1 -0 0 @@ -58743,20 +19837,6 @@ solid OpenSCAD_Model vertex -117.5 117.5 -3 endloop endfacet - facet normal 0 0 -1 - outer loop - vertex -117.5 -117.5 -3 - vertex 117.5 117.5 -3 - vertex 117.5 -117.5 -3 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 117.5 117.5 -3 - vertex -117.5 -117.5 -3 - vertex -117.5 117.5 -3 - endloop - endfacet facet normal 0 -1 0 outer loop vertex -117.5 -117.5 -3 From 0f5dda72c4eaa8b8824efa68587d1c7452cfeb93 Mon Sep 17 00:00:00 2001 From: Gordon LaPlante Date: Wed, 24 Oct 2018 10:26:01 -0400 Subject: [PATCH 0067/1039] gMax 1.5+ Cura 3.5.1 Config gMax 1.5+ Cura 3.5.1 Config updates --- resources/definitions/gmax15plus.def.json | 15 ++++++++++----- resources/definitions/gmax15plus_dual.def.json | 10 ++++++---- .../extruders/gmax15plus_dual_extruder_0.def.json | 2 +- .../extruders/gmax15plus_dual_extruder_1.def.json | 2 +- ...cfg => gmax15plus_global_dual_normal.inst.cfg} | 3 ++- ....cfg => gmax15plus_global_dual_thick.inst.cfg} | 3 ++- ...t.cfg => gmax15plus_global_dual_thin.inst.cfg} | 3 ++- ...=> gmax15plus_global_dual_very_thick.inst.cfg} | 3 ++- ...inst.cfg => gmax15plus_global_normal.inst.cfg} | 3 +++ ....inst.cfg => gmax15plus_global_thick.inst.cfg} | 3 ++- ...n.inst.cfg => gmax15plus_global_thin.inst.cfg} | 3 ++- ....cfg => gmax15plus_global_very_thick.inst.cfg} | 3 ++- resources/variants/gmax15plus_04_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_05_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_06_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_08_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_10_jhead.inst.cfg | 2 +- ...25_e3d.inst.cfg => gmax15plus_12_e3d.inst.cfg} | 4 ++-- .../variants/gmax15plus_dual_025_e3d.inst.cfg | 13 ------------- .../variants/gmax15plus_dual_04_e3d.inst.cfg | 2 +- .../variants/gmax15plus_dual_10_jhead.inst.cfg | 2 +- 21 files changed, 44 insertions(+), 40 deletions(-) rename resources/quality/gmax15plus/{gmax15plus_pla_dual_normal.inst.cfg => gmax15plus_global_dual_normal.inst.cfg} (96%) rename resources/quality/gmax15plus/{gmax15plus_pla_dual_thick.inst.cfg => gmax15plus_global_dual_thick.inst.cfg} (96%) rename resources/quality/gmax15plus/{gmax15plus_pla_dual_thin.inst.cfg => gmax15plus_global_dual_thin.inst.cfg} (96%) rename resources/quality/gmax15plus/{gmax15plus_pla_dual_very_thick.inst.cfg => gmax15plus_global_dual_very_thick.inst.cfg} (96%) rename resources/quality/gmax15plus/{gmax15plus_pla_normal.inst.cfg => gmax15plus_global_normal.inst.cfg} (98%) rename resources/quality/gmax15plus/{gmax15plus_pla_thick.inst.cfg => gmax15plus_global_thick.inst.cfg} (95%) rename resources/quality/gmax15plus/{gmax15plus_pla_thin.inst.cfg => gmax15plus_global_thin.inst.cfg} (95%) rename resources/quality/gmax15plus/{gmax15plus_pla_very_thick.inst.cfg => gmax15plus_global_very_thick.inst.cfg} (95%) rename resources/variants/{gmax15plus_025_e3d.inst.cfg => gmax15plus_12_e3d.inst.cfg} (71%) delete mode 100644 resources/variants/gmax15plus_dual_025_e3d.inst.cfg diff --git a/resources/definitions/gmax15plus.def.json b/resources/definitions/gmax15plus.def.json index 16695714f4..3196076420 100644 --- a/resources/definitions/gmax15plus.def.json +++ b/resources/definitions/gmax15plus.def.json @@ -10,13 +10,16 @@ "category": "Other", "file_formats": "text/x-gcode", "platform": "gmax_1-5_xt-plus_s3d_full model_150707.stl", - "has_machine_quality": true, + "has_machine_quality": true, "has_variants": true, - "variants_name": "Hotend", - "preferred_variant_name": "0.5mm E3D (Default)", - "machine_extruder_trains": { + "variants_name": "Hotend", + "preferred_variant_name": "*0.5mm E3D (Default)*", + "preferred_quality_type": "gmax15plus_global_normal", + "machine_extruder_trains": { "0": "gmax15plus_extruder_0" } + + }, "overrides": { @@ -27,6 +30,8 @@ "machine_depth": { "default_value": 406 }, "machine_height": { "default_value": 533 }, "machine_center_is_zero": { "default_value": false }, + "material_diameter": { "default_value": 1.75 }, + "machine_nozzle_size": { "default_value": 0.5 }, "layer_height": { "default_value": 0.2 }, "layer_height_0": { "default_value": 0.3 }, "retraction_amount": { "default_value": 1 }, @@ -43,7 +48,7 @@ "machine_max_jerk_z": { "default_value": 0.4 }, "machine_max_jerk_e": { "default_value": 5.0 }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 ;Home X/Y/Z\nG29 ; Bed level\nM104 S{material_print_temperature} ; Preheat\nM109 S{material_print_temperature} ; Preheat\nG91 ;relative positioning\nG90 ;absolute positioning\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, + "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home X/Y/Z\nM104 S{material_print_temperature} ; Preheat\nM109 S{material_print_temperature} ; Preheat\nG91 ;relative positioning\nG90 ;absolute positioning\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, "machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" }, "material_print_temperature": { "default_value": 202 }, "wall_thickness": { "default_value": 1 }, diff --git a/resources/definitions/gmax15plus_dual.def.json b/resources/definitions/gmax15plus_dual.def.json index 5972061933..634ce2b3b8 100644 --- a/resources/definitions/gmax15plus_dual.def.json +++ b/resources/definitions/gmax15plus_dual.def.json @@ -11,13 +11,13 @@ "file_formats": "text/x-gcode", "platform": "gmax_1-5_xt-plus_s3d_full model_150707.stl", "has_variants": true, - "has_machine_quality": true, "variants_name": "Hotend", - "preferred_variant_name": "0.5mm E3D (Default)", + "preferred_variant_name": "*0.5mm E3D (Default)*", + "preferred_quality_type": "gmax15plus_global_dual_normal", "machine_extruder_trains": { "0": "gmax15plus_dual_extruder_0", "1": "gmax15plus_dual_extruder_1" - } + } }, "overrides": { @@ -28,6 +28,8 @@ "machine_depth": { "default_value": 406 }, "machine_height": { "default_value": 533 }, "machine_center_is_zero": { "default_value": false }, + "material_diameter": { "default_value": 1.75 }, + "machine_nozzle_size": { "default_value": 0.5 }, "layer_height": { "default_value": 0.2 }, "layer_height_0": { "default_value": 0.3 }, "retraction_amount": { "default_value": 1 }, @@ -44,7 +46,7 @@ "machine_max_jerk_z": { "default_value": 0.4 }, "machine_max_jerk_e": { "default_value": 5.0 }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 ;Home X/Y/Z\nG29 ; Bed level\nM104 S{material_print_temperature} T0 ; Preheat Left Extruder\nM104 S{material_print_temperature} T1 ; Preheat Right Extruder\nM109 S{material_print_temperature} T0 ; Preheat Left Extruder\nM109 S{material_print_temperature} T1 ; Preheat Right Extruder\nG91 ;relative positioning\nG90 ;absolute positioning\nM218 T1 X34.3 Y0; Set 2nd extruder offset. This can be changed later if needed\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, + "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home X/Y/Z\nM104 S{material_print_temperature} T0 ; Preheat Left Extruder\nM104 S{material_print_temperature} T1 ; Preheat Right Extruder\nM109 S{material_print_temperature} T0 ; Preheat Left Extruder\nM109 S{material_print_temperature} T1 ; Preheat Right Extruder\nG91 ;relative positioning\nG90 ;absolute positioning\nM218 T1 X34.3 Y0; Set 2nd extruder offset. This can be changed later if needed\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, "machine_end_gcode": { "default_value": "M104 S0 T0;Left extruder off\nM104 S0 T1; Right extruder off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" }, "material_print_temperature": { "default_value": 202 }, "wall_thickness": { "default_value": 1 }, diff --git a/resources/extruders/gmax15plus_dual_extruder_0.def.json b/resources/extruders/gmax15plus_dual_extruder_0.def.json index b490f4a40e..524fa72f9f 100644 --- a/resources/extruders/gmax15plus_dual_extruder_0.def.json +++ b/resources/extruders/gmax15plus_dual_extruder_0.def.json @@ -16,7 +16,7 @@ "machine_nozzle_offset_x": { "default_value": 0.0 }, "machine_nozzle_offset_y": { "default_value": 0.0 }, "machine_nozzle_size": { "default_value": 0.5 }, - "material_diameter": { "default_value": 1.75 }, + "material_diameter": { "default_value": 1.75 }, "machine_extruder_start_pos_abs": { "default_value": true }, "machine_extruder_start_pos_x": { "value": 40 }, diff --git a/resources/extruders/gmax15plus_dual_extruder_1.def.json b/resources/extruders/gmax15plus_dual_extruder_1.def.json index ad3c628d6f..1b9f7bda5f 100644 --- a/resources/extruders/gmax15plus_dual_extruder_1.def.json +++ b/resources/extruders/gmax15plus_dual_extruder_1.def.json @@ -16,7 +16,7 @@ "machine_nozzle_offset_x": { "default_value": 0.0 }, "machine_nozzle_offset_y": { "default_value": 0.0 }, "machine_nozzle_size": { "default_value": 0.5 }, - "material_diameter": { "default_value": 1.75 }, + "material_diameter": { "default_value": 1.75 }, "machine_extruder_start_pos_abs": { "default_value": true }, "machine_extruder_start_pos_x": { "value": 40 }, diff --git a/resources/quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg similarity index 96% rename from resources/quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg index 7fd2ab2296..5dea12d308 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = -1 +global_quality = True [values] layer_height = 0.2 @@ -64,7 +65,7 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_min_volume = 18 +prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/quality/gmax15plus/gmax15plus_pla_dual_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg similarity index 96% rename from resources/quality/gmax15plus/gmax15plus_pla_dual_thick.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg index 30a99ef243..de374e3a9f 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_dual_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = course weight = -2 +global_quality = True [values] layer_height = 0.28 @@ -64,7 +65,7 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_min_volume = 18 +prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg similarity index 96% rename from resources/quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg index decafac241..f36ed38c00 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = high weight = 0 +global_quality = True [values] layer_height = 0.16 @@ -64,7 +65,7 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_min_volume = 18 +prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/quality/gmax15plus/gmax15plus_pla_dual_very_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg similarity index 96% rename from resources/quality/gmax15plus/gmax15plus_pla_dual_very_thick.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg index a74bdfdd78..2ce55450dd 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_dual_very_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = extra_course weight = -3 +global_quality = True [values] layer_height = 0.32 @@ -63,7 +64,7 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_min_volume = 18 +prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg similarity index 98% rename from resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg index ddf5a4c491..1f7203a03b 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = -1 +global_quality = True [values] layer_height = 0.2 @@ -57,3 +58,5 @@ top_thickness = 1 bottom_layers = 2 wall_line_count = 2 z_seam_corner = z_seam_corner_none + + diff --git a/resources/quality/gmax15plus/gmax15plus_pla_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg similarity index 95% rename from resources/quality/gmax15plus/gmax15plus_pla_thick.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg index e6cb2b5854..8b01d1a166 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = course weight = -2 +global_quality = True [values] layer_height = 0.28 @@ -56,4 +57,4 @@ top_layers = 3 top_thickness = 1 bottom_layers = 2 wall_line_count = 2 -z_seam_corner = z_seam_corner_none +z_seam_corner = z_seam_corner_none \ No newline at end of file diff --git a/resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg similarity index 95% rename from resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg index d119539d32..a06fd24ea7 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = high weight = 0 +global_quality = True [values] layer_height = 0.16 @@ -56,4 +57,4 @@ top_layers = 5 top_thickness = 1 bottom_layers = 3 wall_line_count = 2 -z_seam_corner = z_seam_corner_none +z_seam_corner = z_seam_corner_none \ No newline at end of file diff --git a/resources/quality/gmax15plus/gmax15plus_pla_very_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg similarity index 95% rename from resources/quality/gmax15plus/gmax15plus_pla_very_thick.inst.cfg rename to resources/quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg index 884029a4ae..36f78673c2 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_very_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = extra_course weight = -3 +global_quality = True [values] layer_height = 0.32 @@ -55,4 +56,4 @@ top_layers = 3 top_thickness = 1 bottom_layers = 2 wall_line_count = 2 -z_seam_corner = z_seam_corner_none +z_seam_corner = z_seam_corner_none \ No newline at end of file diff --git a/resources/variants/gmax15plus_04_e3d.inst.cfg b/resources/variants/gmax15plus_04_e3d.inst.cfg index a2f779f426..48fe7ada16 100644 --- a/resources/variants/gmax15plus_04_e3d.inst.cfg +++ b/resources/variants/gmax15plus_04_e3d.inst.cfg @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.4 +machine_nozzle_size = 0.4 \ No newline at end of file diff --git a/resources/variants/gmax15plus_05_e3d.inst.cfg b/resources/variants/gmax15plus_05_e3d.inst.cfg index 68ee111aa1..0bb9517da8 100644 --- a/resources/variants/gmax15plus_05_e3d.inst.cfg +++ b/resources/variants/gmax15plus_05_e3d.inst.cfg @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.5 +machine_nozzle_size = 0.5 \ No newline at end of file diff --git a/resources/variants/gmax15plus_06_e3d.inst.cfg b/resources/variants/gmax15plus_06_e3d.inst.cfg index 987e882a09..3a372b20c9 100644 --- a/resources/variants/gmax15plus_06_e3d.inst.cfg +++ b/resources/variants/gmax15plus_06_e3d.inst.cfg @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.6 +machine_nozzle_size = 0.6 \ No newline at end of file diff --git a/resources/variants/gmax15plus_08_e3d.inst.cfg b/resources/variants/gmax15plus_08_e3d.inst.cfg index bf59b47da0..39eeef748e 100644 --- a/resources/variants/gmax15plus_08_e3d.inst.cfg +++ b/resources/variants/gmax15plus_08_e3d.inst.cfg @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.8 +machine_nozzle_size = 0.8 \ No newline at end of file diff --git a/resources/variants/gmax15plus_10_jhead.inst.cfg b/resources/variants/gmax15plus_10_jhead.inst.cfg index 47355f344c..37d2546d2a 100644 --- a/resources/variants/gmax15plus_10_jhead.inst.cfg +++ b/resources/variants/gmax15plus_10_jhead.inst.cfg @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.5 +machine_nozzle_size = 0.5 \ No newline at end of file diff --git a/resources/variants/gmax15plus_025_e3d.inst.cfg b/resources/variants/gmax15plus_12_e3d.inst.cfg similarity index 71% rename from resources/variants/gmax15plus_025_e3d.inst.cfg rename to resources/variants/gmax15plus_12_e3d.inst.cfg index 8a6b37067d..57052dd0f8 100644 --- a/resources/variants/gmax15plus_025_e3d.inst.cfg +++ b/resources/variants/gmax15plus_12_e3d.inst.cfg @@ -1,5 +1,5 @@ [general] -name = 0.25mm E3D (Difficult) +name = 1.2mm E3D Volcano version = 4 definition = gmax15plus @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.25 +machine_nozzle_size = 1.2 \ No newline at end of file diff --git a/resources/variants/gmax15plus_dual_025_e3d.inst.cfg b/resources/variants/gmax15plus_dual_025_e3d.inst.cfg deleted file mode 100644 index 750a5381b3..0000000000 --- a/resources/variants/gmax15plus_dual_025_e3d.inst.cfg +++ /dev/null @@ -1,13 +0,0 @@ -[general] -name = 0.25mm E3D (Difficult) -version = 4 -definition = gmax15plus_dual - -[metadata] -author = gcreate -setting_version = 5 -type = variant -hardware_type = nozzle - -[values] -machine_nozzle_size = 0.25 diff --git a/resources/variants/gmax15plus_dual_04_e3d.inst.cfg b/resources/variants/gmax15plus_dual_04_e3d.inst.cfg index 4b5a71c53b..809227a62c 100644 --- a/resources/variants/gmax15plus_dual_04_e3d.inst.cfg +++ b/resources/variants/gmax15plus_dual_04_e3d.inst.cfg @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.4 +machine_nozzle_size = 0.4 \ No newline at end of file diff --git a/resources/variants/gmax15plus_dual_10_jhead.inst.cfg b/resources/variants/gmax15plus_dual_10_jhead.inst.cfg index cf615bb874..ee0c8fa948 100644 --- a/resources/variants/gmax15plus_dual_10_jhead.inst.cfg +++ b/resources/variants/gmax15plus_dual_10_jhead.inst.cfg @@ -10,4 +10,4 @@ type = variant hardware_type = nozzle [values] -machine_nozzle_size = 0.5 +machine_nozzle_size = 1.0 From e64698209c22b65bb556a042f935db73fcb2df0f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 25 Oct 2018 17:41:35 +0200 Subject: [PATCH 0068/1039] Adjust the minimum size to be something around 1280x1024. Also adjust some colors color for the dark theme. Contributes to CURA-5772. --- plugins/PrepareStage/PrepareMenu.qml | 6 +++--- .../{ProgressAndSaveWidget.qml => ActionPanelWidget.qml} | 6 ++++-- resources/qml/Cura.qml | 3 ++- resources/qml/qmldir | 3 ++- resources/themes/cura-light/theme.json | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) rename resources/qml/{ProgressAndSaveWidget.qml => ActionPanelWidget.qml} (98%) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 8d0f03ec2f..f08de9d317 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -46,7 +46,7 @@ Item Cura.MachineSelector { id: machineSelection - width: UM.Theme.getSize("sidebar").width + width: Math.round(0.8 * UM.Theme.getSize("sidebar").width) - configSelection.width height: prepareMenu.height } @@ -54,8 +54,8 @@ Item { id: configSelection visible: isNetworkPrinter && printerConnected - width: visible ? Math.round(machineSelection.width * 0.15) : 0 - panelWidth: machineSelection.width + width: visible ? Math.round(UM.Theme.getSize("sidebar").width * 0.15) : 0 + panelWidth: Math.round(0.8 * UM.Theme.getSize("sidebar").width) height: prepareMenu.height } diff --git a/resources/qml/ProgressAndSaveWidget.qml b/resources/qml/ActionPanelWidget.qml similarity index 98% rename from resources/qml/ProgressAndSaveWidget.qml rename to resources/qml/ActionPanelWidget.qml index 6e8eb59482..02ac154178 100644 --- a/resources/qml/ProgressAndSaveWidget.qml +++ b/resources/qml/ActionPanelWidget.qml @@ -19,7 +19,9 @@ Rectangle signal showTooltip(Item item, point location, string text) signal hideTooltip() - // Also add an extra margin, as we ant some breathing room around the edges. + color: UM.Theme.getColor("sidebar") + + // Also add an extra margin, as we want some breathing room around the edges. height: saveButton.height + UM.Theme.getSize("sidebar_margin").height Label { @@ -231,7 +233,7 @@ Rectangle { id: saveButton width: parent.width - height: 100 + height: 100 * screenScaleFactor anchors.bottom: parent.bottom } } \ No newline at end of file diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 474f93afa4..c5abb0f107 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -291,6 +291,7 @@ UM.MainWindow onActiveViewChanged: viewModeButton.updateItemActiveFlags() } } + Loader { id: viewPanel @@ -307,7 +308,7 @@ UM.MainWindow source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" } - ProgressAndSaveWidget + Cura.ActionPanelWidget { anchors.right: parent.right anchors.bottom: parent.bottom diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 2681da00e1..0e5e316409 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -6,4 +6,5 @@ CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml PrintSetupSelector 1.0 PrintSetupSelector.qml ActionButton 1.0 ActionButton.qml MaterialMenu 1.0 MaterialMenu.qml -NozzleMenu 1.0 NozzleMenu.qml \ No newline at end of file +NozzleMenu 1.0 NozzleMenu.qml +ActionPanelWidget 1.0 ActionPanelWidget.qml \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 68ea9b88f8..1820ead338 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -345,7 +345,7 @@ }, "sizes": { - "window_minimum_size": [70, 50], + "window_minimum_size": [106, 85], "main_window_header": [0.0, 4.5], "main_window_header_button": [8, 4], From 7eedbb6b07ca9a14c76aed521f9b304f7e0c283e Mon Sep 17 00:00:00 2001 From: Gordon LaPlante Date: Thu, 25 Oct 2018 13:48:35 -0400 Subject: [PATCH 0069/1039] Updates Per Cura Comments gMax 1.5+ Config, updates per comments --- resources/definitions/gmax15plus.def.json | 20 ++++++++--------- .../definitions/gmax15plus_dual.def.json | 22 +++++++++---------- .../gmax15plus_dual_extruder_0.def.json | 8 +++---- .../gmax15plus_dual_extruder_1.def.json | 8 +++---- .../gmax15plus_global_dual_normal.inst.cfg | 1 - .../gmax15plus_global_dual_thick.inst.cfg | 1 - .../gmax15plus_global_dual_thin.inst.cfg | 1 - ...gmax15plus_global_dual_very_thick.inst.cfg | 1 - .../variants/gmax15plus_025_e3d.inst.cfg | 13 +++++++++++ .../variants/gmax15plus_dual_025_e3d.inst.cfg | 13 +++++++++++ 10 files changed, 55 insertions(+), 33 deletions(-) create mode 100644 resources/variants/gmax15plus_025_e3d.inst.cfg create mode 100644 resources/variants/gmax15plus_dual_025_e3d.inst.cfg diff --git a/resources/definitions/gmax15plus.def.json b/resources/definitions/gmax15plus.def.json index 3196076420..069b8be999 100644 --- a/resources/definitions/gmax15plus.def.json +++ b/resources/definitions/gmax15plus.def.json @@ -10,20 +10,20 @@ "category": "Other", "file_formats": "text/x-gcode", "platform": "gmax_1-5_xt-plus_s3d_full model_150707.stl", - "has_machine_quality": true, + "has_machine_quality": true, "has_variants": true, - "variants_name": "Hotend", - "preferred_variant_name": "*0.5mm E3D (Default)*", - "preferred_quality_type": "gmax15plus_global_normal", - "machine_extruder_trains": { + "variants_name": "Hotend", + "preferred_variant_name": "0.5mm E3D (Default)", + "preferred_quality_type": "gmax15plus_global_normal", + "machine_extruder_trains": { "0": "gmax15plus_extruder_0" } - + }, "overrides": { - "machine_extruder_count": { "default_value": 1 }, + "machine_extruder_count": { "default_value": 1 }, "machine_name": { "default_value": "gMax 1.5 Plus" }, "machine_heated_bed": { "default_value": false }, "machine_width": { "default_value": 406 }, @@ -48,10 +48,10 @@ "machine_max_jerk_z": { "default_value": 0.4 }, "machine_max_jerk_e": { "default_value": 5.0 }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home X/Y/Z\nM104 S{material_print_temperature} ; Preheat\nM109 S{material_print_temperature} ; Preheat\nG91 ;relative positioning\nG90 ;absolute positioning\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, + "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home X/Y/Z\nM104 S{material_print_temperature} ; Preheat\nM109 S{material_print_temperature} ; Preheat\nG91 ;relative positioning\nG90 ;absolute positioning\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, "machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" }, - "material_print_temperature": { "default_value": 202 }, - "wall_thickness": { "default_value": 1 }, + "material_print_temperature": { "default_value": 202 }, + "wall_thickness": { "default_value": 1 }, "top_bottom_thickness": { "default_value": 1 }, "bottom_thickness": { "default_value": 1 } } diff --git a/resources/definitions/gmax15plus_dual.def.json b/resources/definitions/gmax15plus_dual.def.json index 634ce2b3b8..0264ef5977 100644 --- a/resources/definitions/gmax15plus_dual.def.json +++ b/resources/definitions/gmax15plus_dual.def.json @@ -10,19 +10,19 @@ "category": "Other", "file_formats": "text/x-gcode", "platform": "gmax_1-5_xt-plus_s3d_full model_150707.stl", - "has_variants": true, - "variants_name": "Hotend", - "preferred_variant_name": "*0.5mm E3D (Default)*", - "preferred_quality_type": "gmax15plus_global_dual_normal", - "machine_extruder_trains": { - "0": "gmax15plus_dual_extruder_0", - "1": "gmax15plus_dual_extruder_1" - } + "has_variants": true, + "variants_name": "Hotend", + "preferred_variant_name": "0.5mm E3D (Default)", + "preferred_quality_type": "gmax15plus_global_dual_normal", + "machine_extruder_trains": { + "0": "gmax15plus_dual_extruder_0", + "1": "gmax15plus_dual_extruder_1" + } }, "overrides": { "machine_name": { "default_value": "gMax 1.5 Plus Dual Extruder" }, - "machine_extruder_count": { "default_value": 2 }, + "machine_extruder_count": { "default_value": 2 }, "machine_heated_bed": { "default_value": false }, "machine_width": { "default_value": 406 }, "machine_depth": { "default_value": 406 }, @@ -48,8 +48,8 @@ "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home X/Y/Z\nM104 S{material_print_temperature} T0 ; Preheat Left Extruder\nM104 S{material_print_temperature} T1 ; Preheat Right Extruder\nM109 S{material_print_temperature} T0 ; Preheat Left Extruder\nM109 S{material_print_temperature} T1 ; Preheat Right Extruder\nG91 ;relative positioning\nG90 ;absolute positioning\nM218 T1 X34.3 Y0; Set 2nd extruder offset. This can be changed later if needed\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." }, "machine_end_gcode": { "default_value": "M104 S0 T0;Left extruder off\nM104 S0 T1; Right extruder off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" }, - "material_print_temperature": { "default_value": 202 }, - "wall_thickness": { "default_value": 1 }, + "material_print_temperature": { "default_value": 202 }, + "wall_thickness": { "default_value": 1 }, "top_bottom_thickness": { "default_value": 1 }, "bottom_thickness": { "default_value": 1 } } diff --git a/resources/extruders/gmax15plus_dual_extruder_0.def.json b/resources/extruders/gmax15plus_dual_extruder_0.def.json index 524fa72f9f..d3146a0576 100644 --- a/resources/extruders/gmax15plus_dual_extruder_0.def.json +++ b/resources/extruders/gmax15plus_dual_extruder_0.def.json @@ -15,10 +15,10 @@ }, "machine_nozzle_offset_x": { "default_value": 0.0 }, "machine_nozzle_offset_y": { "default_value": 0.0 }, - "machine_nozzle_size": { "default_value": 0.5 }, - "material_diameter": { "default_value": 1.75 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_nozzle_size": { "default_value": 0.5 }, + "material_diameter": { "default_value": 1.75 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, "machine_extruder_start_pos_x": { "value": 40 }, "machine_extruder_start_pos_y": { "value": 210 }, "machine_extruder_end_pos_abs": { "default_value": true }, diff --git a/resources/extruders/gmax15plus_dual_extruder_1.def.json b/resources/extruders/gmax15plus_dual_extruder_1.def.json index 1b9f7bda5f..7b7354d794 100644 --- a/resources/extruders/gmax15plus_dual_extruder_1.def.json +++ b/resources/extruders/gmax15plus_dual_extruder_1.def.json @@ -15,10 +15,10 @@ }, "machine_nozzle_offset_x": { "default_value": 0.0 }, "machine_nozzle_offset_y": { "default_value": 0.0 }, - "machine_nozzle_size": { "default_value": 0.5 }, - "material_diameter": { "default_value": 1.75 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_nozzle_size": { "default_value": 0.5 }, + "material_diameter": { "default_value": 1.75 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, "machine_extruder_start_pos_x": { "value": 40 }, "machine_extruder_start_pos_y": { "value": 210 }, "machine_extruder_end_pos_abs": { "default_value": true }, diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg index 5dea12d308..743311bb54 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg @@ -65,7 +65,6 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg index de374e3a9f..94a15bfa2b 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg @@ -65,7 +65,6 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg index f36ed38c00..534f646205 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg @@ -65,7 +65,6 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg index 2ce55450dd..a35e951c32 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg @@ -64,7 +64,6 @@ ooze_shield_enabled = True prime_tower_enable = False prime_tower_position_x = 350 prime_tower_position_y = 350 -prime_tower_wall_thickness = 2 switch_extruder_retraction_amount = 6 switch_extruder_retraction_speeds = 60 diff --git a/resources/variants/gmax15plus_025_e3d.inst.cfg b/resources/variants/gmax15plus_025_e3d.inst.cfg new file mode 100644 index 0000000000..f106b13be1 --- /dev/null +++ b/resources/variants/gmax15plus_025_e3d.inst.cfg @@ -0,0 +1,13 @@ +[general] +name = 0.25mm E3D (Difficult) +version = 2 +definition = gmax15plus + +[metadata] +author = gcreate +setting_version = 5 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.25 diff --git a/resources/variants/gmax15plus_dual_025_e3d.inst.cfg b/resources/variants/gmax15plus_dual_025_e3d.inst.cfg new file mode 100644 index 0000000000..d5f6457902 --- /dev/null +++ b/resources/variants/gmax15plus_dual_025_e3d.inst.cfg @@ -0,0 +1,13 @@ +[general] +name = 0.25mm E3D (Difficult) +version = 2 +definition = gmax15plus_dual + +[metadata] +author = gcreate +setting_version = 5 +type = variant +hardware_type = nozzle + +[values] +machine_nozzle_size = 0.25 From a8531a335dda730bc07b71620f1123d73b1c939e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 26 Oct 2018 09:52:02 +0200 Subject: [PATCH 0070/1039] Fix the alignments for the sliders in the simulation view. Contributes to CURA-5772. --- plugins/SimulationView/LayerSlider.qml | 6 ++--- plugins/SimulationView/SimulationView.qml | 29 ++++++++++++++--------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/plugins/SimulationView/LayerSlider.qml b/plugins/SimulationView/LayerSlider.qml index 1552506969..c30ea621c4 100644 --- a/plugins/SimulationView/LayerSlider.qml +++ b/plugins/SimulationView/LayerSlider.qml @@ -167,7 +167,7 @@ Item id: rangleHandleLabel height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height - x: parent.x - width - UM.Theme.getSize("default_margin").width + x: parent.x + parent.width + UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter target: Qt.point(sliderRoot.width, y + height / 2) visible: sliderRoot.activeHandle == parent @@ -275,7 +275,7 @@ Item id: upperHandleLabel height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height - x: parent.x - width - UM.Theme.getSize("default_margin").width + x: parent.x + parent.width + UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter target: Qt.point(sliderRoot.width, y + height / 2) visible: sliderRoot.activeHandle == parent @@ -385,7 +385,7 @@ Item id: lowerHandleLabel height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height - x: parent.x - width - UM.Theme.getSize("default_margin").width + x: parent.x + parent.width + UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter target: Qt.point(sliderRoot.width, y + height / 2) visible: sliderRoot.activeHandle == parent diff --git a/plugins/SimulationView/SimulationView.qml b/plugins/SimulationView/SimulationView.qml index be124157fb..7a83a07ac1 100644 --- a/plugins/SimulationView/SimulationView.qml +++ b/plugins/SimulationView/SimulationView.qml @@ -588,13 +588,14 @@ Item id: slidersBox width: parent.width + height: parent.height visible: UM.SimulationView.layerActivity && CuraApplication.platformActivity anchors { - top: parent.bottom - topMargin: UM.Theme.getSize("slider_layerview_margin").height - left: parent.left + top: parent.top + leftMargin: UM.Theme.getSize("slider_layerview_margin").height + left: parent.right } PathSlider @@ -602,9 +603,13 @@ Item id: pathSlider height: UM.Theme.getSize("slider_handle").width - anchors.left: playButton.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.right: parent.right + anchors + { + verticalCenter: playButton.verticalCenter + left: playButton.right + leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right + } visible: !UM.SimulationView.compatibilityMode // custom properties @@ -650,10 +655,11 @@ Item anchors { - top: !UM.SimulationView.compatibilityMode ? pathSlider.bottom : parent.top - topMargin: !UM.SimulationView.compatibilityMode ? UM.Theme.getSize("default_margin").height : 0 - right: parent.right - rightMargin: UM.Theme.getSize("slider_layerview_margin").width + bottom: !UM.SimulationView.compatibilityMode ? pathSlider.top : parent.bottom + top: parent.top + bottomMargin: !UM.SimulationView.compatibilityMode ? UM.Theme.getSize("default_margin").height : 0 + left: parent.left + leftMargin: Math.round(UM.Theme.getSize("slider_layerview_margin").width / 2) } // custom properties @@ -704,7 +710,8 @@ Item visible: !UM.SimulationView.compatibilityMode anchors { - verticalCenter: pathSlider.verticalCenter + left: parent.left + bottom: parent.bottom } property var status: 0 // indicates if it's stopped (0) or playing (1) From 54518bdc82221950ed63d1e7bde2e4dbf26b47cf Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 26 Oct 2018 11:14:39 +0200 Subject: [PATCH 0071/1039] Change the minimum window size to be 1280x800. Contributes to CURA-5784. --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 1820ead338..6a83c2c566 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -345,7 +345,7 @@ }, "sizes": { - "window_minimum_size": [106, 85], + "window_minimum_size": [106, 66], "main_window_header": [0.0, 4.5], "main_window_header_button": [8, 4], From a277bd9f3b8ee3383be53e805e47058b49a7d3f9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 26 Oct 2018 11:29:05 +0200 Subject: [PATCH 0072/1039] Don't use the hand cursor in the action buttons by default. Contributes to CURA-5784. --- resources/qml/Account/AccountWidget.qml | 21 +++++---------------- resources/qml/ActionButton.qml | 1 - 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index eb58d66773..46092e4153 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -16,30 +16,19 @@ Button implicitHeight: UM.Theme.getSize("main_window_header").height implicitWidth: UM.Theme.getSize("main_window_header").height - AvatarImage + background: AvatarImage { id: avatar - width: Math.round(0.8 * parent.width) - height: Math.round(0.8 * parent.height) - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter + width: Math.round(0.8 * accountWidget.width) + height: Math.round(0.8 * accountWidget.height) + anchors.verticalCenter: accountWidget.verticalCenter + anchors.horizontalCenter: accountWidget.horizontalCenter source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user") outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") } - MouseArea - { - id: mouseArea - anchors.fill: parent - onPressed: mouse.accepted = false - hoverEnabled: true - cursorShape: accountWidget.enabled ? (hovered ? Qt.PointingHandCursor : Qt.ArrowCursor) : Qt.ForbiddenCursor - } - - background: Item {} - onClicked: popup.opened ? popup.close() : popup.open() Popup diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index a8ad94474e..a1c03af143 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -68,6 +68,5 @@ Button anchors.fill: parent onPressed: mouse.accepted = false hoverEnabled: true - cursorShape: button.enabled ? (hovered ? Qt.PointingHandCursor : Qt.ArrowCursor) : Qt.ForbiddenCursor } } From 2cbaece3e1472639c29a5b2d7f193b62eabcadf9 Mon Sep 17 00:00:00 2001 From: pinchies <> Date: Fri, 26 Oct 2018 22:21:01 +1100 Subject: [PATCH 0073/1039] Add JGAurora Z-603S Add a preset for the JGAurora Z-603S to model list --- .../definitions/jgaurora_z_603s.def.json | 96 +++++++++++++++++++ .../jgaurora_z_603s_extruder_0.def.json | 16 ++++ 2 files changed, 112 insertions(+) create mode 100644 resources/definitions/jgaurora_z_603s.def.json create mode 100644 resources/extruders/jgaurora_z_603s_extruder_0.def.json diff --git a/resources/definitions/jgaurora_z_603s.def.json b/resources/definitions/jgaurora_z_603s.def.json new file mode 100644 index 0000000000..af7fa823db --- /dev/null +++ b/resources/definitions/jgaurora_z_603s.def.json @@ -0,0 +1,96 @@ +{ + "name": "JGAurora Z-603S", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Samuel Pinches", + "manufacturer": "JGAurora", + "file_formats": "text/x-gcode", + "preferred_quality_type": "fine", + "machine_extruder_trains": + { + "0": "jgaurora_z_603s_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "JGAurora Z-603S" + }, + "machine_start_gcode": { + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + }, + "machine_end_gcode": { + "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" + }, + "machine_width": { + "default_value": 280 + }, + "machine_height": { + "default_value": 175 + }, + "machine_depth": { + "default_value": 180 + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "default_value": 10 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "material_diameter": { + "default_value": 1.75 + }, + "material_print_temperature": { + "default_value": 210 + }, + "material_bed_temperature": { + "default_value": 55 + }, + "layer_height": { + "default_value": 0.15 + }, + "layer_height_0": { + "default_value": 0.2 + }, + "wall_thickness": { + "default_value": 1.2 + }, + "speed_print": { + "default_value": 60 + }, + "speed_infill": { + "default_value": 60 + }, + "speed_wall": { + "default_value": 30 + }, + "speed_topbottom": { + "default_value": 45 + }, + "speed_travel": { + "default_value": 125 + }, + "speed_layer_0": { + "default_value": 20 + }, + "support_enable": { + "default_value": true + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 5 + }, + "retraction_speed": { + "default_value": 50 + } + } +} \ No newline at end of file diff --git a/resources/extruders/jgaurora_z_603s_extruder_0.def.json b/resources/extruders/jgaurora_z_603s_extruder_0.def.json new file mode 100644 index 0000000000..987425b28a --- /dev/null +++ b/resources/extruders/jgaurora_z_603s_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "id": "jgaurora_z_603s_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "jgaurora_z_603s", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From bc5f92b69b096234512fa8e9ad0f3a0d63c7dd71 Mon Sep 17 00:00:00 2001 From: pinchies <> Date: Fri, 26 Oct 2018 22:24:04 +1100 Subject: [PATCH 0074/1039] Add JGAurora A1 Add a preset for the JGAurora A1 to model list --- resources/definitions/jgaurora_a1.def.json | 96 +++++++++++++++++++ .../extruders/jgaurora_a1_extruder_0.def.json | 16 ++++ 2 files changed, 112 insertions(+) create mode 100644 resources/definitions/jgaurora_a1.def.json create mode 100644 resources/extruders/jgaurora_a1_extruder_0.def.json diff --git a/resources/definitions/jgaurora_a1.def.json b/resources/definitions/jgaurora_a1.def.json new file mode 100644 index 0000000000..004fd8741d --- /dev/null +++ b/resources/definitions/jgaurora_a1.def.json @@ -0,0 +1,96 @@ +{ + "name": "JGAurora A1", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Samuel Pinches", + "manufacturer": "JGAurora", + "file_formats": "text/x-gcode", + "preferred_quality_type": "fine", + "machine_extruder_trains": + { + "0": "jgaurora_a1_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "JGAurora A1" + }, + "machine_start_gcode": { + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + }, + "machine_end_gcode": { + "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" + }, + "machine_width": { + "default_value": 300 + }, + "machine_height": { + "default_value": 300 + }, + "machine_depth": { + "default_value": 300 + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "default_value": 10 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "material_diameter": { + "default_value": 1.75 + }, + "material_print_temperature": { + "default_value": 215 + }, + "material_bed_temperature": { + "default_value": 67 + }, + "layer_height": { + "default_value": 0.15 + }, + "layer_height_0": { + "default_value": 0.12 + }, + "wall_thickness": { + "default_value": 1.2 + }, + "speed_print": { + "default_value": 40 + }, + "speed_infill": { + "default_value": 40 + }, + "speed_wall": { + "default_value": 35 + }, + "speed_topbottom": { + "default_value": 35 + }, + "speed_travel": { + "default_value": 120 + }, + "speed_layer_0": { + "default_value": 12 + }, + "support_enable": { + "default_value": true + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 6 + }, + "retraction_speed": { + "default_value": 40 + } + } +} \ No newline at end of file diff --git a/resources/extruders/jgaurora_a1_extruder_0.def.json b/resources/extruders/jgaurora_a1_extruder_0.def.json new file mode 100644 index 0000000000..71742b734a --- /dev/null +++ b/resources/extruders/jgaurora_a1_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "id": "jgaurora_a1_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "jgaurora_a1", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From 5d4aa569a9d6505736944b2f5ccfdb2548d29ba7 Mon Sep 17 00:00:00 2001 From: pinchies <> Date: Fri, 26 Oct 2018 22:34:15 +1100 Subject: [PATCH 0075/1039] Revert "Add JGAurora A1" This reverts commit bc5f92b69b096234512fa8e9ad0f3a0d63c7dd71. --- resources/definitions/jgaurora_a1.def.json | 96 ------------------- .../extruders/jgaurora_a1_extruder_0.def.json | 16 ---- 2 files changed, 112 deletions(-) delete mode 100644 resources/definitions/jgaurora_a1.def.json delete mode 100644 resources/extruders/jgaurora_a1_extruder_0.def.json diff --git a/resources/definitions/jgaurora_a1.def.json b/resources/definitions/jgaurora_a1.def.json deleted file mode 100644 index 004fd8741d..0000000000 --- a/resources/definitions/jgaurora_a1.def.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "JGAurora A1", - "version": 2, - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "Samuel Pinches", - "manufacturer": "JGAurora", - "file_formats": "text/x-gcode", - "preferred_quality_type": "fine", - "machine_extruder_trains": - { - "0": "jgaurora_a1_extruder_0" - } - }, - "overrides": { - "machine_name": { - "default_value": "JGAurora A1" - }, - "machine_start_gcode": { - "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" - }, - "machine_end_gcode": { - "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" - }, - "machine_width": { - "default_value": 300 - }, - "machine_height": { - "default_value": 300 - }, - "machine_depth": { - "default_value": 300 - }, - "machine_heated_bed": { - "default_value": true - }, - "machine_center_is_zero": { - "default_value": false - }, - "gantry_height": { - "default_value": 10 - }, - "machine_gcode_flavor": { - "default_value": "RepRap (Marlin/Sprinter)" - }, - "material_diameter": { - "default_value": 1.75 - }, - "material_print_temperature": { - "default_value": 215 - }, - "material_bed_temperature": { - "default_value": 67 - }, - "layer_height": { - "default_value": 0.15 - }, - "layer_height_0": { - "default_value": 0.12 - }, - "wall_thickness": { - "default_value": 1.2 - }, - "speed_print": { - "default_value": 40 - }, - "speed_infill": { - "default_value": 40 - }, - "speed_wall": { - "default_value": 35 - }, - "speed_topbottom": { - "default_value": 35 - }, - "speed_travel": { - "default_value": 120 - }, - "speed_layer_0": { - "default_value": 12 - }, - "support_enable": { - "default_value": true - }, - "retraction_enable": { - "default_value": true - }, - "retraction_amount": { - "default_value": 6 - }, - "retraction_speed": { - "default_value": 40 - } - } -} \ No newline at end of file diff --git a/resources/extruders/jgaurora_a1_extruder_0.def.json b/resources/extruders/jgaurora_a1_extruder_0.def.json deleted file mode 100644 index 71742b734a..0000000000 --- a/resources/extruders/jgaurora_a1_extruder_0.def.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "id": "jgaurora_a1_extruder_0", - "version": 2, - "name": "Extruder 1", - "inherits": "fdmextruder", - "metadata": { - "machine": "jgaurora_a1", - "position": "0" - }, - - "overrides": { - "extruder_nr": { "default_value": 0 }, - "machine_nozzle_size": { "default_value": 0.4 }, - "material_diameter": { "default_value": 1.75 } - } -} From 1f97aa3df6f4330be335dc9529eede879636687e Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:37:31 +1100 Subject: [PATCH 0076/1039] Add files via upload --- .../extruders/jgaurora_a5_extruder_0.def.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 resources/extruders/jgaurora_a5_extruder_0.def.json diff --git a/resources/extruders/jgaurora_a5_extruder_0.def.json b/resources/extruders/jgaurora_a5_extruder_0.def.json new file mode 100644 index 0000000000..fbc6ba77e6 --- /dev/null +++ b/resources/extruders/jgaurora_a5_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "id": "jgaurora_a5_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "jgaurora_a5", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From f0277f5ef381a958e2559ffb7fbbcf33818cfb37 Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:38:30 +1100 Subject: [PATCH 0077/1039] Add files via upload --- resources/definitions/jgaurora_a5.def.json | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 resources/definitions/jgaurora_a5.def.json diff --git a/resources/definitions/jgaurora_a5.def.json b/resources/definitions/jgaurora_a5.def.json new file mode 100644 index 0000000000..6143ef1523 --- /dev/null +++ b/resources/definitions/jgaurora_a5.def.json @@ -0,0 +1,98 @@ +{ + "name": "JGAurora A5", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Samuel Pinches", + "manufacturer": "JGAurora", + "file_formats": "text/x-gcode", + "platform": "jgaurora_a5.stl", + "platform_offset": [-242, -101, 273], + "preferred_quality_type": "fine", + "machine_extruder_trains": + { + "0": "jgaurora_a5_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "JGAurora A5" + }, + "machine_start_gcode": { + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + }, + "machine_end_gcode": { + "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" + }, + "machine_width": { + "default_value": 300 + }, + "machine_height": { + "default_value": 320 + }, + "machine_depth": { + "default_value": 300 + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "default_value": 10 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "material_diameter": { + "default_value": 1.75 + }, + "material_print_temperature": { + "default_value": 215 + }, + "material_bed_temperature": { + "default_value": 67 + }, + "layer_height": { + "default_value": 0.15 + }, + "layer_height_0": { + "default_value": 0.12 + }, + "wall_thickness": { + "default_value": 1.2 + }, + "speed_print": { + "default_value": 40 + }, + "speed_infill": { + "default_value": 40 + }, + "speed_wall": { + "default_value": 35 + }, + "speed_topbottom": { + "default_value": 35 + }, + "speed_travel": { + "default_value": 120 + }, + "speed_layer_0": { + "default_value": 12 + }, + "support_enable": { + "default_value": true + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 8 + }, + "retraction_speed": { + "default_value": 45 + } + } +} \ No newline at end of file From 494bedbe0d1f446c137d7705d5d66bec926760ee Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:40:27 +1100 Subject: [PATCH 0078/1039] Add files via upload --- resources/meshes/jgaurora_a5.stl | Bin 0 -> 1000084 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/meshes/jgaurora_a5.stl diff --git a/resources/meshes/jgaurora_a5.stl b/resources/meshes/jgaurora_a5.stl new file mode 100644 index 0000000000000000000000000000000000000000..c525b036492db15e0c2c206859e54bbf20ba5301 GIT binary patch literal 1000084 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�nAJsXQuBI;Oc_GdhnxoxS7dXRN+0{t99L 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 Spr#su3KHsGOTXJo$o~KVh0fLh literal 0 HcmV?d00001 From c8269ee4c081f312c8611222fedca71952ea7ad9 Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:42:27 +1100 Subject: [PATCH 0079/1039] Add files via upload --- .../extruders/jgaurora_a1_extruder_0.def.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 resources/extruders/jgaurora_a1_extruder_0.def.json diff --git a/resources/extruders/jgaurora_a1_extruder_0.def.json b/resources/extruders/jgaurora_a1_extruder_0.def.json new file mode 100644 index 0000000000..71742b734a --- /dev/null +++ b/resources/extruders/jgaurora_a1_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "id": "jgaurora_a1_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "jgaurora_a1", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From adee0fa260b861c06f174a99ea0aba1b54b26a8b Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:42:49 +1100 Subject: [PATCH 0080/1039] Add files via upload --- resources/definitions/jgaurora_a1.def.json | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 resources/definitions/jgaurora_a1.def.json diff --git a/resources/definitions/jgaurora_a1.def.json b/resources/definitions/jgaurora_a1.def.json new file mode 100644 index 0000000000..004fd8741d --- /dev/null +++ b/resources/definitions/jgaurora_a1.def.json @@ -0,0 +1,96 @@ +{ + "name": "JGAurora A1", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Samuel Pinches", + "manufacturer": "JGAurora", + "file_formats": "text/x-gcode", + "preferred_quality_type": "fine", + "machine_extruder_trains": + { + "0": "jgaurora_a1_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "JGAurora A1" + }, + "machine_start_gcode": { + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + }, + "machine_end_gcode": { + "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" + }, + "machine_width": { + "default_value": 300 + }, + "machine_height": { + "default_value": 300 + }, + "machine_depth": { + "default_value": 300 + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "default_value": 10 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "material_diameter": { + "default_value": 1.75 + }, + "material_print_temperature": { + "default_value": 215 + }, + "material_bed_temperature": { + "default_value": 67 + }, + "layer_height": { + "default_value": 0.15 + }, + "layer_height_0": { + "default_value": 0.12 + }, + "wall_thickness": { + "default_value": 1.2 + }, + "speed_print": { + "default_value": 40 + }, + "speed_infill": { + "default_value": 40 + }, + "speed_wall": { + "default_value": 35 + }, + "speed_topbottom": { + "default_value": 35 + }, + "speed_travel": { + "default_value": 120 + }, + "speed_layer_0": { + "default_value": 12 + }, + "support_enable": { + "default_value": true + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 6 + }, + "retraction_speed": { + "default_value": 40 + } + } +} \ No newline at end of file From 79ef3635a56ad76ac77816f98d1216b999c33d62 Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:45:32 +1100 Subject: [PATCH 0081/1039] Add files via upload --- resources/extruders/alfawise_u20.def.json | 96 +++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 resources/extruders/alfawise_u20.def.json diff --git a/resources/extruders/alfawise_u20.def.json b/resources/extruders/alfawise_u20.def.json new file mode 100644 index 0000000000..f6dccce3ee --- /dev/null +++ b/resources/extruders/alfawise_u20.def.json @@ -0,0 +1,96 @@ +{ + "name": "Alfawise U20", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Samuel Pinches", + "manufacturer": "Alfawise", + "file_formats": "text/x-gcode", + "preferred_quality_type": "fine", + "machine_extruder_trains": + { + "0": "alfawise_u20_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "Alfawise U20" + }, + "machine_start_gcode": { + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + }, + "machine_end_gcode": { + "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" + }, + "machine_width": { + "default_value": 300 + }, + "machine_height": { + "default_value": 400 + }, + "machine_depth": { + "default_value": 300 + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "default_value": 10 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "material_diameter": { + "default_value": 1.75 + }, + "material_print_temperature": { + "default_value": 210 + }, + "material_bed_temperature": { + "default_value": 50 + }, + "layer_height": { + "default_value": 0.15 + }, + "layer_height_0": { + "default_value": 0.2 + }, + "wall_thickness": { + "default_value": 1.2 + }, + "speed_print": { + "default_value": 40 + }, + "speed_infill": { + "default_value": 40 + }, + "speed_wall": { + "default_value": 35 + }, + "speed_topbottom": { + "default_value": 35 + }, + "speed_travel": { + "default_value": 120 + }, + "speed_layer_0": { + "default_value": 20 + }, + "support_enable": { + "default_value": true + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 5 + }, + "retraction_speed": { + "default_value": 45 + } + } +} \ No newline at end of file From 03532969c6c17883750f3bafb76e0e82f319cfbd Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:46:39 +1100 Subject: [PATCH 0082/1039] Add files via upload --- resources/definitions/alfawise_u20.def.json | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 resources/definitions/alfawise_u20.def.json diff --git a/resources/definitions/alfawise_u20.def.json b/resources/definitions/alfawise_u20.def.json new file mode 100644 index 0000000000..f6dccce3ee --- /dev/null +++ b/resources/definitions/alfawise_u20.def.json @@ -0,0 +1,96 @@ +{ + "name": "Alfawise U20", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Samuel Pinches", + "manufacturer": "Alfawise", + "file_formats": "text/x-gcode", + "preferred_quality_type": "fine", + "machine_extruder_trains": + { + "0": "alfawise_u20_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "Alfawise U20" + }, + "machine_start_gcode": { + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + }, + "machine_end_gcode": { + "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" + }, + "machine_width": { + "default_value": 300 + }, + "machine_height": { + "default_value": 400 + }, + "machine_depth": { + "default_value": 300 + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "default_value": 10 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "material_diameter": { + "default_value": 1.75 + }, + "material_print_temperature": { + "default_value": 210 + }, + "material_bed_temperature": { + "default_value": 50 + }, + "layer_height": { + "default_value": 0.15 + }, + "layer_height_0": { + "default_value": 0.2 + }, + "wall_thickness": { + "default_value": 1.2 + }, + "speed_print": { + "default_value": 40 + }, + "speed_infill": { + "default_value": 40 + }, + "speed_wall": { + "default_value": 35 + }, + "speed_topbottom": { + "default_value": 35 + }, + "speed_travel": { + "default_value": 120 + }, + "speed_layer_0": { + "default_value": 20 + }, + "support_enable": { + "default_value": true + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 5 + }, + "retraction_speed": { + "default_value": 45 + } + } +} \ No newline at end of file From 135ad6d7054a84591a635ee4c4c21945dfac44be Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:53:59 +1100 Subject: [PATCH 0083/1039] Add files via upload --- .../cocoon_create_modelmaker_extruder_0.def.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 resources/extruders/cocoon_create_modelmaker_extruder_0.def.json diff --git a/resources/extruders/cocoon_create_modelmaker_extruder_0.def.json b/resources/extruders/cocoon_create_modelmaker_extruder_0.def.json new file mode 100644 index 0000000000..26d847483d --- /dev/null +++ b/resources/extruders/cocoon_create_modelmaker_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "id": "cocoon_create_modelmaker_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "cocoon_create_modelmaker", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} From 49ac4233839e80423767ce13883cd3f9ba7a0cc5 Mon Sep 17 00:00:00 2001 From: pinchies Date: Fri, 26 Oct 2018 23:54:29 +1100 Subject: [PATCH 0084/1039] Add files via upload --- .../cocoon_create_modelmaker.def.json | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 resources/definitions/cocoon_create_modelmaker.def.json diff --git a/resources/definitions/cocoon_create_modelmaker.def.json b/resources/definitions/cocoon_create_modelmaker.def.json new file mode 100644 index 0000000000..f752a08fc7 --- /dev/null +++ b/resources/definitions/cocoon_create_modelmaker.def.json @@ -0,0 +1,96 @@ +{ + "name": "Cocoon Create ModelMaker", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Samuel Pinches", + "manufacturer": "Cocoon Create", + "file_formats": "text/x-gcode", + "preferred_quality_type": "fine", + "machine_extruder_trains": + { + "0": "cocoon_create_modelmaker_extruder_0" + } + }, + "overrides": { + "machine_name": { + "default_value": "Cocoon Create ModelMaker" + }, + "machine_start_gcode": { + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + }, + "machine_end_gcode": { + "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 Y0 ;move to the XY-axis origin (Home)\nM84 ;turn off stepper motors\n; -- end of END GCODE --" + }, + "machine_width": { + "default_value": 120 + }, + "machine_height": { + "default_value": 100 + }, + "machine_depth": { + "default_value": 135 + }, + "machine_heated_bed": { + "default_value": false + }, + "machine_center_is_zero": { + "default_value": false + }, + "gantry_height": { + "default_value": 10 + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "material_diameter": { + "default_value": 1.75 + }, + "material_print_temperature": { + "default_value": 220 + }, + "layer_height": { + "default_value": 0.15 + }, + "layer_height_0": { + "default_value": 0.2 + }, + "wall_thickness": { + "default_value": 1.2 + }, + "top_bottom_thickness": { + "default_value": 0.6 + }, + "speed_print": { + "default_value": 40 + }, + "speed_infill": { + "default_value": 40 + }, + "speed_wall": { + "default_value": 35 + }, + "speed_topbottom": { + "default_value": 35 + }, + "speed_travel": { + "default_value": 70 + }, + "speed_layer_0": { + "default_value": 20 + }, + "support_enable": { + "default_value": true + }, + "retraction_enable": { + "default_value": true + }, + "retraction_amount": { + "default_value": 7 + }, + "retraction_speed": { + "default_value": 40 + } + } +} \ No newline at end of file From 3eb71021e24b7af44626e5b4ffe1a91915f88072 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 26 Oct 2018 15:53:20 +0200 Subject: [PATCH 0085/1039] Change the way the string for the tooltip is formatted. Contributes to CURA-5772. --- resources/qml/PrintSetupSelector.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index e5a29dffad..e4cb852d89 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -220,11 +220,11 @@ Rectangle { modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), - tooltipText: catalog.i18nc("@tooltip", "Recommended Print Setup

Print with the recommended settings for the selected printer, material and quality.") + tooltipText: "%1

%2".arg(catalog.i18nc("@tooltip:title", "Recommended Print Setup")).arg(catalog.i18nc("@tooltip", "Print with the recommended settings for the selected printer, material and quality.")) }) modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), - tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup

Print with finegrained control over every last bit of the slicing process.") + tooltipText: "%1

%2".arg(catalog.i18nc("@tooltip:title", "Custom Print Setup")).arg(catalog.i18nc("@tooltip", "Print with finegrained control over every last bit of the slicing process.")) }) var index = Math.round(UM.Preferences.getValue("cura/active_mode")) From 5a5adb71cd159c2e7b7204aa40b42472db4d9995 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 26 Oct 2018 16:16:33 +0200 Subject: [PATCH 0086/1039] Make the height of the Print setup selector themable. Contributes to CURA-5772. --- plugins/PrepareStage/PrepareMenu.qml | 4 ++-- resources/qml/PrintSetupSelector.qml | 2 +- resources/themes/cura-light/theme.json | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index f08de9d317..27d068e909 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -61,12 +61,12 @@ Item Cura.CustomConfigurationSelector { - width: UM.Theme.getSize("sidebar").width + width: UM.Theme.getSize("configuration_selector_widget").width } Cura.PrintSetupSelector { - width: UM.Theme.getSize("sidebar").width + width: UM.Theme.getSize("print_setup_widget").width onShowTooltip: prepareMenu.showTooltip(item, location, text) onHideTooltip: prepareMenu.hideTooltip() } diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index e4cb852d89..d9b2337c96 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -189,7 +189,7 @@ Rectangle anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.left: parent.left anchors.right: parent.right - height: 500 + height: UM.Theme.getSize("print_setup_widget").height // We load both of them at once (instead of using a loader) because the advanced sidebar can take // quite some time to load. So in this case we sacrifice memory for speed. diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 6a83c2c566..38d4f5372f 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -355,6 +355,9 @@ "account_button": [12, 3], + "print_setup_widget": [35.0, 42.0], + "configuration_selector_widget": [35.0, 0.0], + "views_selector": [0.0, 4.0], "default_lining": [0.08, 0.08], From c8bdf7321c4a888025001064f11c852097404264 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 26 Oct 2018 16:31:03 +0200 Subject: [PATCH 0087/1039] Move the visible check within the component. Contributes to CURA-5772. --- plugins/PrepareStage/PrepareMenu.qml | 4 ---- .../Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 27d068e909..c7f8a3b0f1 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -13,9 +13,6 @@ Item signal showTooltip(Item item, point location, string text) signal hideTooltip() - property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" - property bool printerConnected: Cura.MachineManager.printerConnected - UM.I18nCatalog { id: catalog @@ -53,7 +50,6 @@ Item Cura.QuickConfigurationSelector { id: configSelection - visible: isNetworkPrinter && printerConnected width: visible ? Math.round(UM.Theme.getSize("sidebar").width * 0.15) : 0 panelWidth: Math.round(0.8 * UM.Theme.getSize("sidebar").width) height: prepareMenu.height diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index d7ee2c68ee..740c12d340 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -14,6 +14,9 @@ Item property var connectedDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null property var panelWidth: control.width + // Make this component only visible when it's a network printer and it is connected + visible: Cura.MachineManager.activeMachineNetworkKey != "" && Cura.MachineManager.printerConnected + function switchPopupState() { popup.visible ? popup.close() : popup.open() From 90e8a05aab63d5d16a2431571f6e9b6791ccd192 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 26 Oct 2018 17:51:28 +0200 Subject: [PATCH 0088/1039] Remove all the entries in the theme that make reference to the sidebar, because there is no sidebar anymore. Several different margins and linings were created depending on the side, not depending on where it belongs. Contributes to CURA-5784. --- .../PostProcessingPlugin.qml | 2 +- plugins/PrepareStage/PrepareMenu.qml | 6 +- plugins/Toolbox/resources/qml/Toolbox.qml | 2 +- .../qml/ToolboxCompatibilityChart.qml | 2 +- .../resources/qml/ToolboxTabButton.qml | 4 +- resources/qml/ActionPanelWidget.qml | 14 ++-- resources/qml/Cura.qml | 7 +- resources/qml/CustomConfigurationSelector.qml | 22 +++--- resources/qml/MachineSelector.qml | 12 +-- .../ConfigurationMenu/ConfigurationItem.qml | 4 +- .../Menus/ConfigurationMenu/SyncButton.qml | 6 +- resources/qml/MonitorButton.qml | 16 ++-- resources/qml/MonitorSidebar.qml | 18 ++--- resources/qml/PrintMonitor.qml | 12 +-- resources/qml/PrintSetupSelector.qml | 10 +-- resources/qml/PrinterOutput/ExtruderBox.qml | 2 +- resources/qml/PrinterOutput/HeatedBedBox.qml | 4 +- resources/qml/SaveButton.qml | 24 +++--- resources/qml/Settings/SettingCategory.qml | 4 +- resources/qml/Settings/SettingItem.qml | 6 +- resources/qml/Settings/SettingView.qml | 26 +++---- resources/qml/SidebarSimple.qml | 78 +++++++++---------- resources/themes/cura-dark/theme.json | 17 ++-- resources/themes/cura-light/styles.qml | 8 +- resources/themes/cura-light/theme.json | 51 ++++++------ 25 files changed, 174 insertions(+), 183 deletions(-) diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index 10cc4cc082..bd4d361d35 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -260,7 +260,7 @@ UM.Dialog Rectangle { - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") anchors.left: activeScripts.right anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: parent.right diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index c7f8a3b0f1..cdcc1384a2 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -43,15 +43,15 @@ Item Cura.MachineSelector { id: machineSelection - width: Math.round(0.8 * UM.Theme.getSize("sidebar").width) - configSelection.width + width: UM.Theme.getSize("machine_selector_widget").width - configSelection.width height: prepareMenu.height } Cura.QuickConfigurationSelector { id: configSelection - width: visible ? Math.round(UM.Theme.getSize("sidebar").width * 0.15) : 0 - panelWidth: Math.round(0.8 * UM.Theme.getSize("sidebar").width) + width: visible ? UM.Theme.getSize("machine_selector_widget").width * 0.2 : 0 + panelWidth: UM.Theme.getSize("machine_selector_widget").width height: prepareMenu.height } diff --git a/plugins/Toolbox/resources/qml/Toolbox.qml b/plugins/Toolbox/resources/qml/Toolbox.qml index 29b026058c..a5fd2be370 100644 --- a/plugins/Toolbox/resources/qml/Toolbox.qml +++ b/plugins/Toolbox/resources/qml/Toolbox.qml @@ -20,7 +20,7 @@ Window maximumWidth: minimumWidth minimumHeight: height maximumHeight: minimumHeight - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") UM.I18nCatalog { id: catalog diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index 58fea079e9..4d27489d7a 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -54,7 +54,7 @@ Item model: packageData.supported_configs headerDelegate: Rectangle { - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") height: UM.Theme.getSize("toolbox_chart_row").height Label { diff --git a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml index 58149e419a..b671d779f8 100644 --- a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml @@ -19,10 +19,10 @@ Button Rectangle { visible: control.active - color: UM.Theme.getColor("sidebar_header_highlight_hover") + color: UM.Theme.getColor("toolbox_header_highlight_hover") anchors.bottom: parent.bottom width: parent.width - height: UM.Theme.getSize("sidebar_header_highlight").height + height: UM.Theme.getSize("toolbox_header_highlight").height } } label: Label diff --git a/resources/qml/ActionPanelWidget.qml b/resources/qml/ActionPanelWidget.qml index 02ac154178..b5dc7f83c9 100644 --- a/resources/qml/ActionPanelWidget.qml +++ b/resources/qml/ActionPanelWidget.qml @@ -19,16 +19,16 @@ Rectangle signal showTooltip(Item item, point location, string text) signal hideTooltip() - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") // Also add an extra margin, as we want some breathing room around the edges. - height: saveButton.height + UM.Theme.getSize("sidebar_margin").height + height: saveButton.height + UM.Theme.getSize("thick_margin").height Label { id: timeDetails anchors.left: parent.left anchors.bottom: costSpec.top - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width font: UM.Theme.getFont("large") color: UM.Theme.getColor("text_subtext") @@ -62,7 +62,7 @@ Rectangle } } tooltip_html += ""; - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), tooltip_html); + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), tooltip_html); } } onExited: @@ -160,8 +160,8 @@ Rectangle anchors.left: parent.left anchors.bottom: parent.bottom - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.bottomMargin: UM.Theme.getSize("thick_margin").height + anchors.leftMargin: UM.Theme.getSize("thick_margin").width font: UM.Theme.getFont("very_small") renderType: Text.NativeRendering @@ -219,7 +219,7 @@ Rectangle { var show_data = costSpec.getSpecsData() - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), show_data); + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), show_data); } } onExited: diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index c5abb0f107..3e2515cb3e 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -312,9 +312,9 @@ UM.MainWindow { anchors.right: parent.right anchors.bottom: parent.bottom - width: UM.Theme.getSize("sidebar").width - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + width: UM.Theme.getSize("action_panel_widget").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width + anchors.bottomMargin: UM.Theme.getSize("thick_margin").height onShowTooltip: { base.showTooltip(item, location, text) @@ -348,7 +348,6 @@ UM.MainWindow anchors { horizontalCenter: parent.horizontalCenter - horizontalCenterOffset: -(Math.round(UM.Theme.getSize("sidebar").width / 2)) top: parent.verticalCenter bottom: parent.bottom bottomMargin: UM.Theme.getSize("default_margin").height diff --git a/resources/qml/CustomConfigurationSelector.qml b/resources/qml/CustomConfigurationSelector.qml index 9a3f91e6a3..17b652e8d8 100644 --- a/resources/qml/CustomConfigurationSelector.qml +++ b/resources/qml/CustomConfigurationSelector.qml @@ -14,7 +14,7 @@ Rectangle implicitHeight: parent.height id: base - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") // Height has an extra 2x margin for the top & bottom margin. height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width @@ -28,7 +28,7 @@ Rectangle visible: extrudersModel.items.length > 1 property var index: 0 - height: UM.Theme.getSize("sidebar_header_mode_tabs").height + height: UM.Theme.getSize("configuration_selector_mode_tabs").height boundsBehavior: Flickable.StopAtBounds anchors @@ -36,7 +36,7 @@ Rectangle left: parent.left right: parent.right top: parent.top - margins: UM.Theme.getSize("sidebar_margin").width + margins: UM.Theme.getSize("thick_margin").width } ExclusiveGroup { id: extruderMenuGroup } @@ -209,7 +209,7 @@ Rectangle Item { id: materialRow - height: UM.Theme.getSize("sidebar_setup").height + height: UM.Theme.getSize("print_setup_item").height visible: Cura.MachineManager.hasMaterials anchors @@ -217,7 +217,7 @@ Rectangle left: parent.left right: parent.right top: extrudersList.bottom - margins: UM.Theme.getSize("sidebar_margin").width + margins: UM.Theme.getSize("thick_margin").width } Label @@ -246,7 +246,7 @@ Rectangle enabled: !extrudersList.visible || Cura.ExtruderManager.activeExtruderIndex > -1 height: UM.Theme.getSize("setting_control").height - width: Math.round(parent.width * 0.7) + UM.Theme.getSize("sidebar_margin").width + width: Math.round(parent.width * 0.7) + UM.Theme.getSize("thick_margin").width anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; @@ -263,7 +263,7 @@ Rectangle Item { id: variantRow - height: UM.Theme.getSize("sidebar_setup").height + height: UM.Theme.getSize("print_setup_item").height visible: Cura.MachineManager.hasVariants anchors @@ -271,7 +271,7 @@ Rectangle left: parent.left right: parent.right top: materialRow.bottom - margins: UM.Theme.getSize("sidebar_margin").width + margins: UM.Theme.getSize("thick_margin").width } Label @@ -293,7 +293,7 @@ Rectangle visible: Cura.MachineManager.hasVariants height: UM.Theme.getSize("setting_control").height - width: Math.round(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) + width: Math.round(parent.width * 0.7 + UM.Theme.getSize("thick_margin").width) anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; @@ -305,11 +305,11 @@ Rectangle Item { id: materialCompatibilityLink - height: UM.Theme.getSize("sidebar_setup").height + height: UM.Theme.getSize("print_setup_item").height anchors.right: parent.right anchors.top: variantRow.bottom - anchors.margins: UM.Theme.getSize("sidebar_margin").width + anchors.margins: UM.Theme.getSize("thick_margin").width UM.RecolorImage { id: warningImage diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 49fbf16e19..d82211af3a 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -27,13 +27,13 @@ ToolButton color: { if (control.pressed) { - return UM.Theme.getColor("sidebar_header_active"); + return UM.Theme.getColor("machine_selector_active"); } else if (control.hovered) { - return UM.Theme.getColor("sidebar_header_hover"); + return UM.Theme.getColor("machine_selector_hover"); } else { - return UM.Theme.getColor("sidebar_header_bar"); + return UM.Theme.getColor("machine_selector_bar"); } } Behavior on color { ColorAnimation { duration: 50; } } @@ -61,18 +61,18 @@ ToolButton { verticalCenter: parent.verticalCenter left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width + leftMargin: UM.Theme.getSize("thick_margin").width } } Label { id: sidebarComboBoxLabel - color: UM.Theme.getColor("sidebar_header_text_active") + color: UM.Theme.getColor("machine_selector_text_active") text: control.text; elide: Text.ElideRight; anchors.left: printerStatusIcon.visible ? printerStatusIcon.right : parent.left; - anchors.leftMargin: printerStatusIcon.visible ? UM.Theme.getSize("sidebar_lining").width : UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: printerStatusIcon.visible ? UM.Theme.getSize("narrow_margin").width : UM.Theme.getSize("thick_margin").width anchors.right: downArrow.left; anchors.rightMargin: control.rightMargin; anchors.verticalCenter: parent.verticalCenter; diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 37d851a35d..7427b5ddff 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -63,7 +63,7 @@ Rectangle visible: buildplateInformation.visible width: parent.width - 2 * parent.padding - height: visible ? Math.round(UM.Theme.getSize("sidebar_lining_thin").height / 2) : 0 + height: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 color: textColor } @@ -110,7 +110,7 @@ Rectangle parent.border.color = UM.Theme.getColor("configuration_item_border_hover") if (configurationItem.selected == false) { - configurationItem.color = UM.Theme.getColor("sidebar_lining") + configurationItem.color = UM.Theme.getColor("wide_lining") } } onExited: diff --git a/resources/qml/Menus/ConfigurationMenu/SyncButton.qml b/resources/qml/Menus/ConfigurationMenu/SyncButton.qml index 3099d684c1..558ae1e477 100644 --- a/resources/qml/Menus/ConfigurationMenu/SyncButton.qml +++ b/resources/qml/Menus/ConfigurationMenu/SyncButton.qml @@ -42,15 +42,15 @@ Button { if(control.pressed) { - return UM.Theme.getColor("sidebar_header_active"); + return UM.Theme.getColor("machine_selector_active"); } else if(control.hovered) { - return UM.Theme.getColor("sidebar_header_hover"); + return UM.Theme.getColor("machine_selector_hover"); } else { - return UM.Theme.getColor("sidebar_header_bar"); + return UM.Theme.getColor("machine_selector_bar"); } } Behavior on color { ColorAnimation { duration: 50; } } diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index efee50a2b3..eef76bcb09 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -15,7 +15,7 @@ Item id: base; UM.I18nCatalog { id: catalog; name: "cura"} - height: childrenRect.height + UM.Theme.getSize("sidebar_margin").height + height: childrenRect.height + UM.Theme.getSize("thick_margin").height property bool printerConnected: Cura.MachineManager.printerConnected property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands @@ -162,10 +162,10 @@ Item Label { id: statusLabel - width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width + width: parent.width - 2 * UM.Theme.getSize("thick_margin").width anchors.top: parent.top anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width color: base.statusColor font: UM.Theme.getFont("large") @@ -224,12 +224,12 @@ Item property string backgroundColor: UM.Theme.getColor("progressbar_background"); property string controlColor: base.statusColor; - width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width; + width: parent.width - 2 * UM.Theme.getSize("thick_margin").width; height: UM.Theme.getSize("progressbar").height; anchors.top: statusLabel.bottom; - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height / 4); + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 4); anchors.left: parent.left; - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width; + anchors.leftMargin: UM.Theme.getSize("thick_margin").width; } Row @@ -237,9 +237,9 @@ Item id: buttonsRow height: abortButton.height anchors.top: progressBar.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width spacing: UM.Theme.getSize("default_margin").width Row diff --git a/resources/qml/MonitorSidebar.qml b/resources/qml/MonitorSidebar.qml index 179fcafb53..2282034739 100644 --- a/resources/qml/MonitorSidebar.qml +++ b/resources/qml/MonitorSidebar.qml @@ -30,7 +30,7 @@ Rectangle property variant printMaterialCosts: PrintInformation.materialCosts property variant printMaterialNames: PrintInformation.materialNames - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") UM.I18nCatalog { id: catalog; name: "cura"} Timer { @@ -89,7 +89,7 @@ Rectangle { id: machineSelection width: base.width - configSelection.width - separator.width - height: UM.Theme.getSize("sidebar_header").height + height: UM.Theme.getSize("stage_menu").height anchors.top: base.top anchors.left: parent.left } @@ -98,9 +98,9 @@ Rectangle { id: separator visible: configSelection.visible - width: visible ? Math.round(UM.Theme.getSize("sidebar_lining_thin").height / 2) : 0 - height: UM.Theme.getSize("sidebar_header").height - color: UM.Theme.getColor("sidebar_lining_thin") + width: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 + height: UM.Theme.getSize("stage_menu").height + color: UM.Theme.getColor("thick_lining") anchors.left: machineSelection.right } @@ -109,7 +109,7 @@ Rectangle id: configSelection visible: isNetworkPrinter && printerConnected width: visible ? Math.round(base.width * 0.15) : 0 - height: UM.Theme.getSize("sidebar_header").height + height: UM.Theme.getSize("stage_menu").height anchors.top: base.top anchors.right: parent.right panelWidth: base.width @@ -158,10 +158,10 @@ Rectangle { id: footerSeparator width: parent.width - height: UM.Theme.getSize("sidebar_lining").height - color: UM.Theme.getColor("sidebar_lining") + height: UM.Theme.getSize("wide_lining").height + color: UM.Theme.getColor("wide_lining") anchors.bottom: monitorButton.top - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + anchors.bottomMargin: UM.Theme.getSize("thick_margin").height } // MonitorButton is actually the bottom footer panel. diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 12e95d1e89..723279847a 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -31,14 +31,14 @@ Column Rectangle { - color: UM.Theme.getColor("sidebar_lining") + color: UM.Theme.getColor("wide_lining") width: parent.width height: childrenRect.height Flow { id: extrudersGrid - spacing: UM.Theme.getSize("sidebar_lining_thin").width + spacing: UM.Theme.getSize("thick_lining").width width: parent.width Repeater @@ -48,8 +48,8 @@ Column ExtruderBox { - color: UM.Theme.getColor("sidebar") - width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.round(extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2) + color: UM.Theme.getColor("main_background") + width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.round(extrudersGrid.width / 2 - UM.Theme.getSize("thick_lining").width / 2) extruderModel: modelData } } @@ -58,9 +58,9 @@ Column Rectangle { - color: UM.Theme.getColor("sidebar_lining") + color: UM.Theme.getColor("wide_lining") width: parent.width - height: UM.Theme.getSize("sidebar_lining_thin").width + height: UM.Theme.getSize("thick_lining").width } HeatedBedBox diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index d9b2337c96..987e3ecce9 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -25,7 +25,7 @@ Rectangle property variant printMaterialCosts: PrintInformation.materialCosts property variant printMaterialNames: PrintInformation.materialNames - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") UM.I18nCatalog { id: catalog; name: "cura"} // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. @@ -89,7 +89,7 @@ Rectangle { left: parent.left top: parent.top - margins: UM.Theme.getSize("sidebar_margin").width + margins: UM.Theme.getSize("thick_margin").width } width: Math.round(parent.width * 0.45) @@ -105,10 +105,10 @@ Rectangle id: settingsModeSelection model: modesListModel width: Math.round(parent.width * 0.55) - height: UM.Theme.getSize("sidebar_header_mode_toggle").height + height: UM.Theme.getSize("print_setup_mode_toggle").height anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.top: settingsModeLabel.top @@ -186,7 +186,7 @@ Rectangle { id: sidebarContents anchors.top: settingsModeSelection.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height anchors.left: parent.left anchors.right: parent.right height: UM.Theme.getSize("print_setup_widget").height diff --git a/resources/qml/PrinterOutput/ExtruderBox.qml b/resources/qml/PrinterOutput/ExtruderBox.qml index f0abd4cd6c..510a44f9da 100644 --- a/resources/qml/PrinterOutput/ExtruderBox.qml +++ b/resources/qml/PrinterOutput/ExtruderBox.qml @@ -13,7 +13,7 @@ Item property var extruderModel property var position: index implicitWidth: parent.width - implicitHeight: UM.Theme.getSize("sidebar_extruder_box").height + implicitHeight: UM.Theme.getSize("print_setup_extruder_box").height UM.SettingPropertyProvider { diff --git a/resources/qml/PrinterOutput/HeatedBedBox.qml b/resources/qml/PrinterOutput/HeatedBedBox.qml index 9de66ad0be..962ffa9b01 100644 --- a/resources/qml/PrinterOutput/HeatedBedBox.qml +++ b/resources/qml/PrinterOutput/HeatedBedBox.qml @@ -12,12 +12,12 @@ import Cura 1.0 as Cura Item { implicitWidth: parent.width - height: visible ? UM.Theme.getSize("sidebar_extruder_box").height : 0 + height: visible ? UM.Theme.getSize("print_setup_extruder_box").height : 0 property var printerModel Rectangle { - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") anchors.fill: parent Label //Build plate label. diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 5e41dd3007..c2d310e30c 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -68,10 +68,10 @@ Item Label { id: statusLabel - width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width + width: parent.width - 2 * UM.Theme.getSize("thick_margin").width anchors.top: parent.top anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width color: UM.Theme.getColor("text") font: UM.Theme.getFont("default_bold") @@ -81,12 +81,12 @@ Item Rectangle { id: progressBar - width: parent.width - 2 * UM.Theme.getSize("sidebar_margin").width + width: parent.width - 2 * UM.Theme.getSize("thick_margin").width height: UM.Theme.getSize("progressbar").height anchors.top: statusLabel.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height / 4) + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 4) anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width radius: UM.Theme.getSize("progressbar_radius").width color: UM.Theme.getColor("progressbar_background") @@ -133,11 +133,11 @@ Item children_width += child.width + child.anchors.rightMargin; } } - return Math.min(children_width, base.width - UM.Theme.getSize("sidebar_margin").width); + return Math.min(children_width, base.width - UM.Theme.getSize("thick_margin").width); } height: saveToButton.height anchors.bottom: parent.bottom - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + anchors.bottomMargin: UM.Theme.getSize("thick_margin").height anchors.right: parent.right clip: true @@ -198,7 +198,7 @@ Item anchors.top: parent.top anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width // 1 = not started, 4 = error, 5 = disabled text: [1, 4, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@label:Printjob", "Prepare") : catalog.i18nc("@label:Printjob", "Cancel") @@ -253,7 +253,7 @@ Item Behavior on color { ColorAnimation { duration: 50; } } - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("thick_margin").width * 2) Label { @@ -299,7 +299,7 @@ Item anchors.top: parent.top anchors.right: deviceSelectionMenu.visible ? deviceSelectionMenu.left : parent.right - anchors.rightMargin: deviceSelectionMenu.visible ? -3 * UM.Theme.getSize("default_lining").width : UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: deviceSelectionMenu.visible ? -3 * UM.Theme.getSize("default_lining").width : UM.Theme.getSize("thick_margin").width text: UM.OutputDeviceManager.activeDeviceShortDescription onClicked: @@ -355,7 +355,7 @@ Item Behavior on color { ColorAnimation { duration: 50; } } - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("thick_margin").width * 2) Label { @@ -377,7 +377,7 @@ Item anchors.top: parent.top anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width width: UM.Theme.getSize("save_button_save_to_button").height height: UM.Theme.getSize("save_button_save_to_button").height diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index e3202323eb..7995619af0 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -12,8 +12,8 @@ Button id: base anchors.left: parent.left anchors.right: parent.right - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width background: Rectangle { id: backgroundRectangle diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 785562cff5..cad6a28bd6 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -128,11 +128,11 @@ Item { id: settingControls height: Math.round(parent.height / 2) - spacing: Math.round(UM.Theme.getSize("sidebar_margin").height / 2) + spacing: Math.round(UM.Theme.getSize("thick_margin").height / 2) anchors { right: controlContainer.left - rightMargin: Math.round(UM.Theme.getSize("sidebar_margin").width / 2) + rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) verticalCenter: parent.verticalCenter } @@ -290,7 +290,7 @@ Item { enabled: propertyProvider.isValueUsed anchors.right: parent.right; - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.verticalCenter: parent.verticalCenter; width: UM.Theme.getSize("setting_control").width; height: UM.Theme.getSize("setting_control").height diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 5a6811926e..cd9701aab6 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -24,15 +24,15 @@ Item Item { id: globalProfileRow - height: UM.Theme.getSize("sidebar_setup").height + height: UM.Theme.getSize("print_setup_item").height anchors { top: parent.top left: parent.left - leftMargin: Math.round(UM.Theme.getSize("sidebar_margin").width) + leftMargin: Math.round(UM.Theme.getSize("thick_margin").width) right: parent.right - rightMargin: Math.round(UM.Theme.getSize("sidebar_margin").width) + rightMargin: Math.round(UM.Theme.getSize("thick_margin").width) } Label @@ -40,7 +40,7 @@ Item id: globalProfileLabel text: catalog.i18nc("@label","Profile:") textFormat: Text.PlainText - width: Math.round(parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2) + width: Math.round(parent.width * 0.45 - UM.Theme.getSize("thick_margin").width - 2) font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter @@ -87,7 +87,7 @@ Item anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right - anchors.rightMargin: Math.round(UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("sidebar_margin").width) + anchors.rightMargin: Math.round(UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("thick_margin").width) color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); iconSource: UM.Theme.getIcon("star"); @@ -100,7 +100,7 @@ Item onEntered: { var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") - base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content) + base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), content) } onExited: base.hideTooltip() } @@ -116,9 +116,9 @@ Item anchors { top: globalProfileRow.bottom - topMargin: UM.Theme.getSize("sidebar_margin").height + topMargin: UM.Theme.getSize("thick_margin").height right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width + rightMargin: UM.Theme.getSize("thick_margin").width } style: ButtonStyle { @@ -169,9 +169,9 @@ Item anchors { top: globalProfileRow.bottom - topMargin: UM.Theme.getSize("sidebar_margin").height + topMargin: UM.Theme.getSize("thick_margin").height left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width + leftMargin: UM.Theme.getSize("thick_margin").width right: settingVisibilityMenu.left rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) } @@ -191,7 +191,7 @@ Item height: parent.height anchors.left: parent.left anchors.right: clearFilterButton.left - anchors.rightMargin: Math.round(UM.Theme.getSize("sidebar_margin").width) + anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width) placeholderText: catalog.i18nc("@label:textbox", "Search...") @@ -288,7 +288,7 @@ Item anchors.bottom: parent.bottom; anchors.right: parent.right; anchors.left: parent.left; - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height style: UM.Theme.styles.scrollview; flickableItem.flickableDirection: Flickable.VerticalFlick; @@ -325,7 +325,7 @@ Item { id: delegate - width: Math.round(UM.Theme.getSize("sidebar").width); + width: Math.round(UM.Theme.getSize("print_setup_widget").width); height: provider.properties.enabled == "True" ? UM.Theme.getSize("section").height : - contents.spacing Behavior on height { NumberAnimation { duration: 100 } } opacity: provider.properties.enabled == "True" ? 1 : 0 diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index ec673f2823..b5c94c3f82 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -35,7 +35,7 @@ Item { width: childrenRect.width height: childrenRect.height - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") // // Quality profile @@ -44,10 +44,10 @@ Item { id: qualityRow - height: UM.Theme.getSize("sidebar_margin").height - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + height: UM.Theme.getSize("thick_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width anchors.right: parent.right Timer @@ -207,7 +207,7 @@ Item { anchors.verticalCenter: parent.verticalCenter anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") text: { @@ -262,10 +262,10 @@ Item { id: speedSlider width: Math.round(base.width * 0.55) - height: UM.Theme.getSize("sidebar_margin").height + height: UM.Theme.getSize("thick_margin").height anchors.right: parent.right anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height // This Item is used only for tooltip, for slider area which is unavailable Item @@ -275,7 +275,7 @@ Item if (showTooltip) { var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) } else { @@ -380,7 +380,7 @@ Item Slider { id: qualitySlider - height: UM.Theme.getSize("sidebar_margin").height + height: UM.Theme.getSize("thick_margin").height anchors.bottom: speedSlider.bottom enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized visible: qualityModel.availableTotalTicks > 0 @@ -448,7 +448,7 @@ Item onEntered: { var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) } onExited: { @@ -467,7 +467,7 @@ Item text: catalog.i18nc("@label", "Print Speed") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") - width: Math.round(UM.Theme.getSize("sidebar").width * 0.35) + width: Math.round(UM.Theme.getSize("print_setup_widget").width * 0.35) elide: Text.ElideRight } @@ -503,7 +503,7 @@ Item anchors.verticalCenter: speedSlider.verticalCenter anchors.right: speedSlider.left - anchors.rightMargin: Math.round(UM.Theme.getSize("sidebar_margin").width / 2) + anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); iconSource: UM.Theme.getIcon("reset"); @@ -516,7 +516,7 @@ Item onEntered: { var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) } onExited: base.hideTooltip() } @@ -530,10 +530,10 @@ Item id: infillCellLeft anchors.top: qualityRow.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 2 + anchors.topMargin: UM.Theme.getSize("thick_margin").height * 2 anchors.left: parent.left - width: Math.round(UM.Theme.getSize("sidebar").width * .45) - UM.Theme.getSize("sidebar_margin").width + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .45) - UM.Theme.getSize("thick_margin").width Label { @@ -543,9 +543,9 @@ Item color: UM.Theme.getColor("text") anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height * 1.7) + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7) anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width } } @@ -553,12 +553,12 @@ Item { id: infillCellRight - height: infillSlider.height + UM.Theme.getSize("sidebar_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("sidebar_margin").height) - width: Math.round(UM.Theme.getSize("sidebar").width * .55) + height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) anchors.left: infillCellLeft.right anchors.top: infillCellLeft.top - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height Label { id: selectedInfillRateText @@ -588,10 +588,10 @@ Item anchors.top: selectedInfillRateText.bottom anchors.left: parent.left anchors.right: infillIcon.left - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width - height: UM.Theme.getSize("sidebar_margin").height - width: parseInt(infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth) + height: UM.Theme.getSize("thick_margin").height + width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) minimumValue: 0 maximumValue: 100 @@ -679,12 +679,12 @@ Item { id: infillIcon - width: Math.round((parent.width / 5) - (UM.Theme.getSize("sidebar_margin").width)) + width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) height: width anchors.right: parent.right anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // we loop over all density icons and only show the one that has the current density and steps Repeater @@ -737,7 +737,7 @@ Item property alias _hovered: enableGradualInfillMouseArea.containsMouse anchors.top: infillSlider.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category anchors.left: infillCellRight.left style: UM.Theme.styles.checkbox @@ -786,7 +786,7 @@ Item id: gradualInfillLabel height: parent.height anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("sidebar_margin").width / 2) + anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) verticalAlignment: Text.AlignVCenter; text: catalog.i18nc("@label", "Enable gradual") font: UM.Theme.getFont("default") @@ -848,11 +848,11 @@ Item visible: enableSupportCheckBox.visible anchors.top: infillCellRight.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height * 1.5) + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5) anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width anchors.right: infillCellLeft.right - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter text: catalog.i18nc("@label", "Generate Support"); @@ -916,11 +916,11 @@ Item textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started anchors.top: enableSupportCheckBox.top - //anchors.topMargin: ((supportEnabled.properties.value === "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("sidebar_margin").height : 0 + //anchors.topMargin: ((supportEnabled.properties.value === "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("thick_margin").height : 0 anchors.left: enableSupportCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("sidebar_margin").width / 2) + anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - width: Math.round(UM.Theme.getSize("sidebar").width * .55) - Math.round(UM.Theme.getSize("sidebar_margin").width / 2) - enableSupportCheckBox.width + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 Behavior on height { NumberAnimation { duration: 100 } } @@ -991,9 +991,9 @@ Item anchors { left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width + leftMargin: UM.Theme.getSize("thick_margin").width right: infillCellLeft.right - rightMargin: UM.Theme.getSize("sidebar_margin").width + rightMargin: UM.Theme.getSize("thick_margin").width verticalCenter: adhesionCheckBox.verticalCenter } } @@ -1004,7 +1004,7 @@ Item property alias _hovered: adhesionMouseArea.containsMouse anchors.top: enableSupportCheckBox.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height anchors.left: infillCellRight.left //: Setting enable printing build-plate adhesion helper checkbox @@ -1065,7 +1065,7 @@ Item { id: tipsCell anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) - anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height * 2) + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 2) anchors.left: parent.left width: parent.width height: tipsText.contentHeight * tipsText.lineCount @@ -1074,9 +1074,9 @@ Item { id: tipsText anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.leftMargin: UM.Theme.getSize("thick_margin").width anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.top: parent.top wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Need help improving your prints?
Read the
Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting") diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 1625750a19..571e1acbe4 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -5,7 +5,9 @@ }, "colors": { - "sidebar": [39, 44, 48, 255], + "main_background": [39, 44, 48, 255], + "wide_lining": [31, 36, 39, 255], + "thick_lining": [255, 255, 255, 30], "lining": [64, 69, 72, 255], "viewport_overlay": [0, 6, 9, 222], @@ -18,6 +20,9 @@ "main_window_header_button_text_inactive": [128, 128, 128, 255], "main_window_header_button_text_hovered": [255, 255, 255, 255], + "machine_selector_bar": [39, 44, 48, 255], + "machine_selector_active": [39, 44, 48, 255], + "text": [255, 255, 255, 204], "text_detail": [255, 255, 255, 172], "text_link": [255, 255, 255, 127], @@ -30,16 +35,6 @@ "text_scene_hover": [255, 255, 255, 204], "error": [212, 31, 53, 255], - "sidebar_header_bar": [39, 44, 48, 255], - "sidebar_header_active": [39, 44, 48, 255], - "sidebar_header_hover": [68, 72, 75, 255], - "sidebar_header_highlight": [68, 192, 255, 255], - "sidebar_header_highlight_hover": [68, 192, 255, 255], - "sidebar_header_text_active": [255, 255, 255, 255], - "sidebar_header_text_hover": [255, 255, 255, 255], - "sidebar_header_text_inactive": [255, 255, 255, 127], - "sidebar_lining": [31, 36, 39, 255], - "sidebar_lining_thin": [255, 255, 255, 30], "button": [39, 44, 48, 255], "button_hover": [39, 44, 48, 255], diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 1bbb13ff26..43e8d29b57 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -491,9 +491,9 @@ QtObject { anchors.fill: parent anchors.left: parent.left - anchors.leftMargin: Theme.getSize("sidebar_margin").width + anchors.leftMargin: Theme.getSize("thick_margin").width anchors.right: parent.right - anchors.rightMargin: Theme.getSize("sidebar_margin").width + anchors.rightMargin: Theme.getSize("thick_margin").width implicitHeight: Theme.getSize("section").height color: { @@ -567,7 +567,7 @@ QtObject { anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left - anchors.leftMargin: Theme.getSize("sidebar_margin").width + anchors.leftMargin: Theme.getSize("thick_margin").width color: { if(!control.enabled) @@ -1037,7 +1037,7 @@ QtObject } Behavior on color { ColorAnimation { duration: 50 } } - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("sidebar_margin").width * 2) + implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("thick_margin").width * 2) Label { diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 38d4f5372f..4b1252abf4 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -69,7 +69,9 @@ "colors": { - "sidebar": [255, 255, 255, 255], + "main_background": [255, 255, 255, 255], + "wide_lining": [245, 245, 245, 255], + "thick_lining": [127, 127, 127, 255], "lining": [192, 193, 194, 255], "viewport_overlay": [0, 0, 0, 192], @@ -97,6 +99,11 @@ "account_widget_outline_active": [70, 66, 126, 255], "account_widget_outline_inactive": [229, 229, 229, 255], + "machine_selector_bar": [31, 36, 39, 255], + "machine_selector_active": [68, 72, 75, 255], + "machine_selector_hover": [68, 72, 75, 255], + "machine_selector_text_active": [255, 255, 255, 255], + "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], "text_link": [12, 169, 227, 255], @@ -110,16 +117,6 @@ "text_scene_hover": [70, 84, 113, 255], "error": [255, 140, 0, 255], - "sidebar_header_bar": [31, 36, 39, 255], - "sidebar_header_active": [68, 72, 75, 255], - "sidebar_header_hover": [68, 72, 75, 255], - "sidebar_header_highlight": [68, 192, 255, 255], - "sidebar_header_highlight_hover": [68, 192, 255, 255], - "sidebar_header_text_inactive": [255, 255, 255, 255], - "sidebar_header_text_active": [255, 255, 255, 255], - "sidebar_header_text_hover": [255, 255, 255, 255], - "sidebar_lining": [245, 245, 245, 255], - "sidebar_lining_thin": [127, 127, 127, 255], "button": [31, 36, 39, 255], "button_hover": [68, 72, 75, 255], @@ -356,35 +353,34 @@ "account_button": [12, 3], "print_setup_widget": [35.0, 42.0], - "configuration_selector_widget": [35.0, 0.0], + "print_setup_mode_toggle": [0.0, 2.0], + "print_setup_item": [0.0, 2.0], + "print_setup_extruder_box": [0.0, 6.0], + + "configuration_selector_widget": [35.0, 4.5], + "configuration_selector_mode_tabs": [0.0, 3.0], + + "action_panel_widget": [35.0, 0.0], + "machine_selector_widget": [28.0, 4.5], "views_selector": [0.0, 4.0], + "wide_lining": [0.5, 0.5], + "thick_lining": [0.2, 0.2], "default_lining": [0.08, 0.08], + "default_arrow": [0.8, 0.8], "logo": [8, 2.4], - "default_margin": [1.0, 1.0], "wide_margin": [2.0, 2.0], + "thick_margin": [1.71, 1.43], + "default_margin": [1.0, 1.0], + "thin_margin": [0.71, 0.71], "narrow_margin": [0.5, 0.5], - "window_margin": [1.0, 1.0], "extruder_button_material_margin": [0.70, 0.9], "extruder_button_material": [0.75, 0.75], - "sidebar": [35.0, 10.0], - "sidebar_margin": [1.71, 1.43], - "sidebar_margin_thin": [0.71, 0.71], - "sidebar_header": [0.0, 4.0], - "sidebar_header_highlight": [0.25, 0.25], - "sidebar_header_mode_toggle": [0.0, 2.0], - "sidebar_header_mode_tabs": [0.0, 3.0], - "sidebar_lining": [0.5, 0.5], - "sidebar_lining_thin": [0.2, 0.2], - "sidebar_setup": [0.0, 2.0], - "sidebar_tabs": [0.0, 3.5], - "sidebar_inputfields": [0.0, 2.0], - "sidebar_extruder_box": [0.0, 6.0], "simple_mode_infill_caption": [0.0, 5.0], "simple_mode_infill_height": [0.0, 8.0], @@ -495,6 +491,7 @@ "toolbox_property_label": [1.0, 2.0], "toolbox_heading_label": [1.0, 4.0], "toolbox_header": [1.0, 4.0], + "toolbox_header_highlight": [0.25, 0.25], "toolbox_progress_bar": [8.0, 0.5], "toolbox_chart_row": [1.0, 2.0], "toolbox_action_button": [8.0, 2.5], From 5a759fa9f493bb034170b0cec566653b22b51793 Mon Sep 17 00:00:00 2001 From: pinchies Date: Sat, 27 Oct 2018 03:47:29 +1100 Subject: [PATCH 0089/1039] fix start routing --- resources/definitions/jgaurora_a5.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/jgaurora_a5.def.json b/resources/definitions/jgaurora_a5.def.json index 6143ef1523..0a8b93f7cf 100644 --- a/resources/definitions/jgaurora_a5.def.json +++ b/resources/definitions/jgaurora_a5.def.json @@ -20,7 +20,7 @@ "default_value": "JGAurora A5" }, "machine_start_gcode": { - "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nM420 S1 ;turn on mesh bed levelling if enabled in firmware\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" }, "machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" @@ -95,4 +95,4 @@ "default_value": 45 } } -} \ No newline at end of file +} From 6fa382a527137024d84a4cdf169cfc8a7dce67bb Mon Sep 17 00:00:00 2001 From: pinchies Date: Sat, 27 Oct 2018 03:48:24 +1100 Subject: [PATCH 0090/1039] Update jgaurora_a1.def.json --- resources/definitions/jgaurora_a1.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/jgaurora_a1.def.json b/resources/definitions/jgaurora_a1.def.json index 004fd8741d..4fd2eb4994 100644 --- a/resources/definitions/jgaurora_a1.def.json +++ b/resources/definitions/jgaurora_a1.def.json @@ -18,7 +18,7 @@ "default_value": "JGAurora A1" }, "machine_start_gcode": { - "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nM420 S1 ;turn on mesh bed levelling if enabled in firmware\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" }, "machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" @@ -93,4 +93,4 @@ "default_value": 40 } } -} \ No newline at end of file +} From 0487288edfaf3c10ae69112ab393e54eef4d01df Mon Sep 17 00:00:00 2001 From: pinchies Date: Sat, 27 Oct 2018 03:49:34 +1100 Subject: [PATCH 0091/1039] Update alfawise_u20.def.json --- resources/definitions/alfawise_u20.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/alfawise_u20.def.json b/resources/definitions/alfawise_u20.def.json index f6dccce3ee..abc206c4d2 100644 --- a/resources/definitions/alfawise_u20.def.json +++ b/resources/definitions/alfawise_u20.def.json @@ -18,7 +18,7 @@ "default_value": "Alfawise U20" }, "machine_start_gcode": { - "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" }, "machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" @@ -93,4 +93,4 @@ "default_value": 45 } } -} \ No newline at end of file +} From 46c6ef71abfcdb6d617c724e3f72af77a5e48176 Mon Sep 17 00:00:00 2001 From: pinchies Date: Sat, 27 Oct 2018 03:50:15 +1100 Subject: [PATCH 0092/1039] Update jgaurora_z_603s.def.json --- resources/definitions/jgaurora_z_603s.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/jgaurora_z_603s.def.json b/resources/definitions/jgaurora_z_603s.def.json index af7fa823db..59e0ff129c 100644 --- a/resources/definitions/jgaurora_z_603s.def.json +++ b/resources/definitions/jgaurora_z_603s.def.json @@ -18,7 +18,7 @@ "default_value": "JGAurora Z-603S" }, "machine_start_gcode": { - "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nM420 S1 ;turn on mesh bed levelling if enabled in firmware\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" }, "machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" @@ -93,4 +93,4 @@ "default_value": 50 } } -} \ No newline at end of file +} From cdb5ab193051b4fb16752aeb57fe386c9a3d4e59 Mon Sep 17 00:00:00 2001 From: pinchies Date: Sat, 27 Oct 2018 03:51:05 +1100 Subject: [PATCH 0093/1039] Update cocoon_create_modelmaker.def.json --- resources/definitions/cocoon_create_modelmaker.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/cocoon_create_modelmaker.def.json b/resources/definitions/cocoon_create_modelmaker.def.json index f752a08fc7..7f19fb0239 100644 --- a/resources/definitions/cocoon_create_modelmaker.def.json +++ b/resources/definitions/cocoon_create_modelmaker.def.json @@ -18,7 +18,7 @@ "default_value": "Cocoon Create ModelMaker" }, "machine_start_gcode": { - "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" + "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" }, "machine_end_gcode": { "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 Y0 ;move to the XY-axis origin (Home)\nM84 ;turn off stepper motors\n; -- end of END GCODE --" @@ -93,4 +93,4 @@ "default_value": 40 } } -} \ No newline at end of file +} From 517428a308fcff91c68c54a226ad95ec63ac81fd Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 28 Oct 2018 11:27:08 +0100 Subject: [PATCH 0094/1039] Fix typing error in NetworkedPrinterOutputDevice.post Strictly speaking the QNetworkManager.post() method takes a QByteArray instead of Python bytes, but according to the PyQt documentation, PyQt handles that conversion transparently: http://pyqt.sourceforge.net/Docs/PyQt5/gotchas.html#python-strings-qt-strings-and-unicode --- cura/PrinterOutput/NetworkedPrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py index f7c7f5d233..35d2ce014a 100644 --- a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py +++ b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py @@ -213,7 +213,7 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): request = self._createEmptyRequest(target) self._last_request_time = time() if self._manager is not None: - reply = self._manager.post(request, data) + reply = self._manager.post(request, data.encode()) if on_progress is not None: reply.uploadProgress.connect(on_progress) self._registerOnFinishedCallback(reply, on_finished) From 7899b249fcf320a615449270c41d0461b1aa7004 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 28 Oct 2018 12:12:14 +0100 Subject: [PATCH 0095/1039] Use preferred material instead of generic PLA when creating a new material --- cura/Machines/MaterialManager.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cura/Machines/MaterialManager.py b/cura/Machines/MaterialManager.py index 1a204c020b..e4300dabdb 100644 --- a/cura/Machines/MaterialManager.py +++ b/cura/Machines/MaterialManager.py @@ -622,8 +622,11 @@ class MaterialManager(QObject): machine_manager = self._application.getMachineManager() extruder_stack = machine_manager.activeStack + machine_definition = self._application.getGlobalContainerStack().definition + preferred_material = machine_definition.getMetaDataEntry("preferred_material") + approximate_diameter = str(extruder_stack.approximateMaterialDiameter) - root_material_id = "generic_pla" + root_material_id = preferred_material if preferred_material else "generic_pla" root_material_id = self.getRootMaterialIDForDiameter(root_material_id, approximate_diameter) material_group = self.getMaterialGroup(root_material_id) From 3248a05819fccd54f71f6765ff5846b15c22b181 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 29 Oct 2018 11:28:08 +0100 Subject: [PATCH 0096/1039] Add PreviewStagePlugin stubs Since we are going to move all the views into a seperate stage, we need to add another stage to do that. CURA-5829 --- cura/CuraApplication.py | 1 + plugins/MonitorStage/__init__.py | 4 +++- plugins/PreviewStage/PreviewStage.py | 13 +++++++++++++ plugins/PreviewStage/__init__.py | 22 ++++++++++++++++++++++ plugins/PreviewStage/plugin.json | 8 ++++++++ 5 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 plugins/PreviewStage/PreviewStage.py create mode 100644 plugins/PreviewStage/__init__.py create mode 100644 plugins/PreviewStage/plugin.json diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 5824d21b1c..8f9816e968 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -433,6 +433,7 @@ class CuraApplication(QtApplication): "XmlMaterialProfile", "Toolbox", "PrepareStage", + "PreviewStage", "MonitorStage", "LocalFileOutputDevice", "LocalContainerProvider", diff --git a/plugins/MonitorStage/__init__.py b/plugins/MonitorStage/__init__.py index bdaf53a36c..0468e6319b 100644 --- a/plugins/MonitorStage/__init__.py +++ b/plugins/MonitorStage/__init__.py @@ -7,14 +7,16 @@ from . import MonitorStage from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") + def getMetaData(): return { "stage": { "name": i18n_catalog.i18nc("@item:inmenu", "Monitor"), - "weight": 1 + "weight": 2 } } + def register(app): return { "stage": MonitorStage.MonitorStage() diff --git a/plugins/PreviewStage/PreviewStage.py b/plugins/PreviewStage/PreviewStage.py new file mode 100644 index 0000000000..a51bf766b6 --- /dev/null +++ b/plugins/PreviewStage/PreviewStage.py @@ -0,0 +1,13 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +from UM.Application import Application +from cura.Stages.CuraStage import CuraStage + + +class PreviewStage(CuraStage): + def __init__(self, parent = None) -> None: + super().__init__(parent) + Application.getInstance().engineCreatedSignal.connect(self._engineCreated) + + def _engineCreated(self): + return \ No newline at end of file diff --git a/plugins/PreviewStage/__init__.py b/plugins/PreviewStage/__init__.py new file mode 100644 index 0000000000..e03992fc00 --- /dev/null +++ b/plugins/PreviewStage/__init__.py @@ -0,0 +1,22 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from . import PreviewStage + +from UM.i18n import i18nCatalog +i18n_catalog = i18nCatalog("cura") + + +def getMetaData(): + return { + "stage": { + "name": i18n_catalog.i18nc("@item:inmenu", "Preview"), + "weight": 1 + } + } + + +def register(app): + return { + "stage": PreviewStage.PreviewStage() + } diff --git a/plugins/PreviewStage/plugin.json b/plugins/PreviewStage/plugin.json new file mode 100644 index 0000000000..9349da2b0e --- /dev/null +++ b/plugins/PreviewStage/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Preview Stage", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Provides a preview stage in Cura.", + "api": 5, + "i18n-catalog": "cura" +} \ No newline at end of file From 9cc7a7ca23df6427f5e921ca1594dfd8c3ed176a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 29 Oct 2018 13:27:47 +0100 Subject: [PATCH 0097/1039] Moved view selection to previewStage CURA-5829 --- plugins/PreviewStage/PreviewMenu.qml | 77 ++++++++++++++++++++ plugins/PreviewStage/PreviewStage.py | 26 ++++++- plugins/PreviewStage/__init__.py | 2 +- resources/qml/Cura.qml | 62 ---------------- resources/qml/MainWindow/ApplicationMenu.qml | 2 - 5 files changed, 100 insertions(+), 69 deletions(-) create mode 100644 plugins/PreviewStage/PreviewMenu.qml diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml new file mode 100644 index 0000000000..c364c4c3d7 --- /dev/null +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -0,0 +1,77 @@ +import QtQuick 2.7 + +import QtQuick.Controls 1.4 + +import UM 1.3 as UM +import Cura 1.1 as Cura + +Item +{ + id: previewMenu + // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. + signal showTooltip(Item item, point location, string text) + signal hideTooltip() + + UM.I18nCatalog + { + id: catalog + name: "cura" + } + + Row + { + anchors.horizontalCenter: parent.horizontalCenter + ComboBox + { + // This item contains the views selector, a combobox that is dynamically created from + // the list of available Views (packages that create different visualizations of the + // scene). + id: viewModeButton + + style: UM.Theme.styles.combobox + + model: UM.ViewModel { } + textRole: "name" + + // update the model's active index + function updateItemActiveFlags() + { + currentIndex = getActiveIndex() + for (var i = 0; i < model.rowCount(); i++) + { + model.getItem(i).active = (i == currentIndex) + } + } + + // get the index of the active model item on start + function getActiveIndex() + { + for (var i = 0; i < model.rowCount(); i++) + { + print(model.getItem(i).active) + if (model.getItem(i).active) + { + return i; + } + } + return 0 + } + + onCurrentIndexChanged: + { + if (model.getItem(currentIndex).id != undefined) + { + UM.Controller.setActiveView(model.getItem(currentIndex).id) + } + } + currentIndex: getActiveIndex() + } + + Cura.PrintSetupSelector + { + width: UM.Theme.getSize("print_setup_widget").width + onShowTooltip: previewMenu.showTooltip(item, location, text) + onHideTooltip: previewMenu.hideTooltip() + } + } +} \ No newline at end of file diff --git a/plugins/PreviewStage/PreviewStage.py b/plugins/PreviewStage/PreviewStage.py index a51bf766b6..4c449e55f2 100644 --- a/plugins/PreviewStage/PreviewStage.py +++ b/plugins/PreviewStage/PreviewStage.py @@ -1,13 +1,31 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import os.path + from UM.Application import Application from cura.Stages.CuraStage import CuraStage +from typing import TYPE_CHECKING, Optional + +if TYPE_CHECKING: + from UM.View import View class PreviewStage(CuraStage): - def __init__(self, parent = None) -> None: + def __init__(self, application: Application, parent = None) -> None: super().__init__(parent) - Application.getInstance().engineCreatedSignal.connect(self._engineCreated) + self._application = application + self._application.engineCreatedSignal.connect(self._engineCreated) + self._previously_active_view = None # type: Optional[View] - def _engineCreated(self): - return \ No newline at end of file + def onStageSelected(self) -> None: + self._previously_active_view = self._application.getController().getActiveView() + + def onStageDeselected(self) -> None: + if self._previously_active_view is not None: + self._application.getController().setActiveView(self._previously_active_view.getPluginId()) + self._previously_active_view = None + + def _engineCreated(self) -> None: + menu_component_path = os.path.join(self._application.getPluginRegistry().getPluginPath(self.getPluginId()), + "PreviewMenu.qml") + self.addDisplayComponent("menu", menu_component_path) diff --git a/plugins/PreviewStage/__init__.py b/plugins/PreviewStage/__init__.py index e03992fc00..d58826934e 100644 --- a/plugins/PreviewStage/__init__.py +++ b/plugins/PreviewStage/__init__.py @@ -18,5 +18,5 @@ def getMetaData(): def register(app): return { - "stage": PreviewStage.PreviewStage() + "stage": PreviewStage.PreviewStage(app) } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 3e2515cb3e..c3d2c98ecc 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -230,68 +230,6 @@ UM.MainWindow } } - ComboBox - { - // This item contains the views selector, a combobox that is dynamically created from - // the list of available Views (packages that create different visualizations of the - // scene). - id: viewModeButton - - anchors.left: viewOrientationControls.right - anchors.bottom: viewOrientationControls.bottom - - style: UM.Theme.styles.combobox - - model: UM.ViewModel { } - textRole: "name" - - // update the model's active index - function updateItemActiveFlags() - { - currentIndex = getActiveIndex() - for (var i = 0; i < model.rowCount(); i++) - { - model.getItem(i).active = (i == currentIndex) - } - } - - // get the index of the active model item on start - function getActiveIndex () - { - for (var i = 0; i < model.rowCount(); i++) - { - if (model.getItem(i).active) - { - return i; - } - } - return 0 - } - - // set the active index - function setActiveIndex(index) - { - UM.Controller.setActiveView(index) - // the connection to UM.ActiveView will trigger update so there is no reason to call it manually here - } - - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id != undefined) - { - viewModeButton.setActiveIndex(model.getItem(currentIndex).id) - } - } - currentIndex: getActiveIndex() - - // watch the active view proxy for changes made from the menu item - Connections - { - target: UM.ActiveView - onActiveViewChanged: viewModeButton.updateItemActiveFlags() - } - } - Loader { id: viewPanel diff --git a/resources/qml/MainWindow/ApplicationMenu.qml b/resources/qml/MainWindow/ApplicationMenu.qml index d3bc115419..884609deee 100644 --- a/resources/qml/MainWindow/ApplicationMenu.qml +++ b/resources/qml/MainWindow/ApplicationMenu.qml @@ -45,8 +45,6 @@ Item MenuItem { action: Cura.Actions.unGroupObjects } } - ViewMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&View") } - SettingsMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&Settings") } Menu From ebe533bdc831c9872d3d0c352e73134656de253e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 29 Oct 2018 13:39:00 +0100 Subject: [PATCH 0098/1039] Move active view panel to previewStage CURA-5829 --- plugins/PreviewStage/PreviewMenu.qml | 15 +++++++++++++++ resources/qml/Cura.qml | 16 ---------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index c364c4c3d7..0ab1c0be83 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -21,6 +21,8 @@ Item Row { anchors.horizontalCenter: parent.horizontalCenter + spacing: UM.Theme.getSize("default_margin").width + ComboBox { // This item contains the views selector, a combobox that is dynamically created from @@ -67,6 +69,19 @@ Item currentIndex: getActiveIndex() } + Loader + { + // TODO: Make this panel collapsable and ensure it has a standardised background. + id: viewPanel + + property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) + + height: childrenRect.height + width: childrenRect.width + + source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" + } + Cura.PrintSetupSelector { width: UM.Theme.getSize("print_setup_widget").width diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index c3d2c98ecc..9f53b75dd1 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -230,22 +230,6 @@ UM.MainWindow } } - Loader - { - id: viewPanel - - anchors.bottom: viewModeButton.top - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.right: viewModeButton.right - - property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) - - height: childrenRect.height - width: childrenRect.width - - source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" - } - Cura.ActionPanelWidget { anchors.right: parent.right From fc6ad4f6233833a2b59d4086306a21e1de3427f4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 29 Oct 2018 13:41:46 +0100 Subject: [PATCH 0099/1039] Put back the view menu, since it did more than just show the views CURA-5829 --- resources/qml/MainWindow/ApplicationMenu.qml | 2 ++ resources/qml/Menus/ViewMenu.qml | 19 ------------------- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/resources/qml/MainWindow/ApplicationMenu.qml b/resources/qml/MainWindow/ApplicationMenu.qml index 884609deee..d3bc115419 100644 --- a/resources/qml/MainWindow/ApplicationMenu.qml +++ b/resources/qml/MainWindow/ApplicationMenu.qml @@ -45,6 +45,8 @@ Item MenuItem { action: Cura.Actions.unGroupObjects } } + ViewMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&View") } + SettingsMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&Settings") } Menu diff --git a/resources/qml/Menus/ViewMenu.qml b/resources/qml/Menus/ViewMenu.qml index 593bd63bcc..33e8764cd8 100644 --- a/resources/qml/Menus/ViewMenu.qml +++ b/resources/qml/Menus/ViewMenu.qml @@ -15,25 +15,6 @@ Menu property var multiBuildPlateModel: CuraApplication.getMultiBuildPlateModel() - // main views - Instantiator - { - model: UM.ViewModel{} - MenuItem - { - text: model.name - checkable: true - checked: model.active - exclusiveGroup: group - onTriggered: UM.Controller.setActiveView(model.id) - } - onObjectAdded: base.insertItem(index, object) - onObjectRemoved: base.removeItem(object) - } - ExclusiveGroup { id: group } - - MenuSeparator {} - Menu { title: catalog.i18nc("@action:inmenu menubar:view","&Camera position"); From cfa962311bb45476fcc9e65dd24933bb9f2aa397 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 29 Oct 2018 13:54:20 +0100 Subject: [PATCH 0100/1039] Fixed typing CURA-5829 --- plugins/PreviewStage/PreviewStage.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/plugins/PreviewStage/PreviewStage.py b/plugins/PreviewStage/PreviewStage.py index 4c449e55f2..e41d4a592f 100644 --- a/plugins/PreviewStage/PreviewStage.py +++ b/plugins/PreviewStage/PreviewStage.py @@ -2,16 +2,17 @@ # Cura is released under the terms of the LGPLv3 or higher. import os.path -from UM.Application import Application +from UM.Qt.QtApplication import QtApplication from cura.Stages.CuraStage import CuraStage from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: - from UM.View import View + from UM.View.View import View + class PreviewStage(CuraStage): - def __init__(self, application: Application, parent = None) -> None: + def __init__(self, application: QtApplication, parent = None) -> None: super().__init__(parent) self._application = application self._application.engineCreatedSignal.connect(self._engineCreated) @@ -26,6 +27,7 @@ class PreviewStage(CuraStage): self._previously_active_view = None def _engineCreated(self) -> None: - menu_component_path = os.path.join(self._application.getPluginRegistry().getPluginPath(self.getPluginId()), - "PreviewMenu.qml") - self.addDisplayComponent("menu", menu_component_path) + plugin_path = self._application.getPluginRegistry().getPluginPath(self.getPluginId()) + if plugin_path is not None: + menu_component_path = os.path.join(plugin_path, "PreviewMenu.qml") + self.addDisplayComponent("menu", menu_component_path) From d8dd9bf3631bcfd5cd77d11cb41688127dd31e60 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 29 Oct 2018 14:54:42 +0100 Subject: [PATCH 0101/1039] Set SolidView to invisible. Since we don't have a selector in the prepare stage anymore, solidview must be invisible CURA-5829 --- plugins/PreviewStage/PreviewMenu.qml | 1 - plugins/SolidView/__init__.py | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 0ab1c0be83..ae875fb0a2 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -50,7 +50,6 @@ Item { for (var i = 0; i < model.rowCount(); i++) { - print(model.getItem(i).active) if (model.getItem(i).active) { return i; diff --git a/plugins/SolidView/__init__.py b/plugins/SolidView/__init__.py index db2e48f489..34148fcf05 100644 --- a/plugins/SolidView/__init__.py +++ b/plugins/SolidView/__init__.py @@ -10,7 +10,8 @@ def getMetaData(): return { "view": { "name": i18n_catalog.i18nc("@item:inmenu", "Solid view"), - "weight": 0 + "weight": 0, + "visible": False } } From bf59097320d7f5eaf4bd072cde2d8a841d27c550 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 29 Oct 2018 15:18:34 +0100 Subject: [PATCH 0102/1039] Split the action button panel in two different components that are loaded in different moments. The SliceProcessWidget is loaded once there is something to slice and it also shows the process of slicing. The OutputProcessWidget will show the print information and the actions to do to output the results, such as Print over network, Save to file, ... Contributes to CURA-5786. --- resources/qml/ActionPanelWidget.qml | 239 +++---------------------- resources/qml/Cura.qml | 17 +- resources/qml/OutputProcessWidget.qml | 72 ++++++++ resources/qml/SliceProcessWidget.qml | 62 +++++++ resources/themes/cura-light/theme.json | 4 + 5 files changed, 172 insertions(+), 222 deletions(-) create mode 100644 resources/qml/OutputProcessWidget.qml create mode 100644 resources/qml/SliceProcessWidget.qml diff --git a/resources/qml/ActionPanelWidget.qml b/resources/qml/ActionPanelWidget.qml index b5dc7f83c9..d1fe999731 100644 --- a/resources/qml/ActionPanelWidget.qml +++ b/resources/qml/ActionPanelWidget.qml @@ -2,7 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 -import QtQuick.Controls 2.0 +import QtQuick.Controls 2.1 import QtQuick.Layouts 1.3 import UM 1.2 as UM @@ -10,230 +10,43 @@ import Cura 1.0 as Cura Rectangle { - id: base + id: actionPanelWidget - // We need a whole lot of print duration information. - property variant printDuration: PrintInformation.currentPrintTime - - // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. - signal showTooltip(Item item, point location, string text) - signal hideTooltip() + width: childrenRect.width + 2 * UM.Theme.getSize("thick_margin").width + height: childrenRect.height + 2 * UM.Theme.getSize("thick_margin").height color: UM.Theme.getColor("main_background") + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + radius: UM.Theme.getSize("default_radius").width + visible: CuraApplication.platformActivity - // Also add an extra margin, as we want some breathing room around the edges. - height: saveButton.height + UM.Theme.getSize("thick_margin").height - Label + property bool backendStatusDone: UM.Backend.state == 3 + + Loader { - id: timeDetails - anchors.left: parent.left - anchors.bottom: costSpec.top - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - - font: UM.Theme.getFont("large") - color: UM.Theme.getColor("text_subtext") - text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label Hours and minutes", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short) - renderType: Text.NativeRendering - - MouseArea + id: loader + anchors { - id: timeDetailsMouseArea - anchors.fill: parent - hoverEnabled: true - - onEntered: - { - if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) - { - // All the time information for the different features is achieved - var print_time = PrintInformation.getFeaturePrintTimes(); - var total_seconds = parseInt(base.printDuration.getDisplayString(UM.DurationFormat.Seconds)) - - // A message is created and displayed when the user hover the time label - var tooltip_html = "%1
".arg(catalog.i18nc("@tooltip", "Time specification")); - for(var feature in print_time) - { - if(!print_time[feature].isTotalDurationZero) - { - tooltip_html += "" + - "".arg(print_time[feature].getDisplayString(UM.DurationFormat.ISO8601).slice(0,-3)) + - "".arg(Math.round(100 * parseInt(print_time[feature].getDisplayString(UM.DurationFormat.Seconds)) / total_seconds)) + - ""; - } - } - tooltip_html += "
" + feature + ":  %1  %1%
"; - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), tooltip_html); - } - } - onExited: - { - base.hideTooltip(); - } + top: parent.top + topMargin: UM.Theme.getSize("thick_margin").height + left: parent.left + leftMargin: UM.Theme.getSize("thick_margin").width } + sourceComponent: backendStatusDone ? outputProcessWidget : sliceProcessWidget } - Label + Behavior on height { NumberAnimation { duration: 100 } } + + Component { - function formatRow(items) - { - var row_html = ""; - for(var item = 0; item < items.length; item++) - { - if (item == 0) - { - row_html += "%1".arg(items[item]); - } - else - { - row_html += "  %1".arg(items[item]); - } - } - row_html += ""; - return row_html; - } - - function getSpecsData() - { - var lengths = []; - var total_length = 0; - var weights = []; - var total_weight = 0; - var costs = []; - var total_cost = 0; - var some_costs_known = false; - var names = []; - if(base.printMaterialLengths) - { - for(var index = 0; index < base.printMaterialLengths.length; index++) - { - if(base.printMaterialLengths[index] > 0) - { - names.push(base.printMaterialNames[index]); - lengths.push(base.printMaterialLengths[index].toFixed(2)); - weights.push(String(Math.round(base.printMaterialWeights[index]))); - var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); - costs.push(cost); - if(cost > 0) - { - some_costs_known = true; - } - - total_length += base.printMaterialLengths[index]; - total_weight += base.printMaterialWeights[index]; - total_cost += base.printMaterialCosts[index]; - } - } - } - if(lengths.length == 0) - { - lengths = ["0.00"]; - weights = ["0"]; - costs = ["0.00"]; - } - - var tooltip_html = "%1
".arg(catalog.i18nc("@label", "Cost specification")); - for(var index = 0; index < lengths.length; index++) - { - tooltip_html += formatRow([ - "%1:".arg(names[index]), - catalog.i18nc("@label m for meter", "%1m").arg(lengths[index]), - catalog.i18nc("@label g for grams", "%1g").arg(weights[index]), - "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(costs[index]), - ]); - } - if(lengths.length > 1) - { - tooltip_html += formatRow([ - catalog.i18nc("@label", "Total:"), - catalog.i18nc("@label m for meter", "%1m").arg(total_length.toFixed(2)), - catalog.i18nc("@label g for grams", "%1g").arg(Math.round(total_weight)), - "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(total_cost.toFixed(2)), - ]); - } - tooltip_html += "
"; - tooltipText = tooltip_html; - - return tooltipText - } - - id: costSpec - - anchors.left: parent.left - anchors.bottom: parent.bottom - anchors.bottomMargin: UM.Theme.getSize("thick_margin").height - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - - font: UM.Theme.getFont("very_small") - renderType: Text.NativeRendering - color: UM.Theme.getColor("text_subtext") - elide: Text.ElideMiddle - width: parent.width - property string tooltipText - text: - { - var lengths = []; - var weights = []; - var costs = []; - var someCostsKnown = false; - if(base.printMaterialLengths) - { - for(var index = 0; index < base.printMaterialLengths.length; index++) - { - if(base.printMaterialLengths[index] > 0) - { - lengths.push(base.printMaterialLengths[index].toFixed(2)); - weights.push(String(Math.round(base.printMaterialWeights[index]))); - var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); - costs.push(cost); - if(cost > 0) - { - someCostsKnown = true; - } - } - } - } - if(lengths.length == 0) - { - lengths = ["0.00"]; - weights = ["0"]; - costs = ["0.00"]; - } - var result = lengths.join(" + ") + "m / ~ " + weights.join(" + ") + "g"; - if(someCostsKnown) - { - result += " / ~ " + costs.join(" + ") + " " + UM.Preferences.getValue("cura/currency"); - } - return result; - } - - MouseArea - { - id: costSpecMouseArea - anchors.fill: parent - hoverEnabled: true - - onEntered: - { - - if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) - { - var show_data = costSpec.getSpecsData() - - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), show_data); - } - } - onExited: - { - base.hideTooltip(); - } - } + id: sliceProcessWidget + SliceProcessWidget { } } - SaveButton + Component { - id: saveButton - width: parent.width - height: 100 * screenScaleFactor - anchors.bottom: parent.bottom + id: outputProcessWidget + OutputProcessWidget { } } } \ No newline at end of file diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 3e2515cb3e..1f4d71e460 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -312,17 +312,16 @@ UM.MainWindow { anchors.right: parent.right anchors.bottom: parent.bottom - width: UM.Theme.getSize("action_panel_widget").width anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.bottomMargin: UM.Theme.getSize("thick_margin").height - onShowTooltip: - { - base.showTooltip(item, location, text) - } - onHideTooltip: - { - base.hideTooltip() - } +// onShowTooltip: +// { +// base.showTooltip(item, location, text) +// } +// onHideTooltip: +// { +// base.hideTooltip() +// } } Loader diff --git a/resources/qml/OutputProcessWidget.qml b/resources/qml/OutputProcessWidget.qml new file mode 100644 index 0000000000..612e4f286f --- /dev/null +++ b/resources/qml/OutputProcessWidget.qml @@ -0,0 +1,72 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.3 + +import UM 1.1 as UM + +Button +{ + id: button + property alias cursorShape: mouseArea.cursorShape + property alias iconSource: buttonIcon.source + property alias textFont: buttonText.font + property alias cornerRadius: backgroundRect.radius + property var color: UM.Theme.getColor("primary") + property var hoverColor: UM.Theme.getColor("primary_hover") + property var disabledColor: color + property var textColor: UM.Theme.getColor("button_text") + property var textHoverColor: UM.Theme.getColor("button_text_hover") + property var textDisabledColor: textColor + property var outlineColor: color + property var outlineHoverColor: hoverColor + property var outlineDisabledColor: outlineColor + + contentItem: Row + { + UM.RecolorImage + { + id: buttonIcon + source: "" + height: Math.round(0.6 * parent.height) + width: height + sourceSize.width: width + sourceSize.height: height + color: button.hovered ? button.textHoverColor : button.textColor + visible: source != "" + anchors.verticalCenter: parent.verticalCenter + Behavior on color { ColorAnimation { duration: 50 } } + } + + Label + { + id: buttonText + text: "Preview" + color: button.enabled ? (button.hovered ? button.textHoverColor : button.textColor): button.textDisabledColor + font: UM.Theme.getFont("action_button") + visible: text != "" + renderType: Text.NativeRendering + anchors.verticalCenter: parent.verticalCenter + } + } + + background: Rectangle + { + id: backgroundRect + color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor + radius: UM.Theme.getSize("action_button_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor + Behavior on color { ColorAnimation { duration: 50 } } + } + + MouseArea + { + id: mouseArea + anchors.fill: parent + onPressed: mouse.accepted = false + hoverEnabled: true + } +} diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/SliceProcessWidget.qml new file mode 100644 index 0000000000..67005cb133 --- /dev/null +++ b/resources/qml/SliceProcessWidget.qml @@ -0,0 +1,62 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.3 + +import UM 1.1 as UM +import Cura 1.0 as Cura + +Column +{ + id: widget + + spacing: UM.Theme.getSize("default_margin").height + + UM.I18nCatalog + { + id: catalog + name: "cura" + } + + property real progress: UM.Backend.progress + property int backendState: UM.Backend.state + + Rectangle + { + id: progressBar + width: parent.width + height: UM.Theme.getSize("progressbar").height + visible: widget.backendState == 2 + radius: UM.Theme.getSize("progressbar_radius").width + color: UM.Theme.getColor("progressbar_background") + + Rectangle + { + width: Math.max(parent.width * base.progress) + height: parent.height + radius: UM.Theme.getSize("progressbar_radius").width + color: UM.Theme.getColor("progressbar_control") + } + } + + Cura.ActionButton + { + id: prepareButton + width: UM.Theme.getSize("action_panel_button").width + height: UM.Theme.getSize("action_panel_button").height + text: widget.backendState == 1 ? catalog.i18nc("@button", "Prepare") : catalog.i18nc("@button", "Cancel") + onClicked: + { + if ([1, 5].indexOf(widget.backendState) != -1) + { + CuraApplication.backend.forceSlice() + } + else + { + CuraApplication.backend.stopSlicing() + } + } + } +} diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 29e3774e1f..e840a08a75 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -378,10 +378,14 @@ "configuration_selector_mode_tabs": [0.0, 3.0], "action_panel_widget": [35.0, 0.0], + "action_panel_button": [15.0, 3.0], + "machine_selector_widget": [28.0, 4.5], "views_selector": [0.0, 4.0], + "default_radius": [0.25, 0.25], + "wide_lining": [0.5, 0.5], "thick_lining": [0.2, 0.2], "default_lining": [0.08, 0.08], From e486bf8b440dd3a392779821e4720f53537f66c3 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 29 Oct 2018 15:55:16 +0100 Subject: [PATCH 0103/1039] Change the primary color to a slightly different kind of blue. Contributes to CURA-5786. --- resources/themes/cura-light/theme.json | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e840a08a75..cbd5b29e87 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -75,7 +75,7 @@ "lining": [192, 193, 194, 255], "viewport_overlay": [0, 0, 0, 192], - "primary": [12, 169, 227, 255], + "primary": [50, 130, 255, 255], "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], "border": [127, 127, 127, 255], @@ -106,10 +106,10 @@ "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], - "text_link": [12, 169, 227, 255], + "text_link": [50, 130, 255, 255], "text_inactive": [174, 174, 174, 255], "text_hover": [70, 84, 113, 255], - "text_pressed": [12, 169, 227, 255], + "text_pressed": [50, 130, 255, 255], "text_subtext": [0, 0, 0, 255], "text_medium": [128, 128, 128, 255], "text_emphasis": [255, 255, 255, 255], @@ -152,16 +152,16 @@ "action_button_border": [127, 127, 127, 255], "action_button_hovered": [255, 255, 255, 255], "action_button_hovered_text": [31, 36, 39, 255], - "action_button_hovered_border": [12, 169, 227, 255], + "action_button_hovered_border": [50, 130, 255, 255], "action_button_active": [255, 255, 255, 255], "action_button_active_text": [0, 0, 0, 255], - "action_button_active_border": [12, 169, 227, 255], + "action_button_active_border": [50, 130, 255, 255], "action_button_disabled": [245, 245, 245, 255], "action_button_disabled_text": [127, 127, 127, 255], "action_button_disabled_border": [245, 245, 245, 255], - "print_button_ready": [12, 169, 227, 255], - "print_button_ready_border": [12, 169, 227, 255], + "print_button_ready": [50, 130, 255, 255], + "print_button_ready_border": [50, 130, 255, 255], "print_button_ready_text": [255, 255, 255, 255], "print_button_ready_hovered": [30, 186, 245, 243], "print_button_ready_hovered_border": [30, 186, 245, 243], @@ -193,7 +193,7 @@ "setting_control_selected": [31, 36, 39, 255], "setting_control_highlight": [255, 255, 255, 255], "setting_control_border": [127, 127, 127, 255], - "setting_control_border_highlight": [12, 169, 227, 255], + "setting_control_border_highlight": [50, 130, 255, 255], "setting_control_text": [27, 27, 27, 255], "setting_control_depth_line": [127, 127, 127, 255], "setting_control_button": [127, 127, 127, 255], @@ -231,18 +231,18 @@ "checkbox": [255, 255, 255, 255], "checkbox_hover": [255, 255, 255, 255], "checkbox_border": [64, 69, 72, 255], - "checkbox_border_hover": [12, 169, 227, 255], + "checkbox_border_hover": [50, 130, 255, 255], "checkbox_mark": [119, 122, 124, 255], "checkbox_text": [27, 27, 27, 255], "mode_switch": [255, 255, 255, 255], "mode_switch_hover": [255, 255, 255, 255], "mode_switch_border": [127, 127, 127, 255], - "mode_switch_border_hover": [12, 169, 227, 255], + "mode_switch_border_hover": [50, 130, 255, 255], "mode_switch_handle": [31, 36, 39, 255], "mode_switch_text": [31, 36, 39, 255], "mode_switch_text_hover": [31, 36, 39, 255], - "mode_switch_text_checked": [12, 169, 227, 255], + "mode_switch_text_checked": [50, 130, 255, 255], "tooltip": [68, 192, 255, 255], "tooltip_text": [255, 255, 255, 255], @@ -253,9 +253,9 @@ "message_shadow": [0, 0, 0, 120], "message_border": [127, 127, 127, 255], "message_text": [0, 0, 0, 255], - "message_button": [12, 169, 227, 255], - "message_button_hover": [12, 169, 227, 255], - "message_button_active": [12, 169, 227, 255], + "message_button": [50, 130, 255, 255], + "message_button_hover": [50, 130, 255, 255], + "message_button_active": [50, 130, 255, 255], "message_button_text": [255, 255, 255, 255], "message_button_text_hover": [255, 255, 255, 255], "message_button_text_active": [255, 255, 255, 255], @@ -266,7 +266,7 @@ "status_offline": [0, 0, 0, 255], "status_ready": [0, 205, 0, 255], - "status_busy": [12, 169, 227, 255], + "status_busy": [50, 130, 255, 255], "status_paused": [255, 140, 0, 255], "status_stopped": [236, 82, 80, 255], "status_unknown": [127, 127, 127, 255], @@ -278,7 +278,7 @@ "all_axis": [255, 255, 255, 255], "viewport_background": [245, 245, 245, 255], - "volume_outline": [12, 169, 227, 255], + "volume_outline": [50, 130, 255, 255], "buildplate": [244, 244, 244, 255], "buildplate_grid": [129, 131, 134, 255], "buildplate_grid_minor": [230, 230, 231, 255], @@ -291,7 +291,7 @@ "model_overhang": [255, 0, 0, 255], "model_unslicable": [122, 122, 122, 255], "model_unslicable_alt": [172, 172, 127, 255], - "model_selection_outline": [12, 169, 227, 255], + "model_selection_outline": [50, 130, 255, 255], "model_non_printing": [122, 122, 122, 255], "xray": [26, 26, 62, 255], @@ -317,12 +317,12 @@ "configuration_item_text_active": [0, 0, 0, 255], "configuration_item_border": [127, 127, 127, 255], "configuration_item_border_active": [12, 169, 227, 32], - "configuration_item_border_hover": [12, 169, 227, 255], + "configuration_item_border_hover": [50, 130, 255, 255], - "tab_status_connected": [12, 169, 227, 255], + "tab_status_connected": [50, 130, 255, 255], "tab_status_disconnected": [200, 200, 200, 255], - "printer_config_matched": [12, 169, 227, 255], + "printer_config_matched": [50, 130, 255, 255], "printer_config_mismatch": [127, 127, 127, 255], "toolbox_header_button_text_active": [0, 0, 0, 255], @@ -346,12 +346,12 @@ "monitor_pill_background": [245, 245, 245, 255], "monitor_placeholder_image": [230, 230, 230, 255], "monitor_printer_icon_inactive": [154, 154, 154, 255], - "monitor_printer_icon": [12, 169, 227, 255], + "monitor_printer_icon": [50, 130, 255, 255], "monitor_progress_background_text": [0,0,0,255], "monitor_progress_background": [245, 245, 245, 255], "monitor_progress_fill_inactive": [154, 154, 154, 255], "monitor_progress_fill_text": [255,255,255,255], - "monitor_progress_fill": [12, 169, 227, 255], + "monitor_progress_fill": [50, 130, 255, 255], "monitor_shadow": [0, 0, 0, 63], "monitor_skeleton_fill": [245, 245, 245, 255], "monitor_skeleton_fill_dark": [216, 216, 216, 255], @@ -440,8 +440,8 @@ "tool_button_border": [1.0, 0], - "progressbar": [26.0, 0.4], - "progressbar_radius": [0, 0], + "progressbar": [26.0, 0.75], + "progressbar_radius": [0.15, 0.15], "progressbar_control": [8.0, 0.4], "scrollbar": [0.75, 0.5], From 0a3803d6651c66cb81fb9d2b82187fe79736aac3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 29 Oct 2018 16:21:16 +0100 Subject: [PATCH 0104/1039] Add CuraView, which does something similar to CuraStage So instead of relying on strange activeViewProxy, it's up to the CuraView to provide a set of components. These can subsequently be used by the active stage again. CURA-5829 --- cura/CuraView.py | 24 ++++++++++++++++++++++++ plugins/PreviewStage/PreviewMenu.qml | 2 +- plugins/SimulationView/SimulationView.py | 15 +++++++++++---- plugins/SimulationView/__init__.py | 3 +++ 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 cura/CuraView.py diff --git a/cura/CuraView.py b/cura/CuraView.py new file mode 100644 index 0000000000..978c651b43 --- /dev/null +++ b/cura/CuraView.py @@ -0,0 +1,24 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt5.QtCore import pyqtProperty, QUrl + +from UM.View.View import View + + +# Since Cura has a few pre-defined "space claims" for the locations of certain components, we've provided some structure +# to indicate this. +# MainComponent works in the same way the MainComponent of a stage. +# the stageMenuComponent returns an item that should be used somehwere in the stage menu. It's up to the active stage +# to actually do something with this. +class CuraView(View): + def __init__(self, parent = None) -> None: + super().__init__(parent) + + @pyqtProperty(QUrl, constant = True) + def mainComponent(self) -> QUrl: + return self.getDisplayComponent("main") + + @pyqtProperty(QUrl, constant = True) + def stageMenuComponent(self) -> QUrl: + return self.getDisplayComponent("menu") \ No newline at end of file diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index ae875fb0a2..5ed0e697a9 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -78,7 +78,7 @@ Item height: childrenRect.height width: childrenRect.width - source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" + source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" } Cura.PrintSetupSelector diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 0ae8b4d9e4..0ef08b22d7 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -26,8 +26,8 @@ from UM.View.GL.OpenGL import OpenGL from UM.View.GL.OpenGLContext import OpenGLContext from UM.View.GL.ShaderProgram import ShaderProgram -from UM.View.View import View from UM.i18n import i18nCatalog +from cura.CuraView import CuraView from cura.Scene.ConvexHullNode import ConvexHullNode from cura.CuraApplication import CuraApplication @@ -48,15 +48,15 @@ catalog = i18nCatalog("cura") ## View used to display g-code paths. -class SimulationView(View): +class SimulationView(CuraView): # Must match SimulationView.qml LAYER_VIEW_TYPE_MATERIAL_TYPE = 0 LAYER_VIEW_TYPE_LINE_TYPE = 1 LAYER_VIEW_TYPE_FEEDRATE = 2 LAYER_VIEW_TYPE_THICKNESS = 3 - def __init__(self) -> None: - super().__init__() + def __init__(self, parent = None) -> None: + super().__init__(parent) self._max_layers = 0 self._current_layer_num = 0 @@ -113,6 +113,13 @@ class SimulationView(View): self._wireprint_warning_message = Message(catalog.i18nc("@info:status", "Cura does not accurately display layers when Wire Printing is enabled"), title = catalog.i18nc("@info:title", "Simulation View")) + Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) + + def _onEngineCreated(self) -> None: + menu_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("SimulationView"), + "SimulationView.qml") + self.addDisplayComponent("menu", menu_component_path) + def _evaluateCompatibilityMode(self) -> bool: return OpenGLContext.isLegacyOpenGL() or bool(Application.getInstance().getPreferences().getValue("view/force_layer_view_compatibility_mode")) diff --git a/plugins/SimulationView/__init__.py b/plugins/SimulationView/__init__.py index 360fdc1de9..3f89ee490f 100644 --- a/plugins/SimulationView/__init__.py +++ b/plugins/SimulationView/__init__.py @@ -8,6 +8,7 @@ from . import SimulationViewProxy, SimulationView catalog = i18nCatalog("cura") + def getMetaData(): return { "view": { @@ -17,9 +18,11 @@ def getMetaData(): } } + def createSimulationViewProxy(engine, script_engine): return SimulationViewProxy.SimulationViewProxy() + def register(app): simulation_view = SimulationView.SimulationView() qmlRegisterSingletonType(SimulationViewProxy.SimulationViewProxy, "UM", 1, 0, "SimulationView", simulation_view.getProxy) From aa75b64b5bf121c2908ebdf550e89969945e8fb0 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 30 Oct 2018 09:48:56 +0100 Subject: [PATCH 0105/1039] Use the lining color to the default ouline color for the account widget. Contributes to CURA-5784. --- resources/qml/Account/AccountDetails.qml | 2 +- resources/qml/Account/AccountWidget.qml | 2 +- resources/themes/cura-light/theme.json | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index a88fb77956..c723ca20fb 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -22,7 +22,7 @@ Column height: UM.Theme.getSize("avatar_image").height anchors.horizontalCenter: parent.horizontalCenter source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user") - outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") + outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("lining") } Label diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index 46092e4153..cdae457ac8 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -26,7 +26,7 @@ Button anchors.horizontalCenter: accountWidget.horizontalCenter source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user") - outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("account_widget_outline_inactive") + outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("lining") } onClicked: popup.opened ? popup.close() : popup.open() diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 29e3774e1f..40c776ecf1 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -97,7 +97,6 @@ "main_window_header_secondary_button_outline_hovered": [255, 255, 255, 255], "account_widget_outline_active": [70, 66, 126, 255], - "account_widget_outline_inactive": [229, 229, 229, 255], "machine_selector_bar": [31, 36, 39, 255], "machine_selector_active": [68, 72, 75, 255], From b6ea0e638578daa32fcf383335b112e8efcce7e8 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 30 Oct 2018 10:38:53 +0100 Subject: [PATCH 0106/1039] Make the height of the stage buttons themable. Now the height has to be 28px as indicated by the UXers. Contributes to CURA-5784. --- resources/qml/MainWindow/MainWindowHeader.qml | 2 +- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 92d9d8ee26..3f088e782f 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -60,7 +60,7 @@ Rectangle anchors.verticalCenter: parent.verticalCenter exclusiveGroup: mainWindowHeaderMenuGroup style: UM.Theme.styles.main_window_header_tab - height: Math.round(0.56 * UM.Theme.getSize("main_window_header").height) + height: UM.Theme.getSize("main_window_header_button").height onClicked: UM.Controller.setActiveStage(model.id) iconSource: model.stage.iconSource diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 40c776ecf1..e8de7c98ac 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -361,7 +361,7 @@ "window_minimum_size": [106, 66], "main_window_header": [0.0, 4.5], - "main_window_header_button": [8, 4], + "main_window_header_button": [8, 2.35], "main_window_header_button_icon": [1.2, 1.2], "stage_menu": [0.0, 4.5], From 79ed15aee19a757a3c09cd8ad0c634b57d34a527 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 30 Oct 2018 11:52:08 +0100 Subject: [PATCH 0107/1039] Add the label and the icon indicating when Cura is unable to slice. Contributes to CURA-5786. --- resources/qml/ActionPanelWidget.qml | 1 + resources/qml/SliceProcessWidget.qml | 87 +++++++++++++++++++++++--- resources/themes/cura-light/theme.json | 3 +- 3 files changed, 80 insertions(+), 11 deletions(-) diff --git a/resources/qml/ActionPanelWidget.qml b/resources/qml/ActionPanelWidget.qml index d1fe999731..b4a9b4e4ec 100644 --- a/resources/qml/ActionPanelWidget.qml +++ b/resources/qml/ActionPanelWidget.qml @@ -37,6 +37,7 @@ Rectangle } Behavior on height { NumberAnimation { duration: 100 } } + Behavior on width { NumberAnimation { duration: 100 } } Component { diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/SliceProcessWidget.qml index 67005cb133..561e38c372 100644 --- a/resources/qml/SliceProcessWidget.qml +++ b/resources/qml/SliceProcessWidget.qml @@ -12,7 +12,9 @@ Column { id: widget - spacing: UM.Theme.getSize("default_margin").height + width: UM.Theme.getSize("action_panel_button").width + + spacing: UM.Theme.getSize("thin_margin").height UM.I18nCatalog { @@ -23,30 +25,84 @@ Column property real progress: UM.Backend.progress property int backendState: UM.Backend.state - Rectangle + Item + { + id: message + width: parent.width + height: childrenRect.height + visible: widget.backendState == 4 + + UM.RecolorImage + { + id: warningImage + + anchors.left: parent.left + + source: UM.Theme.getIcon("warning") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + + sourceSize.width: width + sourceSize.height: height + + color: UM.Theme.getColor("warning") + } + + Label + { + id: unableToSliceLabel + anchors.left: warningImage.right + anchors.leftMargin: UM.Theme.getSize("thin_margin").width + text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") + color: UM.Theme.getColor("warning") + font: UM.Theme.getFont("very_small") + } + } + + // Progress bar, only visible when the backend is in the process of slice the printjob + ProgressBar { id: progressBar width: parent.width height: UM.Theme.getSize("progressbar").height + value: progress visible: widget.backendState == 2 - radius: UM.Theme.getSize("progressbar_radius").width - color: UM.Theme.getColor("progressbar_background") - Rectangle + background: Rectangle { - width: Math.max(parent.width * base.progress) - height: parent.height + anchors.fill: parent radius: UM.Theme.getSize("progressbar_radius").width - color: UM.Theme.getColor("progressbar_control") + color: UM.Theme.getColor("progressbar_background") + } + + contentItem: Item + { + anchors.fill: parent + Rectangle + { + width: progressBar.visualPosition * parent.width + height: parent.height + radius: UM.Theme.getSize("progressbar_radius").width + color: UM.Theme.getColor("progressbar_control") + } } } Cura.ActionButton { id: prepareButton - width: UM.Theme.getSize("action_panel_button").width + width: parent.width height: UM.Theme.getSize("action_panel_button").height - text: widget.backendState == 1 ? catalog.i18nc("@button", "Prepare") : catalog.i18nc("@button", "Cancel") + text: autoSlice ? catalog.i18nc("@button", "Auto slicing...") : (widget.backendState == 1 ? catalog.i18nc("@button", "Slice") : catalog.i18nc("@button", "Cancel")) + enabled: !autoSlice + + // Get the current value from the preferences + property bool autoSlice: UM.Preferences.getValue("general/auto_slice") + + disabledColor: "transparent" + textDisabledColor: UM.Theme.getColor("primary") + outlineDisabledColor: "transparent" + onClicked: { if ([1, 5].indexOf(widget.backendState) != -1) @@ -59,4 +115,15 @@ Column } } } + + // React when the user changes the preference of having the auto slice enabled + Connections + { + target: UM.Preferences + onPreferenceChanged: + { + var autoSlice = UM.Preferences.getValue("general/auto_slice") + prepareButton.autoSlice = autoSlice + } + } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d695ba12cf..1473a75eec 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -116,6 +116,7 @@ "text_scene_hover": [70, 84, 113, 255], "error": [255, 140, 0, 255], + "warning": [255, 190, 35, 255], "button": [31, 36, 39, 255], "button_hover": [68, 72, 75, 255], @@ -210,7 +211,7 @@ "material_compatibility_warning": [0, 0, 0, 255], "progressbar_background": [245, 245, 245, 255], - "progressbar_control": [31, 36, 39, 255], + "progressbar_control": [50, 130, 255, 255], "slider_groove": [245, 245, 245, 255], "slider_groove_border": [127, 127, 127, 255], From 45af4eec907a0113145cc15f14b11fa1b5185a51 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 30 Oct 2018 12:08:17 +0100 Subject: [PATCH 0108/1039] Add Shortcut action Ctrl+P to slice or stop slicing. Contributes to CURA-5786. --- resources/qml/SliceProcessWidget.qml | 58 +++++++++++++++++++++------- 1 file changed, 44 insertions(+), 14 deletions(-) diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/SliceProcessWidget.qml index 561e38c372..c9ff7178fd 100644 --- a/resources/qml/SliceProcessWidget.qml +++ b/resources/qml/SliceProcessWidget.qml @@ -4,6 +4,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 import QtQuick.Layouts 1.3 +import QtQuick.Controls 1.4 as Controls1 import UM 1.1 as UM import Cura 1.0 as Cura @@ -25,12 +26,24 @@ Column property real progress: UM.Backend.progress property int backendState: UM.Backend.state + function sliceOrStopSlicing() + { + if ([1, 5].indexOf(widget.backendState) != -1) // == BackendState.NotStarted or BackendState.Disabled + { + CuraApplication.backend.forceSlice() + } + else + { + CuraApplication.backend.stopSlicing() + } + } + Item { id: message width: parent.width height: childrenRect.height - visible: widget.backendState == 4 + visible: widget.backendState == 4 // == BackendState.Error UM.RecolorImage { @@ -66,7 +79,7 @@ Column width: parent.width height: UM.Theme.getSize("progressbar").height value: progress - visible: widget.backendState == 2 + visible: widget.backendState == 2 // == BackendState.Processing background: Rectangle { @@ -93,7 +106,21 @@ Column id: prepareButton width: parent.width height: UM.Theme.getSize("action_panel_button").height - text: autoSlice ? catalog.i18nc("@button", "Auto slicing...") : (widget.backendState == 1 ? catalog.i18nc("@button", "Slice") : catalog.i18nc("@button", "Cancel")) + text: + { + if (autoSlice) + { + return catalog.i18nc("@button", "Auto slicing...") + } + else if ([1, 5].indexOf(widget.backendState) != -1) // == BackendState.NotStarted or BackendState.Disabled + { + return catalog.i18nc("@button", "Slice") + } + else + { + return catalog.i18nc("@button", "Cancel") + } + } enabled: !autoSlice // Get the current value from the preferences @@ -103,17 +130,7 @@ Column textDisabledColor: UM.Theme.getColor("primary") outlineDisabledColor: "transparent" - onClicked: - { - if ([1, 5].indexOf(widget.backendState) != -1) - { - CuraApplication.backend.forceSlice() - } - else - { - CuraApplication.backend.stopSlicing() - } - } + onClicked: sliceOrStopSlicing() } // React when the user changes the preference of having the auto slice enabled @@ -126,4 +143,17 @@ Column prepareButton.autoSlice = autoSlice } } + + // Shortcut for "slice/stop" + Controls1.Action + { + shortcut: "Ctrl+P" + onTriggered: + { + if (prepareButton.enabled) + { + sliceOrStopSlicing() + } + } + } } From 00d75cd4d600866933147e9a0ae75e790ebf95e6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 30 Oct 2018 12:28:51 +0100 Subject: [PATCH 0109/1039] Tweak the colors of the disabled state. Contributes to CURA-5786. --- resources/qml/SliceProcessWidget.qml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/SliceProcessWidget.qml index c9ff7178fd..98f708a9b0 100644 --- a/resources/qml/SliceProcessWidget.qml +++ b/resources/qml/SliceProcessWidget.qml @@ -108,27 +108,24 @@ Column height: UM.Theme.getSize("action_panel_button").height text: { + if ([1, 4, 5].indexOf(widget.backendState) != -1) // == BackendState.NotStarted or BackendState.Error or BackendState.Disabled + { + return catalog.i18nc("@button", "Slice") + } if (autoSlice) { return catalog.i18nc("@button", "Auto slicing...") } - else if ([1, 5].indexOf(widget.backendState) != -1) // == BackendState.NotStarted or BackendState.Disabled - { - return catalog.i18nc("@button", "Slice") - } - else - { - return catalog.i18nc("@button", "Cancel") - } + return catalog.i18nc("@button", "Cancel") } - enabled: !autoSlice + enabled: !autoSlice && ([1, 2].indexOf(widget.backendState) != -1) // Get the current value from the preferences property bool autoSlice: UM.Preferences.getValue("general/auto_slice") - disabledColor: "transparent" - textDisabledColor: UM.Theme.getColor("primary") - outlineDisabledColor: "transparent" + disabledColor: ([1, 2].indexOf(widget.backendState) == -1) ? UM.Theme.getColor("action_button_disabled") : "transparent" + textDisabledColor: ([1, 2].indexOf(widget.backendState) == -1) ? UM.Theme.getColor("action_button_disabled_text") : UM.Theme.getColor("primary") + outlineDisabledColor: ([1, 2].indexOf(widget.backendState) == -1) ? UM.Theme.getColor("action_button_disabled_border") : "transparent" onClicked: sliceOrStopSlicing() } From 027bf204cd1ff6dba53b9e386e183d2251718020 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 30 Oct 2018 15:12:03 +0100 Subject: [PATCH 0110/1039] Use the BackendState enumeration in QML to not use integers but use the enumeration literals. Contributes to CURA-5786. --- resources/qml/SliceProcessWidget.qml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/SliceProcessWidget.qml index 98f708a9b0..b9c0dc39f9 100644 --- a/resources/qml/SliceProcessWidget.qml +++ b/resources/qml/SliceProcessWidget.qml @@ -28,7 +28,7 @@ Column function sliceOrStopSlicing() { - if ([1, 5].indexOf(widget.backendState) != -1) // == BackendState.NotStarted or BackendState.Disabled + if ([UM.Backend.NotStarted, UM.Backend.Disabled].indexOf(widget.backendState) != -1) { CuraApplication.backend.forceSlice() } @@ -43,7 +43,7 @@ Column id: message width: parent.width height: childrenRect.height - visible: widget.backendState == 4 // == BackendState.Error + visible: widget.backendState == UM.Backend.Error UM.RecolorImage { @@ -79,7 +79,7 @@ Column width: parent.width height: UM.Theme.getSize("progressbar").height value: progress - visible: widget.backendState == 2 // == BackendState.Processing + visible: widget.backendState == UM.Backend.Processing background: Rectangle { @@ -108,7 +108,7 @@ Column height: UM.Theme.getSize("action_panel_button").height text: { - if ([1, 4, 5].indexOf(widget.backendState) != -1) // == BackendState.NotStarted or BackendState.Error or BackendState.Disabled + if ([UM.Backend.NotStarted, UM.Backend.Error, UM.Backend.Disabled].indexOf(widget.backendState) != -1) { return catalog.i18nc("@button", "Slice") } @@ -118,14 +118,16 @@ Column } return catalog.i18nc("@button", "Cancel") } - enabled: !autoSlice && ([1, 2].indexOf(widget.backendState) != -1) + enabled: !autoSlice && !disabledSlice // Get the current value from the preferences property bool autoSlice: UM.Preferences.getValue("general/auto_slice") + // Disable the slice process when + property bool disabledSlice: [UM.Backend.Done, UM.Backend.Error, UM.Backend.Disabled].indexOf(widget.backendState) != -1 - disabledColor: ([1, 2].indexOf(widget.backendState) == -1) ? UM.Theme.getColor("action_button_disabled") : "transparent" - textDisabledColor: ([1, 2].indexOf(widget.backendState) == -1) ? UM.Theme.getColor("action_button_disabled_text") : UM.Theme.getColor("primary") - outlineDisabledColor: ([1, 2].indexOf(widget.backendState) == -1) ? UM.Theme.getColor("action_button_disabled_border") : "transparent" + disabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled") : "transparent" + textDisabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled_text") : UM.Theme.getColor("primary") + outlineDisabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled_border") : "transparent" onClicked: sliceOrStopSlicing() } From eabd7c6b5eac0fa4fd63b2f8bb9177dd115b0767 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 30 Oct 2018 17:07:07 +0100 Subject: [PATCH 0111/1039] Start mocking up the panel the user gets after slicing. Also the IconLabel component was created with the aim to be reused in several places. Contributes to CURA-5786. --- resources/qml/ActionPanelWidget.qml | 2 +- resources/qml/IconLabel.qml | 48 +++++++ resources/qml/OutputProcessWidget.qml | 139 ++++++++++++-------- resources/qml/SliceProcessWidget.qml | 32 +---- resources/qml/qmldir | 3 +- resources/themes/cura-light/icons/clock.svg | 53 ++++++++ resources/themes/cura-light/icons/info.svg | 48 +++++++ resources/themes/cura-light/icons/spool.svg | 7 + 8 files changed, 251 insertions(+), 81 deletions(-) create mode 100644 resources/qml/IconLabel.qml create mode 100644 resources/themes/cura-light/icons/clock.svg create mode 100644 resources/themes/cura-light/icons/info.svg create mode 100644 resources/themes/cura-light/icons/spool.svg diff --git a/resources/qml/ActionPanelWidget.qml b/resources/qml/ActionPanelWidget.qml index b4a9b4e4ec..6c76c31f1b 100644 --- a/resources/qml/ActionPanelWidget.qml +++ b/resources/qml/ActionPanelWidget.qml @@ -21,7 +21,7 @@ Rectangle radius: UM.Theme.getSize("default_radius").width visible: CuraApplication.platformActivity - property bool backendStatusDone: UM.Backend.state == 3 + property bool backendStatusDone: UM.Backend.state == UM.Backend.Done Loader { diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml new file mode 100644 index 0000000000..2e765e2dbc --- /dev/null +++ b/resources/qml/IconLabel.qml @@ -0,0 +1,48 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.3 + +import UM 1.1 as UM + +// This item will show a label with a squared icon in the left +Item +{ + id: container + + property alias text: label.text + property alias source: icon.source + property alias color: label.color + property alias font: label.font + + height: childrenRect.height + + UM.RecolorImage + { + id: icon + + anchors.left: parent.left + + source: UM.Theme.getIcon("dot") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + + sourceSize.width: width + sourceSize.height: height + + color: label.color + } + + Label + { + id: label + anchors.left: icon.right + anchors.leftMargin: UM.Theme.getSize("thin_margin").width + text: "Empty label" + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("very_small") + renderType: Text.NativeRendering + } +} \ No newline at end of file diff --git a/resources/qml/OutputProcessWidget.qml b/resources/qml/OutputProcessWidget.qml index 612e4f286f..244fba57ef 100644 --- a/resources/qml/OutputProcessWidget.qml +++ b/resources/qml/OutputProcessWidget.qml @@ -4,69 +4,104 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 import QtQuick.Layouts 1.3 +import QtQuick.Controls 1.4 as Controls1 import UM 1.1 as UM +import Cura 1.0 as Cura -Button +Column { - id: button - property alias cursorShape: mouseArea.cursorShape - property alias iconSource: buttonIcon.source - property alias textFont: buttonText.font - property alias cornerRadius: backgroundRect.radius - property var color: UM.Theme.getColor("primary") - property var hoverColor: UM.Theme.getColor("primary_hover") - property var disabledColor: color - property var textColor: UM.Theme.getColor("button_text") - property var textHoverColor: UM.Theme.getColor("button_text_hover") - property var textDisabledColor: textColor - property var outlineColor: color - property var outlineHoverColor: hoverColor - property var outlineDisabledColor: outlineColor + id: widget - contentItem: Row + spacing: UM.Theme.getSize("thin_margin").height + + UM.I18nCatalog { + id: catalog + name: "cura" + } + + Item + { + id: information + width: parent.width + height: childrenRect.height + + Column + { + id: timeAndCostsInformation + + anchors + { + left: parent.left + right: moreInformationIcon.left + rightMargin: UM.Theme.getSize("thin_margin").height + } + + Cura.IconLabel + { + id: estimatedTime + width: parent.width + + text: "Time" + source: UM.Theme.getIcon("clock") + font: UM.Theme.getFont("small") + } + + Cura.IconLabel + { + id: estimatedCosts + width: parent.width + + text: "Material costs" + source: UM.Theme.getIcon("spool") + font: UM.Theme.getFont("very_small") + } + } + UM.RecolorImage { - id: buttonIcon - source: "" - height: Math.round(0.6 * parent.height) - width: height + id: moreInformationIcon + + anchors + { + right: parent.right + verticalCenter: timeAndCostsInformation.verticalCenter + } + + source: UM.Theme.getIcon("info") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + sourceSize.width: width sourceSize.height: height - color: button.hovered ? button.textHoverColor : button.textColor - visible: source != "" - anchors.verticalCenter: parent.verticalCenter - Behavior on color { ColorAnimation { duration: 50 } } - } - Label + color: UM.Theme.getColor("text_medium") + } + } + + Row + { + id: buttonRow + spacing: UM.Theme.getSize("default_margin").width + + Cura.ActionButton { - id: buttonText - text: "Preview" - color: button.enabled ? (button.hovered ? button.textHoverColor : button.textColor): button.textDisabledColor - font: UM.Theme.getFont("action_button") - visible: text != "" - renderType: Text.NativeRendering - anchors.verticalCenter: parent.verticalCenter + height: UM.Theme.getSize("action_panel_button").height + text: catalog.i18nc("@button", "Preview") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + onClicked: console.log("Clicking preview") + } + + Cura.ActionButton + { + width: UM.Theme.getSize("account_button").width + height: UM.Theme.getSize("action_panel_button").height + text: catalog.i18nc("@button", "Save to file") + onClicked: console.log("Clicking action button") } } - - background: Rectangle - { - id: backgroundRect - color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor - radius: UM.Theme.getSize("action_button_radius").width - border.width: UM.Theme.getSize("default_lining").width - border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor - Behavior on color { ColorAnimation { duration: 50 } } - } - - MouseArea - { - id: mouseArea - anchors.fill: parent - onPressed: mouse.accepted = false - hoverEnabled: true - } -} +} \ No newline at end of file diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/SliceProcessWidget.qml index b9c0dc39f9..38a529b04e 100644 --- a/resources/qml/SliceProcessWidget.qml +++ b/resources/qml/SliceProcessWidget.qml @@ -38,38 +38,16 @@ Column } } - Item + Cura.IconLabel { id: message width: parent.width - height: childrenRect.height visible: widget.backendState == UM.Backend.Error - UM.RecolorImage - { - id: warningImage - - anchors.left: parent.left - - source: UM.Theme.getIcon("warning") - width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height - - sourceSize.width: width - sourceSize.height: height - - color: UM.Theme.getColor("warning") - } - - Label - { - id: unableToSliceLabel - anchors.left: warningImage.right - anchors.leftMargin: UM.Theme.getSize("thin_margin").width - text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") - color: UM.Theme.getColor("warning") - font: UM.Theme.getFont("very_small") - } + text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") + source: UM.Theme.getIcon("warning") + color: UM.Theme.getColor("warning") + font: UM.Theme.getFont("very_small") } // Progress bar, only visible when the backend is in the process of slice the printjob diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 0e5e316409..22e3ff1303 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -7,4 +7,5 @@ PrintSetupSelector 1.0 PrintSetupSelector.qml ActionButton 1.0 ActionButton.qml MaterialMenu 1.0 MaterialMenu.qml NozzleMenu 1.0 NozzleMenu.qml -ActionPanelWidget 1.0 ActionPanelWidget.qml \ No newline at end of file +ActionPanelWidget 1.0 ActionPanelWidget.qml +IconLabel 1.0 IconLabel.qml \ No newline at end of file diff --git a/resources/themes/cura-light/icons/clock.svg b/resources/themes/cura-light/icons/clock.svg new file mode 100644 index 0000000000..0b6cb78881 --- /dev/null +++ b/resources/themes/cura-light/icons/clock.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/themes/cura-light/icons/info.svg b/resources/themes/cura-light/icons/info.svg new file mode 100644 index 0000000000..97e4fc4f35 --- /dev/null +++ b/resources/themes/cura-light/icons/info.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/themes/cura-light/icons/spool.svg b/resources/themes/cura-light/icons/spool.svg new file mode 100644 index 0000000000..0d8ae42d9d --- /dev/null +++ b/resources/themes/cura-light/icons/spool.svg @@ -0,0 +1,7 @@ + + + + + + + From f7730302187667e74a883e061f237440a0b90521 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Oct 2018 09:37:21 +0100 Subject: [PATCH 0112/1039] Add main stage to previewStage so that SimulationView can use it CURA-5829 --- plugins/PreviewStage/PreviewMain.qml | 19 ++ plugins/PreviewStage/PreviewStage.py | 2 + plugins/SimulationView/SimulationView.py | 7 +- .../SimulationViewMainComponent.qml | 212 +++++++++++++++++ ...ew.qml => SimulationViewMenuComponent.qml} | 224 ------------------ plugins/SimulationView/__init__.py | 1 - resources/qml/Cura.qml | 57 +++-- 7 files changed, 272 insertions(+), 250 deletions(-) create mode 100644 plugins/PreviewStage/PreviewMain.qml create mode 100644 plugins/SimulationView/SimulationViewMainComponent.qml rename plugins/SimulationView/{SimulationView.qml => SimulationViewMenuComponent.qml} (75%) diff --git a/plugins/PreviewStage/PreviewMain.qml b/plugins/PreviewStage/PreviewMain.qml new file mode 100644 index 0000000000..df7e09225f --- /dev/null +++ b/plugins/PreviewStage/PreviewMain.qml @@ -0,0 +1,19 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.4 +import QtQuick.Controls 1.2 +import QtQuick.Layouts 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.0 as UM +import Cura 1.0 as Cura + + +Loader +{ + id: previewMain + + source: UM.Controller.activeView != null && UM.Controller.activeView.mainComponent != null ? UM.Controller.activeView.mainComponent : "" + onSourceChanged: print("THE SOURCE IS", source) +} \ No newline at end of file diff --git a/plugins/PreviewStage/PreviewStage.py b/plugins/PreviewStage/PreviewStage.py index e41d4a592f..1aed95162a 100644 --- a/plugins/PreviewStage/PreviewStage.py +++ b/plugins/PreviewStage/PreviewStage.py @@ -30,4 +30,6 @@ class PreviewStage(CuraStage): plugin_path = self._application.getPluginRegistry().getPluginPath(self.getPluginId()) if plugin_path is not None: menu_component_path = os.path.join(plugin_path, "PreviewMenu.qml") + main_component_path = os.path.join(plugin_path, "PreviewMain.qml") self.addDisplayComponent("menu", menu_component_path) + self.addDisplayComponent("main", main_component_path) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 0ef08b22d7..f1bff5f3f7 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -117,7 +117,12 @@ class SimulationView(CuraView): def _onEngineCreated(self) -> None: menu_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("SimulationView"), - "SimulationView.qml") + "SimulationViewMenuComponent.qml") + + main_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("SimulationView"), + "SimulationViewMainComponent.qml") + + self.addDisplayComponent("main", main_component_path) self.addDisplayComponent("menu", menu_component_path) def _evaluateCompatibilityMode(self) -> bool: diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml new file mode 100644 index 0000000000..a4ec411124 --- /dev/null +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -0,0 +1,212 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.4 +import QtQuick.Controls 1.2 +import QtQuick.Layouts 1.1 +import QtQuick.Controls.Styles 1.1 + +import UM 1.0 as UM +import Cura 1.0 as Cura + +Item +{ + property bool is_simulation_playing: false + visible: UM.SimulationView.layerActivity && CuraApplication.platformActivity + + PathSlider + { + id: pathSlider + height: UM.Theme.getSize("slider_handle").width + width: 250 + + anchors.bottom: parent.bottom + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + + anchors.horizontalCenter: parent.horizontalCenter + + visible: !UM.SimulationView.compatibilityMode + + // Custom properties + handleValue: UM.SimulationView.currentPath + maximumValue: UM.SimulationView.numPaths + handleSize: UM.Theme.getSize("slider_handle").width + trackThickness: UM.Theme.getSize("slider_groove").width + trackColor: UM.Theme.getColor("slider_groove") + trackBorderColor: UM.Theme.getColor("slider_groove_border") + handleColor: UM.Theme.getColor("slider_handle") + handleActiveColor: UM.Theme.getColor("slider_handle_active") + rangeColor: UM.Theme.getColor("slider_groove_fill") + + // Update values when layer data changes. + Connections + { + target: UM.SimulationView + onMaxPathsChanged: pathSlider.setHandleValue(UM.SimulationView.currentPath) + onCurrentPathChanged: + { + // Only pause the simulation when the layer was changed manually, not when the simulation is running + if (pathSlider.manuallyChanged) + { + playButton.pauseSimulation() + } + pathSlider.setHandleValue(UM.SimulationView.currentPath) + } + } + + // Ensure that the slider handlers show the correct value after switching views. + Component.onCompleted: + { + pathSlider.setHandleValue(UM.SimulationView.currentPath) + } + + } + + Button + { + id: playButton + iconSource: !is_simulation_playing ? "./resources/simulation_resume.svg": "./resources/simulation_pause.svg" + style: UM.Theme.styles.small_tool_button + visible: !UM.SimulationView.compatibilityMode + anchors + { + right: pathSlider.left + verticalCenter: pathSlider.verticalCenter + } + + onClicked: + { + if(is_simulation_playing) + { + pauseSimulation() + } else + { + resumeSimulation() + } + } + + function pauseSimulation() + { + UM.SimulationView.setSimulationRunning(false) + simulationTimer.stop() + is_simulation_playing = false + layerSlider.manuallyChanged = true + pathSlider.manuallyChanged = true + } + + function resumeSimulation() + { + UM.SimulationView.setSimulationRunning(true) + simulationTimer.start() + layerSlider.manuallyChanged = false + pathSlider.manuallyChanged = false + } + } + + Timer + { + id: simulationTimer + interval: 100 + running: false + repeat: true + onTriggered: + { + var currentPath = UM.SimulationView.currentPath + var numPaths = UM.SimulationView.numPaths + var currentLayer = UM.SimulationView.currentLayer + var numLayers = UM.SimulationView.numLayers + + // When the user plays the simulation, if the path slider is at the end of this layer, we start + // the simulation at the beginning of the current layer. + if (!is_simulation_playing) + { + if (currentPath >= numPaths) + { + UM.SimulationView.setCurrentPath(0) + } + else + { + UM.SimulationView.setCurrentPath(currentPath + 1) + } + } + // If the simulation is already playing and we reach the end of a layer, then it automatically + // starts at the beginning of the next layer. + else + { + if (currentPath >= numPaths) + { + // At the end of the model, the simulation stops + if (currentLayer >= numLayers) + { + playButton.pauseSimulation() + } + else + { + UM.SimulationView.setCurrentLayer(currentLayer+1) + UM.SimulationView.setCurrentPath(0) + } + } + else + { + UM.SimulationView.setCurrentPath(currentPath+1) + } + } + // The status must be set here instead of in the resumeSimulation function otherwise it won't work + // correctly, because part of the logic is in this trigger function. + is_simulation_playing = true + } + } + + LayerSlider + { + id: layerSlider + + width: UM.Theme.getSize("slider_handle").width + height: UM.Theme.getSize("layerview_menu_size").height + + anchors + { + right: parent.right + verticalCenter: parent.verticalCenter + rightMargin: UM.Theme.getSize("default_margin").width + } + + // Custom properties + upperValue: UM.SimulationView.currentLayer + lowerValue: UM.SimulationView.minimumLayer + maximumValue: UM.SimulationView.numLayers + handleSize: UM.Theme.getSize("slider_handle").width + trackThickness: UM.Theme.getSize("slider_groove").width + trackColor: UM.Theme.getColor("slider_groove") + trackBorderColor: UM.Theme.getColor("slider_groove_border") + upperHandleColor: UM.Theme.getColor("slider_handle") + lowerHandleColor: UM.Theme.getColor("slider_handle") + rangeHandleColor: UM.Theme.getColor("slider_groove_fill") + handleActiveColor: UM.Theme.getColor("slider_handle_active") + handleLabelWidth: UM.Theme.getSize("slider_layerview_background").width + + // Update values when layer data changes + Connections + { + target: UM.SimulationView + onMaxLayersChanged: layerSlider.setUpperValue(UM.SimulationView.currentLayer) + onMinimumLayerChanged: layerSlider.setLowerValue(UM.SimulationView.minimumLayer) + onCurrentLayerChanged: + { + // Only pause the simulation when the layer was changed manually, not when the simulation is running + if (layerSlider.manuallyChanged) + { + playButton.pauseSimulation() + } + layerSlider.setUpperValue(UM.SimulationView.currentLayer) + } + } + + // Make sure the slider handlers show the correct value after switching views + Component.onCompleted: + { + layerSlider.setLowerValue(UM.SimulationView.minimumLayer) + layerSlider.setUpperValue(UM.SimulationView.currentLayer) + } + } +} \ No newline at end of file diff --git a/plugins/SimulationView/SimulationView.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml similarity index 75% rename from plugins/SimulationView/SimulationView.qml rename to plugins/SimulationView/SimulationViewMenuComponent.qml index 7a83a07ac1..91ef7a2794 100644 --- a/plugins/SimulationView/SimulationView.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -583,230 +583,6 @@ Item } } - Item - { - id: slidersBox - - width: parent.width - height: parent.height - visible: UM.SimulationView.layerActivity && CuraApplication.platformActivity - - anchors - { - top: parent.top - leftMargin: UM.Theme.getSize("slider_layerview_margin").height - left: parent.right - } - - PathSlider - { - id: pathSlider - - height: UM.Theme.getSize("slider_handle").width - anchors - { - verticalCenter: playButton.verticalCenter - left: playButton.right - leftMargin: UM.Theme.getSize("default_margin").width - right: parent.right - } - visible: !UM.SimulationView.compatibilityMode - - // custom properties - handleValue: UM.SimulationView.currentPath - maximumValue: UM.SimulationView.numPaths - handleSize: UM.Theme.getSize("slider_handle").width - trackThickness: UM.Theme.getSize("slider_groove").width - trackColor: UM.Theme.getColor("slider_groove") - trackBorderColor: UM.Theme.getColor("slider_groove_border") - handleColor: UM.Theme.getColor("slider_handle") - handleActiveColor: UM.Theme.getColor("slider_handle_active") - rangeColor: UM.Theme.getColor("slider_groove_fill") - - // update values when layer data changes - Connections - { - target: UM.SimulationView - onMaxPathsChanged: pathSlider.setHandleValue(UM.SimulationView.currentPath) - onCurrentPathChanged: - { - // Only pause the simulation when the layer was changed manually, not when the simulation is running - if (pathSlider.manuallyChanged) - { - playButton.pauseSimulation() - } - pathSlider.setHandleValue(UM.SimulationView.currentPath) - } - } - - // make sure the slider handlers show the correct value after switching views - Component.onCompleted: - { - pathSlider.setHandleValue(UM.SimulationView.currentPath) - } - } - - LayerSlider - { - id: layerSlider - - width: UM.Theme.getSize("slider_handle").width - height: UM.Theme.getSize("layerview_menu_size").height - - anchors - { - bottom: !UM.SimulationView.compatibilityMode ? pathSlider.top : parent.bottom - top: parent.top - bottomMargin: !UM.SimulationView.compatibilityMode ? UM.Theme.getSize("default_margin").height : 0 - left: parent.left - leftMargin: Math.round(UM.Theme.getSize("slider_layerview_margin").width / 2) - } - - // custom properties - upperValue: UM.SimulationView.currentLayer - lowerValue: UM.SimulationView.minimumLayer - maximumValue: UM.SimulationView.numLayers - handleSize: UM.Theme.getSize("slider_handle").width - trackThickness: UM.Theme.getSize("slider_groove").width - trackColor: UM.Theme.getColor("slider_groove") - trackBorderColor: UM.Theme.getColor("slider_groove_border") - upperHandleColor: UM.Theme.getColor("slider_handle") - lowerHandleColor: UM.Theme.getColor("slider_handle") - rangeHandleColor: UM.Theme.getColor("slider_groove_fill") - handleActiveColor: UM.Theme.getColor("slider_handle_active") - handleLabelWidth: UM.Theme.getSize("slider_layerview_background").width - - // update values when layer data changes - Connections - { - target: UM.SimulationView - onMaxLayersChanged: layerSlider.setUpperValue(UM.SimulationView.currentLayer) - onMinimumLayerChanged: layerSlider.setLowerValue(UM.SimulationView.minimumLayer) - onCurrentLayerChanged: - { - // Only pause the simulation when the layer was changed manually, not when the simulation is running - if (layerSlider.manuallyChanged) - { - playButton.pauseSimulation() - } - layerSlider.setUpperValue(UM.SimulationView.currentLayer) - } - } - - // make sure the slider handlers show the correct value after switching views - Component.onCompleted: - { - layerSlider.setLowerValue(UM.SimulationView.minimumLayer) - layerSlider.setUpperValue(UM.SimulationView.currentLayer) - } - } - - // Play simulation button - Button - { - id: playButton - iconSource: "./resources/simulation_resume.svg" - style: UM.Theme.styles.small_tool_button - visible: !UM.SimulationView.compatibilityMode - anchors - { - left: parent.left - bottom: parent.bottom - } - - property var status: 0 // indicates if it's stopped (0) or playing (1) - - onClicked: - { - switch(status) - { - case 0: - { - resumeSimulation() - break - } - case 1: - { - pauseSimulation() - break - } - } - } - - function pauseSimulation() - { - UM.SimulationView.setSimulationRunning(false) - iconSource = "./resources/simulation_resume.svg" - simulationTimer.stop() - status = 0 - layerSlider.manuallyChanged = true - pathSlider.manuallyChanged = true - } - - function resumeSimulation() - { - UM.SimulationView.setSimulationRunning(true) - iconSource = "./resources/simulation_pause.svg" - simulationTimer.start() - layerSlider.manuallyChanged = false - pathSlider.manuallyChanged = false - } - } - - Timer - { - id: simulationTimer - interval: 100 - running: false - repeat: true - onTriggered: - { - var currentPath = UM.SimulationView.currentPath - var numPaths = UM.SimulationView.numPaths - var currentLayer = UM.SimulationView.currentLayer - var numLayers = UM.SimulationView.numLayers - // When the user plays the simulation, if the path slider is at the end of this layer, we start - // the simulation at the beginning of the current layer. - if (playButton.status == 0) - { - if (currentPath >= numPaths) - { - UM.SimulationView.setCurrentPath(0) - } - else - { - UM.SimulationView.setCurrentPath(currentPath+1) - } - } - // If the simulation is already playing and we reach the end of a layer, then it automatically - // starts at the beginning of the next layer. - else - { - if (currentPath >= numPaths) - { - // At the end of the model, the simulation stops - if (currentLayer >= numLayers) - { - playButton.pauseSimulation() - } - else - { - UM.SimulationView.setCurrentLayer(currentLayer+1) - UM.SimulationView.setCurrentPath(0) - } - } - else - { - UM.SimulationView.setCurrentPath(currentPath+1) - } - } - // The status must be set here instead of in the resumeSimulation function otherwise it won't work - // correctly, because part of the logic is in this trigger function. - playButton.status = 1 - } - } - } - FontMetrics { id: fontMetrics diff --git a/plugins/SimulationView/__init__.py b/plugins/SimulationView/__init__.py index 3f89ee490f..b12e582441 100644 --- a/plugins/SimulationView/__init__.py +++ b/plugins/SimulationView/__init__.py @@ -13,7 +13,6 @@ def getMetaData(): return { "view": { "name": catalog.i18nc("@item:inlistbox", "Layer view"), - "view_panel": "SimulationView.qml", "weight": 2 } } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 9f53b75dd1..e49683cb8e 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -155,24 +155,6 @@ UM.MainWindow color: UM.Theme.getColor("main_window_header_background") } - Loader - { - // The stage menu is, as the name implies, a menu that is defined by the active stage. - // Note that this menu does not need to be set at all! It's perfectly acceptable to have a stage - // without this menu! - id: stageMenu - - anchors - { - left: parent.left - right: parent.right - top: parent.top - } - - height: UM.Theme.getSize("stage_menu").height - source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : "" - } - Connections { target: stageMenu.item @@ -230,6 +212,22 @@ UM.MainWindow } } + Loader + { + id: viewPanel + + anchors.bottom: viewModeButton.top + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.right: viewModeButton.right + + property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) + + height: childrenRect.height + width: childrenRect.width + + source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" + } + Cura.ActionPanelWidget { anchors.right: parent.right @@ -254,15 +252,26 @@ UM.MainWindow anchors.fill: parent - MouseArea + source: UM.Controller.activeStage != null ? UM.Controller.activeStage.mainComponent : "" + } + + + Loader + { + // The stage menu is, as the name implies, a menu that is defined by the active stage. + // Note that this menu does not need to be set at all! It's perfectly acceptable to have a stage + // without this menu! + id: stageMenu + + anchors { - visible: parent.source != "" - anchors.fill: parent - acceptedButtons: Qt.AllButtons - onWheel: wheel.accepted = true + left: parent.left + right: parent.right + top: parent.top } - source: UM.Controller.activeStage != null ? UM.Controller.activeStage.mainComponent : "" + height: UM.Theme.getSize("stage_menu").height + source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : "" } UM.MessageStack From 3fc399a6443ffa0caf7fef0288c14b7b59c50cfe Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Oct 2018 09:46:41 +0100 Subject: [PATCH 0113/1039] Moved default values into components CURA-5829 --- plugins/SimulationView/LayerSlider.qml | 22 +++++++++---------- plugins/SimulationView/PathSlider.qml | 14 ++++++------ .../SimulationViewMainComponent.qml | 16 -------------- .../SimulationViewMenuComponent.qml | 17 +++++++------- 4 files changed, 26 insertions(+), 43 deletions(-) diff --git a/plugins/SimulationView/LayerSlider.qml b/plugins/SimulationView/LayerSlider.qml index c30ea621c4..7a7aaa0649 100644 --- a/plugins/SimulationView/LayerSlider.qml +++ b/plugins/SimulationView/LayerSlider.qml @@ -13,22 +13,22 @@ Item { id: sliderRoot - // handle properties - property real handleSize: 10 + // Handle properties + property real handleSize: UM.Theme.getSize("slider_handle").width property real handleRadius: handleSize / 2 property real minimumRangeHandleSize: handleSize / 2 - property color upperHandleColor: "black" - property color lowerHandleColor: "black" - property color rangeHandleColor: "black" - property color handleActiveColor: "white" - property real handleLabelWidth: width + property color upperHandleColor: UM.Theme.getColor("slider_handle") + property color lowerHandleColor: UM.Theme.getColor("slider_handle") + property color rangeHandleColor: UM.Theme.getColor("slider_groove_fill") + property color handleActiveColor: UM.Theme.getColor("slider_handle_active") + property real handleLabelWidth: UM.Theme.getSize("slider_layerview_background").width property var activeHandle: upperHandle - // track properties - property real trackThickness: 4 // width of the slider track + // Track properties + property real trackThickness: UM.Theme.getSize("slider_groove").width // width of the slider track property real trackRadius: trackThickness / 2 - property color trackColor: "white" - property real trackBorderWidth: 1 // width of the slider track border + property color trackColor: UM.Theme.getColor("slider_groove") + property real trackBorderWidth: UM.Theme.getColor("slider_groove_border") property color trackBorderColor: "black" // value properties diff --git a/plugins/SimulationView/PathSlider.qml b/plugins/SimulationView/PathSlider.qml index f3c28fb5f7..701e54e398 100644 --- a/plugins/SimulationView/PathSlider.qml +++ b/plugins/SimulationView/PathSlider.qml @@ -14,19 +14,19 @@ Item id: sliderRoot // handle properties - property real handleSize: 10 + property real handleSize: UM.Theme.getSize("slider_handle").width property real handleRadius: handleSize / 2 - property color handleColor: "black" - property color handleActiveColor: "white" - property color rangeColor: "black" + property color handleColor: UM.Theme.getColor("slider_handle") + property color handleActiveColor: UM.Theme.getColor("slider_handle_active") + property color rangeColor: UM.Theme.getColor("slider_groove_fill") property real handleLabelWidth: width // track properties - property real trackThickness: 4 // width of the slider track + property real trackThickness: UM.Theme.getSize("slider_groove").width property real trackRadius: trackThickness / 2 - property color trackColor: "white" + property color trackColor: UM.Theme.getColor("slider_groove") property real trackBorderWidth: 1 // width of the slider track border - property color trackBorderColor: "black" + property color trackBorderColor: UM.Theme.getColor("slider_groove_border") // value properties property real maximumValue: 100 diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index a4ec411124..2484ec25ba 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -30,13 +30,6 @@ Item // Custom properties handleValue: UM.SimulationView.currentPath maximumValue: UM.SimulationView.numPaths - handleSize: UM.Theme.getSize("slider_handle").width - trackThickness: UM.Theme.getSize("slider_groove").width - trackColor: UM.Theme.getColor("slider_groove") - trackBorderColor: UM.Theme.getColor("slider_groove_border") - handleColor: UM.Theme.getColor("slider_handle") - handleActiveColor: UM.Theme.getColor("slider_handle_active") - rangeColor: UM.Theme.getColor("slider_groove_fill") // Update values when layer data changes. Connections @@ -175,15 +168,6 @@ Item upperValue: UM.SimulationView.currentLayer lowerValue: UM.SimulationView.minimumLayer maximumValue: UM.SimulationView.numLayers - handleSize: UM.Theme.getSize("slider_handle").width - trackThickness: UM.Theme.getSize("slider_groove").width - trackColor: UM.Theme.getColor("slider_groove") - trackBorderColor: UM.Theme.getColor("slider_groove_border") - upperHandleColor: UM.Theme.getColor("slider_handle") - lowerHandleColor: UM.Theme.getColor("slider_handle") - rangeHandleColor: UM.Theme.getColor("slider_groove_fill") - handleActiveColor: UM.Theme.getColor("slider_handle_active") - handleLabelWidth: UM.Theme.getSize("slider_layerview_background").width // Update values when layer data changes Connections diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 91ef7a2794..a9c7305c17 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -216,15 +216,14 @@ Item onPreferenceChanged: { layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type"); - layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex); - playButton.pauseSimulation(); - viewSettings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|"); - viewSettings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves"); - viewSettings.show_helpers = UM.Preferences.getValue("layerview/show_helpers"); - viewSettings.show_skin = UM.Preferences.getValue("layerview/show_skin"); - viewSettings.show_infill = UM.Preferences.getValue("layerview/show_infill"); - viewSettings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers"); - viewSettings.top_layer_count = UM.Preferences.getValue("view/top_layer_count"); + layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex) + viewSettings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|") + viewSettings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves") + viewSettings.show_helpers = UM.Preferences.getValue("layerview/show_helpers") + viewSettings.show_skin = UM.Preferences.getValue("layerview/show_skin") + viewSettings.show_infill = UM.Preferences.getValue("layerview/show_infill") + viewSettings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers") + viewSettings.top_layer_count = UM.Preferences.getValue("view/top_layer_count") } } From 15f586ffae119c9f2e948ce8718095156f6275e9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Oct 2018 10:30:11 +0100 Subject: [PATCH 0114/1039] Fix the location of the simulation slider label CURA-5829 --- plugins/SimulationView/LayerSlider.qml | 16 ++++++++-------- .../SimulationViewMainComponent.qml | 4 ++-- plugins/SimulationView/__init__.py | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/SimulationView/LayerSlider.qml b/plugins/SimulationView/LayerSlider.qml index 7a7aaa0649..7916cd62b3 100644 --- a/plugins/SimulationView/LayerSlider.qml +++ b/plugins/SimulationView/LayerSlider.qml @@ -28,8 +28,8 @@ Item property real trackThickness: UM.Theme.getSize("slider_groove").width // width of the slider track property real trackRadius: trackThickness / 2 property color trackColor: UM.Theme.getColor("slider_groove") - property real trackBorderWidth: UM.Theme.getColor("slider_groove_border") - property color trackBorderColor: "black" + property real trackBorderWidth: 1 + property color trackBorderColor: UM.Theme.getColor("slider_groove_border") // value properties property real maximumValue: 100 @@ -80,7 +80,7 @@ Item return Math.min(Math.max(value, sliderRoot.minimumValue), sliderRoot.maximumValue) } - // slider track + // Slider track Rectangle { id: track @@ -106,7 +106,7 @@ Item anchors.horizontalCenter: sliderRoot.horizontalCenter visible: sliderRoot.layersVisible - // set the new value when dragging + // Set the new value when dragging function onHandleDragged() { sliderRoot.manuallyChanged = true @@ -169,7 +169,7 @@ Item height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height x: parent.x + parent.width + UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter - target: Qt.point(sliderRoot.width, y + height / 2) + target: Qt.point(sliderRoot.width + width, y + height / 2) visible: sliderRoot.activeHandle == parent // custom properties @@ -275,7 +275,7 @@ Item id: upperHandleLabel height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height - x: parent.x + parent.width + UM.Theme.getSize("default_margin").width + x: parent.x - parent.width - width anchors.verticalCenter: parent.verticalCenter target: Qt.point(sliderRoot.width, y + height / 2) visible: sliderRoot.activeHandle == parent @@ -385,9 +385,9 @@ Item id: lowerHandleLabel height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height - x: parent.x + parent.width + UM.Theme.getSize("default_margin").width + x: parent.x - parent.width - width anchors.verticalCenter: parent.verticalCenter - target: Qt.point(sliderRoot.width, y + height / 2) + target: Qt.point(sliderRoot.width + width, y + height / 2) visible: sliderRoot.activeHandle == parent // custom properties diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index 2484ec25ba..5c45da6b45 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -135,13 +135,13 @@ Item } else { - UM.SimulationView.setCurrentLayer(currentLayer+1) + UM.SimulationView.setCurrentLayer(currentLayer + 1) UM.SimulationView.setCurrentPath(0) } } else { - UM.SimulationView.setCurrentPath(currentPath+1) + UM.SimulationView.setCurrentPath(currentPath + 1) } } // The status must be set here instead of in the resumeSimulation function otherwise it won't work diff --git a/plugins/SimulationView/__init__.py b/plugins/SimulationView/__init__.py index b12e582441..1efb7fd650 100644 --- a/plugins/SimulationView/__init__.py +++ b/plugins/SimulationView/__init__.py @@ -13,7 +13,7 @@ def getMetaData(): return { "view": { "name": catalog.i18nc("@item:inlistbox", "Layer view"), - "weight": 2 + "weight": 0 } } From 1e9aff44f635b37efc0365cce15b6f25bb980c80 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Oct 2018 10:55:05 +0100 Subject: [PATCH 0115/1039] Fix QML warnings & errors CURA-5829 --- plugins/PreviewStage/PreviewMain.qml | 1 - .../SimulationViewMenuComponent.qml | 58 ++++++++----------- 2 files changed, 23 insertions(+), 36 deletions(-) diff --git a/plugins/PreviewStage/PreviewMain.qml b/plugins/PreviewStage/PreviewMain.qml index df7e09225f..04241783e9 100644 --- a/plugins/PreviewStage/PreviewMain.qml +++ b/plugins/PreviewStage/PreviewMain.qml @@ -15,5 +15,4 @@ Loader id: previewMain source: UM.Controller.activeView != null && UM.Controller.activeView.mainComponent != null ? UM.Controller.activeView.mainComponent : "" - onSourceChanged: print("THE SOURCE IS", source) } \ No newline at end of file diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index a9c7305c17..5a146910e7 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -70,7 +70,8 @@ Item border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") - Button { + Button + { id: collapseButton anchors.top: parent.top anchors.topMargin: Math.round(UM.Theme.getSize("default_margin").height + (UM.Theme.getSize("layerview_row").height - UM.Theme.getSize("default_margin").height) / 2) @@ -97,7 +98,7 @@ Item } } - ColumnLayout + Column { id: viewSettings @@ -126,11 +127,10 @@ Item Label { id: layerViewTypesLabel - anchors.left: parent.left text: catalog.i18nc("@label","Color scheme") font: UM.Theme.getFont("default"); visible: !UM.SimulationView.compatibilityMode - Layout.fillWidth: true + width: parent.width color: UM.Theme.getColor("setting_control_text") } @@ -162,13 +162,10 @@ Item ComboBox { id: layerTypeCombobox - anchors.left: parent.left - Layout.fillWidth: true - Layout.preferredWidth: UM.Theme.getSize("layerview_row").width + width: parent.width model: layerViewTypes visible: !UM.SimulationView.compatibilityMode style: UM.Theme.styles.combobox - anchors.right: parent.right onActivated: { @@ -194,14 +191,12 @@ Item Label { id: compatibilityModeLabel - anchors.left: parent.left text: catalog.i18nc("@label","Compatibility Mode") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") visible: UM.SimulationView.compatibilityMode - Layout.fillWidth: true - Layout.preferredHeight: UM.Theme.getSize("layerview_row").height - Layout.preferredWidth: UM.Theme.getSize("layerview_row").width + height: UM.Theme.getSize("layerview_row").height + width: parent.width } Item @@ -253,9 +248,9 @@ Item border.color: UM.Theme.getColor("lining") visible: !viewSettings.show_legend & !viewSettings.show_gradient } - Layout.fillWidth: true - Layout.preferredHeight: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height - Layout.preferredWidth: UM.Theme.getSize("layerview_row").width + height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height + width: parent.width + style: UM.Theme.styles.checkbox Label { @@ -264,9 +259,9 @@ Item color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") anchors.verticalCenter: parent.verticalCenter - anchors.left: extrudersModelCheckBox.left; - anchors.right: extrudersModelCheckBox.right; - anchors.leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width/2) + anchors.left: extrudersModelCheckBox.left + anchors.right: extrudersModelCheckBox.right + anchors.leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width / 2) anchors.rightMargin: UM.Theme.getSize("default_margin").width * 2 } } @@ -325,9 +320,8 @@ Item border.color: UM.Theme.getColor("lining") visible: viewSettings.show_legend } - Layout.fillWidth: true - Layout.preferredHeight: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height - Layout.preferredWidth: UM.Theme.getSize("layerview_row").width + height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height + width: parent.width style: UM.Theme.styles.checkbox Label { @@ -336,9 +330,9 @@ Item elide: Text.ElideRight color: UM.Theme.getColor("setting_control_text") anchors.verticalCenter: parent.verticalCenter - anchors.left: legendModelCheckBox.left; - anchors.right: legendModelCheckBox.right; - anchors.leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width/2) + anchors.left: legendModelCheckBox.left + anchors.right: legendModelCheckBox.right + anchors.leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width / 2) anchors.rightMargin: UM.Theme.getSize("default_margin").width * 2 } } @@ -349,7 +343,7 @@ Item checked: viewSettings.only_show_top_layers onClicked: { - UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0); + UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0) } text: catalog.i18nc("@label", "Only Show Top Layers") visible: UM.SimulationView.compatibilityMode @@ -360,7 +354,7 @@ Item checked: viewSettings.top_layer_count == 5 onClicked: { - UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1); + UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1) } text: catalog.i18nc("@label", "Show 5 Detailed Layers On Top") visible: UM.SimulationView.compatibilityMode @@ -401,9 +395,8 @@ Item border.color: UM.Theme.getColor("lining") visible: viewSettings.show_legend } - Layout.fillWidth: true - Layout.preferredHeight: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height - Layout.preferredWidth: UM.Theme.getSize("layerview_row").width + height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height + width: parent.width color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") } @@ -416,11 +409,6 @@ Item visible: viewSettings.show_gradient width: parent.width height: UM.Theme.getSize("layerview_row").height - anchors - { - topMargin: UM.Theme.getSize("slider_layerview_margin").height - horizontalCenter: parent.horizontalCenter - } Label { @@ -503,7 +491,7 @@ Item // Gradient colors for feedrate Rectangle - { // In QML 5.9 can be changed by LinearGradient + { // In QML 5.9 can be changed by LinearGradient // Invert values because then the bar is rotated 90 degrees id: feedrateGradient visible: viewSettings.show_feedrate_gradient From a5c2a734875a859d60bba81242861fb8d4e16290 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 31 Oct 2018 13:08:59 +0100 Subject: [PATCH 0116/1039] Fix adhesion type checkbox if default is skirt The remove-unused-values feature doesn't work with settings that are resolved, because we try to remove them at the appropriate position in the stack but then we check at that position in the stack if the value is not the same as what it was, but with this check the resolve function is no longer evaluated. It's complex, but hard to solve because we can't try to remove it at this location and predict that this will change the actual final value after the resolve function has done its thing. Contributes to issue CURA-5877. --- resources/qml/SidebarSimple.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index ec673f2823..ddb42f44c6 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -1118,6 +1118,7 @@ Item { id: platformAdhesionType containerStack: Cura.MachineManager.activeMachine + removeUnusedValue: false //Doesn't work with settings that are resolved. key: "adhesion_type" watchedProperties: [ "value", "enabled" ] storeIndex: 0 From 1ba8eff7fadc2f3e2726002d93ca42d4e34d0a77 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 31 Oct 2018 13:52:31 +0100 Subject: [PATCH 0117/1039] Don't show camera icon unless printer details are expanded Contributes to CL-1063 --- .../resources/qml/PrinterCard.qml | 55 +++++-------------- .../resources/qml/PrinterCardDetails.qml | 14 +++-- 2 files changed, 23 insertions(+), 46 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml index 6c6df7d7fb..24beaf70fe 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml @@ -36,7 +36,7 @@ Item { return UM.Theme.getColor("monitor_card_background"); } } - height: childrenRect.height + UM.Theme.getSize("default_margin").height; + height: childrenRect.height; layer.effect: DropShadow { radius: root.shadowRadius; verticalOffset: root.shadowOffset; @@ -47,29 +47,25 @@ Item { Column { id: cardContents; - anchors { - top: parent.top; - topMargin: UM.Theme.getSize("default_margin").height; - } height: childrenRect.height; width: parent.width; - spacing: UM.Theme.getSize("default_margin").height; // Main card Item { id: mainCard; - height: 60 * screenScaleFactor; + anchors { + left: parent.left; + leftMargin: UM.Theme.getSize("default_margin").width; + right: parent.right; + rightMargin: UM.Theme.getSize("default_margin").width; + } + height: 60 * screenScaleFactor + 2 * UM.Theme.getSize("default_margin").height; width: parent.width; // Machine icon Item { id: machineIcon; - anchors { - leftMargin: UM.Theme.getSize("wide_margin").width; - top: parent.top; - left: parent.left; - margins: UM.Theme.getSize("default_margin").width; - } + anchors.verticalCenter: parent.verticalCenter; height: parent.height - 2 * UM.Theme.getSize("default_margin").width; width: height; @@ -228,17 +224,6 @@ Item { } } } - - HorizontalLine { - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - } - visible: root.printer; - } - // Detailed card PrinterCardDetails { collapsed: root.collapsed; @@ -246,25 +231,11 @@ Item { visible: root.printer; } - CameraButton { - id: showCameraButton; - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - } - iconSource: "../svg/camera-icon.svg"; - visible: root.printer && root.printJob; + // Progress bar + PrinterCardProgressBar { + visible: printer && printer.activePrintJob != null; + width: parent.width; } } - - // Progress bar - PrinterCardProgressBar { - anchors { - top: cardContents.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - } - visible: printer && printer.activePrintJob != null; - width: parent.width; - } } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml b/plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml index 097bd5c7a6..31da388b00 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml @@ -28,18 +28,18 @@ Item { right: parent.right; rightMargin: UM.Theme.getSize("default_margin").width; } - height: childrenRect.height + UM.Theme.getSize("wide_margin").height; + height: childrenRect.height + UM.Theme.getSize("default_margin").height; spacing: UM.Theme.getSize("default_margin").height; width: parent.width; + HorizontalLine {} + PrinterInfoBlock { printer: root.printer; printJob: root.printer ? root.printer.activePrintJob : null; } - HorizontalLine { - visible: root.printJob; - } + HorizontalLine {} Row { height: childrenRect.height; @@ -65,5 +65,11 @@ Item { job: root.printer && root.printer.activePrintJob ? root.printer.activePrintJob : null; visible: root.printJob; } + + CameraButton { + id: showCameraButton; + iconSource: "../svg/camera-icon.svg"; + visible: root.printer; + } } } From 61442545cb99dc7379ea204f0496b1464c58da27 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 31 Oct 2018 13:56:55 +0100 Subject: [PATCH 0118/1039] Fix codestyle CURA-5829 --- plugins/SimulationView/SimulationView.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index f1bff5f3f7..6a0ffc1666 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -16,6 +16,7 @@ from UM.Mesh.MeshBuilder import MeshBuilder from UM.Message import Message from UM.Platform import Platform from UM.PluginRegistry import PluginRegistry +from UM.Qt.QtApplication import QtApplication from UM.Resources import Resources from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator @@ -113,17 +114,15 @@ class SimulationView(CuraView): self._wireprint_warning_message = Message(catalog.i18nc("@info:status", "Cura does not accurately display layers when Wire Printing is enabled"), title = catalog.i18nc("@info:title", "Simulation View")) - Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) + QtApplication.getInstance().engineCreatedSignal.connect(self._onEngineCreated) def _onEngineCreated(self) -> None: - menu_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("SimulationView"), - "SimulationViewMenuComponent.qml") - - main_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("SimulationView"), - "SimulationViewMainComponent.qml") - - self.addDisplayComponent("main", main_component_path) - self.addDisplayComponent("menu", menu_component_path) + plugin_path = PluginRegistry.getInstance().getPluginPath(self.getPluginId()) + if plugin_path: + self.addDisplayComponent("main", os.path.join(plugin_path, "SimulationViewMainComponent.qml")) + self.addDisplayComponent("menu", os.path.join(plugin_path, "SimulationViewMenuComponent.qml")) + else: + Logger.log("e", "Unable to find the path for %s", self.getPluginId()) def _evaluateCompatibilityMode(self) -> bool: return OpenGLContext.isLegacyOpenGL() or bool(Application.getInstance().getPreferences().getValue("view/force_layer_view_compatibility_mode")) From ec0d9f09b7a800f073422c102f679d7a24d44a48 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 31 Oct 2018 17:03:09 +0100 Subject: [PATCH 0119/1039] Create a component for selecting the output device before output the file. Contributes to CURA-5786. --- resources/qml/ActionButton.qml | 9 ++ resources/qml/ActionPanelWidget.qml | 4 +- resources/qml/OutputDevicesActionButton.qml | 98 +++++++++++++++++++++ resources/qml/OutputProcessWidget.qml | 6 +- resources/qml/SliceProcessWidget.qml | 6 +- resources/qml/qmldir | 3 +- 6 files changed, 116 insertions(+), 10 deletions(-) create mode 100644 resources/qml/OutputDevicesActionButton.qml diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index a1c03af143..05e75ac8c5 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -14,6 +14,7 @@ Button property alias iconSource: buttonIcon.source property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius + property alias tooltip: tooltip.text property var color: UM.Theme.getColor("primary") property var hoverColor: UM.Theme.getColor("primary_hover") property var disabledColor: color @@ -62,6 +63,14 @@ Button Behavior on color { ColorAnimation { duration: 50 } } } + ToolTip + { + id: tooltip + text: "" + delay: 500 + visible: text != "" && button.hovered + } + MouseArea { id: mouseArea diff --git a/resources/qml/ActionPanelWidget.qml b/resources/qml/ActionPanelWidget.qml index 6c76c31f1b..417883af6f 100644 --- a/resources/qml/ActionPanelWidget.qml +++ b/resources/qml/ActionPanelWidget.qml @@ -21,7 +21,7 @@ Rectangle radius: UM.Theme.getSize("default_radius").width visible: CuraApplication.platformActivity - property bool backendStatusDone: UM.Backend.state == UM.Backend.Done + property bool outputAvailable: UM.Backend.state == UM.Backend.Done || UM.Backend.state == UM.Backend.Disabled Loader { @@ -33,7 +33,7 @@ Rectangle left: parent.left leftMargin: UM.Theme.getSize("thick_margin").width } - sourceComponent: backendStatusDone ? outputProcessWidget : sliceProcessWidget + sourceComponent: outputAvailable ? outputProcessWidget : sliceProcessWidget } Behavior on height { NumberAnimation { duration: 100 } } diff --git a/resources/qml/OutputDevicesActionButton.qml b/resources/qml/OutputDevicesActionButton.qml new file mode 100644 index 0000000000..b0cca0eba0 --- /dev/null +++ b/resources/qml/OutputDevicesActionButton.qml @@ -0,0 +1,98 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.3 + +import UM 1.1 as UM +import Cura 1.0 as Cura + +Item +{ + id: widget + + Cura.ActionButton + { + id: saveToButton + height: parent.height + + anchors + { + top: parent.top + left: parent.left + right: deviceSelectionMenu.visible ? deviceSelectionMenu.left : parent.right + } + + tooltip: UM.OutputDeviceManager.activeDeviceDescription + + text: UM.OutputDeviceManager.activeDeviceShortDescription + + onClicked: + { + forceActiveFocus(); + UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName, + { "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats }); + } + } + + Cura.ActionButton + { + id: deviceSelectionMenu + height: parent.height + + anchors + { + top: parent.top + right: parent.right + } + + tooltip: catalog.i18nc("@info:tooltip", "Select the active output device") + iconSource: popup.opened ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom") + visible: (devicesModel.deviceCount > 1) + + onClicked: popup.opened ? popup.close() : popup.open() + + Popup + { + id: popup + + y: -height + x: parent.width - width + + closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent + + contentItem: Column + { + Repeater + { + model: devicesModel + + delegate: Cura.ActionButton + { + text: model.description + color: "transparent" + hoverColor: "red" + + onClicked: + { + UM.OutputDeviceManager.setActiveDevice(model.id) + popup.close() + } + } + } + } + + background: Rectangle + { + opacity: visible ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 100 } } + color: UM.Theme.getColor("primary") + border.color: UM.Theme.getColor("lining") + border.width: UM.Theme.getSize("default_lining").width + } + } + } + + UM.OutputDevicesModel { id: devicesModel } +} \ No newline at end of file diff --git a/resources/qml/OutputProcessWidget.qml b/resources/qml/OutputProcessWidget.qml index 244fba57ef..d3f306fed5 100644 --- a/resources/qml/OutputProcessWidget.qml +++ b/resources/qml/OutputProcessWidget.qml @@ -96,12 +96,10 @@ Column onClicked: console.log("Clicking preview") } - Cura.ActionButton + Cura.OutputDevicesActionButton { - width: UM.Theme.getSize("account_button").width + width: UM.Theme.getSize("action_panel_button").width height: UM.Theme.getSize("action_panel_button").height - text: catalog.i18nc("@button", "Save to file") - onClicked: console.log("Clicking action button") } } } \ No newline at end of file diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/SliceProcessWidget.qml index 38a529b04e..3ea6e09975 100644 --- a/resources/qml/SliceProcessWidget.qml +++ b/resources/qml/SliceProcessWidget.qml @@ -28,7 +28,7 @@ Column function sliceOrStopSlicing() { - if ([UM.Backend.NotStarted, UM.Backend.Disabled].indexOf(widget.backendState) != -1) + if (widget.backendState == UM.Backend.NotStarted) { CuraApplication.backend.forceSlice() } @@ -86,7 +86,7 @@ Column height: UM.Theme.getSize("action_panel_button").height text: { - if ([UM.Backend.NotStarted, UM.Backend.Error, UM.Backend.Disabled].indexOf(widget.backendState) != -1) + if ([UM.Backend.NotStarted, UM.Backend.Error].indexOf(widget.backendState) != -1) { return catalog.i18nc("@button", "Slice") } @@ -101,7 +101,7 @@ Column // Get the current value from the preferences property bool autoSlice: UM.Preferences.getValue("general/auto_slice") // Disable the slice process when - property bool disabledSlice: [UM.Backend.Done, UM.Backend.Error, UM.Backend.Disabled].indexOf(widget.backendState) != -1 + property bool disabledSlice: [UM.Backend.Done, UM.Backend.Error].indexOf(widget.backendState) != -1 disabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled") : "transparent" textDisabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled_text") : UM.Theme.getColor("primary") diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 22e3ff1303..d5e4106d33 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -8,4 +8,5 @@ ActionButton 1.0 ActionButton.qml MaterialMenu 1.0 MaterialMenu.qml NozzleMenu 1.0 NozzleMenu.qml ActionPanelWidget 1.0 ActionPanelWidget.qml -IconLabel 1.0 IconLabel.qml \ No newline at end of file +IconLabel 1.0 IconLabel.qml +OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml \ No newline at end of file From 3a7ae58563613088006fe0cb386d20e4dad76bd2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 31 Oct 2018 17:23:38 +0100 Subject: [PATCH 0120/1039] Small changes in the buttons to fit with the designs. Contributes to CURA-5786. --- resources/qml/OutputDevicesActionButton.qml | 9 +++++++-- resources/themes/cura-light/theme.json | 2 ++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/qml/OutputDevicesActionButton.qml b/resources/qml/OutputDevicesActionButton.qml index b0cca0eba0..11be11a2b0 100644 --- a/resources/qml/OutputDevicesActionButton.qml +++ b/resources/qml/OutputDevicesActionButton.qml @@ -49,6 +49,7 @@ Item tooltip: catalog.i18nc("@info:tooltip", "Select the active output device") iconSource: popup.opened ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom") + color: UM.Theme.getColor("action_panel_secondary") visible: (devicesModel.deviceCount > 1) onClicked: popup.opened ? popup.close() : popup.open() @@ -56,6 +57,7 @@ Item Popup { id: popup + padding: 0 y: -height x: parent.width - width @@ -72,7 +74,9 @@ Item { text: model.description color: "transparent" - hoverColor: "red" + outlineColor: "transparent" + cornerRadius: 0 + hoverColor: UM.Theme.getColor("primary") onClicked: { @@ -87,7 +91,8 @@ Item { opacity: visible ? 1 : 0 Behavior on opacity { NumberAnimation { duration: 100 } } - color: UM.Theme.getColor("primary") + radius: UM.Theme.getSize("default_radius") + color: UM.Theme.getColor("action_panel_secondary") border.color: UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 1473a75eec..658fa00596 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -103,6 +103,8 @@ "machine_selector_hover": [68, 72, 75, 255], "machine_selector_text_active": [255, 255, 255, 255], + "action_panel_secondary": [27, 95, 202, 255], + "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], "text_link": [50, 130, 255, 255], From cb24549d7d0caa4f010bb0c26a40e0a8ace84a5e Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 1 Nov 2018 08:29:52 +0100 Subject: [PATCH 0121/1039] Set CuraApplication display name CURA-5842 --- cura/CuraApplication.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index fc9ba1ebf4..3e9e44149b 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -161,6 +161,7 @@ class CuraApplication(QtApplication): def __init__(self, *args, **kwargs): super().__init__(name = "cura", + app_display_name = "Ultimaker Cura", version = CuraVersion, buildtype = CuraBuildType, is_debug_mode = CuraDebugMode, From e884605cc3c1b272b0be501c948e763f66191656 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 1 Nov 2018 08:47:44 +0100 Subject: [PATCH 0122/1039] Fix typo. --- resources/qml/AddMachineDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index d3a6de51af..1b39cdeac2 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -82,7 +82,7 @@ UM.Dialog top: titleLabel.bottom topMargin: UM.Theme.getSize("default_margin").height } - text: catalog.i18nc("@title:tab", "Select the printer you want to use from the list below.\n\nIf your printer is not in the list, use the \"Custom FFF Printer\" from the \"Custom\" category and match adjust the settings to match your printer in the next dialog.") + text: catalog.i18nc("@title:tab", "Select the printer you want to use from the list below.\n\nIf your printer is not in the list, use the \"Custom FFF Printer\" from the \"Custom\" category and adjust the settings to match your printer in the next dialog.") width: parent.width wrapMode: Text.WordWrap } From ff4dfcf9a6259b477bee7a5685e025df1b6c5b12 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 1 Nov 2018 12:14:49 +0100 Subject: [PATCH 0123/1039] Make Cura app display name configurable CURA-5842 --- CMakeLists.txt | 1 + cura/CuraApplication.py | 5 +++-- cura/CuraVersion.py.in | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e9bf4b538..deb4e63935 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,7 @@ if(CURA_DEBUGMODE) set(_cura_debugmode "ON") endif() +set(CURA_APP_DISPLAY_NAME "Ultimaker Cura" CACHE STRING "Display name of Cura") set(CURA_VERSION "master" CACHE STRING "Version name of Cura") set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'") set(CURA_SDK_VERSION "" CACHE STRING "SDK version of Cura") diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 3e9e44149b..454c2529dc 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -128,8 +128,9 @@ if TYPE_CHECKING: numpy.seterr(all = "ignore") try: - from cura.CuraVersion import CuraVersion, CuraBuildType, CuraDebugMode, CuraSDKVersion + from cura.CuraVersion import CuraAppDisplayName, CuraVersion, CuraBuildType, CuraDebugMode, CuraSDKVersion except ImportError: + CuraAppDisplayName = "Ultimaker Cura" CuraVersion = "master" # [CodeStyle: Reflecting imported value] CuraBuildType = "" CuraDebugMode = False @@ -161,7 +162,7 @@ class CuraApplication(QtApplication): def __init__(self, *args, **kwargs): super().__init__(name = "cura", - app_display_name = "Ultimaker Cura", + app_display_name = CuraAppDisplayName, version = CuraVersion, buildtype = CuraBuildType, is_debug_mode = CuraDebugMode, diff --git a/cura/CuraVersion.py.in b/cura/CuraVersion.py.in index 226b2183f2..388429bc02 100644 --- a/cura/CuraVersion.py.in +++ b/cura/CuraVersion.py.in @@ -1,6 +1,7 @@ # Copyright (c) 2015 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@" CuraVersion = "@CURA_VERSION@" CuraBuildType = "@CURA_BUILDTYPE@" CuraDebugMode = True if "@_cura_debugmode@" == "ON" else False From dcad95aab9cfb2ec215dc3cb22467fffff2918b7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 1 Nov 2018 12:44:14 +0100 Subject: [PATCH 0124/1039] Rename Toolbox button to Marketplace. Contributes to CURA-5784. --- resources/qml/MainWindow/MainWindowHeader.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 3f088e782f..59ec542e6b 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -83,7 +83,7 @@ Rectangle } leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@action:button", "Toolbox") + text: catalog.i18nc("@action:button", "Marketplace") height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) color: UM.Theme.getColor("main_window_header_secondary_button_background_active") hoverColor: UM.Theme.getColor("main_window_header_secondary_button_background_hovered") From 44954c4cadf43cee719c03157f3edd5fff397abb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Nov 2018 14:15:16 +0100 Subject: [PATCH 0125/1039] Fixes required for semantic versioning CURA-5840 --- plugins/Toolbox/src/Toolbox.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 25e7656999..7db4e8bde0 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -209,11 +209,11 @@ class Toolbox(QObject, Extension): # Get the packages version depending on Cura version settings. def _getSDKVersion(self) -> Union[int, str]: if not hasattr(cura, "CuraVersion"): - return self._plugin_registry.APIVersion + return self._plugin_registry.APIVersion.getMajor() if not hasattr(cura.CuraVersion, "CuraSDKVersion"): # type: ignore - return self._plugin_registry.APIVersion + return self._plugin_registry.APIVersion.getMajor() if not cura.CuraVersion.CuraSDKVersion: # type: ignore - return self._plugin_registry.APIVersion + return self._plugin_registry.APIVersion.getMajor() return cura.CuraVersion.CuraSDKVersion # type: ignore @pyqtSlot() From e61a6e7a5cea0d4aa4812738d485c4dcfca9ec05 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 1 Nov 2018 09:32:23 +0100 Subject: [PATCH 0126/1039] Fix codestyle --- resources/qml/AddMachineDialog.qml | 35 ++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 1b39cdeac2..0df8b891d9 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -25,7 +25,8 @@ UM.Dialog width: minimumWidth height: minimumHeight - flags: { + flags: + { var window_flags = Qt.Dialog | Qt.CustomizeWindowHint | Qt.WindowTitleHint; if (Cura.MachineManager.activeDefinitionId !== "") //Disallow closing the window if we have no active printer yet. You MUST add a printer. { @@ -48,22 +49,28 @@ UM.Dialog function getMachineName() { - return machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).name : ""; + if (machineList.model.getItem(machineList.currentIndex) != undefined) + { + return machineList.model.getItem(machineList.currentIndex).name; + } + return ""; } function getMachineMetaDataEntry(key) { - var metadata = machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).metadata : undefined; - if (metadata) + if (machineList.model.getItem(machineList.currentIndex) != undefined) { - return metadata[key]; + return machineList.model.getItem(machineList.currentIndex).metadata[key]; } - return undefined; + return ""; } - Label { + + Label + { id: titleLabel - anchors { + anchors + { top: parent.top left: parent.left topMargin: UM.Theme.getSize("default_margin") @@ -102,7 +109,8 @@ UM.Dialog width: Math.round(parent.width * 0.45) frameVisible: true; - Rectangle { + Rectangle + { parent: viewport anchors.fill: parent color: palette.light @@ -159,11 +167,14 @@ UM.Dialog onClicked: { base.activeCategory = section; - if (machineList.model.getItem(machineList.currentIndex).section != section) { + if (machineList.model.getItem(machineList.currentIndex).section != section) + { // Find the first machine from this section - for(var i = 0; i < machineList.model.rowCount(); i++) { + for(var i = 0; i < machineList.model.rowCount(); i++) + { var item = machineList.model.getItem(i); - if (item.section == section) { + if (item.section == section) + { machineList.currentIndex = i; break; } From 4dc248a63158b5b17bde7c944999b7c1d563989c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 1 Nov 2018 14:43:22 +0100 Subject: [PATCH 0127/1039] Rename Open Marketplace to just Marketplace Because Open Marketplace has to be translated (the 'open' part) but the Marketplace can just be called marketplace. Contributes to issue 5870. --- resources/qml/Actions.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 161c1db342..892386d9e7 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -421,7 +421,7 @@ Item Action { id: browsePackagesAction - text: catalog.i18nc("@action:menu", "Open Marketplace...") + text: catalog.i18nc("@action:menu", "&Marketplace") iconName: "plugins_browse" } From 90726ecbff305d044dc63e5829134351e3e624f0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 1 Nov 2018 15:28:08 +0100 Subject: [PATCH 0128/1039] Fix situation where the setting visibility model could cause a crash. Yay for crash logging --- cura/Machines/Models/SettingVisibilityPresetsModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/SettingVisibilityPresetsModel.py b/cura/Machines/Models/SettingVisibilityPresetsModel.py index 2702001d8a..79131521f2 100644 --- a/cura/Machines/Models/SettingVisibilityPresetsModel.py +++ b/cura/Machines/Models/SettingVisibilityPresetsModel.py @@ -140,7 +140,7 @@ class SettingVisibilityPresetsModel(QObject): item_to_set = self._active_preset_item if matching_preset_item is None: # The new visibility setup is "custom" should be custom - if self._active_preset_item.presetId == "custom": + if self._active_preset_item is None or self._active_preset_item.presetId == "custom": # We are already in custom, just save the settings self._preferences.setValue("cura/custom_visible_settings", visibility_string) else: From 28526744990580b1f181d2c7afe0726e59b5be13 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 1 Nov 2018 15:50:18 +0100 Subject: [PATCH 0129/1039] Adjust state of API call It can just be an arbitrary string, as long as it is kept consistent I suppose. Discovered during test of CURA-5784. --- cura/OAuth2/AuthorizationService.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 65b31f1ed7..4355891139 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -120,7 +120,7 @@ class AuthorizationService: "redirect_uri": self._settings.CALLBACK_URL, "scope": self._settings.CLIENT_SCOPES, "response_type": "code", - "state": "CuraDriveIsAwesome", + "state": "(.Y.)", "code_challenge": challenge_code, "code_challenge_method": "S512" }) From b03695dec66ef5bb10a07222fb11d96e92eb1155 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 09:33:27 +0100 Subject: [PATCH 0130/1039] Add print time information and material costs to the action panel. Contributes to CURA-5786. --- resources/qml/OutputProcessWidget.qml | 33 +++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/resources/qml/OutputProcessWidget.qml b/resources/qml/OutputProcessWidget.qml index d3f306fed5..435cc6da79 100644 --- a/resources/qml/OutputProcessWidget.qml +++ b/resources/qml/OutputProcessWidget.qml @@ -30,6 +30,7 @@ Column Column { id: timeAndCostsInformation + spacing: UM.Theme.getSize("thin_margin").height anchors { @@ -43,7 +44,9 @@ Column id: estimatedTime width: parent.width - text: "Time" + property var printDuration: PrintInformation.currentPrintTime + + text: printDuration.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") font: UM.Theme.getFont("small") } @@ -53,7 +56,33 @@ Column id: estimatedCosts width: parent.width - text: "Material costs" + property var printMaterialLengths: PrintInformation.materialLengths + property var printMaterialWeights: PrintInformation.materialWeights + + function getText() + { + var lengths = [] + var weights = [] + if(printMaterialLengths) + { + for(var index = 0; index < printMaterialLengths.length; index++) + { + if(printMaterialLengths[index] > 0) + { + lengths.push(printMaterialLengths[index].toFixed(2)) + weights.push(String(Math.round(printMaterialWeights[index]))) + } + } + } + if(lengths.length == 0) + { + lengths = ["0.00"] + weights = ["0"] + } + return weights.join(" + ") + "g · " + lengths.join(" + ") + "m" + } + + text: getText() source: UM.Theme.getIcon("spool") font: UM.Theme.getFont("very_small") } From 310539cb6dc84e0245a86d3e0b10aa79d413d536 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 09:58:35 +0100 Subject: [PATCH 0131/1039] In the main action panel, only show the total amount of material weight and length (addition of all extruders). The information panel will show each cost separately. Contributes to CURA-5786. --- .../{ => ActionPanel}/ActionPanelWidget.qml | 0 .../OutputDevicesActionButton.qml | 0 .../{ => ActionPanel}/OutputProcessWidget.qml | 21 ++++++++----------- .../{ => ActionPanel}/SliceProcessWidget.qml | 0 4 files changed, 9 insertions(+), 12 deletions(-) rename resources/qml/{ => ActionPanel}/ActionPanelWidget.qml (100%) rename resources/qml/{ => ActionPanel}/OutputDevicesActionButton.qml (100%) rename resources/qml/{ => ActionPanel}/OutputProcessWidget.qml (84%) rename resources/qml/{ => ActionPanel}/SliceProcessWidget.qml (100%) diff --git a/resources/qml/ActionPanelWidget.qml b/resources/qml/ActionPanel/ActionPanelWidget.qml similarity index 100% rename from resources/qml/ActionPanelWidget.qml rename to resources/qml/ActionPanel/ActionPanelWidget.qml diff --git a/resources/qml/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml similarity index 100% rename from resources/qml/OutputDevicesActionButton.qml rename to resources/qml/ActionPanel/OutputDevicesActionButton.qml diff --git a/resources/qml/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml similarity index 84% rename from resources/qml/OutputProcessWidget.qml rename to resources/qml/ActionPanel/OutputProcessWidget.qml index 435cc6da79..bef40fdfca 100644 --- a/resources/qml/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -61,25 +61,20 @@ Column function getText() { - var lengths = [] - var weights = [] - if(printMaterialLengths) + var totalLengths = 0 + var totalWeights = 0 + if (printMaterialLengths) { for(var index = 0; index < printMaterialLengths.length; index++) { if(printMaterialLengths[index] > 0) { - lengths.push(printMaterialLengths[index].toFixed(2)) - weights.push(String(Math.round(printMaterialWeights[index]))) + totalLengths += printMaterialLengths[index] + totalWeights += Math.round(printMaterialWeights[index]) } } } - if(lengths.length == 0) - { - lengths = ["0.00"] - weights = ["0"] - } - return weights.join(" + ") + "g · " + lengths.join(" + ") + "m" + return totalWeights + "g · " + totalLengths.toFixed(2) + "m" } text: getText() @@ -116,13 +111,15 @@ Column Cura.ActionButton { + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("action_panel_button").height text: catalog.i18nc("@button", "Preview") color: UM.Theme.getColor("secondary") hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - onClicked: console.log("Clicking preview") + onClicked: UM.Controller.setActiveStage("MonitorStage") } Cura.OutputDevicesActionButton diff --git a/resources/qml/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml similarity index 100% rename from resources/qml/SliceProcessWidget.qml rename to resources/qml/ActionPanel/SliceProcessWidget.qml From c862e72514230a7ed5eee59ca3257c5c58deb968 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 11:10:23 +0100 Subject: [PATCH 0132/1039] Add the print panel information as a popup that shows when the "i" icon is clicked. Contributes to CURA-5786. --- .../ActionPanel/OutputDevicesActionButton.qml | 2 +- .../qml/ActionPanel/OutputProcessWidget.qml | 16 +---- .../ActionPanel/PrintInformationWidget.qml | 62 +++++++++++++++++++ 3 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 resources/qml/ActionPanel/PrintInformationWidget.qml diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 11be11a2b0..32d5f8a73b 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -91,7 +91,7 @@ Item { opacity: visible ? 1 : 0 Behavior on opacity { NumberAnimation { duration: 100 } } - radius: UM.Theme.getSize("default_radius") + radius: UM.Theme.getSize("default_radius").width color: UM.Theme.getColor("action_panel_secondary") border.color: UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index bef40fdfca..a2f9f13576 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -4,7 +4,6 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 import QtQuick.Layouts 1.3 -import QtQuick.Controls 1.4 as Controls1 import UM 1.1 as UM import Cura 1.0 as Cura @@ -35,7 +34,7 @@ Column anchors { left: parent.left - right: moreInformationIcon.left + right: printInformationPanel.left rightMargin: UM.Theme.getSize("thin_margin").height } @@ -83,24 +82,15 @@ Column } } - UM.RecolorImage + PrintInformationWidget { - id: moreInformationIcon + id: printInformationPanel anchors { right: parent.right verticalCenter: timeAndCostsInformation.verticalCenter } - - source: UM.Theme.getIcon("info") - width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height - - sourceSize.width: width - sourceSize.height: height - - color: UM.Theme.getColor("text_medium") } } diff --git a/resources/qml/ActionPanel/PrintInformationWidget.qml b/resources/qml/ActionPanel/PrintInformationWidget.qml new file mode 100644 index 0000000000..f8f91869aa --- /dev/null +++ b/resources/qml/ActionPanel/PrintInformationWidget.qml @@ -0,0 +1,62 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 + +import UM 1.1 as UM +import Cura 1.0 as Cura + +Button +{ + id: widget + + implicitHeight: UM.Theme.getSize("section_icon").height + implicitWidth: UM.Theme.getSize("section_icon").width + + background: UM.RecolorImage + { + id: moreInformationIcon + + source: UM.Theme.getIcon("info") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + + sourceSize.width: width + sourceSize.height: height + + color: widget.hovered ? UM.Theme.getColor("primary") : UM.Theme.getColor("text_medium") + } + + onClicked: popup.opened ? popup.close() : popup.open() + + Popup + { + id: popup + + y: -(height + UM.Theme.getSize("default_arrow").height + UM.Theme.getSize("thin_margin").height) + x: parent.width - width + UM.Theme.getSize("thin_margin").width + + closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent + + contentItem: Label + { + id: panel + text: "Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, \nsed do eiusmod tempor incididunt \nut labore et dolore magna aliqua. \nUt enim ad minim veniam, ..." + } + + background: UM.PointingRectangle + { + opacity: visible ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 100 } } + color: UM.Theme.getColor("tool_panel_background") + borderColor: UM.Theme.getColor("lining") + borderWidth: UM.Theme.getSize("default_lining").width + + target: Qt.point(width - (widget.width / 2) - UM.Theme.getSize("thin_margin").width, + height + UM.Theme.getSize("default_arrow").height - UM.Theme.getSize("thin_margin").height) + + arrowSize: UM.Theme.getSize("default_arrow").width + } + } +} \ No newline at end of file From ef7ac3b089cc51712c850c3d1688ecd25cdc55d7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 13:29:55 +0100 Subject: [PATCH 0133/1039] Create the new component that gathers all the printjob information (times and material usage) in a popup that is shown when the "i" icon is pressed. Contributes to CURA-5786. --- .../ActionPanel/PrintInformationWidget.qml | 6 +- .../qml/ActionPanel/PrintJobInformation.qml | 166 ++++++++++++++++++ resources/themes/cura-light/theme.json | 2 +- 3 files changed, 170 insertions(+), 4 deletions(-) create mode 100644 resources/qml/ActionPanel/PrintJobInformation.qml diff --git a/resources/qml/ActionPanel/PrintInformationWidget.qml b/resources/qml/ActionPanel/PrintInformationWidget.qml index f8f91869aa..620c3a408c 100644 --- a/resources/qml/ActionPanel/PrintInformationWidget.qml +++ b/resources/qml/ActionPanel/PrintInformationWidget.qml @@ -39,10 +39,10 @@ Button closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent - contentItem: Label + contentItem: PrintJobInformation { - id: panel - text: "Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, \nsed do eiusmod tempor incididunt \nut labore et dolore magna aliqua. \nUt enim ad minim veniam, ..." + id: printJobInformation + width: UM.Theme.getSize("action_panel_information_widget").width } background: UM.PointingRectangle diff --git a/resources/qml/ActionPanel/PrintJobInformation.qml b/resources/qml/ActionPanel/PrintJobInformation.qml new file mode 100644 index 0000000000..0eaa0ca46f --- /dev/null +++ b/resources/qml/ActionPanel/PrintJobInformation.qml @@ -0,0 +1,166 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 + +import UM 1.1 as UM +import Cura 1.0 as Cura + +Column +{ + id: base + spacing: UM.Theme.getSize("default_margin").width + + UM.I18nCatalog + { + id: catalog + name: "cura" + } + + Column + { + id: timeSpecification + spacing: UM.Theme.getSize("thin_margin").width + width: parent.width + topPadding: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + + Label + { + text: catalog.i18nc("@label", "Time specification").toUpperCase() + color: UM.Theme.getColor("primary") + font: UM.Theme.getFont("small") + renderType: Text.NativeRendering + } + + Label + { + property var printDuration: PrintInformation.currentPrintTime + + function getTimeSpecifications() + { + // All the time information for the different features is achieved + var printTime = PrintInformation.getFeaturePrintTimes() + var totalSeconds = parseInt(printDuration.getDisplayString(UM.DurationFormat.Seconds)) + + // A message is created and displayed when the user hover the time label + var text = "" + for(var feature in printTime) + { + if(!printTime[feature].isTotalDurationZero) + { + text += "" + + "".arg(printTime[feature].getDisplayString(UM.DurationFormat.ISO8601).slice(0,-3)) + + "".arg(Math.round(100 * parseInt(printTime[feature].getDisplayString(UM.DurationFormat.Seconds)) / totalSeconds)) + + "" + } + } + text += "
" + feature + ":  %1  %1%
" + print(text) + return text + } + + text: getTimeSpecifications() + width: parent.width - 2 * UM.Theme.getSize("default_margin").width + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("very_small") + renderType: Text.NativeRendering + textFormat: Text.RichText + } + } + + Column + { + id: materialSpecification + spacing: UM.Theme.getSize("thin_margin").width + width: parent.width + bottomPadding: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + + Label + { + text: catalog.i18nc("@label", "Material specification").toUpperCase() + color: UM.Theme.getColor("primary") + font: UM.Theme.getFont("small") + renderType: Text.NativeRendering + } + + Label + { + property var printMaterialLengths: PrintInformation.materialLengths + property var printMaterialWeights: PrintInformation.materialWeights + property var printMaterialCosts: PrintInformation.materialCosts + property var printMaterialNames: PrintInformation.materialNames + + function formatRow(items) + { + var rowHTML = "" + for(var item = 0; item < items.length; item++) + { + if (item == 0) + { + rowHTML += "%1".arg(items[item]) + } + else + { + rowHTML += "  %1".arg(items[item]) + } + } + rowHTML += "" + return rowHTML + } + + function getMaterialSpecifications() + { + var lengths = [] + var weights = [] + var costs = [] + var names = [] + if(printMaterialLengths) + { + for(var index = 0; index < printMaterialLengths.length; index++) + { + if(printMaterialLengths[index] > 0) + { + names.push(printMaterialNames[index]) + lengths.push(printMaterialLengths[index].toFixed(2)) + weights.push(String(Math.round(printMaterialWeights[index]))) + var cost = printMaterialCosts[index] == undefined ? 0 : printMaterialCosts[index].toFixed(2) + costs.push(cost) + } + } + } + if(lengths.length == 0) + { + lengths = ["0.00"] + weights = ["0"] + costs = ["0.00"] + } + + var text = "" + for(var index = 0; index < lengths.length; index++) + { + text += formatRow([ + "%1:".arg(names[index]), + catalog.i18nc("@label m for meter", "%1m").arg(lengths[index]), + catalog.i18nc("@label g for grams", "%1g").arg(weights[index]), + "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(costs[index]), + ]) + } + text += "
" + + return text + } + + text: getMaterialSpecifications() + width: parent.width - 2 * UM.Theme.getSize("default_margin").width + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("very_small") + renderType: Text.NativeRendering + textFormat: Text.RichText + } + } +} \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 658fa00596..f354b521ee 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -379,7 +379,7 @@ "configuration_selector_widget": [35.0, 4.5], "configuration_selector_mode_tabs": [0.0, 3.0], - "action_panel_widget": [35.0, 0.0], + "action_panel_information_widget": [20.0, 0.0], "action_panel_button": [15.0, 3.0], "machine_selector_widget": [28.0, 4.5], From 300d109cfe45cd64665536e0113ade0e12ff0260 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 2 Nov 2018 13:37:57 +0100 Subject: [PATCH 0134/1039] Set the Z of the machine selector so the tooltip doesn't get hidden CURA-5772 --- plugins/PrepareStage/PrepareMenu.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index cdcc1384a2..e8514a9ef9 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -45,6 +45,7 @@ Item id: machineSelection width: UM.Theme.getSize("machine_selector_widget").width - configSelection.width height: prepareMenu.height + z: openFileButton.z - 1 } Cura.QuickConfigurationSelector From 34b76596f19931cd7498c837e105d95f6db1d445 Mon Sep 17 00:00:00 2001 From: Shelby Merrick Date: Fri, 2 Nov 2018 09:39:12 -0400 Subject: [PATCH 0135/1039] Updated to reference speed_travel macro --- resources/definitions/wanhao_d4s.def.json | 4 ++-- resources/definitions/wanhao_d6.def.json | 4 ++-- resources/definitions/wanhao_d6_plus.def.json | 4 ++-- resources/definitions/wanhao_duplicator5S.def.json | 4 ++-- resources/definitions/wanhao_duplicator5Smini.def.json | 4 ++-- resources/definitions/wanhao_i3.def.json | 4 ++-- resources/definitions/wanhao_i3mini.def.json | 4 ++-- resources/definitions/wanhao_i3plus.def.json | 4 ++-- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/resources/definitions/wanhao_d4s.def.json b/resources/definitions/wanhao_d4s.def.json index 8788353e92..c1807923c6 100644 --- a/resources/definitions/wanhao_d4s.def.json +++ b/resources/definitions/wanhao_d4s.def.json @@ -39,10 +39,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } diff --git a/resources/definitions/wanhao_d6.def.json b/resources/definitions/wanhao_d6.def.json index 7ca3031124..c8a690d02c 100644 --- a/resources/definitions/wanhao_d6.def.json +++ b/resources/definitions/wanhao_d6.def.json @@ -42,10 +42,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } diff --git a/resources/definitions/wanhao_d6_plus.def.json b/resources/definitions/wanhao_d6_plus.def.json index f17b58db85..b3b5ed9b0a 100644 --- a/resources/definitions/wanhao_d6_plus.def.json +++ b/resources/definitions/wanhao_d6_plus.def.json @@ -39,10 +39,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } diff --git a/resources/definitions/wanhao_duplicator5S.def.json b/resources/definitions/wanhao_duplicator5S.def.json index 1d29b90249..b27a13fda8 100644 --- a/resources/definitions/wanhao_duplicator5S.def.json +++ b/resources/definitions/wanhao_duplicator5S.def.json @@ -42,10 +42,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } diff --git a/resources/definitions/wanhao_duplicator5Smini.def.json b/resources/definitions/wanhao_duplicator5Smini.def.json index e7f9359cf1..e3ef0b92fe 100644 --- a/resources/definitions/wanhao_duplicator5Smini.def.json +++ b/resources/definitions/wanhao_duplicator5Smini.def.json @@ -39,10 +39,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } diff --git a/resources/definitions/wanhao_i3.def.json b/resources/definitions/wanhao_i3.def.json index 15121f8b8b..42b19c8748 100644 --- a/resources/definitions/wanhao_i3.def.json +++ b/resources/definitions/wanhao_i3.def.json @@ -39,10 +39,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } diff --git a/resources/definitions/wanhao_i3mini.def.json b/resources/definitions/wanhao_i3mini.def.json index 057fca81a6..0c70391c27 100644 --- a/resources/definitions/wanhao_i3mini.def.json +++ b/resources/definitions/wanhao_i3mini.def.json @@ -39,10 +39,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } diff --git a/resources/definitions/wanhao_i3plus.def.json b/resources/definitions/wanhao_i3plus.def.json index 2b705c6ff5..e454a40ae1 100644 --- a/resources/definitions/wanhao_i3plus.def.json +++ b/resources/definitions/wanhao_i3plus.def.json @@ -39,10 +39,10 @@ "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..." + "default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{speed_travel} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{speed_travel} \n ;Put printing message on LCD screen\n M117 Printing..." }, "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" + "default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning" } } } From 20b3b6da79aca7c42f935e3e9b6259918c72e63a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 2 Nov 2018 15:11:49 +0100 Subject: [PATCH 0136/1039] Document PreviewStage.py Some stuff I had to ask the original implementer to explain to me. So I wrote that down so that the next guy doesn't have to do that. Contributes to issue CURA-5829. --- plugins/PreviewStage/PreviewMenu.qml | 3 +++ plugins/PreviewStage/PreviewStage.py | 16 ++++++++++++++++ plugins/PreviewStage/__init__.py | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 5ed0e697a9..66f7d527d9 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -1,3 +1,6 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.7 import QtQuick.Controls 1.4 diff --git a/plugins/PreviewStage/PreviewStage.py b/plugins/PreviewStage/PreviewStage.py index 1aed95162a..1c487c8340 100644 --- a/plugins/PreviewStage/PreviewStage.py +++ b/plugins/PreviewStage/PreviewStage.py @@ -1,5 +1,6 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. + import os.path from UM.Qt.QtApplication import QtApplication @@ -11,6 +12,11 @@ if TYPE_CHECKING: from UM.View.View import View +## Displays a preview of what you're about to print. +# +# The Python component of this stage just loads PreviewMain.qml for display +# when the stage is selected, and makes sure that it reverts to the previous +# view when the previous stage is activated. class PreviewStage(CuraStage): def __init__(self, application: QtApplication, parent = None) -> None: super().__init__(parent) @@ -18,14 +24,24 @@ class PreviewStage(CuraStage): self._application.engineCreatedSignal.connect(self._engineCreated) self._previously_active_view = None # type: Optional[View] + ## When selecting the stage, remember which was the previous view so that + # we can revert to that view when we go out of the stage later. def onStageSelected(self) -> None: self._previously_active_view = self._application.getController().getActiveView() + ## Called when going to a different stage (away from the Preview Stage). + # + # When going to a different stage, the view should be reverted to what it + # was before. Normally, that just reverts it to solid view. def onStageDeselected(self) -> None: if self._previously_active_view is not None: self._application.getController().setActiveView(self._previously_active_view.getPluginId()) self._previously_active_view = None + ## Delayed load of the QML files. + # + # We need to make sure that the QML engine is running before we can load + # these. def _engineCreated(self) -> None: plugin_path = self._application.getPluginRegistry().getPluginPath(self.getPluginId()) if plugin_path is not None: diff --git a/plugins/PreviewStage/__init__.py b/plugins/PreviewStage/__init__.py index d58826934e..424f573e4a 100644 --- a/plugins/PreviewStage/__init__.py +++ b/plugins/PreviewStage/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from . import PreviewStage From dba31c3af435202ef93363859017927d4a043bd2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 16:20:04 +0100 Subject: [PATCH 0137/1039] Add documentation. Contributes to CURA-5786. --- resources/qml/ActionPanel/ActionPanelWidget.qml | 4 ++++ resources/qml/ActionPanel/OutputProcessWidget.qml | 5 +++++ resources/qml/ActionPanel/SliceProcessWidget.qml | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/resources/qml/ActionPanel/ActionPanelWidget.qml b/resources/qml/ActionPanel/ActionPanelWidget.qml index 417883af6f..1fc288af6a 100644 --- a/resources/qml/ActionPanel/ActionPanelWidget.qml +++ b/resources/qml/ActionPanel/ActionPanelWidget.qml @@ -8,6 +8,10 @@ import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.0 as Cura + +// This element hold all the elements needed for the user to trigger the slicing process, and later +// to get information about the printing times, material consumption and the output process (such as +// saving to a file, printing over network, ... Rectangle { id: actionPanelWidget diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index a2f9f13576..5d5e5bb66c 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -8,6 +8,11 @@ import QtQuick.Layouts 1.3 import UM 1.1 as UM import Cura 1.0 as Cura + +// This element contains all the elements the user needs to visualize the data +// that is gather after the slicing process, such as printint time, material usage, ... +// There are also two buttons: one to previsualize the output layers, and the other to +// select what to do with it (such as print over network, save to file, ...) Column { id: widget diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 3ea6e09975..e70ec45e43 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -9,6 +9,10 @@ import QtQuick.Controls 1.4 as Controls1 import UM 1.1 as UM import Cura 1.0 as Cura + +// This element contains all the elements the user needs to create a printjob from the +// model(s) that is(are) on the buildplate. Mainly the button to start/stop the slicing +// process and a progress bar to see the progress of the process. Column { id: widget From 059e681de59f073870d6858daac7b0cd85528be1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 16:44:50 +0100 Subject: [PATCH 0138/1039] Remove unused code. Contributes to CURA-5786. --- resources/qml/ActionPanel/OutputDevicesActionButton.qml | 1 - resources/qml/ActionPanel/PrintJobInformation.qml | 1 - resources/qml/Cura.qml | 8 -------- 3 files changed, 10 deletions(-) diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 32d5f8a73b..87faa0a2bf 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -74,7 +74,6 @@ Item { text: model.description color: "transparent" - outlineColor: "transparent" cornerRadius: 0 hoverColor: UM.Theme.getColor("primary") diff --git a/resources/qml/ActionPanel/PrintJobInformation.qml b/resources/qml/ActionPanel/PrintJobInformation.qml index 0eaa0ca46f..df90e81aaf 100644 --- a/resources/qml/ActionPanel/PrintJobInformation.qml +++ b/resources/qml/ActionPanel/PrintJobInformation.qml @@ -58,7 +58,6 @@ Column } } text += "" - print(text) return text } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 1f4d71e460..f7b4186515 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -314,14 +314,6 @@ UM.MainWindow anchors.bottom: parent.bottom anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.bottomMargin: UM.Theme.getSize("thick_margin").height -// onShowTooltip: -// { -// base.showTooltip(item, location, text) -// } -// onHideTooltip: -// { -// base.hideTooltip() -// } } Loader From 2dfd354b25e3187f403cc1cffc028d61eb7bae2e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 16:49:31 +0100 Subject: [PATCH 0139/1039] Remove function and property that are only used once. Contributes to CURA-5786. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 5d5e5bb66c..db9a23cdf3 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -48,9 +48,7 @@ Column id: estimatedTime width: parent.width - property var printDuration: PrintInformation.currentPrintTime - - text: printDuration.getDisplayString(UM.DurationFormat.Long) + text: PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") font: UM.Theme.getFont("small") } @@ -63,7 +61,7 @@ Column property var printMaterialLengths: PrintInformation.materialLengths property var printMaterialWeights: PrintInformation.materialWeights - function getText() + text: { var totalLengths = 0 var totalWeights = 0 @@ -80,8 +78,6 @@ Column } return totalWeights + "g · " + totalLengths.toFixed(2) + "m" } - - text: getText() source: UM.Theme.getIcon("spool") font: UM.Theme.getFont("very_small") } From 6f2e8d726dac8488f6547f39556844afbd3cf4db Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 2 Nov 2018 16:52:17 +0100 Subject: [PATCH 0140/1039] Remove functions that are only used once. Contributes to CURA-5786. --- resources/qml/ActionPanel/PrintJobInformation.qml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/resources/qml/ActionPanel/PrintJobInformation.qml b/resources/qml/ActionPanel/PrintJobInformation.qml index df90e81aaf..e53a92a994 100644 --- a/resources/qml/ActionPanel/PrintJobInformation.qml +++ b/resources/qml/ActionPanel/PrintJobInformation.qml @@ -39,7 +39,7 @@ Column { property var printDuration: PrintInformation.currentPrintTime - function getTimeSpecifications() + text: { // All the time information for the different features is achieved var printTime = PrintInformation.getFeaturePrintTimes() @@ -60,8 +60,6 @@ Column text += "" return text } - - text: getTimeSpecifications() width: parent.width - 2 * UM.Theme.getSize("default_margin").width color: UM.Theme.getColor("text") font: UM.Theme.getFont("very_small") @@ -112,7 +110,7 @@ Column return rowHTML } - function getMaterialSpecifications() + text: { var lengths = [] var weights = [] @@ -153,8 +151,6 @@ Column return text } - - text: getMaterialSpecifications() width: parent.width - 2 * UM.Theme.getSize("default_margin").width color: UM.Theme.getColor("text") font: UM.Theme.getFont("very_small") From a0295786b08bb4233f1b88c65c55d771ec6d2f5b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 5 Nov 2018 09:44:41 +0100 Subject: [PATCH 0141/1039] Remove unused installer.nsi It won't work any more anyway. Please use https://github.com/Ultimaker/cura-build to create an installer for Cura. --- installer.nsi | 156 -------------------------------------------------- 1 file changed, 156 deletions(-) delete mode 100644 installer.nsi diff --git a/installer.nsi b/installer.nsi deleted file mode 100644 index 7516f733a1..0000000000 --- a/installer.nsi +++ /dev/null @@ -1,156 +0,0 @@ -!ifndef VERSION - !define VERSION '15.09.80' -!endif - -; The name of the installer -Name "Cura ${VERSION}" - -; The file to write -OutFile "Cura_${VERSION}.exe" - -; The default installation directory -InstallDir $PROGRAMFILES\Cura_${VERSION} - -; Registry key to check for directory (so if you install again, it will -; overwrite the old one automatically) -InstallDirRegKey HKLM "Software\Cura_${VERSION}" "Install_Dir" - -; Request application privileges for Windows Vista -RequestExecutionLevel admin - -; Set the LZMA compressor to reduce size. -SetCompressor /SOLID lzma -;-------------------------------- - -!include "MUI2.nsh" -!include "Library.nsh" - -; !define MUI_ICON "dist/resources/cura.ico" -!define MUI_BGCOLOR FFFFFF - -; Directory page defines -!define MUI_DIRECTORYPAGE_VERIFYONLEAVE - -; Header -; Don't show the component description box -!define MUI_COMPONENTSPAGE_NODESC - -;Do not leave (Un)Installer page automaticly -!define MUI_FINISHPAGE_NOAUTOCLOSE -!define MUI_UNFINISHPAGE_NOAUTOCLOSE - -;Run Cura after installing -!define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_TEXT "Start Cura ${VERSION}" -!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" - -;Add an option to show release notes -!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\plugins\ChangeLogPlugin\changelog.txt" - -; Pages -;!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_COMPONENTS -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_PAGE_FINISH -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!insertmacro MUI_UNPAGE_FINISH - -; Languages -!insertmacro MUI_LANGUAGE "English" - -; Reserve Files -!insertmacro MUI_RESERVEFILE_LANGDLL -ReserveFile '${NSISDIR}\Plugins\InstallOptions.dll' - -;-------------------------------- - -; The stuff to install -Section "Cura ${VERSION}" - - SectionIn RO - - ; Set output path to the installation directory. - SetOutPath $INSTDIR - - ; Put file there - File /r "dist\" - - ; Write the installation path into the registry - WriteRegStr HKLM "SOFTWARE\Cura_${VERSION}" "Install_Dir" "$INSTDIR" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "DisplayName" "Cura ${VERSION}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "UninstallString" '"$INSTDIR\uninstall.exe"' - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" "NoRepair" 1 - WriteUninstaller "uninstall.exe" - - ; Write start menu entries for all users - SetShellVarContext all - - CreateDirectory "$SMPROGRAMS\Cura ${VERSION}" - CreateShortCut "$SMPROGRAMS\Cura ${VERSION}\Uninstall Cura ${VERSION}.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 - CreateShortCut "$SMPROGRAMS\Cura ${VERSION}\Cura ${VERSION}.lnk" "$INSTDIR\Cura.exe" '' "$INSTDIR\Cura.exe" 0 - -SectionEnd - -Function LaunchLink - ; Write start menu entries for all users - SetShellVarContext all - Exec '"$WINDIR\explorer.exe" "$SMPROGRAMS\Cura ${VERSION}\Cura ${VERSION}.lnk"' -FunctionEnd - -Section "Install Visual Studio 2010 Redistributable" - SetOutPath "$INSTDIR" - File "vcredist_2010_20110908_x86.exe" - - IfSilent +2 - ExecWait '"$INSTDIR\vcredist_2010_20110908_x86.exe" /q /norestart' - -SectionEnd - -Section "Install Arduino Drivers" - ; Set output path to the driver directory. - SetOutPath "$INSTDIR\drivers\" - File /r "drivers\" - - ${If} ${RunningX64} - IfSilent +2 - ExecWait '"$INSTDIR\drivers\dpinst64.exe" /lm' - ${Else} - IfSilent +2 - ExecWait '"$INSTDIR\drivers\dpinst32.exe" /lm' - ${EndIf} -SectionEnd - -Section "Open STL files with Cura" - ${registerExtension} "$INSTDIR\Cura.exe" ".stl" "STL_File" -SectionEnd - -Section /o "Open OBJ files with Cura" - WriteRegStr HKCR .obj "" "Cura OBJ model file" - DeleteRegValue HKCR .obj "Content Type" - WriteRegStr HKCR "Cura OBJ model file\DefaultIcon" "" "$INSTDIR\Cura.exe,0" - WriteRegStr HKCR "Cura OBJ model file\shell" "" "open" - WriteRegStr HKCR "Cura OBJ model file\shell\open\command" "" '"$INSTDIR\Cura.exe" "%1"' -SectionEnd - -;-------------------------------- - -; Uninstaller - -Section "Uninstall" - - ; Remove registry keys - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Cura_${VERSION}" - DeleteRegKey HKLM "SOFTWARE\Cura_${VERSION}" - - ; Write start menu entries for all users - SetShellVarContext all - ; Remove directories used - RMDir /r "$SMPROGRAMS\Cura ${VERSION}" - RMDir /r "$INSTDIR" - -SectionEnd From eded0f02974c31e84e0c6dc505f234f68af7ea81 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 11:17:39 +0100 Subject: [PATCH 0142/1039] Make quality manager also include profiles with same GUID in fallback. This ensures that if a (duplicated) material does not have a generic variant, that the material it was copied from will be added to the fallback list. CURA-5898 --- cura/Machines/MaterialManager.py | 26 ++++++++++++++++++++++++-- cura/Machines/QualityManager.py | 12 +++++++----- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/cura/Machines/MaterialManager.py b/cura/Machines/MaterialManager.py index 1a204c020b..cbe1d10656 100644 --- a/cura/Machines/MaterialManager.py +++ b/cura/Machines/MaterialManager.py @@ -12,6 +12,7 @@ from UM.Application import Application from UM.ConfigurationErrorMessage import ConfigurationErrorMessage from UM.Logger import Logger from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.SettingFunction import SettingFunction from UM.Util import parseBool @@ -298,7 +299,7 @@ class MaterialManager(QObject): def getRootMaterialIDWithoutDiameter(self, root_material_id: str) -> str: return self._diameter_material_map.get(root_material_id, "") - def getMaterialGroupListByGUID(self, guid: str) -> Optional[list]: + def getMaterialGroupListByGUID(self, guid: str) -> Optional[List[MaterialGroup]]: return self._guid_material_groups_map.get(guid) # @@ -446,6 +447,28 @@ class MaterialManager(QObject): material_diameter, root_material_id) return node + # There are 2 ways to get fallback materials; + # - A fallback by type (@sa getFallbackMaterialIdByMaterialType), which adds the generic version of this material + # - A fallback by GUID; If a material has been duplicated, it should also check if the original materials do have + # a GUID. This should only be done if the material itself does not have a quality just yet. + def getFallBackMaterialIdsByMaterial(self, material: InstanceContainer) -> List[str]: + results = [] # List[str] + + material_groups = self.getMaterialGroupListByGUID(material.getMetaDataEntry("GUID")) + for material_group in material_groups: + if material_group.name != material.getId(): + # If the material in the group is read only, put it at the front of the list (since that is the most + # likely one to get a result) + if material_group.is_read_only: + results.insert(0, material_group.name) + else: + results.append(material_group.name) + + fallback = self.getFallbackMaterialIdByMaterialType(material.getMetaDataEntry("material")) + if fallback is not None: + results.append(fallback) + return results + # # Used by QualityManager. Built-in quality profiles may be based on generic material IDs such as "generic_pla". # For materials such as ultimaker_pla_orange, no quality profiles may be found, so we should fall back to use @@ -602,7 +625,6 @@ class MaterialManager(QObject): container_to_add.setDirty(True) self._container_registry.addContainer(container_to_add) - # if the duplicated material was favorite then the new material should also be added to favorite. if root_material_id in self.getFavorites(): self.addFavorite(new_base_id) diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index ce19624c21..60a6820772 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -259,11 +259,13 @@ class QualityManager(QObject): root_material_id = self._material_manager.getRootMaterialIDWithoutDiameter(root_material_id) root_material_id_list.append(root_material_id) - # Also try to get the fallback material - material_type = extruder.material.getMetaDataEntry("material") - fallback_root_material_id = self._material_manager.getFallbackMaterialIdByMaterialType(material_type) - if fallback_root_material_id: - root_material_id_list.append(fallback_root_material_id) + # Also try to get the fallback materials + fallback_ids = self._material_manager.getFallBackMaterialIdsByMaterial(extruder.material) + + if fallback_ids: + root_material_id_list.extend(fallback_ids) + root_material_id_list = list(set(root_material_id_list)) # Weed out duplicates + # Here we construct a list of nodes we want to look for qualities with the highest priority first. # The use case is that, when we look for qualities for a machine, we first want to search in the following From 412e5977a6c24d7c2553daecf74e57b473af8851 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 11:30:02 +0100 Subject: [PATCH 0143/1039] Fix type issues --- cura/CuraApplication.py | 2 +- cura/Machines/MaterialManager.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 5323f1b0fa..0610d8da86 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -128,7 +128,7 @@ if TYPE_CHECKING: numpy.seterr(all = "ignore") try: - from cura.CuraVersion import CuraVersion, CuraBuildType, CuraDebugMode, CuraSDKVersion + from cura.CuraVersion import CuraVersion, CuraBuildType, CuraDebugMode, CuraSDKVersion # type: ignore except ImportError: CuraVersion = "master" # [CodeStyle: Reflecting imported value] CuraBuildType = "" diff --git a/cura/Machines/MaterialManager.py b/cura/Machines/MaterialManager.py index cbe1d10656..4f7646b341 100644 --- a/cura/Machines/MaterialManager.py +++ b/cura/Machines/MaterialManager.py @@ -452,10 +452,10 @@ class MaterialManager(QObject): # - A fallback by GUID; If a material has been duplicated, it should also check if the original materials do have # a GUID. This should only be done if the material itself does not have a quality just yet. def getFallBackMaterialIdsByMaterial(self, material: InstanceContainer) -> List[str]: - results = [] # List[str] + results = [] # type: List[str] material_groups = self.getMaterialGroupListByGUID(material.getMetaDataEntry("GUID")) - for material_group in material_groups: + for material_group in material_groups: # type: ignore if material_group.name != material.getId(): # If the material in the group is read only, put it at the front of the list (since that is the most # likely one to get a result) From 4659b0d38717afb0b693545e19501831d5b79e06 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 11:36:58 +0100 Subject: [PATCH 0144/1039] Fix codestyle --- plugins/SimulationView/SimulationViewMainComponent.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index 5c45da6b45..69984f85cb 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -72,7 +72,8 @@ Item if(is_simulation_playing) { pauseSimulation() - } else + } + else { resumeSimulation() } From f0e205423f24c4e10cb2d59f4b9ec98d69c58561 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 11:47:22 +0100 Subject: [PATCH 0145/1039] Pause simulation view when preferences have been changed. I accidentally removed this feature when working on CURA-5829, but it was spotted in the review. --- plugins/SimulationView/SimulationViewMainComponent.qml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index 69984f85cb..f34208e1b5 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -61,6 +61,16 @@ Item iconSource: !is_simulation_playing ? "./resources/simulation_resume.svg": "./resources/simulation_pause.svg" style: UM.Theme.styles.small_tool_button visible: !UM.SimulationView.compatibilityMode + + Connections + { + target: UM.Preferences + onPreferenceChanged: + { + playButton.pauseSimulation() + } + } + anchors { right: pathSlider.left From 9f13de9f0d07fde160fc49c7ca9f1f0a62b77336 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 11:48:19 +0100 Subject: [PATCH 0146/1039] No longer create two instances of the setting view. This caused a bunch of issues with the getPluginId, as one of the instances didn't got added to the registry (and as such, never got an ID) CURA-5829 --- plugins/SimulationView/SimulationViewMenuComponent.qml | 2 +- plugins/SimulationView/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 5a146910e7..b1613dff85 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -210,7 +210,7 @@ Item target: UM.Preferences onPreferenceChanged: { - layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type"); + layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type") layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex) viewSettings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|") viewSettings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves") diff --git a/plugins/SimulationView/__init__.py b/plugins/SimulationView/__init__.py index 1efb7fd650..420ee60660 100644 --- a/plugins/SimulationView/__init__.py +++ b/plugins/SimulationView/__init__.py @@ -25,4 +25,4 @@ def createSimulationViewProxy(engine, script_engine): def register(app): simulation_view = SimulationView.SimulationView() qmlRegisterSingletonType(SimulationViewProxy.SimulationViewProxy, "UM", 1, 0, "SimulationView", simulation_view.getProxy) - return { "view": SimulationView.SimulationView()} + return { "view": simulation_view} From fa693aef2b7b4e85e691c916abd23ad7acc2ca14 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 5 Nov 2018 11:48:17 +0100 Subject: [PATCH 0147/1039] Fix material shown in print jobs CURA-5887 - Use MaterialManager to get materials - For a GUID with mulitple matches, show the read-only materials first if any. Otherwise, show non-read-only materials. --- .../src/ClusterUM3OutputDevice.py | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 7504d55ad9..e4cea70f98 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -591,12 +591,26 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): return result def _createMaterialOutputModel(self, material_data) -> MaterialOutputModel: - containers = ContainerRegistry.getInstance().findInstanceContainers(type="material", GUID=material_data["guid"]) - if containers: - color = containers[0].getMetaDataEntry("color_code") - brand = containers[0].getMetaDataEntry("brand") - material_type = containers[0].getMetaDataEntry("material") - name = containers[0].getName() + material_manager = CuraApplication.getInstance().getMaterialManager() + material_group_list = material_manager.getMaterialGroupListByGUID(material_data["guid"]) + + # Sort the material groups by "is_read_only = True" first, and then the name alphabetically. + read_only_material_group_list = list(filter(lambda x: x.is_read_only, material_group_list)) + non_read_only_material_group_list = list(filter(lambda x: not x.is_read_only, material_group_list)) + material_group = None + if read_only_material_group_list: + read_only_material_group_list = sorted(read_only_material_group_list, key = lambda x: x.name) + material_group = read_only_material_group_list[0] + elif non_read_only_material_group_list: + non_read_only_material_group_list = sorted(non_read_only_material_group_list, key = lambda x: x.name) + material_group = non_read_only_material_group_list[0] + + if material_group: + container = material_group.root_material_node.getContainer() + color = container.getMetaDataEntry("color_code") + brand = container.getMetaDataEntry("brand") + material_type = container.getMetaDataEntry("material") + name = container.getName() else: Logger.log("w", "Unable to find material with guid {guid}. Using data as provided by cluster".format( From 406dd68aa4151bdc40dde21f1b66e071038b9fbb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 11:54:55 +0100 Subject: [PATCH 0148/1039] Made path slider widht themable. CURA-5829 --- plugins/SimulationView/SimulationViewMainComponent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index f34208e1b5..784938e5c2 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -18,7 +18,7 @@ Item { id: pathSlider height: UM.Theme.getSize("slider_handle").width - width: 250 + width: UM.Theme.getSize("layerview_menu_size").width anchors.bottom: parent.bottom anchors.bottomMargin: UM.Theme.getSize("default_margin").height From 4f10b7809aa1cc97fc73703c9f9f73915edff363 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 5 Nov 2018 12:15:17 +0100 Subject: [PATCH 0149/1039] Configuration override improvements Contributes to CL-1124 --- .../resources/qml/PrintJobInfoBlock.qml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml index 0fa65ba4c4..d851b684e5 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml @@ -355,7 +355,7 @@ Item { anchors.fill: parent; elide: Text.ElideRight; color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("large_nonbold"); + font: UM.Theme.getFont("medium"); text: { if (!printJob || printJob.configurationChanges.length === 0) { return ""; @@ -398,6 +398,22 @@ Item { bottom: parent.bottom; left: parent.left; } + background: Rectangle { + border { + color: UM.Theme.getColor("monitor_lining_heavy"); + width: UM.Theme.getSize("default_lining").width; + } + color: parent.hovered ? UM.Theme.getColor("monitor_card_background_inactive") : UM.Theme.getColor("monitor_card_background"); + implicitHeight: UM.Theme.getSize("default_margin").height * 3; + implicitWidth: UM.Theme.getSize("default_margin").height * 8; + } + contentItem: Label { + color: UM.Theme.getColor("text"); + font: UM.Theme.getFont("medium"); + horizontalAlignment: Text.AlignHCenter; + text: parent.text; + verticalAlignment: Text.AlignVCenter; + } onClicked: { overrideConfirmationDialog.visible = true; } From 88f3325972537eb1d01795e62230d9053d50661e Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 5 Nov 2018 13:11:54 +0100 Subject: [PATCH 0150/1039] Add typing for _createMaterialOutputModel() CURA-5887 --- plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index e4cea70f98..8314b0f089 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -590,7 +590,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): origin_name=change["origin_name"])) return result - def _createMaterialOutputModel(self, material_data) -> MaterialOutputModel: + def _createMaterialOutputModel(self, material_data: Dict[str, Any]) -> "MaterialOutputModel": material_manager = CuraApplication.getInstance().getMaterialManager() material_group_list = material_manager.getMaterialGroupListByGUID(material_data["guid"]) From 2bb7b352efca961ca3f87a38251084e3a0b83914 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 13:25:47 +0100 Subject: [PATCH 0151/1039] Hide settings when pre-sliced g-code is loaded CURA-5772 --- resources/qml/PrintSetupSelector.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 987e3ecce9..8232e76a17 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -106,10 +106,10 @@ Rectangle model: modesListModel width: Math.round(parent.width * 0.55) height: UM.Theme.getSize("print_setup_mode_toggle").height + visible: !hideSettings anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("thick_margin").width - anchors.top: settingsModeLabel.top ButtonGroup @@ -191,6 +191,8 @@ Rectangle anchors.right: parent.right height: UM.Theme.getSize("print_setup_widget").height + visible: !hideSettings + // We load both of them at once (instead of using a loader) because the advanced sidebar can take // quite some time to load. So in this case we sacrifice memory for speed. SidebarAdvanced From 93afaf64c65f5778c1cafa8d0774ff0d347df8be Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 5 Nov 2018 13:28:14 +0100 Subject: [PATCH 0152/1039] Strip the old "curaproject" extension from project name CURA-5896 --- cura/PrintInformation.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 21b57d0806..0d6418d388 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -369,6 +369,11 @@ class PrintInformation(QObject): else: self._base_name = "" + # Strip the old "curaproject" extension from the name + OLD_CURA_PROJECT_EXT = ".curaproject" + if self._base_name.endswith(OLD_CURA_PROJECT_EXT): + self._base_name = self._base_name[:len(self._base_name) - len(OLD_CURA_PROJECT_EXT)] + self._updateJobName() @pyqtProperty(str, fset = setBaseName, notify = baseNameChanged) From 3f1e0cc61013b4626c09a7b8995504f6bb0b2c01 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 5 Nov 2018 14:25:16 +0100 Subject: [PATCH 0153/1039] Fix delayed convex hull recomputation CURA-5896 If the current tool operation is still active, we need to delay the convex hull recomputation after the tool becomes inactive. --- cura/Scene/ConvexHullDecorator.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 52e687832c..39124c5ba3 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -142,6 +142,12 @@ class ConvexHullDecorator(SceneNodeDecorator): controller = Application.getInstance().getController() root = controller.getScene().getRoot() if self._node is None or controller.isToolOperationActive() or not self.__isDescendant(root, self._node): + # If the tool operation is still active, we need to compute the convex hull later after the controller is + # no longer active. + if controller.isToolOperationActive(): + self.recomputeConvexHullDelayed() + return + if self._convex_hull_node: self._convex_hull_node.setParent(None) self._convex_hull_node = None From 99bac25ab2d7a75ac5e6c9bcceebe75367babc28 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 14:55:22 +0100 Subject: [PATCH 0154/1039] Show default avatar if user has no avatar picture set CURA-5784 --- resources/qml/Account/AccountDetails.qml | 14 +++++++++++++- resources/qml/Account/AccountWidget.qml | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index c723ca20fb..a288426e0c 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -11,6 +11,7 @@ Column { property var profile: null property var loggedIn: false + property var profileImage: "" padding: 2 * UM.Theme.getSize("default_margin").height spacing: 2 * UM.Theme.getSize("default_margin").height @@ -21,7 +22,18 @@ Column width: UM.Theme.getSize("avatar_image").width height: UM.Theme.getSize("avatar_image").height anchors.horizontalCenter: parent.horizontalCenter - source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user") + source: + { + if(loggedIn) + { + if(profileImage) + { + return profileImage + } + return UM.Theme.getImage("avatar_no_user") + } + return UM.Theme.getImage("avatar_no_user") + } outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("lining") } diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index cdae457ac8..e37523296f 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -25,7 +25,18 @@ Button anchors.verticalCenter: accountWidget.verticalCenter anchors.horizontalCenter: accountWidget.horizontalCenter - source: loggedIn ? profile["profile_image_url"] : UM.Theme.getImage("avatar_no_user") + source: + { + if(loggedIn) + { + if(profile["profile_image_url"]) + { + return profile["profile_image_url"] + } + return UM.Theme.getImage("avatar_no_user") + } + return UM.Theme.getImage("avatar_no_user") + } outlineColor: loggedIn ? UM.Theme.getColor("account_widget_outline_active") : UM.Theme.getColor("lining") } @@ -45,6 +56,7 @@ Button id: panel profile: Cura.API.account.userProfile loggedIn: Cura.API.account.isLoggedIn + profileImage: Cura.API.account.profileImageUrl } background: UM.PointingRectangle From 1abd0b3499a1a6d666f67dab25fb2ed865062c44 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 5 Nov 2018 15:45:17 +0100 Subject: [PATCH 0155/1039] Show "Pausing...", "Aborting...", and "Resuming..." texts Contributes to CL-1126 --- .../resources/qml/PrintJobContextMenu.qml | 56 +++++++++++++------ .../resources/qml/PrintJobContextMenuItem.qml | 3 +- 2 files changed, 39 insertions(+), 20 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml index 473fd87a34..695b69f822 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml @@ -11,7 +11,7 @@ import UM 1.3 as UM Item { id: root; property var printJob: null; - property var running: isRunning(printJob); + property var started: isStarted(printJob); property var assigned: isAssigned(printJob); Button { @@ -34,7 +34,7 @@ Item { hoverEnabled: true; onClicked: parent.switchPopupState(); text: "\u22EE"; //Unicode; Three stacked points. - visible: printJob.state == "queued" || running ? true : false; + visible: printJob.state == "queued" || printJob.state == "aborted" || started ? true : false; width: 35 * screenScaleFactor; // TODO: Theme! } @@ -102,7 +102,12 @@ Item { width: parent.width; PrintJobContextMenuItem { - enabled: { + onClicked: { + sendToTopConfirmationDialog.visible = true; + popup.close(); + } + text: catalog.i18nc("@label", "Move to top"); + visible: { if (printJob && printJob.state == "queued" && !assigned) { if (OutputDevice && OutputDevice.queuedPrintJobs[0]) { return OutputDevice.queuedPrintJobs[0].key != printJob.key; @@ -110,42 +115,57 @@ Item { } return false; } - onClicked: { - sendToTopConfirmationDialog.visible = true; - popup.close(); - } - text: catalog.i18nc("@label", "Move to top"); } PrintJobContextMenuItem { - enabled: printJob && !running; onClicked: { deleteConfirmationDialog.visible = true; popup.close(); } text: catalog.i18nc("@label", "Delete"); + visible: printJob && !started && printJob.state !== "aborted" && printJob.state !== "finished"; } PrintJobContextMenuItem { - enabled: printJob && running; + enabled: !(printJob.state == "pausing" || printJob.state == "resuming"); onClicked: { if (printJob.state == "paused") { printJob.setState("print"); - } else if(printJob.state == "printing") { - printJob.setState("pause"); + popup.close(); + return; + } + if (printJob.state == "printing") { + printJob.setState("pause"); + popup.close(); + return; } - popup.close(); } - text: printJob && printJob.state == "paused" ? catalog.i18nc("@label", "Resume") : catalog.i18nc("@label", "Pause"); + text: { + if (!printJob) { + return ""; + } + switch(printJob.state) { + case "paused": + return catalog.i18nc("@label", "Resume"); + case "pausing": + return catalog.i18nc("@label", "Pausing..."); + case "resuming": + return catalog.i18nc("@label", "Resuming..."); + default: + catalog.i18nc("@label", "Pause"); + } + } + visible: printJob && started && printJob.state; } PrintJobContextMenuItem { - enabled: printJob && running; + enabled: printJob.state !== "aborting"; onClicked: { abortConfirmationDialog.visible = true; popup.close(); } - text: catalog.i18nc("@label", "Abort"); + text: printJob.state == "aborting" ? catalog.i18nc("@label", "Aborting...") : catalog.i18nc("@label", "Abort"); + visible: printJob && started; } } enter: Transition { @@ -205,11 +225,11 @@ Item { function switchPopupState() { popup.visible ? popup.close() : popup.open(); } - function isRunning(job) { + function isStarted(job) { if (!job) { return false; } - return ["paused", "printing", "pre_print"].indexOf(job.state) !== -1; + return ["pre_print", "printing", "pausing", "paused", "resuming", "aborting"].indexOf(job.state) !== -1; } function isAssigned(job) { if (!job) { diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml index 1b0777a8c0..18f5e3b305 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml @@ -12,13 +12,12 @@ Button { color: UM.Theme.getColor("monitor_context_menu_highlight"); } contentItem: Label { - color: UM.Theme.getColor("text"); + color: enabled ? UM.Theme.getColor("text") : UM.Theme.getColor("text_inactive"); text: parent.text horizontalAlignment: Text.AlignLeft; verticalAlignment: Text.AlignVCenter; } height: 39 * screenScaleFactor; // TODO: Theme! hoverEnabled: true; - visible: enabled; width: parent.width; } \ No newline at end of file From 8106df1ae2659da6cf460cb49a23e631be202f3b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 16:26:35 +0100 Subject: [PATCH 0156/1039] Bit of QML cleanup --- .../SimulationViewMenuComponent.qml | 922 +++++++++--------- resources/themes/cura-light/theme.json | 2 - 2 files changed, 454 insertions(+), 470 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index b1613dff85..62f353a241 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -9,32 +9,21 @@ import QtQuick.Controls.Styles 1.1 import UM 1.0 as UM import Cura 1.0 as Cura -Item +Rectangle { id: base - width: + + color: UM.Theme.getColor("tool_panel_background") + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + + width: UM.Theme.getSize("layerview_menu_size").width + + height: { - if (UM.SimulationView.compatibilityMode) - { - return UM.Theme.getSize("layerview_menu_size_compatibility").width; - } - else - { - return UM.Theme.getSize("layerview_menu_size").width; - } - } - height: { if (viewSettings.collapsed) { - if (UM.SimulationView.compatibilityMode) - { - return UM.Theme.getSize("layerview_menu_size_compatibility_collapsed").height; - } - return UM.Theme.getSize("layerview_menu_size_collapsed").height; - } - else if (UM.SimulationView.compatibilityMode) - { - return UM.Theme.getSize("layerview_menu_size_compatibility").height; + return UM.Theme.getSize("layerview_menu_size_collapsed").height } else if (UM.Preferences.getValue("layerview/layer_view_type") == 0) { @@ -45,6 +34,7 @@ Item return UM.Theme.getSize("layerview_menu_size").height + UM.SimulationView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height) } } + Behavior on height { NumberAnimation { duration: 100 } } property var buttonTarget: @@ -57,514 +47,510 @@ Item return Qt.point(0,0) } - Rectangle + Connections { - id: layerViewMenu - anchors.right: parent.right - anchors.top: parent.top - width: parent.width - height: parent.height - clip: true - z: layerSlider.z - 1 - color: UM.Theme.getColor("tool_panel_background") - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - - Button + target: UM.Preferences + onPreferenceChanged: { - id: collapseButton - anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("default_margin").height + (UM.Theme.getSize("layerview_row").height - UM.Theme.getSize("default_margin").height) / 2) - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width + layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type") + layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex) + viewSettings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|") + viewSettings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves") + viewSettings.show_helpers = UM.Preferences.getValue("layerview/show_helpers") + viewSettings.show_skin = UM.Preferences.getValue("layerview/show_skin") + viewSettings.show_infill = UM.Preferences.getValue("layerview/show_infill") + viewSettings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers") + viewSettings.top_layer_count = UM.Preferences.getValue("view/top_layer_count") + } + } - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height + Button + { + id: collapseButton - onClicked: viewSettings.collapsed = !viewSettings.collapsed - - style: ButtonStyle - { - background: UM.RecolorImage - { - width: control.width - height: control.height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("setting_control_text") - source: viewSettings.collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") - } - label: Label{ } - } + anchors + { + top: parent.top + topMargin: Math.round(UM.Theme.getSize("default_margin").height + (UM.Theme.getSize("layerview_row").height - UM.Theme.getSize("default_margin").height) / 2) + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width } - Column + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + + onClicked: viewSettings.collapsed = !viewSettings.collapsed + + style: ButtonStyle { - id: viewSettings - - property bool collapsed: false - property var extruder_opacities: UM.Preferences.getValue("layerview/extruder_opacities").split("|") - property bool show_travel_moves: UM.Preferences.getValue("layerview/show_travel_moves") - property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers") - property bool show_skin: UM.Preferences.getValue("layerview/show_skin") - property bool show_infill: UM.Preferences.getValue("layerview/show_infill") - // if we are in compatibility mode, we only show the "line type" - property bool show_legend: UM.SimulationView.compatibilityMode ? true : UM.Preferences.getValue("layerview/layer_view_type") == 1 - property bool show_gradient: UM.SimulationView.compatibilityMode ? false : UM.Preferences.getValue("layerview/layer_view_type") == 2 || UM.Preferences.getValue("layerview/layer_view_type") == 3 - property bool show_feedrate_gradient: show_gradient && UM.Preferences.getValue("layerview/layer_view_type") == 2 - property bool show_thickness_gradient: show_gradient && UM.Preferences.getValue("layerview/layer_view_type") == 3 - property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers") - property int top_layer_count: UM.Preferences.getValue("view/top_layer_count") - - anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - spacing: UM.Theme.getSize("layerview_row_spacing").height - - Label + background: UM.RecolorImage { - id: layerViewTypesLabel - text: catalog.i18nc("@label","Color scheme") - font: UM.Theme.getFont("default"); - visible: !UM.SimulationView.compatibilityMode - width: parent.width - color: UM.Theme.getColor("setting_control_text") + width: control.width + height: control.height + sourceSize.width: width + sourceSize.height: width + color: UM.Theme.getColor("setting_control_text") + source: viewSettings.collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") } + label: Label{ } + } + } - ListModel // matches SimulationView.py + Column + { + id: viewSettings + + property bool collapsed: false + property var extruder_opacities: UM.Preferences.getValue("layerview/extruder_opacities").split("|") + property bool show_travel_moves: UM.Preferences.getValue("layerview/show_travel_moves") + property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers") + property bool show_skin: UM.Preferences.getValue("layerview/show_skin") + property bool show_infill: UM.Preferences.getValue("layerview/show_infill") + + // If we are in compatibility mode, we only show the "line type" + property bool show_legend: UM.SimulationView.compatibilityMode ? true : UM.Preferences.getValue("layerview/layer_view_type") == 1 + property bool show_gradient: UM.SimulationView.compatibilityMode ? false : UM.Preferences.getValue("layerview/layer_view_type") == 2 || UM.Preferences.getValue("layerview/layer_view_type") == 3 + property bool show_feedrate_gradient: show_gradient && UM.Preferences.getValue("layerview/layer_view_type") == 2 + property bool show_thickness_gradient: show_gradient && UM.Preferences.getValue("layerview/layer_view_type") == 3 + property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers") + property int top_layer_count: UM.Preferences.getValue("view/top_layer_count") + + anchors + { + top: parent.top + left: parent.left + right: parent.right + margins: UM.Theme.getSize("default_margin").height + } + + spacing: UM.Theme.getSize("layerview_row_spacing").height + + Label + { + id: layerViewTypesLabel + text: catalog.i18nc("@label","Color scheme") + font: UM.Theme.getFont("default"); + visible: !UM.SimulationView.compatibilityMode + width: parent.width + color: UM.Theme.getColor("setting_control_text") + } + + ListModel // matches SimulationView.py + { + id: layerViewTypes + } + + Component.onCompleted: + { + layerViewTypes.append({ + text: catalog.i18nc("@label:listbox", "Material Color"), + type_id: 0 + }) + layerViewTypes.append({ + text: catalog.i18nc("@label:listbox", "Line Type"), + type_id: 1 + }) + layerViewTypes.append({ + text: catalog.i18nc("@label:listbox", "Feedrate"), + type_id: 2 + }) + layerViewTypes.append({ + text: catalog.i18nc("@label:listbox", "Layer thickness"), + type_id: 3 // these ids match the switching in the shader + }) + } + + ComboBox + { + id: layerTypeCombobox + width: parent.width + model: layerViewTypes + visible: !UM.SimulationView.compatibilityMode + style: UM.Theme.styles.combobox + + onActivated: { - id: layerViewTypes + UM.Preferences.setValue("layerview/layer_view_type", index); } Component.onCompleted: { - layerViewTypes.append({ - text: catalog.i18nc("@label:listbox", "Material Color"), - type_id: 0 - }) - layerViewTypes.append({ - text: catalog.i18nc("@label:listbox", "Line Type"), - type_id: 1 - }) - layerViewTypes.append({ - text: catalog.i18nc("@label:listbox", "Feedrate"), - type_id: 2 - }) - layerViewTypes.append({ - text: catalog.i18nc("@label:listbox", "Layer thickness"), - type_id: 3 // these ids match the switching in the shader - }) + currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type"); + updateLegends(currentIndex); } - ComboBox + function updateLegends(type_id) { - id: layerTypeCombobox - width: parent.width - model: layerViewTypes - visible: !UM.SimulationView.compatibilityMode - style: UM.Theme.styles.combobox + // Update the visibility of the legends. + viewSettings.show_legend = UM.SimulationView.compatibilityMode || (type_id == 1); + viewSettings.show_gradient = !UM.SimulationView.compatibilityMode && (type_id == 2 || type_id == 3); + viewSettings.show_feedrate_gradient = viewSettings.show_gradient && (type_id == 2); + viewSettings.show_thickness_gradient = viewSettings.show_gradient && (type_id == 3); + } + } - onActivated: + Label + { + id: compatibilityModeLabel + text: catalog.i18nc("@label","Compatibility Mode") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + visible: UM.SimulationView.compatibilityMode + height: UM.Theme.getSize("layerview_row").height + width: parent.width + } + + Item // Spacer + { + height: Math.round(UM.Theme.getSize("default_margin").width / 2) + width: width + } + + Repeater + { + model: Cura.ExtrudersModel{} + + CheckBox + { + id: extrudersModelCheckBox + checked: viewSettings.extruder_opacities[index] > 0.5 || viewSettings.extruder_opacities[index] == undefined || viewSettings.extruder_opacities[index] == "" + height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height + width: parent.width + visible: !UM.SimulationView.compatibilityMode + enabled: index < 4 + + onClicked: { - UM.Preferences.setValue("layerview/layer_view_type", index); + viewSettings.extruder_opacities[index] = checked ? 1.0 : 0.0 + UM.Preferences.setValue("layerview/extruder_opacities", viewSettings.extruder_opacities.join("|")); } + style: UM.Theme.styles.checkbox + + Rectangle + { + anchors.verticalCenter: parent.verticalCenter + anchors.right: extrudersModelCheckBox.right + width: UM.Theme.getSize("layerview_legend_size").width + height: UM.Theme.getSize("layerview_legend_size").height + color: model.color + radius: Math.round(width / 2) + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + visible: !viewSettings.show_legend && !viewSettings.show_gradient + } + + Label + { + text: model.name + elide: Text.ElideRight + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + anchors + { + verticalCenter: parent.verticalCenter + left: extrudersModelCheckBox.left + right: extrudersModelCheckBox.right + leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width / 2) + rightMargin: UM.Theme.getSize("default_margin").width * 2 + } + + } + } + } + + Repeater + { + model: ListModel + { + id: typesLegendModel Component.onCompleted: { - currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type"); - updateLegends(currentIndex); - } - - function updateLegends(type_id) - { - // update visibility of legends - viewSettings.show_legend = UM.SimulationView.compatibilityMode || (type_id == 1); - viewSettings.show_gradient = !UM.SimulationView.compatibilityMode && (type_id == 2 || type_id == 3); - viewSettings.show_feedrate_gradient = viewSettings.show_gradient && (type_id == 2); - viewSettings.show_thickness_gradient = viewSettings.show_gradient && (type_id == 3); + typesLegendModel.append({ + label: catalog.i18nc("@label", "Show Travels"), + initialValue: viewSettings.show_travel_moves, + preference: "layerview/show_travel_moves", + colorId: "layerview_move_combing" + }); + typesLegendModel.append({ + label: catalog.i18nc("@label", "Show Helpers"), + initialValue: viewSettings.show_helpers, + preference: "layerview/show_helpers", + colorId: "layerview_support" + }); + typesLegendModel.append({ + label: catalog.i18nc("@label", "Show Shell"), + initialValue: viewSettings.show_skin, + preference: "layerview/show_skin", + colorId: "layerview_inset_0" + }); + typesLegendModel.append({ + label: catalog.i18nc("@label", "Show Infill"), + initialValue: viewSettings.show_infill, + preference: "layerview/show_infill", + colorId: "layerview_infill" + }); } } - Label + CheckBox { - id: compatibilityModeLabel - text: catalog.i18nc("@label","Compatibility Mode") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - visible: UM.SimulationView.compatibilityMode - height: UM.Theme.getSize("layerview_row").height + id: legendModelCheckBox + checked: model.initialValue + onClicked: UM.Preferences.setValue(model.preference, checked) + height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height width: parent.width - } - Item - { - height: Math.round(UM.Theme.getSize("default_margin").width / 2) - width: width - } - - Connections - { - target: UM.Preferences - onPreferenceChanged: - { - layerTypeCombobox.currentIndex = UM.SimulationView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type") - layerTypeCombobox.updateLegends(layerTypeCombobox.currentIndex) - viewSettings.extruder_opacities = UM.Preferences.getValue("layerview/extruder_opacities").split("|") - viewSettings.show_travel_moves = UM.Preferences.getValue("layerview/show_travel_moves") - viewSettings.show_helpers = UM.Preferences.getValue("layerview/show_helpers") - viewSettings.show_skin = UM.Preferences.getValue("layerview/show_skin") - viewSettings.show_infill = UM.Preferences.getValue("layerview/show_infill") - viewSettings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers") - viewSettings.top_layer_count = UM.Preferences.getValue("view/top_layer_count") - } - } - - Repeater - { - model: Cura.ExtrudersModel{} - CheckBox - { - id: extrudersModelCheckBox - checked: viewSettings.extruder_opacities[index] > 0.5 || viewSettings.extruder_opacities[index] == undefined || viewSettings.extruder_opacities[index] == "" - onClicked: - { - viewSettings.extruder_opacities[index] = checked ? 1.0 : 0.0 - UM.Preferences.setValue("layerview/extruder_opacities", viewSettings.extruder_opacities.join("|")); - } - visible: !UM.SimulationView.compatibilityMode - enabled: index + 1 <= 4 - Rectangle - { - anchors.verticalCenter: parent.verticalCenter - anchors.right: extrudersModelCheckBox.right - width: UM.Theme.getSize("layerview_legend_size").width - height: UM.Theme.getSize("layerview_legend_size").height - color: model.color - radius: Math.round(width / 2) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - visible: !viewSettings.show_legend & !viewSettings.show_gradient - } - height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height - width: parent.width - - style: UM.Theme.styles.checkbox - Label - { - text: model.name - elide: Text.ElideRight - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") - anchors.verticalCenter: parent.verticalCenter - anchors.left: extrudersModelCheckBox.left - anchors.right: extrudersModelCheckBox.right - anchors.leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width / 2) - anchors.rightMargin: UM.Theme.getSize("default_margin").width * 2 - } - } - } - - Repeater - { - model: ListModel - { - id: typesLegendModel - Component.onCompleted: - { - typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Travels"), - initialValue: viewSettings.show_travel_moves, - preference: "layerview/show_travel_moves", - colorId: "layerview_move_combing" - }); - typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Helpers"), - initialValue: viewSettings.show_helpers, - preference: "layerview/show_helpers", - colorId: "layerview_support" - }); - typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Shell"), - initialValue: viewSettings.show_skin, - preference: "layerview/show_skin", - colorId: "layerview_inset_0" - }); - typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Infill"), - initialValue: viewSettings.show_infill, - preference: "layerview/show_infill", - colorId: "layerview_infill" - }); - } - } - - CheckBox - { - id: legendModelCheckBox - checked: model.initialValue - onClicked: - { - UM.Preferences.setValue(model.preference, checked); - } - Rectangle - { - anchors.verticalCenter: parent.verticalCenter - anchors.right: legendModelCheckBox.right - width: UM.Theme.getSize("layerview_legend_size").width - height: UM.Theme.getSize("layerview_legend_size").height - color: UM.Theme.getColor(model.colorId) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - visible: viewSettings.show_legend - } - height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height - width: parent.width - style: UM.Theme.styles.checkbox - Label - { - text: label - font: UM.Theme.getFont("default") - elide: Text.ElideRight - color: UM.Theme.getColor("setting_control_text") - anchors.verticalCenter: parent.verticalCenter - anchors.left: legendModelCheckBox.left - anchors.right: legendModelCheckBox.right - anchors.leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width / 2) - anchors.rightMargin: UM.Theme.getSize("default_margin").width * 2 - } - } - } - - CheckBox - { - checked: viewSettings.only_show_top_layers - onClicked: - { - UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0) - } - text: catalog.i18nc("@label", "Only Show Top Layers") - visible: UM.SimulationView.compatibilityMode style: UM.Theme.styles.checkbox - } - CheckBox - { - checked: viewSettings.top_layer_count == 5 - onClicked: - { - UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1) - } - text: catalog.i18nc("@label", "Show 5 Detailed Layers On Top") - visible: UM.SimulationView.compatibilityMode - style: UM.Theme.styles.checkbox - } - Repeater - { - model: ListModel + Rectangle { - id: typesLegendModelNoCheck - Component.onCompleted: - { - typesLegendModelNoCheck.append({ - label: catalog.i18nc("@label", "Top / Bottom"), - colorId: "layerview_skin", - }); - typesLegendModelNoCheck.append({ - label: catalog.i18nc("@label", "Inner Wall"), - colorId: "layerview_inset_x", - }); - } + anchors.verticalCenter: parent.verticalCenter + anchors.right: legendModelCheckBox.right + width: UM.Theme.getSize("layerview_legend_size").width + height: UM.Theme.getSize("layerview_legend_size").height + color: UM.Theme.getColor(model.colorId) + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + visible: viewSettings.show_legend } Label { text: label - visible: viewSettings.show_legend - id: typesLegendModelLabel - Rectangle - { - anchors.verticalCenter: parent.verticalCenter - anchors.right: typesLegendModelLabel.right - width: UM.Theme.getSize("layerview_legend_size").width - height: UM.Theme.getSize("layerview_legend_size").height - color: UM.Theme.getColor(model.colorId) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - visible: viewSettings.show_legend - } - height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height - width: parent.width - color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") + elide: Text.ElideRight + color: UM.Theme.getColor("setting_control_text") + anchors.verticalCenter: parent.verticalCenter + anchors.left: legendModelCheckBox.left + anchors.right: legendModelCheckBox.right + anchors.leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width / 2) + anchors.rightMargin: UM.Theme.getSize("default_margin").width * 2 + } + } + } + + CheckBox + { + checked: viewSettings.only_show_top_layers + onClicked: UM.Preferences.setValue("view/only_show_top_layers", checked ? 1.0 : 0.0) + text: catalog.i18nc("@label", "Only Show Top Layers") + visible: UM.SimulationView.compatibilityMode + style: UM.Theme.styles.checkbox + } + + CheckBox + { + checked: viewSettings.top_layer_count == 5 + onClicked: UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1) + text: catalog.i18nc("@label", "Show 5 Detailed Layers On Top") + visible: UM.SimulationView.compatibilityMode + style: UM.Theme.styles.checkbox + } + + Repeater + { + model: ListModel + { + id: typesLegendModelNoCheck + Component.onCompleted: + { + typesLegendModelNoCheck.append({ + label: catalog.i18nc("@label", "Top / Bottom"), + colorId: "layerview_skin", + }); + typesLegendModelNoCheck.append({ + label: catalog.i18nc("@label", "Inner Wall"), + colorId: "layerview_inset_x", + }); } } - // Text for the minimum, maximum and units for the feedrates and layer thickness - Item + Label { - id: gradientLegend - visible: viewSettings.show_gradient + text: label + visible: viewSettings.show_legend + id: typesLegendModelLabel + + height: UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("default_lining").height width: parent.width - height: UM.Theme.getSize("layerview_row").height + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") - Label + Rectangle { - text: minText() - anchors.left: parent.left - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") + anchors.verticalCenter: parent.verticalCenter + anchors.right: typesLegendModelLabel.right - function minText() - { - if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) - { - // Feedrate selected - if (UM.Preferences.getValue("layerview/layer_view_type") == 2) - { - return parseFloat(UM.SimulationView.getMinFeedrate()).toFixed(2) - } - // Layer thickness selected - if (UM.Preferences.getValue("layerview/layer_view_type") == 3) - { - return parseFloat(UM.SimulationView.getMinThickness()).toFixed(2) - } - } - return catalog.i18nc("@label","min") - } - } + width: UM.Theme.getSize("layerview_legend_size").width + height: UM.Theme.getSize("layerview_legend_size").height - Label - { - text: unitsText() - anchors.horizontalCenter: parent.horizontalCenter - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") + color: UM.Theme.getColor(model.colorId) - function unitsText() - { - if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) - { - // Feedrate selected - if (UM.Preferences.getValue("layerview/layer_view_type") == 2) - { - return "mm/s" - } - // Layer thickness selected - if (UM.Preferences.getValue("layerview/layer_view_type") == 3) - { - return "mm" - } - } - return "" - } - } - - Label - { - text: maxText() - anchors.right: parent.right - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") - - function maxText() - { - if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) - { - // Feedrate selected - if (UM.Preferences.getValue("layerview/layer_view_type") == 2) - { - return parseFloat(UM.SimulationView.getMaxFeedrate()).toFixed(2) - } - // Layer thickness selected - if (UM.Preferences.getValue("layerview/layer_view_type") == 3) - { - return parseFloat(UM.SimulationView.getMaxThickness()).toFixed(2) - } - } - return catalog.i18nc("@label","max") - } + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") } } + } - // Gradient colors for feedrate - Rectangle - { // In QML 5.9 can be changed by LinearGradient - // Invert values because then the bar is rotated 90 degrees - id: feedrateGradient - visible: viewSettings.show_feedrate_gradient - anchors.left: parent.right - height: parent.width - width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} - gradient: Gradient - { - GradientStop - { - position: 0.000 - color: Qt.rgba(1, 0.5, 0, 1) - } - GradientStop - { - position: 0.625 - color: Qt.rgba(0.375, 0.5, 0, 1) - } - GradientStop - { - position: 0.75 - color: Qt.rgba(0.25, 1, 0, 1) - } - GradientStop - { - position: 1.0 - color: Qt.rgba(0, 0, 1, 1) - } - } - } + // Text for the minimum, maximum and units for the feedrates and layer thickness + Item + { + id: gradientLegend + visible: viewSettings.show_gradient + width: parent.width + height: UM.Theme.getSize("layerview_row").height - // Gradient colors for layer thickness (similar to parula colormap) - Rectangle // In QML 5.9 can be changed by LinearGradient + Label { - // Invert values because then the bar is rotated 90 degrees - id: thicknessGradient - visible: viewSettings.show_thickness_gradient - anchors.left: parent.right - height: parent.width - width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} - gradient: Gradient + text: { - GradientStop + if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) { - position: 0.000 - color: Qt.rgba(1, 1, 0, 1) + // Feedrate selected + if (UM.Preferences.getValue("layerview/layer_view_type") == 2) + { + return parseFloat(UM.SimulationView.getMinFeedrate()).toFixed(2) + } + // Layer thickness selected + if (UM.Preferences.getValue("layerview/layer_view_type") == 3) + { + return parseFloat(UM.SimulationView.getMinThickness()).toFixed(2) + } } - GradientStop + return catalog.i18nc("@label","min") + } + anchors.left: parent.left + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + } + + Label + { + text: { + if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) { - position: 0.25 - color: Qt.rgba(1, 0.75, 0.25, 1) + // Feedrate selected + if (UM.Preferences.getValue("layerview/layer_view_type") == 2) + { + return "mm/s" + } + // Layer thickness selected + if (UM.Preferences.getValue("layerview/layer_view_type") == 3) + { + return "mm" + } } - GradientStop + return "" + } + + anchors.horizontalCenter: parent.horizontalCenter + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + } + + Label + { + text: { + if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) { - position: 0.5 - color: Qt.rgba(0, 0.75, 0.5, 1) - } - GradientStop - { - position: 0.75 - color: Qt.rgba(0, 0.375, 0.75, 1) - } - GradientStop - { - position: 1.0 - color: Qt.rgba(0, 0, 0.5, 1) + // Feedrate selected + if (UM.Preferences.getValue("layerview/layer_view_type") == 2) + { + return parseFloat(UM.SimulationView.getMaxFeedrate()).toFixed(2) + } + // Layer thickness selected + if (UM.Preferences.getValue("layerview/layer_view_type") == 3) + { + return parseFloat(UM.SimulationView.getMaxThickness()).toFixed(2) + } } + return catalog.i18nc("@label","max") + } + + anchors.right: parent.right + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + } + } + + // Gradient colors for feedrate + Rectangle + { // In QML 5.9 can be changed by LinearGradient + // Invert values because then the bar is rotated 90 degrees + id: feedrateGradient + visible: viewSettings.show_feedrate_gradient + anchors.left: parent.right + height: parent.width + width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} + gradient: Gradient + { + GradientStop + { + position: 0.000 + color: Qt.rgba(1, 0.5, 0, 1) + } + GradientStop + { + position: 0.625 + color: Qt.rgba(0.375, 0.5, 0, 1) + } + GradientStop + { + position: 0.75 + color: Qt.rgba(0.25, 1, 0, 1) + } + GradientStop + { + position: 1.0 + color: Qt.rgba(0, 0, 1, 1) + } + } + } + + // Gradient colors for layer thickness (similar to parula colormap) + Rectangle // In QML 5.9 can be changed by LinearGradient + { + // Invert values because then the bar is rotated 90 degrees + id: thicknessGradient + visible: viewSettings.show_thickness_gradient + anchors.left: parent.right + height: parent.width + width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + + transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} + gradient: Gradient + { + GradientStop + { + position: 0.000 + color: Qt.rgba(1, 1, 0, 1) + } + GradientStop + { + position: 0.25 + color: Qt.rgba(1, 0.75, 0.25, 1) + } + GradientStop + { + position: 0.5 + color: Qt.rgba(0, 0.75, 0.5, 1) + } + GradientStop + { + position: 0.75 + color: Qt.rgba(0, 0.375, 0.75, 1) + } + GradientStop + { + position: 1.0 + color: Qt.rgba(0, 0, 0.5, 1) } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e8de7c98ac..f1e0c08874 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -452,8 +452,6 @@ "layerview_menu_size": [15, 20], "layerview_menu_size_material_color_mode": [15, 16], "layerview_menu_size_collapsed": [15, 6], - "layerview_menu_size_compatibility": [22, 22.0], - "layerview_menu_size_compatibility_collapsed": [15, 3.5], "layerview_legend_size": [1.0, 1.0], "layerview_row": [11.0, 1.5], "layerview_row_spacing": [0.0, 0.5], From 319d52a2f9d6013a9261da8d0ec2aab61165a54f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 16:59:06 +0100 Subject: [PATCH 0157/1039] Make collapsible simulation view collapse to right height CURA-5829 --- .../SimulationViewMenuComponent.qml | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 62f353a241..cb70d1d78e 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -19,21 +19,7 @@ Rectangle width: UM.Theme.getSize("layerview_menu_size").width - height: - { - if (viewSettings.collapsed) - { - return UM.Theme.getSize("layerview_menu_size_collapsed").height - } - else if (UM.Preferences.getValue("layerview/layer_view_type") == 0) - { - return UM.Theme.getSize("layerview_menu_size_material_color_mode").height + UM.SimulationView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height) - } - else - { - return UM.Theme.getSize("layerview_menu_size").height + UM.SimulationView.extruderCount * (UM.Theme.getSize("layerview_row").height + UM.Theme.getSize("layerview_row_spacing").height) - } - } + height: viewSettings.collapsed ? layerViewTypesLabel.height + 2 * UM.Theme.getSize("default_margin").height : childrenRect.height Behavior on height { NumberAnimation { duration: 100 } } @@ -64,6 +50,23 @@ Rectangle } } + Label + { + id: layerViewTypesLabel + text: catalog.i18nc("@label","Color scheme") + font: UM.Theme.getFont("default"); + visible: !UM.SimulationView.compatibilityMode + color: UM.Theme.getColor("setting_control_text") + height: contentHeight + anchors + { + top: parent.top + margins: UM.Theme.getSize("default_margin").height + right: collapseButton.left + left: parent.left + } + } + Button { id: collapseButton @@ -71,9 +74,8 @@ Rectangle anchors { top: parent.top - topMargin: Math.round(UM.Theme.getSize("default_margin").height + (UM.Theme.getSize("layerview_row").height - UM.Theme.getSize("default_margin").height) / 2) + margins: UM.Theme.getSize("default_margin").width right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width } width: UM.Theme.getSize("standard_arrow").width @@ -117,23 +119,16 @@ Rectangle anchors { - top: parent.top + top: layerViewTypesLabel.bottom left: parent.left right: parent.right margins: UM.Theme.getSize("default_margin").height + } spacing: UM.Theme.getSize("layerview_row_spacing").height - Label - { - id: layerViewTypesLabel - text: catalog.i18nc("@label","Color scheme") - font: UM.Theme.getFont("default"); - visible: !UM.SimulationView.compatibilityMode - width: parent.width - color: UM.Theme.getColor("setting_control_text") - } + visible: !collapsed ListModel // matches SimulationView.py { From c84aa9cf214c882a0b0cc24667915d7a2cfc18ef Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 5 Nov 2018 17:19:22 +0100 Subject: [PATCH 0158/1039] Use default font for configuration override Contributes to CL-1124 --- plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml index d851b684e5..8c2c8f9121 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml @@ -296,6 +296,7 @@ Item { verticalCenter: parent.verticalCenter; } color: UM.Theme.getColor("text"); + font: UM.Theme.getFont("default"); text: catalog.i18nc("@label", "Configuration change"); } @@ -355,7 +356,7 @@ Item { anchors.fill: parent; elide: Text.ElideRight; color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("medium"); + font: UM.Theme.getFont("default"); text: { if (!printJob || printJob.configurationChanges.length === 0) { return ""; From 93467dc29f4adeb8e606ee130dc2fa1f1411550d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 5 Nov 2018 17:28:36 +0100 Subject: [PATCH 0159/1039] Ensure that weeding out the duplicates doesn't mess up the order CURA-5898 --- cura/Machines/QualityManager.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index 60a6820772..fc8262de52 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -1,7 +1,7 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from typing import TYPE_CHECKING, Optional, cast, Dict, List +from typing import TYPE_CHECKING, Optional, cast, Dict, List, Set from PyQt5.QtCore import QObject, QTimer, pyqtSignal, pyqtSlot @@ -264,8 +264,10 @@ class QualityManager(QObject): if fallback_ids: root_material_id_list.extend(fallback_ids) - root_material_id_list = list(set(root_material_id_list)) # Weed out duplicates + # Weed out duplicates while preserving the order. + seen = set() # type: Set[str] + root_material_id_list = [x for x in root_material_id_list if x not in seen and not seen.add(x)] # type: ignore # Here we construct a list of nodes we want to look for qualities with the highest priority first. # The use case is that, when we look for qualities for a machine, we first want to search in the following From ee2a34d64792e40d208cff62690ef56ffe4481a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A1udio=20=27Patola=27=20Sampaio?= Date: Tue, 6 Nov 2018 04:44:05 -0200 Subject: [PATCH 0160/1039] Updated pt_BR strings for 3.6 --- resources/i18n/pt_BR/cura.po | 52 ++++++++++---------- resources/i18n/pt_BR/fdmextruder.def.json.po | 6 +-- resources/i18n/pt_BR/fdmprinter.def.json.po | 24 ++++----- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index 8aad16ed27..671cf9d76b 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-10-01 03:20-0300\n" +"PO-Revision-Date: 2018-11-06 02:20-0300\n" "Last-Translator: Cláudio Sampaio \n" "Language-Team: Cláudio Sampaio \n" "Language: pt_BR\n" @@ -48,7 +48,7 @@ msgstr "O GCodeWriter não suporta modo binário." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Por favor prepare o G-Code antes de exportar." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -77,7 +77,7 @@ msgstr "Exibir registro de alterações" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Atualizar Firmware" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -821,7 +821,7 @@ msgstr "Arquivo pré-fatiado {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Login falhou" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -895,32 +895,32 @@ msgstr "Falha ao importa perfil de {0}: {1}!" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "Não há perfil personalizado a importar no arquivo {0}" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Erro ao importar perfil de {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Este perfil {0} contém dados incorretos, não foi possível importá-lo." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "A máquina definida no perfil {0} ({1}) não equivale à sua máquina atual ({2}), não foi possível importá-lo." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Erro ao importar perfil de {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1407,7 +1407,7 @@ msgstr "Deslocamento Y do Bico" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Número da Ventoinha de Resfriamento" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1511,7 +1511,7 @@ msgstr "Voltar" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Confirme a desinstalação" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1654,7 +1654,7 @@ msgstr "Fechar" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Atualizar Firmware" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1679,12 +1679,12 @@ msgstr "Carregar Firmware personalizado" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "O firmware não pode ser atualizado porque não há conexão com a impressora." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "O firmware não pode ser atualizado porque a conexão com a impressora não suporta atualização de firmware." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1919,62 +1919,62 @@ msgstr "Aguardando por: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Alteração de configuração" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "A impressora atribuída, %1, requer as seguintes alterações de configuração:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "A impressora %1 está atribuída, mas o trabalho contém configuração de material desconhecida." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Alterar material %1 de %2 para %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "Carregar %3 como material %1 (isto não pode ser sobreposto)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Alterar núcleo de impressão %1 de %2 para %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Alterar mesa de impressão para %1 (Isto não pode ser sobreposto)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Sobrepôr" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Iniciar um trabalho de impressão com configuração incompatível pode danificar sua impressora 3D. Voce tem certeza que quer sobrepôr a configuração e imprimir %1?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Sobrepôr configuração e iniciar impressão" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Vidro" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Alumínio" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" diff --git a/resources/i18n/pt_BR/fdmextruder.def.json.po b/resources/i18n/pt_BR/fdmextruder.def.json.po index b8ea7ec1e4..10db723a69 100644 --- a/resources/i18n/pt_BR/fdmextruder.def.json.po +++ b/resources/i18n/pt_BR/fdmextruder.def.json.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-10-02 05:00-0300\n" +"PO-Revision-Date: 2018-11-06 04:00-0300\n" "Last-Translator: Cláudio Sampaio \n" "Language-Team: Cláudio Sampaio \n" "Language: pt_BR\n" @@ -170,12 +170,12 @@ msgstr "A coordenada Z da posição onde o bico faz a purga no início da impres #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Ventoinha de Refrigeração da Impressão" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "O número da ventoinha de refrigeração da impressão associada a este extrusor. Somente altere o valor default de 0 quando você tiver uma ventoinha diferente para cada extrusor." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/pt_BR/fdmprinter.def.json.po b/resources/i18n/pt_BR/fdmprinter.def.json.po index 1b746e8b0b..728c2eb3e9 100644 --- a/resources/i18n/pt_BR/fdmprinter.def.json.po +++ b/resources/i18n/pt_BR/fdmprinter.def.json.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-10-02 06:30-0300\n" +"PO-Revision-Date: 2018-10-06 04:30-0300\n" "Last-Translator: Cláudio Sampaio \n" "Language-Team: Cláudio Sampaio \n" "Language: pt_BR\n" @@ -1078,7 +1078,7 @@ msgstr "Conectar Polígonos do Topo e Base" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Conectar caminhos de contorno da base e topo quando estiverem próximos entre si. Para o padrão concêntrico, habilitar este ajuste reduzirá bastante o tempo de percurso, mas por as conexões poderem acontecer no meio do preenchimento, este recurso pode reduzir a qualidade da superfície superior." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1498,7 +1498,7 @@ msgstr "Padrão de Preenchimento" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "O padrão do material de preenchimento da impressão. Os preenchimentos de linha e ziguezague mudam de direção em camadas alternadas, reduzindo o custo do material. Os padrões de grade, triângulo, tri-hexágono, cúbico, octeto, quarto cúbico, cruzado e concêntrico são impressos em totalidade a cada camada. Os padrões giróide, cúbico, quarto cúbico e octeto mudam a cada camada para prover uma distribuição mais igualitária de força em cada direção." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1563,7 +1563,7 @@ msgstr "Cruzado 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Giróide" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -3272,32 +3272,32 @@ msgstr "Orientação do padrão de preenchimento para suportes. O padrão de pre #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Habilitar Brim de Suporte" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Gera o brim dentro das regiões de preenchimento de suporte da primeira camada. Este brim é impresso sob o suporte, não em volta dele. Habilitar este ajuste aumenta a aderência de suporte à mesa de impressão." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Largura do Brim de Suporte" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "A largura do brim a ser impresso sob o suporte. Um brim mais largo melhora a aderência à mesa de impressão, ao custo de material extra." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Número de Filetes do Brim de Suporte" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "O número de filetes usado para o brim de suporte. Mais filetes melhoram a aderência na mesa de impressão, ao custo de material extra." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3871,12 +3871,12 @@ msgstr "O número de linhas usada para o brim. Mais linhas de brim melhoram a ad #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Brim Substitui Suporte" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Força que o brim seja impresso em volta do modelo mesmo se este espaço fosse ser ocupado por suporte. Isto substitui algumas regiões da primeira camada de suporte por regiões de brim." #: fdmprinter.def.json msgctxt "brim_outside_only label" From 9f246910bc0e7334553490e8bacf0a7415cd487d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Nov 2018 09:18:20 +0100 Subject: [PATCH 0161/1039] Make avatar image border a bit wider This prevents a white edge from showing CURA-5772 --- resources/qml/Account/AvatarImage.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index c730ef428f..436babe5a3 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -44,7 +44,10 @@ Item UM.RecolorImage { id: profileImageOutline - anchors.fill: parent + anchors.centerIn: parent + // Make it a bit bigger than it has to, otherwise it sometimes shows a white border. + width: parent.width + 2 + height: parent.height + 2 source: UM.Theme.getIcon("circle_outline") sourceSize: Qt.size(parent.width, parent.height) color: UM.Theme.getColor("account_widget_ouline_active") From 08917c37a11c8b089948c8eeffaaa2a4c780549b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Nov 2018 09:20:36 +0100 Subject: [PATCH 0162/1039] Improve rendering of scaled avatar image CURA-5772 --- resources/qml/Account/AvatarImage.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index 436babe5a3..3be81aa155 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -24,6 +24,7 @@ Item source: UM.Theme.getImage("avatar_default") fillMode: Image.PreserveAspectCrop visible: false + mipmap: true } Rectangle From f1f1b9f168e30ddcc15fd890362e6ed86f2e5699 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 6 Nov 2018 09:45:40 +0100 Subject: [PATCH 0163/1039] Center icon an label vertically. Contributes to CURA-5786. --- resources/qml/IconLabel.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml index 2e765e2dbc..918485751e 100644 --- a/resources/qml/IconLabel.qml +++ b/resources/qml/IconLabel.qml @@ -24,6 +24,7 @@ Item id: icon anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter source: UM.Theme.getIcon("dot") width: UM.Theme.getSize("section_icon").width @@ -40,6 +41,7 @@ Item id: label anchors.left: icon.right anchors.leftMargin: UM.Theme.getSize("thin_margin").width + anchors.verticalCenter: parent.verticalCenter text: "Empty label" color: UM.Theme.getColor("text") font: UM.Theme.getFont("very_small") From 317447aa5451ac0d4220dead40bba89b61587bbf Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Nov 2018 09:52:01 +0100 Subject: [PATCH 0164/1039] Fix multi-buildplate panel location CURA-5772 --- resources/qml/Account/AvatarImage.qml | 2 +- resources/qml/Cura.qml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/qml/Account/AvatarImage.qml b/resources/qml/Account/AvatarImage.qml index 3be81aa155..b76aff6990 100644 --- a/resources/qml/Account/AvatarImage.qml +++ b/resources/qml/Account/AvatarImage.qml @@ -24,7 +24,7 @@ Item source: UM.Theme.getImage("avatar_default") fillMode: Image.PreserveAspectCrop visible: false - mipmap: true + mipmap: true } Rectangle diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 3e2515cb3e..534fffb418 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -212,8 +212,9 @@ UM.MainWindow visible: UM.Preferences.getValue("cura/use_multi_build_plate") anchors { - bottom: parent.bottom - left: parent.left + bottom: viewOrientationControls.top + left: toolbar.right + margins: UM.Theme.getSize("default_margin").width } } From 01923dfba4811e65f55401c18bd3dfa47d5a9b10 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 6 Nov 2018 11:00:11 +0100 Subject: [PATCH 0165/1039] Reduce resolution of heavy build plate meshes These were way above our guideline of 1MB per build plate mesh file. I've used the decimate function in Blender. It looks more or less the same. The resolution of the embossed lettering in these is slightly less but you really have to look for it. --- resources/meshes/bq_witbox_platform.stl | Bin 1316584 -> 921584 bytes resources/meshes/builder_premium_platform.stl | Bin 1348084 -> 943634 bytes resources/meshes/creality_ender3_platform.stl | Bin 1398881 -> 293884 bytes resources/meshes/deltacomb.stl | Bin 1352284 -> 946084 bytes resources/meshes/discoeasy200.stl | Bin 1751784 -> 1051084 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/meshes/bq_witbox_platform.stl b/resources/meshes/bq_witbox_platform.stl index 7d83c0f4d84601220366d67e4aa26f4de3c63c15..17b7a3913bb05998f61bbf79dc5939b60ac6df7a 100644 GIT binary patch literal 921584 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

@GQPcNC3UJMZQCL3fhNA>NT(vR~5<$!xowr)Xxd z^Iq)>a=v|5lCKW>v3{~k*3MHj`+!Sx7f#9tIWeah4ix6n+>TTJQFKC*sW140>?rE_ zf9BGWv*h;U6GX1}vL4(6Xm+-{2ihBu9zot!J&b^!@R40gbuCbQkLu*MHC-F-qrX(u9dQ6*C?VG4DznVAabpgCA&t^W=~1peWP`lcQwwD zYc>8Q?;gEG^6tG~gn3tUiDgvDuI{Eql6Nn!3G=SzE6b>oU8873l6Ti;@~-AYwN{o{>nVau((M=;9;Eq7S&;KIOtadd;Y~+ogF|?s;`c5Kr|B5&GUNI*JA) zCpl(ZVPk4=sUG;&52Gs~bFObrSn)YACYPZZ5h&VFpWrR8=| zm`htzzSi?}vVQfoTffq_1%dRiUF*PX6rCupt>)HEm$?f0Mm>Lx3 z(mao^_(ai#k>vJSl-ogJE{!gHhsS;W`#&=Fnc?>6HKIUaE{$OMlFowHWqftnem15C zg}Kr!;lHFqxg;G^+q(kGxbW9Bjb7{7dFX?nh)=Q?We=8kRgTh>zQSpTx zce^IZ?Y$b?m>Lx3(maoE+>$zDqYI}MQvpnRlkz<)jcw%e*4of?`nHkMr~J+yi0AK zj;TS>Hn)u0t{{1r{3>0`07d=EGOBz%&3*sMd^cUo0GIl%WmNh8S>-V`xHLX2qv{vT zCoi7J6g1oD>vWzNU1dAflBgng|xn)$z zuGRCdTGukFWLI}?rApq_7PO4o&Yg`!F6oz?x$D%y)-pg*FR_f;&Yiym;-_`epWpnT zt!03so@g1hojZjD1o>_{rUpg5-7>0v)se;}LEhDfLaycPT0QS-)LKTBZ&12lCAByY z@~&nE%c%05%U}$bj;X<=*~c=fer1#LRgiZ%i%MC(16n=rau((M82avp4foXHp2xZk zUEDYtWn@k*DD{^X*Yo!$483UK*F4}p6mVwZ|MD{sZ22&~_2o=g3WQo$drRG~1p-|9T+XDj z4DFG1PZ$Vr>2o=g$_VZCu_Mh~`drSWGD629dX5M(z@^XiE`aGF*+;SrbLn%=yOJ4{ zf*hp?-f=e>$m^(GC4}zRqlU6a&w5ls*qWuD1NdJETeGy?C17gf!yo_69G0OL#hRt+ zB)d!1WN3R}&63f=4;epn|63qKJp*f&j1~m^YUul09LTj&@57oUqfN&0uHObS)bp`s z$!J4#f8p_iScb+2RwEg0i2VoL9mvoK#x4+}4S^EN;9iZ?*6Aj9>~QG=t0T5+j(x2<^3HcZm^9VT8_v zWp@b(%~wpRgpe~{m1NlY0y*)kvgI@`BUBGNUm$08^|_qJQ|aG_~a4yoN{i7WoTaF z(@orS%GoF&REFk0P_)cFr<}iH8Jb@~(K7m1&D3(nixEuGGWVS2eU$bSeCGoRwHG~fS_wO6i{abY*Z<~aJ?5Na!>V4Xqrz*+{QMS^-eQy8IklXYsX)lS{&AEa%7 z6&6O9BeYflB00C>*L_GQkpRS++_z~z=x1JpP=Av(eXZ5%t$;urt(EQ#v9!>iwto1Rv9D!Q>xWjMfYAyjn za}-t}87;Na_FxJlG$+a`r`8Jp)$ELQQAU>|)K-kpK124^%py`NAcmiIyBlQ~B}C{Q zZmibg&-73V-__Q&Ufi`-gx1R5EB6PH+rg!^m33;7BBKnY=p98Mz@?hYS~%BADST@O zTxw}qZ)X`w;hRC=(w3DqeMTsSZy$k6y+rm67@-ut;RG)AO4*xWgi`nx6}T*JaA&j{ zg5~L(%4KN2vb9jT2d9}xc9&QNQxuIXs?X(493wO@VJ(!o^ts%LV}#}_tc5a{K9@Uj zjL=>UtDMZG&*e@WBQ!5zm6N&jx!j3kgxVdeoXn-q1u9i?f|RFVAqyrSk-QFGHVO7R}~e zKCR4mK`>_st*h?>Maz264=pICin#@~zMyCsGYHjOP8Bmk?T#_Ewi@5&kQ2X*(D=Z( zRy~97W|WVRmCH_>$qf$mF*(1>GMJ)hz1acHdz0fe@PMiEY! zDOzuK03o+I7@?7h(`Jg+n;k&NZ4O3gX27itMr+v+>WPfdGR~?gLQWM!MkR#icB~XJ zTKKaFyq6JL*3)e!LoI5j|D+AnZgQSlq$KNCbkbV6*t&AAj}dB7JN+kZP+fD430}uX zL~%TZnlnYqf{;-Z?=YOM|3mO;D%xrA_uTahJ^CFl{feB7sco;ww?}}$ z7ucCg%fUR#BlMeKa;{5uPr#+J307{TA$ z3K9J6E}22$Z&Z#X>+R;Blz27VXgQ(XZ+qxLns%bi_xJBrZ7Uw@{0(9 zk*@+N0&&1xT3b0M!wBUw#J^LR(gTp@M6rZHwQr;P-ACLj6j9 zn?qW*JTnCErQi0^ud>N6197c1itsMx(ujh*P;-q`(Ze#_rXe)1z&Di>s^=RQz{`4&Eg{}Lvsm6MU2+6AykHDQ6MYIhvT+qyy?Rn(#Ze>IiAPfz}MH3pv$Ng1)dw?lct|_d!>5+v` z9Qs=?FN)sXWlrw2ZO-(yGD;M1)y_YD;r*kxO%V0EcFpZF|00htin|QVTsuuJ4cS@| z(jqd_k5Y=OZ(6QFITi%;U>U~6GBW6@nww6nIb>ARob|9W5S8`dx^o$bce->fs;vSI zQ*CPscg#P&r&-t4s;KQ@lqlr7`H`O1g09U=+U8M8anjRrO`*+K-}F=;^L|xQPc%vt zaE-ZV+g|FSA;Kt(hzj=HS)r=trW0$Pv`0nFSr01%QB8Bxi8Tkp{%T9>H;i)g0mNWb z2;;7;dtT$88$a^NSFPLE&3L7rr!d;x)FQ;_c?TURxDavb%1(9rbgG1&`^(_jis1J$ zV(RzZ>h|juRjAeL4SLnR{(tN8(1X#NhIn}C!F6rd{#=HRqBm~6p<=BVaZ|_Mb*KLQ zCyzE;A(O7((A(MMhqCupM!>ou0_Z7aX!o0dR~^u~lC1=-2%z`N)Cw~CO+K@3tKBzS zB(^fH5pze@t=X=je;!4DKYG6>RYr&~j}dwQTLuunN#q&YovqzxLRZN6ud@})nEm~k zbq)G7B7~r$=+D1xkouLhvrrh(`pq-y)|}Ef(L;2=zqO?$ho4^e&XCQ^-n(gt=N~w= zu0gXc%Ft2tWs@^9ULv((#5aA1)h!++XsZ*vWZTD1Oew5WWd!tKMCW4%RjF0{V1v0L zN#k5<#fXlNAD3Drik8j)WR4;vo+Ga+Im)+;oRNw6!B^6_Id4n7#&3i%$u9qiV-KR?3C9YhtclK!#@wM zDC4g0yXCc)VRRG?{osi-C$fxZ8}!O+@5AUQTJ^U>yeG=I+Vohk^x(YqIE;>>k8Zo6 zVy&ij?48$MhS5><<8^nDx0?+2OUce|()%#l{17q7dI&=L4@UbQr=oR*OM3vwQ?yA5 zW&COKnR)GfLiFrQZ>p%d)KGF)h<@>m3G*Na{YOZF6$J6@_h;s{FR?nIJwl2hc6;-T zy!9VTW=u)rJfs-nox@MhYrhi82q}hG^1!Ki?Mn>d`>23oh}C_E<;(jIAVP{ET0VAS z6+}oegzFiq)GDMHVxPy4BhCANeQ(--gcL(a)JnhNZt&c)IQ1)+^;5eu7ot}CmC#m* zPVHG39U^8epON|%BYJLiOzIhoHW}~|Mj*CN9rvs6$r$av;xYfNR1c;w0&)J%|NURm z58n5$A*roqjXWle3FbnacUb$M1Tm#<$5fA7dmo$Eu^MwB&d2=y`vfuK)k9On%;5v_ zKXh;4`}2?sQM)EVnC`Wu-shf>pY%w5kB~@Ju9Ndotv;`YV0j^$5t)84o&AQnJw%u< z@o0%X#`qB*Oko6%INWbFeziv$=S*P)kAvKI4Swl-5G27%*xOlN=vNPa)7m3YEA|p@ zbM}Q$52kRNvoC}Qrf{2wZS$vwS5yB1Z;*U`{FD)?$Am3-@{X@oM4UQzWa^b6dcZLq zQ*Y<2&sm$%Q8f99TT|-_LVFggA#|E}){S|LINil7jWDhTG1=SL)nB~4`{1K*9J#%^6i5X@Ek>h3*n8Gn9)X!h3JbpFwE*S(hvubX#lhiO4?E<7lfH7iP#7wS7Bnnffj$ z8t2S~*|ued6JG9}B0$kx!dzG*v+OhX<(*RNf};6~xv<)18E)0Ad0unq0gC2C=E8cJ zWzh+Z_w;QJ1Spz!nG0)VnuFaporXV@dLk&A^_eSNjr#kex2D;L*ToneB5vFBOJ6I* z2lpS@-au<>UIhgAAKBhOEn*00&izNWH&Ck^0y4P&$o2->vhFv%j~|z|Irksg-ax&_ zeFMAe_!PnYM|p3c9%}W1x0}C47ydSWr^7iucX7{P{E~eFL`e~hcE7jX_nfrNSw_z; z|1Pch=P1dK7yj1JBqXdA$6$cYAUK|>hF(9_yx3)Y>Lnbt9D^L2Zq4TSaVdf+9D^L2 zR4LcyOyL;h*bEU&;TYuD3=vG>806TDqV0G4GW8Osa13&Eg)(?`nd7d{lo540F9{J$ zVT6=*E}|Gj)Pq+KuhSU|bFJTSQeEX43nR+qWo5v3p`p&OW)B~b)}7@=QL|ewO?{UU zlY1YVuCX&(wUF5aBVcKr12WnWs1;Kf@!-f~(zSl~ZQQqqq%Fu4M!*+rmip`5x6QtA6L6Kz?Pu6t+3b;I<9X*l(%iSM#nOPP1*EVON`<^9(CQS3)2@IKM9J^6yx) zXm!n*!iY-acG=tJbzCcBHx%=BS@%^-CA;B7sf++x{sggL?HK>A4`0o`S7k8bqCIz; z!-!(j(H`C4UCbI4fpRq&lTW$WBTnyLQwY(FU4!2TpsZ<+*(LN z`Of{9xwMSu@>dC==ye&iA|BZH&N-|(>%sbkGMEzT!SYlF{>ytsvWk=4=VmVn5jDXs zvZ1pGrdT;D)U6#;2X7Y-u;y%$PzF<2bFN{C;QCtmJ9pw&Euxx#edy?T&AH>vM3Ay!njM zOE)~_eq(lQzQffm3wthj&vA^+A3mpL;i&iCb>(sNJVY=hL>L-~>94dcH5uKrgm)Q* z5o7Z&ZM%J8X&1=D-<2nhD(?Q^7>_UtbB)c{T)DmTn0G25j53bin?+QsmC0i?YIWXg z7nlC;9{j>J+bXoe6K}UDG#j=msTCuP!iaHsd#;%WvO-&p%RjcPmD9GoJ+!weM?|%) z3O5`q2t#j725WBUEW#*kAMq<~kFZwoIH80HYp1LXt1sTWgG0kB*=|6rIPbP(B+ir& zQQf*m2@xXi8{dMV9v@9@QRx2XPkl{{Yg~TM-CGns`3}#sdN86~9%N{i1{NBM=HDhV zS~$(uWaMRK1PIsWC(l=eqO%C(lJva+0__BJIRb5f`odO*{?EsA_CQZ2EfpfFw>kR~qeH|w4M!#G$m8-$FL^xQVetpz8LkC$dy3{(LwMp(i}d_Q zi1=@Qc79gh_cLf{zRQQ}o`8pmhueD@G3%dm^L>tzJ}T=a@Ff|^7?&Gy9JL`o^PiKQ zysUL?#KK(8E1eBxT#}6_Mu@*ABd1hG76C4`57)}j*;-w)JSrUe*re1xQFNUzn;uyi zjF{B3rcig_-!tf}3`p1aGUAA%8Ya)P2&0V4GorY#e&MkrP{S;OWk`8?Mh_sKI(%lb zbD3!aUqeAG@6f#P**siI{1`K4HXd5=Aewr8`rq}C!<;x`n~s$3J8qI{(dkh%r!25@@p*%OS)7-O#Q?5u2zCz z^d=%Act#ezG0j;I(=XeCMhW$>8bZcFSG|zz9l%T2cQtcz43^i*a^j43%?pz{%6QKD z4%S5sBt*oq;K;xsI=OR0|n~2xUm!1z}|%R&LfQ zZdf1d3~C>6u?#2MwV;g1ff)R^@wpAIO@J^8bD_323eO-?N(P-i-&n0o9;1Pna?=^5 zCR1b$z#?@lWgN~#A%ZC(g7Z}ro%BZA(#msW4ZtXj7#rlPC~C0JsA8XoWDUUb5_65s zTOLEL7-1C7gIPqiTA4gXLk9j_-tsYMGWfml9?g%!ZwR9>LfTw1DiFJk8lT(yFv}%E z5iij^Z*K|_EIos$)m{RKE?ahrXRbdW%_Z_)Mu;Crk@Qh%e5AQVD9i;tw6}u{&OSzw zSW&b+-&m~>cY2X~4fpne4qgFO=v*#fK zwyJ_i(Ln6%)?Q!mYpg_{ChFmkt=>}^fe}3;w2bHYTj16c51A_KiI#W6j4ESPj54zbqc8%s(ov>h zu)B*tNLLDT>2r*n(-XAKkRXE*Mq$KQno|KW z^rGf*vsOp?d}Xr<=5pn9<^_cOK^LAuFxOa`S%BNgD5(saH87Ve(`+J&7M?$PGJa3c{)F1&AEmuL1oxFF0Zk} z$8=PiMHqzWi(_g{pRu>vqxdfz%s_ty74%Y9U_<#B5Z{fh{CFx(vW(CeVZGF5o7bV z8V$ts3r;Ql{x5HN>l%f*#s+&6A%a)48EwxuRx3k{%hU=e$-U}7SdUiEC|}tYenU_n z<$X!f`ds*RHX)v&Im+^tK9{v6tr7mq6x7f%oRk%zeU$Bn&hmT0x{7BzquG5jj7~y5t>Z}+T-RJZ&5(;zqayq9jLnM?kbbzQK4XemSpg%MI_gzhMUqWKDC-SdJBeJ*cT1XHpIMGHcA6oF6*BT%;ePhfQS6$qs; z7s|FPn?)!ki`M5Gua(MUv>?uQ0DR#+G{QBg-J8s6t~;ZKUX`?YrF~9* zmz9@Qu$9zFYNb{LLf3jd+Vzj+`_4?sBEmKwy7lvEL5$Z-B6IVr|^>=!U5tY%A7WEmAInwbfnAP!Cvl;$FqHcSbLaHA`?Y!qyqG zwvtsGX|(`ND-+pXO;#qXCO0Ow()K{Dx?J~Xsud$--G|ZTnoCXey@s%LEy!qh-|49g zY4aO=O_U2VYNAfjBWVV#<}P`1^2Aby@cJ#9fj&schK@=W>v`PQ_smw{Qv2XJ=DW6Q$q1z|0%d(JGIW1X-i5wM`VX`q zcKZY&&qD-LfM$f21)=+#Kq!R~UbgdT&F!}P>SZJp=JMr0bKS3%T8T}{&;g=at+bb6 zwCJHbiY9%g^x>|C82gxPy`i88rl=k%B0-A`-RD&4>6j|v0$OaSJEI)6N?|Ukt&K9m z%z${t*az|$th0uP3lGh=k&6$mjr3tya1d%V^O<{;iEgy7Uub1u2);Dnv+q86joX zBipMX&V|cjK5X-Hgm{T?F*>`KiuY>nL*2D3@?=~p8tCpTQy3wdGs4x%?XT#l50vSN z9#Y;E#FPNRvZYqKKWG#k>6<*88vw%yrC3b_t{^~_sh~T zCv&09V^Q0$^@wEGlDT|2-Oa@Nbx&9{mwgrHLRsgyQlCnQGI@cFK=Wk2g!ig_fUd5& zQamErCH3;snK0_5JJn3_dL&$2L(xP2#TQ9!ZvtGpZj9%;wp@--3L{X~=Yr7PKD>)p zXm#Zl2z?$Rm;y8-v@8hSg9Jh;j6hk}O9i1jqd+Kyxlj)0AG%))gi@FbWu3i<4BZn3 zLMhCJ=kP1pQ3i%(C?YFQpNouYnyXGgYgrK0G*_Kio*+~Yt~<(F_i{Zniz)^AN)eX3 zWR*%}lp|zaOykbb*X2WmoTif1LERmSrKrZb<44?hT9~FBgU*Q_G&TABaE^lZ)M0BlwbX-B0k!& zP4Nq-i^xz4WM~=pafZ78VdWlWMi_+=(3TO8IL)6qqg->-i8Tkhn&zyBm4TSEy@V!G_+mA1pWNh%~J%T z=!Qi#p2A$Pddn#)V`$w`GFn>3_m`#E+beTqpkg{Jw!U! ziqVF^8Z1la_riDEbkth4AHM_D$|#J0U!6K!H9u>s+f#%@r@qU$KKS`BWUHE&5B9c_ zm0^6XLlDe$+rZPPJxr6@xOm%NshtfSBDx*1qkc~&K%6rCbn;3=n*_10QOXg>S7^a$ zN2On`kM)bjpfCcpwfHb8wK3{zaR+(w-c3WmRu=PyHVI~3d2fi&EDAkFckYmSyXDsv z`4Dk(m0S|$KI00r=nGez;M*M54G~-uLq}1c@6+F#@Cfr!^Q+L`On0n8;=Sd5CGDgh z`u1P%@xCjzvK(bSC+x$u8oO}w&LRggjKT=(eSo&VS|5Ybr-tth5pQ&AQ~dg!vF`o& zQ$3`A6)R}Zsd`jKNYAN=FwVP;T3x)htSW{5?MXxHn%dkG%G<5`BMZ_ z)MFTtl_6hGiWVI-Y&pGmMP9ym6fOFy@5+n}`I=F*XvZr)47lXGKhdJqdw-lk$X9@( zMI8=bk!LRX?vH!Zm`^eY`3ewZe4G!tFs6pLugV}~+%6PG%NV{gf^DVc75UI2Y+a_X zeb^#Nb0qs8OkvI0A|Zk)ta+$Y$9KoZE!ykc0N>ob#C>OAMZV4Q2EBSVxxkkr|0Q2M zhnG}FEDI2Z24cwe!{W`(k})+?th^%s(X~JI9D2*SiM$`&9kL%>c7R4kSr%|j>i&Mu zo=wh95OwFR&V8DUsg1HMZ)M1s)AQ8DXC#OncWaZInan1P0vXITsb>^bLPU{L7y)hd zIpU+5=B5*C4sy+l`c7JC+UoP_2v7n^jlIKaa+<#mKB1F&rUzUd6JEj8qR4UON)`}4TTN5V1tAnhpfwME=x-HT5MHwM)$vplL5GM&y_=@v#1P?TO#5G6hBm#u zCnjICmhpLjaJf?T_)E*jS#zQgV$LP8)z+jqFX{hfY#PdU&%L}&LVPrT`<~PuB-^zI zTQ{YYBh*XII_vjd4~Z!24H!{7e9xZdiL3|bbLQe~7exnNyG2?nMp!SiBF|{IKR@b; z)VfSTtu(en8C)x-Fv7B^jbwnUjhVs-%c5BXQy3BU2Di?hNY>T->Usdu1HNF{j`eW9 z8&ekTshK)NxV-DMIn#Z;W(>Vd0F1_F%Zw5x4QUQ(sLTcd0*NC_`W^qC4g{ah9Zp_ z(*DDG25_mZvIwL2u}F%x=Rj1`ob|9WY*kHj*2Bs`Y>yz`FkF799Y!28b7n}wnz+ z4gK^RrscMhujYz%g{$#1up7RgTHbN3jpkXji!Yb$$~c!_+mbz`-%`i2O2 zsD4v6tGQA#2p4JkP1z8Ec*bup!@7tS;X>Q!x9+og1cPkSG(_* zp!JQiEa2+eq<@{R!@J*JZZ#~va-^(A83na6u1gjlDPk z+fflU42z?L72|ba%;}9Dq&ay^P2WJHAd<&mm)v0qO2i$?X+6 z1a_Cg_lAg-SERd36%c5(5bf6VcTRVg0tDVGyGx1?bQHZdIo(}K^biUopp)z_L61I7 z(%q#J+nu>!b=h44V!`q0?ox@{mbuJhfVk_FbayF0uslXviz7prk1oq|tr%?x^y@60 z-)j+!THX6M*F$#ED?^w(M!WldYtt34z!TZ8*x$06nE+zwc*JGKA(q z=%fhIFN!|ip-t|GWVKeTDBcjZrnU`6&Xo}>{Fp&o)6hU%blE+VSk|e{f24m^uFzHwxG}@`BV;YyD5#aS0k=&QeecE${oVc@Y-N-ce#~HP zZoOTI;5J~iJx6=I?=&A+L37iIHHWRLY0i3B8Hj3{TdibNBRTmueWLW& zaja z{l!Wk_G@!#>5ZL|Hcu%Ik(O%;L(^ZW1j6}MDfO$A;`}Nt*A!~gU#|pW%(2}|rzgH^ z6sHGq)uz8#3B>M?eP28$i72Bu1aaAKP6DyxEp3bUB~fb>r$_o*mcH(;`ugjYEW@~1 zMiyNy1}(art%6^ctQLbDQC3ErSBpW8C@TX|Ee1KFtPDi87z`pRjV>Un#$Xy<&J)uz z5Y=KZ6H#TqkXJDV(})Tpt!fNfba4zOdQ^--jwmYwQ7s08h)Saih^jG25oOT@M70>? zh_W&e)nYJ+s5H8Os2YP5Q5Ic5RE{W)A}#|F^qj7e7He8|h@cl;v#57*X|s!brVe%* z(mezjx7m(Bw=PXex4(Z(8N&7>93nvfZ-iTWPxn6{@8tK7DP7;CiI>3?EA#G27Ge7; zZsk9HFC#F@c)r<1rR|>U?R!q!U2-e`yekvzd0p!eQ(x@u`*U!~?wgZAT=v|LWJHe= ztdE+=ZlB1|y*qmjL}DwCfE8uuQ1nRm3e)F6Jn>%d;*-C}^UL@V=w%c{)Tc zMWlPFu%e>fd(-ETah_|7^PDc==$Y=zdKu|XtUU+9wP5U8&?6S6JIBlN%w^AkaMq30 zxLELBB13l+QA68_OEmWg*hF^XM30m! zeGVBeqH<|OIYAORVk_In)8`4ILJUfKr0DcbiRP*Aew6xaHQ&XX*muoetNAVvNeq@? zE67l9x3Wa7`gG{KwdCzqc6CpE7cv6hWlCCxw(6A$!hAQND3_O!cqI_*yXMu7LLP2j z2?YBtQ>?s#yb=iZU3i?@%E~LqD}i9&HGi$D(ZtxG`>8t|_?RHO;R%rE!92;pS=$8p-^_C{e(* z&*R7C-x;!bg4iLqQ+!whnX4HkDpd%l~i)&H~1)r=AqtXxxg_WLub1%Kz}YOUKyn;Rtxxc)Tx zO!5*QCmJOxSh=Qf>fDj!i9Aj;N)&L}ue)Ld$nz+pLk`u6i1qKDOxXK3P+TcQLAb($Pr~_AgaZnMHj~)5Y=LkBg)D^ zREt52E{;JUs>L8jl$C*yKbfmB#iEO25Qu6q$Ps1bM30IwXwk(n2*kxM22ZUJgB(#- z2I6`bgD0O<9)lKL9D_h~bTRnQj^#1P5oKi{+PU?Tw;z;sIHp*1aSQ@cEe6foYbd&a zs2ovr#1?_%feWUj_HYOL(X33R)LXI{p&B5yZ_meJiD zpxtPxC?Ct`jcb6cet(!@Fp3Lr;QW=2}2hY{)PSi4bZ+KTK ziYB|cT9;(51{u2JYG|pI-Sgw|E^4B?tcDiN?QS2>)nF^#Wi_7x$HR*Jl-v&cORGe+nK7ZJqN;BH&*M~UCU*8 z=CbEW3#M~5aOqwnbJ=qsoR`GvC8)3NK{A&;2ZHBn&{p>ynaiF7;UX%h5rs(AQwSlK zK2H!8VvysG%RqeSJh6kD6Cz`?w_BNg7w8KeV&|7-ox%KdS=nts_31RCN-9Gsm3T13V zgtKm})`c&rt*pEvZ(a$6Yr$AskSSJP;XPk{I*llw6Y*Z9SefrWlja^_{wjLt-A?mL zAlP@AVr6L$_30>Tc5B<*q-2Hu!K;VYO?pJ;WLA#cFPooKXLGg1kA9!KCfNlru9`xh zDI@B1u4d2CcU4A20m9HgEI6ineE4wLS7VBmYYHRgj;yn}+J$bMc=7|%pBp6#xcW^# zv(DyfL)={L%q?ZiV3ep}<(k6m@6W8Wx!NyouJ*w|8J8F(3bFEh*<9^tH&@#^nX4Ja&2fn9`3Fv|v$G1-$vny^QNhYJg>U)} zs|)99?!1KeE2BgK*S3$HNQh^9%qadbkztgmU}ZmgrCKd;bG4W2%be4VaTAK4L8e?C zA3u&XzvPHxOJ66pGD=jivLA($b@$tQOzGz1q&?hNJ)!uSaLUzZt7E7I&vxU)s~Sj~ z8^w7daXmQl81fS5S0(i;qeKNO*AyoAK9)T3sAIa9o=<$&C{e&Qd-#AfR{TzNQFp41 z;{1xZ`ki}18k;_9iyE~?alT7j7PW{dw_cLUFfNu6qN~TCMHj~)WK@emjwmYwQ7r~7 zx;O@bs1}19QC0?`S`2bTSs93GF~|{RWgx1>phXwQAQ1Sg6oVX5RtBP43|e$?3<6Ot z205av3`DgUwCLg(1fp6Dazt4fh-xv&5oKi{s>Ps17sntF)nbq%%E~~vey~DB)dYQC z7*X7FGR4X@g|HudcV6$@VaZ&L&!<@#C!OqERuuiy&4`XjW?sg%EN|!UR``>L_N|8h zjR?_Egnc_VYw^7Szt_rsPL-Sl#Q1>`ZZw%vDkHL^B|Bm0XIlx{jcVw0V>p|D44soP zmpzA!q*f(F7HXm+R_3zjKqR*E2s>xD!dq9+;knKz>hNyw-1Eu48d^$cTZRtLjz-aU z@AfV(NDy`oRoYq4q1toQif52^I(9{#x$JqOc?l?JZs&qm1ZQjQIS_SjHgU#tGMjKC z);c*=x+2e9_8f?9w!5hGmy*m_z$K$sKPpbp%RE{~wZ1)2EALmRuZ~y^EvJ8V4wq`~ z5ztn>+R)3q6?6_4MYqlGUF?-altqr%O1bPg^r#$z9Cus>f=Bx7?N(;rMSSo~*!wb&0nke zZlZbWyXMu^d>07zUGvv!z6%8Vu6cDe-=$i4Pc(lO8S3HYl|Uq#mwCH!vF`%GzRTWj zWoeIF=o?$fIUEFf@Er!dCk%hJo4Vktgn;xcLT@jZBa{*%?5>=SVjvCgHA)7N-oeYt zpqq2O=tf;HyStV}(0w)HaIn9B_FePotPG5(;h^`YfUM2klK8Lj*ddw-14M-@X5%P8k0LGM-_(85)SwmLF5vLJ(xd;09>m zyDsY77;f=0jF=h|B|to5u?ZQBFiMEF=RmktbUNTKxbK?8o!rR%UkJpr#<@oXQJdDv ztvm-@N!{t4#bQC9W0x*S>zi=PWlBVc*CI(W*E88`g>uI7epZmguWPrI4cEwUD~o zxh0b#acC4qOj;;kzsPEC=b=C`E<0I;=k!eu)G9qY2-zgBnhbiceUo8X=8V_)-b{?>{K@5=Pj`vk>jh8g$!sw$_Rf{1p#I3$G%W!U)8_ zeA$TgfaZLHj=AtAJ&PC0U>fJjecf?{0A7*<>Q-ckk;$a8&^ zehkQ*$r029%58;9gJxyu+KKl?NtO?|?jP>r@ z20ywlNV0vzV^mw$GtjKa^@E+-5WIt!!-r*l| zLN^fZ?uWI2wlhaiM^`z|a>{vlPqF?UbRR`p{z)N{^~rmRI5iXqy04)#OVB5~-$5NU zAiVlq-9Vgs#<#h-Nzb{rR3?i6F;04Z#3tHvwiT7hB0wyWvlBj-lYz3fa`s`103jX{ z>c7^*zmoW{`!lm`w z`IT~dg!TN(BWuO?28?$1Z9x1k)?F#*W&lBVDY2Ir+Fb`?rugnTavr4CVRvzS%8B~1 zonI0JUv_VwYbvKy0^#n-SPOk}cX#qlZ#nO^aWO*1+12ODXw@d-?L*`oMbyE)rE=^g z+9x0mmy<$nNqX*VqEVFeoGb#wVP}1t+b`+4vx(PpY9SEhS82~{1)ao)thZ(n+{5W# z>Q@OO$TPx~OCS;}Legor*1`9N*teFcgY3=-D+3{?G^cZvJEa-CdtAE9Ch$(+w_3ov zjKB%H_D;2rzUa4UX_mnfM&LBv((kzA)LeUyn$bSuG( z4rxDF!U%UtGwP5t`%`asCqDDOrR<5;)(`jUCVnRxtwpW>1=e;F<$B zc=2HpA7N)aXKm&7bwR>fcG7Vc!TZSgglT!QLB3!;hnFzIudk*${2sbi`Di(_-@YD! zQ&p&T_q)8a&b0}x@+A)8PUg?{9Cg^U0@gzR+%qp%OME&^iYTtnPCQ|R|66F4YN6-$ z{LAU1AHKvPYUW+$D<2I@TdUql&Q)(1pUc6&>ujYbT{lin1urCsMuPAqS%jS3ui4p8(Y4Q6VJ*)@Uxszt*2w7 zj;|_M%Re={Yn)vK!Oii>*;gbsSytg|;kum{{`Uy2&qt3+dR`$tXImBbTrDE+_$ECc zDJN&Mt%`fD772oN$*J{Y&;GW+wkqzqwou-}j#q+ZhyPqW7j|c;^9kd69bSU0wiuxj zMrc{;h|h2Dle}U2p*%@u2_yIn^dQ)LH+>SmmF#O!N#pqRc-G=`)`OtkYx*SoCE3%d zlE(1~^}d$*G}ii-Bz0W=>0us%>+{hy^@Cf*=pZ=l6>Zh(v{iO)zQqSx!mYY?d}Et& zLY$;xXU*|*Rd>P;&~jFo&F3D1pWQM#KKaXL91nr>UFqPV_Nb?|R-9k7D!BJt~B2_xKjQs~EjzS}LeF2?-s zNuL{pEMbH@NeOkxSz+Y6c0QEfDj#wG z?DS+jsly=)=ejEgkB=47eD)R?R7@=jI?Sdd2sJpd({N%8ZC5-4W>B6`^ zeR?)lG|`s@f>eplwXC({@fXJkozKT6yR}|;ad1v0I@7b3en-)A2CjnFxmS z$Hfc%esHT8Enn>^YL$LJMq8qJo8Kx~gOhvBAb3kwIrR&Y+FmUyBD(K#>A7V~j9^JI zLcdTG1bel_x~_ad>-296UtUld{}xVyRxtbV*YC7Zt3f z*MY|Q)Vs*{icrU`@=c-Ht1gHUI4PU8^txr?KX%vi=eCu+-TBqx3f6KSio2pO5=66- z2)!R*bP$}L^nB52-xkU=mY-H50h|9?7Cb1$RZ$Ngq5=h?FY9? z%kFy3h{efw!?S3IKp$*8pvA31`HG6ej(J-4Ym`Db3AcTWhp=9wo-q~nZEBR?YSJSA zVgH4R74Y5oPo%7^!N2&!@0uiosBD?PeNUi^5UIpR>_5GE{@_nbA)a51I4R(+b(@z#ItOEM<3s+AxhVXZM0{4H$1=Zg3#MmVi8752sJ;(oXR_e182L`zyIRzL0~AhNCU5!Mp) z$|y7 zCMT^z+w@PgDx2nS+Y^#86^#C8h|jw<%`e||Vg`*?bv(T~9YL<+^JkmpSA3%ghX$hG z4X-EnIex3)uR)+KbZFSB;+5Ca@o*CK+#%p^a-vF!p0_-xS=th(HKwBFyUmh5Wv$By zzrLF4$c|t-9_ct`>j3XsZxP!ky!2FTUDu~#1of5>h)p?XQqWny;@-O79aG^D**cs} zU|s7i%FU&Y3G#0i;UrlE(09~`xJM+0fYz9bHwHJ)cc{Ak|3p|z7+u^dtKE8w-~GEf zTvNmuhkSZliB>s@kHBb-+p`qnxObc9=l6$1+Ma5Sskncy7GkUa3&Hg{bWzXg zch$$VzMAWB(Fuz-O~#p7B3lRZ2P3q6v;0cd6EFQd$nX99E!y+A4rq<3xTU;yes55Y}e&k(Z4SZ?>TtcK;SlP94vLLoQ+ct@9Z&n z_66g9jmz#jcG;9h1Rlbnfq3Jgv%_oJJQ+V7Wr-`-&Oh_vp0m5H`aP~s-dB5dXgI#C ze!K?YB!Q>3V3R#&f3kLMg1A|BI31aM6Uj+}yerqv-~a3GvroQaeS&zoSN-s>SBA!Q zI7#4XoxHU7?2}L3kRUE;`DE^(htG}?P9o>rk=74w%VrO~XJdkRq|dT}x#KU55l#~1 zT^T!%unQ?j&NgI(lQ6<|JsF}V>pHu!b%CzQx@;>~2BIeGI=iuTfvCy4Y%5m=q9*II zty~!h{j+^!&WgHs%(Lszg1}v@kX^HW{2C zHq`DNE|=9u^utNi+f55&KJnK*5=7!9F~UhSqD%`ucJR{O6U3$x8y#9d8L!wniAJqy zA?6pf?VTV#5cawKux0VrBb-FJ#I%%sx|TpV2_tYK5O~ZGHCfl$jjfCEsL8s{ZtCr7 zHy~=VuCrV1n2FSGK-6SiXE%*nwHpvMS=ZT3SzGM}gv>Z0{uh7D;m$s0E9HFXl|ta0 z3A3mn%(}<*T~;+9VK}#Evv&TQwq+HQPSo9>?mAlaupo9XLIfVdp@EPQEJ%FBePM|! z*Ulfiw0Fh*cifP8Nu!?iqlR;o+nprvv>yI-_lmnOxiLZPA$xG1kUhe%fs+JzSC&&9 zH`$|NhkD}@#NBg-M!WXVIm$`oWL46t`f$&RcN&dP5Qjf}c65ZyA*jPig1jq>U-cMV zaot&WB#2*xdAjefv$K;()OuQbR|LU5B@nU~DUmP&7Pae`eV!2O{#3%c&Ted7pu387 zf1h1!UAC1g15uN8*;cL$#06sAktM9lwsK`4%Eh`Lm#{9|%9VleGcvXb%D*KRwd*w_ zAju+t#`WU)95JD@fyM{4Ft6B7>CyyYUeG#din5gJj3 zfahx&h-?O65~rmZz^=WmzHA1d5{)9$!U%TVBS>19%>Y!QQDj;e!3AsoN_Zuk0jNZy z$h0tmomQ<&5ZMesB^pJhh0#2D+#d-dn_sC!$Jw;pXkyG6;UtW(h_Vr^$-0OMvz04j zJZiEoThx_-sL8r)QC9|{ChM|AT^Wd)tjiX4Wgxzi*?E_PHGAb50JDr)*Ilm}p|i6g z92$s`GOKlLsW~-ET)B3fKiK%EGiQWo#0+U(;>w!In2)8ibBw?&Y@X=Kwc|X<{5Z`3 zVgzP-^LAI(oWaIF%`##HG7F0+SJs@-B3M?8hb*gFoZNXK)3c~`<=V*`L&_LI@W~+# zp*g2=hC|q$o*_nybsuk0Y+bgMD`Py8tgpzrY%5m=BFTMw3=C1w#Mq=_v9KwH4dV@vhDWz+@3T23hMC-y7&1HdN(z;S)5rylBLFPn_9F;J_m4RSp zV2La1Xxa*r&psGiTTgOj^?bMb!3>A7we=)dR?l~%Hkv>r_s%izI*Tgfm_?o4fKKk6Q>HfSvaMVh zh?=a+wsK`4lK6=0UeH4yFS7_q01tigb`PGPZZ^h`w^=OtzN~qc*j(@CyK0f1zkrS zjZW$ijsAMCxaa)bk8_}%r~mekH_49`sVh`WcR8$1WU%y?wu>Bj8=7f==Q=_Ycb|5@eyvvO%~xKjNm;w zKvWN3RX8Rd^DAhV4r}?lcYNelvEk}Se`Wn2d#Ou`71?Yh=s-i|sfa##yxyRHa} zK}gKov*>?@D1|O=m9>{!#q|MU*)jGuTt3_OS)y$FEKzp5DS^0Tr|05bVJs;^$TQ*M zeU>pIkz^5W#~$h!@xWE_({O0nE$(*^Fh434O%8a*+xz4&~Z{k?OC-l zLk=t=u+$Td9*I^QEyF)m(%UahYSp>7F z+h++alVlN&gHgv>ziihF?Sqy{vIyPJGDWg~c*(U#woS)_`NOn;F1>3q{$1I_f_;{; zRa)F^&8Fv^C&uG^M_h;Y_V&2!*U{&a?r9w+ z!S6D{?QYEW+$32<={=CpvVE3u+hxqL8x!Tydmyt2uCL}gOcK`-z%xqK(eQxDY0oV> z6`}hqQLfo{O_D``iF9{kmPIWqa)_Jbo?C`f93PA*t}nX>GW)xhf8x4dNAH zLo1^6u1VF>eU>QuXxmeWI_mX&`M3M9W!3cAuqcxiPnWmhp9o zd3{#~zis!x!^DVbozZLD_5tgkAR$EXg7atq8k!2Ers+ zgk@312$L`ZWxK8jyGunKoL`w15O!S=b|(yp*(8hpXNXeh;#P4>tjzT(!g-_Z>*MuS ztnb-%Tk$GJ*z*rvx#cxkc@yG|C?j^mN3FjZqf7U8NrfbMAN(?UQJH9`Kw=}$WFPzx%rA# zExq0}ujlE%m7Klv&0O>cJEE2082!%>idHsYbP#Ntv}zNv0QaM~RgLFpt9E`(Pbruw zt<(2w8^_O`^vzkds9x7`lAV%Oir7)cgC&g6vW@0_$=m(I79JL{gc15iu3486EGb4b zo}=T@T22mt2d^8@DAG5J)$WQ`Exm3%zdAWVpyjl|1;l~PMU4Ju2u15?GFsk>PflB? zm1`7nKZ;vrUZPQG@1LVp_+8D_t!(w-ZZeJ9xc4jpuNcD0i~v&i&~s*CW&0(~maG;- z;CCUx?;67DP{a<&8CxfIYcG43@XoQ?M^DLWn%8qnaouLME(v06nITld2rW0Bqv&sv z^RE`4E$7PKcX|9rZ6fEHf`)ECWs~CZ&OKvBJwMy<0LOd&SyF%RW`iNy$ z4vOE*%p&mI$n8RL=pfkhg6-oBJZmdP;7OD1fRXRrje9tG`xE`Z6F1v!2; zh58u%<{8)Q2HYAML9T(HeU z@DfJMfAZuC_jOo@mZv^joDttiI4{vwG2+_;j<4{)6pNmtj^@uFLlXD9r4guu5%QJF z8d|mQ6Pv`R(4r2u6(e?i;Rv!wt65*C@!@v2)XuY(e6g~^eTNr)&_9jyp~?G0tc3`+ z-6^Jxe|-ek$7mnH9M%4ZpUQ8%aGMf*^~HrB#_N2jgL#P&!ClXm|99`LW3+hDXRFf@ zocPkv@=516DgIp#@$D@wQ)Xa9&}Mvi^cE%1)Dgc`jF56<=pYz)#P4aVyd6!XRr%7; zYHMxWkCYi!-uY~`>!IzFs-5={u342KBeweCr)smVS9dVsrkzW+iVu~!wvwLgr z{`9}8Uopb%-_*Bj+#I#?h%ZX^!|mVHw`<(o)#Ci^)A@tzaQip)?HV^0GWt60Ja_myLK=uwZ|lUkQ0jBsB$&dxY2VTAk2aTdW6M(`Jp zT|dC>EMbKE%5k<1mN0_9c<;wu3SVE_|hR+z*U7f1#PRz!Gi;<$vGaJMFpqDsxS5NN0QQ zzGiNbs=G09eqvBrC&}mBh*XA*;QEvqY%eDxcy{*ZJ~uNsea9u7O?!yw7 zUvb7E?=bz?F^zLy;t-q%Sq=ENGAuv;)^N##*Ccx#?TZm+(QA|IjrN|CdI=*c@7S!o z`88LUKo4KtEFHmszRkgi%4>EnZ~x(y3EH)*G920Q$ntNeUtaXP{|r$+;F$6?A75I8 zmVK`WuS)yDtztxZhXcyXM_!bmxA|yBdNyw5ydBE#zG`&Q@A`=OTfUawe=tJFM)!_# z-4cV*XQ{0iQQiN4;mWD!#`XE=Q?7d`ozGdqh~T2F!%w=MleE^X8~fEoTSq2gbZG>< zL?kIf8BY7*p{b5J3)79ikJ#`?_t?6Q6BU8k(%$apx@8|{|Et^xQXN3pJDfh6 zd(IL@U`DmQ!}9LN&@0k0XGs=e?|I6blNH;fOpW=~_G|-fTDWfSc?QAPXEaRfz$|Qg zwpk0;?LAM~Pd#L-wC9*#ZO=Aq;kv!&DQ_yQZjvG}3)`M;*1~mr&r`md^_*Mr;yjwQ z{G9sj6Q535G>fqM80|&_aX$FGqbhEB*5>Ww{GEaPPbUK1lMjcksaEE#^g0--sXL(Q% zjCkpzbOg&A9#*l*zMIAf*1}q!WoNGE@OEB-V6=~z^7-RwKN!KQ5sY?qD2qCa&Ki3n zS=!l6zW&w8oy@JPXKHsw487-6vib*~e39CU*V|ajU%A_O?SgdXWCYj8XnAA#r?%;A zz&+%#VN3fxXDuFo9!(#?TI^%&F+PH|d_QLE8U|zj)Yubeo40eu>gS@*kLaKJ)xP(f zI@`RRwK&qO2K-wYo;qXHZ1Z;3;(Jl~w$thBQ)Xa9aea0t>}shDIgjS7A93ztkP)oK zcNTn~AhX3UZBs5`Exvp4?^yozSDzHYcUyd?r}IZP3x}<^xBl3;lbc*GG@@J{%^8xG zZMK{GsP4T2f+dXL_gjKsWN$a0Lt---Ya#yK9ChoU4XKwvVzUfuflF*Ak~h}pwMn@I z5}S)y3lU{AQ4mB!+>-`KY%XFgM3l`$lJ7RyG4?BXJ0vz2u@)lAW(N7XZnJzG=RiPW zbCIuwh{}2*5Xv9=bb--6$G9=940%4!&d$zOjNth^J3BjD83L{1`8+#2J6kb==kx6B z>}+KS_!ak-E$!Ql5v;|d$z$X6(GS*QkKyr`oZ*ctQ!ZgG_Dc3KR|opRTI~7k$MQsU zx2w__hqXAmI94RTO3v(mxKI0>K3~>n!gj(up7z>vXFYxIrv&kae3z9ajL@<@gYKT3 zT>sYT-{x4t2s@u%pCa#DN6(D9PtI0Ti9TOuEj?`j`7&$i z>F@Tmw_z7Ovwx606IO{nUuG?T_3J-96d_;d^46&t?IUXHIroG6Ctn|`q37HW?w{n; z=V;F#ljr9w;eK!n&97`voUW1RH)`zbWnWg<^Jw>tT=BxF-@Xq`x2N9t>ViF+0=gI> zu@N0{^mv5w=H1zsTO!p-YVPm6vSPXGigR%W=%(0`1waj~Tcbg&bFC(}i9lGZ9Kv?iD0ABQyYC5?LO68r59{!G z(6v_ER9pwncfprEbVb;eu^&?ZG(K43%C+;%j}EchJ`YW2u62l@2E-$+CiP*t_>Sk$TJOOIuEw!4gK8 z)%ja=mC?+7w(H9hM%Z}x835YHUwUILcb#XPxl=n%cM|)~560umXq94SmGm;S9l&o4TupwLBKy7!1iB4)BY6UB#hAA#=0}}*+=U{=QSH1 zURm#ifz3XAxtaZ`5cgKitpP!pStZBSw;T=KztM2bP*81_@yJEy2eY1$Oj-6a} zmLT4pQafa=&WGL^BX+NyMbx=q*?_ztzU#k9$Xb_gdPj`tvrQJ!_rF`@_7%k1vW+>` zy5RNOVnpLnS;XdTF36!(XRrS*$69qC9v>qfub;KmtLIG4oiB*WPv6Y3){;kWjS-W- z$Rg%^^nUKQro+Rx22aef))$Lzi4je|&5mG~5i4`AOC7KM`{*2NoqVt&uG=>2W7{8E zE9@wUZD09nAZyj$OcCE62~T9NEIVzJ@J2zv=UL0j4Ih6igP=O9Sj*}=eZ|`u#P!mT zC#8;-#~)o_E$h?g&E{ngQ^i)t3F7*_CKg!B?6!CN`5DBz(UWt(h;@4}e6zq>HZ}+U zkwwgGdO@zA)bZnn?+UDCELPUPo<)pnv}a+ZATFuaT~jmz-0z{@RGLqP2YWnstRw1Tlx0 z8VGCQRaNaW=-a+uT0qpELre`VvqImpETR-sL(44v__Vf}I)*%Yd!b6a{pX&Jsi9?~ zdESv(#EzTqS=hGu@bGbBYG|b%(<+NtF>G=bcz3|lj;Ys+mU(5HT3JLx@%F0)aUC%= zw9NBcHOL~SPTwNeRS*k_si9@jb$y>K;>8vhjL&Vh3vIsu(sx0E8b0_D{6~vT< zj;Wz#Eb-CLS;UI}y`S4u5SQ-lm>OEfM4O+N9l=se4J~84xec;D_WmKY!tbPxFNvw4 zWsLgUlq{nCs7=CSWXzeVp=F4Ahi;egl2S|!Eo)Vu)mcO-riPaF{O7S9GIc~Byq~Kr zezlR98d_%E9k$v&gDAz+(6SMnba583Wy=e44a8P25mQ6UyyWaRvk3C5l&PU*p7_P; zEaK`8%Ld#pbzDSD4K4Hb&o*Qct0g`T5kx0qYG_$RZTKpSm?bf|P!Pw~b4(2_i`r`+ z&mz_dQy(UXt9v=7hL$nIVf$ne69-in`U;{6F*US|edaF6j^OeYOAB>m1RIQXObsn# zxX~3^L_Nt~J4+o~5mQ6UIJoI!S-&FQO_^G?m}{AXtAwc|@%B?&oDd^|pmV{G2G?(R=rQ^Cu(J7u>uwnluG;Ovc;++-BlcNycU<3IYaSKEsHqPY zrv7V0xaWKG6Dn+Mp80NKIv#UgoG8DtGh|p;XX*4DOBjI&M*j{T^?>|4@!~rQ!yXwHUODQsoQ=VUBOa_^EwkIQ z=Me$3#JcUs$9F6!HD8??lsgP=!r z?ZBHZ91;HdS0FQ+lQ3e&cels&p@l*4K#MJNbM_h*p8s_avV;+s8BpJrqfp=fj=Cs! z?}%aH+Lk}$PWtAy__ttP*23%q#H9MDWA$!RazD-*7H+J5D>q|PMPO`M3o{%L&wl|# z+pXn}<=Eljz~?69J{>VWt^?l3T9`$FX!h-c^6!Y2t8)8&JS?2E{V_Sr$dFvV?ZgU3 z`-m6LUX^=c`w?OH`g?nbvsT?2*N6CEw0zU=l-l9urw$8e-@7cnAGA7@$9ua=C=-PoSVZ^+5v_5dKy!G~K-SEXdhsAjbOBiA0%^wHiyDk6Bl^uUn zcuI@KRo3%!Ryo^%3bO+6AJvhjIi-Ps6ANp z!yZ#|-@i00e0a`V1@kL#IBS`Y?f(Z5$P8z7D>ID!V^Hp?n?{6(?YJ^$J%_}44mL0w zBL0Kmq0b-8-4KolkKFuSj~UFmU;`T`<@WABF324|c6j*7eiJ=run`0sm@gpygW&Mx z3vzD?qRAl>Jufi?Jj3eH`Fs~?)f{P6)ZksuORQD!4C{x^=PyXlKbD?9)p4cgCDwCz zhFL_%>4(+V4jd}Hd*WY#=OsMm>hFVc0$>ART^16XM>vP^_`J83|)siQ^E_q^AV_kbioI}D0 z&Kc$0+IKIBx$5pm>*l}!IGYO0X>5QpxJ1va0$+8y;`A8t{cm$T1dlVL<$ElbD`M0i z#R&W^JcH3eaC__h;yV8QL937@C>z4OL_LuaEXg8(R>Wx^wTkQ5qvd{~`48d%Xw$-V zlr=uqt(+6TdB099VE%)MVl7+;LSyjQ+v>)M`U_xXH=p}j$P=5#`GcG=KDKTF_q2lq z;m5Pn!gW`Nv?@lRRpxPMFKgkt>&JorYZal6Hm&vx&EsGb*1~llQtQSDj0b0ZtcB}9 zXq=0e#0Yo^`z~wYIuP)&Ah`71OJc;+kJQbvzp@st1EF*6-~`d)sk+|%2WuG`b7Bxo zzfxOu!jE$b)(^~mtYt04bvawT*?w`Wj$7C&GFu@!S<9@TQ7e8GBgC&F8xJr5Yni2$ z8Ge=4U_9=X*4dbYmsrb2Q~BzR7u8Fa&xg(2EaPjb$6)peg0i{liK7HzzH4(7EDA02 zO1)l7Mh>kyQby9^1MOuk^L*_`_YXCq*0kC$vKWL-Sj(bIZS`n#jq__iX%$(V!|tqQ z5v=1OBN(Dp7(rthj4f*!kLj3;m&6Eo31>yDqmE#OFoTUCSjNUf8OL#qoH;OFy=03F`@mx`=EZj` z%q8ZD_+9fWl+CBLALQ*G`OqAT87jub46eJcOC|hhQm&p7PVazdqu*6~zT8Lnb zjdIC<5@vWzW;K>roI{H_CJ2m6b`mdPNtR1cM=_UJ9gtWZC|hgQcg5S|e!$yVV*P-Y zSw!PQA}U58qF7?Kf|iYk#-K!P%q56gme_be%SKk?eAXQGlCy;wSYl&tEP7pxN1DABzuYS){40gsI~g1XHubVh~!) zG4X5=Bfupr$#RJsbK??ti7^AlIm;zL=p40LGO~%1kzLi?t=u(zthY#UFD|P_8+(aW z)pt=2f@l{@?{BP^4hv!IXkW0UUl3&+XI z-F^Mt${i$(FrVIT3=nmnf3UDoR_=b9=T`0x+ox}ywalk)c@K!*ZT2b5oiRN8hF0#b zdAx6)walmY+O)4A-hO6s)fKYtv&GkL$* z4hXyRLVb*ux9Of*U%2tcVd2cZ-OAlnRXy{@5)04km5#^P!!YI-+_tjN`Lq$?g8kge z9S~-#Zom3yIa5(q?k3Ah>b1+<${i3k27SwXbP${^t-!ci|m{KvwRqKFh7#o!Yf$yh0D(g_havyd!}) zbb7upNLKF7q?NlD*Z5kt4!6D)5NF&yx$1El!NIh0*S1!VbPRy@5er_tuIf`+x!aRg z?trk&>G*Gaw9K5nmJc{a)&Nc%=vMB4u=~MQ4Sclh!+Pi1f#1j-v{F&|nO z1aEG?Wp2=*Vd1i+ZsiUVM%W$e^?iUi;E0QIqh;l8KpVGm2kWwy-4!2t6%ZHopOSl6 zR#?g-w{nLOWG%b%{^(~QDw@8Zds|j<20iOm?%*Y?Wh*+Hp9e2_Nmh#Pk(Htb?cK`V z+y=e!#;8F1i0#f=l{-gPqaLX3R_=f>Mn!xuTI!IMyB|*(7Pg$|R_=hXm9*cc_-OH~ z?}Bh2S-G3L#I4-ncNt;Xpz`j`uhk9PW>)SXVT6_I9SR0t*67dNNwRV`u8mu{>$AGI zO_DwEiJolL3dbmih5HZvs)j?UuO{B|f(O%B{(OomtCb<%`uo^ys~OK(~vA zg-vMX?yeSn(};qW&+VT-ab4BzvT|4Pid(tUc|!AOpnXJJS-IQ!2w8Q0+pXLoqL>G5 z_CaiVb5y!=2MP0_%^%7PQ`Zd2^^^6h7k6?icaT`m!3M~KkY#8c`7a*Ky&`L5KW*k# z?jSMif(9_&``;3bBDXILFN zpKo09U~Y}HYTBl5wPcrJ;RNr zywy1Rj>0Tixx4dRw{nL$+(r-?hmD}N>dO|h3qxccZ1kmDxr3I?gUD)Z=G30gTVE@h zFFD+p&X8mg zKr4do4bqi6c)Ml#(1Kq9q47~_n%=5c5*YvH=<2j6X*$Dy~Zh3n2%G9K|AB*ufYN!G%3AT-Wp z%wq(+gfmvwvU^;3Pwa^?0-nhJ%38RNI@A-7N$$^&6q{KcnEP1E(6}B1tCID^&a2$Y z9oUDptcAE91bnw`wnB8WmRUig_6fN!$2!AUxlgz800Xd=Sz4K){vUd`JyTXFY|Oz+ ztYxFAd_`U&bva)0wbWxU`vd`bVtVgva}+EJE%Qpf{^JV0+a7S0Te(AfS<5_M`#}+v z-aEr4tYy)qwxT#sSMFeU*0KoJ@sJS=VO@-%u?)tRwQwDM(lHk=i4pJ;&Wc#eXSjnB z#DIhoF+&;;q73iz5!7>!eXJkGC2p=|E`fbaVz!EzC|SAFI3J#H$xvw>#sCONY&=xU zag5I;<|WE9K9|@p$+^_@6u>+YziWPlviY=fB6A5#%y(lZN>=WacPXOM=LV2ie4vcz zLaU0oge4Y((6abfE|C$8V-O?A5{q+aF~FG z(RAew66*)b%rWv5nVtf$#B7BqGOKG0O4P|-l;#w9=~S{N=~xdX$Q??Pg}i?T(5_Cr`Sj#{uNODsO1h3G;Z$|aNmc#1gIp znJntoo$Hkg`^Sij8+D5`$1RH`tc7eD2;CjO^^;r1i27e28fhL~7E4$Q_d7u74*bTI zRk63Pes5HycS2>cgtf4W1BCAKAM|9$81dr7G0C30vRJ}exK{&0-y}HgzM}?W1nW$^ zEPi_cwt|GUaGwB#zOAswpV!6S{>M|J<2Mw5fP}ShF9L+V5mE8}&oQE9*W)6+ODT&b ztcCj>AoQ(^(Jyrj(W=?4^O4>OmBkX)!aWrb`ew(y?`TfF{D+p2-ffk|64t`KIuQEy z$c)2Jj_Wvl{YUW|Bj^VttY!P2^$nG;>Rc2fX0#iT?Dr|lL&92E{XiZ17L2^n7$eXZ zT^ErNl=ov;%gXwu4b_n|1SG6w_37I@)Q@D3mw2MQ=fhgoCw*gR*gUn>itk&7x_(iX zhlI7vZu(XdjYnwKg@me9)hL-P_ySj&7&-{9Ku zW%b=}CR`Tky=++?64o+5*0;ncK9b#rWqC+g%VI^}MC*91#^4PLM#XQR!Al@vEsIBe z+wG#KG|roRb!cc&3khpk%507_kJixU!PRhG)T&ZK;C&Rlo=HObC;R}Dy zyXIHMs6Z(1lJ9!FYrboY3WV}5#fQhc79ZeRi<`gaU5i0*t;MGD?&~ir?>^GX=Ut0) zaIM9^^6te6?>7F?=Uw9xV^s7*dH2M+&<}jms3N+TIQAd zJ{IK+X-*9ZYnkWkJ71-8YDieiqD$W^qZmxN9TL{E2-bJkD9+QI8WPqrmeBX(D2GdP zYDieim`LBjTllu-iC+`9L&93dcKV**Hb-bq{pvcGQ$xa9#;E!(A?3SiP7Mib8PDtc ziluUDNLb6t`c5R(k>=F=9wf?EpT2iFJei}G{q<4G?U1mR^-16DER|D3!dhlGeSh?c zWUh@`Ic|r9wQOwk9o14fH6*NMF?E_#L*i@k8;+cXTTYD`z_?w1ml4#DbS(qCYyB`r z1%oT^mddFiF2B_<533w?B0;@h+arx*evDU2*+`1o4!tWw_tU?nz|ydC97CkBc9P zPiR7Wu{*)Fy=P`eV=~8xLF$T6T2P24Q^k+PwId#WnhbF60x+f81j^B0r6X7L5OuRyK>T_g1hc96lBP3c@ zEqEo+x<9eqxi3$fn}jgRjnK2*{%A{YqWJNV{&<@UN|$0bqQIhL>%SON&$JNQL%f4+y@pR1&EEMYA$5fHj} z@a<&1>-?}lFqS&wZN!AV834wEKSy_-)J`?$zD6h z64nCG1A$$ESe?$UmvoLLtYu~0rAKuXRMJ`IiQdUhK+GAv<7^pqU}v4|@pAo0GX2i6 z#9HO{-(gn6?t}y8>;1>%6)hv{IV9F|l+A9s=Z?lBc?!^3=G4BPmW_?>x$BjzmkjB0 zTyj?=Z*95#8=5vGI`fhc7hp4p={iRo$_*usAJKBF&reU zWqhpf2)vpwb&s=ky#(w7iLa%r(fZVqW`io80TiKVe>R|gc)V-e>@Lp@SYqSh7**NT8*`6$ZOp;7T2^)q0`e=5cg?TBwdQYs&%5T~;94y! zyUI?dH5wns$a5T)SbTtMwXEzK1QdfF?^+CkYqhNG8Uz&Q9`70(fNQm^>?-dx)WEyO zCE!})80FnDNlyJQSp#5+@fEmM%gU}b^R6)`xYoE*dAE2i!{=ScsLHNh9UkvmtH7ex zD&<}3hsV3tbH}Ki6W-k?$*Cv&J!1T(JJ z+^7D6Q6BGF)H+7(oLAnZIQMwhn87isva6TFdAw`v;}})h)yoq--eneLcCDFrnMHkm z{4wF(7f)~*vc6%jS+Ty`rM#=8&q!Pa%xCe%SKaA>zVVk=F|(9IBti8 zwajDmw4P6s=O6D-P7MibnOEv*J+1H5oZ*s(Tuu!MYnkWc6dyTTJZ2a{Eno>D6B&=mVrYF$6 zw%^h5zNOQM+aX~s^W*CHbg>;~YkWL2!R6GDu$ILN&M6B5ioulIAz>|xN1TNg1dWn7 zKjh0pQ*MWZwJhdw`iaLSDYrwyTE;7S+S`5!Uv*tuC*^iXSj)Hz=h4ZVdX7cYoEj3= zGM?8H^A;vdy)4<+hnyM`UyHe&)=Scy8mw>Z>`vkM*kJ74;|YvbVO5xly~b*bZZ&VGT(KK+BrG@jN&8Bsi9@@;TY9UFryeub82W=3_3=&6U?4Uo=3eb z&!bdJB^Kw7QSAgX$`jMI3}_jbI7YP-%xdCY<15Fgda_x~ylb537*)?E`@ebDF{-Si z2)lZ9c)V+^a*V1cg2{)7-TdM4uJzn8YUjN2?$gOy#x5&--ZkqwM(vze-hFPG^6vch zKJVHHI!5iBSKg($HqEIaF)wk9D&8KS{6+J5no~n!p6D30b6$D(*xi+PFU;_+dAnm& zJJoUfS<1V0Xe|R;7Ez8-^?b;hdDo)WF{++HDc_cTM&tbGB|h&OGdM=ob1s9RRg%Ni zZS2-Epk?gi7}ZYMq&(5%U1m`&>p7q`^DeWf&yTzg7X+BEagGmGR8a#Ou|oMpk=Y5yCxZ75`NkPEsICpHOUB*@Dn9yS3ubG4cfT%Y|?aUEt+*xl^Lds6iY7S~}~keJ=nHD5g2EyhNea^{su%r}1_oOny zW-@!0iZO?lUDrLSjIi0#p4S2aExWFJQW;@0vON<90$O%m_oOnyW_>)7W-Ys}dr}!; zxrpr}LLJbu>$WEq7<&&|~BlwB?KdZx@*Q15{j2>+=Pt@5!xzAeV)-2sV zfWPmDTeEaemlVi|yV9k=z z4)OWHkI46U9l|0QYnF_52rW5;6Ti9;AG=_;ooerdh+ z3}509#(es8$q;j*y8V2KLm0d2(W4H!dU0R(NVh6S^5L}=AQgI!|8NBm|XHMO>#B~@i zL1JZ|IdyLo5H=ea_d#N1o;h{@71v?>3W=35zZz5P9xq0)#L7H#x;e_c#O4Wp=R@D% zQ0A+7=7hx1{Qifo0dT8KOV@GT@7ndhM_4~}-PobE2K1v_?&@@oLaP{IcGGogZk3IJ zu6euP{bvXpb3Luzp|u8#`3*XrHF@vrGI&^8o+7?^)V}x;(KJ9U6 z*N<_Jz9H6i5=Iy&>MEzTYM(9Z^fPwWCshtzj4)dHrh2&Q&xy=BQ)SF9iS*M8UD9|Qs`!q!?{r{+3LV(%yd0WIsfu7xwgB>dJ6 zw9L}F-p&Y<@S8!aXGw9G5@*#y^N5`K#cS{66@ z4pvPFuFrnS)nTn-CbKd)(U?e|E^!?!DTUB?;uvAPg!NBDL(8t~J8_IKhQs({>ss1 z*Ih&z!?6}euw5^XTGnEguLYuSAQ7}c)p6En7zY3VMu z;(G(VX8^+D+J4O!x0{9V{_4>agqjHU}fj!?D|pwd}gS&A|wZBJ4I}ExWF7b1=dp z6+6sW%dYF&96;Cz8Z+Rn4byUa)$IKbu7eR)#$Gi>tGURI>8#QJ(-A~Q^V2PFOy%~6n?x$viS=8H2r?zzPTujAYMwWy##Gyv?WfzG#rRCEWA1*pW`vD7yw66^P7wr46nml}AYp`+_1hfWDwbFo zb=a8eX^4z43BEC5WoViA=r=8DLRcO4{SWk`<~sOyaYkct9X94Hv2uK>V{!_uew)K< z6-i1V^rT8gnD^nEALhGuo+bLBr&cn;JdU;WyCUvvOVu||WQ3Kq?TSz|FxGR^LLKJE z=($}l?m0^sVddfxWQmpII+E{)6_23B1iZw`&@yi?_C(VH!s@UupZH#4J-0DH53O8m zX>UBJz19+VyOoPu#S$w6VL3{146>vYLT4Xt6=xZYwsI+i@+-1bj(MJmv<9=4FJZ2A zOcVtF-Lq#j?99eh8?NaSEtz_0`5T|MmEA@S^TEn-^>=lN zn$GQ6DEzli6p(}wl@;fezx-H&4yHEUIoj^miwosX_KGUoTv=ZG(DwOnFKd`*ttI8B zm2a|Xd#x{csrh!%9`zn99Da8n55ZdH|2w99$KwsLRqYnhlsSdMZ7=nXMlL_AymEy| zqz=}qZZo8O=a&ufd-;~pp$irl=6v2OD(^qEywj-d@~y=_o>s1+ylbQFl2$Fev34|R zmo?`EU0d z;-Q!372f=0>!`~QK7zH%Pu;Y<$0vrk{{3ePr=Qm*I(=2|sQUNK%Y)-OXwONj^5QSU z8ym=Vcu&x2^-YBZ$99bBZq+9$KmP6T!KXUp-^F;a*89(e=k+wi)GdY<_Ug22wBlar zIUxels{B`Fc*PJyZ1&Jrg#)(i7ERbsyky?MaKYCd^1q`F*4nC7IPxSzlpj34s_j=j zqr>|5_7DMUU2stD^Ro?sm|8fdXY}gzQpfcAh5EmB$ZwE30@fORP{AQSo-lsk*ZcO0 zwt26Yk07neEn7vdRo@TWDtAeBS=8h{vDF2Y(ddsmZaAsOM)9;%=PTlE_&n59#Qb*_SKK?)FHnN{UCJUAx2N@60Kc%M&W=1 z1i^7mvCYvO1WiwD7u|U93x%o>9Bml4sPIvtrx&#xgB+Vd@Xg{s z3m2YKFKRxwyBC8TQ5$!b&Sdm?&(Do z$A=dM!SZHdVf;hgqa7Od@Z!Vsc8UV|_VT-ftLBaB8!g;ktjiMiUH0kVw(zBackSIL z8rWA5Bw=cA}_*G#nP(&}GsZlC`X@j+VR$JK7ex!~~a!fo;o7VbMt<|sn2R(1Jl z)oxa6@K>kshJRgDxaPy&QMZq-t-fKE%#czCYss8g?Pku0U+o(1x3*Vdo6Dsir`=Tj z`;d0|`eH@a8aex->U5?KS}p7zepBnyszNK_D?+eV_0&tN(_A9Ber3<_n@yWkbyzHQ z?0QRenPd~|(JD`?vf5=CLw@WTZnCcNz~M`LgybTr7SMNZZh6V?|LY#k{cGXCFWX8c zbNWryJ#K3g&jzf87B+dTO)^JysqPwX^INan2Www+t72usGLok@yuMSPNd+tb$H8o zew1%7|EFPi^o`#Y=8X{ErKsf?s<9Zh0U(M zrLa{S)ZwC*BZ?y}2rj<1EIeSvUWMl;_4HzpBZ}ij-qC8-H{AByaaGrBA}mS~#qq&$ z69n~|_6?8yYTUrtbp?@$D2oY>f*^Rkakp^KWryZ&Z!dW}#Rq#h`*aW-aZrbFLcb}w zGb?&{zUz4+`CAb59o{IcShYMi`M4gQC$e9$_XNRaXROE#Zn#Bw_x;i;@+C~C4}5t4Ug5vqm5ADZ917d}v{rQXr8mgK&!RqG$!sxZ7>w{R<&aXbWRA>(j8@43s+Lf8JghR<9l zcSUEv9d0$CWqz&1xu+#LyxA=XKKuQq!hkb6h9_*&$3q~~H!b8rHkz^v<(p>;7hc^a z{6prCiM^Vazc@kr!CJUuF<%IRt}EvimaN@6JZ`p+U@hG5IKJ9-*owmV^Xi8qcj*(g zU$|%a!JS&=zm|TmR=M0$IZnK0Y3-=a{583EM)&p*o|fFVIo`dlYoqAu9Y4!$(@!{Y z*(v2ayw@uKo7923JJYI`J4navue{tMn)y_edud5855ZazkL7Ou_`TV7QT-^7B2Wu^nJ7G6RJ=bjKX#TGk=W>&Jc?i}LmMFIwE(qq{)+MU*O3&Oc zGsN3>zp;G&Np12CbRJB#D&_9p&9x2Q=ouY%>}LZX-$^2h5u~+5)*p3ZyFdED7?E(lkk&`-Mxrn zZ|5iog4N{>qKTjVlDm0bchB2B-({Z;+I`wKy8M8dxxJdpd`=SfME1}inDTs==;Te$ z%(XnIhv$jxee69!u;q?DqdBvd4m?=aeOSU?;*bCG$(MyyXC4&4gO2%CJ+57xi#qSK zEVG@gWvt))lJJkFt>Q0XFoN?$cO9!AYXos-v%f>M%QHF%CVhB*_|id@aUCpi<#usK z?qcv+L0pm`cn&X(KtDd;>a4KCg6Fg!l%+bfSRuU*#JG=72s@nrWsKlipS9d|AZ8Cd zGF*4Yrt)5&L>gtOtmUo)F>2Jl;gi!^#|X|7Sj$}pV%<&s!>y0*79+g;GtF_^<=u54 zetT`laQ}W4S_kEytmQHeAl~ZRBs`?UkQm|RpD9|j(!3OiX;-hwz5U)XF~Z9%NXuOZ zVz2Ms%*`o3P3xfi!_!Ky1JQTydvYBs&WjP8SvbBDFG=$fAQ}Y+=DN()6EHZlU@dnY zh&wvHJMipjkVJ2NgY*b9h6yMRZX)O(Mqoav1zRX3+=5R zoPUs(<3}LGRt2+_mszA}(MmH8Adda^&BE$rJeWCI%UuUz@>OdJP2W$(obnIWav28@ z;#ZOR6>}|Xx$8iTdws{~)xPSxoLR7zyAFiJM`ZEA?Cfc!83z#mJAL2i%;_3~oLM-u zFhiP`0P%V5$f(ySjdSL6)^gW@X!h|5QJo8wOE|M&Eq5J=u<=>Z*7KFGcm`lCcO8h4 zAD$omaEP*KC1n<@<*oxEOdT0h^PIt2?m7^^PrfYL_9&e{IGgabDwDhfi0=il{?voy zbd4Z@mRlEbTJAa!8>Ce~HEmS@0xhw%7uIsufk=9;2wpu+(eeC|JTU=cU$O4OdC$cN zSk%^#U@Ki6lCyZz>p(P+5$t#2moWmPX6sa}<*oyfcu9nQz%y(ujJ4c#AQDfE5%4}+ zZ}YU$>p&#l9wXr4>6#vCx$8hA5fvj4MYih5TJAa!Nz`f`w5H2ih+tg{2O?pH7y&l0 zb#>Nq*MUgbCq{sAZ0+9DO0NTvFr3!G&pb#AoT$$YfJj(W>k#I&XAquNdL0Ov4Zzfj z5Oz+VbFfx=9SHqP_Q}W$kRn(sy`I#88Atm;&pdEnt7!4v^g0m9tY$q=pNy~;W;oaL zWaiX<&@&HDE4_|7lG!;%l=G7j(sI{KHMSR&Uyd8CL-tI|KEzaA4@bdOFqmNhB zl2u3LM7MIsdArNi1(B{yNUPF}9ChellDD%YEej&e$bm>^gSh9OB-Ii`nvny+dAlb` zwc?)BdLrlTn3rs&(UoKCrYnW%%&DzPGkU2#ElVBVdLrlTEOBKSbIRw_3_!=6Bu-0w z*IQ5IyqzVkEOmJ6iJZ5y#FeGzY2FU&a^CJqQZ3Hgf#AHoI?d>HM~bdG#>_zLiAmO% zgSQA9q!L%wJkdBN%`9WY5?X0=Wf>32GL6U5>@`NP#FYg>`Fy-46WN*!OI%r6<*g^K zl`OpRaLwCU;>u!OZ>Q4=L9`i_ayzXwR;JlK&@P`}D|!1x%`|Uki7RVAET2z%9?wx| zyGdMGZRMWVCU-@ONOSf0d2NZj9b=x{dBq5ffo1xxtYdEZeCj2Ujk!rM=2}+2vV1=E z#25j;GKnjz?^-_Z=k1*7yRycIWjKD`j+iisD{Bm>E$Mlhk)saI+dWCDrFn_-M9$k?uC7nR%@f;GKA&bwajRJ3 z%2EgA^JzvFBUs|fVqMDT)2vUeOA@CQGeersrYvvyr1n-(-bP&8>e(j9SKDt5P{m9rVXun6VUv-}pql4gtdi7?0u>6SK{**d= zi9`7N`kpwlFk_PsYwfl{5Wd7A{Jn#-7a!Mu;IwULtrvtZaR}apC^P4Sjb>icAm2ak z2klP`s2}{K5iatYcnJQa=kyHHLjZlQJk`gO-{8&<4xD+_L-)>vm-tVroEAUXlJAkv z+q~b18MnwOQtzsMP#(_)l0|C{Li?}W?=-yU}+uvq>|BM!#DQq*Qx$4 zIv#}Jr=g4vf}wZqF{A0+%VX8UKnItZR>xQm=! z;#*fPzhaj5(7}CcS4_WR^r*NFU*Zt_bXm@={bP2&mPb#F`{7F*!h3=p?ET1~emh^V z$4s=!mpFvKvnJnVV*j^xJ75;r$Co$+@6nOv zAGD7B%9l8VjI-Fy;$ygSG+&TM>C?~TNH!%En^(oC*{}CZ&IE9@BemS zGUkM!y;!`Jc7N~L+jjc^t@0!e;qMV{Gwiilb?Qa4774XhJGE-`!eQ4U*Zt{OugvsK{GlGdPfoD8N4^n_mZn#9MpgHUax5k((X^z z^3iRNKCu6L?|qrfwT@qzIel(lwolLSohutxeRz4FkaLmhpT|{Ck@s;nT!wS!DwB0a zQEZ4&f{JO(^{P{a#`DpbM+pO>dvyRcdD~m!rZ~kB)2}-o2r!aQ5gv z9)h(v_YHzC-)$6bXuY`b`5C>#^8XC2ZX$2+%odBX7U$PNFsrO~_{M+!D4cV;)IkW= z;v8Py1?cpBZp}~iqt|Zi9aau4t6n5;@N|`au$H@LKtGnxoR_<0!Pe2ge)SQa7Tt>k z!G(*T$(?vXn`p%M(vSSc=;BK{B@`b%U1Z(lVVGtaDK3GWY(%l2v#gN5&()n-u%d{bxKm2N%}q9gV8j+e3I-e2*Ip7;tMk#Ru#Z{da9o55ZcM>Bgu=ve7_ z`QVM=l8fc7Ce%S%ysjbNM7nr-;f#0MM7zi?(}{O&U*5A*hy0I%V6=~@{(Z-AW8ZrU zz4!0oMXeWu6q`XXuVUM9-MEhmE4%dYVvr+><3?hzur7DbxO&lzTML3BisOUhCJ1gE zIXk!A9<8HG)^_(I%JX)Pg5bX9SLEJnxNFp)k<`Hw@?FoTgNqif8u-Xjy`$Rgd-%Rf zp2!|5IovMKynNuyzR?HWdib75e&u;ju=UjK3rn}{88s2>vV^^ay(b9zJ#%AWm-ahF zNa7*V6+QTFhmEzO+gtuoSpBrLiV)?j zMNjyH;N<+4QKJtQ7d9-Cp6_*5d8bwF^P8b|(yC5ZCQ--JeVRwNy;fDIGf85Q5UeFL zL%QM_1lt|eAsVvxgu+wZdxz~0xw^dV&h6uh96Q%NADM&`Wri5u~*w zU8e?O@XDT1&p#Viow->0vFk16-SBp=#JR6knXYonn-)LyjPCiV@xT^e_z1~GQZ1lu zH)RlX{GfYu?;i^X7PgZSJoBdV#qvJRFG(Gyg?{KBVYF(Kxm}}6|LB#At`NQ=1Z%+x z`rH7BbI<4$oq5@XxizOs9S2`s{@_ck^V`apvlc9^&nAF4|Bw#RtN{~plXFrBAy^Be zsn0)wsIzbLsA_Rl?u%Q+OZGUc{Bn68=QnU7X~ARc=}8cDAG&4q=x>X2{az7IB!s6$ zPiVwW4ea{88Sz zU-{BMTjoDQt4NEVG|77`+bk&Tf7Q0(4@-J_2-ZUU>mGX4(eI%7g{@C&7A~FNBdqS# zu>8|2Tjslnb-nsL#IpxCiUyW{TNrtW@D)WZ#~??VyeB-gL)2`~DTPP-_V8kmBZ?zU zR_kMtWMNOL@mK)Ysdd|K}{>uI)@8b;a5DmX$N^V&XL69f1U$OVd zdqq2K8QrtxlH5sq_hJN-Ft+tm1rjdts9?JB3HQ42L4}siA-x!IX8zj$);k!e(Xi^yPYWMJnn`Op%xpCO! z&ld9Li{@AQL|L>XJJaXqKs;M^Yt<_k^$5S1AU!99rzJCWx<55eEibCmJ3Jlv)uQ_g zm;Qz~cr;H;wfI?ju-_544xBWpM|jaWQU@bQ3z@8I)q*1%=Z1dUEqv=txmR0#M|5Y4 zmiaHF4%R}poc1X=ZtxMgV{Y0d{Bd`=gJcA2NmgTalc&0kZqA)`WykR5ALMSL{x?y> zL$UTE{UELKbe{ukwP?vRxiMqfgteAS&%bU~eY?Dma|YOlwdBsiamh9t=H zmL-*xWth($BcepI6scrO%AT^%|9Q@H&*#3+=QH#Bo7d}``@PTe{+#8W^E~hKoO{nB zU)nGt^-wvt-O8Vx=SLHwM(?~#`W}b<2Wn+U-g;p~tH-Okn{M@-|5`V*5U52n*nfY9 z5j$&N?Y>ifs^g5MXI_0o-qLY3L!H=)f>vJS9UVqI(BKC5%1SRerzgnxdrZUq0msgd($Em`j9kh7m9r)VSs}kJC-FBvxyot&H1Zw5M*AcXL zM~w2S>6OxY#5Z$y-7_XnzQ>`}wxxxUiBdzGyC1(YujTM(DKY`^3q;$ojDCyjhBp;Y zaQpUcYRz-zyJm!2b5p(g(#I=)T$tqkl}uI?XD!TBYo@6;8XQmCnbFLxQJWAj2XRK> zyisaf*7MGU(>J=OLevhJQ8+)Wd85kL{>a(-KwWq2leAWY8HMu$=Z#W(n*8cKb8jWL zcpIt}%qSe~I1A{_vxL%aslmsb`Y%ym;rzf64r7}3SdLxg-rH@d(L<8mM(s|!WsW_raFp23f8V-W=_G4&-Xz7ybR?Cc zAK-T>!bZCTzEx5O9{F_X@{db#wAR%UAA!EzMxS^sZrQd$!($N0ED)_!nQ3KGcK%wA z_a>||ki8(9cHB!(PJZdk^BfVj5XgfNO<7!<^-pdw;31AcT8LnGk*ox=D7Ep;w4A4Z zo0&opdYfNG_9N>=t<|QSot1K?M+V0%t+kp}hP56Xci_UZS2ujdF?}m)fCzidIWJ>o z%Kep>E@Ol(nda}3QadmzqH44+o1C$K1V^2%buE@*ubp{>9GEw>Ik&@>1Z5D~-+d+D zr83)BUv}%%+WL7!AtGA#ioR@_Vku`EUTU78zi&WwhnRz1#skm2o06$6Ye8{peu4o4 zA|5vS>uG(L{rdXVIkcN$AuvXYu}r1jEp}+>oX`~ za*nm@pL&uIwuE}xw+3jHXxH+o8<#D7_Ilk{wj@B%K=OCxc$D1pN%hnkzxBwWy=~hj zg0-^|JQ9b*-=JGgmt>cCFO^0K_!1kD)A;%?>xY~BPY@8`uWaFD+?Wn97P4iUD;X}RjZoaxuK%=wMW z0Q+IbDbZg2baVfdm6Kmf(KZnykYLqp^wz!=Q$N3OFy*X%9>H&6{L;2?n^(NMY|PBB zQva4G7?}q+`YeW{HZ+-$(z3=|IXnkZf~>|K?Uj!$%DMl#cUrhnWgr3>4n4sWBT_5x z*q*bC5S9d3ja|kM<*!L?`g>1)>&2S2mX?LS;RpSWfjZuxT3X}IM`-^nF7!f$sv)_K z*VjrN)%VX2y^<`$fgbWj%7za6EJR+XL!=cSsy8(neauHJyt6PwoJJs;R`jC>c~obW z{h;HZM6Lxf_Uxa!ycRcd#?7~U#8;WLpa4lMA}%C|Nw+?)%gB0pq|@=Q|?i%q$+7V~$Pa8GjyjwklT5>-w#P^lDd)56K@m|x*-HLav(TK6j z2%*uUCHLb(d|#5NgT&xDel`6=dmjjky0@J@>Q2pK8S4 zlWT-fOYT!&(S4x`$|neUr!_2l}dLT&wN`W zYGl?7p_bf_3-NuW4wZ=4h-*)`cOPo{ibiC8UNeMRaz8G__o*ETmutii`S-hY#<)i0 zU#J3dX4yVW^cDnW+RPg zGpJSwwd8(Wi0>IIRgSA4aCHLb(d|#>b&inM2nOl0$H_wAA zXvEYrgwSYTOW%(R@qOCIX;e)kuKz*%L8Tc$0ZA+^@@3S!=lQ-`(79R~kCKXvc!^H! zqjtz|ftJ2+%D5u5Pa`TlGKAZq5xTyhCHGA`!krz5%eX)-S08NE2<{V0OW!wrb;qkC zHKH^1?zBPWT5+v(zk`T@-sBRxTSY8s)RxkihY+&9ns(Pis3;`FTEZeFOP zM)3GSExB*TRsB{+G-5T4L>he>!DH0c;`?Uo(r715dh3uzJB@ISka-Yj$$c|FdR!W> z5x1Rb&vQ^Cc&?$A+&6Qu``LOL(V|ScyDM#`M(}(_ExB*z`STPR)g3UBiQz#mfSZs@$^cz z2ugX0m%Gz`+Ncq1Ur|f$8@szwKL@4K=(&(})(E!Ys3rG}ZQo25fy-zjUSxF z^Md{=WN2Tj5$wZJi@Ye^7r#qUHMR)!x4p~0v{s#uXasWx)ROzcC6sFFTZI2z#q<5B zMlhSOwfH{uu4Wkqv8YD1TvNvIqj6+20xg4<`%tS~sY!fj%foSzGFZ#hknhu5FG0)0 zrmyn0RI#*7FYtY0wL$NO&GV?xwo0V0Sj+S@-zR@g7J>WfN3!wenZKG}+0rsklkY19 zqaU$to6)1ukhFvkvYg(W(M

LcO`Tt)@r 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

${)856IrfN$*kX9v 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

6%*8XV4t^KTi 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

%*{y)-eC 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 RT!FYR6;X@laTIKl{{fs@F-HIZ literal 1316584 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�O5 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%0De{YD5w`<8>x9eyE*O_R=-y5Rz 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%0DZndgcB!1X^|ZyuDX<2op;xW=*T#Qmt>s2j%+( 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

_v#G+KGBp2II-l;J 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

0${o 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¥yJ+GvjV8zP$0~L-8 zuQIOeV|Lq&$>Yupv3JZS`#^>JP^yNc>|;mgNpbH}b?N*jvJd(v^XC@&UO_VMVSm(5h;8;kpO-T1@x+g&>Vl=fGYeMB|wZH~;+Q=GTm z{FOVly9)Qb8i~@HR`xM^(+cy`UIRt@JbziJa6~y%$Mf*|lGLpob3Uy|NqEa$UlOtd zAL_&sF4wTA{8e0rlV*8Z^-?8);&V_q1C-PLQyyN?IPkNRW~coXDOMx@3Kb40s;vooQNgQcc=(N~1zF~s%U6AA7pM8dr*J?8=Ksp|o4Sl0Z1uW1 z?~@AlZTZFs*ntoA`+Y9gEvfY-zuBdX;M}6tyR%5`Xa|6jyKU&5N*SAaw1m-kLpAH{ zcs~RCW58zYkMAb$>G(}AYo)XgRJdL(BJIPc<7~Hb>?xmbg4Lbo4_^y1NYipfin5Q@ zQ!>V7r; zGem9J&ckaUGyi(mth~69c-WENr~-vEKn02%;NcbVk-_!Ay}3%m8RvS#l? z#q1+;{S{~wQM8IAAlDHp`)KJ@HNKpl$2vb_EJr&)6s;)??UT#cs%4do#U)~_H{bU& zus>u=wbFZ7TY6cw7LeLe;d=F!v=90hRy)~8Y{)*a1sPtwUfIXJvq$3|E*)%tA?FWN zIHJ57lCqC^Kd&=pxBT7yQN|x=2Y}LfMr9vwm_^Np+lq*DQ{4QOo0D-B?qwrg`|x5> zWgq5e6U>{h*A<228@Zrx9kIG>&tFmY(a_vw9$C>rEGp;L&)u=zwGTvjnpXDlNBWEA z-Ai4?k3Ug-jtU2q^Xd-nTYts9^;ZTe+=p6vkcU^q&nuLH-VHJi+MVxO5v^$%1ypn~`Q<$9+F#xm~S zZ1y{{#$HVMU7x}M744)8$n{rh%^mAzn1hexwZENC^9R@gqN4X_3dohY%0AYwscp>b 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
  • VLL5IEF?-O#1Q)WNVL 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 diff --git a/resources/meshes/builder_premium_platform.stl b/resources/meshes/builder_premium_platform.stl index b315d4b6d4720b7dc57123ae214a0f5c286bc55f..8003f83f7e081e54f23d597937c623067914ed38 100644 GIT binary patch literal 943634 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

    ix;b0pB^KQ=@2%4_3)TaBR_VpVqW&eB(I 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%0Do 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 literal 1398881 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 W|Nqaw{>%UTzyIscfBWm-{_@{lsQcUi diff --git a/resources/meshes/deltacomb.stl b/resources/meshes/deltacomb.stl index 7be5c33fd7a927a511028e46509238e637a929ae..b3faa873fe849947e83994f3e6297952f25d3398 100644 GIT binary patch literal 946084 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νidVR<FqnMp0$A2;O*g#S6_o7=!#q zP4ry$GDtL7rjK@KhA@}lt^SX&>-!U~amo2SBxI3EvviY=>16uYsrA!VS{A1(02)Vs!XzANe&1y^mt43|nTFLtFg` zPY7pF52j*^9kx4hoUWZei`{Uhe?(#yo86;GLxV?BGT+!<)Zc66{8}LMomNExE4`xI zT4pSQkLquLsN8I4wAZuid@A#rEa;4@w)-=YuAJSsw#+yIg!s&4Dn^@6S(U^AXxYi| z^uHfAskVAaPjLy&mQ#E1JP_XSYVKDUwM@lmTj7+)&MhrtL8(HKXxM8Rdoy#K!P{EK z_Mjeer^r-1*YfP@I1BOS?#$5V;{ApX@hlFGl-J%ni!9lDXRXJ}Ks=4NchzuT%~XuG z__ZpDoyXPlvOX#wInx3DMf>N^tXn(H?)%=$dZVuP4REb*$-f1R(Z}`=5PjnGK_D6OTM|C(dfu!H%=;!sC%6=s_M)T$1n@ zycvkG@T_tT=0v7qG?&nEo`>uXhU|)+rOB(TUe^DzW|-{i`f+G|Z}*{QJ7bTG$M~pU zJo9wlw*KtQKCd{^CvLVk^>(jqw=*^na|u&1nmung&UX05{T#ktilQDiUrFC`*||=R z^9y|AzIJtCw>o5(sTdu84LI4W>eXo6B(en~igUQv_?Mtp!%RIAGxc|nE1RiBer%?e z658CZa@7lnT|oSZ^_-~~ZF85(ZY_kn>)p7vughWkR*rJZ_OOoA@Od|~2MFmwrebv1 zC*aX1He_Vo)jcu;_U-IxhR>P&-o$b4gqIsT^b30Qpx*c`{4`Vl=t3iRKd%Qk) z^Sm7WVV)4A70nt``hacg;mrt$aX`S!Ki;wAy^3YDd0WsPYv@we zuN7x1_K{<8(3Ho!SpA!0Js*%YB*Hskdlw)r$~$LR%>nTv*7IzfqnL`(_Ig0i=Z)%Z z^-6WT(tQbi&Yq@hCo4Q`zpFhsyY5!69S~0g!BmV6dvCoG_U%t&W_SSz^8zKZWG^4& zcg^-(=POSw;@!EBE2d&J*AL#m7Y~k%*nM#6Hp~p{hk?B&vo~eOsRqQrod=gf?-ge% zMzh}r_)o0e*IoAR=S$zhxz_ARq!oD=Znw4Cx>wZc>(-wA`O>P`^)VHr!~6D?n|j7C ze&5pT4QcN*>tyuWi!Jup98^EJfDa6iJPF!SO(ohLyU9YpPL3lPC~pRcbvsvIDAS7a7@QV-q-!FM#Gl70-t^FS~aqs_id=aS+$ zJ+}OGL<6ii?sfMr!;8b^{z;L2Ua>DM$GIc=l2;af&*x#LW-3OT-*Y{49zxWGC5XCk z3(g-Fk3q(S)mCK5A~2|2Ey)<`%?08yjB}=9w6&X#+OBxpcSWZ`8HaG1ko~#%h?g9* zl$77Kw|$Cu3y33#8oCX#%T$aun?fzsMz6b<2H%F`FpF}F+FnFvHH-PAlGuA$cQ5nt zN^Uy#3{1sn+tuit_|?|l@g~)F#2&>MG^v*IZXb0rdP4#650~D^BwtHaY+LX6x|?^z zen35#iqT>3Nms7E);+zeVf=0E0N8GtPpsin>bh0ey6ty2jE_X54W?pr*#2sL_h_sy z-i#K&n^E4w*P-HQp6)+W}`L!F)IH&tZrgZ)+;}6Vm$DT;b z-11U+e~0{A|Fp~w&)x2yUY-1TMyb@w6Mq6Am?T?yx*H`cS zq)1uF6?;SbVtHETmB-5YGRE=B9H%D`Rq!J4dmxyK(d?(paUQMyKt{JSLnE6P_KEN9 znwt5)e-}+`#qQqT+Db|6eXW+NA-ra{!JhhBtT^U1TUwFV3|>ndrv=uh->~Ym0D`F) z9bRkK!vpP?50#Tx5Fx2%&lDEPOr?Dd_9e}MkT_UO#bbg;0qoNdyXN{%dt1nG_~14%i&ptvZUx7A2XW%gt?b}R9CxN- zwAn^#sd^*+&TPDDT!YrVrbTMzp^sDjdaz`$#5m4dh`{$OPTTo0UojPj zNXeZ1@!de!t3UZ&J{$0hI>)&dh$s;GAiGS(X!iK;I4|P8XsgUL?+kcYPYDl+P*LpW zE`CX>9xj&o!Lg@;QoRR6!#mTwEkH08qa{N3Esu8bTLJ4i;*3^=$AvTSwqVgg#a4-9 zi&`{M_0KR6aYly#@c|G_#b}N>3SalTdPRPN$A!O+=0q&Ysn{X%?^;w;wNL!)+g_1B zpYIyK>qJh3sTj@taHo%&cR^cS4!Pn89#(Ua3~MW$eGvQ1ZG^Vk3b|q`Mu(%B&-%~s z*lRmqj`Vx7Z=CNYIcg-|c*0tF=xedI>jp+XZq_%>RE&OV-O*_3k@5aKj~Q-A7q8lX z3q)Rcx^LX{h2W;-H=;W<^Jb$Fh_`V@3Mzfw9n(D)kd9Chu zB7?Aga1J9(x2@XnSMZ`LEqH@v-gM>WhNE&@T5r{$yNe(my|25o9GS@&ZE2n10==_u zEuvcFS&-4NtrA-&`7iH9Q|%)xN4PWE(psvq6Z^PBn+=MkWett+8Gvt%rhQgCbHdQO z!CSnyu8#F_Z?Eu5><_GiOvPwEGhj9NsJA<+{?6EhHA5r(Ta2F4p?Kz1Z?sKh4G|uF ztJQL|&S%61_6px$v37y)vS0%_xu*N%PB(@xnL9cj`ue z-sRgmzQx17q|>0-L?EhRf5lXcmh}5AHU@7qW*i#qEv>u0!7=Q@&BL4YAjh&aZ*RI= zI*Ywe!$&^L5Nlc6$q2%BGD2m0AC;1}*!w(=z0c1;FcqV1@1s11m+uo_F(Q_67JE_l zjMZS|$!NvYrhY%~*?uzGx|pQp<^3=qrjCteEJvR+6{F1$i%Q8}cw8I|kBeh5mzc*z z8MS|W0diu`*!^bOqSoV4AO<0RRI_12Jf>oF*b~CKwN>2ClbU;LP!Aq!7OzHr z*J9desip$qPHgU_pdL)cXdau6^T2ZhB1`XoHwL?mP<))s)t6-!xw@Y(OP7jXmif@t zg95qw`Pl)HviH6l!%5g>Dl3UdrSa3b{ikkExz)Ok@MKlvQt?U1JjCkxV+jyXb{pYc z4g^y%I$V#hIuFV?;q{4MkJhy)mC`=E_VJns?=ZN*>4%jQ5mx=R)>cSHo6mkN)u8&H zc&kg^Y;PdE6Qd0J9@i;mU)H!(K*iHdY^c;OWfoh!hFS4jJA7fZL1>CW^9Kx z;}AxaX)|Qx*jYsS+4LVeqJDwKiqWS3P$^0It53Y_nT*&Ks5##b^4iC% z9sKWJ>=Vxq#3Serred`DtkE%ebobNoe7J=?fYq62PWIi$ErLjId!CM;#Z6~jAef5L z;hB2Rftw>8X1A0VHt`C#{~De7+!B9(&UO;_{Bk(@=3Xz@w?7U<77%hz%~XtL`w7?@ z^gJBIGHo1!y7{GH0sVXgkH7dm(w z;F){W?!IyJLMgvxezt|5`KnePnXk9=+Elxk@zB-%LR5@qubzlUkI3@w;8O1M7=xzg zl%BHN4;i&~L$5o__sXyJHVi7|o&tiY7#;5Oh36)DJ8pTxb@5J$?_T)+o9|&ACqJ~J zuzYbxU_>z$qxr7JaZbadby0Y<#w(sUdl+WD8hg)z7WvtXj0GRojQ;`sIrkJxOn6S* z^F&6*+9@^Tn6E-|#c1wX$C;2_HnMf`10Lc#$9b%AB+RaZ4@S$BN(5tY#DcPsu1g=l zj;U`b+9soUY$5_Nbg9k$EE&HIrQ)0&6k(J3;p}|Hj>zZGzHSGCsTj?7%Z`&>`w9dS zXcB({{lT}(j1D6@0Z{{panQ;z6{Gnzu;cvRqrcaxLbHrlf9@OFh1)4iq&>XL`1hLr zUc=T+GddjT8)qus!}Fa3UMS#oe_{9?5KD5l{V=Vr>~SrvtJ>x7e(e1LOIATxj!-e$ z(z-)Fj?;V>*q<{(e#?(FTau0)*xKy(G-rab$-64(pTf;MHK)yQic7E8f|U zoMzv3#VOdNZ~QhOo=BUMo{UQP4UV3U-aEacAKMLnqrgMI2EFO z<3p!GlQE~?LZcGy%rABO>FBcuyWoB8cMTnH3sbYUhow^17UP}N0 zJ&||sj9J-?V5(+C&O|Rf-z|8<+ZBla!Yke%^S-Lh_29Bk-Ty~)#@_aR(n z%)C?4OC|0P`U5XB<3~}di5;q^a}Fb>c0Lt-?z7f@|HGmYJPx8%(+jqq&pC{+J4@}4 zs^D=Ed-j!WOV#2WM%Z1ZzUOSv7-yT2xSii$zZT~(f^S$I=X=~E?tV&Tmvb0lX_Z}( z#PX2Dd$wOWpZnZ;Q{J415vi!h^=RD=X>+ofiqR&O8t)GGJ@IdVC|B~6-0>kfj4-Lx z``seoQ51*@qi@UR97dQ_>aFu!@OU5d;okQn>72ueutS03w9tGSmQQ$#W<`Ca?2JX$Zzirjqu#TX)nxO^JrI}$#8zdd)Y0#gqhW`9}$S+ed+VtnT zZ(joa;2CHXTi`az^n+4EJN?Rz)lSG-^W8u!ghnwR5KP5ryNA>L?k_lPM{qvBgp(Kl zmYueR%FgG?BL|4CIG^tUf~gqIyrE;k&BVjF%NT>RGb6Zl`3Avpo&X{T2;3)zdXUj! z9v86Bt#M%F65M{c){0VgyU~$dzuo(2&5r|7q{65rC4gWmMss8+?2r(Pr6#N_?g4^N zcecBi-?crw@<5bI&!SW^6{Ew}3CovN^?pE9lJ$^8+tEweEyjqPKkfB^o;mM?qoqF( zm1F_VoJ_@NJ2U7F{oxu<#!Iz*Cn8c}x4=?fd$lM1Y0_5quEjc@oN!hw6(?=jk6BhEJ5XD z$~te{?;_6VQp6dZj`IgoG1}f>={WC}7#taS_o1bW8~1hVjZe$m^~pVcdD$X5tX*om zZ*b(#vWJ#l7VYaY6{F2cPy4(yY#Bztrr{ez3^8etGY8-4@@W!&iZV~euH4bXYu~7E zh>FpC*XuZM!;)hX>@prk5AqqA#{{3Lp-Y7&NAGs!+~+YfFcqVDtl+&G?v^g#rl>6D zUEW#PO_8*y-7RVBo&%x?Zlhknn$A>=<`ot1wqeeFXVU4GEaWjY&7&1XMc$v-hxl3WOQoRFGR&?z5{Zc*|Dda^?&c< zaqj%BM^L=q_cvRkx!8E<;^J~i1M|MlO}GS9s%mKEuZB>gAS+8?jxd)aMtYgupB z@*0bniqT=6Fe1gqEK;o8k=PxwX<~(krIiOGEXVI>LfbFNcgN{}@sc+Zo-gDiEYS)^ zeK;ebJ_puEuj)I)zk9RqY6tKQ5Pbv0?4kdp5_C9rW)$(;#Ba3l;2is1L4-Zst_7k? zfZ&{D2(3ps31Ig(gw{N-PR3hhcXoa!-h2+cgsiw@A?Gj;tDmk0RpCX@{KMJ1ZIQl| zEf=Fp=85K5UKwjzr5%x!-O{Usb*=FE8P1;?B2(6q;(l>Y3+|^w+@Kk z9$Df0PB2}Xs3$@j!q`M#X65F}NP~V*?-d>tSzo zC5PL`zAKNKbuM~414J?^Mk|kQZTiP|R&C?o4%)gcIb3%8t~`DR;=KxrNJhnIY^Gwgy%W|MuH2SYu~WA^9?34;FSM$$ zhUU5XTcXwPpBmT>-nf2q?3q?iM*h2`Z%B{BYogh(>Fl%MuYvJR=^K|wpIZ+~d3kKx zcWo<1B%@-q)_f@a_oTRn1G62FB-1 z{v%qiRtsNi!FTWB`}VVMTw8n9svFbc{VarFs_Wjq5PhZ2z(D`;@#w1;7pq!m(M9m! z97eFcpW~D+F}}f?@qgB9ekzP$DvQmd>&JrI`_+>EmQpbfrrJOHTvR+(D5B5dVRMrq znCjxK=c8YAZWJKCXx?(3Af&CB2U8W^e?DpvwH&8*$9T=wwBRbO)0gO&NFQpDuc$8$@?RE!pnS>h>15t%N-WNk<4n7C zTyCFp4kJv%uWdE4K#|-r$Oxti$B#PKs8B8s&S8XE4*at}7{OE`mDxjX4P-a3?pblp zVMNFSmD8+yxm-!)97ZhYRxmRwMPK^oagZKlM2ITzZ1vB2n8z&1VT47mQ^XY&?_ALD z`jcp{tY92e@oUHke&2#PSj($sPuo6z{@)QyWq!Pr$8(FjXCM6fJs-h2j1X@<;zKMb z)gOzp=RZ8kM{o`!#NSfqRW$=d{!h;b^#iti5ll-3*Iu$X(Vr~7i=A6Tb@H%+;oB#29P)fxJrV5{gN7Z^I zclKcfQ?Q!nAewq}IwEwTxgY^Y*5QF?T(Ixk~=RlE_ry*{9ZfuVw%E((C?w#XOjb z=PpZ7ZhYxND9xujTHf2&OVEfY$uT{I}*Nt2tAd zMnDlt{m-^yD$^+b6Tvx*XjQ*h=ISoj2earqW5?yrK8#?h@NF%ZigOrYZ!`W`Dn>9B z-}O39q~V_2F~~WLu$LXmV{`n`TuEdEQ<-k!pQYj)MzA*l$LW)EPp<584kN~FNXx9h z_uoP5UfuJJ+)^=uslqK+vzVsb;D_m>st97c>d|3ftAx|IQ9*qX+*G5PZH}Hh{88eo zNA>O6)(XJU{%%}yzL*A=d4kIj5thUt+9}KBgKV#$qnSD5i5qjTlJevMI zsLppo-p>{uoWqEpM{J2+J>tW}jk*0%{q6St9RMSkD(ug4S(n#qZ5r0mM{o`!#Al|} z&vCB0l)m82CikKjv*Mh?2)p)sl;Dr@8UC($Q9=>g7=T%K4%0|rEK}e*I8(( zz8Ta%R}wjg5zigk5&fXO?JV29_-sw(lojV3M$|g6Guo~0%p~>T97cri+w*FY73UmA zgl_Kh0O$|SVFbT+#J#b*+utWj4{{D8c(3g^Bmeb7?hMDev?*PdMdx3x_O#apel)ao zpUC%P?tH~mjJB8T|CAEWVMJIHmsj1uBCcv{Rw}UA+rx7n96*_D`LzW!~OB`cLY;~UsTmvef2#=?rw>BFx6IXZFEhCMFFDY{S%Y&U@D8TuB9@$ zlA1FQrdl6(Cso9_`>*rcN~DBy7$LgCiKjFoyyFaC^kZ&47{OHb-dTCf+t)R>9*kfr zdpRAh$KOlERI*CgiwMX0&%3K~>%lpUkhSZpT1$i0ZE=4Qzf{szj9@BVi43vv*;{k# z!3d@bzs=}L7z8WzcjZVoWlrNyYfbD+hEj+lrVy+bnRLY@R&Jec5clX!Bnz#MQ_Ls z5SZcoQvIC=Q>}erPqfnhc>&@_FEzKVm@2 zZ}J!3Au|>4wXw5=ZEZi;)(XZ}VbP!Q?$y$&S7U_bh>SAY(ki>PhonR*LxTlh@$Nmd zis$?Y{{<39vDUVGT>Gbe-BxsYv78%ke8IPLv9#*$7-2bLQ^06TtF1x7ef8a+ z4_5Ityf^RN1Z$KJegA29-LWZ=IPjs*&(f+Hy6d+(2279cD~dWzAO)*gHTkx3Ilbl`sv-<*({OmY(LrbPQw z`j*hXD-T8_qhhr3n1yJ!M}F4`tIsUkldyANn;m-+avl^aODhjS91RebBUFsGwDKtQ zQvJxi@WpyPe6g;2DSwW6Z~f}Q{5cJ7D(R1jO+^aiWc`*FjE_#^>qVZQRz9*E{$81i z(LGD&&uM<4c<{FGEkxT~97Kekng3EkZUMFI7ZZyE9h-gEdY}hA^q?;#ZFc;ViqTq+ zQEfl+noQQ0NVW1^N{l;HAu)aZ`uGnwI637@R`B^*T6s)}e(3$Q@ws@}C%&y?Ir3YK z{>-_Q=yb3`qR-^JU`;g#QCyd-(&)f7Po?FUB^XP%rBxDF1Catrk(t4AWE?PB(s_1d z>t^*>u=UC1nB}tK5A83QQ|PxMzK^X+JyLUK1^4)u&r8jDae!$|GCMt9=fN4h{4*z0 zF}ltpsX2LigWh9LrkATiWzq{fv;5mZ&SAui&INPwBA+}``Oey_HZ|~h za1JAmA4th@n_F8+Kj>dpoDocQ=c$yO<`!wi$o(67&S6C7J}Ei#bG2lZ+c(Kwqd12V z{SOt$DLnPEpsi+qR=k##iV;j@vy#egZn4mVoWls4uM`nKbJpKq$y&=fj0lf&=D`T2 z>Ybh6A6?30`HZ)6YtA{0;29&2gOrL9Ocl8zf6j|f}48b{! zxMqd(fAHWOM%av@H7{B;XURv2^d)0(y5k&1@Vt^&3mJnViDv0A{l$Vgf1Y{PudR*( zvzhp?=;OJq%T$aO2`v#ssBxTnKP{-KoU-DKU@DQfPjamj=A8A&xDn?(YqHCRcfoH%g^x(iM&!B-!o}`m%~@p5Gi3QMyG!A zM`9W*ZbtgIY70K=Jb&A;Rv1-Tan4~xyF=#_*6PqST=Dk&EoJZc2ZE_uRXLxSm21Ot zOSL!We^{sFKM+h+bKJQ^O0J#E$fKj?w>WnYeG)DeQ;n)}E+MgbRIbXdFSsP%Z&{1K zLCv`yOts?h*~Ilf)lEzvEcd(9H&?6IvSZykuyGF|m}>FqKN8pEyEBo6J5qS~JJqW0 z7vCTBbu7$-sk%=7Bk{)*X2WuPZ~5FEvb#Ag$8O1g_%=zEFMp zOvUKBU!>(sseE@(bKKD9&WW7Ei19C{<(U7>JPslyj9{vIozrseO%b2#Qu7);KlSHC z=?~6f#Fb}?<>dM0G%mt}5lmJ1Y_Xi{H*^ko7(#e(4kLCwQ!FO|-#c0=MsN-z&SezK z$a|(nCiB@=M$ebHI0dT?CRW;FjFy)?^BE9 z3|w@1P^zqpBXgyM5lprB=|Z%g=anlw?=ltd)bM_A$)eo0;v7bVcYS}=?6pYwgn2Mp z_IBs~svFef_w}mV7D?oKFqQ1>@@AhC-M-8ngN$G*+1usKaGiF2khHCsD!i)o`?)|a z5AG@E=Ur1U=TfJhK|Ka{`a1V6oDobVJA*tO{oIttbNieTOr<*mvjZ5os#|V77{OGs zGsxqST4d{N>kmdSmFx`a%xfOhV@Uotl9r08!l$C~&(us>bEe|cQl1>j_~2486|bmR z2k)tqD~X)Li16zC>3!w>xkTiOc`*8xQs)!3epFi{$9bvPUw#HDYJCGsqt@_Ga|6O_Y9=-G+Q*jCH)*w7nOMftesj`P3OyqfP$>Wk0=Nv}tz4SvOPw&hK&SAuk zj^8EnblXQSwaeX?a1JBvRz&M@`_WFh(#|LvWdu|8yK+w=?yVFXhR|9NL3?`E4dKa60i6-Rd@@@~(y zFVupL5ll6*^!9|rrPDrtjx;}Pe|f~oRNuajH8pppW&~5s%)gQPBd>k&rh&LK zRn>>r(fIh{w`P9LWt?*kBiig(Pg25~A4V|M&+&C6yR7+P1XJC-Vl9mitB3RlBbe&F z#;bGZF2qG9%@5}=qTQi2G-_G%!w9BoRb>s$46ONK1XI-cF%y9n7DfM6kQ;n*! zn&!ks-yX~Db4D=L=tDV)ZJ(N@Q?mnP%1_+Rpsi-6O($!g1KZ%%W1h%!U(4Ns!bvhZL%srSPzO^aSkJ9KE6Eh zX92UnVg%`VUDDP2pJ73UmA zJoDhPgv4nH?-``#ykn6S=Sbf#d@A1IzyoGlpWN1EDn{$-Gb`Y6Tck_PmkT{sQ+RL= zBktO^HF5fvsfkDYJAe-#xR70}b8XZmj9@BRujHk!)}!{X)93$h&M2(VS#i!`gsfL# zo1)pN_xT9UVT7zcd3H-Hk5!m|MW-4*f^!%ltItTh=gw>00<|mn2+m=ItUh@bTW?Og zIPa!wuJaL`!w6YR^6bc@zq^(y<0CkS5we!NjF`+?s!wX1onL*@O20oihY?p)-jdj~ z^FykK@R6B;5lp44kMSro<)%7WKi!aSYt;KKG=~v|j%`jvj=(CgtBmtfyZ>FQ^Yv9~ z{~f_pvijuJW7EAiq(55o4(!CU;+(?>S$*=_s{Gk1OQK)*TI``7oWqDszimjo3%kWu z{_IougG=7&uRFMl7RGAxjPvG^RS6fn$sfnv)oA0Tm5F*K=LUMUBj+x8@(^a^e#d?d-5Y|K z_dEt|bcr6%zN>z)!3z!Da_eqG8^Dq$7@bTd@@n5zb`SMy7$1yS?t-wjPY}FvT3UG& z0U`_W;ss$j@>`6ywDLe~@{AeK*$TpTVe(tNzq0R&K>YKJ&jUmdaM-nVVON|w-w}q^dJO%mKYSZDi%46s^zoj-(%QQ75BHB3Db^zL>F)OzT8{J- zqj@wt4s`VK*Px?czUcB=Y>UBlY6%OE+h4ugqAmdO$El&QrB3r~rebv1_9F&F?;~nC zzzC+Y@7lW8^xp544m9qSDizN0CKdL%=X9 z%y7-~JMOFS`!VUNo*@KN4XbkzJjw+#+%;*A+vIcgU&1_?%FcLdTPiMI7a*n%la))@MhfCLE9!zC*(iv_Me10?ye2dr#LL`pQ2KHTN21X>KVzkQc z99SmA0~?m!r&DtpPEPgvIdX4m&e*c4e*fEd?ep?0nt0m+L^3LAAN#It_4}_wV{?P~ zigPN>ESR(YL_wd2eODd@;1_33fJjCqziZ!>$FDv2d*A2Um*}}qYRK)w=Qel+R-dx| zyqk=Q(b`t`)!Q1mweywk>HM|am+F0;nAz+@->bp{Z-1RQbIVk;TcpuLr@l^HyVATZ zTvmT;q%Y!gieCe!V)WjXn-ia9E81~-yz{ZwAc&~LBZ~XLzH3|k4F9`dKdv!&l2J+f z*mrHKoEHbi-!J@1M(JXw7O+lm8MKHc_SH>vA0zE{7JAOw3H1n6>xF^wV@(J9zFs&d z8A5#hIL@HH4c)REbggBZ3A4D67PYj>?zR0Jx;L*?gyjeoqb;rd@hjHzHfwdQWqr13 z!woIkWks|>ss6J;5y_~eB=%iPl~Ls7_=gXd@t&*NrzTtM9PU^=r|Gb^31{!sz9mnd z_0HfzFUP-ny^MFP-7O3MPG#0Y7l58V9OwzYho&Y@`~U)ytwDtDHf{DL-kP=69}~A7 z-=EkrT276KUt4QmqJ2-X<&+t&L{lgJ#-sPeo5E)eQ!%>Wl?M`EY+U9461*X2ZY0(#qpDAf^>ogyjeo zqb;pGzQoLPA+WzrCqdi6VEcNGv>8tWmEo4kacm!YO{y zZw+tF|4ZURJdrrz@2|uYN!M3WykD^vG8LoW|Mo!QGu$)CFTsmBW`z##eeCaKlIiQD zwyc#yoNCNG^%2ucq{MQptxP9qzoc#T)Cc>$rz)q#CBjkh?Y}0rrZ4qRCL=E#N%TUb zX_41A{&OPn#45Q@6xr=GVZT?sN?N?RL{}jyMh_TqBrzXRuGK?RP%2-pq*P{M#=T}~ z?en1KKEiUWwuZJ}(t0e!xnLnq6jF0rIVFep@b+DKjKSIC4CWI-B%@-q@+kR2!}z_y zX~L{fB!}%w?7Q-)iPJ=@;53npiqXnr7`zRgg=b1B6^|&^jM{hQfw(xih-6gqyY^jq zOuV_GyZ1J&dF2l_C%(;^>hGi20@u=NzuT-rMYr(nL0bhDzcLOOZD}1JXD};NDA*tJ zf(UTI?T~Qi+add|^*Bw4WK@jSddwT!&7I$8zc1~qk!H!a?~3S#9mY?vES6Fwqmq)? zcP&*t?DFB^&+iY@9LsO9PT0OH;$_+`C8J`rma0sh;%@uB_xo+dmVjnQC{&hK9>eMt zcRl!_lX_T=P%+xl%Hy#ULo;kgW;$~p;oI4%&fLB$k5<18&G>uGCC8{3tvrI6+Hc)t z770RSvybv%gyjeoqb;pGg59fM^B)4cVEHX+X|XUADoZPmud&+94pvUf5h_MoT6r8q ze>d5wCofxZFJWjm#vG-AcNJhnIpwsE+ewRE$<00YXn+!S70r{BGxLi5s8Z zh<^z#MYU8uA{iBiPCe!MJnXyHW3;xek4Q$vXysA$g#qy+_kHir zaD4i)*GF>qW@)*_bDS%IxcJ}iV|S#zxxjLSiqWlbM>Z)pitFLN1L9wO^?hu7+fM0> zU@E&Wll`^h{11o*bH9&u{^CM5-?#C(&3;Ks)w17!_+9UQANzLp6$?3s5nMvN!Up0% z*7vdPdwZrc4@O(5S4u(ZxsjIbQ(DMnjb zd+#YESsTgfGY`WG4t3jw#!kzn>OAEg^y5jhVWK@jSdTc}Qy^3D^PT~SkKhNoRA#u}y z*?wDv`+O7-zXNe45KP7Bry5;I%)DRF(&xu11S-w zA1nDuZapN25!NCD3(MR-8wiOwy|mbz+ML4(>zkrCJCLg{0z}1`J9DK(au{KKGwDPM z5Ep=u7}Zj9&Iuuc9@IEks}QmGwE)3Vvf=J+iRoWV_FL4xt6Vh!4+niNJd#n#T-z>d z8+veZ(1Ry2dlm~2oMXQ$h*4UBQe`u0F9vx>h`g{X;6l+~|0p~EH&$yilXZWOGeAEeetazu<0?r8` zLgOPpcvycJm9!$ao3)5aVkF=pt;-0evKCQEEP%FJiF!Pf+B%&POl2*ilDHoIaRu7y zZ2Rijj9@Bj5tYPkd2N+DGe|v{%34Gvu^Z}vh-q%LYRM3SscbG$Nt9UkHj8qpn2P1t zaik7waN}G)Ygqcedgl{s%f0N+ub1aLllUI-=Vbo)p!k`@pSh9c=Ac9p&#MR`fH4)L z+wMM{ka%}GUzGum*TJJ)$(yq|hY^*=p9a6qfg~0Hq6T7SynwiUoWqE3nw(BZ+&+!9 z1>f+lL`%D>Oyl{S!-%7YPA0Y-zdKkz`h&+xL>W6czDI3FFx9C;e;(T&nMhY^*o6-1kWM|1EP51m2FrLSaj4kMZ^ zK9!INd0O+5;2}L&a#g`}&SAu<$4(`BB0`?7gD-I4&a~QGewo{28w%!x; zU>)$7fqKY@;v7a?o= zRY2EL3MWcOmj z(F?duxD`x7buJOveFU<*>q{@45lm$gs&h$4@E8W~7k8ZPnav2MG6_{4ZNTF$$nLNo z9}4kcDw9y16U%}}f5`52s|tpAFqKKD_TWMAC;=&HliIo#mx`%OLbX3+hFcCE(&vm| zDw9y{kF`KN^YT9tOcj>h{~c`Q`puZPwg; zIltzl`Fm>nuF_t4&;4%a`ie+KC3|)IuKV_u?_cg#Zr#lN9g&oMN zD!>25*v+I!NM%V9DSMXBy>?2bLUtjPC2JTF#!?vVC1ls~l~y8RKKF7zQI=%Op0boJ zTXu=x``qVq#`|i1^UvJZ=bra{_Vb+QJZF)b=uNe`$9eeuTb#N;G)E6J6{Fkt+T`DU zVosckHuEaDO_7&uKgLCGd&JU#PbqwQ!L21SnSBDpW+0e~(dx%y&N$Dw72N#D(3J=A zST3~89qU`tM4({bzM3=g#9o|rTl{t@KWg=U{l+$GUqSNe@cn7c4!aRuVF5_9Z+Krj`fm$vcza!tjmSZ>MY zHooX4k4Xq3x9Cl-Sn23(pTv66+dg@gY_u2MNr?Bd4(D{HV)UxHzxp*dtoDsABR9&Z zg_ttyf#5fcI6Hfve=v1z9C2Xd0OzyclHKpY7w0{2&R?`qe03*fXi{aCgy(MUp9eUV zcO<(hm?f%76)HxL#c8|YVYx$)mghQA$@wft5x020$|0(5E6(|K?8p7odds~q;#{ZE z(S_a+XA$ydtZJ4ccK9Q)VX;FNB5Ge^*2lumqodt`I1Cwx?MQA$Hy&obWLbAVH^{3s zxRCoN+QGV>-dhr5_dVA&sCzhy$Mx=myq8i6x#b}LFcqWku#;jJQ^XfpTHba2VDHoV zJEGn!>}+KH#Z-)jr{2cF-h@s&qWMrOrebu-NlCHWhM94KP3`3|?&QWLqU$i**?al! zA&IekrMm`mx9tAJSc%4M;_Ku5r7`Z6dL^PbKYL8YX!dG`b;6m-UdfMUMv*by`~JbC zSkt!6f^TsR!?hZFy0X`4!OZAUAef5L;aY7wQpu~Eyf^w45d4OFn!kh0kLW8pXs}SU@As)zggC(0mq_;7WT0( z0CB8q&e%Io<_`Lby?%2Y&lxMyK2Ll+I$fCMUPk8kN3c(^CD2Nqv%^A$4-Q#n{ zUOR7|k(C6w;s*h-3#*o?7_AmUW;gi#YDfEU8OwfuSBlp&mL>MY_54BUY^BF>Ei5bF zsg8Dul9rveJH=xvMyqw3xz%6Wvz)hSWe@vnj7RJ56JrHVlnm-V`f_6ItrKNUc`cJ- znmG>|;a=suqR5Qc6$qwc^!t4hW1C-A+rc;b9gCh`*vFN8yzIl*VC`=Ig(ueqWfa=; ztABXIkMZ8^+y7W}?xH?H#wn&^G<(;+O?XEw)-wX83nV)l8fXDzQqw}gvT5@ zlQUk%+v#7`?%i*g-Ryy(q4++G=14J^y9Ktp4_&?0YXdv7JmU}h14qkEj9qs_iKG6( z-m3yV<&3wE`U%;FRE&Q6&cpt`!+u=LIq%{y_xUahB7dN-xEDDR z0{6OQwZAaTz1(d0| z5SdXiTAnTIAKdh5);INv7Wsp{qV;!kGm1QM8HmiN7;Pk(R!fVyudR666@3Pe;H&9J z{cGuR^V6vAtFV*#3U)HaUX(2})p9_nXwtN7h^AX#Qc#b{HjI#_=xSclm# zugV`^>wk9FhG53^IJhQQQBsp1?p){B@3B5!tLn&pnjMH~Krj`fCr)4EpZa%QeC`$i zzsg#smzM+Q&Zb*;__uc65R7@LTlWN1GGkI#?Fh;?JLj~Ev)ucDn2J*iQ!#pAxjp{C z$ok+*mbK?%9UHUJs|4K)*W}(OfARFR-dl*{-eKzAU0oEe0>< zKr8`bHP#1HF`DNXY-?ddb`+LjGOyHnN9xPgvHEP<(FrzWW#R~ZBlTspKAU#*+dSB- z1j({!zj1akNRSDTAXiRCE^NAS4c~Ll#EPm5Zk-4X_vBpJGo)~}hm=*MR+DB$oyCfp z2E-5Gy-daEA9^GNQjOWw2G&iqADvXusgJ%YI65I?_Ax?tQ8N>3)lanloLJGBi1A=5 zMu*Ed2y0yDxfb35>>+A(E2ZnHNb0V3wx%8Pfp`dra%eeIFVMi7TDQp9|5xaq%{qsk^8* z%8jq6i}&?%t^!dVT$HI8t@ndwciy}yIkE&9g13X0aKEecB6Ep*8h+d0Zr$O(By(3i zb)*+R_zCvZtsV}zv;J<%SO!Gr69$nP6{F2~yxt|Z^X0T=PE&B|_O-Lce!e|-u(O<- zoi(=gwmboEFIO&G;NM~pc{}HJMow?$Bx5&VDn{>LoHh36C_xAERo4ZP>X(MOzo6y3 zYSk}UTF%@R8NfO(h>VBCB-WWs#c19iA&Wpdejd5vlQ4H*_&Zy0HVF1tS`*>k9Te?h zFGZ&D0>Vp(iqRuBW(&>+rX6cw5msS!<3RS&-jzP-F*qp}>rpls5B=SY$6O!^{b&%G zQ8C)|Zo{ueIaQpdf$fLhCa6Ch8xvZ$<-r49JwW#+oyVaDgf$XE&Qz`xO$Cvyqv5|q!N`E(HywvNM{Ye~= z85N^VJL0*1gEG_;USw~EnU4Hjj|EYYExmi~2xHTP}+|k|cci3@+ld09*&Lf^*_Q2|Z%Gfy= zi#^La55&slyWKI^4Va42!XN*Liv69Gk?pxYUgd6SZhf3sI39BLJ$Yj**GOcvN#43E zd1D9nkB-Ztg@IV}Y?@mQk_=NZ`kp!YVl%Ev>^9L9eTy39{Gp>$0=2qYBv%H9(-Xb) zXxQ&=xx3q4w7R3y6MGa>FE%znd}V+~k>2Nv-sE zGv@z;-N#bce{4g`)&53Ws1_pfU9|%-Ex!Q7N+7bMcbSUOYAs}H)f#%fUL8kA$D<5B zDXP_+Q1QtUUbsLkgNCpi%3vx+7o2Wv{7kJ%^dIPySzga}Ft5&han>K7w-IJTwYt+w zp7VRwY!J+h182_q^Y4-0WtOb#H_(~v*R$tf$6+c)=llJv|4Ly&i*3}W&{3Czt{Qd| z-s_iF`A>EEA&?U|g2X{YrdT_2OmQAthocT=m^ zAyemx%hbBgY{^0mR*LL}pZsHf8jEsiKqgc9Pu^x<2hI>Gv_8o%83nY813~ z@Xm9-HKjqk=j2^K%oAVy=A=Ea zXf7ue{EDd<-MMDg*z5=M#mD@rTfy#*y9v3c=Wj9JWwd2Y&s)lAc%+8Y604TWxUFQ? zSdR^PgPFnd3i6-lF6Hb$R>RpPHU~t-=y0v>K(_QAxI6dW9t8cLQ zhKD_*Hv%!e-bFWINyiNTY@uSbdKnu}q!K_p-Q=R%4`uKhMreF`gZM73qBFN%qPq&c ztGXUpIa7Oie#MGLXVv**&tK9e7T*nu15p`>_838?VzjPcvj(T_OmO}_dERb;GUi>| z=udz7!{A#*^Zo3XZzpl+?Yj58`LjRfcjM=2S^IY+I4glT3ItOzdi!%5{iXRnjE^~Z zqIf}oXTvIxbPLQm^>?#A>i_*pl3vvIk0X*w+>Nr>LIpkZSb(9+n znc;e~VP<>LE~BH#K)eQ?$W%9@)jJoF%Tua4_gyaI?8J`4mZaPZ;g)9sVg(TWF?X4Y z(ds2++A(`ea`b_VqwQR{yGyN`BSVv_ngWq`RGVOQ$a$)ki}qPL!ruI2ipNxpW<4xy zd@w_9!%TS&oPqmwQ00Bk;3$M zBayKmOJ-Eka{b*%efOmfu?y515S^24sKe_(zuOi(!%?J(vVi9)ESFsN=6{B_MG;6TK+$zqgXCl!qShb8e*h>5+ zjAlDrtB-(aja>2hfM6;{hs)@e_>H}|#a+&?K(K#yuje-V?|wcfSgEU*Z}uy-RKM+y zlfJQYwYtlB6%r;>F=ON#H^|Pc{%^nZOdCB+C5^aM%V?Gc}#c0*g8|?@3P1u^DLSw?o zY~Xkz`n#D|&>?5|zGgN^*U8?SP!r^o$6RxH^oZ)cofY=DcPRMXf#c16h4d4A}$w|9jkzCFKtaJVrj~b6A zA_y!#X+I4_ZtxPOVl`l(&{_l`7^fp|^T<^BcylQyz zmFUv=ZlGS+(kEsI5MKa|6r-__+MjqODmoL{ahQtH`fSFdb-R+@4A?U)M$5Zi%NOhY zzhc3j!S^_P$A)&aE$RJx_Z<6Gw4A9Jo&Sq`v6@})ic4g-TdDRfyZbtaAea1@?YLiK z`m|tHtAXR&@3pKpPrhuIJn(Aty$LBEQ*pd_F3+-_?;DAXoma&v4}QhkL6taU z)bwW5@T;vaL?Tn?RB;OBsOm5kqgjhw}d*<03CaB?SAbrLpj@u%;d?Mz;I8VV&J8g|b>i}1y z?`m{8v!WjOU_xX>i;?!ut|<;vF`CP>tl53a*uNiyGv?kDPosm#KEbiVIGUMdT`pJ7 zo|#h5{`0ex5EY|UdNn(ahkNax`y7iv1L^VVNMqo8wl& ze$F}>v8>855tWc}&IM zWm(&@R^rC6?v&1!C(n?^joZ zykUfvZT8yB36^*H>yFN#bzfEIH;mBsnekYI@81>oAJiyWvfr`gs{U?jB|eI~;y#L* zQ8C)ca6fk`m(9JaZ&tkvMTg<`N{0fMO*En1@+H=`S1Tk_zAS+@9;sU$4@ zqxWAj$M{5MSy_O{gS*tcxPxRWMi)7h7#p&zWSsjf!TJ2#9mx@#&pnQy%Qcjf@NYXb zF3u#}otL^&$G#S~rqcS#nOuCsWlhMbxV%fqw{ra7l@jWcbSUOdfRVS?S9-l{{@?$KT(G6!tyP)1k?K# zgXo02?H_@dhBBCn(W>_|wMw!J*q?Oh5Zu0MlxCSfGq%V4Ex-X3>xbJr8V54_EE}bpyxwgoU z^GQzkp8H$a_f{P0F%_d(Ua_nl*GJhN&TCDeHPExA>=`QEOTXy}z|0alrG~7K7_Dbf zb5<*|y_VhU`wGq*w^a>&>-SAt{OGT9e5=ZGPfq|w_UUwY4SW64^3M3m)jg)-ns5y* zD+=qj65uEALzAj@Z^C`lqD^LoTDqB8l8m(h`w#CZb~UDAwA#s;UG44fi#dg|FR?d5 zvQ!=}ee(RL$Nk#BPYJlF@_Eya7C>xFSYqFfdBs$W9&!Ab|IDH(@tK%f{WfIUZ0ya% zc$9?|>oc%ol`|SS~9c)3vh;SM2-?rWDaphJIXHJi)7|j+pmUSCio(FwZ2m4_6JI?!`SoH(`!E#Vo z_IVG8i|DJZ*lU@J(bIaJ^Jn#}7vDKgmTu)7N5r>t*m2sHJLk8qByXx^$c8d%VZ^QX zwQ}+z*YD35b1s9?EZbSuf^83ZpA;?cmd6OP#KL#YZJH#;JiBjv1kVFe;?DB!Z|Gg7 zVl+!Q;0)dnuXxYVk?ZhTW4j*JY|8lW`Y|c?d3VVZCwo+VAo6z{9l29hZCw8;Zx|i6 zNLd04(EPeYA0jnZrf-Ndjb%!BlDPw(P}4SYSrL)4ad$^%E^yCigkMI zMfLZ_EU~$FB*oiN6WYgSxWDTKp2$>;4r?HXqjyUcEAKYIywcv4an{}yIac-2S#wRenqCO8|UHQww$($Cmds;8FBF?}{1t_mUajZiUK zpAGl1FcSx3CZ?k08(z#3Yg{9L&?hS0%Xc;Et?AtyK?S<2+R5SFzU8iRMr&WZd8tpQW99L;j6W&OQkx9hL&=)IFR&gPwkEhTv; zf^}Q^ZuhYtI(qO;#qE-bdMfjW(QH9!S$|YLWzYLPr}H~TP|svCe^|@K+AqsmTji8} z35b7zU@AuIsn5*B>wP299&@XB4Y3AAd%i1&SiRVF^VQmxVO#xHi*01(UAa#r+7<{{ zCpb*SXnD@l)L3R))>OznhaiuN-vN8k@T_FNnT%Ni?r2$hDl)eKCjWzsGiQ9TtoSSm z5c)=EhUS0JFPT|VJRE$Rd6AzZk((`Ye_an2FU>yuTKFp58%j z+>e_G{KCmz_%11C4X79JM@1M8m-tAEx8;M+)BAz@FcqW2JLewcac_z|?gg3;b#z|I z*eV~CQPaCgGv;q1kNYCzad$fo4OzV~T4$vh^ZKwHn28;_BF2MfINNo}?^Bu@Ycb0z z-gR_zBoNnuxS2{IA8qT#1Fz(BN&~u->(Q~GZnw}=j2yVi;_6>}?SoSj&qxEcP%7As7tM+g_ z6ZPyQ>rQ_+Yw*Dz8oP+=9B|RhsDvBn?}jsM>{7|u-}Ce6h_=-{wN{n+qqm4Mufn%v zf1a)EblWr|Iuc9=JWe+tr)>n z#&Te3ybNv!zhQ)AiII$j|1E>xFha7#NX9~gsJMK%=D~9K4I{$3*Y`i)5oEQJzT!8G zcr%`{@V~WU1XHP;Xb^qB>lTcMj3B>ZgvyWqErZ`MLajv%V(FCcgLX(6{Du*-8%V~& z|CYfBrc%2TgBV%=si1eIulNlk%#M>DFJsP--nh_^KWVwiWhmcbMA#?JQ2!UfRAMvn zbyY2c5&VV`8XNb&E$26k(3rUfacu6vV0}nC_zfe%J|-K2GQ-{NaPDM>zv;(f<0m^>;3O;l)(t5Qtt>;hPGU03BO^4 z`c3>7!EYF$xd;sc94=!f@*75I{-1CeGJ^bu5v+}dPUex_E6$dkx_tDtQ6U6Vh4=Gp zpRKKNw!wDESm^K@M)2NlSv42&U4r=zn{c-!OtL9TAK5_Whbk*R?jZZpDBW=R8BOA0|WAB zj0cy&RAHGxSCot(BbbV1i5v8SV2eMtjnT;brdFS)Ez6jROvPxm1T=^nrKCEHU@Eq< zK~$9`Gcx8bzhOi;Puxqp9@hNMA$uRD(mZjdR`ure&)^JP22;tdE!iCn!dW~uqvecX zDn7Tv=B~(^U<73*GJ>hXCwlkSC7G7NRN=eSwP$Y)%8(J{GMGyCV9APT+7WB?)3VOl zUPFI{5lr>KTbunHY4iMfSSyzG+@4RW<$ir{fZ#WbFuS&v;hvrH$ijrT{)1qufB*W~ zuZZl9t%5Q-A6ij0|F%ET`c#MCFd}RNnPY0#CH*HK{SShvWY?DLj;7^9C*QVW;2J(jsnz~HiLoah6P;sb21S8h7lUG#vpFAB-LRAQ>nF>K`fd( zGh-(58%AghA%l4R`1y>P$OxuV`-yO^WPLD#snk|2jF9o*H;hobj4(pVU<6a8Je@bT z?`+}tcud>$QAW%84I}0!=8d(zV{{y$y(?uff~ho4S-4ix4t~Q3&H3_Q1ixX#{d=$Y z3!3O2rM3D`8N;*3{<+vcsJq_E{=-xdB(-7$Q>m@m ze{025Tt+x!$c<7`9e%?I&OLI2UTVc}7@=8WOs%@?ytBH&r8@kE5#dZUH%du$n2JX& zoVAA${Du*no8<<*w1eL;LUY$-*1K7dXH>FlG^)!8jX?8X1ixW~MyB~Mg5NOWv#i(s zGke8d1!~k|n=k1V>^Fm%#|83QNd?pSm|= zwljjMSaL=g38@*q%Lt|lOO`k4mFh5psaSr5_0DTqGPnLvQH2Pd<1Bxf<)nM{r}pjk9y;4I!#byX+_A zaWYvSp*Mth`@ze;WPmfZs?&ex@_Ch?T7C#E54|A-=Z3VbVrNR%Y*HI{yFi5A5aOo` z=lw{Q27bL@)t>zD!)2e87>m}YI-xg&=r;Sjf4*1ac&*kCZj~`hm?vsRN2&Y&&qbMv z(VAJ(wEV^xraJtF5fVw~<2qWa`Y)Bum{eZ-O@v* zuWm*#RXE-f&nqs2slrh_+CRN0qgMQe5#bzeTm~bUilbcJpqDks2&M|(DE?C7WX1^c z8%7NNHfyZZttQ@9xC}-x72ii%R>^vweIq#OU4Fxea3-_FQg3F=5=Jl;$6JFr{MC0d z+QA5>3P)nwaQwTqucdd;#G_uT#9igf7uxD2M^OwpEA0v4uU>@j)! zG}4qr1?EV=`n$QongT>eAm-GmSB2kb22sg46t0{W#sU?uyxbbao z_=a~sB0&8ML|ym-FcqWOiomkI-qgtcC*cwM@85?wYAqr+hkUwcPk%%OhFxEI*!A_o z9VFkGrgmKIkN;*7IF22$tTLcd!X;CitG5?;Z8l z(%eBd17Z;nCvoG>RE%azP{ayDraz71!3ee3k-4P5n|U=CIpQkE?esIFlA7r6rdGEg zGIwIV#`bmCQ}Zd6?`t(Ox4Ew!ifAW;5%pxB`256UdCMC{^U2b(ZoPMivv^oE(i=7t zYLOy$rf*I@>))TFN#Gx&7AfW~bw;Tn&TZ48kvm{{##D^fm@LK~t^lGG#N#J=dS55D zIBNSNx4nP7wIhgtX)Fik0WlO27k|aAK2tIJt@v%9vGE!NpN4MmY1ocgqIOo&a`jM< znW45=rmxjX)t|t9j65)RrDu=XWmhY1}e%4XpHD0{7VlD?O%Sv_`2g zW4;sPas1mJZl8GXYP2V||7X7dSQ}zIevS2TpNNm3#wk$`1!=8%D43QHhevKUc;p^@ zEbKqXXM@nm!m5-1WqZ~4uSSo)hU`Ej6|>h4dzmA%+?Yb%`z6=fh;rkt$eu5@XM3Tb zPuQQ6eYkNS1w^G%YwcD*FcqU~t;ic2x8jbtw^L)-$h-mTnjbKN>P;&1N53nrWiJ>+ z#)BQs!Mospj=o|lMr+w-CN_bM%$3>&>?>GNT)OJyWECmGtiis|bZ~!w%^e~YdQ8P= z)wY>6*!BK7k$H!E+b3ZI$=1Uv2MLu*Y6fu#7L$2kIk^o8reZW(8(UU&>`$rK*=B?L zXhcHcuN*-@V-OmC^*kaKehNf(*da3&qdCTbW%UCWZBwtYE8b^%CYSo^Dw6)u^=SHP z6A+&v>jKt!h>FpARyQpl2m7wNunhYHe3z}*ILbT6qz__?ctsE?qz&xhn2OPC^=4VO zmtJc>huJ967SvNm>dQ7)Y>Q=Ck73?U9E%wbi!G*N^s1il`APpV&KY`x`&5UWu*72J zy@)N3=IqN8+x6b90Uv|?)wd^I3y9BwU@AuQ-i4f#u<`m97N8fwMS1sPTct3f=KpfK zP2u@cq~cJAsTj@LPn=lbyYx%v1<@>sMxuO4`buv`Wz>{+nK4g8oVzQq$o(2KQN5yN z#F;#j#*Q%cT#LmpXzb1_=b=$`u{JjHuzO2E)JvlW(#W&e&N&K zPfHi8Nxi+7`fA)D83VoHH|e0v>M^ZedV)Ph_V27yk=&MSL($d8zPH*_+yPRWU zUHhci$DQlN_u3NZtEcCimNONjIroHRP0CZs`xQ3TQ*kypc_B}1US;8A)k3zF>ZxaD z`%6Id2ciYm2Xi<^hk4>OWRFOwV%gPpr8s--h!u4SE9zJ9UG+YbH|l92Yg_%*45D`&aR~^fVzhd57|yV2Sv&i?1J@!)5{G)~ z*DhZCJkH-AyX4>fM-6}eSQ+yjNbY98u_>E<JpmYA@)!`yfmjK7S2(p&FnYclcM^9NKN#2Q!7Sf zMkVuAe>Zct2t2Td!&i7dcq028vu_vse8G?9;w-xf5H-gh2WCprCLVlM>o@ILs^7;)eN2_@G6O}1wuws_Q+RQYu+f)jsU?e*D(;Pa9=G&M7b{zQ~zfmn2OOlPNs|j z7<2#UjN2F+;|2Tm#G*X z)>$rskI6io2fJgov)>J`JN5uao_ip&03kl^OvPwkkCxT*U}-mXVRCTV<})&Tlk>?N zI^;v8-M@g4^}$q(<}45JAB4AI+dh#9YUQx(tZQ3%d-#mgc3u_l_a2c*TgX04#b{l% zW;{OaABkK8>Ptkx-yA#%d(30jzlcf>}%ADsTdv3eDV}d^w&}gd8H8TP0#02 zca27Ga(1?j`d__dc0piZJu45)gTh z)$kfYW?(8t>z-)#kERXJM)Gd&?Y69&;;7G<)K?`W*#X$%+p-?-yf@NuU?+DuVxBP- zqr)wq3ArSm;mB6+GwCahpe<`#<7}ICUKz5_zxVa>vLONuQ!zT6SLPH>kgwnb`4i3t z>V+-e;(HbK+m^DCkqx@nJvgP_4Vi(d7|r)Bmh~H?@ParyzlITHiJsA6Nv10hYar?8 z!MtKBMu%&4HCD`fHDQT62#7v)ulk?0To_0!HOA$Q&3busaL&{?`=%Y+zAxtW$iBqI z?(8rXqx&rQ$A9kN*YQ*82JBC7JQIoh4bH$Zc9;(`e?-P9#I1c2YvdPjAEsio#;r9o zarj4-z4zzOjCOwt>zw4lV#v>!>a_7!BF-V_=7IFOrl|Mmt~y>F=)yV5#V12g`v(k$VS}j{&5<_{haNIRDqy<@DX%mw-`6h^c?Nv98G4tg7_A)DjNp)VI7N(Uo{n2GPc5Bf-{z<@YUyP5 z^WWNzv(EzYHxNw4Xgw91TD`X*Ej?!Liafrl;=1cykwNVIA}zf@?Q!l#l)+Rtqvfv1 z)T$%otIcaVdh0NPoJ&Ocm9$p*ylMIA6}#x|?TvFo;b zex-k*sGOtZJoq*A`STG$>EqOKHd8TLwV#Gxjr`x^_QJ$M?p#Fw)|?MAU)j4xPu^xG zzS^#X-LZB7_de+1n2OP=do_D)L3ra%F0s}ffVr!0q_4DwG6sq^V_qAGuBF$yb%n#l zTPswI)^?Z?yac^cY3P?OVx9B;s{JFQ7T#-L0HQ+PQr;18IHqDWmu*>}tbNdXWaeWo zWQI`mJ>3DMCK@lr)an=z{bxPqegXtjX(SbCt?m-0<@0dn>S_u0{rf7~J7PDo3fm4G=>nETA{GCJ}uH0VQR)e={`87=Vu%o=Q))WzQX z=Y!4^yK*T0700{^XZrKD40c*p+#WrH-enKz`=*@r@6PsEaI3Eon+)kbQWM()(KZE|0%u`9M4a zghX{@Dn=_$G-Zgr(%|3LuaHwJ+e~Or3s=);GagHU*jVkS0HJS$iqZOPc;egO3U6Yq zm&5u{?Xs*+)lJJ>Qf;(ZwJ!n@1tJ||&Qy$6owb>XcU~UiTzk4f^aIRY)%?o0INBRW zWwR{z(h#RyzXs7SQ7fimG{^mcq`$t3GcNs>XeziU@2UJ<-h&aDdqWjx{`y;@eZhU0 ziqTvi#sDq%p}D&kEobSD^B}2}h3Tt_aYPLun2OOX4dRpv?lu`w9ajUvxuRJQ!%>JW z>jNO-`5;}UVl?L)v8)Zhb+Ctbw(QRjr-UqiReLUxZbP=iR^$2I?H0)i_A*FhOvU!X zs!2C^;k}**Tw0arg}*RNrn8y+`DBJH7j?D_TxogX}q}Isk)+jLhwJeD7H~ z(K}4VX!fGCtdY>S4~O=A1I~kduH`+P&xw}x8uaZ?0I?GYred_}+fA*GUasOTTJ&-{ z?ms*|_sj0Zx9qAlFtg;VD^?f@!)T%O@QVfsb0h2$Ov;w0j?GZmv%E-|b251b9kLwh$BWvDf- zd`opbLZvrb1~D43eJ+<>Yrl^&n2OP=4>Gmtad@o#Wuf)8uVR+y&APNuZ{MY_I5rtF z2_Q0eldHp{h|uJybT0_@09DO|>8rNOQr*#r<&8YN4pT9jeLHc_`BzDMOT)VMx&lK( ze!?25PQJ@}an#B#XaA5^&%S>_io;ZFhs^fLi0h1uR!5OXS~9q(m8bLxYoOE;)b#FS zKokO^8aM+}F`6|~*w1^G^LDvC>;%kRy}OaR^O=J=Dk6U&>-#yshg}8hgQ*xD*0B6G z<~943YNeelqpEqj2BjUk2Bq#CGuN^n$o7t%idFkETFz9A)>Ug}$qYn}tb@prh!7jP zOXcWt95KzZ8Y9bJfrTgS=h1Se()lXAptI7f^MS~4d~+UmIZd#?fj%3pLHl#BL_UpY z?a?y6G4#8$px>>4naCEn36s|Q1yeo^ zEM3&<-n64W5OaYLeIipaI&ATqfOyFBajX9_Bmmv}WTaFUm0e%=U?TyfU6|$m4MY_n zn2OOV@0u|$fIEZ!xH~vAdYr9i4taCEc)nQKv4w&YHlMF>w+)$H?&&4QFHub7I_Y&m3EJCSwaYCP)#pJg=TvD8F= zH?;~QOmtJGk~5&9&3SMXV(DdVQ_`7^n;*_VtT(RGZ)z!P`0iR*6p!jq(pizUs>4)_ z)>~OK9_>@d+gEdEjb_0eBwI(b^uqFrWtD0_&i)#D(KX=hdM1<7RWB;*PBp1!4W>eq z`uO1H>DPf^Dn{$M&9r0my8FGOL+b=LyzEV?-k`G1^>@P=I<3FoD-%a#MkO`T-%YLN zW6WRZ7Kz+~F;_`gxB<)UVM)I;=G6(@4FpAKWNtA8Qc{W!Clcf%w3)hY+0qJ zR5KpSfY^k)qM?x6nTpXmOU%5=^J;hZ!q^1&D0DI!nLzqPZ(^h-VLe>cSGv2e00BFh z5EY}TAmZMp6hBx`f z!HAZsTB@5W%q`3H1lu%UNUvn6#`y_nQp^<`$ZU-~Sq z_D8rkfE_Z<=Qlh<7_Is;)AAj#Zy)_ZGw)uUqxklfHUHuJ+BbmcH@%rR6WLFhiqU){ z00|j7(Ynx$j)W#v5i&>hu0Up=BFs#ry9t}A7_B>}neE?YwVZ~FI>IJU^8DP`$t1?w zTk}5kMVFz^CNt2EtJm$7i&3k0npD*{LdEFtt~LePbVkF2uFBOK)fmB4?B8Np8^PEA z1VU=X2&U3!)ABd3UAOC@R$srie`#h2q0;h9%agNMP9c=B=7+DAF@mYIO=gyO5BK-3 z6z=UxHgna)%ePcxE@fygbW^K!KnyP0+kF^wm#G-7T6I&a-H`(J|B(MfID_7-3;$59 zif{wfofr-$nf{JlALX7x8Jf3GO4mGk@?Fk?gDyp;ztceU0D`F)t(pEzJFxS+$50~~ zk5zMj^=oce?GI1wQ>T2^qyA3M51ubRb%~v2?HVgFv|Ny8_JEI>27IYk2 zL?qeYt2GU7`1E(fcOL;_M;wtEm2d<7-EfBA4;8U5e&5=L9?s)Tcxp!^qo$`NGlELove8%TC%Q`o3q}!pzd(llmFqQ5yGGBEsF||UL4d*Z{Eh<1x)XX_D zwrYVZvqaBSW+o;9k?Zm-dmQ#bred^O>6%&6|JhQ`y~t|y9C#u}F4s&}B2yKO=d3no zoMOmob?dAe&b_!LV=6|gwOCw3KlPkF=vXV~03>}rFRAUAP=zzH-8uXEKLOu7( zj8lDp%na25m{~FzyFppl_3g%Pz>=lf^2r#ejh`8h4}o|Ah+G&!rebth7JVCg)HB$l z&ftbu_a*rj?;qhEXR#o#559BL9>r+g2hF^SKpS;>Vnt^XPN|x!Pv)!Y-i0cBVrc0G!zF? z^kRA5jRrbhjzNjMmXO9ifK;{}5*bserKE5J)v%bpO2#R52~MfSF&@0%=_ys(q32qI zki0T|fk19@hp8CNyQpP70bRzY-<))F!cvy+;`ugQZvo6~?+L^u_^j=Nq|a204&R@z z$4q|`Gd>@7HRem|Js|C1K4w`}f%pgr$^6b#j8=aGGlF+*ui(6Lrlwmze>k%opVio_ z)w0fHf6ys7u!h_BP_n-cy&n8ADe>KWZY#O#gYP5BWf8pp{zcaYDp02VXzo!8J;tbyRZ3is|@ zAYO+5p!mKr6{Fb?!Ls^pxD?6RuA}{UmZ2dXGE12}-=J@wcQx|&wT|{%@a4oIX0MKrO^jEB19Pg{=8drB04su)% zvxKP_&ED&<<;1OiUfk*<`h}-=^il@jVCk*CsnrKS_(0$eGDO8_z124@FN=M49Aa5K zh7sgiv6V&GF5@`jWu#zC#9D-@7#;Q=XmR$9^a{xn?Dv)p3EiK!J&-+?^Gt4k3)-YI zoM}fJ#7?-3*a^ZD*;kVe%- zf8{Y1qj|;vF?X2#{g+K5segobXZ7KgHNlo6mUYVu!|WmO`h5laIaBf8t~}AKsBeyz zck(o9Wq*X7lM(9OEv*e(q-+DCb?sJmEv#CmVzk;lo4(oy#5Ex9!@N?2oD>xyGegUW zuR$OlYtYJm2XmLH7_DWPGiR(}ij%L->J?pax?|fqwd;~IpxSDJO~6+ zF*>{(bU!@8{`k4tE6RaWYmdrWQ)x-+&fZn9nSgxtHRLPd)J(-_-ieT93_9e;#wEB% zFxz$h$Vl%#*g z5Bf@UOH9RR?JG0pdA24;zJnBiRqJV{1?el*y-HuH?$z+C9$S(lr-Aqh2&Q6m_(t)s z3w7*Ou&((O=X3Qjk#jiPi1JM%G>{kT*cE_y9Tuic#b~x2wXDtXPdo^li5Zx?Tsot< zwzzk$pJ?ZSFXRiDyG+ICaIM~aag?*&dNm?CGL3*JeZuj6_1W~*VIXeb@k)TuH!`-2 z)@L*3eId6`Ku*>_(O0TNmcHVes1DhzsOdL+eq5$vH1``6kl6kE70u;I9xT=l=owJv zv1&OD_Zf)Y|8?v*b-_!RiqU#bH1ld`gR_y`@OElbHzlM!mDY0mEGruj zldwZK1A?hSXtLS2tZi5qQ=p@kS;EojG-{n_X!Uo|;vx$;q@+i&Vg->Im1t7+ccV%D z5@jp_SGXC$RK@Zq#OvPx8@MrYYNkFu2a?$ONG8n;BT0?`#hn__|4rkot zwab?6+3k;9ILj}*vv{3ldv^GZN6j|R?RWWI3(xkOG%H#MV*mtVsyWi~5EY?ctGm~q z`P3}`xg1r1_zPnJeY;bvW6~pxV5)@PhDq zxbYm)4pT9j_2Re`p*1 z6{Fi(zxdT_&W>}2br*)Y3%f3e1RQ8YVyxr92Vh6kDCC#O)^wKj%*A2u`_C?j2q$IR zI*qU(X!cjcyn>znOj!0eMK5#9)iz(`Pqu)vtoiWOuL;Bq=y#cl(R`m^S&8tpc%W5- z=q2n^>Ng?ZWeXAYbud!Ka(G&lfv3er%rB;5G+T}YzQ|s-#uwdPkgwKV$s0Ske{|q+ zq&~bNQ!N^L)h{t}VcZib>wT>}M2>U|nGGe9sEqt!#& zNR}PyM%@*A*G2k`eZk>5I%L`o-eb=(i15se>y2wBvn2OOnr{Tx4tc$(3X9Z`` z!b*<%cFEYX)wNn_nlXR-?w=#2vcF&#_EQ|Th-Cz4B|;Rz(?3L>9@W!6avk0ro45GW z_s;RZhF3JBRZcYW?u?>Y-0!>OiM0HAgrnR?q>Ld&cKO9h%nBrnWg#hJCJ-Y#qhO} zTh>KKV_qpgm+^S)`X0YkyP1I$raOb-qPN$J+P!~W7i|m#Q!$$R(6W+oQ#}5a5-AHC0(*{3(y=Cu70Zo{VoaRoe)sTi&I+-B~cD0Z6{9nskP3jFHZ1&96S%VYk| zFRIo3;_7j~W9^mT+IHR4`~LD*4U}i``aRtIHgDORjlDMakF}YK(KFsU>L+CL19T8O z+WQc34I1GjtQrXEcjjGTe)TWn8cac4gXZ82Ocg@M;~JO|oISp~y%zDj*Mq~cR#vSW zC`U&6ikYT9xCtN(ey4IlS9 zbbST3yV?G^HOTzVRE*wG;;4VH_p12);3eG3jKi%AWD`&CSfuWH$09Y+TNzWU3qYJk zG-%NwGZmxtR>qv2ci>ikF?>wml@f|7&6bDiV`5g+MBM6MoKVplk5$W5>Te=7Q6Cdi ztL|k7JGr}zb$5N5-DNpixq(Qs$}xgY3iW`Rz)-`c^J;c2c?2oTGl3P{{c?xrEyU2&Q5*uYcUiJlMb)|7deJ_l`S5 z2qrEtY0g?;LL6Pj=c%H z8dEV^W6hdfEnk<>k#6uB!D-bMf6n!%vj@^P`*VgpK!5BsIr9; zWDmpOW|99P%FwMea~vLZK21m>fgC zkKeu)?iY!cg9pJ_>`}b4u-!cGM3(g-d|2AUOF^Q_Gu6##$w^@LsBAc^?T5}1-m&72UA424(sev!zOpvjvVMjiWFACS5iipa73roms)}jHAe>lM z1pKFAQ(R#))ykrf||C^x)cn!TP-e6xg7b&$` zD5nA2-&xjRAo5(P<9>w^WNSP|tDS>shX0`tQU2k!fCq)5KP5rJ#Cx)!;7ZcjVH{G%!1xT zZ*rx+d^;W92j@V4wWoCn`#bDW{4Lc+$xg;)Th;*RuLePX)d~ovVzlb7%s#jbJ5Cww zIMcwdbpH@8s{4oB1M7}sq}P2nb{vwxkb)Vp@H|F)7*XoatYV!or2r^?k~-T z{P}Ag*05UEd*vH=PLt;LM?3HIn2OQicI4TXYWJNrJ2LY8kWgG_?P=jr+Pj8d9m2We zmV4h`0n3_@r4!$6^L?~s?FXXC!M9e3Z4^`S?X=$Tn!c)p+&ELB6@thV90P*yxx&1} z0zZUDmAx7M87e2ry_4=43wP(Lt8${bj}pZE(FuXq2vadS>^)Ehh=w>pu0|P*V5+mT z_xT4?*ZSr@swN_4ok7H`ZrC}MCrS%7{*~;O9P0^jgn{_3b8heJQIf&M^Cu*%31kCC zD^E0ibpnxLZb8(Od5~oETf(pSwofBXnf+q~5Ook~stRnKnTpX`o>}LA;2yOe?o-9@ zPOYh=bhVk0nW6SqrdFQ=u^tG>B_S$CtNoRkSN#zAD=l9k_w#H+L;JRlvry?=F#CD_ z_8siDi2QXoG>}ZiyT0x#ri?-Ln%mFgd{AiTozCn{7yZAwbPaS%#aT9>$s(70E~DR-b*|-^lUH@rstsz@XxE({Q!!d=Yxvdr7rS{K_YbmroQm1) zQnx}EHapOTDgO{nn%)SR6HDnq-Mr2_2HE>g$84rzwDK6Ehr`*~!`a!Ev$K9nPSqQl zZT07WDg5e-I($zBz6(TtAf^JrRE*a0%=x_V(qeA&^rzkZxCMCo&cpt`!+x-nGw|drOvc{(uF^ zzLcI={Jh^W`H6tF#FzGc-|lWT8sF7Z4n?QPAufLDcsayDn_4sUTSO5 zmbDV+&1CfOL1;g?ChLx!^Ea<-7L3Q(vuFLM8zu+Oh&2hsvp{tEUv`(N7#(i;Iv_d& zG2wsNZKaa=!)QgAdF27|I1qUjWVe}$(cxO1ZdJl9fj#}+qD?(*xy)*9xyT9HS4L)7 zj=uT=eO0}1Q;(?_t$k(I$NbKDq9-6-Hiw@2meJ?^`Fq<28uNj-Uhwa2(<;zxw;C$X z=6B1g)+tYPH4vh2XDUXQD=J?yXv^w@R^Nr${>l98c4o6(`scsvBQFr|0ikO`s2Hv5 z!}RX*PI)4AprwBbwK{iLO7HNWy4UG_8`OvPwko4Bv7-`u?&^3TK2U+GAR_Dolo za2y>?qgDH%L320zgAKe+;M7dTXkCMbUrp=`&I7$n;ZL%=tu6`I?-s1{=}8y;e_re! ztce5JFZn5_y2aN=mab#%JAf$rS$3DH7=25Yi`YxL2Vb(RE%3|Ok1SvXAXBRild0}*JJLT+a&MzeR7WxWi3H5%M!0`5P!g}m;#N8mXLepL>LVb~3r ziqX6t;a|CXU9?@DsQVe@c3x{b!{zLxtH7M2s_s}9JzPKPT0k%rqj_zHR+Puz(%C2H zOr4?T%(?r<8uXZo(OkA=jl!6Z!w62tisG@=QIl1qqiI%DK8$&JApQpgQ!$$70^&^U zTo?HYw?Dnna$RfEC%-hl;5VP&$rm0~%(>`qEM=Z8Yb+3NLF?rJ!BmXa^=Nu`af1}6 z?|b81u{GfO>a*-uTtmwmj@4Ryd>A2AijdZ-lwsD#d+=>P506d8-14VvWx-=0A>6GSyvGJCNqRt=Yvs3(|9`=q0d64y=(5(B!)$^c&(I5xIRJH3eR?lPB123 z2EWM+VeH7Npm$e6`zWV?_O=bwwjy*s;8?O~3^jWBM&71MK z1GSQK^UY;2l|GyCfbF0I+ra?AZ}d4B50acr@4gZ5U8Rz5@t&d2Mgqu#S|#Xs#J?qP zl!|vBGuwUC>h^f8l)uWG%n)Wp%|jV!@fF1geHJR^$FkCp2^!YXYt!N*NHS+;2*audv~piyn+3rHV{n3Xx%@|swMf#(_NqEuFQO$V`jFWf_#+? z^3^lYE$IvwDn_fUWmeQBMBrbB2>ipKnP3Y69)ph&zyAv2_Z!W`Kp@H?%6~&3n2OOn zHkNe|b60LI|H4^K=cv?IXCLoyW<@cAsTi$u+O&KrMz9!e%I?DXL;GELiH@MOR>$15 zd~T}}c6W^VOE`Zp6{B@*42P=(Df|w|?KppU%4*3Vg1qZgCB z9~Zauay4&KBQq*NvvrDP*-s{URW`KrD)eYrli%pQbN}zoWaOqd`owje?(kZ_nCv+( zma54&SglL_<$wC(O21`ly*lB16Z_Nd@S-h}y}1V}S7RzhYk88*9(?zWJG`z>C42W? zZc>vGOclOAKR)UX@5lDZxRZlT8P$ZT+T!>5sNq8?S5QX9SMTu3w@&tUj~u&<-!Ot> zr$AUEF*5lg8fgYc;BJzca@PM}qG1$vxhOcQ^57?|Zl=Q!$$R5Ej2l#l76? z8+%P&J6V+xOvSau`2)2Yjar>MRdqQdm@3?k^@ywX>CigC2y%Tjy0y$*eKxnRhk$qs zhzH&oP(|Me6{ERq%gU9rqPO|4M}jgGA>Ug6;U$0l$Rz=H)@M@&BlOM9HPJ80?~r8h z{p~p_24yfp?>4zSQ^r^z+Ms4KcQd1s@9OWSj2+O-XR)jhLf+^tseD%vri@>KICcGc zAX#Qc#b{H;zdZ+fd*1!XmRfOaWz9n%-__qu887x4=-v0WL1acH-__qu88wi%@4Z1L zZy&$WoCfk;{oRzoh|H+uyZXB+BmbV3UQ*2@N7}(}G+v{8SAREUFd{Q5`L6zM%GiK= ziM@yg*%>ztJmb_iSTrHwS<*>vGJseP34o~>&60s-?fT}VT^XKXuj7th?}tRMu6|x} zAEBOMM&CZ>+mrT6+)u=SU@AuIy@L$JD6pJUP1sJ(}@BWxG`5h7E5 z4bS+0p~YdUo6(2PO!RLZx3aWu#+$bewEvJ7;(3?efs(I@KfMnk_7*_yk==Wg@WJN@j>E(^Zfanvq6EKsW_xB-QWO2%)GAVIs{KI2-p*;v#I%xIeP{XXfDf`|ch85n_>*(ZiA%4)MyA?F z8uWI4gdG4=F`DhgksoK;Ogq~VxCtQE}Ogr|rLFgOlcSh^88IKSB ztlqY^SKK#n6Q_Q=vJM)*c*$>^yd;Rvpq3+MwkO51dMn#qaZg}aM?=cC@Iu#V+$~0p~*2s-bvYY7ZrC3P+}R8;HD} z3OIeya;8$dXKAh4OqrH%Ts_!3*6__>H{iH@yff&tsnt(}&^OXTM(eX_`CqVPTpo`? z%lG}7!Cbzpzne0AAWB?a!it76)x6}G;{5gk0^C3}N zWCZn%P%&Dc&E0nGjS1eHd)j%mj+U#&k;?Q2T)wMPxM}(M4GCVWz3qZBn2OQ*Y+61Y zWju{Cq*nYbM(gk5=ZOrGKO}flfBXN-knbwmw4*x8co$_9E>-zke#14Vo6HcV9TvEByO)d%r+4wvC%PttN}o+%<=Ak)GdaZ|^o>w4TAxiBQ`X<_TuiCs zNMB7jvcvze<97j1{Qj@){<}4o2Ru=q4Tt*+DM2l4}om7qGHe=2V2#UFBdi=7WLQ2}BL(6q$DP2ZKW+IMoMcBh>%mL{W zv2K*8z%u(Zu7R0}Zz0##-^jIf5At&|)y?P|8CLIpt+QRGQdWEZhbf*$j+2qvcxHqD z-tC|IPr_Fs=ZT+v`}l|c*WJW#;$%Ws`@LJU*^dlO2~jaxqsy5wPrKUH-cT*4-4tAo zzspn_)z!qUEe`Lq=I}o2iv1(C<7$8WH;aPZk}WydPXjjeK&%C#6c9|sXpOgKMzB7z zD0M*=rHPn{>?f#xB{FIn1_eT9ze@A_NQdstLJqZkFxUeI^`38vJfM6;{ zYlKfT9y?O1I`>^J3!;x)8Wu#%Vk$=K{%APdWcV{QffvNDnC(2P z+3t~7fn|*VVge9dfnX{|-*lqy-p6~WTbkP&bC)gnbxp{8)l-I?Y!0 zDpN69*Nx#NclJFN9kQ^Gn;UnL+9$#RG{T!mVHzvWaE3Mmjzt$CL-1b63{1sn?KdOC z^+BFd4|zt5Vprpu=q@AQ4cF>85OslAfL)EL7_Ix2snsj!-6zny51_BKccq2eyV5^8 z9;W5*0fG2!&I910OvPv&57WCj5k)74XgWtQ+cid;%xbn=Ws6p!K@y}fi*hcmBn{%ejqYFY0TpX1g;1lPCGR~+M$<34bt zIcU%Cnd5$sY-vwnJeZ2n91jA~tRPvIyExjGS#rzb9I@de^91rB>#xF5BgPLX8ePA6 znEfs?_c9fuFPz98OHD9e!o2~aWmQ0ohMpKf<>4|?k}3A`h^~QTseImyM`s|aU#jCC z!)#|NMsr+Nj0ZeS2g7glI{J#K)O%ItQW!B5i0wcmqOX{W(dyx9W}-WxyPfS7ldDnv zgk>El4;Cu*EH>-o=(z6o8d$4KJ};(XG|P6D)gSrjABOj2ImFrK2*WB_O24UOX=eM* z(yg2+@SZG+U5%+2U8Lk{zvkPEf}Tdq8hAPtIZ!*=7=6XFPb0ZXJ2VH6DP#WVD&BzP zNc0xWU8Z6*&uQcsK@8I}-=w7@>S<`UYgAb2AO4bMrT#R+Z8KwX`sRx%4pZ@WIWGt_ zP{;>)>)MyoFQ6SQ|tg)@P$;zo#_qLK*V?8$H4g3Q1cT+}9 z=l~kWPxP5lG1`4^? z@I>~5)ch~P2g8{#=OE7AAw+zC6|xUgFv_{lI0zia4hS|&I_VLAZ6qOPgI#f<`VCHyeC@L7hM-b*CVQm?3_%+ zXq7SyXZZBB+}?-<&Ag+%#@ecNl3vU+{;)rAbPVHf-*i*m51x~&u(OrJ`Gct#tzML7 zw*OLct$Pi*k;{X_@f)^?=Py}S*?ZTzv&I(k8ex4f6{9t#tn>(C-A4+zA0R7<#A4+) zY-!J50%rhX8X~w#JS3)Kv__;geO0K%ZQeq}nOIh4Y$!4X*PUY=Knkxl&c5yAv~*&JUA#l{V$9lQ!zTZR{deeG6i-l-=pOw z%a9hDFAM1_vt!YgPlX-irKelDXTe`_eK|@9mkm!-Kzs&Io6~?`Dn@hk5XfF()p!}K z8gIg0Vm6Ah1DK7X>?LN^sQlGWuxi{3tH##YOPGq$X4R;BNvSzK-M?-w=x%)t5vP9t zC|;rRTk%=55MlG5?eW+PTg6=eGR?KIgBuAl*CHH8*S@$eu-Fp_dOukC$Vvv^1Eh_rDfa|Y3HBKt{?Jn zOvUI)krKJBi&qF|J|bsjJnSC$V}Hw6z{CA_wtu}>eT%Tac-(}sJ}z20rR6@4tW$1Er5VtUlJ9gWnP&dad>n9x6}~a z()ZXCIqH+$GiBW+$D3FPZfPO7rEB3yhp8BCcTrt~OHivNh%@>zRus3K=W%k}j9Y-X z2MF1BnTpZL>*M|VhIyAH-cm=Nzb_uGzB;_uUO0ANyzY1JhNEWRbx-UtaG3XRLf0S_ zm7Iz8UGKFcp=&S;yotOUGi~)-%^Fj(pm;1EJvsqZD}pzO?`b0-*NPn zb!pfRd857Jx+P&d?7Nn+7caa$o0kp|si@?4?YowNT6t(k_;&YpP&jvK@2kQxHWn|E zd*_A*VHuWI#O7Ijz5XKiBPMHz zNJYhHE#uFzBiu?YhGx%88yVPnC%?t(j=drvP6K$WVxM)$7Vk++#b{oSuqA7f8GNy5 z$;OU2)tHa2_e*JvO%t>U+B;vA&OI|C8m8gHvT0_pFTxHa zbNAcoPHxk8ZwP;PalwD%f9}6NoV)g2%ZSc+!_UDkCx}#3^1Jq3%h&x-?fZyroZ8Sl0c-QlHaxOS_Wd7dKSyH_0dAPWgl-7meG4e zq1^ec+J$A2RpFOhO-5ePhw%kTd<|vP|rFHJ^9J}4UBZ06S znGKA#w9b-6IF+|2EEN9T{cC*4AB)1epPl<_{FS=8U)gu96(dqnNo(!9wmiGVn4s;l z*5UcVS~~9?IvKzC$7b<`6SfBST@i!>!M54Lo+qD~nZ)Yk-voyhR27b`aol{{h zF)w1@wG2k2qLSaW?^?!3_rB@pUN9^i4}PzWd)xEI!_tblXXFC^{9lF!vz|Y&)^enD zMl*j6@08G0GyZDYRh#p8D&}4+t?dAR6&QbIIZ`^KEv>cs1H4tQgrun6FKM~!-)$d` zbAirjxwa?TcSYR(zwg|V2}CL?sfm5pT9rnG?lFkBy%)A#Cczdt49liX%B^>tQP8oR z2SjJQ$}kn9O|MVoKA*zFf6L>qxS4o~WBpcs6TI&B(z$m(c?IV5RE%3;AkMxVJpSVpd&YI|(>{a^2WUtbr zCau-J+KKzeG$2}Iw`M9vo3vI>gR(73d%dkz_0n?vSBha?HIA@E(Bz3af(^jE&Iczh z?MOw%XgxoKtGwkejRo;w&c67@7gvU3aL1l~xEqMvxNXF~Ys(ptib{IazH9H!kBtZl z-a9V)pJ5YSmK!r~*lB6$+*c;u9JUWpj-idx_x5qwUBE3d6{DGFbevxhkF`WNsqhhq)#qwSB;r0O06WSuT zVGS}BqhImMM>pjNTI@f5=-9$7+NPGj8as7s@BHY!TMA`JeOtX-KH76uwh*oNQK!krhX<)?KVnMB3t8IcOnH!=!^XhbEsWUkv8z7zUGwsgtq($Tvv)ZZQO zK&j}laRpJ{)L_w<=S5e4Rxp7mTXU}ab(c$n=b%;0RE+*(Rhej!4;Ae=cjIKPG+ddGpuLQeFwAQ|B%kKiBLIRPBiqSd~FN55*1>We3!m|2Zb|Sy`|qe4AG4}(I3CYB zRpOOu6%NOI#@H%x85`~0PcIu7+z-U(@FKuej4rdYO1!79XjmWpIw{-M;H`y=#5Xww z!xqkYtyp|*$%5hU+IKDE1R+vUNnhD_oh9{;eCj{nuUxR`lk2>hA5M<+-z#OnKIYKl zk&PqMGQJtoI&yUJW07$+(!%eK({=e?zu@3Ad&ZX?P55;62%Z#z_x-)n{Y)T+fQOOFn@4EYx$4z2j;tlfJeTAYgt}Yk$ z&$=s0L?3^$Y}jv>*1lqd@5kJW~m%Y6S zPUcC^z2QrHY`>C`YI;-EsP;6@cG~Um;*OK~?&*q1Ma5_x^YEA_1k78CBJLuD zs85*JHm&HaSJZ6=i8%QQ(w<^gk3~IkIvXZE0Om z81ul!eA4Gt<2KH`?^-%<%mW*9%aM^{w54?fzr}64U*hgu_{}|$8LcX2i0$-ej~$Bq zP^3b*6FokEPh<|hE8++cy%PwgV)TgG2O}+8R>;tJUPFg{=jQweA=W31PDZ>6>a)X? zXUMo^K2EjbVUO;1=0#pQR4nXiOKV>Z17dmNHN$eG-x+Ob9S`hqp6!Y4Z+$J?6XmxA zt$az_h^4iRD}mUYu)DJy`7K6UTFY36lc0U#{iEx#m67(HONMoyKYLju<7A1%EYa^; z1|w2Y$?w{CEo1iQ^@BzDI}V=V#}X4Fmv)hTuyN$BTTZqbURU|gBkNDJTJVpQEu7`> zef5J8_-pkj^vH;c(SL285GgR+PR?1_51)W%E@<|9cNeMWVR|6H=PMEv@N z#)~fKRVDkGVbB&SF*0B(MsNJLNc{f7`b)A_;cFYO46lOUHEv1xXc-$jm--i)m6ujT z6HqS$imCpK7QRd0&tWeb%uUD>Z+hooM0f@nsY~4-B1cWC2820e^Sh=UGge~0DXJ)K)$I7}(%z7av=Z7Nt-8wyc z%-}~|;WU_v(f2$wF4nJnl@Ja8)X)wZ1-;iT;7cM~%E#qSCiQ*x!P4<{HOqwk)9}{v zak=TKH0qNVZw?;oS=?Iz&qGYb=z04~$KPyPCb5e?)vktLck5+fZ?H=_{w1yvj{OX_sMv$o(&9f5HI+RflWn6=^))2z67(zHCD?>S%`WZF+3sJ^U ztaGMfw3VU!RpASscgxkRKC(uBfi~ z{i&F{uRqfzlJ;!Xuonjx?h@;CP1SJJ8m{jWv+s%!9e{N}FcqV}-gi&L(9mM7GtiSL ztBA1bzEQJE)EiqO-1~UP+51Z6=shFkyYO(Gfw&%s3Amp#6{GpC9?lXkF-u&&xgYLR zIx4e7ewTMXMD0N&fg+e!ld)4X6{G+Cq;ynfiLR(9;%%=*ylwFrHnmfk_@k{vIsohL zHl^av94Z~|wFk~C7th~!--bq50U#v$B2zIs>+O>9kuR4He+iMyj-7IgckdkB0>1sL zuP4Xk9woDS*qSF}y+)wB`>Rp;c|a-12^>pO)Wz8c=~ z_Wn>PZuh9V51)5EqXOFJ(dgJMU%%8AXFHo1`#kAKz5(mHn=A^y(0Sc6Q(Xz$T4a_pC&1G%w`UvWWq zzb4-9{+E6_r`79P#>w~h8LQC_zJ9r z_r+^^)!?0b^puG%Q!(03HLcZI*jhdWd3aB}$`qYcEc($^I;-D4T{tTDOxfqJK3+I# z+<@b}22I0FK%`@~GZmvx%`6r*xdz6(T2A^E1u|Vk`tugt6hz({S}`0ozOlT2Vo_xA zVA(4}56VxiPcJZcnA?3$X40*Q(Y&KN&Lo_(0~4HOg^u44H~B>#m)Z50rj=)4gyl%- zjJCAaYSpag+=5eTd-wm_$m2UQ@8`+2n%!u-`~58gy`vx1Xg;oQJaSRDN*UtEiEj{9 zy2T@nx>ri9sH3~Kxi$Oit3FdPnr{}4^XnJe+-`jbdTz}-*K-adUVUXpq~DB+8EUJa zyMCLy`2K<3(tWS4jkh%C97b4e z)u+=TwEVI}%Q=S;6L2GY3O6r34SMg`=Kc!Ahpj$s!a0mscym0`7ri_3N#XP#yLEc{ z2Jk*rF%zHeI5Q#~l8kNL{^KLUImy~C-+f#}cpn|}f}N+QKM(#YhP{NT7@d4SpFM9% z%b?{%e?1UYjunXtw=KW*%g;Nlj2(%4NA|$Jm<$ER% z(w498JubTw5M6OPGZmv3KT|9&t6A51y9=*$m+fxg)&38cVQms#E172)QsqiF*ww(h z4!bo|F_&R-SUm^FLwY^}(sPkam@HgM=bh7}(c1D0AwB;R((`8vUgt3tqj^VloF8$X z_r-Y*|LuXD=Tdh&`($m~`KbJEe;@`b2arU?XyX8MXAp_-NyvALV?0d0EA21|f{cMl zgmpZ2Ln1s7h|eI|W-3OTL|Dh;XYf}GPQ2pR#V-2mvC2`CG@Hyy_Fa>a>D{0Z5K~ab zV7!Ji6{GLpTqT+>b-n|h5L`%#dSg7g4O$X2+0xCUXT?lnzGKkRSiYp_V|YS%7>Hs( zFcqVBCvFouf-P#b@HY=>;lF)-W|9nf@%%=VqUTG-~SnO7SA?3x_M`tHl-LPc#!*U)zY+zjFNTJ^I~o zp6)W%ul&{Y>`9F?J*HxG*47H~YNJ%{t9(gSIRkMkGM+(ZgYhLYmyBo7c_o;s(0&k$ z5vF2v!+ZC%5*|h8Rk1SPrT_SErhn;sBZ3Xvr^U8y)I0JItDcQ@>YSD_7v*hv=IL0i z!*+Mh*|^VtZ&SCR;pB<_c_T~3?G5VI!e!%;C3-qf&nXkne_d+2exIKMyXsub5~gCb zNhWn(je>?neax*%K-e3L zh>C1M+F@Ln)O}y}`O(wQh|EFsOV&YuyAEDn?JKQ$E_Rxc-vPk~WwjH(_UB zzIM`e-+&iYdD55?wC+AzA zA|8VcB)n$_OvUIwzrQaqQCr5qTff^)d0Uf6`lZ84$LE zsTiFs#o6CuQF_6nqup9K&zXa?xg>iOpVaW`h^W&`PKDh9g z&p3s5XZ)^=2P5k3tQ;LOut=g-Kfd0``*=`#_7>dmn2OQKWk{p~zs6ku8?@Z^S}CK$ zHc=)-?cU@u`t_N)^ohj^vLhk z^yO#4k1yb5L(`6P2fqTOb9GU*e$(aAX59Zvh| z4h=@6XmGB5Z!H=$s&K70x9}6OBRDxlPT3;% zSZrKETcE|46Jq)A9}mEeelTJjrsJGqzSiE-(7sic9PcW z;WMlK4cAl)?!=zRW6SG~SDNEob9%M^3=oLg}b)OVMlcZJ`z-j(@dy(?$9jfbA+(=Z;7 z0P!UdOvPv$51omHz`54X2G0v_$<7R!4Sd_`acAYY>YB)n{<+QFf{q*Z`IE6zGZmxl z#L;=R4JXbPoKc6d)|raOIT_Ith`BhUp2MEPRE*~Fcbo&;J7j0!?XCd$5_^f0ez%u6 z=}~*T)A4w^PnGO99~$j%DKXMxDn{GeosLI`Uz)kEHf`?L?Vp*nYFQS#=#h||DSjGlVK@YtiH6%E_h%G>;<1$zZQ;;bFo>e-wq-cgjC75&ft+A(GERrGd1~wJAD^~WXrV*nG)X{$X{eKay zfT-tNMQ{=u9?%mKY5e|UmKBm7ZGu(6)b+-3{o_=#6eg=Z67|n8c$C(4$ z@Q+{{{th@~d)t!vGjL+n=vTSLLZ1431UPLW|P_Vo&@a{7#X`9~ayo8+o=+hD2JZk~=i^_nn2qG(4q)T2OZb!BmW{ zaO=IXB2)C2pgRaec3O6Ncf?mSgv8)5gv8*nGBh@a)F@Gg$5f2AGBnQ53on-ms?8}A zyojg^Hd3-a`pvj8wr73O42iU0qp2|znt{4CP#*%pRE+k1Z4QnS>}>Qd+M&HDE$q>-XROlDA{qbfH@xZt zfxZe6OvUJ?lkbU5ucTF3s^VD(R6Y&HhpH%42iB`y{mCEdIM3*trHadHP>e6DH*pZqlTjLS=GMl}r=?VjSe6h_~f3 z6{Afqs%1R+L^*fIBRBb9UOh6f6H;3K$(X4z(RG!UvrGV16VDvZb(xCMHWM}CR19bB*Zuap({X;-%8^sX&RRKr>~z-n zICMG(OvPwhT^b+98F_8+4F0})r?7ijuSl%oTSYS@o-EgdYY6QGP+vUi+FYVlSi>3x5eaHRNMIVtuT^Onmf%^W!3Elo@x!_Z8!+_0%}B>WT_+kxc5C=c*N5 zumbCYsTkd4M8$ai`l!-!qC4u{DI2%p#$wVM;UFJASuvF8$Z0uZcg1M^F)9}ahunOk z`~AEr8w-IKWhzFSL`Qj1xid#GL+0Ve!f(Iw8fto7_L`-$L=ZKAcpnI+`Y$^F6}fru zGH$N}-6aNSV6OnO23eAxEIseotBgDI$L`|aCy9#D_R^rW!U%d8K~F|-WU2A7k&mQh z$c&ruze%xCo6^Ej8~57y*olFfhBp!*Udz1JE3vw;%T$bh^4p2AzxV1dInG)5BdfM# zO3R}dkLqca;v!X(F}Ulw%JCX2i-q^hW`(MR-?ewgx0vYfS~R7lNFbSt(eq|hjQ4t7 z^*SAAF7D22!I#X#-FeJgmE)$RQ~H^zap7cSE(JxZ#)Xs79qu3yZBDduAHpumRE%y{ zze?QnfMom}r$2fYB1qRpO@1pJ&4iT8Ui)?K3c`add=$!Hs{f*8%(Yg6xDd1CBiy|H zOJ)40{8BPvCgxNpaIZG6q!$@&Gf{iD8T41gqt%0W8D*V2K4tjy!6u4`=@~$b#!k&t zj9#?6QdH!Z+KwvFYS^*=4*!bIN!TL}cUr zb$FMo*t(UnCcbR-M1u*j7NrY?X}n~-T*kW&h$j$foT(Vi`!T$Dq}TD*wyfhlga}}^ za)f(fw5=|U8FmK{5x0)F>2R*kRE$opRoXY3{S(=}y*008xyx7ViH(MaKo-_S)`)oQ z$7Yo>va;OBXMN+b-=PQa>{O8&j0fjh8yxH#XosCq(puvt<&-gwQ%{`spmu@E1%jy< zZRenJWIND~6=?Ybh>B?KkQ36{Av=+^T+hKyK(s;2Kg7w&RE)Nk>sedu^AbU`^X~+| z0Sy>>gW_AUeb<{XBT`Yx+P3ey&WnRX?gS3`9^6=rLzekt9J1VZ?3STXb#DUoEBLzu z2&Q7R@zgpKW7rXDV`o@8W6N5j5?duV;w4n{B)&rnFb5{U1b zmTt^Bj7a8|{suxK#K_!b1XJ-Dj6D$u>8opB`>+Y;Fv7~yy+pj#;V)?Z^!IBR!BkeZ zBEAAbymHTawaOaKVTARYu58{l~J+V(@i;t z5w_BFo#&v8Iw+%Mo9%gPP;wYyD_9Y;fw&Qfy)(Att#ip?s^r~g2HvAe;yo${cEa|$ zB%GzaE(vdF?@{vIaV{Iu!=2S*fA*I^FcqWiJxV#tQr)|{x#{PJFAWFVl!=-i@^8&c zMNJQR|GbjXe68XKx^{Ix075+WG8LnfEkIK5bydxY$%H zmvIV+im<|N3HcRMF`6~-p$}JRm7i94m3s&gg6suL-qqOp$X>A2b}6mMD*t^T9s+`? z7;Sb;8c}C(;Z^=8h-tA22+m zL)JCe6NtxCAehS1dKw6IH=txsTI{{CB(n7VPNc%{>1X8rY4kX%PRI)mm%F@aq zKM3kkiCS@vrDdH5U$u?o%VaKr47pUF{q97(<4meECSor?Hg{zV{;obelK+l_w<6!( zikOPgwjQ;2C)`&rnCyoh{ycs;G)b!5O!=J~p6h{_3hhkcXqbx8{L%>N`ROs)>(^wt zu>VN1`C&^fw%~G{jzD|`gv4=UD%KriZ85w@LE`l){<@&Z^5-*dHNl(MyC#b7K zMmFrV!ah?mnz^&^RVLU9S;lg_%9vzAPBoKE$Vq0h3_aBjK$dX}WErBR$5f0qS%$vK z$olTmBg=nnXQs!}fg&BgiBv6?meJ!?)$%u)1H49L)NT6uRat)7&oe!yVl?Y=!|DZZ z!speP>k4G{39M9D$|<yvW2T6>H~2C zi2qUCAb!L;XDUYXYId9t5C!88XifeM{Y2Ji zVkz*RF;x?iVzIS+P~PXEnRyMO12Yw)?IliUdnP1N_hZcO$Ls4=ZL=aGt&_3kbBWI@ z$GHHA4=_{i#w=kfMjI!qv!o5IAX-7w`#AJ6cz@-VC->DaK-2xAeI zR|hlQM;Xhi&I*0jh|K$q67Rylk7|fWI$1(r8g2LtWiS<^mp?Eo4-F5Y&|E$MtHbLd zp*PKCku;hvhLmSo#VT*V8Hh=}#-)!3f~gp7`Wh;;oP$@HVT-10g#J}v?<#WF=N{#r zhFwv{!~QSF_iuz=UlJ9g`IS6RpTV6_^~S*XMA^w~-3d=^oTct?E5KP^3N56^@XpCp zjJCC@H^@2IMNcPQ0r)1wzuW7NK@rn6f$ljFM}cUFeV3^i&E@6kOoSRKb}N#*6aVg{ zI`>BMHBx?qYS1R|2<5a+YwH5nSH@r%Or2JrU95&@(EbCnLHa7?1oGGMd{2tuXAl_n>C0@Cslz7TIMc)wvNj z3%#E$i?@l0){E{wUC@S6csm#k1XD4Z?^KXwV0Y_?eQ`J5KbUG^_h`g)Klr}mI0Jxq z9Q)#cBe_0PF*>z~w?>`R&Q!(0Z-g-apws#MLJ(LT6E^wV^7X7j>vDTz% zj_B#UuJ3NQ!s>ECi6Pe|X=XB-b*sUL;!XJATT@!f+qS(4%dXG6Px5|M1Bl1)iVXkM zNmPusS7eoP&Vdc&^WD0J_d&LzVVzyJx`B2y5Yr*IL=2uJ&0a>cF0bR<(jz@Rp=}sA z2^&{whrQRz*=KhuJ=OksAU!>y(U?TVXtpeOoIZm$yK5Kp_L}`VF6lPGx-opSfcMtS zYlH7Fe{+`<_M1I9K4S0v%vmJM6F12dtvIzUS|(SS1i|2y7?F znyaQ;t1X}14dcD!t!W(@Qh*6>` zOFlChZEy72@`teVRK^bU7v56s{E%J7MpJe*J3n;ySq8*+*n!&My_TsMZDX!`VtYh5 zstqq5h>PrXtXn>6UObpjWcfZkqrLNhyBJC-4^8mf49fJvn{a~DW1pF3J)%3@j+S>cJG5oIzh+#f$5f22 zv42@)T3TAhFE5B~#@PFNZfFR9nHAA;&S8Y4MFT?P6+Hm^_7Sj&+k;thYvBvR`;yEC z=9bNpL}y6{AX>mC?it)zn2OQKT=UkR>hpPw>*aAWYULWtgl_s7yMjh|h56Yy(Sd#EMU%VzfyIbuUR9 zz1#mRw_H%92V(t_71L-%I>%A9wLfZ5WYcAH_A{8ahr(_(%B*c5%bu zBZYkhndO|E)O?3?93MKVOM!S5I(JOPXtS=<+r;&-US5e&{0cYvR)tDN?S{p^42sVy z5fx8tx;}RK1KjTi)C=ChJ&LIq%{~sWYA>7VA6Z)~cnM`#FG}6bZbE)nYy`f7*CD+X zZ2;mLSXvAQf~gp7J*~Am|MY5CERn=6)i@RzTlQv@Y=3_C%xd?FYpVr&G3HFgXya;h zUde7Uu5Ok;^7G8V>{Vpf5B-*6Uy<_6-azNolJbu zhdhzT)_zwckS#AR5f!g|l6IU4b?2sE4w>aj$Sj$P(L5I%=dIEG-CwajE|yu+XL?M0 zo5|R2O!x+nQ9IjUMl9b~@xx>LyEU-}XJX8miqZc1XJh%cuahd552}rC7u16cne8@t zH{kV;GYW{>4+71$qUICr@;liqSIP@@M;{@L$pk{!9J`IfHp4k^V7nB+_qY@2<0bEc}-o zfd7)xkg72iqs@PbuBgSZ@fr?4jgMkH*rWBdcF-xiM7++pk$x8)isgH{eHwOTV-QKX z2WrJsj2>5FcP!tV?iz2U>t^=z-UcVbJ`z5LueeF@6(_4G*{{K~?n-z2h<;vcoN7$P z=wu&4qxMbnUtdz&yBsa&(pevlYwI`{Wl!^SUaIX4t_B~!q&3Ir;Pb7qzizIW*x`PJ zUEjyB?-Of4w&63a2U$^U^9MhZKSiE52I3?nMNGx$!GJa`r0HnF^R zFdc}eus)cI(dIc+*GFM^(;Zo}W5`o8C(NE4&Ht{peDHu0c*hAn_TuGT{WnVvqwSSL zcQ|;`@y(Nt`TCIlF|@1+^Aw`9{TSwMHF)cpgSpF8j81-I>6p1Y`{1-;ZewVY58t{y z_U5b#==Zh}o*6u2a32Jx)C$~;=`h*jOg^WtOULmdQxb?wAef5LCLL7i$B>K~ZdG`|9D)&KnJ%A8$@1NA+tqL{ zhnLN(aYiu}qxrmYoP8DNr{_F7%uoL!GYRqh>Stru!7t7Y7?11Q&Wim|FfF57c-A&Z zpO?P#r=foDLzx~^ad~_`!sE&7Q#Mvlhp!Bbx$z$|w#H@1m?z7^zr}6)&&vjStDzCU zEOAGck+K`MjDg*$bp%fXu@ATHn$U=6Dn=*!TM{o*;%!PiO|f5aUK8f6N6R=1#1tT| z1oz5RjOMk1w{2*Wm%z9W$C#V^Q)UB8xmfxIUly1l_G-ygj5Zmm&a3gTI5fLElccg{ zjZiUKrL|^v$G^pBlf9~jP{OuP?R8C*EV7_uL8URAZAA4 zp@*_VPdW+fe%W8mx?A?(a5S9`_JzG+~P4sOYA zMKYJn>Q~0u-spAAuLI)y8wUn=gIi)MMl;v%INkALG7T>#1#qg_TZ)`y_DUl6WqUo* zyK@AHFYzj~4G5-Uw7tFLbNYASW;YGD3EKgrf9!oosO&{ZPc^w4{DzyvNuZdD(Y8xy z871Kzb}^(y9nn`^kDZN(=TYes^LQftW*$$pujT+z64Ig? zc5Ux(_{FJOJRUPHtULI&rw|1}>RtvM;COI=TB{#Ep5}kIytX$0EoUl5pZGZ^_UFNh zAsRCMp6Tg}UTYMT$1ZBJ(6Ds!188zlJ#m8j)6=iV8)0AYa3%|t97da5RNGPF%UrjW zTP1iLCntNCGVKjPn{}0zk+nb9{VTmnAf6DIiqY&3-El5~wFJNr1J%$t#vZoZsl z49pjj)(W@nz;4@2#prI0O2jR)hvW1-+RFbKIzJKx!(J+--))DJ`D#0yj)!xim46C| z!jN(@6{F2dqR#euO(wW$t1tJ&8i~2>WuN9mY}DB681}@b6Wj-Zn2a%JDn>JRE^}S} zWrf;?zn^{~W*Q>lnn+kwSz7r-Mp%yYD5EW{vz-wf8HBw>T3TDq2+NV*Vzi~T3`9$l z=cGbD4_Kwy)?cDSv9TJO189*&pC^Hmz$pkxlj{ z^VKA5I(Hid_5BZ{?LvJxwq)Jdy=YuK#mK&!>|<*Q5EF3+*^m1NQ!)CI;RWO3Peyra zA0D$V#vA<)Shd^^ww7coN@xziV^%iw04~6aVk$-_xBP8H|C*nO?`+m!(u-^jX5V!L zml7fs6{B@LruX|Y{h6A5-J&NmJ@dFGy~{pquUx%7V*EUGSROo-{?>{IT#0_lRE##S zY&sr@Y2hQLML64yW0Crr4??MlrL`T!f%rUuupFUcw57Ej{jtWMf!Cqi;9-L$zbrj9 zuR~hKLqL>=*P&IAAu|=DSyGI6HJ5ys{$a(D{-f~`Nt`8flO`k6mdlDtXob0UddaL# zwSu)Bf=FndxlHw6biS6w7q8slU;E)zUKh+O_P;saoe;AqTFi068{*s>{6~Q}3oe|g z7;XBZ+73kR2`p-l^`g|*yy{4gT3Xv7v2iSFkL3szqb;rD(G?a717V@C4L5qzdz8L1 ztswbb(;U*B;TItOMVz<|;CGpd(Pq=2wZe)DY(?3;lG5v6Q$8-99EHl#S}UxmJcQ*4 z6{9V!WylD2#Qpz8tPkT}q!(p0?FAzo*~CkV;RugLNp@3la50zy33GZmxl z6TslG2x{-NlwjF zjCP!vl?VAVuO8z4iQUIml+>i_8N_K=QB`eolHxSHRb`Mr7>MUEQ<#d;QzlJ_NxVCq ziF+@b>3)w_fMwv4ZI_Yynv7J+W6!bB)2}(x9SlSqdZY#nC|_S^fxBR=s%i`7@wm=Kd#LefIhHkEhaWS!I;@Cuj7 zjp)vqtC@Dd_S~u=Bwi!oJu+xqZhjNa zVT4(FtLDJvC?h}_+n-z5gmV~Sb`z>OAXcWuP)5mFKH8x^eI$nwY)^rB%Rq=_@ej2> z%bSUE7Fkb=Mw_AajKZ6?jd>HMvJn(2n+vL+_%zB8Uov~Ut!T_SjIjBp`iZ-NC=0}A zMLt>0IgGG5t@?1XK19QG%7kz8X1nAt!q!c~#sp=oKpE~2EgEwUBa+u(6?l{1QB=pA za~NT1ox4R*tFKY3{ngJjOCtU<07Q`vVNkM&iGdB@)U&25iz?2TUbaDE@+ zcOzJ`0^tF%1PG>LwCMrpX>d0r^uxi6eu`7gw7Dh6q8iCrVv&y&u^Whc!HY`Fd!}Nv z#V*qGyg6i7w?QJc4+t)usTl1zHvv%{hz!(P8;Zd&YApgRKL%eQyH!u!T_H*t9<2dy+*js6k|5Jk@UW2K)c_p}1=|x5- z_ii<4*6e|-FThJRuOgm(JS!b%BQ$H40r46ncTB}-)2z|CE4|wqck_ba`dBt;F%;wm zVfv8yBiI0|N$wv^#c1;zrT33ft&jT^hW7NNEWXz)-G3%#Hs{HAoX2lC?hkrU5lqEs zOKb1OGmiW15@qmjG1|VXRs3$0(fR)=Lw?uL>TS9K+HrZJ49?-2SQ+o^D~6lbLqJse zPpu>;6++ulv%qyhyqNCP_J%DvtS@Nab*FBGbs?v-^lmCDL7V2Go*&=<0^tDOxwBFe z&avMWgy~%B8MP7A!XZl;oWqD@>jAM59t=dh+cj%AhY|MXsb}pKpw0$rL8tmnIENAT zZlvcqe1!+Xk$nq}jB^-~9A{McY5A+)ZB0`~FqOSvDVG7hB(zwM|N8P;&S8YTt7)ya z;`c?WeGj+{&S8YT_G!y2fEs&l*t?v=2-BfgE<c3JZD{9NUx;Ol31vZ+CJR z#C&d4eqW}GAfbAWgp}?diGsU z&Xt?mxj_Pvii**amUWcnEpPeiYDtA!*LZ`H*)D05G~4%l#GhxL%R~H^iqXpZNEt1z zy|amx!3g7!!ZPyYqJp?%{f(;(VOEA#EBReRC}$}Mp_YG^BfNp7g-X&UhZVXkZ^N>K zjSXQrsSsb6&%r1xLu~RBe@;plglUgUpRmsX`<~#!36YA5(b~I+w;dqfb{N6_`=1Zz z#ql0G>$gbho5Uye*1*!r$uPolgo@FY))y?PKUyEoEB4-K{u*Tj?R!2)W{6Z&Qg{2V z?RX9`y?Y|kv6N)5?DAXuE^lcq<1HX=O&}~sev8qT)-tO0dC1-W*2u7ok3Q*wNJdq| z^}&)m`>tg$A{CYVu6@@s+D}{OR+}|AEQ3AsvTh~oTsqFglk43-ZW-(~tkJMJQ!$!j zDk47TKkM8N#t(*vf|nX|4kI{vAvEZIS?A7tY_M1Q<^t87`}=dZTGh!=4A1n zmp0$JeoxFI)o&Rck6HZ5KEvX%{Fswxc5U+|=489cr&ci)qi^1@CpH6q6_?eyrIq7U z{b-y2*?@uG`fWEhX9QC%T(KkO=Ea;Ga&ntry~jZB`N3H(evCZF%c62;jXFVgB%4(=FCnGbq`!BT|=+)|5x;Z15 ziakm?&b)`lde@wolr6LU#7%P}dlwW9S8CT|ufl_b`hK;vuECW+r2nA^%aQfWXiMul z_pmlLCE|wP-)v#zOvw^q85y_ChyUH;nE7oZmew+c0x>dyupFUcw57EStPkH-l-&Vk zd4TDva?8zu(T4 znaCPjZ%}-1`>ySH4~QF3jv!J|N!{(cw&T=&!@NJAe(bFZT6{J@j4JSJraL;or6ITE-JVbWR{rQ88M}z)TEm?y}aDX;ul9 zrL_!3SdLIJ+R|Fa(sow_`%AP6TV59)lU|11%@ZGO4K8(mh^XiCwh>F~-2LCXR|N4z zp4Z^7FPd78%uzFpZu(zX26HU@Qfc3{j6Z?cmO!MUlHaxOT1HLGt9#KFX@`v9my=6` zr_4?79Lzg?EUhhPgyl#tGTPFKS%RK@BQe`qW5cvMr0$m1T46;6MH2|i5h_MoT3g=p zR2}cJ29dC@W-eKrH(zi6WLczlp|p&i&uNv>o-3bYuU0whD3U^?<$9DQSm!}_42;n#?LA>OGPEjt}lJUI(L@VzQP?R4`De{6GmHF$72z0!s)ozO3T~4 z*e6zPh(__;TK&G*q_yS38DnYfT}D`r^eCe(t@DbbvL9Z)ES7Onc^}c4kyR^Hmew*D zVL3v@XiIAu=@(q#eR++p+JU$I5VKv4tqkqEmeHrr72e~2dfwIP&oxa&CBM5EHj3l0 zS6)3^v|ezd_w7c{x~Ha}Dm`jx9S_{-eY??Hj!-e$(mEc@i@s6f4``SwFIs%%?=j&^ zwXgKMww!srit0iGmCa2e*uNlNECuBEkB;7fu+354ZH3mI)`ZMpEf?tgy1L91g9jU0SuLP}S;C}AmMjvtj_5M8^`@NEu!M|(YwTvr)*!-L#Qc=n8 z+IKA@Q7d28Adi$#iPS)T*S>2RiI#_mR8&@m$s8P~wTGh*NXxhkD{z%pjQ!=J!G7l6}{C^)nFT5{Oh( zjMjO@=lLyn?~MruAoYEt#D3aKG_CDmo`IfF?~1_r;n|6kib~3} z?^-Kf=W?sI)!F{m*CMj!h04-e2Cs9=5h_MoTFV#q;y7GT5FZq;ldTAH+ubDxy9Rhw6r1;yJ(2894VdAmeyK{&UOqnlf9(t zu`fcdSaM3V-Wzhu^1Jq3%fR~Zji*jU#b_-7_Qc=l#weLE2 zdB3vWmC}VTmA;a?TUu)+`xPWCVP9E}P%+xl+VXASkmr7=QiHEzi}QE}-UsdbxrkI$ zQWN{GwW%8l+-}7Wv zu{poztrbfvVkr>69MN@dIZ`^KEv>bhiJQcU%vRx8@*P0r#=_6Z?^^m?gyjeoqb;4^ zjv^dq@t4FweMQSKc^<8zlzptJ3c`FNW_4xLGz4l zF_TPLTFYp9dQ$qF1j2IUx85j`kG6DP8QE5b%|yxRdTcZ1n3iYXwT#?Tld`RhR8)-C zGO#}KWMoz=`K=>;cE&`iCRCQzGFT30IYPx~OKTZ-O@G5Z2)hR9E0(vhq`U^CBJLmwG5n5f$^fYq9jM&bc`>x^tlMjkGZT15N`^{%cZa zDcxRsr0$m1S_!2gEJvsqZE0;eB#^F2AXzTLuRZo%%YX#Z6$zx2l!{7zmtSZc2lL9e zd1WW3w2=36`>uV3dF9)@N=3zJ?W@FXBINXUJM+R9Mfok^YV2-cX)U9K-dI9}<;ZU_ z+R|DE^ShE`cO2#{EUjfQziT;GhN113w2W85A)f`OA-yY{@JomEHI(mw_FWOffLQ*J zB2rOFP3*hYY7VVh+ZiN>xqC}1;!fHbEJsRbw57FHI0rpD2YJ^Q*@8&eg+Q0NgkvSHwyM0##HI$2KL>dR8zu_~SQFHucU>@%X&=3 zX!CljI>Ms86aQ1!hgtecFS5pteb@7R4G=4SRYWQ(M(cPqJvrLl(tA<5M9(&louYYk zU+W6d&s*x=ZeBgLuf8}o+HKWqQ95*;lc*S7q*0})#UX&+W3-+BH9Thh0A1&-w@bz? znwZ(OOKYdKDHXSfV~+E2>vn$GociwjKrj`f&Guc#BBu{jN?7VO?>EuCwMAX;=^od5OvPyS#S7aEFWv3^bh_WDQf9Dk z;F+9#ZAyh_A4kmQNZQcRKik|rlG(zqdt+w6RE$pcrrWAbJ9ju*z5y*a?_$zIvl5ZM zGJj;+^2YE5FcAoNF!Pv-(Pl}a^Xd_ddDnXvrSAa3##w&LMo_41%(aXL$49#@Fy<2V zjj0%IW3FZV+@q`erFXu+7V~OGq(apE>~h39j!_5e1bF!WE?Ua%fc3%az+yAVD&lqH zI8A^!FQb&34g^y%+G1U3t%^OoJN?_4!`#nMEB1bIW9wa!33pWpM{~hVK}764b+$hb zM57mmxt{>RRE(~C?9+&OSaF=s;ZbEY{HhIy6@*!5$y#H7ZS2R*ady5_+uH_2Zq`JX zsglrNPKXs4E>_prE*jvUTg0zyf7#IXD8D=54$LPXyMuS z{)t5qu@lyrco2xIVOd-h2&Q6ma?2mDGt0XPB39-0hICu3-dISz2v=Zn^2W`}^RY363n^ zn-!xitu{ZkQLB21GPu4>Wo6{q{J3WG!w9Cbw6>gI6io&oGg0I-c0;nXuBgNtOL&j6 z969e8ZD~CR`}SCrod*7=0%jvy@v}D)w))4s>a{5QMIed*!BmXi(`RO^bjQjeKkqnw z;T5k3q7NN~9VGh@FpY%K1KC(?D_^ZFiWcON|QM&tcgcII6r>+8U5}!FO{en#DUlkYe1%Aw0T?66$PEUz;y0RS55kzb$l$X z6sprL~L~J5SG^G5k??8CuTshx>=;8^+_->Df6CJ{rzMreZYro8z$b+$7u5 zi>&c!-*rW?ggzA&qjfyyJT}Zr#8GrvOUF)2Ij_uLpYlE*15p!^7bn4!4pT8YS(lUi z4*KSiQ0}khYf#4Dd=TpC?B)A5^qGp$=D{%kweQQSS^g_uWCpA+Xx{MT%n0ob^3IRC zy*sTLdwG_>4j#stiqRIUQF~WTsb_FLO@C~nEAlq+#3u8{tbV0`*cY0fYOQcGKZKou zsTeJ3vu}Z3_y_yk=DWIiZ7-bYa`X{i=gBb+@7%u6?H2Fm9mRMs6{C}PhO||``4?0z z=A8w%RC`*X`0cYr|7vQIpEL8Tr{ht4^>6;YKnw=L?t{{!jAs95j`QyJqyEBKMT4_< zU+bB7Tj`$~haQh?L_ElEhO~~Dr(2y@^IJ@GtG_#C<5%e6hfh|Fnii6IMw9YJ?5-HC zKgRTAer-O{y$=3&#LFgAG1|PRDbG+Cd&v}77yk=iFRV|=?MQCp{Ev@_2>`}Y3i{T!HI6p}ql-U;! zdsB9tZ^!P=p8V1V>1 z#w(?Bifa(Jg~k+_XYeeEtQ`=H%k zwH=3X>v|4|C(({1Dni>GS9j6BkB#=XLCzp?Wvp~LCoD3h+*quJdZTZCaGBIlf_Ss97cDSz6~6>z7!LP%+xldaCWKH9vjugkk;x zoCZIvdN$Sx-k;~94CZ&34|1I4b?2qu_R&zk)8Wh{Dn=)J%$kXFa5cOLf=~20Qj7Vp zl$p`=rm9hqa_cOC7eVj*gcm`kVzha9)DirpP`cOP%_~Dr-|TLrPgqyUzH7^W0OGm? zA{7;*wRbOG@qj-cv4oCeCUV?h8#SS_k=42T0}wNTkQmZT#ptP>%ETXSrSdt)@p@ND zU--~ye`|@6fknFrOQ+ag$!Bfk;|}TX93SUb!|7>$Yo&BXTSN@4RjIKf-0NBl&0di< z(qkW=c4kQbuuo9OS$krfd+_59;-%SRDn{G6qO-kZ{mt&K&b__+;5mXV^;mwvat*v6 zU$xoo21GCT(qk${KR$m?#H{Na2O}6XO^hJxG>eXpS#Vie$NVQCY|Jf3dY93b)-k^l zzyBvtveTJ9wdAmVv!xYL2Z*Bygyl%-jJCAas^fy*{-`%cg=JVYV>!K;hqLdx`@8_e zLkUDGDn{!$SY-J;f6B9}Wnl=(VcyWbYZ<$i&GV-x5UHpbtz|6e{HZ_n$bhgNhLD_k zuRj^-J-T3M`)uE}3`V4)Vzibq?%o2yg+F!;%P@rGaI6&ju4OPH6&0hkj9a|Q!R1ps zgk=~)awbs>7W=Mc2%=5`k&24ZTE?i!^@5>A-LMQpNDli0uPB@{mbY2;r)yi^&iqV$VGUm3b>@}Q{=&MA;5cw^R5+dn$5HTdLuRQB3rn2&c z%Fm6zfSf;?Aby6?@z^+?@_B1(}I_M(DajaPwcez;+2MADn_Rt zIuOgPd458MtkhZtBbdr`>$MCT99h}36WE~bRgL4>>Yz4sx&S8Y< zmuRh)wq07XJ;*6ftGq8PzcCVN%Hjj#0y{iDd3GlHp-`9xk( z<-3oI^ebN_+{x@_A;0_Q_jkjOhJJ_4@~EG;`!E%wlWjAs44J!}!-)B_mxUVN+KzF> zi-)}{2+m=|(;a6pm|Ewfy2Sy}o%65FdP2Q^I97b5=f^)}%5loeA z`SMix&)(I#$(XCHjQkcO%yQw}GB}43X49aE^Sc(xTZ5d#2)4C`@5BaP-fZU_MwmDD zb8E#2rb^bDv=Nap=Nv|`{-x2&|FiOZ6G`ceNY-e~$7JQ{J^mNLx{>+xQU>R68Oc^D zPYs30_}xHyU0$=!?JGtw6=BIhuI-z*U6ultjE z+!7<0%A|(pww!Yq!EaNJGvkuKo9#MUr^RNhT9!w%MvCdyYZ+7P&seqXi3iY@tRw_e znKhsy`W2hD>gpNMa}Z3GY#A1Buw+%kd#j&=V5(%D?Lz}Lt{O1*EJiW8R!n6&+ghs& zmQG()^P<&_WWVB;GnHtP=kFyoGD@!gu3yb_%3!KwZS?^Ko<$qvUslo^i^b=Znp97# z6h?&CS``{mf0ZGaieG5#WkV54tz|HRsW^sTKE2e6a~P2v>2F)*IpJ)VzTzB4upBLv+@r-+?29$+W{DnEYp9b;pnhd|3xrWa%@@seJz7?7-1U5+Pl~j z^J>Kiruydc5^;&1t%%zuZVvZ$=_}4*glR6HJA#a0DvR!^2%H~zrvc|MA~^zBna5vE ziC`*`?&P1fCnELo+QDTol}LB;&+{Ggt_Tq_9*kfrmG0QyK4D?OyxwI5Qzcv1@CY)3 zsmy{$`)bCP>~%edPH8a^6<^C+ADqJod)wBQpMG#j)8ijsu~zzu z%V4xwnJVI+J_VZIa$UPM|3xs>g7~z^k@j|eyn5{7(7&%BIEN9Yld5Gr_(kzGEhgOo zR5F68igcV6IZz-iV>vhuL>j+nMbqZh7l*at97dQvtd_B1L!Bni-w^?Ck`*w5sm$J4 z5f{}xyRPla%2~2)7o(Fsm^Hn#Y2!_2r1e=zzReh6{y?;h*y`&W_rAGch~OMXn5C{F zR)5^Dam59@!+FIyjF6trKh@f|zM=8Z%8Nn-=P*M0E&t?fd09>5& z^6Bw^HqP#~KjcL@hY`uWn}&EV(-Fm`I5gJz_1^UCM0b~ZF+ABUbkQ!(1KW>x17@tp&U z@60~7%yLfJ!FFtj`2xf@i0?cF8W2pyXtNSh9hL%{3wxKH>=<-;WTMa3ixwSNs4P0L zB0hS*u=m#Sj=>bfS7Rzhv$dn+T>bZ$^c$gvELL=1@4F|`>6)sch8atQdAD<%uYq_P zh;2YH6{G9+A0H|Abd`jzn(m`n;oG*zaZUS^br|fszCkh~6_va@+IM|}oU(I*e_4$y zyrq*GC28q#be-ggIt`ml@H?-%-1A|B#Z;{0m#he@Iqfz8^N(0VbBRWvqCe^WGF zOvh8TUKYU;>31Nu0Krs@HeO40Kejx0D0@2Mz8(R>Uic(u9AaTlMJ#Oj-TJvd#crQ* ze!?1XNWU+$Ew(IEF`9K19p@=;rGHIkKQEFs(dUTS?7emSprx@=p1cA`{K5Y2N`E;b z9JR-)WhzFqhhXSzPyNe1^J9_V?9GjmbnDobkah7KXUnBq+%@AX1^2;rslo4Mqa`0q z3+K-ttI9-+e5kQ~E;(H~de?>e9UdKkcxytXFlq=>G5WJz<)Wr3?>G(bxzw9eeXhS3 zc3x&PChM7_9GhL4j$qE+mwLNu%=IOL7E>|$*JG8Vm1>CxDzR|8rph4qazqB23T;Ey zf#gVt$y$?70&zQ{RQATIWhzD|`xjk($DZ`D)rPuhT{4qwMmdHsM-6tIGnnn&5j|V< zMR{yFN;;3G;}mH+!7sMva<3o|OvPwhAF4-oH~axq8m>MdEE=t>&K`GGj*C|=*_|z| ztM)D+DkKn=BUFsGwC?Sh-QM&2RjLxC!|ra-{F6D4)IBfkceA^aQ8U{t9l@Z>d;Zu8 zRRXcjWGY4%JMvXdY`*xfkrBKbRuHcyydhexq`o(NUokG;7NjPY)^=P3#Hj?ra{k*| z`z37$yzd3(ea{f`TXrr9m8G=|(Q`KMdzSOxn%FOC8JTqkdiTP*W)So&*`CjA41~(; z5OkgY4~U*XJPHI;F}lxJ6{EM-J1?P`37hS7vE7y(o13HX*7krPnudJ=g5z<%()^V;K+uwb2QoW!Y)(2BD+N=+?cM`J# zqzLahJ2`iMo80%G=Y!Av%$)C>={xnzyT|f5y(sR!;@&O2D??|H`#&3_|4!d?ltMaB z(*1MQ&e?9Q-0l~S(6dbD8((dtR$)ZkunDvvyfqSktl*k)4PaM4%MXIC7>Qjx6c$+u_`5gVtrKTdkYA zkApAVh`TC5w#p?$ASo_2aaSeyX{jCNe!3yuhguZAZ2jlcmkG7%<#cML_bu$wC3l$3 z=oU7=>xEKC%h*TN#J}h+Ko7b%@qltyR+>3SvCQT6fGYEW|4uUZ((Qp8M4%MXvO26< zRA(x^EcALd>F~r##%(-5ld+wO)mkE&srR-ml)^OOdYPu}fAU^(c!<)7#J_)ptd!8Bt*DWre?WmZD(OI))2Rhzu$zIl*peC2fXzLS~L?s8U*qhwyg zeU!|7RDbm$5&fvfAEbJPQb^;SdQCe*uYX)J$Dv-0J%-kH?EdP#M6$?;j?Qsd;bGRIv`N2_#9Bckx+23C2>U6eu^ zZ@$s|V@+c-_;^L55v2ofHOW0uPE)fnF$r@@@M$WZu}mSNBN6=0Axa^Qx1h*!OK2{0 zNym=*3+fr9)p8FYt(N-_Y3HghsYvboXKLrSi9ji&rJbw3ByYZ)#w5zCL>lSijUzmV zEUi|hqhEoX#*wH7)(x6XpcK+_I$G7;YBa}LPIDZ38QPK=3+Io_SU6mn`X7eSD+VG(TcI;F4sP^dQ7iI_Lyz1A)+wV5|lz(N>J6^ z4r{KOcA?J3yb+TJ9Oxuj$*gUea&#Hli8V*k{s`Y9q%3Tas{QDvUJB<1WUC9E$}(;Lrev)M9#mG@*h zN9D~~mAf;GuQf+>C}CBi@<1u1o8NiMj=L-t9dJkVgAOn)dGO%CzQ?MQ=jA56(>R?jzob)U?h-yic}w$TpRQQb@}!Y?Zrz=09oH zqwmL7ij~}u=5)v{5stguN>S<9U+ARSl86_yo`_ONA1pRE{O1_?)-G!CRs8z2L(Ql= zqm0;si^E%x50}BFq!n{6gW>xZgr7X5-03}*#_Qv+H5_Wj|2oP*DWq4>TKG*`3-3TQ zy+>apoz>iGVGW`3!1=4ZpM+~KS4we>aS1=X?a6IjV#mAOU+f|ubM~bdyaE`nV)gE zGKW*dv?HCY!3VFJtLS@x`4akauA!QU7L2aO=c+3<8N&ADtSjR#vYtfu!aMH0Z*HRzGD;zh z7LTZ}I# za#?(k#$6{(J6i6GgIB2i6{YzHhKo|{E|z;V&3ydaTtc&n-^hj#_DeVl!+wlj93rA* zmp0ayW2WjTg*1-NH0=)EcRo$`o!?NbWLC|i37I=_&5-$(8fA2UKE`}XYYpEKfl^50 znHk3(fFbq(@Fj}bWpdVSkWsC}iMwjGWDmd)djNr?xTT7_YPGcs^w%|7t*uDCDAp@k zZ)GW2hgC$!eEs!tv|4+dz8@%sw5;N)dew)li_M~W?GE~$<2+oxube;f4OV$ooUDtD zr@8YM>KRZ9X|ZLadbkSL6ZHk5`K`9p`-I+m9#(waTh0s{cY)-EcBLa95$lL(Mg&SB z?cH69JL(J7Z;vv!)EMPC1BthZ@%*KxJt(&}bi!Z#&8^KNEtJADms@^%tFAkei69Gq zFS>1sC!2tt(JP)Klv~Cs9e2p0TsT>j>p`tndP~lC8RK%VCOxX^;c}8ixgumyE-eu# zg|v)=RS8z3JKL$~?l#X2B<|dkN!&SH*_%*09+8gprH<*DsLb#6$Xb`zkhrAkrp{6K z%cv|)*@$gJm5w?@T%fu0P9jhW>A4MZ)?NG!-wo$E&bMS;?F98S3&lNTuWM>1*+ymL6hO zA&Xf!y2J6@q%rftOWl)EUu)VQ+(BPw>JtrFN#PV?+%Zj>Hh^mSEUNLFsqW%z6xSKV z+KP&mO*Q=m5r5H2DoP=Zvsbb?K)V_88kF2n;9SJJ2l89xZqoZ7&iG1v_zQrv{8nRz z(XZn4{?!UwzmdH@T)+Bp?B@v=-bv$pU(t@ArmcM*r{}9$*s>`dD224lomI+bd|AyX zHy|{WS5k2ffR=4=&Y)>`iC9gxaY=`TQb<=BQXt8~4!6PT-7;D^X@8;|)sj|0*=-qF z%6b{c1WyrY+Tbo3t$&HQN2@p}g|y5ERXV!e@1PfZXNc8+>MpjmZwkct?H}PyUAhJF zpo9Lb)CYjyNWlzf4p2e9Ih3W1seM z_x0;Ef_+XSGL%Ak^3jZSYY)$!)IMmWZ^%er`d98{9u3c5m(Q(me|4~FzPhqksA)Q# z``Agd`e8KEM=7MeD-*lOp5+*;k9m`7iTH5b<(t8+OV%}1U($<+48A^Q5lT5qA&skT znzp9m5i?8MZpH}OCCf&u5tEbbZ{iNPcQ18Qr6Xo*B68D?J4zvqZ#|POi|+YD=MNoY zUe82tZYSCL;P}e-mD`={8>u!}=4A8GTTdpLwW#+&DWv5atWutr@+mj%nvAFRf$Iss zWzB4J|Hx&7>km|SDWAslQ+r-0h4i-Vne0ZJWW2kg+}ilkGy>Q~BLF;yj8aHz+8^Kh z;_uxYWuBu^21+4~r;TY=MCW7{J!@eNqTN0jv2dBoNf-WJ$q5)Wh8soaWSSB2D}B{a z3TYV=sWxc87#sRzZm{XWj?q)(UDL zD224FOsI4WA)9CCx6H1?yO!98<1G=qJwl@;B6e?^U58HZc&wx$jeWkRWoW%9bP?Gd z%s_joQc_$VxPL08slIBv+AIofOSTPnlMa+Z8uwM{o)?YyKBuoUoq92_f0fZa*FKp6 zs9Lh0c1tc3(UJ(1LK^#HIwO4Gs=kj_SxlO-$T=AfSJpMSO~~qpY9EPoO7HpMPSy#s z1dUQi_Zg6-?vqI}_Tjm3p7K#<&nu%0$3`E`csagua-G}C{Kr9b4n)R23){8`9$aUF zslB4pRBzJRp9QgvX!SaiNO@oM>^~@jUh_d8bMK>(mW&O!Jn-DJj11J6+N2#to=1I0 z-zXg8;3_bVi5yGNrdWbTDWqi&Qk4gt`ZUx^fToE>Law7uE@*0hwIanOD8K#s{Ob%%v^~&-PRhEm5<=D-oLKqGMkBfmKp93B3YC)Xiip_Keq^@@pIcXv3si$3z3bAf;JXi&ZEz{IJnS8Gbj zr3_F?ezWyvy4we@521YqvF^ZaMSiQ^hu+8Wzi=czEQPfEW_PmgH!93nm-Om1S|brV zBP=EEilA4g4SA8p>A<(0(4LG~ieV{nR|LN86iA9=BJL_yTuU-s8|c&$$L1=v32q1cTWY1a z`}-2B;-S4xO$;Q3G}nBte^FLQ)pmXz7%u;2DMtsj54X1aeu(kwkh&}SkWhW%OS;Q& zzgv5!FTt?nH%sBIZ%unfM3b@;4_qp{ISzf0@V;PAme?$@#3ptoIN#9{hPbQTElI?) zBui|8q>xr6n1NojT1hWkajwZOB3lxdm%n%H*22VHtw3%fVgwQEx=o5hA9*+Yn=&7U zc}Mzb==@_xA`TVRYoHX;s87?9-uZE?f6Lt^jxXMP5_gqyBmzkxty123VHPV#<2FXf zvCRAMEh@ZU>+P@l9Li#ys-#}KK?0@Zx9StK4!awFEOr2okgd*izFA(Pkdw4*a=uGU_$!Jt z3pz7FLQtyI0w z6(fszhIX-zQ+eRr8FylF-cHu>BeIySKd)@PLuHOqNU!gl!M;6Pz6Slsg7TJyL-kyg zyIA9}-C=vwwASM<#Fvj5s?#2%g;Gdk4W&CjWV1gHoxd7RwFLJ(#Iir9R^~pcJTlR{ z0Og3tMK=^s3Tf{xp;iCJnYF7Fwi0L_h5KBydwm`*E0EqjuMV%`%q6sD`8};!q7>3n zuhe&N$esRX@psq8|3a%Dc*p(o4SDT!4TGHTtL!MMn%KGhMDx^7i{iJ^>IX_8jd$NE zce`wfw;zwu^HF)=NhfUE*yc4Y7rpE-gx*E^m&yaBkVflSG)uj7Mc21vx9U8u=6MZD z)?2v@yfd#qj-As7t;}v6JX*s-DbM|ngy{*BipgsQyCO5_H(vKKM?V~CER2gzs7{uL z8`D=!W_p~XqC@3w2|D3@aCtLhCiSAY=8Y%w#KO3mP0S!7&5CA5F@B&0lCWO7;Oc7v+vBfA!@~tQrCI z?3zvAM8yAyKq;i9w^QYDncj(;L#yYsQe@#xHhCwGYdGF~)3i}UoTZoLYEyrOQb^1B zUDZB#BzA?u&q^uhU2pk@%Pu>|q<7jFzdOs*xgsJC5rI-j%f7lw2NN@?Z6s3fBVz;Z zab wOvLAs`p`{2(`Zvw6BIz$!VFrYFb+wVf3c6GE-=jfu|7U&LGzec_B~Ll3qkK z=rSq(D(xGf6w;Ers+Odty`ng}A9aFO?r=u|YX;UBP5YUM-E<U2%c+P%^l@o3gQbSd& zhSVEpu6cU>&^)r5jZ%1WM0#!2qH5F0wpR45Ek$`H-*YZ08B;mo!dgFB7Yom#7a(F7 z5h#VUj2Tp!8{IM*^{CG}L*re!`^G-FzUMswF@^f7(sW;jUnM~)q;cJkUK6CfqPMB{ zxyhqGIME~ow+T64q+0D*x--#?h(Sc46wPt`xX?#P2PCEVf#@s~z4$%218H;j! zv3Hiyt4hb-V=v7({gwIZcufPPkjD2$G>yN3ztXq%3GKw;$gAqrv~`!o<#5`dtU9Z7 z6e8jh5zlDcj#5bDNR8eGEVkC1N2iyAskg?RF`NU+nyk`c7hP)}{kVkDjK=LKg|v4p z`c8BXefET==G^xqJ-f(a34>cIjy@<>Kj+qif}5FB(nlI7g=3MmK{FHnCaZP)ZYT96 zw67M`ue_0m(jjM>Iledw!&{V^)`9lbW)P8{2$Vt^M`v_f_VMfZaddu{?y-1MF6Yg8 z?ksE8stxXZ@;ZJ8oe}5TI~#KwJ+$TleAh6S6VH{UD~-yM}H!!5z&J33Z;;icCKp4f7D-Pq27mPMTYb~ z+zzDo;r>JVE7g}o5b+(|l?kO5g;GdMf2CT~1KK-pPrY0k(jn)1I4s-&$DMIa%T2_` zyQyC!9Vmsgoc&Qc($Q^>OmtrKQ|jSxJcvCG_C%WYAEo*O8eP630;Q0~@uQ{{B1;Hm z?gksBCrs6)_hIcgj+Wj>jZ5~>Y(5K}E2>BDtDzLqIKI}jD$ghBMd-~Jej``*=(yd< z$!^X!u`Z{+oJ;7viN{3n`74w{TK4f&309%=^UaE_<iWakEB%|u?M?{Px;s_Bag|yfPP%C${ z>2AhpiWT3F!qZ>)iYJ~HBRj&>gEpp=Z=?2sQb^-{Ub5(rHr5;(6l>bMJ6W;zN!uVBmBb8e}!A9IUnJX~ zL{uGeHXpWQCUBeLR`^?}Xa@b42i~k=w7oN*MWlPUp9# zEleA$+w|`-5h#T;=AouFr101AKO)cv32%8kq+0%r{&Aj(_OVd|!cd?5W_L|PLVPgp zEF~eSmoR^$@*YC9Bw=?aLt@42-%{qhvMsSVTvsaltNnOQL1P7biznor#E;GrHS;s)h1^#SPIX;QaY$l zta7$_JiX6pp%mKBl=B)&2i>VQTG5K_uT)d87nR%fhN|r(=Eei_DCNwF~g%U40l?YCgJHa zDR)h4(DS-Jz58`@H4!Ldum^brl4jS2h4t{>jIi~3Ec!d7N82CvFy4I%=ikd`!YNOVGk)|T$l zzE^r$jgqxDZk@Q!&lhzY0ltNlgx2aey zpfkcRKMM_gn|e4oFUGy4oDt@H^NvM*L~NjS(RZE@;}*$QSzdoG;Cq>uY)5CdU(Wxb{xH^qV(&x;K+{3Yw z6=>C8F;O6iKq(we;`mY1Mz;vj|DyW_$LRI|&h9X$@vfYvy=W4mZwfDEW@-`XDG#Kv zY{=3St-+0^-G@TV*iLcm^2opHMqJ=&(#=A1H`t=+AGVOC-p}LDwNK2WknmCZoa`vY0U@h9skdv9*o{^BVoT{CFKxa97 z(06by?XjQ~(q0{v=|ubv%CEz;-j1UsIXBN=GVl26V>)%;p9nhfYoZj=a-Lp&2d_|H zGLw3S^;EB9g_i4&-0kDGEi37&oj;|0)cQnBr@DnwNPGA0n$yhgc0>d741H^5J%M#d zUE=Sq)EKw!J|yWxTGMy-Ad=4e;0}h@&K=iwx?f_Qp|b`kg*5JLkTmsh*=gmuE|od< zOE_-B@tmfG5YdQw>M$Zu3Tf=eXq}qQ)=r_*xNPM{PT+EXg#^ykHSJ3xCKJK?Q7DBp z_K)dAK2~|rzBH}vTc4|xWT9iUsZa%4T;4&=0G=c>DEgw zx-V0aUO&Y(Z#+AOtK78iLwD#`(S4bmiVsU6jk@Wk9<9j~ptTHMTS6&GEyrE* zO|9H5rJOa>#OhCpKq;g}w~EyOB3@9Ln8^r~^5#`LD)S3e=H-dNJi(YqnXBB*PH8w# zde#$xQb=PAxuoSU%D`P#wBv=lvLem@ALX$XhP2#ESF6r06Xki+8woj!qlm{JXK>D) zvknXkrDPWF)j`(3Jp@Y0t$0OT%XLDme;eq71l}Ljw1`Tj{INm;rQ{_ErQ^$acgbQl z|3w+-gM{42@}?s>fl{*Kt%%AqdiZ07K1j$tFRu>HDd$BJhR^+ILd2LZA;4@*0DRRkONVomg=?&<6>5d%~M?&Rz6DLf)QGMA{ma z{3%BtB;@T0MLfK_->Fv|EA&A^-kwmz`>*%xk1RMfWE2tTgM|0~$LDP`)C!bWm<#f% zM9P$7?xK|JW-8*vl~QEqp8ui@^g%*is8B?^w~E(jI`}%hAQ5GtjUBOQ&QfB<+>KSj zHOErAfl^3|1$9NtXnefJokET^b_0Eo5G(D9_;l;O8t1k<7T*o@K|(CSD_WzX@NECQZa& zOZkq;?%c)w?Og78aD3(U2>va%JXAW?)tKP#eNYN%ImNDs6@SeNNT8IQh*!iHWm@># z2kJm6dF4Y9m-9TK8lvhI5-26Fd?;dMwyAM#nmi^wQ3etyg`-+c8}ufw=F;nDsR!~B zDCIq!@W-$$d%ILBL^k`Wvq}uDesBKLB0L&k{L*#6rOa{w0pBl`^y{&l#*9BRIDzx9Uqrx&2gtZ z&a38b$ZiXbHT-=pf=L?qR7ek!hM|_Y#yB6Lu$FNX} zdp>@HN9EPorTO;e9_GCN;q-~(g9P>~nwG!xrr_P{x9;V1U|1-{{qd!*(gq0_#ol!+h>)|R6F1HV<8EzCmML;2yffV`;*?9$gx5nB;@@`FTuHsK1e7# z8f>4MYl-_8WuOld^8Tck;8>v#67v3}m*7~T4-)eJWJ&^kkdXH$QxfQd1ll0fwEJyt z`uleDK|uAh z{W_39DYPx5QlS1DWgvl4vYMb`MdNn=R}FoTkkv><(A>ZuDpAR!E=}u3u`}{3dh#Up4Hh#cBYDi{BMZ`?_=?f2>dnX}P-8m=vAR%vk zD;;l&zVW9V36zqzz7_Gm47I9C%8@{+tu4-mm$@Lhdpq??e_kPhQu1N8>Jka)(kMWuOldJe%bA)f7?o`v2l8{zMW6_7 zv4alhaR~H50%wzM-@~y=zWO1hCa1hz9nv%K8i`0D?OiXK+8--yZ?X`sP+t;SQ zCL)1SVhKUTYULmKsVw*}%JU8uN~v`%nHA-*i}-6I>Od*4EemSr0b_+yV#^|BUZD<@ z^1ik8dqjGFI?x9RKHcW_S1lX)-(EJ5K&kbat|z$P!KU}Vj+MMZ0;N7|e<`8O8tB{o zd4&W@{oUhig8Ma~?}xk;>xmUg)s8rs@Z%HFQQ_@3POP|ZM;$1&KGRX!mE#wjlFxCF zKq@vNigF9ZA~h(1W*3X-N39j#W+xo1EhByhD&(|)HjAF1dp z1DB$l3+8<%Jn<{;YJZRkEr|#ug|ymNyGq1c0SKX4%6r!N7TsA&OLnO~U2tMA`XJ#w zL!Y1aYNyi~tc9cpZ=c}FBROB9cEfAZ*{iEWtf9S5ltNnUy{cXP{Q5-e?E$OeIj;^~ zJ8u{0soAMCpYeru!7ktWc>-C;@`*eDraLB~6RqKqiU=fyH2>yv;kB(>zr5#^$NkYK z>>)2=64>Y9`#;#*XDxJeh`Z8(L?9`om5yt^@z&Z-=^Yy>JyxE#GZjkfqyytF?n(y| zfuuNGaaTI#E&f%{dq!E6e_1ceZn<)W&0)0;nrJ_&!@t9P;{N81Md>}c=vV!NBqER$ z)9Wjax2qgm?u4XipS`)M|30#(_3OzwwUO{hCRY zey67ATgdJ?r6YB+bRfY}La20nadC__C#I>+wdBgI^Y+8>*PIe8T<*Mmv&?y?1jSwD zE)s#HI7h`@gn*ov5{;H##R-5DWIeT=!%uYJ2y65dtN0mNtSLr|^kQB#V+*LZ(ju~ssjWHY@ z=!3n1xGNo{#}YAD5rL#QTya-AuH8GV$K?Oa_-fSTkRfpg?84b5CB$*-Y;(}o9!_-H zhjxyB_n1JxIj^dfyrgGo*2k!qckV$CG5dh64W5+n=FNOBt(9r{BJ}Ir6Pz+HQDc_< zNBz}KdF;*cxg8m`+Q~QhtnE^}|(8n#5h{ zSXpg=J}8L@B*o#1yV6nO(L~Fhw&M_0T}{4G?DIpW3-+ChkDPRfyV8-Jh~I7~B9Ii) zN=Jcrx9g?v4tCN}czek&bs3Voqp?l8j9 zfduA{xGNn<1d`%##a-!my<(X4=95)UnfKp$&Q5ptgj42N&f>0gAQ4E4!xeX>V@S`Y zbjPHi!R2xI^eH=L+j>Vw#5X7H@Lj8&@(_2W1BpOV9Im)49iLX}Yqf5E&S~ehGat1} zl&J5N!JT}k>|z7UIb|d6N(T~wq&Qr0S2|v-7;ZgCx75+GFZ`Tc@pV>52li3ou5>IS zVpc{)1d`%##a-!`ykeA7>RDGpcMm5%j!TUwoqA-J>xGNoJh$x;!1d`%##a-zrv^%Yp=3WO!$Gg9+wkLa|oyV6meh>1x=ASoX2h`ZA9^@fM$ zqbFS*9W_E%*$0ZNQ6I)cek&c>i750`5#qyPAuYd^j&@}(nTbvNI68XGUSa3`YlV|P zBE{i~yV8L~ASu+RbbNcbt2MR5Bd6}-mmb@MxGNoViOBbfA_7TqxZy8dhm(bs2yCfCeLB&j>m7 zI9uzy-2Uk`eMPkeyQZ68O)Fy_={?NKkYa@fJJh ztB;%*(#^14=i|e_SQo$b3vRam_epEJZQtqCx-*uqXX!y%t!|Gtczoj9Y`0hD zX=wj5Z%b(Ukj?hL(_7nRixdsjv{t(sT5Znfv@Cs?j#3yd>eIB%or0}N(|$5*P0DDE ztG~xSbE2|+v(;kbqsZ;{mthU8DWv6h zyB8CQxI3nVHR?s8neJM73&Xm3WxM@&e?vP%l`Q1IU5#3j-{mlmZ zcHd6+@9&h~(`C?Rd+-mf?VSIVFz^1o!S3)~C;M`)kEq7}lFA zDzd|;*0#zooZ2qh!!~d6!~|nVuL%yjVU|m^)QoE1-dehQv%RI%M|SInn+z;xEPook z8mrAQb$gqQqCT@w3hClaHrk=JJKJ}!?4Xo?M73l&)si2!Zi<(Zni*Ncz#1c^`Nu1cq#j077S3Nr~GB73>Lrq)# z{Y&%p<-O+MoJ}m0LR!ira`JMD)zfl$tR2P~b8XRTo-#+mt0T>i?^*LpyfnwO%IJv| z))=gBnl_hO?fcYfkM|ztZ>ec$W-4Wn`Rvc8wAvSRuZ>O)e0x5=BemLXC&wEoB`ug~ zDW|J*?-MbM%DfGgd1U+c{&Hp?iFHc8777GFNSIF}2!5jER+&`Tq~v3RxLV`>eYxUMXlf0{AhMQ=j}_R47k_!w%YllubUlS ztuzlcZ||=eEG4cY5A_7ZA`&@UP*LIyS$|!eBjmYL49&P6JgFYH$?=NiiTLR zjt605j6G&MCmr)cN7)8D;(wKgB zprgZ$FG__aBVveXa$XT`SYbY--QOIm&}zetxV6h19hi$_w9j?tbmWLCV2&#^-sqY=+kuaJ+V6S!a{wp%!k+Tk0dtp@ks0kB|+>>h@MB@FKK6_DD))D6W%kbHs zG*|lQ2G93P;@@dL(HM02t=cGsv{%ROyk+WSel^iJ{CHYO!^W09b!;T96d0axF(kT0 z_j9h$-RCD7|1F<&5D6{6W#9OU>G>X7)5`9A6I%Msc%%7)%e9fX@mIX9ogJO$Ph z*0d*?Qt92Ej5ktM&K`nNNY^_VZy$I)Iw`Mu6=-3!7?+n?Bkd^vGT+{GB(qa@aXra( z=Q6)S#O|?*2rLy1t5IBnpH6FKq~Dyw(eaBh&(0i~-O+*Jy6&vw3=usyDI%~`w9j>C z9UU*UG1mLua&#=+F~@EZlE=}3;kxdu1Bt*=(LUFmb-epUd*j~ibjIYTOG30gvu!Q9 zkX@L@wVrTWlKYLq_UhEE<4Df-#)aMKlf{aB0@AD_{A#T_7hX=ZH2ORHV2(X$ty)`p zdTO5i=LWU5B)?VrKtg3{>w-fOf_Ng^8B!SIwlxp57~|*=9}cTittEEpU245dek&b6ZfR@UNrd=d zxGW_hDIFW%OgC>m9O>u~f~6Lxi?L5tRXXIi(t(8da9BvoZ>8fCW1Tth)KEtU64_5K zv!AX|>t*7ubVTXv%!NrrASn)4+?9^EULP{g{58PQfj&527I&p%{(pzeJ4r+!DGpcM zm5#xoy^VI;t~uYRbdgi-@-?ce{_5Ll_Se}e(eE&y>&|U3oQMM36;VE*6!lkrcW#3V z$BZ)?g}>|QI1@a=_Dve@=*Uxkq+R^xKu3q`&N`3?EEVl@-C0NRLx=Sf4DLczVUXJQOoUJG-mAg^AtOO=OxZ>vdut5ED^hjKq;hO1dq4#ytCX1 zNz?v}iPR^ISgLm?%PkmIw8n}R|l3jzcuah;z)hOu%-H+M4%MX zs9V!&FWwyb!B?k3KR!L)!mwo5Dm9Jto6eYOZ!Nmi=HFyhW$EV7QX5W%HX#C~kVf6~ z4%V&u#*^M9oO*?XNb$U1+<8W(Y5j?4-A56Dq&Ozx&bdG{uixq$*L$TTP)bt%motOh zaJ#;-vZo@@ClJA#glRueF71GM4Y6vC?_aZKL;R$W~oaH#@QRqW%iTsx};+d z#j0vj%F!nfQS{%D)bcw2S>MRrRpk{D@|&e%$Bwh#{dSrCAK6o(1s4YRq_mShH%H#5fHI282<~0(}`}8wkFSgH+cFJ?($0IB4 z;wMMYipNCb?H?E0$GS~%e$yIR>zYQ7VR?=6KlpT%Li!wirQ=o(O{$4qeyL$xc$LRk zeLqo0A0#AJs$O;fq@FRlY;oiHfB%J|6y^e^kLGF>>lp*{6gLWdm)4UGl=AAR{#6a5 z?5#XTeBr|;=KIbQi|u=qT1}f*2lI_AW}T^F4ASx%mkNC6DM2J8eQRScP>U*fzJ_ru zQ(oiI{}Md}N=d9#c?=(SGPJ__O`%IJjJHOQT4NvCKitlqO0%SfbFU_~@{-fT)&BBi z=!X|Jg|0g9B~XfcY3{94IX(5(^`}B3muwDgK|MA4AR+Zw>CoR4Hh#aP8R;(<^3;a7 zbgS&n)kfOftMQkPzgen>E2I@MvR~1R>K6+cD1~(iYY*9HARYHFYQ{gL0|}Js+itae z{>{)N9otFAv&)*X_d+29eUOlxR()b0s?A?-nH{3h--sqd?Rh2UQ8`EZ)_pkC-rMkV z`W@zT-FXCnL|`eTc?9s{(L`fhug!;w70FinX#b&hmwF4RZO`|FyXmu`c3Axd_6uiT zyZi5n#^tv*ID4t6JuuBWKHJ;ZX!5@^)H`Zg)#g*|)BS2W>A(?^>(1#2B_hXtMFf_L zhVd2a_`b(rqj!d#j*gm@=qyg#hK`QX?@qFpzpU%zmFvzr))EntQ4xWqqJ6GA>&Vw> zsB!d{^^Oi)Prz_pch-SKV5w-I>&`lUtY5&GnYkH#t!O5EbgNyo*G6ZhAbR3vJ6-MV z&T53~o}36Q73Oo@IaV|OEn<8%w2`9&ef03J?a2{)938GZ>#&I!kwgTR3iG+{tYiM- z5=K3b5fc%;n~N=)SuH^P1}wSK_4W1@gr?t%u@TT)0e~+E@RBR zAFlEWYR1yv*4Z8Yv7I!zzd0QhiY4)nn?aNSu)ED?p1h`>@|KG&Ufw7S>8 z=yv;UM+csoipjdz4(|BM$t%}AIT2VY+UL4+tim@x(PLJ0F-8?gtc9nL4kzrjUrw9h z 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МX4zb16;Y4VNq5oJKE{VGxF#`1;31!5?&@q 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%0ASnMc(ZE=OVs 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

    -GL-C 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

    abEDDd}*J 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 KOVh>IYX1-6!5XFj diff --git a/resources/meshes/discoeasy200.stl b/resources/meshes/discoeasy200.stl index f23051230327be45b412989dd3fa9e27d92b3ab8..381df45b24284124332b824170e9ba37e4b318ee 100644 GIT binary patch literal 1051084 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 literal 1751784 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�Bw`flj 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�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�JPFq?j)Wlo;-}D~m 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%0AX?`*y=PfJ(SY=7d1y|MD^d&?bd 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

    XT#%{V%q+7Es*EgfVb#~ z`kqtYL8%649Zy`l7Wf1{AJnEk*pe~7PnKgFb#)$T^;Z@mV?2(M1_ljpba-u?Y_@u> zv+a!6!uygGFCo__#HwZEM zm7{8jct&t#?H7t_P1 z$+($sBp0k$J%&r+^%GM9-n$v~JZ9^5*;_3c&!xQd-87rqaJ04K)=T9L@N@jldu`i^ zcrhD-{0FCnm;@dNbE$6fcQM9)JkmA~2&|VnsFtc^pm)L8Y1rrQ)82m&7D~=viCU zqwIUJHd^GpD`n6FytoS9X9@npwA5q4M`52QwRdaodNTAGMDP|7;)(kZUtda>w1tUL!aSaE`uJ2>IeDYeF*YVoED!~7%CWU=?u)q3Fp2zN zeXy-2lvtr`$-A>;7W={NiV*iB2EPfvu@3g!v_9KzO;$SkwtmXOZ%B%JhU|&n*%0?Y z2l^6DLo9kh>-eqn1Pi|*Def6eqLWLU&4$Re5XY7FIOJD^sJmjEszhbsXd^UbV zQrw4|#BVNfGaDlJGO3~rPQ&kiwA4C&Je<$QZ%B&ABL6?pCKe_q5 zW(JYxDnw)uQ~fnW6BrF34R7UoW1O74Zmp9t!s}q)QlvM2-nGD1h~a!q=7z*qD{_sI z%RBCL>L2UtJeqnf@D)Tz=_^brPJ?B5bdoHya-?&&X=XgkPF0 zA9$#%lV|LuWG=;9!HkwJ!0&}+3>fL`-jvtj#MH~z0s?B@sLSih`cNCfFVz;GCTl&u zG5OYJ~-CIS+$lODAI{gmyakv!kXRZ(S z)s|M4mlrpZLmPhU@HQcz_;%WCk2%`CkgFAeT+OpSH48x*B&UU_dN7|X2^r*&R!1HD zhNLKFc;}7T!F&+)2~i*Xd11&>>vb>*j4UX3<~018`I>yPT)7xIwf9knOHqvS!Gzht zEEV+$G3DPhrype7slJN_K@nNHJv*2?BP~QV$mr`rMqg%zNnqR-x*mWute5-*I)3aV zcg?=&a4CuaD>s`Rj72rk_LE6YQ&=xa8}*MtP+U5{#B8-*g7G8L@D3qZ%ZP@xj7!D; zHVD41!D;xNq&9V(?W_9B+?(z=TnblPF2dT5E$vxeK`&9 z5E^kg`OW$Rbf4m;|%osd4_Uh`}TcJ+@`P5xlcAiLyVy$(k?87EL*sUP*7;0>`oswIyE z;)Cz95|rI>8gl2UxtvZH2iSotchx!^N%4}H#H+b;JG0IYu#^7O_2Ajv)kC@@NK^gb z9NG3e$=~K0X!j_3Ppv?5f^t9{S46{_<(re7a@G3S-m(8!JYT}m{v4df#b4(#iOAfO zod+uRu@4W;N>Jv-Y1nuEGR@h2w3D6khF(=8DV(*F_iG&{Q27&@N@{(Na81F|&!XU*(g@ z`C{ydwkE-Ka2j?q^je=yYkgD_Bq+Nx33olwru9T3LhD4d5LZ4MCs&tUYrSvj6_#A9 zbUiR)rAQY2IYrKJ&T`W@nRIK7b-Qv_V#MmKG&}|I@;KS(o3+;LVr^A~Oj78VD3ay+ z;G8}XRli(o{ZuF`k+@0g;B;`s%c2!8lH!r9NfaH>U*3E6oK<**UL)f~-fdb3r{QEx ztNyaW-g8#TL$6u*4N37x)+Cy=?k~N&&shTwWFu>U{3)y7m@W zb;fT7&JNn(M#Eq}D4o(ZvIWeC+P%Ort&`Ga_lN6uxCQ%Wx)HQ9o zT5Wph^~4=Z^?ms);`y!+&xk29@>*x>tn;T@Pb31R{#}-phV!E5C(C}1bhT1@>$O)y z%ALVnpAgGneRuwZF4jv!FDV_A(PJFV^-&fMc@*S0#V5ZJGrp)^ zRym)Y{zgoCIlanBQb^RFr|ZG>LAD*pr&l2NzAVXqVElpCxL1VNo%&r4jD(fR)5<%K z8h6nd_HB`*Wu->I`I4)F#jr-!c&-_@?cH)EP->0zULJz}yg*tdS@9j2SiN3HiE-^2 zSdGFg4tot(iZK4{+wp4PD6C91NkXDuKDEN)d-3YFWS-IS{DWFS=W5;IcT(qU85P;% zy=}={3bU77^Q6jgOyU6KIIxK0`)clHBgf$czZ1N{tnDO4L@k=>@T@2_ry_l@cHC}~ zoO1DEM8nxLjm!&k!xpfXfw>{q2j_h{X&npt%rx>rPH=rf-1&F3D%HtXj~E2cKR6BN zGT=9=OH6q?@}b9%I9v*|my)nDfjN#zY$`oQ*Szu(Bgf$czmpITZ0fFvE9pO;8K_y_J(x^%neQA%toza9uPc(#bFU-3luY4M8WQaqzGi9(g@Ilnw`IjP*#sRqH@htooQ{Yh@FwW9%bX`C^|0$#ysp+6D5K-!$|Mdar#Yt}kGir| zuYM50b0sUr@T;&#v^ddKIJ zD+`M!P6@)Ta=a4GJQO(Om0SowFJl6GXHPaVvcC@bOwzZ3j6c|?Etbox0f zZ=qQR!81KhgQYG!M*h@fr)4ee>u@O^y_m${>HX!0ADpw^9XwO5=~K?h34SLb^1e7u z4oO>UH5t^_ATVF1Jet!&M8lf?o~|RUH9PV;T#83}CQ)$zIGLyPT5EpEHjc^~+zf&f z{7$g@dTz38+P16pfd8*#PVkI{(~u8BgnXdqdoeTqZkEiYcvNf>lPgY^O zLGTQM(>nin8uE{C%jsPi%1ls-@(+_Z-uX)M(7FTdzoYJ{b7b{keGh;4ldLmdqsJ)= z`N!5N>J725*0&T^?y9r3KH)2B5VY2(f9rS6lxoRcfSAqJ`iQ_)yeD5VX?UV)_~qmU z^#|IATk11+B*ja@O9;>Qor`ngC-k#tl-B3rsJyt|S^(Dis2)^5Azmp`*D18RzwOy} zN7bAN@)^;Si^g(Vh#6O3cjmp&%f1=*cW|u_rO1Dv4wGnfcarlMto20?(PFPWFRv=8j8|H^5Ty5<<;k7oa!z zsBd7c52bJ|tm&ggV>!X^1T}}9hSKF?>{om16LdtVxD@iwh?XV|XHsD|qezh$yBVCh z<5FbXu~b|i>@>iRNl{o&e7sdw0#86hRVf|YywYmp6)Dp)i&l%PAo@5DV2Aq(vev#%s=Hwer{K7yMB67zAdfU13+>8Ew)+d^CTYy!OFbE3Bv2;!1izCIMZg=ZTrtvmq*-2rz%2gX1=9O#Ws`>I)nJFW z+(TWh+)rGJ;ZkIGu~b|i{072jyCF+sqRKap z!Bvhya6+WOK2wU*@XHRce?Fz#`!P3OZe|c<&oic(wDtxQLsp|uio5~V!z|UdmvcGG z{~BPIJFBB`-2YfTtA?`eXoD9`uc5p_rWHLNS1oxc*!JDuWo8q2U$o9d1oMw+_`5R4 zz<;a;;*V?y%q&7_SP|}WCHYP8QT?Lyo)<}>H=vSmeenARc_useD)g~84Anb|Xm?92 zs}W1K_N&=7LTuuydv}uOp}Gkp1`)@1a>fE zL4w;_PQ%JJc!NRU4R*SF!Wiijfp&hczlNa?cH+PrR03}>$=!D*g6#aayJ{$XLXX=bF41g(Gn z^G^+>k7zhU@A{9ImYW2(&YTv)|4?ms0-~=?tT?3e?L*e?pk$qFm6X3 zNZ|RRVm)da`e4NiPCBiHeVm?$UNZ>VyV>EZY0yGE-VV-FZ#rkSO*08@ojDB=S?~UG zvG1HUWzB2BxE)J{1nzmwUs5yHBrd}W{lGC@tT%^WQt>XX#J8$b%doX*uW%jyT;p0W z2d}{{z+>L7*1(>BWhLM|+}EdS8ZX27Q`mPkOhiTj2Tr*DgePFHi zgU2Ljzpm2{HA8$#3wXW9xOP!6vxEBizngovkIW5HEZF+t8TXrs- zvLecN$gAP!_b2d-4`oP1XMd7ByR0aa*v3x8qkpCQqVL0%ZOo&{58^ef$+$#g_Y6Hr z@eIi%KDiHpC&?+NqHGCvWp?OO-n%+xo+L*p@??}pWfGacPLYtN$k zqnRhkQ3`!6aSqJ>CXq;^ci^gw$X?@LlVr{enHNxl0JxZi?V7^j8k zRax)j%)1zF<2NM5Gok;Vz!R;Qt8qHGABFo;Hhx1=JPZ5(2|PiGc^jvNNZ6ou$wcd4 zO4;}gN%7q2|0nRAC1!V=hP@)a6DP)>EM?<2B*ka#|4-mKOU(2*4ePtEWjGC%0ly(B zZVgQ0t%}vv6FlwN^EjdFK9n2a=kU%7m>$>=v&W1Z5DYgVV6WvZb!mYf$MOD}7Ug&*PvJ>cew(xGrWA z%MV;uHSZ2O_cMHSK6#oeVmRMjf_w@0Ro(|3*C6x4wweUj87hx@B%xYz!t@uS z=kOgY_=fahuEuFN*S9>MQzUYF;JPu}FoQ9_$MqhLaFD}wz zSLqRIhnF%e+*f%5yup(6P@)~|A}@6gBwd2_AAVo*0GO+B8se+vh2)Iw2a=vU)<^F< z!}=ad;l4^O@CHkdhY}@Wt#9EYQAvNbcXz5?f;<4`YMh4iqUn{SlP056>U31Q;gpk+ zo&V-$C^4}^ZTV!K3rSa3#u^0A&o~XcmgOR3<+bONqOXNZE=4x@Ok_>vanP@zJ|R*% z)|L4kK#0(lW9LmPL5lg)b!bzMjl16`h$=gnnd4S<7Aabo3tvqDb>jCIKlM^ zu>tmRwtiMO>Gqfj20`c3F#qJV5C>o%XLG(fNwc2ZX5^fic}*xWvCI_teVxv&&OJZQ z;rHd)9jA@w)l@!6SsY4Hu4WQt)^?Y#J$27{;y1^e#)(JaDPz1Zr-kSVrCNOZz2xVw>s3yY;w3SO{1v9j$2%=Z_H~caI@}zP zm&7FEADJXaE*|NG&vWa+2z=%T^FdC-+1jp?95pr`{m@Jl8@3Bx6j?w*>@U{h-E1C17KM)nt!{m%?2+9*U4c-9uamsBClW$$x zu6BM%3jI=aORd8sx`jo^=3Bz#;y<$zl<#mF)?VMOEHC*R$szI^wI4-N=xgyABdmu> zY<{h>9Fx{aR^5}8puCOKLbQhyzXyxO$miV?za)h*L$2mphe^c3YVFQ@tz{$keHom< zcXCjcN;I6U)z1RRIQLlqlEN4TpLW7}aDBl&NJ)E;Jj3P$-6^=wDQTaR2#mFOc26{% zy5E!Ly!cZmX~B~gTnew}Hq@o!C4?vSV81rwP$wBZ+ayBQ9EcX8Y|9$|qwHMZwVKjD zzQQp~iZNl3aZADwor*f0z3Y_{l_E~cNgTpVhLA$(MQ)i~ay{<;h}S}y8YwNu z2I}d%sAvFoBJG5oNS*1-8YN_xkft@VFs2=L30;O=La(Ru=PJc92kXOmWZy1t*c>~N z_NG&A!#n8qRICod?BerjOy z@bUi48j<369unm{!!#z7C#p|c-k_XDBzH3A^B1}_^q*3jba~3nk}1K_7SqODf}LT* z@CFabtuC+>zmJeO^SA|tlOGtGQ5f>#$fW;^t1^T{+Zx^JdopGk-p3_)A2%Q6*4(KS=Zf{=y8vI-7JAhVPcGPb zg9Y#fi78DC} zmkdmx_D%k_-bV$N;+%xUmFNvV zMQ_kOSyW)F&(>M4`xxi=e`1&EdezC^Q{E}?eVGXD?i-hGm^}JJ&!p3jZv_NLbW9sF z`}M7p<3H`3O#Z{-0!wjDLZTOX&Rx)R&iLvPTMo@H_m*5f>=?ni@crhtPv))&3H1OZ zx?>uCyY~P}yO%{u2<`PlqBVT#>)=z5|HSWi7J@wsrf~}GgF}<|YgZR8{#QtFw8b=L z6yYsB32*7c_huAWian%|=mH;Z)vj|33;#SkAlPqX8tVYCW}@)dxrM?BA;GZ|)0j6{ zbzE}K8FLHqnSLL=#DMIvhQvBUCL{;LL;flD`{;#Wub63k#{_F8K0W`~!p&1df}<^_ zapnO0_R%-N3%_E$(*6&L0WFcnA|dfA;*W(D*ELL^=J(MHA@P7l7EGf*M|5}M?CTqb z-r1#rbHdRU(=KAU3K2{4eV5W+8JSBfk62V6-p8HWRm%wdRT#O$c>+b*Eh}r!C2e~K zq<{ROvM8gRZb$CXvsy($O!<0pvg(VErVJ8wxz5RVi;+%xU z&;=Fo>^onZGikpO$)58ni+PNA$qtT>pQ$X$n4IjLZ-whJCMSEd(5rn~jDC7z=A6RR zu?gRo34S72vGw}}(LtNtF=ruWlbQHzQDsra6J>7~(};>jE{le}-L}VnH?K=rigOYY zLw4*K54if1Il~v^k`?z?7UdkD<=fi1iuj)>`7t=z zf$z%%KM|~^x?;n4;x!x1Is22EfVk$d%A$-X%8oOpjd}RBt>Z<*AKzzq`vVh};+%xU zUk>aTw?;XJV04hBrrcRsl$8}<>~>KfE}t>q{?awB9MiVva`Yoie0Ni2QBT5P8ef;k zSxyI^{o$Oq59ye&RD5$~QC4!ibkaqALZa@rTs#a!ZeU29dR=8v)@5up^P)aX8?)bi zL*repS-CoQ}-PaKR)f*IZrOENLcDL5HgB4zEwG~rpt)< zY7i4Y42kcjR~BVVu6^f=`!J0&mw!Gk{zt=qdt5uCvA{Z>xUjOQC#*1ydA0M##s|D# zKd0}qVu7VrfRNP?_5XKqpOEQYeB5SnkJ$@nH?WRYd02xp+{rdfW8A0vlvr&0R#R_n zU@1wM`VH#%+eBVF1_msoqr`G?q zz*5_Oh+Zu{pCKd;+iP|8MIVoh-#mPEKyVMhG$NKSrbS~W92zg&=Enj{i9Of7IU#ZI zvI$YVbxqvu=${L0^_k#1Va3+Z#polfpgaAXWdXtVoN1hH{7o_Hj5XVzpS!HUQevHT zr%gyK{`s%>=G7xOTnczDabLpIlxDEDgw;A|OK(KXY+L$e#t%zT)sE&W$_niVu ziLKS0HX$+for?ILUwg%;?)^@IEiw~)C-mpr!%{!cDSibj=$K&Z%rs8f9NaP9{~w*= z9$2NvQeta$r%gzF(6?jU=gLm;?RP(2V2jKI-w9{Ez*5gxZEe~tgTIV+JwY9%q~-KYZ1|Qeta$-%Ln+{Po0m;*!D9xFugTutjEq z?*y+8w*BZe)2jb`&UOJ&ZrfEKq6rX-Hn^mE!X?|;-avZ*A#?{1>%(6C^{2!=@43EV z<+WXc{-eD2(Q{ex20?Va^ZJGluILiRdI&gL2-6b;ug8ezBv9@;h(D;MHRu`UsYes>kBrT%`q9Y_s zMYs6a1?`ii>pdC}NQh};h8(#p8a1nLa@pn|6*!tGk6u(CR#RQqrTRaUYm-^n?<_u!p7IEQfYJ%vFk!^XpAwA%uis*(HMkeDh$|=976i1UGaryBT(V!(GlV_J? z2^k9&9Zcg}*l*TGl_w8R*8Soa>zAk$$Dbkb`zf{2MW+od6|o-amS-x-*kKW$k-eo-lY zgCTL(TgB*goDa7O=fjl~?{s!Ln8p{nZ(J5Vbwl4|QN>3E`9-C;E``KvwXLGb@I^Z< zT@|TkDd#$?Co5kP2tCUl6Sk}F2M_sv>``RjnF;l^-D%VR2QU085KEdM)C&*k0lR-w z{R@2RSFzWUeP_-|NUZbKgs2mI(XB9>p}we`<*fdvd`Tem6Qf60Rd2M;5%EdCu8R1+ zOz;!IDYRepkCL&6$EUXcH6Yk4W*RY0>Qle4&5sdFaZW|1z?1N+}Nz0gwd`TcAK7Fbp?%TRLuD~8e zCe&kIWKs~i{T-Ewr@zV|H(9VHNIUDkHJ3rq5HfOv6Q4`ghft*4vF0{CNm9t zO#Xy(qnKEM-ayY;W*S}wJmh}xkaxvCNG90-WE$t5!$ZCd9`cVkX^N#Jt>-$2!~l56 z)8QfiWzfukP>)rljiEZFh$6w5f?%AtvK&T%rUlL#%-wlVS{|h|*{O9{d!Q}TJ}GMmhl;(jTr%A_N?n0Ho3M-HA~qvRtw#Vv%Et> z{N0=2@Af)sy@(0+KbeLt0dc`W#}>vPvtGnfl9o}mQ=a;Z^N>@0IC}^F?rHFMzZ^F_ zAlUz8+L-z9sqZ>-ZsD~vhes?WX&Fyky=HgoA*(*@yobO03H;qrZ_NmZa(`E8jN-tj zz7an4fv?PnSW3O+6FYRa9M{X zqE%J0#W!ySgnF_!ez|8KrZM^fpZd@6sgL?3OQ?^_G)`_gdRcVu-F=hCH~T1R%HP?h z_g}|gfh^G8f(T9_b;JvPb_d2W7_Yq5}$6ER1UL{}D5#PRF z8#SIZJbCxCUjjmW5t$_uZ;5Gq6A7`wLc|8s=R2=YqY3f!WF}5LJ&ph{Yk78UbTqv1 z|1AF{lKZOPUamuZZH&VqHW-N5VDXYw0m1iW8ausTuZT9pDvNhsTotjD#vEOKb{?RX z331fIF4aYp;{ud}iSlyDJf6_T?C??-nS;zE3cj3b@=y_WA;*+;5#9@8|G$4 zyW(3Z<%FKt%QSZ0-(M>;iutd;JR_E0REldxNE~zHgy_%-v*+x3+{A!jkCkbh>->3r zbop{SqZqRkw~vsxd*cPs!mDS_xp~sqfMAc6X{`P<3!((X!YN~8mg1Hg64O4wsPj8_ z%=ya&A;CT_)7S?I>$CBR8~508v$~k2*hYoKev2#OhcQ3cqtA$dU>}!hW1htP;Jlk& zo3qm=H8D%E*Yg55C931bf9y8*|PZTgUhP;qiTb*y_NTrML$OiBos( z7{Bw`Cv%p}%LT*=^1_+M+S-k}#edrDlR5KOb&Xky`=yXL=kFck%Kt3rSur&iv+v9V z-wC^GFbBEGGat_R*C8DPg1uslTKbW)kqD^C#Vhv1C;wLrd}=0GAHL~?ImpHrJIr}&OMLSs9j6w*o#O63C_SO1DrpoUiY@eCmQp(}`;s|_@LtirU&rW21C4&jeRa%1 z_4(b)=e}GKpVO*3?iu;f4<&RrG3zttI*etUjIoT?xA?IPA#{|YoHpjBt{vljZ|M|Y z@t7aWP(sEse*bxEn?u!S%&O~h@z)rcSWY7oLWu2>xw~@On8mYl@t!!vqi@cSOei5E z6W`p|+U8L8!6U;s!)_R7_>RUIgwS}ooW^(wdb26_Esb8A@5dRG5ZiU~@vUtRRi81N z!ou~%7{KLU?^_y~5JDsDavCR|U~l`vCuT)ou1H4>Fd9)JFwW5Z&#i3^RUgK85z#-7 zh<+19^n729?#pR>5dmWvXRR6>ownZcQbaFOYJL8MGa%IRi9U?UAfit&2Jjt?0SF-$ zN9MfBX*aJnclEUDH>UV8042m;$!Qd<4`=pA+uJpFT~hB=ynAPtobM}Xu_b;D{SA)D zSAt+G6H0j+Up|@rwe_iA!meK?*y4orvXpoc1WQR;SK5cf(R2G-@3rq{X9a}Vk4cDe z)LtoV%#kV42LxN0azZVtF-Ltq&FXmM*wX`otpU@GbQ!_!BUdeogE?Z3+$D6`n}QiNj^}p{LKlpL`cxmG!g*Q<%?=% z2PE&ZrXaM5I|UZim~QYa_x$+!>YV8k5c5IHd2~PHj3u92IdAEQi^j&29+?&Gda_&l zp(h6(a%p8zPWbD69rjeGquin!Eo$B4*dEp z6Bey&*8wOo1NW7)aJK$1r12s!-rn`Q!O;nwziMD9ehRD)r&I1fA>R7%W249KTd%-` z_|fw909hl>G`_pE?v(hX#v7^++^W*9nNTTyRw1$7?Ya1*cALZ}x0xBd!E!G{&k#c& zwSBkv?5XYJ^G|Xs2jtX!*>AuE*9Gj5zGrA$KYevHX4VY5)IV(NDT^UdzV21lw>m46?xDcxC*mz>G-=G;h}DK5R%`pmUkh^I@)%Hbux?{0f(!`0 zFXs@aE%+$au6tGOLg)#YA+h}U?Wzw)Bzy%{nF=o*&{iDTa9-h3M#^*|~|H(9VrEGOcw4(o^$xC;+_+0&H&Phm& zxpYDF*<%BfV=z9-Qqqca-=$pF^1+J2=h^wyfk`8xZ6?^8WE!U%FDOR)|7&2<_a81k zS07gh-LV`J$2C^O_hMJ$u07o91SQ1c=nhAwjkzB2`QTR7$-{`xIVbGzGL7>x3Kj9V z-&ZHo_IDAz`n5vn{_~J{xw2y%-P$Sn{81OtDe4})7XDLGZ#-=vvIORKR0TiQbHV?p3e~y?GdRw`uNhqAD?rp z6O@pV&6Vl-3{1ld#W?#-4ND8REDj0wqnXA$4s^7CY-wTivu>P0ePE=*eP)-zP3d+ped7T;&T^h6J1?gY{Ao56*fzt0k@M>-u$8}n0sY`p!PS%ve` zkqMRJa)iVQqsGQZ^}nZZ*IjNsgAy{{dUJXv2h&*ndGXlz^lN4n7QE`#Gq9AFJS4tF zIaV(lTsRFSmlCQ+&!r7>H5gv_2CXk?=r`T1XHcTt)A!HnbP$VIPHU*2?8Y+m92Oz; z>=o9BQ#Nm@kl5MWj&r=kF3CKg^vIHy*(^!xyqcUFhWNZ@S#<5~ZF~ITPj#g|SaMdB zw0S*4O6PIpoGSR#m@(PnB0FPJ+8-rx275?4Vge{m+u^1W3ln@NoTvZ$ZZ=nYujy*{ z#3{j%5YzbT+q&K2FJ`vtK6d?X2}?-?p*zb%V))9gR>$-(s%`Pq^;%wTN zDsc_B^N`pKyG)0qyG&V1XO87$ywEb7L_1lT;0S_g%#8k2j8+Ey$EaQW zu3wSjoPOL01w=+9cR-d$}cAo**A+0{Oc=v3b#Y5IO0k-|0 zUsqRk==sEJ_+}VOaRd<(f1kcf^zFCb^*D0Eq=4Y(!!-6A{LrQPPOKI=j#k7=uh058 zx0rV>>`*=TqT1xJg?`n&5bWKD^yt?rqIaGjncVb-+YP8u3inqb(c=RX-SG9u82$KHZS)mZ2;Kd;UqdhD;93$A+de-b z+HupGr2n*^OY8K7keZ?1J=2)^`FDNP`iw)88}Q9Amg0I95^K(15dCofz~l&=^3Mc& z_e>iz{soUTq zJIlt>aGr?wtIoVzC{?Q7N|0A#wU{9pkUA?Ud}X-0e|R zVg*GkOdIn))_%kfwoh)^<59auQR5o!WkRCE2_554XLU*z{CmC~@zN-T3DyTs24ng! zE#Ejf0|+UC~928J#t7qxhNMuyyYgz%>C}PI}SBU zVS@GH{E}WH;-wEQEnKq7?NL;MBM7FkHfo*YbhR-vI&-+@*&FFPO4q=rZjSIY6Lpqwl>8lTde6grlf7>%b5PNxYj7U2rhkj@ zG!tpA&?}of{xhx2!9`b&I@}j&TMi*K?R4aYkbn6Mkv;`aI2~5lQZBz;Z8==7Bwds9 zX(~sC@H7*tj=X4*r`*9b&cpn8**mDq@sqZq>7S5z@T#}xU2xJ#89F5RUe*5|GXJvn z<1BH(27~6CTV1+&;R)`Iex^;I@=?Fy=NGti z^TZ9m+hzX2W3qHeuv9Cvf6?6P?#uctk;h;BmycVG?pN%4yp!S_HlHgdx_-7_@%|`F zTOH}2e9TgJox5N0xYo@O$dSv{#LoK_&5}Fq^Wj`E9qM3Wk8k@H_rEkthXhOA@j~BX z_5Qy>AZPjbx;OgIe{u6uY_7P*G+#@YXdK&T{)ow0I?NSIZDD%Ozj#SY#3qaOn!ouO zu4eE%=eiK;U_x{}b#0ao36_!^9x}frLP}o$eO8L;PzMwCiSBuaebQW}kYFikcXP(I zL`X|jYhdr&`&6q#=#xMCyG@sL@Ls(3n757Vf z&ieDbdt19+^yYh3CPVjd=~URM3JC6BnJy7|(Xr73l}XK}-E6JCZt;r+lXq#>?QV|0 zmJpk$&q`YAUFV)?X=`1Z><5{UHZifYBbc^2(m(llxS5xHJjRufbJAqVZLXN;{+ElB z2OiGSB^{PvDSis9uS6h`k008vM`746+2_O0twdNIOyn2zY`Fc*?)F(VslyU1#hzu8 zgw2)M#LCay6J>kV{L^K^+Q-q(sxe(EhtzsOI zOuGU&E+4a$*!iaPg*v2$zka&RLDl8N8tl5lrET5q?b0P8FHcu&yOx%16zj7Dq~%{o zh&|V*%d``HnBt0oDX zD`}nT8*<*ImryU$-W}5N&)Ie*TyNk!OQxNu{R@JnIGV^14k#lehsDR8@56K|>{QwQ zL#6&?hRxTQYV8Oqt@>9?hdNlw_OGcAmm%_w%g556tDneHOouv{kb0%QDAOUqQc^3` z-^~!ETuJ*-pPHqZ4s|dgtw>`vrbB|IY@1JG!wgZ%l{{VbQl0(yjeZcy@-Y+kiKe{) z(_yYyN}ja#KFt$;bf7Nx;^qew^?i((d_Ym(Y^Z~YR<{l)>ib|iBwlZGU@4;GQHt8i z150sRiO5UInYeh#0i|e?>5!1pYQMzoj%}AEaDVyd>aG&@xuty~(@xa>1;JACZq$A> zN#sR`#LntdvyEcgl`eQKsdf~DBgYo4(6b>3Lp<4EkR9&)RBeKF4DMnXaz zOh})2#|v3HBv^{QOxD*tAwBZ$-#Q&khXhNp_nIN{;P4;DOKb_VBLzHy5b9t;q|^p; zn-2+=Vr#H=gyg+tOU+Uo6|=rDSJIxfwsR}u)>R_%@~oJUwyhoj(;*Q^!7`|qks)w@ z`InDJoqteK{T-HS-WO%!zV(L`8$Wd(64UPP?k{44SB4f3Th~b)GH_^7eXVWkhZaq_ ze`RyU#64dQDef{eOWV8WRY$A*km98;WOKqfbh1qmtfTpIu+(AS4=q0Mw2X46qr-Nr z*N@hUmVC?vmx<{xS8U1H$IW<_DTXgH-5Nra@iVmj2pQta=p9U*a>zD=e>9W2Fu zbn}G7ocf+wioNqt2NM$G>icIpBv?w~Wv#mzBJViZD;Wh&EwvwSugi(&tTs5*5!9dF z2g05^Yu9973siJ8HPe8)M0686(s>oRuiC^WiM;3#%b@+B^jGRxh>g)6F4VzN)<&h{ z7tIq+yX(CqPEZd}o|XD@p$;abM^;aU>5#BFDUEFUnHb5HmZ^C{yc)Ib_Nk}OFeF%t zpKkNSzcib{bV!6!er}>k0%$(wrz>8KdY1g8OFA-y zlwAE1rbB|IxW=pfWkwr%Nj^n*w1n1YJsxA}h1KA)73r(5bRtq0IlJjhZ(Y1fL7C#t=3K)WK?zpjreNulOz z@0=k@C6~xcpD0JH&BwJ&u;pZ$GKE^gQsNb>7q)f;TWY3Vk)0;ILHHuRCW^gsBSq4y zX&no5#e{e-T3?&D?JULKWb*{KB7O(I(W1zEl^UbZis`T%EXD1vNg^+;)<$vZ%oyj8 z+rQNTY55lt5)bMe8`DnI{sqBO5>x36R)%l@2=NDX?2YrzRw5O4ssh4#8Ks#Y?`4Jr zOR;5OeeULt%g18F)qZe2=2j5uV8ZqcEsj946xSuz7wTX_dIta8e9aFDmf|+S`btFJ z+IGa}I%~;qjo+pvAT9sU28oa;UT1ZgcB1w#2$l-{D<8u-*_23pers}`sL6GiGoaXQ zwyb(8TTPX$x?@0b;TZP|(-}fkIjJU_b*mV%F-dxilnOQ_b;wDvKb=pxP0>BK|SX;^{jTivTALka%y0Qwv6QdjO*|`?Dd=FL&8gky>(gaA6;5+CcI@W!wX}ZT8LJz2+blLF65mPq?jF%h}u2*EXhC=}Ct= zLPC20X;HAEDIF4Q2VWSpe^J}S+7WC^n6^6d_>2GY$vJEGDzyo2soa7sk^TvZKbSpA zZIJ1ZV5wWK+@;j!nu7rJS+hu8c_mU3VM_uluyuVYElm4;pVRzl-2Y*536DFizTJPj6 zZ3##_;<0x-lo!Of~DA=H%a8B9M6sEUp#Mjmv?@m{G>x2 zOqlKZ7uSihbV#t&2JiPP9zX0i2%9VEKlHw0Yt>#!Po%lEIv_3o^4RqYU&M}0^P2WF zovvJWvLaqih`-}&jC#mauPnh*Tr;@Flyrz1cx2wnNUc;$-MqbGLf(N|AErYcEG0gQ zKC87O zOU)3-k$dN2k=1^1-o;8s>UkTd8 z&X*L+CoJVxoBkHz*U;AF{2Evxbj>YUI9m=T{7Tu7wi(L1Y~>TbA~wtk=g`SEMX(Nj zZXv-^GPmhw8bW=|6I>>yEs=LzJ`vAL`*42G+`39SK!t?(bK0vh9TF@h-kJ7rO%g!! z3Aa?KOKQ6^{a~snBy8J$-+B5>mvUuwu$079KW{5LoLoGp`a(kT{_A;8N_-TR5>MvW zJKS|kFnhq+=x zyfc0OOos$ZS-&*(!q<+F(rR5|I@BR?t@>@;RwS*xU5Uuc8)U*o-sy8AFEbR>|rU9Ig*hXhNBx2$!y zdBV?ggwZcY#i0%+IOb?_v=*quA3m0G5t8c-){YPt)z}uw7|^n3ttP!rnKP;{Jp6St9Sa zd{Rzm4w()K`9-C;f6Wkr<>gt4rPlYsHi~0vt0Vmr64C>xAH;M>uoOoSO%gU&&bupG z&%&=ytI63X@_uS7Nr{V!)F#@Rkw)=iOPcQ0BofwV#qEyUBdNf%V#3B}>Dy#FBv^`T zWrjehAVwco=`L6-$Zd6OIJ2qNS^uGl8k1(osj{nH zwC?f~W!i~4&aIPCLc9!ZA54ctAXPq_RX&3SG@r1AC;Fjsfubg|dYoNd30|y69+`2x&Yed}HMKV;ZdvDXqJ2 zZO%RgnlVv*YeR&zF*iRvG#>rtrm?&ef8W|1uSoFMr5r62A&nE1ac=D%>$}r#{e5e5 zQZsa>$zK;8EfXPa%&^8yBsJuFhKe>!PD&BBb%f!qJVAx!_P({jYBPUbbhJ!_v@Ll-pOtv@?)lW_WUNQu zhrgaas}_imHs;l18w*98>?qI5-?ug=v6|K^e_eF6OoTMf0eoZAq~;M|Ab^&YTNyNYjZMMul>O}D5Fiq`o|}YHH}t>A8AZ$MmlQbuZs>M zjQ@oRP79IN#6-$r>yN#!tKmB0<*%0!#{a?ur-evcl+_{az}?riR2_%&*UJdwe_?{t zLZp_#>X7#A?&~a$juiUqWrXp+Fu`ddP8!`X@a!UPc)I3lp3c z;{1!I76zei$@}nQ_pS%fkyL-ZjIfs4<%9`N3z7CXR)?QANPDt$*6=DoUS~?a$qPooAu%L;7>ow>Csb8#7~MW3)4Duaral z4}H4g?`Xa9*QFdS6VAUZ@-erW%rtxa@(dup$E#?|`mslK%# zT>Me8+U6^KW8@W_O)c---`7P#+JE@#QjV61kT&K)_=wXd+CIuiyrlgH$7lY!=xCY1 z`v}&B%lBA*xy<#oem=7{*dODsi;k9wkj7W7@a4rBXSsM#B6{a1)Y_HA>X-QIqN8OZ zq>WkG>iBrK6P)iOvl$u>+R=#Azw*~bN6SQQj%j1wgCBbB>n_q)Ue_eF6 zOoX&C->ugzmj9$)`TN%9WJE{(U4LD4v`mCFz6Ak4bQoe=(c$k~o0IV*_1pb*(a|yy z(#AYn*BDi&@u0tNZB9nNH2(0{MMuj-NTar&Gd0>fjR*aGYjZM+r}3b_E;?E!LfV*b z$Iq^QEREIteNkHDS26qRqN8OZq)UCReINe5wRUB{mcw5c9UKq(Uzp&u5I?~WeK!3r zl8lRLJSd~8`ab;iwIgbCOdIp`sK&wx_ztMlEB_0;Vp<*RuZxbBiIBE6G10o~?^~Ob zQD8S$XBD$(KZTbtuG zyZ*Z9XqgCUeEk%D=&_@mP4xGL6s;Hb*F{ImL`WMm27c&E7dqSS?^~Ob84QgF{dLjN zG7-`khe50+txBGizb{%5twZ+LMMuj-NaNd1&>^h~D)RomE+^Wb`|F~E2;+ZYg406$ zu-}AavrAk&DEZa?T%M157XEq}VN0GR-1|@(el+~h4@bIq(BC($8L7YHuZs>MjQ@oR zP79IN#6+Hztv{)MCG}N3J%7E7F#Z?UCN$Dxy40eq4*!d5sp{|g>!KrVgF@IArT3MV zs-CP*3z1p|tHb}|ERK5K{(2cBv`mCFzAX!z zE0$Dri2tEaSNt8VSN^)_XqmvXBD&;}xo1`S#d&(#KK@rCq)VQq)gk_%)^_nfwVnIx zQjXLY{SCtTyGoZlWJ~z_rk;0dul#kEOD)Rkkapni>sqR=X!X}c zM|nJ$B|_SmRhS=q{+~V`boX@@M^_k2J6C;cLxeQO#SUqVTK&$&24a`oeVygh9V-61 zl%r)Lq>WiNeQI>oer|qH?5n%4>j89!ioY&8S|&oe)JNI(A^n8AFG_0=52m|0{B_Y$ z9uH=TkS_JLR)@c@>(8|u{<`SM#Dg{`OmJF=$}6T8c1)j@^v;?q@e}lY`0Hy&IIl)& zd}(}eV`29Vd_1V{L%bTTSFCSs2A)2dDrtR9~s?3gP0x3=z_$7G-rv zJ8<`PEmhaX`RkIa@^~;ygmlR=SRK-y-F=$Lg2wNS}Z)>i^Ptf<_uZxa! z4EZ+*=a(p*jqdb)h`*!nnf0v=foDaut%>5pxo1`S#d&(#KK@rCq)VQq)gk_%wh!?? zwVnIx@~q0^!7SnYU8PGNven`5n|j`<{qWaCM|nJ`?c93asa^4DA<~&2YvKGaE`m_I z>#wgJ5z@x=!JOAuXZUzf?XJW%+5<@Zq59T_aB-B+-D9Imq82+&rh!#_WuEa1X5QlitAJ*Uh+UeCDr< zj+Tj##*NF?i>hB@=YdoIO6F@--`WuAymLyIW~yT;hrh3z0as7YUzc)Z){CYdnaqHz zKj+gzl&}6&DVdj7fA@bS+&TcIjk)lhP2Up!iwISSk2Bk6fHl#7S zCyfXFecj3mjUfDWDS698NE>terBkD`(ilh9UugUx>pe7%^4CR2%Y<8BqI78ui+$(* zzUfMrG#>QVMMwF1QH{LpN|!Wl^JyVCy7Rxd6+4;}e|_zUkhUc+=(Cd5JDMw5N2Kq= zUr(P^3xr#@q_i=!4s9%4xV~R6s_#QqJ!#EgeQQIw^;b$8bIDtqCNHLIo&9~?N-(YA z{<@T-Wg?_YYt`&KmsMffK4cY|wsU`7bd;|b%@S@soYJK=cUFhLZ@MxswK)E|=qO(= zs+Pg7zf0|kPYaP*{h3P1sz9}a|106vCn{~smRK)(S!&z;ec=^jb))tG{<`FH46Rq1q7|lgy{P($(o)qg z^=Tne%V2f*U!28JzujLiBkX!ny{}jtjoW-$i1PKKDkXMMBZy`RyIwR)IJ>KKX)k~+ zhrh4u0W^;C*CkijHz9iggs|&HHDZw-KqDld7J}nJ|4Z5rrtzS^UPjpUqIzH3lcjN+ zPYaP*FPch8|ElHqUkTTrD{V_IdrWM}{e7Khp-f9lf}e@E+;_$8`u zZ3yRIDP8i&Y&raWou{Ym!(W$jq+Z`|5Fu?_lFCywsWKbj68Zdh0q9b8867jBrwO4(5z;v)vvN1Z^hlzj)Oj}j8S zkL(cdJ+R*DV8VVSW=}a;wa)DfOlhq0zPw#Lxb2c?2z0QNkDWNWlXC2TMZ0)F>m|{p zWrTchS-(rgv@sK_P24>;@hu=&%EwL|8;Xv-BNNMii^~Z4&ZK_ZiD_fT{c%b3<@9#( zPas&z$4(sGiH@-wEs3g7mi@{I`MRTi|AT2`j_+L`jX%0W{OP@2W0vx<6GwNp9C&+Q z)pm&gbbm<5*Ch3OBTO4}%qvyVQM-4J4+FtcK6c{hPIP=Qw<`K4>eeKbg9-U6rhZ+8 zX=8qVZ&LMKNFRy+Sjxvv9NmeIcfXoceIBIczYLLn&4p=WPI-G$!wg8vfA*JDO8P#H zsY2q;FD5nI4(a2|2>$vl)3DU9RuxX(qjOvZf~9=y#L=CU<39~mh1PghE6WJ}CNI-i zUy`dYOdZ`J-WBhIrF`tf(Vgh{VsL%oA++4y(7^X3YQV0|QYiwXV$HPgmy)46l<8EpIGAXtiHs*sopVwZ-hNNPJ1{Jm|aG23%r*W`|! zCs+Ry1WWnY3D2h#tI4y1EldV{H>tW?8Npu!4`_26h&6jmZfFgHr8uSvi4#D~|8`Qt zHDv^U*_>(EU6g#lQ&ojW(p>2m(tPaX%ApaNF=vAq|72C+nKB~y$}z=lSeh7P~E-4%ef~9=y#Id31=!?2Ly!Dd8 z^fH3K4$ZVNXP`x)A53ln!BReU;^2`KsBL9mpMojAG^9S!gqE(dXQ86p0Iz7M7`E7QL|dK2&bO%N>QV<(R8M91gw zeICR+&y^A4IcdFO+L*K2Es5^Av|X|Z2$u4(6GwNV zi*AG#^$rM@^05;~ccNnu{80Rt+*d}3C#zq%X4;s2(U*VQW=Y}yK(LgLojAG^9b?g# zp9Nb|S4QyH9ht^T4tN;5qg9Op!BReU;@D7hEC8`3h}trOzb47FF^%w)c7Sa^1O!X@ z*omV%(Xk$g#l@-udY*ug2uXVerj0ollCS@FQp08Vf0pudX&l{&j^U8p0DaUwWdwh# zlWF+Wklf|{N!8Myvy|jS*UW^(X^`yvt!=ph!I2)*Sfz)O51UgJ%>gOjOVoJKudU?O zpHhzgAU;@76%8sQ4!IX{?PhpGY~9g=V;T2E+ncD4{i@}I;YEalf$^6F2~@f2F^N)YvB zgnZ*p<3Xm4nf`|*(I=O-iys5QQhseEul^Jrmm(gFQI>tmiCgJ=kXTXR=2(O{E>|C| zJgP(dIpRV2UaCfoer=^&o#2VL2GvJZc#BJ+g9-jhCDVw{msCYpBOcrn@dr!!wUxa3 zQ*u=-R7LQy;wjL<1b;`9X=9eZJE^(>(&8<#lwVuPt3O4@`pYI&pATvIFGHk}9@Akw zXn#qi{MyQN)k`|_hh3k`Ts$bT0TcXfQKpUA=gq1@Z^VOt0l`v!Z6&Y%lyY=|&+sFN zjqr4t;IDEsZOjeT^@T}z=SPEJDPD6K66eC^ev5bB9=T#7_%?NEWv1lnluefuF21Z? z{FT(J(f(WEer+YB0-^$a$8o5;7s|6Dg1=22(B`_>B>m8;WYmDA{Mt%h{VBPc4qx;| zw84Ls5&VT+rj2<6e&{|JTawz&QhseEul^JruqBCDAF(A&@Rx#_Hs-D)J0w#F)JGSA z2&77@G1FCgr4g^^Kx_kIav8y29ri0TC08@{=$t(Fd{rdYho$`5O6VYc#>@qA;379V z$b@|TQhNrbVSV87o%r^oYU{U?lwXa>t3M@ISAy80aZ)w@Kj!Q5n7gXn^G_-Yv;^;rExrj5y=4SwCrBof!M6tAER3G{;r z`oTnMA`{Yr)!${>_JalVgNgKmEalf$^6F11M;>KJ&oJWcp+i~886}cihb1hBcM&)f~vxIs3~`WU@5=0l2?C9IbMTp{|926 zlgbFO^BPAnZOlBxgNsn(4+p_gw)aWn!H_^d*nmDTk$x~kq>&!e#yo(&7PT;unrMGX zrTp5;v>#0MVH^&9E#kCfY#AZ_u9kyoj6fz;(TOPeSs+--udU?OpYp8c!e=-ggv7N> zi2tDPgK1+Xz=GDJRb35&rTp4TUi~RL#v&g47v6cdasr-{))=OZ8L;V+Xe|1WO+kpa zq*8uurSq?J<`?}3e7K*`4#nSPLOeiiA50rl7nvCUS%Rhf+DcyiDdo5qz2+An9)u1i z#FN!_&b0H8PeiK{E6P%SZ6&Y%6dkEgogu78p4uy>jd=vK46BCJ7o?rDlwVuPYez-L z5AaF$7*t<4x{Q#>LhUZoh@%+OUjP*1QAjRcJ*m1E{-32JCmIj3 zK4YXlwL@QfRT;sN9@EA=gpz;uSXCss6Dj>xygX4olSK$U0|w)8AohQ{Dmu1|kSDEQ z(q`J2E${|MARgQw1WVbPVb6MT??d(3anX1s<_9sp6cDz?jF#`E*3nrn@~krPU@9dw z+?@fD)~i&XF|T9v<8idZsnEgqm71^L+h)4d24i{3EF~?~on_(Lhw3xt9kju%ViTWO zMo4?quhuhd%zXHvdn0EuM#fTNaokxiuAQqsoZbmy8VDI-2?$uCiJeb${uR+!!-DAU zJ-ic)qFd{uQervX*&@zfsXkaZybGDL9b86;Mcw_|u~rAu#{3Cmeb=I<2*Fa)1L#>M zAu*{~74-x$u8a^nf5!_>2h-VjP^D~tm7dWV66Nt=K+JPGm~J8-Or@lM)pCSHCLT-) z>33Bh)97pAGxR{oIYPY1zL;_v8t z4v8TH>kIus^e-dC57HXLv@z>oOn(e&qV$|BC7xcXzLGx7b7D;YYY<135#j-A`v_?B zIDFA#(W-`mU@7rGwcUjT`oRSKU@ZM06XKU@J7*fZQqY%=Mypx?f~BnIo!XC(SRh_F zY{_+Hg!RZ%OT=^&@t{f}K2tjw5?$cM{P%$R=uYV1`%0Xkc30vLrLjgBerWA;RguIv zEG2P`+VhZj1;is*`ynI3Oh_E1Jp`!L%_`QS$CDRuyD4ilyZFxKji8 zbQtMz?g#P7vsDF|8D&DA+hy(LyGwO8+E&__5Ag=C=wDxW5=0GDQS0l=0r#w4L?-=!{|XkNP8SH+38>!5j|qsw$iFVu#{LFJ-H<$o<|uz05QId z5KDCN5~qV{%%3A3yc6^E;*qhG*g-u5BqY9s6&-_jB6BQEh(&#^&8hZT1+@A8g{ne- z)RcK3SW4`PoJg4Ptf-f62sv$Y>8(j?VJhmIP`rmos9=o zO8hIWS0RD+7fCymHpustxJ~O7(^#d4zC*@kWK4#o#M9IE5fY2A8bwy6+)ze{Kd0@3 z>5?y6iU(CnJXUSzA%XT6Ya8VIiYKe>oN2pqAifImpp3n;l=a(F`wN&wiI_$l1wXX+LG^`uL9moW5NZcQq7!_QO86$nl@StIsNH4Sn7805wMpj(SxVv> z?LR`|4D|a`Bn#mqMaE9@P7~NYC|AOdB&B z_ugQg$<;ma|18DvSxEc?l5G$VO1)x&BR!@OJEPPE0qkUNn`G z8F2LzL*fV2-K*il$($bFd;Mi z>hCg*buybQi6YFgh?l`qvLZqK_K;W(TXF%)BI9sO$VvtE+nL7ND9pSbj#ecRJxj^T z3XMNPViw{-nJW@+i3wS8q45XPIJXq>;IXJFr+{E7Ss|ivR7li=!04cjgqe_)BN|6B zon0@gQg(GpZy7ak>q}H$cD-moq;VV5VLWJmNu^}{jovpTGV4WCLe}M|KBnzDnF7|y z*pjo9tUS{95fXdCRt*OsBf?C`iX?p>Ok)W>Z0`MdgE0t}k`+{1uR>xjZ0`D~B~q`L zkd;+hub4LGVe|xFq9#g2&r-4yOxs6De1p{}H-Zq4j0ssGrtO1iV`jn+JqB&?2oNkK zE84W3hr|F7_oZVpOvp+%ZRbqmj4kxcU!YYW>l4-PhQv{$IwVhFBxf;n@O@?Fq1s)han=hwrL$q%Uje~VvQkp*c}QFb z;)*A$qFH5xth3affoWq_+}kyIeb>p=b3m|^TfdpcXQVH?UR3YvR)V^IFrW=0;N-kc zlN&aM4wjOfXn!6OhzXKcuog#V6q%45mik?yjoA$)ACFdbPFfC?lINp-3G2f-sUZG2 zx2k}d8C!BCkI2(j-I9LdrtkUkXVg(-T`Cb(sMFl-+$^~G2O&^ z(Ns$6tNMu{@eOMG9cZ~?srkNAkJV3P8YknSMI9EKLqS#3>5=umA(2@xniA5Vt3IZ2+B8-sEW@)J zhLW?C_zC(xLSiI*hDtmuiO-o3|3Tje)7kZ+Dkc7o)~k@X2=UY5JL>LBWrX;1+CG@ht`}7)@jtblheQSXz-Q17B}U-; zieIYjoN0XZ4L$Rg7?%;RkEN_1o!YCA*Z^yN9zx3%d&PwHuTx9JG*(l=!#D|^#vveB zO5y>vyCLy2yqG_y^Mg!CWTAGKX=4V$Q>s9#k`~2M64z+|5fYn#==@AoLDu3hArX?= zd8TnP9wf)VKdC|N6-&AGo30-WiQ$ms^`d%Tw-VI#gG?K96o@e&O{#tb|Ibn!pM}Ip zklY39MKJ~&5FF_-jgzLP%&xuxd+B9ovHLc0SJ;o5oO~(x-qtSduh(H*lnIvd>AGA< zJbvEP=-c#+UoTaYlP?7i-J@Ke=wO1Se7cTuD1}+<8=7z<%E2v zSfzZrj&dl(H*akkpFi83>Exwqa`K(x2OidErFSYPSjwm6Sut@t&bjZK?&0-PH97g> zam}XP?7Q*TMF$fs<WbolG#1WWmJ9pzAnPB`CZ z+hg1rzg`MoHr}sCVc0KDhreD1@b&bOc0-99USy_}Hm zU#pZ)*HI3II0k!oKTFSa@=`UqL*HH03Hw8>4u8FzU@4!j%Z0>^Xnzx?xP8L*>!9g< zRoPjq;xnw)&gR@=G1UQV!-PuEcng^)5xSwx4I!dGtb#ap#R{(3pV zQa)WrITYfsQH_OjQ=90e+&6O7?)vNHgnUU?rFAGARYqtxEZ{dmk=`LZo%qJu4!lzUnvcnGOk-@@ZGEoNm$a zX+^hWP5R9jFXh_#>!-VN`0M3_v`&@sY1ckn4uu$r_SYF_ZOi-cQmMV_?R5C-<%G2| zsgzHt@8s< z&v*S`=}zT@*l?BdX=itxZXvEk`+Gj`&K>kp;a9o+^>V`YMd|m!ecJUOPPY(8q5VZy zSsnRN;||@$q=fXAnnQoRoM0)RM*Aq;Nr=Cp{q5<#mzwud&M(m??XQ;;;!UWOPrLry zmm~Fk^RuZs>Q#7k8vpLTwtZy%{oZFP7l=eMgR^4CQN z6XH9olutW<*SGT>k8X@^b~Z8ZrCj`>cGq7Q9ZX2npi(~V{C01zu9`G8TIy_j-b=YS zO6|PAE;^Wys7R%J+QlEt$G<=wO1SeA>lPzW+Gy`Lh#w z-`l;guwmtCZ_PLP1^Z6fWS5*xo4suMx;40t^pIHiik7vT5kZ5_Of8R>udgbWfOg?cf)zj*fS1n`0X50El2In}&`o zF=y^3R>zB-4oR5!`H5$(j!B#RIma|kfg*yXY#KVU#HkIh$>~h_T{k-+VdC98p0+yn z`K*18Y0R+@!BRF29a*Ac$0=4v*Dog|Of0KzusROeyM2ynd`X!Ima=K+$P!Wen;WDY z$Mu?$FtN`Ak6RsGP5T_v#xTKBHVqwFqRTrA?Ma9=Xjx3GyZvmdRhFW7-%dSjwiMBTMYt>fct!uFJ+GOdK`mE~}%i z$DeadWB)l3EM?QsktJp>YZv2vn5jL6BusqM`F5*gPUE&YrZGQA1WVa8bYzK9OK|oD z{(arGGGSuy{7tc~wx3d9;*q~! zXLW3J)Gj%u;pr2>QZ@}8S)#g^i@Ij)escp8e>G0WC!PM1W7-%dSjwiMBTGcjpKYJj z)gLabW@7V8oR0kRJ#tK=ofE-QHVqwF;!oF~ZgpI7+QktQr~dwW`>guivR962tf41@ zrED5Hvcw<09AkA%SoLni#B-;(dNp*%t~sW$dw>X*vT5kZ68H8PVs)H?mc_)xf4cV3 z=J@V8rm@152$r&G=*SXhRaROZ&%e?=W+J}dwez<}?vrC0Ggw5hlubiNme{yq6RYEc zoeznb_*$28V>5y4V6 z4INqH;to@+jxEu$nAquQ*MHpiTvd)~oUug&OW8DZWQqT7bF=NE>d+RMcz);;wj7Js zROOg9h6$FkY3Rrj+cqwgzSfLJ%VMJKd#*p9_+(X%X=9jRDVv6lEb;Ow7Z*fF4O$ix zH$+8Sju%$+%rT8!TSTywO+!bP_zXU%=y>LfF)Dbkl^T!369&Cmi)-Sd@O&tS8HXQWmvOjH`n7J zhtgk(oczlY-0w2&l5?}G`p+DwPJVks_d^8{NTmST$$=86fnk4%RIOL1v41Ta^3 zxt+5Vx6M!o6Ksi?4hfdx(l$?UOJyk@6|p+B9C;?V%`+VkhNZZ)86vOGipMfoipL)U z9eE~rw1w%AU@0zbhA8EVM-5ntBmGbZ6FjcLbV#rim$rF=<8zkcm^#p5nBWlvrbB|I zxU|g@d5(lxilf(12NN8tGaV8v#iebQ$aBoeQrt6yI+)<7nCXyUDK2e>$fLH~9-5<3 zD~0}C`oS;~c3QFo$C*r9`H~Kn;;6BCg2xkBDjdt;Trt5T1x!16EjdeZX){Er96Tb# zQsHP6=ZXm)>tQ;~6-#kxnP^6z7Twj#8Koa+PN(E^V`f;b@el!bq5N#RSKhOozE*DK2gE1dk`MR5+Fa zEqS#*Oz=nn(_yYyic8x(!6QN}6^=%6u9)Dl9;R)sO66cFE^USoHPYkcc}$O`xMv7; zFu|jBOos$ZacM*1^9xV0qaTAGpBN9>zgJP_2N&#Im9uGB14;k)`YNn?*=yhbEUAKJ zcx3U5miX@YzXrtoFC4vSgPs8$5-erYxNnx|`}?-GXZ~@;u$YNH`D&ZP+b8XlV;Xy3 ziC`(4hK?*TEURb+J>aas2q(>T|F2$r&G=*SZNh7PtmdR@9j%)~E$ zbvnK|sB4aCoW)86OW8DZWQkq!$66gbzVl(k#KuoL9shZGuN>3Z!%GB9*)()yiQOL? zZ*~0i&}9)5J1=uOuGyh;j%j0cllJ+*;}eZF@(#$L5cj%l2vLj+6NG<0N%^B$il&no|qsizc}_;!)g z@$`Q>=9o5y36`>H=*SYqaDVr7@8REWnJ*-_D=+LtA8` z*A`Akn^x^}Oyf)^B3R0%p(9INx!Y7bH*pkN78C7{?P<%gedqQ$rm-iE2$r&G=*SZ2 z)gtK)(W@m)%znIw)lt>hKF2gpl_!FwY#KVU1o}a%1N~saM4xs}NB5t$$uVvF!4knz zHVqwF0=-%+4}Ffo71KCX{CZ`&NxwjV4JEM?QsaYTkduVxAKg9#IluHM_~xc%hq zb4=TQutczwO+!bPK(A&A^n(c#8(!^nw0&sD9MiTREDT6AQH@BY}s>S+I;J!2+zJ;Jr~Ju3FeF^xS9 zM6i@iLr0cCuV!_iAB>r(Smt#6=iVMUrfol1B3R0%p(9J203TG|`Q~VgOlYW0L1y%^2qa$hau?L{2^>3=`b%G93~u#oj=(M4tN(mSUS9>R^I5yQlu(ZwO%CJr3`?4JibuhtJo9U2Xsj#%o<%+Ej z-}F3!T06yhfoI-Jleu^NU&5`+U9b_qXv9mj`TwvOz^k{(;>l9VQI^9 zmDl&d@j2g@V`{4df1KTAf=3XT4hfbDOWRzoI1=Xja`YPNV1i?HrbB|I!qPUED~>t& zzG2Vcw76%*1V_b8hq+>@u(V~l0_JA>!e|sy=+C7e3?tz*SBd;T6Jea`X(z8bSSpMf zn{kW6-$MsZH@@X^t@C! zp2)dkA{?#rbeJoa3QOA@5su1wsc=M?a+PNy9B=h>kgGgPg{5tVFyXkmm*N?LPzMv? zh`Fajf~CUJHb;bht(OYDaC%mTiO|RObeJoa3QOA@5ymoJDvYC`C9mzAi7-m>w9QqC zV5zXQWrU~^>yrvxSSl=Sb3{0v;HAQ`467xzyG(>51)dIb z#ZqBunN!k&S1#Y8w-=jkw4EESfP zi5~|XX~zJr9=js?=$~%HW512M_OWU7gOa{_1g;|;4c)a5PJ-^#&l11xs< zB4*;Yecf2bzwaKu#`fFoljp6Tu8qu%?VZy%;{-YXF- zWz*1+CH85zLn6=WV6;UhmOt-wJoQR-AEt3CFcB#j+q!8yZOP+ zwcYwKjjyW^!BRF29a$pR?g*=63R)HumtOC5n1#FbVH)2)BZ8%D8alE>`*9~(9gB8) zG-Be>x1Ej`4%@yD(-?0jf~9O4I3C%H=6#sPJ12srY#KVU z1lpd}(eLF!y_o2@%IR3AN9#UJ+tyklSjwiMBTM{v=OiKWcXryTz{C;nI~`|rH+`7K z%oPzVWz*1+C5GQI&g%G}?W_V5WA99L)PB*MX`FLL1WVbp=*SS)9B`!7QTx{w1tzu~ z>~xG>`c`kIadtEjEM?QsktJT-xu4bX4q6ry?f>oC;4c5Sus74jFu_tb4INox+g3YU z9Rtv^n0WnAr(^wgPxNLQd$5RLDVv6lEHUqyb*zr9(6X2~>M3Uvs~@>uZl0d24T`;rkH5QZ@}8Sz<|tog(Nk+s>Sn zFme34PRAAB-`<;PW0+tmn}&`ofnLq(KtGr;@#P5Tm)vyly}g;X{a}e;DVv6lEP-Cl z66gmLCVC~#hwIVnvEEGEey~KalubiNmgv%MhghCfO{abd6PtE(I?g^~L2st9SDy%$ zvT5kZ66n>e4)lWw6SvKC-tu+(z0sR#+Ygoqma=K+$P)X(2bFT1iI&C0smD4UKb`t% zZ>I5OQX*K&rlBKCTn!&oboATt(E<~LIyxOk9=xhI)5b8tQZ@}8SpvP9)p0V~A`@Fx zI34|O*{~1OwjV4JEM?QsktJS-4=Uy8^75dkn0R*`r(?y!c72$}x3-92DVv6l|EKIc zz@wfk-L`0-0Jxdd5(xpj95fG$EO|kT){3kw-e)DDC-@Lb;Tc)g=s7rHD_9#@bvImKG?{_@L zr`{ijG_8(+K$Siw4>!?;=Ai8HL!tE^B=l;F=G45}LYlr02L!5ceP$B4xE!CV?t5 zx6W9?rC<^msqwlPT@6AZfny2M2H``MncJ*Vg)tGYi*d~GP)K0ZM%pA$W#%@kRAKbN z>te((J&?foh_p$d%FJyRsZ!X_@w(VIO%Eh65+Q98s4{b#RjRP3;&pLX#PmP{`#jPn zfhse%S)~g1GVr>%|6qC`fx9h8n*^%N+-8+3+%>@K;!5B2KmzwQkTwZanYqm>Rk%LK z>*AVPd-x>6A%QyxNSg$z%-m*`DqIQUb#e7-dLV&ob)-!KRc3A@QWefQt~v3#=E$I3 zLT~*dfvaMq%~YYv%xy%f2y^ZanyXP#(Rj`yfVmP5rOM|2MZ#QXX3~ycJWyq>8nYtI z{e(=Fxt9T{@*!dF6lBsys(h$2bDIUB%pIXjmAM;*sY1fs>&c|eRH4euZ5D(w_w+JV z=6)ik3JG(!E|WG>g(@?*SrO*0Y^KWG5hfR(v=SuD{nkucrz%XK%FJy9!8Y7>edfM; zrb>@1)bja`fa!sRxnrJ5n*^%N+(r=LRGIVIOqDqcXStLW66PE?lQvU@Dl@lP5$0MZ zQ)RBBv`Z+KAYrajGHFLI`9PJK+Xy0@b8|JCsWMl>m?|X9b!H}QrV3SNZX<|rs?7a_ zOqIEpfvG~m+$qSU%~YYv%xzYLxg(URGIygeRY;h7J(;wbDpZ-d&5AJh^fFcE$bhLr z!rZOPq|H>J%FHbiF*ls2)o-7)GxpI0=j&_VG%p*ck0~1P@tyqTH#&Z@d=ZKawJJN` zpbLzf>_KA1@6LDb^5%ZfpiKf*`k1ckCb}Hyr&p*w+nw?tv9^=*UA3EK>%<{VYiA%( zrH{$OO)Pt{llC~_E#^hy)*H@u)v7gb8i%w}NT5m|lZTslYJCIk(YseeFA_UOIp0-V zSvD>XY1-)m0#*8$Jlw?9mz*zV-@4Vwi$uXf&Ue*Hjcpx=H2vN-5UA3}s};=j(5JRw(-u6aY)ls z>Oi1MACrfhC^BNRelGmuyA!-f)GFe9J?UCT$2g?v8G0a4rH{$OO#~buREIdE>31!GK$Siw4>xhO z{VDBnJ-we7iCcF$-&G6rXdQ<%wJRV{rH{$OP0aKZ<2i|%JfM>oiAu|z@2VBP+9D2V zx+e?-s`N2=xQWueonMYv@jm?)9bEVLOy|35Yi@5EhqO{iph_Q;hnr}A%lYMq{4W>v zBC*u(d{^!Ix!Q3^(-Ve3ph_Q;hnx7dS$|zt9fqCoAdyhg`L0_0!OC$+D}@BA^f7t3 ziGux|@2VY`KGB0j?>C(9s@1+#CJt$(kU*6_CJ#3eyxY0YIePf!SS0ePlluE`@0~3i zhcxvMAW)@`$-_-h-{Z3KrBGi);$xqakCGqfjYFDNlR%(KACrfhXi{01m2V*REF^~B z>D0%C8^5fzHR$UJY#|dQ5iu`RwVN>|_t+Lp@JD3yE9*I^WrT?C81{NGpW|s`N2=xCt87v+rH{$ul#8HIO?%Kd zXd@9j#F_7Iy?CSr(s~>W6R6V1&n|#v(X{C@rl|Cj9 zH}N~oLD{4EuoHeH=KbibKZXteqXp9Rt|btt(#PcCCi2r9ls*18eWD+Uts|WkQhM%u zaY!qL1gi8gdANxKGzVpmA70y>jD%io(fvVQZ6QtXC<1{hT%VZ)uI`Y)bsN&0p3M7$ zII8Kd&QPj&Uld0oO)$iH@gafZF46{}P=&Jr7vT$eC>%dfg)!go@F9UC9MUF%D$K2m z2&W1oHL5VWnjT2tSc0@kpbB%FHGwe^RT#$%4}}CqZKO>CRhZi>2_HruRAIz0J&?fo zh_p$d3Uiw!;lqB8D(su42ND>GkTwZaVQ#Y~u&1I5cSTGOB(TpTZ4#)$+-6PSUIwag z|H1S?0(V=GHVIT=ZnGwE*8o+x(l7eSaFKNPMxQH3Le>45~Uijg)6RAFvi1gFYo z7FVNMMdLY-gXT(DyM*qsAc5;lq#eC@pbA%wSrfRQfGTq@15R!udcI=GH~94Yzh5?yI9pk1N#j`Hq0;fduZDBW)6>!rW#};Jg-9<}6&h zgnBI!ILAfWOckmyw^1$SfvXgx9lf+fRAFvigii=ujiSn231g~|z;!0l zW~xwyxy_ou{RC8*dl{H2BygtyX){%*!rW#};EoWg%-twV6%x4DgS43{RAFwjCU8#= zRX8%39!TJB9nvO&D$H#p;jHYK&8;d08kag^rNqvT<74If#Hup5x^rCqh*h`#LLC{L zv0R8=AEa7quC@yi2d&>T5?V0*bJ?JEYk0f=hj`tSYJKv|BL>Y^Ha$?)>GKq8^yW_g z4>4umVe5g*{k1A}#9^!WilP4xu{QRw_4CjKL&fb15FsJP~Ya%N}mrCJ|WoS_Lrs_ z*JVN?MwsA(aH@p(g39gsmlF)yO`wWPbZGyPSra~X=N@&}BkyY!_s2mWYz`3zE&8pc z%o_Abs<@tSyMK^zUA~g|MM)J9++w~h-p8Qb1gf}I=1=JU{}3EyPQLw-k#y_$+lTYPqYvxM@dH&dE^$7hMj!3*`?rUzPCMrr*JVPYw&CI9Gf41p zu`Nps+91LnsN(jTWvap+LU2l6TeK?dVYGH_Cg~Lw_7%>#i_od!(cp1kz_>17Nm`7N z51lF`c+7Zk)5%9mdnv`$r+K-HE?3&W{GKQkZQ`@OAI zoLf{OZF(S)c4UF3xjv9K2~@4_;SgN^E`l(p2Jjs=~zmrzUIF7kBNC%cGopa0-=rL;pP^<8Xur63bq2=pCK* zM$nFnlPXk6+A}h?{|6!MYUiA|ILwo@o-1WqnyK-ZQQJ*~ zQzh+{Q-$?x*1zMTYtV;;w0x&TvuGtgR7oV_RH2`d4?Pab=q07_*2Vj2CgYTXQV(SQ zUXi{dE@i?iEGdPK=kJY2+Vse!#_RGawf17%6Q4Rgl|7`_GHnn(B(O&zZ4e4o`BW?I z$7#=!@F9V%9cj}8RdU^-#Vf^UkC5DcSmwcSs+cxC2K9MZr=3R`sZEY*LWd(9VNO3s z;t_g`lWUVlIHXMvRBhZDrwJa6?h#weNOb;Zaq_=lpZ_p-zDyjeT-QRT+ zKFPVXI4(tOm07mka6e~4+Ah}z(nhL$sFHr3kx|7>gj1DQHP9u><9Uy^^}?m=ngIym zn|ZOZRz2FXb=)7D`s!nj)K8snsE^%oS6Tx{11u|P3r?SRa^kcSB&6*+QQPU8T+&9) z6{;{sp2a~lGyta7Us`V7}O_9Ef=0>r~NyoL-A6iFVxDvnFKK@ZiDb#vBgkc7}%!30djQKHbQm zO#)Ro3&ZizAQTd^V&xcxv`L@}XOmeIQiGg!EFUTLa7^@tO4o;kvci%g87jo@=>g`r%Z`oiW)rM%ql3cyP|82X|{*#_-dGPx_$jOk`x3 zC5k0&c=(Wz9gqL44lyttA*rG|AEe8j=jXpx zdPyJiI!f{v9@PkQ>H}*^#w)H5>CIfTW~z{o-o^b9X_G*e^g*u8>=BuLyGlIL+QTRH zArU93Rn2%zVb=LTLTc@aPfgm)2dbnt>5XW^&m?55o$=yoqYh-;b+4n4kgsKX?+9bsUE_H;=SbvH4$b?=(*sq~UU_AaJp$Vm z(xwNdS4x`uxzwyH!ugPpI^er9NShw0k{aaMYnFr$3F+s&@(l~P^Em0 zw8zE5RkKOx86bJ+RSM9i2dXOh=q?En`+8J~N58BIJ!d3>S49RLLYz8BRooi7r$fZq zga@-p=(#8nyedN4Ockn1T&b@;G7>6hlhErZ^5B&)(xwNh?jGoPTwcC}KAVK3 zkne3HZF-=IJaJZC`K^gvZ+%eXI_L}rUA3$5h7c+&$_(!%fe-J4B9T0YO= zkTyL~B|X)%rd&1&>A^fVMB4N~mBf$YSITCSkVvHG>Y;eWwCRB=iJV0Tk}6w-L{wfU z7<9qz z$VkokK-%;`mCO^kKC&d7RVu{~zOKw4xIU0JJQS+(`(kx$=a!Kr;X^{N0m+Zs71E{$ zs=iC0yU0Xv|HzV{)dcM!hpwyFPIS!u18LI(RR?=`HO>7zOTveQUOSNo_j9C84^&+# z?4&Rw;l8X1XAe1aUA=aqV_vHvZF->U(mcn5<8GFO4+*_iBM*+dNShw0O8?&R;PE3% z!iR)@Qh_{p{6O0DKvh0PPwx=Hqgs}P&m?FcKSUsHdg$jeBCgBhdG-kL47Sl={-NNP&Nsf0rK-DNShw0l6m5-jDp!DWCqC3 z$slcdph{+XV^#jR>=7~pr$lkQpF91BtZhfhw7|t@34LlaLu8 zKOu&+>47Sl=}qf(Bb$WG0Qos7gASRP^F&t3OfTis^=uL{1LWtukT&yyDw&=Alkry$ z34ZbnX~QEtPh^$M+c+Ot5=zc6Au~YE2hyeoswCoYePl_5=ZSn>iC0|GNE;sEc_OPM z4syH7k_gWenUMI%?Fwnr162~wxqoCy_>hn|&;0{w(*sp9E^$B4k_gWe`MNS*aX&}e z^gxx2uN<$kB*ODVzOIbB9IuczJy0bx3y!;465)9wUsvW29Cwj6Jy0d{9UcL)B*ODV zzOKxJc>F-x^gxx&+jzXnk_gWe`MNR#WCCf^166We9$&LZND6t}MOu6KB4>T9lJa?b zUIjNnm^n{mLQ0ySlt$Xj2dXmbxw4xGrwR#aG5jnB(xwNhq`i*Gc*sqJJ&=%=&-Wma zHa$=!{Z0+7=_bM+NJtOnyQD~)9;lM|vEEz9O@uv=khsE6Jt1v+pi1K4M;+_AiLeI} z5_kCtDx^&hR7pH9F|WRx2zwwQBLhG0gS6>^Dj9ulWz=^QVUK78KaqsA=^_RCfA@PsR@< z^poqP;`%_^^gz|`UdMymm5T^_AfcbYCl78{NShw0%Ds=?;U$9mhl>b%AfccCCxZJ2 z(xwNhhSqaDxSzX-um=+QxmWVwevY*1fvP1-=`CX-I9|Dkum=+QIa?w)ULkFIph`c> zO9aP37ZLV|MsP$$+Vqe!tQyc~NjM+!cX!;CGfe1bk3;!D+Vnux%p>$pH4$7N*(3B* zb}Do+c?gWFa12>q-(d2qWz+Vnux-TUb2cp|ueWRK8K^Ao}S18LI(Rcksq z9^B8fN9gDO$%Fej(xwNh3SFmf4iLfdBYT8?-+%~?L`a(+sJdgP)gX3=Y2>s?9d2rlC+VntG9-ov|$?OvRR=h4ehJd12dX3v^1e^@2#Kh?KZCUCfhvjT zynmHFLPiGOXF}TaK$VO>ybqT%g7?diHauvj$Qi>~CF3jSL;lWw2BG8(6Ef~{K9DvD z=j|Hm=d6->0@p{Dgu?5}{DJEOX~RRIO6EJ|Af2_F*rol(jY$6cgN4^+J{#PQ(qBTK@Eg#H={dGPpwwCRDWTs~QI zl+2oNzN!+suKxN79qap1K${+@l9cdxj(%Aal0qKOk=BGyRz;|i^5J=jiy+Kd2_qrp z#`6-S%~YW(vz{xviEyfrkoxEO71Bzr%ddaU!{;BpEmrSM(sQVhd!go@Wr$Ew38J}` z$etx1E48Yn{#6p+q?waE`bl^~i4q?Ov8NB`Q5uU7tsUVSE{ zl3hoRiBSm^mEaT-fwWSmPUv4=^u4{UlUJV!sbtrYV|!FWMJ0%40%@i8KYNmYOUPF< zZ-1{o6H>{pBacy02^EzfnhB)ocb6ti(jMhnzwXs%LMqvH?>EPE`(wPzsS&>fD4$ ze)cFtWu?!ARI-Q2rJDnSXeN+Ws{FGjwa4RB=lV=YC3}e6N^(FD%>>fA?dsn);FhS* zgjBMJ$gMpG1kp?wH1|R6!97Z!38`e)k$Y_p2%?!lTE`OY!I43q38^yo5DVsn;1p84 zLRzWHd7NKftlj6NN1q9)WDk*}XbuRXnLt{pmaUy%UTiadl1HBjsbtrYM}Qm$!4H2we)54O*#pw>!TY`s5cy?aX#% z?y;la|3i=m??y@g;A5pK23Y2YJsj2L#bf7_@3R(TVN3sC`M?WtGHp z-b2m-K^{yXZH!U2j31Hr(sDqM2k!#QsOIblhsIhSIc*sS`HYOOk$&OPIXV%_2hvJ? z>C72aVJa&b&-uDCPvCOP0THSXq?LNxnfs{5ROd1;;p@tLhg(Sw2=ZV8Y29|civHoY zEAuN>$-Ir*aSjObU;=5~2ek+HL76AAO6H&3A9FyE2NOu^$e=wqmdJdURhjeX$~hs( zgLj>gR%(m0Hc)Y0Px>?G?dCHKIUvY`BdV-F_*kiV&KgHunmNfY>kmF7>l%*pIUvY` z38ceoHN|6;tfN?k>$4mXx~w9fVUhJ9d4$)4kG#hkIdg^!R8}&c^L1sOz~z<$B2*tpE7d-<9&7{aL0wbuZdVQn^3ZJw zXx(;g9tXK4%KVB|GH=r@Jo^NBFk#R*7Y(lmStavN?vFVj$b$)_qpt^9CG%*G5;-8q zg9)T*{SjIloP9oXJ;*9qL2!J`0YM&2Agxqo>l%*pIUvY`38XXEgFHsb zI*L`Y9^`Q;2LyRAfwWR#UPgF582PSt4hZt#w}hm% z^Kta`VB|aJIUvY`-x88utKX1U%|h$Je3T!3CZv+}8Nc(B1A=HKkfwIk%UKUz=XwdP z2VLI)2*oQ+|2IJ%{FabJQRj;e+@3fla{JO}LMn;p{0)d45JWS9v{L@*&KNb4`iYDm ztjZk89?A(p9{kk^q?M{WMUS=W4OkCGep@03L?|CJI&*53n&Z=R2GtYRgM3Ej30$H% zAVMXLH0_b~)_dXV7}dEx6H>{1hwC{91kp?&t+?&#briQ9V zvHjYFieCQGOt%_A>)g?maqk!E9Z>WwoWIYnqi>S;(Z~FEx)ZlH#vVU6Bk{`$wG5){ zch3h>>Gz5rxpS34)B5~ktlj3%gNbjhtL{bB-Jd@nP=$h4?}s9ZRWrqZS= z-h!kmcs11;Br3`Wr>e{Uh^B8Z)vLdXQg!b~v3B0$cFb?*9FNA|r)H)kMBtT_nm!`N z-gy7Dn72FC(y0=HbGzzcZ zV@Ky`I}!YMrT&wk`d|WSrH-tr#dok&{{soOJ`+;)J@=Zv?v_7tL=epc z(n=-v`>d)r8aG#J!1aX(AH-{s@%Ju(;gH1{1Tl| zQ3;}%Kw7Eci#uwM*V2mH`bR3 zb3zc!1ky?!xWA|NsFb0+`bzs@ z`2y*OQmo}K6`=Vp|MS453b6;$=^o3DX?ldr$f)HIG+OfU`mNIfKL%5+x|jKjq<=rZ zD{(~rtFcM-$JzS2A=R?A(*nOPNVS$GMG}A9T(I}}*ln@%Y2J##B(uAm*teh6;MZ}7Yk;L6gnl&pl=p)a^^IoyL_nsDbx=gBdepgMM zk7{(BnpiWwM4M@W&;Cxau02_k@==nA?R`G-ys^L}uDvoX@LR&sw#=|d!6*`qxA=- zmyfxX?5kZP9%-fW%qSo8b)cYk?!l*=8VsrG|2;ME3msRe6iMVGqQ-%OUjG4;_;T^o zz=-}S*5Yl|;*qA+#3ONu=Z_clE~6C-ri730d@RLkQKDKr(lkpdYsIv9qlR~L1)9r& zDq+ynz;m5atWmc|BPtM)5TB%Emdc-_ivAy?FYFSN)>hi~L2EP0Eu=T|7Na8#Zi>tKv4me;Ez3aUhcrWF! zRWz=0Jkm;4FZEdBJlf&>`gl>pgHv_e-ouviRfHy&xF;@aemX?bRx_tc~NlTmdr z=8Zt5mkwKp)BQ7@n2KKP99&iD?WjSrlmJ~(XJo!Z0cD}^alfuc_(J^pul z@4ENPc$dB~AyA(B-GqaM3>DI}9-MJ!^QFt5_g;SZq6dlj3nv6psYf-QQrMtrFXPoa zn{UiT&%)8YuSk`Y52rRWRj<~#mbhtjA8+69FBru8?Is51P#^3Q>y)(6N_{@7WJJx#kQUcl|#V)cKJ4gHql83M6%Ee}}j7_AcJp zw|oJ+UyAiUJN_AjvK ze{YARJ#%MyI_wzkJy^vTxTAWiRlIn9om=rUQ&qp!k(jf!c6jm(dc`2VYTyfWp*(%w z+N71bZEt$aCTh1Sx%+z~Rnjsre@d+={eJR1E6H==ftL+pd`I%Qo?_keq2nPm?Zf>v zI%%lyD^IC|eZ8o{87q5a68rZSjyX5#u4Mno1aI;E34x4^RO^Py7r$~}LSXaFRI3Ob zYeLUa^HP1xwALoJrMc+Qd9&7yr{w&WRFZ@!n&_w?ymT-zewC@?@PZV1eOg8T9=>57vJRDguusr zgI0{!@z_Rx=N3cH$+VuA^yjc`$t7=&^G2$8mn$P9ug-ZUk z5yv(X;-tUXU;Vs)jP?Z{ zZXf`DxbAF`?)jN(mExe3+)AHa(^H;k@Rb_9|fC z-mI%Zbf>jp?v82JS6_zKhT(jyAfi|A0```sUA?G^ECm%N>Lopq^hZVmyJGH!-b0JV z2b%tzX1%u2iM5gvPE~5|bUg;sj_|3`&Hrgp&0bp3YY=&=jt@-ToMt`qr;{h4Y4@Cn zp>fshxCT)%Xr)FHF}qn?dt2lCyr_ySg-l|{_VmOvx%%7h z(;fG+aT5dc2Bllim2$>#NeQQF)a&V?*-}#Ldz)9;{+zu&{gOc(qgh6thtsVZZ#uIK zp_ST0L`fokBmz~DrI1NXUf(0pL-)Jh9XH9-x%s3(k$LG>^$W#y{E(Dzs)7sB^=we7 zGTTnYBwin8f4h9XLHtfLz>UMxtu4o$JPEB-2_m`^@#L!c9#ln^LMHLGn%*pdb_^!b z4EY|K4rWx|A`RUeVnjuT7c;>8B6(W8n;>WqiVo?=Y z(&DGoxGod-&ZheKblfC=tJZG>j?#6zeR^;Bx}00~;IiU1l~VI-ywz;iZ3%YMy<3x! z_=eUT?WoqOgb4O<%4!P{c`4_AZQYiPs>qVgBsRqrOZ+o;f4e3!64fkc9jdG^9PsYp}X-MW@0 zqqF^srViJHsP;~u7Ff47Xg$y)lHeWTkIFSlu4hy1-7+n(EhcFBFPb~TxKpfD^YNz> ziyzAE|MC1-gBZGcTHwXOL94|_CQUmmkE*>-(Ov4*6oDdDl0wdtGn3_A=PQr)YMS5b z>@PEJltC<^9pUwq^WvKv522O1N<^L3o&DdA9c7~mbB^W4`S$4@dOp(bp*ap8cbOQp ztUb>BLG24#bC&X)Aw>B2D3ZW=qR^}}Jy7*wJk9QFIUX*;$1Hmw!MWx20RLTR)|not za!T~B=!B11zLuMCRue+A&h)@F$K%Pgt_|fQdxWfn*js3~2dXxVNe$OW_6S)Cvxm@b z4^*iZsk)wXK+s+|-(z7yXt#%~Us+YXU@Co8zDN!T+3`Ty?SZNjr&6r$ZJimJ`29B_ zdnD{3w3|TH(CsNSBP*u!kv&3ox!6N!w+E`KE=;i=JMYX(vq#7-7kdcp_CVDalT)l2 z7fb4VWRJjIPNCf%s8T*ID`zg6O(L`-%=r-7?IHWdtm5mwTD+Xou0nqQO>hcjW+}9r zKoytImNNHgkL(d#(mZ38`e54afhw+NdXqQ@gwtZ2Ih@dL4^(k`eRrpms_YTm@_9DN z`4HOefhz8IZR=Ld0l__(=Z5SdwA%w!9C2QzXUcLwP`u)q9uq>lJvd&8iX&%ID`$S4 zJ%S@D&*9iZXtxKdIG%U@)bYq3!6O6Deb_^2w+E_tTvF=691?hEoN2d*Gu}BV;SpK# zA%6c&$n1slA+$mG_zbFeo*?xRl?adLQa&=rl$0s*&>{wA%w!C;F#_<8D+!dmte@1?(ZT+XGeAN2P_wkEn$9Ktgs3*h6Ty2db1W zEj$iJCA5b@z`l>rVGkc4u{-V#@pWZ9cM%M@2=?Qh8_5ULtkd&dA0P1q3;Bw=;p?oEw-2|$*p2PF2kYAYa@eyAO38(&@-9e$l1RrPuRoq@>p6DWc(FktG zd|#Elg=U?Zb5wD^lliWT2zwyG{ZZ~g3hnklm8{P=RW2gzVGyv=6Pi8f$uPQqzHG2_ zk6!AQf59A&v0c&gAM~Vmx9QHa2BN}xM%wW}LRtf>@K~RBi+RsEPg#hHJ*3u< zb`z+=W4V$;qFRJXPeKNc*A4{#VhtQ4(5~#vs zlNd`K~`!RzX>(svZ^qBq>ehy5H6BxJ3xbDI_6 zOY?0@UKsKaf<0svkF@qM2vp&*T*)Eg=nEM9^$WZ%AIrL*J%n}>sKR5Dpc?c`or_AB zRcP0MJ>>6>2NJS7pmUogK`qgiwkrgC$SNLb#{&se;jvuFA*e^$(g#Jw9+K`163n-zL0 zEMhl;cMaG>XzgJTd@WJou}S<&Wz~JmB#)Gj>_%{IdEGDh;J-T_NT3Rj#m^zG)4kND zFP_vMqGCU;HJ*h_eaJq8Qb?c*kL5~^$8Xej$9?WRMW0Uxi z?i2k>U;4xA@-g=!-Zfwkp&bt-P=&`PQI=xKBpTE4x_m6Fc=iz5@jwDqcx)0?Xil<> z<|cSuKIS;ct5o(7+VMaFRd{R?J?S~l^7Pd@ye=PebmrAIdkF1#Ab~18Hi?Ckwk6M` znIB%4k7X6l9zr`FNT3RjP2%$SZLteN9-?9oS;gzJ3hh!j9!Q`HkL5}Z!B4B74Lx}# zD)!(}U+P2t?j}%$$0k8F=#e@Xl`gB$t^wym{_c1n!E+qmThO_MW0Rnk=#{oB1bgr- zO!|lX-SI#IRd{R?)T6x82SvpmJe!n$E`N7CkU$k4n*_xYuf!5ju?NqJC0@zj9S zg~ui_i2C0ZsuR2}AM@;9;;zt+2NI~lW0S~7ZEDptC$@`QR;MH&pB~ zlkWC@S-yPcUWP_>s(|?DE8Z8q&!EE|VFFc>+yBnTtfzw3*hv+P>oPHn-XH$%8-9ib zb`5k{8H6urEx%OWpxuN5mE<;Rs>1o0LGSIdJF58j)%R0%Y7Gy?XCeuDd&;2QgcFe+ zmE;!v3_|C8NcU7-Q>fzO?_+3xpK8`1bgB%(m-^pjr3nQp$u0UB9y(Qn3#aNVLN@O`uA0i+*koc8}~6OtANK3wG`p)gC618t%2ygWVqV{%lw! zx&7}{aoXpcxyNW3OmIC_I$JDC4I;s%z`xM`-yW!v-2OMg^*mv8QRBKyaGSpOettIt z`k*c=gP<1Et7tKUb`#vLL?yZX?^JQ0V0TpUG53E?ZP>%dM|>udps(5(beP}+O*nnf zQAuvm&rNXr;F>}eA9Hl&nhg^^KH@V5L6JyG!PTz91jj2;Np8`PuN)pfv5aD6KJ8C9J3de+G0nP`lAlIP`Z58% z`^sM?nEL$qz~RT!thIajsr&pyaAs!KJ?$_2`pm%C7x)f%>3C)Qso9 z^ZV}ncY4!;h(C8)jT+TC?Z@jDs86%|vNV(VB~QHRQNZy~lgVS>=xKpAfi&xpr>g7g zHdw-=Xk*8NQs{Vas$w6gvU7R_@zg)l0|gte?_TU_;t%B-_<&8 z5Fgf_9yt9?idDC>Nh|dgrRvv(xpz0OciNAt$oddJr8<+x>8A5YI*#idvi zUU5oSY7J?cw~)tOB`@uKgFKLU_3YF@gL8+i5ACWEbTh7t5CWF(hxFwWS(Ulqg3T9duQWb zlqw`1IXN}ZvOGO!yDF5ba4V@m9@oCCy0avu3RRJ9j9b3bu8!UDs$KTTx!C;sR{QJE zm>xJrcc=e7Q#&4O?f7pq0xuM z9$;V3xRqEY^{5|J*kaI6siBmQO&N!FeMD_HuHK|TsVAt7zFWj-eF?QD2a44^Z2kQ? zN4OuUtnx2t)aZ69DqJI1$@NZfVqm2vlL8Fuz~&&)k0Y$uaNl z+8KY^KjD%u5Vs*{jX#*%h$VGT`T{fQIl{s(<)&0^rF>+>9&EIST00U+cZ?4_cP?n1 zYMIBNmHL>7J?lSj^b!%M!dQYaMyY=&ADjC0-sz`0@9vur$XzDg`hI9Z)AdeZfTqXyA&==4CBkAl_{ zLu$t(t<>{(zic<$Q`n#O>~=q@@?V}2cx^O~QH>*ri4BL?$7X-tyuJ5b|DDsO2ks-) ziO*`sBY{^^>P-9)d*h|?%{R0%iPDRv2YSZ^tto}-7&Lubq|Q(~=JR>U^_ML5qiT2R zjKCh{qze6%I^A}-{mP~*F>A)pHHi7krU!V`KU%p?Jks=?jHScu>mM(SU0rXkA5|C) zOyb`*L+n!HRwVxU*t-VdSxmA0V5-%(Se0N+AL+p8P4@l}d{yjgcFcO)>W7MvA z=Fpj<==sCGK+l`0);E>SK4|vZ5_9_5jW(q0+S|?~wx#(3lNtrBe;S&!QvWXQXRo!o zHojQtv>#R2x6MBIAf@VT(*liiQ)~aR;^e^bPt&bi>+Ui7Aodk{N0EqYi{|fmBZ4UZ z&>Ml9XVa~`w@Mi_z3)s!$C*j>M-YK3Jr@bZb2C*9h!{F(@vZ|@R!E$wH6@UAEZvHI z;@*f^#vbZ}w{QHq@iFS>sKRjx{iqL;$0PT?+lWV;N)6u(jHgI_a8m_i?87lpso%(B z+rBS$eiK2AYC0wGB*pW`$A?lCo?mg!3zS^nkaLbItY>pZ_6K>aD_y$ri3p-pgEs=I z{9$WJ_0mr1hG#N=6Hz(WKaKVgfhrtj&`+rb)JkHkxLqBpp7ysn?F&qMGu8TbXs9iP zt~>0CFVMDQs&&U_JQ_5j@#Dh}*EGJ~(j-1k_XQpeq*_y&nKZriyP%&vsa{5-Dos!O zQRQm+;e1r4d~9l@8b93dw7*2-@qw7LDb{bdLZeJbh4VRjetuCuyY}LTcfDB6B%Uce zKJamgRIAmKCaqKkrD|!74UK*z4^&}p&9XZ5{+!qWsUz(Z#h&owQcVI!7YD7`ug;Hq zrb@#=k(EK~_!IN#TVYKCZI%VCm9H|mVWle0E610|Fn4^hCGlSN%AI{N4$7w;UPs6!H zwAeEzwr0b7?Ilgxdf9zs*P!*)k8f$>-k!8CHuo(}Y^1kZ|2K0M5uffOk6s!6zbf?9 zM5R_it4$+^$Y>L^7N4A{iK889^hNZl`G?Tw59LH#q?sLA?3W$;boqDUk=ekkprpLl1mP; za(}9IeTG9klbUMX_8Ak89GVmR!gtlYt^Ki@_;Ch(5vIj#osTBe@<&{srBl^)ajLaQ zmsR@FIk6wVZFy@wR7n%F#?ji~ai>1oj!d=c6?f_*X)-;5pE{d7#_XCC`}U-#y?^v9 zpozUhQmwAz=W36C2BumA9&_sa!{Mpc2f7CDO`Q|F=gTqPyxu~(&inMD{UqPpn)tpe z(Iem1soL{gs`aRDR|!P;yXxN!Q(Wgv96G-+Ox$s4p(gn6b?YyrR6V(OPHdU)#&}1p zzst`=!t<%t(AJAJQNCxYbzjfLVUH4*7ZGvnlR2>qr#|hS^ke~>3C{U1#g=J;b6%&@ zGEHzkcGr1_h>=vfn^s%i(q$`Yf=hRD<>i{-(*5P-<(lBK+VjpbBK9Af6T9JHHShHk zv6@I&mTHZ^XN4w4Qyr}CyFwFOAL%ET6R~4I)%j=3JXKB)(FC`Wsz0pM1h%7POl|;NvE%BL`>w5By7_A9zi8U&((ge4}&u2IUx2uQp^Op+S2j;}?n^Gt?U%doP zEXWtMR@ZfiPw4pQVu#?iJGmAUI$PU#MO zC1{no?36C|^98!BItAy%dJ=lu->zt#{kcXG*oOAR!K4_^<6~_`)muv9&`Z=-p z|N4qOJ-AsD9N|9y!)YZP;bz^vL=zmZ*1WTXh)&enD;yYUe>dz2O}x6Ca=37j_V}K5 zbZ))7ND~|r5B$pQs?yU5-VPP!CcidjO=50UDbTpo5$m0*%i|tsP$}^90eY8^+AIHE zl|K?{yAKdCjEIC$ZX%yQ-3sZ@(zT&NQcALLRrIaK-BdRS&D+el;a6C+68xfy= zz0KdNnwz*%B;8tga%mjW^bXdnUf!|IuK8mc6-?$cqDrk%C2;Ftn$CwwBoWau=9=GM z(@o6XpJtVRaA_RU^mUm19lTfDl(xr@t)9$hM78j{s)2K391oKiysv}z)pn)r15dh% z+9T7fZWEWpA+1!k^akFq(;L`LinmMVGoq^SL$$!;^!^~%heB(5N>6wJtU^pPmT*Tr}xag64o$ux&MG}6A( z#)(%*ND7greTE8MJ@s}Cv&-M?=*N6;`Rv{nv>xiWMCU{Nl)8(`>gSJ!*`w}#%tc5^ zBTaj+bGCVkZXRF{d%LwC>x1jL@25fQ``?%78WcaJ&QhI^+cLmDJHky!i$R*!Y8U?S za{-QmY(er#9VUSGQrw9bFDRJTO&Q|f7IyCcqbw|%){T!gfIr0K3etJN zuc+q7{=xn3?mB5!v-jT7Jxcs&XM*}*{nc&kpBK6b>A^_T?gzz^maXgBb&^W>v7dAN zcwkVP^>1LAjtt^Q^F)dzZCll~p9;7Mi9|>%HHczjphF4!`863vyy7_6@1r#9xqK^h zyb?d9W>8G*^JoeC(Rpq{A}Z4K#yUmn*2Ay(e;$->#9fZ(L+JhUFZ!<3ky`xdjdda> z6Y=}YZbC)|r0FgijX2ixANqHfU0{qKJT7hNoNiV9W|bas#80X1M5GZ>pp2W45e{jZ zS<=WkqVJRbW&;`~<2cCU>u}mt+wkHVJ#vblQZEou>xC!%%U^aAGEyT=@BPpW;8dGg z$=BAHqchJF^5i;Vb-S@vkLTj&%rc&7J1cqRDmNiB4y28>nvNwh$KgJYvn82D(N`mA z4!8LCSL}rwo!Jr+5)F{1`l#8}v%SPicCQK>bz~3~_xaQ7gI1MG=Il(V+beeUB$s)~ zURcOYNHjp2zNR~Uo2S#r-u96@*XmdzD(>^S4%2Kh=^Y(Q#80UUv$uIp59@8`zTZtq zG(eiZ1pOn8YH^+IktvIHWDphi`5V6mt!1Z{=~yCu^aUD$AXf?am z)z@__5fw*+Kf9+{SHE4UV~O}tJ}CNp)3KV}^P-!OXn?d*Z74F#?pwrutKQ>&j4~Vz zl9#7h8XVv1fHh>D}Z7pK#$fm1i?SR#J(E3OoMM!z>T`N#k_A<+kEV;4uq z5?Nt!G~ivFe7oM!t0Lar2`0QltD>79%!%#zT5o$vz*(yyA<+kE`t1Rl!?pjuhyDD8 zi#nEwilf0MT5T=r?yS|tPpO?0ePS>4u>U>lCL|gltyH@y+dSW&?rc|!|5nEmQE@a# zqM7AG1D5MpB7XGUL5e;XzvyhAf5c5lG(ei3=K19hPrb3N>?>uC=~yBvjs~Z`qOX>H zwL-@d@lz^=qR*?oR`%keZbG5~(n{5*SW@ubhIab}`*bW36-R@(JJYP%n^x&qB7PKi zDVFps+tB`Dk(-ccfV5JDDVA)@SKdBcV}p(*qT)WE$D$`1KUt$=iTEismWac7%iDcw zxe18|NYmPYB17>H3fNz@ovmYusJPGP8c$CGHh)jY67i#7<)Y~G-lhWf=GJaPq5;x0 zd!@**qR1)#)MI^hED;q)gX;&O8*O->{3DkZ6E3MNx_+t5>)1Kl@p_jwPbv zXi&dvy7kkh%{rEdAAL`sh(jw{_$z(xCL|glO>LJV!`DxbPyTjV!DNgw91RA)NAs&~ zTXifEKPURMeQJF2(&=tOq7Tw^Z-PAX-S%?w{Dw7>b(HCoZhg~bmvLQ_s7S<5d0tMw z6on{qf4Wt1^LB%F_DgPztK+{rR{1#}qQVk2bKZl>DnLY;D8$awY1XJxTOvx=OLczn z&N=>z~8Se$0P_5KGDt>k`ciAByI@*f>LTemAw zVGBn;8b65Gf9{aK!#Fo_m}USS2Ct83?M0{$wqJeSe`VE2x_^iYdn)=VHIazRE3W$= zSmP!RS4^|U`XYO60g4R%6-DiD3LV$|TvQlw&`+uEG%tB-RZ;uUoo=GjReC=4$H?f@ zjbdWq-z(dP?)y#0D^X$OL_ZpFC?-B|rLsMvqMLXjC1|bK5gA2~{QQUK^w$mTrz_{R z`MRRQ5di&^T1acoCf_u)^Hp*aXK80*#_y4%!4Vpx3YCkuUny{x&DRwbj%4UZUp=KU z>fMs@_9J(?iI?9BTHQBBj%q{dboC7E-Og@Qw3yA;6%~%i=tsYHL-Y3GFSfIvyUk6^ zN}%Te&P9&S?}2 zJJII}`|;%BliKT8@@Pr=&RO>)9Sx+x(=M0u zkC;(X#}ZLtpT`*E%;D->Dd!&^g?OK4$Zy=(u49Qr3}$BOGL$eTlzfu zDRr4*$>4u{{!-=KME@7ktR}g)=vX2&#YBn>^S;>P|M%bq9ZN*TeOvlG`q8)ah?sbM zi@)iiC`9cvt99ECbSx2CsaGj7_zQpKA2sH<6H7uW?%UGm(T~O`8qez&|H}W)C^zx- zzd@_S_wVZ&fY3_4Ns-}buiW;w)EhdMh>H8R^m+7CY6wN2*Ph93|CHt?)*lO6Pk;Ze zp2-MJj~P;A_}dgRX1zj7%a1t-L5Q ze6p*8oxfT+9ZN)oeIEUkI{DKdo-?~E*w#aC;^R5=rI1dm^vqHshBJH3ySRqEdHsVr zmWT@bJo-`T&fMmy@OBNm)CX>&|Cpe4;rI$YLzaj^zXnB-VeYm1_L*Q!9ZN)oeIEUk zDnL7s6aT7j-<|3vaSiI-YoDPnxbn4-kQ5?K-yN*h)pIa+89P^% zmPS6fe6IHkS}z`V?y-pZNyFIE(U87xbdu>a1d}ZZJf(-fV27E;_`&1S8}zJm)sDOL zh$DVV{XoRU13mn=+PeuE;gF_CO=Il?kLLGJzgXQE2YGxQI3vy4{cEBgImORe6`g%7 zzyIqfgpAZkJ2QZS&o)Tj^i^NI#t{|I6S~`J*0=BN(=!0^Q;OFgXNWivg^(Es(#8`h zIx@&zZ;l3d|6J~?D>awmRi|e&{7*jM+&@P`q5;zMTzKWKo{RPV@h7Z%TE`MmaWoj; zDQNw&*15wke)N4&iavK$|HnUSy_=9|fHd6`rdV>{FPHtNQakEcA}Wps?%6-R?jLxNV-^Y7|dB7XF{8ARNZ z{*C|pD1<}R2&U9($fNEuD`EiiTKeDJrOD8j`$yqLP#_~ znp!)}OU}jY@Hf3yPR|)c#nIqzn(4o{=mQ-~#E-s>OT_E3JN%`h5E2cLre`22GR#=N z*k80*J{zM9$CA9X7k+;G79C5(kA5?Zh}$+S_7{#qNHjp2o^+zfQ2WGi{|gsB*Re!Y z91R}47_kMa zM4q|fXu!{^6)5dIy~EG2UD&}-2>nFQ+&$CU_P_J7^Yji95)F`6Di=kDs{IoE!~g21 zV~MCZ8VqYnPv*5)t?vnoAKe*!u&XC-P@+HnPd6da0BO26L3emJ?%VF)H2fJIOGL%d zppzA}Zd6{YV~P0DFX~V%*>PyQ|FdCkLZSiEO5LJa#^53E`*RO|Ove&YaWpvbSkU^> zeow~|@uR0dDVEU7n*QQZ2#E$r(>KX!pJDTs#r|fsJUW($ilf24-a%`r+Mr{J_)*-Y zSkm}|#r_FV2#E$r)6N7%hD9k;{O4}3s$+?$xX*7NPWRPLY|^nr{OE255sx39;{P!U zA<+P78b4^Qwl1cxf8vNjI+lovqe1%_L2FX&Z90~SpHiiX*cjK>zcvaX(Ew>$6;Wh( zv~ClB%$0LGmWYa@L7{hp*4@AF)UibTlxj`H*_uuKXD_=6i3Uj1T{4O#`JT-0Z|Qwc z#}ZL-G)S=NN%Gs0bSx1+`fVp7N(zZ?Q|>=6-R@jXXxwJ zUFdf$!H<3$mtx7YM6`@TNHjp&i44z9IFnTUvne{3h>D{@T@QqE$m2bF-{XK%##A3T6TFC>{5=;DaDY^92Uv;|@6}E8nqn#om-aU6IdHI`e z;)_Rv*5*pvBU(E@tJZYuJ^s$6irai$QDIL-KYBWviS76JUyVXkqOXOXSnI4NGJEYY ziVWSJukGJ^y0-4;qQZ!SeoB2$#M0+#`?p6Sex)Zq2W@m#MVZlO3dO`#<68L_ zJR%CQwrJ3*INOOOLObj8NwXeF?lble9ZN)oeIEUkdX!>GtJ#kv4~{~dEKIYEx13la z5rbMHMTRfO_>z}=T1v+fQE}gvK97D5agm6nQHb_;1+5*ooLC~XQh!ins5@g}a6T=h088)kHjYBQd#j z6k4PRr3=k zmIzHNFNzF#>wcO%@8}2}OGL$eTlzfuDV0R?_PVj3CXbIo$h!bYQ`@DtYfjHTp8U@5 zV|6SM6-NV!3?`9sU{37KamSO7L?IT0-aSB?)`Rq}%#Im_Vs8t*p&)M}@OAN>26@+k zcIaup|M=kM{LN}TZ_@I~3uDHFfqjx?&AHGhnam0__=OkiW#T(6AMIof+BTcP@denWD z&NpxQZwI4)aKF3qHN8vprL)EnKiWwp;>WwsHy<2@kRFUQedU%S!;-$i=I@qoX!LWA zA9YTqS_Qw^tk*c=NB6vl7}hV?d`%QWA`#NGr%y4l!qSb+3(hHR#4C=2Gd@YRJTGn6 zYaH>TRzk$;g&UifjzUO8McP@hJZw#E{?muo^cqK09M7w#(EEdZck5Z7_|elM6x*w{ zoZ9^JD1?j*NIN6Wld)}@e^+)q16f6HCO8zAZw;Eh6rULP#_~nsz@ZGF*ARkms6e zr(=nzI2w%FPQSL=+leLOM{lJNF<@jNPihoGq5;xM-AQ+4wjR6@dvSC<9ZN*T(csJ) zddIzk6HCO8?!-|nx&Oe8*xSaq35fOGc65J$pm!Gi9#oSRyKp1}XHu;@E||bSx1+XJ%P*|AyGy zQ3#0!NYgte6d9_Q7#VwE{uUieM8(md!~pur=3!^QMEsm5W!se*8QU%jA<+P7dP1IV~Mg;YXj;u|!lH4RS4~e%{^Ldlf&rn?b}2e@ydyeZ);jG(ei( z?W4#rc+ObQg<_VDC8FYJFkvdy!IbrS?^XPix>3Efx7f_Fo+bCV35fT*xhaLqjsSILj z5Q5b}(%An2Eva-TpE>E!4W%V)MQU)PR-)(SvU={7{UP@OF%?9!AOx#{r16~-T5@jL zMOUwJdW8^Mks4gcm*{z?@Gg~?us_4FK+Ioy(RCvT!D=9BJ)d~y_*hr#Va=45uobC6 zzefq4NAK)WTEhPHcbp$jjCBq8!bz|iNLtT}ew1rln6LQ+r6p`dYS8>dg6Fj<`;?Zj zKdnBMK%5Ceu=+?^tIy=VhAYq4qttwf(LcfSKFSrzD{&HEgSfQTNsM2V;Hft~&PMBJ z)$T3J)ih6iHDAJ3@`*}+hS3R1T^+=vAVk@u1kW#VJ5oK}6L^E`s~0iHmRqLY2V2RO zA^qVy4u~osvX^%fw;v>UA`5R#)k+GXC0-oY%DnyXf{IaWC0n@khaLsupV(Gr$p=p2 zr6P%*i~BaJ$QfwuBhaJn>=EY7l95jx|>lbP`j-6Fv8itV`8v z`#>35|F+nyaJ8iB=WHbvNBTn+j=ZGy)x~DSH79YpW1=Vg{WWS-6i}a9(8T%2x0rX^ z)>eAOR#G{oKkOL=u^zjRM~91GL?#UhEku;yU(1KL+5a8B_n|JXBg2S%IDi> zej0?xGXwP?o-J3S)Ictp7MRjpL~U@IBPq(8&xkJ;L`?T?v1uW%Asko67l zEK^?;15s@XVr~C6=gk%8B2^q@D;bfcKf~BrI>OA~?7VsGqLc7p#1i$UUa=L3&a1HN zH{F>_X8F-wRXk@an(^Q~LHa{R_5tzJZy% z!bz0-F2S>E#3rRBOk*7Ylp%a*toh}s5CTT$QUJ}>=YGy(O&Dim`~T_+LlO7!&Fze;Hd(}qz6%HZqvt2ylD z3Q9}ZiuyM9dFc;3k??JM)yKb@?yOGYUVGG*$+JRf3DbtL4$9DYz*BQ^`#LIzV=L<0 z+~=h~tWU&uoC$rNntdak#1&L-*?LQ_du3X$HMmnDgZtOt-d0+|R@Aq-&r5%(hKMzg zlPhL$M+PBcC!zMrM@yBKFl`vkpbQ7DWpz*QuGdDf74>cI^U@#AaW5WWuDp`f{Z~&X z!PQ|TjkDr0llowPcK6~fEtHn96=?}8gPr*3@HE$?1KHi3zjYE^jYiTK*9K|`sWA@M zrlH@JRc^TY4dMspUjMjM!98t{u5u#@zCuZ(Y8}?9#q})f9`;*^?LO%F)Ek=US^Ji* z6vO^dO0HOh*{5q+_o_Ri~`pR25`T~T{I?n(6QnyjN5`$N?stl56AZ(eueD^7x2 zzNE2}6+NnH-OTQ9`sBCu59)WH6-JhETlXmThgJfjw>z^tV?QUsJy_C)F%nv`Y5YC2 z+qW5P{hah8?d=55yxpsnGO$0x2#1!en0U_|^No{WC6Y8|ouP?UR~$5RMqX9xUfGIt zu#Y#vljp|QO5xa_UaOY0{GjRW>?BxGC5=oUN}X@`3Ul_R?Ka&dJ^wK}!E>(jH%h75 zpJC(&F)?a|xowM+;K(3py;g13y?*9*;bUy^gW^(Xy#&vX1vjgR!~XEy88NEX{eI?j zx0B!qCuu$V@$KI^%`zoQ+TtL^*KBDLJkfva$jSb6tlbV`b8#oZky_Gv{Lw9Qeb@aR z5o(OXR+J}<+q2(u{I*wR0PIf_eL+mz=_EMgkTl{Ts*C+O$K&2tR#(j8%2=cZvc?wI z-ZG3rsF*cpzQ;YKw3A>pkTmLLKpDoZaJ%OnEv~eLtw;@K_r&~FMqNXS{b6@Ml)B4m zw|n0~C&6kUX{?8vve_(hu$DVdt%6ER*oxF(FDeI~sjhcHus`gsftHL)uH_ya;v`rN zB#nySP=-piD!H?dd_~Wf_%({upk1XzPxr%1Rff#|@Vyr5Gxp6&?nfJT$4`0ckK3h&@ac_R^Bv=h3js5{GdEV;}^KtAxr6p`dYVh6E z1kb+9tCg0pKh!S);qLv1dG1Rm!D=9BA}@J7xwX4|Q(fUt608Q2HjFSR!|jSK-6N-@Q(D4Sqz0#P(!!6c7piry z?9VWc6^$@IE#K0eX{M84HIOt$!qAdkgBrU#H+rsW4zLxe!CH4Bs>>}>nI-$f3?zt! zAg%==SPdi%y@E1~TxGhezkOTP9AGO_gA4^w)$#ITr6ueS&k985)uwx{$4RgnNE&OIJ9jI)^Y?KQtOk-sy}slc?*5w! zxOW%XqqKyrNDVe`Oz?Ojm#e&l{pq|UbaMgs$vjSi)j-mivxGAI_--2a<#WrGmarA6 z!E6065+1WcX$kv7mH}cth$jop0marA6LFaM_p7xhkDJ@}t zhA|1mUJzN|auTctl19xlC_|PUbIo}fO{FDlMQU*7!hTPtPHUBxus`fL1knUUkE~9D z)j-nNcLyyQnl{9ISm(N~h2+;LQiE3}LraYHN=w+E{_^uEO^7+AZe`(^*@o z-?bA|rJ%*}F|No6Cvmdte$Uc2t86sZ;^0}0X!?$s@Wm!|A8aL`sQu1KsaH37$80&s zNqpno?`b`7MXIMu@4WfJugnqWb1H3TE7>xnKU7=={Lm>JXXDeeU59)j!xu z_EbBO0mN_+H=a9*Jo6Jg6I$sCW`SON9a^$udKq_yelt`*XDg{V(jP{5$YdUYIMB^W z#Ggv=)Oe&Tu?5uU8M37*okQK99b2XJimjw_N`J^jp^4W!g}S58If>V^Bzk;Fx}sb_ zMNeFRU}osp)cxzF?MipqN=5+b594!WmQz5iIPWByR!{VJ&g;r}foQM|5vPBZkK7kt z`$5GIwvv%d`oro3;VfyNrFpMJ9G}j~8J+IeYy+rR{7*eVhBd^oL9aM8QB>GRlceU3RstkZ>>_vt$+^+Sydt}l(N=w*^`Zo7@=?}XBlaR^Oe%<~2 zij$aw?`oenTc9!-rctR7%5b~FTke-@cT!ryR@Aq-&r5&EMUj!^sQ8wf7Asr9a#UX6{@d9+^&}bfZMirbY9VmN1Rg2{fXQ>hCW3Ypl`| zwxYhxeO~&*ibkl<2OxF_A-G<+qzxk$%24m~&)mzbiAqb@inN54!A^XQiYLE(_L;kP zyp!Pi&0R27d5gw2);r| z-jk@RG_w`yN0!kEo@N*3DrI1QP&i~Vmxfk% zZ@uIsScxQ!mE`!k)UZN+_sZASsd}$$MLJkCG{JMN@;s$*>J23V$Gb9XC%YHTyG+aUd@Czi*yA=Oj2XNE&ev5vTXG zP3Ewb@2DD$Y(;VD*sT4YQ`hFHh{OJ{1`p}GU z4}#Q3(ufAolJ^crDj)nWWW{O_l4EudqS=2Cq&||?6&GJF+En@Ae<3SYgV&DD3PNQ2 z4}#Q3(pdEZE$QK^seJIikQJ*zp7FC%5xxHpg49RShLHyORm-&nln?$FvSKwDUVBz5 z;w2F8{|7<=qUp(W3E4{|^0;v^`uAoYa%Had-u!zoCIYSq&|{HtVNcQ9a+Y(sH-m460)K`Px-^`yfab}xiB+PrC4M4 zm6lF|G7C~4Nn<|_Ml55#sP4uLzKgYltf2)sF60)K`Px-^6Ceu<8IiMv=kjYff;v^`uAoY<_AAbL5QYvCHGMQb-WXe8v z5|mkx`bb*u$c@R4uO?+mg|U{96{!Jb8MhBkOhr&8vjUmSwmeRPG8s}INoyZ@F#9oL z)Uq)87n*x*RbZ^`ckKlESa@`z>+o){{?OVn z!;<^W*WHbNb`ms4Ql^ao|Y=+0Z|Eq9#~PJ-r0 zRxOy8N<}Sb`{jbI-RVycGU<2ON=5+b50yMI!!il;C7&L35;R9rV#4%P(cm0L!hJFO zG1E2Lq~B#L8OfwS!>Es_RvyH4(@D@ANqoqRR8h@BtnG=}kJ7)!syN72G9pWV7;|EV zr5T9rK?s^*`THw<>R%u_@4)QGJD4w7VNF!=oUJH-;53^r|?zA*W$L)68b*$$0yNB4Yd| zr9Z>?8N^T!zn*gv^o1|OxN%BLSTQiVgEE|(dD;B@$va9**h=w ze&{6VOJ&BNW0jV$V(5xMbvkBqcl>LJ(h|0keO~&*UNXeUw!5z=-W++3=@@> zuwr075y~)XS{e6)J~Nb-u$Aod(jV4rLw$zLEaSe_-AT~5n^J#FQd+`_0RqbKd6!W4 zOUG9!EnzF!=cPZxs0j5r*)h~T@vM_j-)_cEQCh-^VHgFWCEFvLx))#CuC#=$WS^J* zFe8jFKX>pQ=h1m5LEmnEKQvWo2`dIxq(B*t;X6)^vOg#-VJqs}+~=h~oRxwvKkHxr z$UWzECqXL`7W<|tEnylv4xtPM@Kq*eOtR7vwxYhxeO~&*?q#S?V-QA?>P6phn1GF70;fMGT4dw`0}#=-*GBzaT0uDrKB;=#Ceb<#E+-Uq#BS_d+*+7$H$*`Hwy z1u+}M#UKQ?7)cvOJ+$2rtS>qJ)@@t6qV`JbK%UN?q*@~TGmOHBgMF~Rq_oFLaLbo8 z)CW8D(mbf_F3{zyt$$FzqjeyyW=>E&iv1bJeT;FE?o@VX?Cm7D2TL0Jqo5^Ozb)W? zukapQKPUa5bsz<5#wulCf2dOgEorxI8!oATfjl1*tnl-aH365}* z);sn7eksJv6LMYU)NDoZmDYi{-y5nTC;QX&UUQ@iF$>mq5*(=|t!Gl#W3@=lx`k}< zobm)(Es|%+Cn^JAe|ojZ>mc3=LU6_*Y1>J$Zc-UOJ(v1Ctxx51c=>!@Ox>KoE+MRY zty4yy!z&3^14*MLLU;Fk<#y*jR$OTbTag;j`qW*;rzq`Wf7ttqwQ7s8?)9&OPJ-1y z(uPqR@uNM~y*92@&@EL)#SCP9*?p6gmaspZ+c$Z$*#zre8-_RuRs%^JMo}n38?1Y+ zIr0^^R2fnOTA#Z1^aLH%{QeBX1NHf*W+ivKQBH!@K+=e6PzF!2BJSVLrgck|AvK`& zsRIYaDlK7u*e#0;pkJvX?#HK`1gn9hG3LbV#~Wv|xVu07O=$^Rks8qY)a12em6otS zoT3EvDTZ~gJD)iTRs%^>Rp2J>$yoO~KX#we61E~Wp!KQEqDCn#VSmT~K-9##*OoyD zRs%`vRjjM9inVgO#Y#)qiqwGCr;bk(qqKzm>CCbLh=xH3Rs%`vHS~wDiZyCvH>D+P zMQT9nQ(bcgD=lGvx?W$=wy|dWAOx#{r1dJ+KE=zL6+*MAoSLmj4QPF8^6CCcOW2>z z^!F7lYc>l)uo_5OE5q-7B3+N0hbb*#D^dem#ai-C52YpSPZKXd{1t>?^^vsg3~8k$ zw7Z7R?j|*$-8Jzq^!ewso99Y%I{#ek$8iv>29icK5-7tz*pCzcTZqyUwxT{y`(`p_ z)u*SkKf}m_9XvI$A7}1OC&6kUY2+o)l7-lhv+mt$N=w*^`aJEf`F8L`r6ugoFkWCJ z{3`b2d=P}7HT0xDlEw@RlwltBm7%~R~|G+cD$;zgsn&oXm?Gm(=kd* z*q>pHftGApcF-K%$w{ypNE($8kY(J#ew?wJw<|4SD^dg6UGqia5TzyT4=V>ioFBHr zJQ;*wHITGnJVBP>yW7uPSa*!l61E~WpxrfD+73`!!v1va=$9Y%GsgrWSPdkt=Uzu( zcg^|YC6$)26{!L3o5?=Chtd-EXBh1;pLid{&p`-Q14-)&0^wQeyAF6Gl$Nj+sR8Y- zX+E!m(h~Nk=Q6&|RNu8A2*K(jX}#;WC3gKbzcSE8|3dqLOCM-u`&~OhCxCqoqGu3- zcKX&|)6qujok)kV>$lFu8YbN#TgfMCzjN9rd>%w-5Q6pwr)}OV)zhU_tX;lrU@luZ zQ@szik}X5}({(16O~5|kAO!6V&NTDWRIQ{GTH^QECw%o_vT9dsC0n@khtqCA>>eCz z{uYFwy}{YTqf)i@yO>F>cYd9DX#aE7KiEq4ROt_`9evPqa-BIb!Aa2G;DNJ7rs}n{ zR;|Q_Br|=zyl(nkwvvh?{TW6>Xvu?3N#?+CCqa9IOTDTynSlBfhQdAR`m6bSwhBtG z*h(s=^oMLr_M4+8NNU@l0VjtQd&ZFQNH-5xl#k} z^HO7U?z11nKS2npq;eswt&R4tVnsEQ(Ru1CEnzF_+uY}+#vpz`OSaXwTpfZCR1qe0 zW;dlJOzZkrUQ{DFU2d7u61Jkg&3#__!yaC!&o9-An7$wcRkrzNcz>lOOzWt2XKX9; z>4OVOOW2C~Hurhy53_^Nk|X0=nPCr|1l25=mY^di(^z>1Wr#-olI(@DxaoJUS+cMyUq4S9=?P+G!@q1UR7yRq2(^J+<@C2U1~oBO=8=**I7!)Od;h(i66h*hnWmarA| zZSM2ZAL=Kf;>jk|FR8QANl?v_w0(4j%rxfPk%jwEzvSV$NTnrgMSYw5y!3~aHK=&< z{k!MQ!55tb)hu~DagrKYFpX7uP==eQFPS+7UeT}+m`)~EJ-3L7%s(-fc<^*-;0pbo$!KjD2YKw0>34YR&M!t(GX@yW% z?amurZ102KGu1!)=vk~9#(h8;2B5Cmk#?1A{haiJ>YqI?5TnL8><=?6AXcP}H1`G}ScxPJ z0t&bBmdpIAR4$udkq%P*v+xfGDTQNy_;v@P3F@kS9fV*-l{EAUN}X0$NmDr-Talhq z{j)=h`lzgr{pr)p7lY_>=!S#f$RKIV0U+YMv;3mV8uzs=eo$PZ`e)5tomIqPe}-`g z#CFtGn;V4S2q$U1Pk0aNs%`(GnJo@de5LwlXFqPOA}9OP)y2}D9P7$5%t>&hmb4y! zxKJf6x%mV&#$hYU6R1ksk@ihh2EhJw&Tu)Ws>J3XIOC8sPHRTR#ajcbn#qH{P|85n zTSFtYmQY>Rsb?oD^`Y9)wZchDM7>uB!D>KS!Zc1;MfKK|sP{TF@^hsnY(;87by>Hr z&{`58euVmzMZMRBK?qg@Nh9lnmQ+T)*HR68D=lFwQUj{XdUK7|684AhQ6T<6z1M<4 z2v#3Sqg_E6`k;DiuCDF$e2HH(NDZhi>(skrm6otS%)^05UnV%gY9MJuH7LUc)O$T+ z=vd2Eqy|)%^+4<>r6ueSdw4;7fqJh$2O(GuB#jCi7_l5hz1Nq9Ra08RR-^`0mvwu# zXr(3W536yZB`>4i>!UB61gn9hp`uWRtEl(drA0oaC2U1%Ky_IgKl)5*3H#H;<$obq z4J55ALHFD9wW~nEdrBGDiqwGWvhIA*OKA!F!=7rWPczhetsaD6HITHf-Wru>h^yDk zZd-p~Rs+%!rZKk! zWq1{J=(}bZsApO;ldOR-^`0RleK+ttIRabA2FwK^^+0K?qg@Nh9}x zmdrsN`sKxIDlK6vQUj_g-~Q-ur6uf7SFWFqI`pVq?;uzWB#kO*(30w?Ltk(j#yUcy zNDZi7{Pc}lOV}T@9mLDC)`g`BLa-W0n$`hCy2HX_!}e@^sI-KwNDZi}{D}2hOV}Uu z3dHrdW5XT?Ay^G0ja^$%hOBiPgq5$hMQI6Jks44{`L_Q=DlK7usFV(3Vyy;Y534!} zRs%_EW$3)%erWHEZIqU<6{!K$i$8Me1EnSGPtVr&`TBn7xgZ3qfu!}^>vGhgFWqgr z(h{~JHK3~U&py*y!u~YT4Rz=<1tC~{B&{=xnKYgOk-rITNo(3W4Oq}?Yy;HRkIzjS%oOaVb>Vaxk zY$aQ`^ru^UZ4i+`2s#s|_o&ZR@uM#=;v%D6-WBhC+eKR`8ZY(g3iQwv~yG{^_d2RJB#yi_CIf| z)Q7F4a!P*~8-OT<^KrfmLeQBwwF~GkSOFEC3#I-I=i_9a*+J^Ko#Zj)R~xaprzML5;Qp zQSB)5_PjVBXU(C(Dh{%hjL6a-c2r@HNl~1S(<=x;C+ZBiKT*vZ1fugM)Mz}4^Kqu# zk5ciRt!Tc4^91S7FhX&nPTJ^`ai@b2bfQkaHhT7hX`RV5#JPP}N={Z9KEt_vqrYjPw1lmwZ*!j~En$CpJa`%B z_U#Em(8-I(cXm-)!n8g^`YF!sYxQ)4(h|0!zRi7J`a_)}sLzwp8{(claT0W*+$7nr6p`deVhBd^oK9JAYQ(DD=sS5NzloZR-eI2OPJP~ekq*W zH!*)6r3`E(`@HmrQ$wLX_cy=lD;tEMv-(_9^w(Eb4Al35mNdkf7Asr9V^(!AXDFaBkncAOxM&*RH7^Sul+rMJwWQZr`3C1}QCJE7B5H2I&v0SaH(d zjXZ;VZT30|I_Yotw^~b>#{NOfy^e2U`NqcgRwEWV9r*X7`by~B-+5;=L1&XUcyltw zIO05E2fVz*u5&bndV3;0Tpvus_ra12F{W z3Fph|Bv^?gjVjGhxD#RBe6AtcZF)sINay~(=<&%)EI}YNYClq-&>srDy3$BhLMTJIIq|CeRbDKaAc6QJ{>schZ%fT>#nlJ z4~k24?r)9#JygVDe}?fJVpL4448C)wli&y^X zI3$fzL$Ob|QHvM8%VpXrWjNF<$un(={yJTxU6SY1>G~`3kccGD#otIvrbB(2cX;9Z zprn&vH6Sfv8W9IyWmZ-D+gE>eYo#S@MQZT4JI)QCsJBSVrrn{VjMlKmORG7v9=xEO?BHITGEg|Fek%f4}&>M1Q@ zD^i1o(~~?kSLzIz{h ztkM$phxY;E*TM&Vzb$tXtOk-cjCoLo>0#S^9Uc}|TEbSO2G36MCKp_tAV6Z zT@1<)f9f+|*tHW%OW2CkU}J@3PiVG5N=w+EVKfBM6~w$C1gn9hv4aQ7@cp~heMcHB zP+G!Pqy}T#BzuOuuCrJ6XBgW-oB;7%5Q5b}(%4gtyuD2Mb8$Uyhbb*#D^i2r6O%oy z@8~R?{pl}1f0a8Iw<`$2Y9ML7hJN_4TyfWTL@6y{D^i1xtYlAy=#P|^us=;K1yMT) z!RjMvoD~mc=u@+Z)x35?r6udSC3z0}*S+@cm*ip5ggHL4Y{ z&ew4gtOledOrz#mi3l@y+JaV>vTrFZVJlLD9>b6=P1V{JAfli?H8K~p(v)-(tOk+MC^_@)EWpHTYo~&b-f~R|v5`d}D!@Y~7yQ`YETAU^S4mVdO(jeY|@X z>ulMoN=w*^)FA7|B+rg)dZiQlGmOp9lF>c0SWnA1304D1W5q9&p~Z}Ud_$I%P+G!P zqy}q`Cwa1s)T=DmAF54*m;s_`5Q5b}(%6ZFuQGirUh7*QFrNk8%>P z6g%J<(f>0Wt)JD=JB59hCgxM~C2S?1sQu3Agw=x}(gq>6XmqO99*rI~G3P~J?cpa?|Jd)hl08-W!zv_<4Vvb@=<74s zN$f9$4Efh_YBUk(wY{JvZ$+lD!V{jVe$G}>ail-&e1Vp{-XV?EXQ=+S7Tys>&h^#K5QkGQ~HDYfVc``?H5j>YeJG|-?tN0Mix-f-?69R;ddph3Ka?~ z-DN8o0i-`vvqCi3xTA!Xx4e_MgwfrZfs@rJH4qKjBS!6+TgmFP_B9nh*h)q+=@0WI z_&zvbb|tIZdMD9ma*`+WF1^b%5Y;Lp)~A&iL=aU{olp1iKCoN%((G_CbXXq2Rs+Nir)(|j|M z-&b0~R@Aq-&r5&EcayNwBKtJoH}Ov5@!n)lUqoj~8^(K3hGAEK^mUG!s$vvdslM&+ z^LB#Pz4if-G~7wNG$Pq^zx-ak!L|*u5jk6Z+2-r6o+`{BtP7mxbzCFK2vN zX$f0V-{w9q{b9|-xXot0{PnCo*__0NMM<6mS#-?-rVZmXl;KIoM%Kbyxs{f%74>cI z^U|MTyk0fJJk_I-btj{fcym&cr^Ci+>N^h8s9;95Sm(ZLP0p29X$f1AmasBNf5_ob z@nqag5c!?Nx8ssL^RG=)TEetpG*6o5GNU_MSC`yTRnnSaey@wa=0MT8NuDWxO;^nF#}_qf7YXF+SZzX?RQl>fvxEIoLh@84MTK| zg8oCH5X-g(7yEv&BLKdYJpY(?++CCv3rTdUt7`$OK2cRucP z3v0r=PJ&yEq>)o&r(W*iZ(ElO9al96*oxZg)7wd&{S$Td3-*UC)o8olMZayG$mt}w z?_yONpOUd zG}eV9a;{uj*XKEMK-C;zD~hkn#vSl%t*oo{us`&35F?h=^*uZ3Bsfw_T7P}r(P~88 zn%K;0jKfwcPdInL^Z0_UI>i2T&S1745!Yj)li-X)(x}Y6cABf$?S9sTq;Hg#{4*=b z^L?VOi}K3SB+to~GnJMcnwR96I$$QWWH@GP=iTpT%~|IpSPe)^n8xU?WQ6%nzFt;x ziFHa#*oxF($7V!>7j}QB(FpYkDcH-Zk=;qK8b}(s&$P{E?ZF+bm$I!;TEbSO2HlP( zd140YYF6wIJqqfR{8>k9b1^5uY9MK7$+ZXOf$$dAPYLssmarA6!RJqtJkgtURWA02 zZ$(g_59+nB&c!~Z3>SF8tw>8s_D%M5`$|_yV}CeB3F=b_g!_h*U^S4mKAXHm z*H^4TRo+)x!d9dP-M1!t(sb0--q;^jAwhjcf!H19Bv=h3jk-8c2Ftka+g72R(h{~J zH5mBP0ng+Yx@sN!LuCpOb6>jd+f&s^uo_5OpE{i>YK`wi#6wl1k*!D#zHM>96E=3D z%3j%@VVsBhSi{!%=6~oUSPdkt&wLs7Qd8d#;j@&MuobDnXKN35cK$P7W#Q}()nT9| zIgO^iMWIfD)j-mE_G8hi*tp+%B&ZsVY(;92_N9ZKEWKjYScLuQ*^j3n#`SU%r~K+8 zY2@wL!Bb-I5bKvuTPiJSfGlk3pjj$Iy1F9C(|wPw_c~xPz7-#$dare`>i**&hgf$T zI0@Dd(h{ao8y7o~Hf{gZ+WfSc(h{~JH7J72@{L(`e^@gC^@-f}sr6Hl_Z$SPfu!+` z9$$FxfAg_bea<^dOW2Ck;JedFo?`FLQs0ExAM&fIn@!)wkF9!xodm0ar1fY!{@O=Y z*!4O}OW2Ck;N`T*o^Ni>R2ee+!|A6`pHU#%r3rNqtOkNY6DnPm;E5lbp4EnzEC z12ZJqb9~@TmFcrT)c1k<#DT~>$4RgnNE(q7$}s=!s@5C3@+vK1D^i0uh9rBkT$!Op zEbPxPW_~R zYzktUlVCNFG-kY@3}1Y9*O$NF0afpntw;^-zH-2GaME-&f@FXA8V;g0h~s^n1gn9h z^>>^doj3Xl7oMfGgsn&o)^=(h~NE-I>sm?jSZ7a1yKrlGf|5-tPK=uU5~R zN=w*^)F8d@fM;%|X-Z4jALikpCFQz(;9J+%Nw6A7S}Q|D!zppaR(_(igsn&oYUMxZ zNpMY7TEhPHcbo?ero`P^>LgfwB&~gXQet}Ckzrqj(!UtR4|=E$y}S}9(F8>Ep-$qD zy$2k$UU@cdS%h!wAbnMAC7-DDr>nzMS{~sWH_AzD>ZN^1TF;*U^wVZvh0+PC{w`a| zmSHEB;+Rt$aUJN;&6)vnk|ws1S~0K~{T4}DWBJBere zlGU@4G_oc1!P1QiSXH7cs{X-NvZvaKQRstd8WymYwsaC#hG`#?*5~6~O0HqedbN@2 z=WHbv$4@r=9o#W3{lwO)Mj0 zR|hdKz4jq#ta`zGNh43Bbtml?s?IiB$p~O4B0#hT@m*FYaq4W6dLNQDjJ=3aueR=I z#XlOO>V>nFjAVA=Bx;h^2QjkPSO;;-t9?ismDmt#S56&btvNfvMgPK9G9ufFkZKX; z4iN6OPGS`1kW)^Q@Mi;12ILHrcMi86PMqwb-(@SBFX22v`ZJ8xo2I#Xg2?iflQ1x1 zAs>>)I4Z7W$g#^+%{7IFS(#6Cj?a8A(bKp5GG#^k`6`vsf7717@)?#PFL_@5?2g($ zRdapueYB1E@NnmN>}>K>t8S+a<4EzyI!l^Ybng!_tu;$J#rGS7T53xdDIa{YIbBuY z{PRsM+j+OWRMTBGQ%xH&u5{=4vZ&Bh|H5J$jhuQ}JMZr`D!Ny;Fs;;9@>F*AhgEt# zPS*bZ??Ud6o;R`)ZQFN_&#?lhnRi;Ed@zkuz+Z{=PA;FrU9V0{E43A$6;JmOAm{{v zYa24Vs~m4-Beu@KvqBAs+84AB{+sNv{^Qfj=8t*1S*fjPr+3oerRu5z#O#3=y_v_{ zG%IE6Y$I;(=^P)vJJHjro+g;a4E@Ohbxu`YY(5|IiIv)l_KCNhnVP84HNu;&*j}^$ zklr?8+4aux?|?WwR})MdMvsDRyfNd(O+@#6o&j0V3pNC-1WCw}?wcOp!Or3|=h(f<~ zj<1Cl-ZWe4*8X+WH19Y2(wprMMOo4+bzfnBsHOMWY;UHL_1(9|*w5Qe-SPviy$*<$ z`RcnjPPY?u?R<{6q;cog&mldn=I+t^a#_->6mglmz~J{OM%e(IV0RRwrL-H zqMsz>FX`6a`chA~r_K@Og9)`i8Kudxto7FS`loO_F!auKb-Bg8)tjjiOoy) zhRn$Gx%)+tNs8ce!XzR68HTI($KFL_quk5V>l473AS*sUOw!ncRp?`H$@J0gE9tky zNvp%JN5&hGiAs0vM4?Q5>$DsZeIvR#GT56yuHz*jP3S% z$dZu$aK0Ld3i%@3ht}H(vf?_+k~WOXe?1BLV_kE1`=4{ERbgzEv1EG{sp)&Iov2lL zjkiqR`tAZVb!Am1$Ol(hl{8LEd$!u!@<5n7$JI*82U{(_*Dn6pWSm4(VrsaZI8Znw z#IK?@f_!j|S4l&!_CMV5dAiE(Ro{duf~{ukZ>MsG;^U`;+ldYNqP$-rFG&tDZ3Ow? znvjylj*<65!Xd*&Lk} z!B)Myw2Nv#O5 za69o=L;;nT)EKONFhM>jPoP>jl1440W#86z{nE~S{`(N+gRP=pZ>Mqw+Dm39!fvhe zzNGUK8$mv}c7~);y>u^XKl@LCCv7_USYOYVd*E{do$}EkRsPgtn;dY|-gBWj(bJ<-b&e#d^!Ta_l zZ5ZyaV!S6Js>hY_`(P{jT_byvC#`EzxSbf>uUef^SF^kF`+e|^JV{7@Se>wQnfHF? zQ*njn4Oe&01X=MO97*feKIe3LU*bXiblHlYDF5vwR&F2U`?Bj`<%6xr2k-fjG_eLG*mP2Eb^DiSTRZ+YwuM@zI5f6S;-C;Ly9uXXD_$_EqVgLe!`8uJW0qrI!r z&G*HW)~%hbsD*p6$B25Aop`xkj5l+l<(uDD`(T26@a`i?qejYyf9}X%ey=ZLknXi? zwE)Txhn-;$pbU26a`##xJ<=N1rA>Oj0TbkdcPmI5>-2Mc?frhyO`nxss}EZ#jlvE$ z(knZ0zs}d*u1{Y0tZmu{6Xb(;K1kXy{+{q{?M(ACTjwun-DRt-Q0n6!VO3a~DOwZ# z{%}=G^LYC&C}PFz(rcZWARoL^TGED*qe+yv|D{6K2f1}LU@M9MXR)@LB95JSeZ(;D z>a3NmY-@CkV&Vqkpld*qXHLnfDt<7Ho%heH)Y*lr^7yZc*IY?LULp1yR9xb1U7@zs z^k`Mpu9zSzUMC@G-9PG{3A3`E*3p@*C?fOUPU3dKW>(Fid6f^gA|JdiL(+z^puwt; z)890=s$A4r23t{PF%@exDEF}wW!rt`t^c&6wPM;`l`Zi~4oOIVhH<#pdimecK;B44L?MckAyjbwqK`OYCV6heeevFB&0vg ze7t_5cJ|0{UPLKT-D#tCo6)kYUrG~;gXP7h_9AKKlaYSo#%eh(ntTo1mEr6 z+jbiJIg@*O8@xTp`szzPN~NbuRx~oDc1362OMg(Gi{0zQ;SH``qnFMSy9U$Sbu?yHjLbHS3^2v>0yJ9khzoiygRN-(f^>yu3Z*~n z9ys=DXfY_muxWRd57LsPXg%Y>g!HG|)h(@87X1qo^fwdIpCV#nGuE`)r>Ut3wxYR3 zQfHchv=ccBc|-iVs|eEFRm&EKOG5g?9+RW(ym8R>`nww12(qHcFzbw+##iLS?Yv{I z7qW`I+*lE8H34&$zagq^$DF0~hchjTX7CPxj}d+!Opp(XaO0wugi9K$^d>E;J!XAo zE7yru$_HDi*+@i7nzOVMy`!hA=(&7j_jU@Mx9q-=@i zEbYXAyAj?j$d(qi?PDXz2W3t}F)u1kgFc1@dCLVaoAeojx+sC!7gLA&}a`=+7QWB1ryY1b7|bI5EZwcSo!xYEE{a<16U zTN{d6G8Rc69T0cvm#X>b6!3BV-m?mHt+D&{`LEgu5!ED(d^c@VD{J-ZyQ(!UV9CfL zugXs3+3c~NPWX7|vn*xQ_YYPzX=PWq%yHq?iK|DvxjrmwBcvKg8Y?*#*R>kVZsPrL zNjXbe$-ZqTeqH9ax`Z#^G00cmlD$(}Ng8Wdyrz}stx?~7`a=a9A^V-Av8%C&X;GVB z*}tOtHok! zmA(Q{PAzGiis)%;U7OS@bl|6HENLa@-t0uLlO3&WZ*L1(TkKDtoaK;K_8FG^r8-%= zuTBd2{^=bXA?Gh7jd9e3PS)aoTp^7H-u6i=8k6(vhn;BOIMUjBplh8q2Os(5%$BsW z&#KjU6lsOTm#Fh?+Xps6&Ok}pFcuH!X!VP}6Ow1Tql20066!*8cD*tt&&XBNwY=oRclr(Dm&gfvRKE0^Uvu;m((n{W~ofwh5v-Rbk z^*f3VyXlj&9LfrcLv7bSC(~|dCu_#w2=BL>Zrcbse<5jnMK0aR@;#d6J@wZepPYe^ zR+2_ua=N4S>z_Vv{k(tL2syVPX~Wq6X-CWG_>Z^cm-l?qO3oD6iClQ+pXaHxvs^p> zJNJ+ErIn=d#l2ai6_q@2=XJ~9uKa`?#Y@^Ss?6$O6&|{JXY&qEe9}tJ0oaL4@$Id_ z8L#eK*7zTv992szNn#p8?(pb_;j%Dpc zjh`Z{*(Kt3z4@`$5+40ZD@kK7S)Nwb&APdF|9)8O6%%sQC~4Fkgo;*bbYSP7P*G_m zW1pS)IiZEs`1p$2d5`9>5poPDY3$9|*TQmx$azZZE{|np+_e*Dbu@^fXh5pZ-4badu*64FZ2Sf#hcVdnNE+k8DQ{a(@}&uVb+*oy*oyKU{_boix^Hf1Jv+F(@?OMaJ?R+2{Ep0TO* z=dm-P9U2s{6XFZ6q>*JHznV5NPv~*vSCsqkcVHQj?ZmrN-?QqKd?_T|C$HKF)k^%| zYbA|!uV`00s?Fb#741q|$!x$*{DiBbEaUEmqHgwn|3!3NZhdj}*3?!19~w;mA9aNP zi$LomLej{6(4)u)@)9?DCoAqniQP{8F9duLA!+R3`KFihvGBM3rurAZ)s(tzRK{BC z=u0}wzTkc1^*WUG!c@WG`)!!<%9lG|B}k8&+?}K3jtaZ^mpJsmJiS5V;}S{ zDR-N_dy0?$4}zWo2ub4`i~oK6*m#^TZ&Bc@A+Dn(l*+DRnm&zKea3NK`m4fG2E^)#JJS8uXR_ky=VFU z?LH*&dzUapZ*5l1M%xK#^+v5wMdY1P{XYnPy43o(->GZ&KWVyJyAMh5+oaZRqy32P zAKV(KM@cJ5+kHra+cEV!N!y8FR-_;Qe+2g;YP(E0)kj)M?fSn7(hqK9TXv|Uw7G$4Yl=qdcGj~MPB%VJ*W+|VC0xEG9%d|KD;qsW3)M& zLDDGsMCIG`-$oFETOw(qr0s;X;x|a|*+Dq&|D?N;wiD8dV-zXpzZ2Y}o=r@XVnvF>?}Os5%}0zR*ax+I_TkX07-_{< zNPXg834`xE;p}6Zm89)gB?*2vf4}(4M%xK#B}aOWtBT>aD+z8HbcK>uK2iv2CDp(| z08{-VhNCdO4{0Se#_mHBoX^o)leC?XR-7|Ddy&~m@KqU{>C+gH^@B3xlu-u8ZFV1g zy`=#Zh5svIq_j~UVIy+V2%Fz5#VeZ+gMW*%mqSrss5n@7>WlDhS3XyN zfBWD?s@5(EzFW$JByIO0tzI%>)bDot`dPSxh+*}S1iv+k8Io2$QV40qeS*du4g#2t z&XV95PI-`|m5&rcS}`rhJ1JuvzN#1|C>Ke2H_#8JNmqjVAVR)1N!tl&#j`CbGevm+ zG|%*Z6Vys1Z70s9k5q4M;vZMTS-WUF$O=cJ$$uxVJ;B;qTuHI7FW6{1!3sxtV&6>q ztL3`wN#Q-J=)ZG~_&!xjl!Ux0N!xu$s}Gjz-yMARc=-PxA@4)db|2rpH&ESeuanQi zWnXdhC}6rJN}}7ZeH5Lm&ObKV?n7E}groTY>CaBQwx_51-R(6Vhf6~K(!UdHo^@4p zt)K7NXgeXTWXq8L{+&p(qm%M6s>{uAN!tl&C0pgc6Qv61))zf^N4RV;j&=n{`h7@( zRh#DIByGPcX(jvP{~y88hvpU~ZTBIqQq%xC|L;VL-R;#AoqB$w?JK*yKbwyjNvz4< zQPEF+U2UUngdwdsUeWpj`9y3)j3hX!(N`-;V~udSXzR*&tg%f0_pZ>#Bjb%+$)4d+ z`Rk=MM#UHY2Pd*E)PLg}k>|yW0#Ki6Ad-u2a4jC|-7N|F`xET+_GZXuqp@ENMBDru zTmvR(LRw9^i*v9%sfi^Z3V*!Z)ogISIQhHu_X805R_9SZn8rRx5PJqJca`xI(rW8P zoQUuuH8Baqn@6U*_AhR#d@w;iN}f#eyw&qn<%4O=g@gF*^mNzz%QPXa3hzZFw)3fp z;UJ!kj&jY7ic&t9ARlK?)9KcSx%IR1(}uAe#JC<&uIZm>LRwA2e(=(lQWFb7ESlcb zHSgeb<%0?GQDj1rr_Qd>jF==(WG?L^K*WM56qC<2X~1&j zg9-9c9_N32d?Kgv!L(tF2eCCepR2QrxQ0TA54%B+WGSOyV?iSx?R0` z_etm~KOwE?Z|po$cWx(QZa>+Tnjjw=4=1MF2h&)AjjP&!=gF@Aejn0mBKAA;eFTW9 zAWBa5?r!0~b0)~g>7|J&?}KUmK5|X;?#@#}KPzc9U`=Am`v?&9&i{zc7Z>4wgG`W* zE1zOFxxZa8Z5Tw{0I|?dNGl^IF{NDv2x^H7=QoXOc3ihaCdfy*rim&2gK1PY0wOW;E9eneu8}bcq2hY8HzqkV+|yT z6_Yo|y-3uAw8E)OL5Q(_qQtEyq4Ib6K1Pl#r1i>A>-!jrtIB>v6Lhz1MOU({b83R_ zqZ{u0$wF_K{9XE+p4;0`3M(H>>-Q0Xr#o_iCZrWTpHFwECI-QWIcRy@Kcn-xvNU|K(` z_GhQZWm%{RX+`a|PwCV|G<f3rD9bA54%B(v^kdN+=&p>o^#?plMw36Gq#uiKX&(W?9|z+Q z2bB*d$Oq};%!(zI52kh7Z8;)e+{*(sA+1OUqeknivJ@9~5PdY|=iM*3att-%oa}oU93H zrQ=dCqRF36LQ@muL&aVHeK3vs?YOGEPo9KE_^(P@QGDh52oR*AC8v19>iO@S3GzYt z1HTWZ_4~*@$s3lgq<&V?it+@09|3~2WFvB)O8z&<1o@ymh}#v@Iu33H(b3;Zq!r~m z+^zxy#lgnte;fTRkqPoa`5gBTrg0)0i0@`Mb^Vg8+pe^typ8)ufS@cq>nBmJ-5={7 z#RU1Fyp;Pn)2I#uVlaB_h%uUwR+R5@KMxS3iG5E_clBGTm4ONJLHRZ771KJu3OzR6 zm1n*tq!ne}tXBboT1m(L%U!dFYlUNie9*{(b(d*9{;1n)xhwBLO-L&mL9p%y2pWGh zDzL%z<_N9SOpp&6A#r42TI*GIjEcrj^G5?=MdK)rA9kYXgw3vMzxgAMpCBJ~^6JqR zkHUyH3~GsAq5n6-rdE2 z#+8&!_Dt%Kzn&!IFJV<1h;2h+%&48Qagw0Fw-iYB#3$#q(b(+-VscE3`SUhSNGl#2 zN`I)*Og>5uFdtmMtb8y*J{F-4>2&5Xm6EEgWWkTqsQWV1j&X z-hwgK6YfAg1q#b&d8D(n^l>0>oetU59zY zJ{&z-`Cx*4P?XuXO#5KkFzBkfM|;E8`Uz=8f71w(+HQd84dTKu@9uS}2=eh~a$?GT zFpWx{Ag&Mh?r!EMq?H`$1&Gf;)bPf}4fEeQ6Xatss-*GzU>c_)g1EOMHtwRIkXCY} z7a-`)H~(}wZodBwGC@8Hf1H@ou9!w81Q4r1Bp252Tw2MIUVvB*qWqlvzRNdtOJst4 zyz5R(=^sp^b~K125Do8YLR!g@UV!KTqIiig-??JCM=?P@J}Q`)($AU3ZgLPyiiY`0 z70`sVqD+=%is+pOh@&9-;2tv0(8|CB`RM#lLW*87jkzTd@1n=v#J!}pk|RAkF%SK( z$`!3}{JTUqy_S%oyG*0{9(-ghIKY>DP7~5fj`RY=B@k7I#`x0g(n`$)`S|fnLP}&{ z8ufiZSVLlblh7JdTk!~zo>hSO3&g^h(Y`;?;w3?U*FK@ggDM*M$B9@y@+R6<^k|>w zb4^Gq9vj+;d>~eVC>!MslfTRU1}-h6-XPP4aUWOp1Fq`q=bE6qWh)*Vl8*p!1H={F z`No~GF8RCkH$693jUvhi(^%yV!iA^%iJy>GJT~O}po{~jJA$ZPV1TdCrOV0(6Xb*5 zf02zvl@F#d(+(m_(E+|nenMKwkzRlp58@bFVs}IY`MdNtwc|YW1T*T3V%fS zCd|}?w4(M(nI+vvfJg$-wQ!g(zEGI*!36oB{`gwu5{h8jFlvFQT_((zt(YdHl^p2> zh_^x1o1fp;^v?+8g9-9c73mX1DRm!Ar^LZH#6d+! zD>>2&5EKV{j_~eoFnY9&ARiQE>a^EBn8q#$5Z%#Z?~T%gw4%Rh1WE5aK#T@)KgJvO zAQeGADDLuoFr5+y!w?76RY@y3(hCrj0qox%i}`ka=S+|f${+ZBFpUbEAVz!_>l)*K zy3$IH^a2FE!Bsz9b{+S>K_B*p7MmN2BMNr-#q85#(djL1@W`xs(s44dZ1HH$YtW6VghK^a4aR5Es)A zG0Pv_qZtO;o)M|uI`0Eqa{Ynf?x?NvUQARhz! zBzZc|e?|FV8vE5i0>lasGk0EgrCEPe`Cx*4OskdTx%!&+!L(t# z52Bmzva7-dO-L&_(hCr4K_s-!=gMfFQ9hVZ&k9iu=ParFU>X@2h=>pKxuRT}pjgCK z^f!$lsa*w#M7pZh`QnD9BFIO-gv6BlU>cRuLG1Z3UtBK#RY@y3(hCqDfVj8oa$H0I zoijl`CQnaHc^^z`A9r?Njyt$cKPzb^M|uHb7<^nGRLke`zd?fNWl2ow=S*YoD~MAd4*CgcB}aMz;x8yeEnLxSnYA)7K|U`1 zPGcOcS4j2AKuiVEX3JjRub*g5WP*G&Ii8TByG-M(Mi9of zy*>-?B(;?s=>>>q=iy`ZQQyGTTB-SWiN3fuAtf>}jS5YO28T8u^_4xS32DV6NP6c1 z;t+^ks513RA02U+ARopaJsu>2X`Ho%r~9zp8Q-W#O-L&q8`_CMAZ~+*|2UsZ{x09g z_}zt6OJo{f8F5wjaaCp~P0&@b6^{+cM}W8m;?|a@AN1U&^(vx#FpYim zc)C|t9`!Y|G$F0zNH0Jf1JPvrUSAbxul!y5TfhIJ$_LZXUA%J-T1jy~A+309$nS$P zC&LH@@k!z)-<)TIl@BJ!2esqaKE;&}rc>ge4{=Zt(n^l>0z^*qsM+XI1rgcg@6zAY zA9JlOp?oln>K7os0#VdYNGmzg3lRP|=tCS-KA0dMRGB-&+LFo#(EK$vnLGE|2=YPtxTtF><%4PTa}XDX*79xGr3q=pV?%l$0pcqV$vZB`m0y2U z`Cx*4kj@u6t9>wy@dt=j-pg?<{DidPu_5^g5PyJ3ix_n~?2PikgnCwpYA;@BA55cv zfQW9BFK(zy6BLWsivFe%B>Auth=VS~LH(@!1o@!2%lE;wVcdd`JZAmbK;U}b(9O(s!K_Dg}ley`CgG{JrwKOTE zT`_GK$3Tn$VR9=GRy;POXB8m)anM8@)X&OKkPph|xPLI65(iDhK}AR_InoOd)T5T5 zHlM?6@h;RS zIeC*A_fV^kw2~ve0PzWkOI!Auw?5ID$OQSIkp=56)2I~&6+Mg5MC@QqNGmzg3lJAU z99wp1wJ-Wjt@q(7<&tJEVs8nGf8=s0K=?B$P~euD3VM|w;f#&@4Kx27%4_5a8^@2IMk zwu?sru>c}s?~0XX!E1q&qlpE(*n3x06s(8^1qD>FU$4Diz4n4#Imu`&R26L4d+%Le z>-Wsb8S)I@AFh>!`$_K91ZJJj}9Ua|8g-agLML{ST@9d@U2E5BEuZaz3)U=Js3efK6|9g zj}E(AJs1tYbA|f~y%(1}+-CJ)1ofy4&oZX^6}5UW8rBd3 z;)Tz9@tuvpDwYjtISisU5KZc5ic;-Ns|O>f$5{Bn(aR@AtR9ROgmPnpNW5>R*vLmG zunH$VgUB2cM6TT4CJy#~Z}ngV^{4{hEbej5)#|}$_;w~7)rtq(#FDjj0;_P+Gl;%G zbh{TJ_8R3t@P6s`f$?ebFIU}z(Si^O<;Zt6LTorvC$I`9J%g|Z!Xdb%=vT+Z>cI%= zp*BvFA1^CxEeE3o;VqQB8xU=61XkgsXArA^nAx(OX~utURu4u{4?4=EjMhCE4XYai zu@s1zHUg{YHqD0gnj6GQAYxm#Q*sm3Lpqb1Qw~Pwcqr_sunH$VgLnrXm4i#F?QJDz z1odb)FE!_SFj^4k*=-1fuZ_Seob(JL6o`H|Bh-B(^ee~+>T$bUYEHdkH1zFIOIiX^ zV6;wP6}{J@PbTQOGKh*mEWfu+?NUdtiHx8g3#+B(v=2tZ*SVnNyY6mNUwi5VR^g;) z5QU)}Q|n}^kzRU>Vg&WL1HZAbcFt&6TLg|Ou3o0&wF*pBfT$S z1obF%GbN|LVl=ET3PclVvB?i~0;_P+Gl+*kgh2b-bWQIQ89_ZNYAHGWE~DWK#L$c0 z4|O1Mk8}d7aMCk~89)rG??Nt4)O%`1P>);tQ*uTIM#Fp`7!BTdxsW0~bpoq!(ldya zKz!NYM#|REM;t~_k7K*_JVP|U>SZULphv}2IO!Qg1Q02nF64GdNfGatZqxI&bZt4S2cuzLADrD8 zf4Pu+Lv#YGSTaET zob(K$JP<)%@70SiBH;bfZCa0G(<@p%7!7kKpe9B`ZLj-KC$NfTLs|}lhyfzdFH?OE zBOBf?-KOo)y;NnZ2cu!#C}_2_U<|zJtrJ*3F|%oAxXJRj*?8 zV06wnsKPjCC9sP2A2dPIau`H^C`Xt35o*Ix4raVxx=s7Xyl-_6M#GbBII5P{Bh&>W zbpoq!(ldwzxE}L{l~iBXaj|+Zf_l(?zSIa0>rpWp##$gw0rAU5U=>b!22mM^@qz6W zudQxY4@OWAI?DXDME77cd{YmIcp$uO1Xj^)nhoi>;)(FUcBb3}^`PS}D+ii06>JJge&?4kM^X%T9V8q%Dfk@Gbz9eDZ&8=BB-M0;^bpQRj9}$pNsrO++ud$IQe~H)`A_OJrF^TI+U`E-a&`BT5+?8w!aAuyJn{B5Ur6^? zF+sNvv`v?rG$_u|@I{0@ex$#bui5LIPGA*IdMt~=x9ETv+0VmFn!yu7v|qZtzHYjl zGRfWQ!DyIAmgq-1_VzG4HrENP!b#5{f`Dk9;BLNKDAVe}2d3?dVV$N<6IscME3^$oRTZQGS%tA09xRXFJxL=;@}(Wm^y(%!yS4@OXr zsV12FQCjz4v>?Pl$$Ome7n^zM1XkgsXArl5kRDGnHQ4TF^7Khtre*+fiW^ zPI?A08;CICuLjvl&Is!9EDql7vt18H!>aN?+y&yYr+%)m3MV~-SP4XW;7WB|AN>k4 zf_nU~eQHjb!29XZL zkpy=VVe1(fK|KbZOUdc47!CIfQ1UTA47c?@ScQ|GLG+<#7uw%sN$=qpK|R_XNXhAU z87&B_phey4>p_BB>I7Edq-PMLfEWkuZ!y#qykENA<=>Q?k%7@LFJr48DO1mv485!q zScQ|GK`a2m56UvBLZo%XVFdN~uvX85v_&ym5MIIA?E!YY;xdEyWd<$-AI z7HPu!W#zc`vW&IWGFlK?!co0|qjJcaW+muRF%`>()Waa=1L5N5OSYc%7x8}SHa*iM zrJU7+(QvNd?Dl{bJO7+cU=>b!2C*H8UeJT)hrSo@mu}PR|JR%fRu4u)zYAqp4z(oE zMqm}ohO`_8@dD130yXhhp-ig>Bd7XUgofmJLUQV)X|3`9$4O_zFkSUng)J!t>9W~hhNgVFGv zQMiI9+N@OP_R$Hf!b#5{nnO7bLi<|`cT9M{bes0`Lm%rNjE48sfOxF>t37Q5R^g;) z5ch#7`f{4$x!up|!3gR>N10I9s@8HaTJIAN-Jhm3-KG;*MYm~!r02>YF2XfG^?aJi zKNmqg=(x+u!RVZE&;;Y4^{B84Cq09h0p%E>`HR(UC1(Wnp!W~#dN5iLPQ!i4VYp{- z^3l&OR^g;)5DRwsk&>-eiii8_SCA3ZgWd8qv0D>W88>CN6~y~qE28HPI?B>7Kprgyv)-cyt8^Rf_mhGdB}4& zx>-FK4bSu^xRK_+Jk4%40;^ayq~$P(%|LvMa5q~fxx;Ga#(wGcg_mja`36O-9*l-} z^~br9#3}CPDiJz?RXFJxL~kH2+<7O?7rd+ZphW7_2xslijiQ>`LI)PO<=^4a$ zxaQyc^b~(zXl?ai1ob#*PLt0ba)mXlR2_a@XNYOwDWrR?%&mAgPBzyapm5c!|;?7ePJRo=D9p z2cuynNjRzxK$Nr*ScQ|GL39Sf)W4@%`l4QPMo^F0GgEV}2czMAwefDG^MIaeUE8_B zDxCBTB0tpKK~odeBW?66$O!83cVKExy<#*x--VK2oRX-zx7P`*!b#5{ssfRG_nm6W zqt{(VP>(w9sX6U~(Sk4lO1=XKe_P$fDxCBTA_fS%Deff2)}k0eJ-)+xUaXxnS`cOSX!T$O^`O^3IH`iwgVFT&4>z)>gGioD)CsJ@NzWjz1F;BN)7S^^tR9S@9<&}$ z>{rR^!D#wDdN*SESBzH63FWsi?u}(^5s|TZV#z6w( zpq0QXob(LBHV&#V4srzbp#93a*Hx?@jD~wr=zYdRU$WOmU=>b!22lw5k_XTyR&FO+ zJs3efX#bdX#>48tXhA3j=c@SRM72R%oxm!V4e7ZuhzW46M)&Kf_Q+~&^W+@jD~p`a8zCcd#XQe1Xjh`5+wC72yYScQ|GL2Lvf9nS2S$$AgR2LU&#sK<>^JrB~_&S;ne2_=6AZNmijqq$Wq8}h_!AYdFc$A#)6C)+P82TOX4hVN9T zWvfZeg3To!Z&WJnjn)>AOP5=IE&*eakqxmotbm!Ct-do2F!$>@M#Ti(UOq5g4*Om# z7i~((Ry&FV%)5K&1Xkgs$Fis(^h?fG+YIYu9w45!dN6`|+-aUJ-z)EK^)To~2eMV? zQJu^a{dEGXaMCk~je(%#{``@ls4};zUN7cg1!~DWV+(9aw^bBIb;cRuQr-RwY z2ksl_`LPjn+ryG3J7pENdKh#^HCr87)4@E?TPLuJ_Cz#6(sCF?5D-a?PmAFrI$1p! zK|S_IrO9nRx>yN=-gqcm9c4Z(t{kZoSVenOnjoo%K}tWDi;OzbdEw+>G>|zzY<6zgrAQZTQBLhyW%|rAn$O!6j zOHR$HR|XvdwItC5@2d^h39Q0N&mjH+VpA;#a@0$&iHx8gm0ePE+J`|;gxVesL;+u& zz$%>d4B`f~C_89PWxe$_$O!6j;%-V#J2&WvGui5_njWND4V}O$ob(K$EA&^zp*4k6 z)B6%eSj%xdC8xhK==pF|>!8JE+xn8qNQIN0L9B!xE)%ZBShyy5zjS-#x|E!L*Pv@` zf$K546KT>+C$I`9J%jlDZ?-z4`2eypOz)`~K|R9er{s(b27Mn!gPY<2Vri`tScQ|G zK~#qk=XiTy?1>lA17vS53u;HaX#JV>IApskjvST>{{1~C_UhCa}mhQgSR_e-~F zzw*Jy!|Gws11#C<&YBM71&ryrRXFJxgf|e?;SS@)h)x_qY1%&?aH?wcFzD^ji|&TI znA0P50;_00ND~V!he5q@|!ck3z7VF}r6ZF2Fsc_OWi1X0HO^4R> zz}CYtf_l)L!1`T-UUxQIEik;3`A7r3PsA#m^bBGLjORg+SdRD7dum2d51NqJ$Y9W$ zVKn$3q@oPCAI+`8NzWiWpcnlK$tx~PA92`zDIFN0=RtaQ4SFrq_C3%xVxH&(R^?85 z`iOHHh-*Mpy{wO%j9^E|lAb|-`8-Q?8xd}9K601xqDQpW1dgQ1>k<+s_#@ufkbY4@OXr zyRFmZvySdo4@SdVjU{5#kJSg5OBdA%tYX=amct-Q6^~JCtZHrUddHdI{nG7SFxRsA~9<5)ve71Yy?(uNiQd{2D`?n@sEAX)gJj+Js3ef{(*ORH{5WwdN3M( zV{wmBk3aG;OEvs!v|jMc5J9*m$Kjs)h5ZZE8tBPUtjc8F0|-E}rU zw-H!Hdm@@3>A7Nlf)JK3MjcorOU$k{!0N#W>$#elCf`qXu@a0HgvQP>>I9c8G0sNp zLMoi}4B~5{7mH1TclDvG89*ls+%`N81%-1oik|6PPb*t5=MMXJk-ve`vA2JoQ?FRXFJx#Am39 zH*PzV@@w_F%LwWb0&7{Y_Q7aqA5hzOK>J&~N++-iCq08G11+k~V;^$vq22}=VLeyy z4i;%)rl@h#U;I*#Ofi$s0-G#CU*DqzJw9fqtc<2oc@Z@f*?ch z(-VklH+2H5ST>~B+#u>h57)Wo0Mgc3@8K9hJ$|l8$?10)EeOFSVNFgTQk--Gt8mgY zh)$(qRG(*|Vx6o()Waa20-?SNB@OdMiFm(so1V8m#mZYf7!CauoZZ<^Ldm(p zI)POz8?tifcN|0E3VOp8tm&L(^oNWUjKfmJLUQV)a32R*~OTh7FOO>3(MBd7=MS3Y&~ z(94mNEbl|_)9S7>sc0jxiX}*EIdTZwIHcQxoaZrVEP%k-B z;iP8}AE2i`;25ROcpl0T)Pwf(c_6FNqhhom40DW8=fSOn`DG4FJO(eQl(AU=-Yr6@K6tLQdOkkrE<)&LPYVV5Z>7ePJfxXa4H zXhEPy^>h3#Q;LniDxCBTVhohr4(Ipu!`RA&;&_64B~%K6BBMbo4c*m>n{8pIe2Kox9IoC)cfC)@r#qdcdf*Bsko>Xt+*b zRqmvxj~}*i&uGxe3&Er=TA{9!DvA^J1$Y#>;Xx5kxpP0%ZAj$Ai7UYR5D+5G`DZ* zM(}>=cFkV1#WJs1tYJ0D3@vY&M{{|eLztinmpAf6vjR62C`Gr#HLXZ2tN^|c5Qr00xJl{Rs>cI%=u@}aVoj$q;qhSu@#YCmJeT;a)Mqm|AdIk{& z=W1hCqN%#;bgKs=tmg_wwLgEHt>s{}AQZZqsB}7)XmYg?bSz>jx=j-#Er&t;fwNm1 z&exy9x(6euM<*E1SveRD{qD&`W$L*^rM1lit8mgYh*warn%l*wzCHAF#R%%LV_Is? z^dS zaMCk~GjOiPK>M4?YNCyx9-akKbJ_=^Vf`z(f~A3YZX>V?Cq0A6gceo1yC1n=YlDoS z9@*C+58B!}qXpp}oZakheq^|<4Pq5edInJddWM!SI+8an^qzqc)MGrnOUC*uMnhi$ zz0UwBL*G_9fmJx^8ARdniORmp!DQwNy@z82^{BBtC8ytIG`#73KT%l#*P`M=oxm!b z^bDfugG6No)Tu{5XIcAQMo^Edu_-wt1EXP0*`!3}A0Qgp`gW|sNzWjfz}c+=HGMXC z;r-HWAxh7Kv_&ym5V}G+Zb57EhT4)_#j+t!Gy>uf5DOn9nlQoq#uh7UZMBRRgc`^6 z_BZ8kscYTRj*p2+JnH74!%urJ%RYtzy}bmct+(MJFoH zpzaoc5djl)o7UqkhxPk8Mhn6rB~f|ztRp!Zs1sPl5+wC7h!4=0*g+dC+tttN!3gR> z+heObRjlP;bj~vj(ScQ|GLC~I|F7yo9&pUDi^$?(689l_q>cMD1xD55_5VTlF zxC_Xw!b#5{W($%;pLe`MTXI!u#Lbfob(LhQAVOt@LHnc>^j}* z!3b-aU{r&(^Q=e3Xt;-i7F7U_>hi6%%|4uj|dL;$p=o4E)|({Y!TgVBPJ z3}?48jLrpZM}<`^8&VI0m~=Z)DFJr?d%NrBiV@U<-aoMG!DvBP2xX{i7bCv25m<$j zoOt>ISvzMm)GKJU zXMyNpBd`i5J%gABJ;MMvq8)H#c)xU;-jTEZiqV3gK<^U)r7qb@C$I`9J%iW@J)Aw< z>Hob%@8K9hJ!t-5{VtIFb>*AHA9s< z>Cwart8zgbq^;@uDK>KI1SXu6Au$ikxp( zEverB=4!9@rO1^$ynuN8>xAXcv0CQ1?IOALb&lrm2J5wnHKZj)=4umMQ{>6@YDhCe z=W2t3QsgNGYXOn9affB1)2h;gwsW*6XOrds)vhYNJvB#r z@H<)VGO;=kMOUu3*k2rE_VszKE^Iejd$%xIc227#6(2EM8?hi+{&TRBwDtFF?MhOz z{7(d()$uiPqb2IW1oM!GOV!6gahm6-WO>&2a?-BQIL##_8Gh$3C(ZJht(A#SmfzQ+ zvuqOosjSpo`@hr ze(C?y(cM@2{54+N2}I0q9|`XX`u3e$)Tqm@O5wueh@X3c)#G&)Un$ikL34+B`X8Kq zCA=s2+UA^#>Ti2HCGf8i#JiSGoNC}Jo%Kl2W&^RRlCOmKBnW%P{ZePWeroyDu^*{u z)`=}0e5GTJ5;Qw8P43vpSHgROJIm5V$=tiimh_Mya#aF_6 zf@hWi)yUk}TP*HtCE_zwCw9jBO3D2bv?4Hn^Uru+3GYb|9-U}F@~oU`XizJQvgajesX!EYZI%iiTiP;yg?e|ZU)fYa}nv{6$f3SV^m5;RQ zc)a#zOqzV}5N)-k&NWgh@2sPwPoKdNe-7z2=FcCVhT8tEiSnU-U8VHo83e0v?ZbY8 za4^1|a%WRJb=QO`WEJ!o+b5*S#dh;Yay%hk+X~;yt=xwm)o%D2d)4*r)T_CO@tfkc z5pe8H4)U}h^xWmA{H!FX8!V9otMFOiOa98_t1Rf%L3N%ug?#uoUK_Rr=4to!k?@i5 zglS4=rT6XmYN_=TIbvB%yygw7y*WJa=4e51dRj{nN-R*jAD&3Cs>!H$t^Tz%x$6HT zZVl|E{Hk$4Z8SQJBjTaw+zVfWT6WZ1!Zh@7gL)~?fiUGFa9@IHL1^8snsUC}AvL=p z?=iMdyyoDPE-z^2&Gkgk`#c$-?5uoU9X}$NU={A8u%94U7RM^FnfXY;pFIdxErR~s zy93PLsp=)+o(~fJl+jAB^Nyrc6i+nYJy$!mCS5-HPb~@4@cgRrHA~mv0;K5U?gXnm zm(JBHtxlI`tjSH>Te(R29#w-}xohT#EEqGCJ?U~{p;{8AVdU&HN%?xcCYk$O~G_@ZLsHH>}3nq|lvCwoYkhVN82TdcIXFo5j% z>jOv3>pxo?IX*-FcVQ(7)9{4l$9hY_J%fpQ>$!?mU*y@^ld&1{!_B#gFKcgE8XlZZ zUbi}{T<#yM&DxM5*HueN?rmbVzt?BT$NrR(N)3tA9{-aeUpPX)n^DK>m=dsM8hLy@ zzk1IP zu38ag|CQ}oekaWs4@zT#oazHQSG17bASzcXadC&f5g5cXzWv~+s` z&z3R{ny?C=1?(pXSJ(AZzW59!6GlG}FD;*`*+C8Wnp0T9N0J#eQ~O#kL;hra7o_v} zG$pZNFu9q1g(J!|ou&O9njsG=>BiB5@S@Ro%VH?`k~s+?R^hXN{a_{NKatAfD{V=O zq>|=^7o)Yjv^Pj_lJJoopu|{xmg8>r_8o?%&%{TD3V!J6R9zuiH6F2PZ^ntMa7Fwf@cr zNA>rkDay<1g~^RUSEi;OzvvNDqLFZCkR99r73s+ zbtY}q&K&XLYn1li(scQye*p>8uzIU!Po+$h4@t~wY{n{lrg>uE=L1TMFALP(sT0gq zJfgI<7t-Y4`SM9G+eK+(&ciQ1KOLmfwWGATtJ36*ISx?rc@I`86CNK?k5mff2%$b4 z72IV61@bg}V`RpEicsZ|0r#y+*Kbf8fwNWd^NEj{Nlc9pHiyVJEcwYNOQycGqh9iZBc)-gH*IklvWkC z#Rd)%af#9*>cF?q9cjs14Bo8#=haq~?5A)<$g3IJTDUKL+l8kE;alEq%EW?g)FB0? zn6V0wDGIqo2-j-UynDt*DGCnEK~zOPB3E?zM9xi z5IXPrS6OhWtN1Ktvbo>m8QL58s!?D|2dQ$oC~eu_sd8O73&}5MXni1`Cv~PJkBHo- zjP$b;f4rW?5q;8TXuFbO&3-qYhBdG+Z&j9*%qt#si8NzXX5lE!4!&>{RVX*nDrk?= zqq)iSB7HhXY&bDP+w(J3b`=~XOv5)oU3S9rM1RwjE7Q$bmA6oob^wS+-|TY{H%ISO zMiwZltb5B7#ZJ!9{``TrN5BKq@Ek5-r;^p$O*sw(R^gh#6T7l^D~Y{}DvzJ>MBS7b z+F7Ver(AN^E0-@@m5%?tSMGF=G-DO6mDmrSWvu*Hal6x1oC8-7U$wjWqqMF4Qe|mv z?kkw*@BK^4OVLTz!i_%v1PnAnAb&xPE2&FUDEBnqZ5lPqtGgd_hMQNf}svKD` zUoPVL>s88;^dvE+-)Qq~zbLI6JgvFhGM|Kr=nn9Ac%tLJm-eFR+g2%6E+&Z|`|`w@ z>QP!D&s4csF`gC#)7%5f^=?bW8NbGxu?inM_Jb8RJ{(l~B_xS|R~l_T8WE+PfM-kU zCfF}J5}qhMVVQDh#(mMlbtp%i+!m$vPf3y6_I2cF$Z8D^Dy~HziBpRYF=JKbs3K=tBsWpL0?yQHI z_C-?UPiJ!zmp|24Dx7X-zId+$N3?~znw#+KZ9=@0glU-FmN`NBd9j_j!33W0o;y<; znF>$XcDP8GhW=`Dx^gI}qq+7fH#1hP9t!JZ!gIfwXL1uKMx-l6Cr&a~IzLuCJ1j=a z4^Qs;y@y#SE#R&gp4^!V7niz@nx%DElq?shNZ%806#2t4_(-@p;@E8Q1l+wk!85%l zm)$rOrUjwkobQ(DK#V)i6WdzP(iX$B#UUo17KFaf&%^yyusL7X%OY0cGVw<>8Zh;&H4ne_7LTNSHrO^2sn zQ{Y+Fw%o+Pz(K^xzqTc_A5U}`pP+R+m?n1_=PO|vz8=wZ5Xm}P+tO*uTNSI!!xOaq z`_tr0fw_qb0|t?zJ;qzsetg3b*E=U@=U%1BN$^w+)39n?&>*t2>O@PN&s!C%J_ROd z|Gr3*oloZ`8cZ2P`fOQcsS)*tBj$M~Xw6_Y-L9rS5~k^wfd&z6*lNqNO>b1JdQdSz zTUrUe239&Zk+^vfA%&AHrsUTg(fxb87S;=%u#EARFf9m&7Y!oa8z`2oMc$}b_3>@I z=HESCp4>V&@#57WG9~DxCC{8!9C2c5ycVdX%k8>*N|=UKxsDGa=3^f%AIz^+ta2Y0 zuN73&<(YoDiB0_mlU8|(D_OH&a74RnbG7CbA)jxoAz>QwdCkG3ZnLsVx#llbtXg$p zu4Y#zLpIOKO|1VknEXEHr=&i4$`MoGmxhL8GUTRRt4f#_gpicMWZXA@B`)%rid9bV zr0CBGNU5gWgmPpExtHESnIHRzBNlqj(Pr+>kX>UdNtlK&zef%sJ+AgqDhE7Pv1(`4 zIogQ-GUSmHauW|04JBhshbZHB-Q$RxKC?B;r3~5BrJRImLGTS5N*;TME1UA&SF!3^ zt=Zbs^bC1i+uX$4Rl~^l*hr<9%Po$mSTj!hc{fA0|5Z}Lv>=R+8b;iI#47h2-cqs3 zzj~auHakOZ{wFtamIRaPS7Mdu*H<~>S(RArN>+yaYpc72X_%jQD43l7HBUL8c~!-# zejc%!cWQ>*{ZMXVQ{E9|>GCX2uQ)_7xvd~{iEVoA4=(XW%rYT;v&!=nc;=@|Mn!AB`^{VH&Ra$q-`Kd!};!-f0!9 zCd0a=VQv}nxy`wWvyVrS&yfR^T8<|;V#eKQt#(qn{5d6`glRz#?MK5`t%8+^4n)PO zN6(|Rod;o_rM+V=B3%e2kMj5{Un(SV#N5HrT5>0tVSL!ZbXMN(m)fy~-#f79UZu zszQ@!t$B%bd5)ibF5*!6FfwJwAB&^MVUDmAiq;0fs=(Kq+ew&)U&pHfktitJzaLVu zDymepmUS0KoJF~b79nBeE zD(y#;^GcW&gn*l2B&CbD<;2bX zDpoDI5v6Ue5ARgR<|fL$3L_B{x+K+D$`g;1qqM$|Iqy}?D`6T|lzSFN4h`v))P2i- z6|1gajnYDZs2iS}xb-xQG^jq?KV>^loXUvO+QZsyvm57?Fb!|G0Wr4CZ2$ec_p4a7 z;bxT9`c$esExNT2_f2fW_I6BFJ=X{|b>%7rfGl`suYQa6N=-4m7vJb!jT#j3>L zQChK1@XfFacDabWqrym)GMNDtQV()OzrxYlsp6?}i>`JOreSu%Ah?3tF9huWaZtr7 zw{p>12qf0K>vI#n&<4quyr!q+4s%5D2GN>7tbXzSmz{)ZSl`DjjFgPZYf9^VSjDRH z&EO4=hcMTmxqU9eM-3%AQp%bdX-7CBDL7jDx(((LX4p%Zh9{|eLP^Z^GNvY_j;dJo zZG5y=cTbAk&D9|n(Wzu8DQaqJ+Oyy|N7Q@_?_)Gck>B0RCt(`KsQ-;7o!^>F&l@DE zST*r2yldAIvRWC(T*NA2G$~$VgsEyz!V%+V&(xwHzzm4R1td(vFV)vaky}>=nZEyZ zLdB}^g)_BsFOua+T5jUvu@KVc_e@jUU#B_3uN`EnCCT!F>rN7;Vb;sa5OV)}q^Z4j zM#ZWFon~o0S0&5Cf9EC^^&d$#)tG0x@;Qwon%0fcN_K&AY;lz^EeKj_1y?%_Q_DPn{sJV#|e}UH?e$oFljtwp6UCys~l0%FHRFGCd;clOG%g(gzZ3NMa7!3#cUO; z%GQn3deumlL%eenZ=ZD~1y(#ra@^oVa3;g^8Ti==nNHnElxXPaVb2pAdvUHM)^NH+#j-jwf*1!Zf^VS-cyG?P9MyEAK?G zs&?-L%`Gua-Ul;Mcw+d3Ze+!>`pS{+g*XDIElk5v`E?`R$~90b9VtYx$}S*5oBj+| zv|j5Y@kCN$HYNZsNcR)172p+NXTa za^wh{wlEEAA^CSF{(}!I8xH3uSXF#jyms{%-1WJ8N<8sbwVtH$sC&x4TkJUkr!7pw ze9-|t$cqinm1A2S2v+q!Jy**rmLY!)t|9Tno)f)D=h}|ye`^Gez-bH9f^hd$Pm*`1 zvwH0BJOr!K|IE>D49<|t)u<}*#7RpZ;<3D}I^?gfDkgB+!n7bX`_h{PkM>ZTANZzX z)qiE@Xv5*xSI6K=5>K42*`HJ{K3T}Z`L`Ez-bH9^m|1^$P=NHTK`#widCT%W3{~}GUTOa-6ft_A2*x~nb<}x zIoZMyIBj7X-lLa>lUa?rs%?uUsaSQTW{h@vMTY$2fUCq4TdI#Dv(j6tz31=X2%NSs zEeOS(N0GY)I;xNV+oodG21s|udS%E{?42c^a7hazmH+csPo%Bj2%NSsEeKD}hmk?c zBz4rZWhz#s$IsN93T4O{*9%BI5!Prt`59MT?eS+eN8q%DX?ViYX*{Vv-b?MP#Hv_T z`c1Uf0e&AoCp$_!kt&6g)gub2P3Dc`2%NSs4bNT&hm#$VE^3pVp(3P~YNgAC z;P)?{IP4oiw#|B|T))ttBXHWnG_><35u{9)CrbXueO0Vl-6C51?UpWgiL#e?Vo1}; zq|{nPxi+{fN8q%DY54MZ&}8y+DN#OVbXKuyZpCP==dCn(&Rsi+Cx%y;LP8?`QObX5 z%MmzjVH#!*cupaoH!V|QF11mys+nE1_7>*ZeH?5j@q}mc6w)B7o071-1xMhtg=t8s znNvvPOWl>A+s#$1+WH259~_+~KX)g=s->ZakH|-1*1i zUSCqNYVm_8EzK`YzHvRT#1mgbrjjKQWh~p~HQ@-HwlFOS14m6I|E(xv`8unKidE0< zL}^nX-Stb$EAfQmh^ZvyV#|P{8+ih!Elk6FhTy4WS^mI)T}PX!She~gR?xH`S}rDV+QKyaR^&OAOb#h%YVbu;v1%t|wKnjTw z`EmnIbz)m^1WsF+hIf7rPa*m84K#)Ow^XsJLcVD2To+i$bBvwD6KzUOAym1Y3Pf79D&morr|q^#evxH z)Kqll02Ql_O^()D!&_U8dN@ctv9)733ExpzoK`c8BXHWnG_1){F`R@IbQTw+j90O0 z#YcDxqFst?4>MqRqM`qIlIr0tHuH|-2%NSsEeJoH#}lXY8e+$+IVx5iTs%{o`#xFD z_qBk;6ZH>=k$X=ivG$*39D&morr{lv6=9^w@c=P+`$`q7?m)Vmv?*EcTHRUVi9?@4 z$iWsJ#gS#Va|BLXn1=61eGDN1O#?;0_?;?N)vFhy)gPKH&%fy^@k9l$;iQXQSJC(H zB#yvo3)3)ubR15eo@*oS8=nbZ60{Cw)8&MV-V#p)Eo(*2wRom9FI9#kaCX8peA(d}%nz1dDy1%!Ay{?p za=iAgW4f$4cuPDnSAp-nbaYd%e=WfgI6Gk)R%nWCMJA*cSGRR2MX>65_jv8tp>)~j zYb}W<^6qU*{+-!K&AS4=pMf$U&Q6$ym5nO2A-BAns%jN?f>lX}=V}($3^}ty4T&cf zIdveF68fvnGYWA8&Q6$yuMZ7tN9?bSP?J2J30B?tFh{%97k*JJURC0W*n*vi=pU^v z?r6smI6Gk)<}ij{)1kO&F zhS|8kI+N;kR;Yh^eN?fkSIODhVM~TQyk$9wClb%}B;Ag$QO9Q8;0TOhG&ZCo<^R^(Dj;)#Oc{Yd-Oo7H|RPH+UyPMC%n*bV!VqxW{HZ(WIs zRW(b-YOzN%o!%W#e<4L|c^VO+IMO3UR_zKoA-IgxziFK5CBFQ^~cm@nnho@#Kn84Wy z(~yJ2ksI_7YG04Q~!u3YAgII1k|noSiTYcb4m?kqS%8sP*GbmvmhPU4B-k7kgcQ~wRvJZ~3A;OvBHK?r&{ zgEVNnIp9&n{T8eWe-x$FIFl;J*Rzv&!fDP7^1i|#Q?X`g9D%bFrUk(zZUz|;Jjk^C z;YABp^?MKVEElB8yGPhbJfU2jPHH_lV){S?1rska<)kS-W zC(KdPNbe36#3yb0aRkmzn1=Q-bs9N%zPwng;Rpq*>O;D#{whTtbjM!eiPT3^$h%RZ z7&d<)N8s#)Y521B-6`Zxh)MkPa+!ivcOs&-GDlP7I-49Mp1ARL68Ugpr096^EJxt% zglR!&_-zsyad4PeP`#>PRpk3QT%op8ai>jEw*$LBvFtYD> zve*yft)#?-ev_}5 z#1s9?_a(PucZof(6OO=H4b$-Cu0lVOv~IJwwTh-<)!52$+O&qra-o1y5>E`@*MMA^ zFw@dau1jzx!|yxuZ!f>FZ%9TA4Nw{`t-}#GJ7HQ7@*QnJ999M>^B>kBSoJz6K|2wi zCf|Ygws|6`bwd)rXSp(IS8a~K*$LCIF3$G`q)G7=%EaHb30B4VCupyBr^yd*`bazx zn$?i}xs<8Q^Yi5hoSiT&2pbzUB(-Z@R8F1qC0G?*HbLw82;R-;=_B#P`RCM)05zY)%kS1_6lY?{dwvo@kGE{e^M>0wYp|wHIBg93Dbhmdrl*= zzgv*HZ(I$6Rl8coYa}sUZgabq#1kW5n8>=+D0Okg3LJs66Q;uJ7HQ7&NLOtmMt6AiuNT4R*il*M=R9> ze!I(GRpN=pJDZUo|Ls>F3@yMBI6Gk)-f=(Ql*ErqQg_TQNU#bf!fGYp{Yp!>N)k`> zFV%`XNk~>R;r&`n;OvBHm?7lff_zBJQg7V*qGFYI!P(l%L-4y=>v9rLtgYLgymPvy z2Dx702%McT4Zq#RwjtpUAE?bsURJTHYr#0}4S}>>rj*1JgFiv$-26aY(|R9A;OvBH z_)U0a5cyvJwd%Znw~AHA3c*~?eK0fgqr1ct6}t5zwJ$wZXU>_!5jZl5@}RsnJ0W;|C%46mnR zRXzV%T4tLJ`9OboW{Lb@F3!nd(*ECz>Z15-3MO!N!Zf@;IAItmx#PO}%<-gxRe7hw zH#vX7JBqCfN<6WkbSU{VED64Z@ymh-&598VTKU8f#@=4ZmH;iIFqaprV+`%MRlCz2XZ zBAahVstZc3A1(;#=oI>gH{4x#_Pu#6HnG9&#S8$PLDrs5w zoiguoei5sF!%V>2BVdh`gLV>6yv>?MzNF4qyvMk51kO&FhFQhQ(@6A)1xoUSA|h5* zza6E?knT>;vXgkC=Unly}vt2m?XD3X?EF;nmLsW>-gO?cZ?%P z;OvBHSo`xC{65(2yXnUYdl9SXDo}@erphbb?IoVrn=pmcdF3gFx_&TW0%s>o!@6o4 zr;sKVPx11-S0=3L0y8s*d8EqA7uZ`@Gh=>&u=GX*x$>}wIPmCsj=QPX~!7vMz^{X z`YI-HcEU8Qc(QQ-agVq!{vFdBZ812P`WO+~dA`(wHdh{UMQr?QsyT@__&Q6#X zggYO4lF$c_#m^7pRjevlJXUjQpDc%#FDCIspP51Ab;n$3nok@c_ z55#th_p4Y{s92o#+ng+~3oIq^#E|0E$gee9EN2yo;Dm+Ozv5T3YCp3Y$zLi=`E<7_ zN8s#)X;?SPwHj&IDNG4$DiN$&2`hA2CZ@?X%JA!L!S9@D)kyF2CzSOEn{WiqPM8*i zOUkiB~3j>r)>J7F3|&Slj|k+BZy zzcb7Ps~Q!A6|)||S9=0{B%Uapw+5+rw}#qxS^!7j?1X7}C+>GOa-d}`wQ744!K(QW z;Rki-V#rAIa!0OzTQ@KUfhTyaCX8ptdh2-Ix)X!uNIrwm|#`;{qb79HtF*I zb6yfpjM`g^sQ*N%XExR22%McT4d3m%Tb*rx4YpDp0l+ip6C$j zP2BHpQtPMG)`dI&2t)o{#^ztyZE@x-r#waGi}l={1A zIgY^D3DfWif4i?Zci7d1c3P5>JdCYbFifIg$$w861JL6Q*H>rVj87prZ>(|C*{|Rm}fl zwa@UoT0yT;5>Nbi(43^ya3Pb5tmO!toiGj0Mc+0hht|52=*$%=R`vQ3qb0*zba`Eh zNj&lEUR&byt1$U=xC=+%?1X7}$7F0PQuAyv^6*2Tid9z~V>I8H@E&BjA`(wj8r+4H z@99MD*0`o%0%s>o!|a51L8QaHBBaHU;|f+?_nf75Yn~xbUg#|GM5R-`N%yvPWbDDE zNtnRd3Dbg5rBhGxp`{~<-&i#OtNg-dYKOn3%YHEhC7vjBWe}tRaa-Kb;F`K0%s>o3qrX?q2v&JZKLFWGexZG>jWwF z609S94t|?JelSNkeGCaa(@uR~W*$f2?1X7SxISSFDbTHhTI$+-5vwxbceRG=VEvjN z_7YDNt~`$1UR+f5|G1PRaCXA9AjG~OOY-+}S1bMeN5raw@GjZB;c4<*2YZPp2EiP! zXC8Z%Q~OqN1kO&FhUE2h95L73r%3Zwi&*vSLX@_?Zkp_J#ZKah=VQi`@^`OTs$E&j z5jZrH8~zw=V-TE#43E&mXu zo$d|q_6@d|c%o0+G33|TE~3Mec^rYW6Q%{B!iF)V$?7iR;KT7ER$YKM^-5NUHz#k} zOFU62G?YB`juR^ki{=QNoiGi*(Wi!zVlQGv?|jomtQuZFT5J3Lz$TajW{iHvlFIa{21JpBzm}-FGTlJv1*e;tX8gT zvb>{VF^MNeU2006jB+=-lwHLUIICeA?tO+gCx`O6n4i90uVU3-_Ho)L_M=6OX zc0YF`Zzm^P`Yi||IFsS^konb(!$uS(u5TAA_Hi9K0%s>o!)&VGZlq(LMaqh-js&aj zz}h0GVa+oqfnR?a>eZd1_=#Su6=VH)njuNEb*4z*QHn_3gBIuC1WI~GfqyU*~Jc;e5eV&uIP4&Q=k z!4Wt+VH#GZ801cRAB#|sDs?+*TuXX-q2K4;E6r&oAc zes{rb=$OknSXX{cujD+rXk=)tRXHXX#O8zrOEJrYy|;_%)biU-8&CVY!i zX&yiLm;n>mJ7F4XlIIKL&pVdozSkccu*xrFl6nAYNBbXwyEBRhwc9GU=0dyteE5Ub zA||kR!n7bnz4?_VkGAF04Phcy#U7ccCN4@-3OCL#Q$iWlp8Jiw%Yw!(CIt3Qn1)`s zO)M9Yd5}QIrxjJb|S|4kf5}lkn@vx|U>`|RR2!Xv5reQ7Y3L(6q&jIG| zY!b0*6FfI)XazG&w^+%PXdKdopPRgpRZ~+5fxQ!^VZ>`iXWnS%B38)$l!#RmKEpd$ z=Teo?C9GshEUVLvk6Jj0wRT7+1olpt7K9^-UHR~!A?#7cRS~P+g7ccaG*#)j+ES*( znT6f?FDpFR`Jj7*z}^YdP^r+fJFm#RSip(f0<@V z4|qZd?42+T?yg2C|6KBvX}`}?5vvLxGODG(-CZhgDN~{yj7(TQ{d~xH@i`%|cfvHx zHBdu&`NCfheJS%o#Hz9Tjp_z)cP)!q%9Kdo7s{>E%Ne3xKPLqCPMC&Pdp(ppY%FhR z(EGWFRmDwEhXtyhzOHB~Q(~`sD3AR0rond56GC9`glTwhyK5-_$Zi@U=ROv(>U4@x ztpasfw}7LkM2~#kxmv!4`1^xUo_{QIv< z#k?=m2!Xv5reVhKFI_k*w^VHYBU!|%D3^(<@DVDWn5<+<^s@@#l^hR>SC1Ve1olpt zhMxZI5FWky53yqH{UTPaXfaXUel%J69%(I8BIHdl-}~-Q(X;DHLSXNNX=sB^?fI@o z55yzA7m8T*=Lx806`HJAbj>eQ;+Xm??`~C4+Aym-A+UGCv>-U_X~i8AY^3Q^n~PXw z6*@`%W|ORZyHY@=#QJNE`0u;RN_h+4H(&yLCrra?1$~-uZyP6Rp#OdYR(&lOrOq@# z<(4~zWJ-ih5cwRzQ&OfBI)n-AoiGj0QcuWy!#h{0z{B^4u&U^fDD}xisCd%XPNsx? z%UaxVSQTkV=ll#4*gIhwYO5Fb*J(W=K-_brC-O#GpsVao~(+^lN8@@N0}08@gFR4>Z3zx;axcPWO#iX zy4uYm=_gCbzush3w=*HIcfvG`@7n)hsY>c&AF>_~xVy3$ z?8#JX78Vvl2<)9O4bNEG{$MHhty%SlAsnm52?^@vjj76;sXj6#dV2{xQmo4o_OvGi z_D+}g=Dax;xn1etyUbX z>cz#YyBnq{BNM%3N;rMU%ZvTo$#w(<5dwQBOhZjs!%vpy%|0dtHQ`tlT`*qFSeK?; zUh5%K!u7m0e-d<$y?j`g5ZF6m8XU`0fmi$Zgk9g|$FXW@c$|9RXPPp=-d(1IL!Sb$ zLQ_88D%On<*gIhw&PQZk{&HPG9&^B*V^xU_usT=JNyYYkMVS&dOAGTQ1D*KZf_8+! z-U-u?eVp@g`K}9p>S@QZs?~`Y)pO!W#Os=6!$=cWmA(`Xz zc=Noo14T?=?}TZ1$K;YP-*TWTPnA1~ST#eQq;7wirYwC^K&FIOus?5V>BzU1UqcA& zoiGh=-kWOksP9hvb;9o=Rz+-pH9+U5DfgoC%arixDf1PTzOxm7TqOkdPMC%mmqcD7 zpTN(pxGQ2+ooW-+i?D{q`SsQ^B}Ol4$O|1g$=ve)AO!YKm==V<3Jv)DQK#9rl7fU) zB`x87oV;mDhnH3|CAJ+5lO!bZZXQ_w@64l80r zLbU}-v>Vl!H;I_cwpS`b2<)9OEx?PALEJTD3Oi7(sDxGSs!?qYD?9XgXem>||PyHmciUeS>ddmNJef2({id<;RB=FclqJnh@AK5nAxN z)RccKZ)+;CrnH1r3zi$zZQ$+}w6&BeaU`WFuUDd)p>jMWuy?{V)M&ihl=qLVW+>mU zw1ic@Yv7p|xVu7q;dvB_2X)n)n(~6>KN_|kEky|IoiGg}kYk(jn-@PCju}cxSoMAz z)U$+@HiDO0%9QvsqcP9uA0#ffb07rvPM8*irpurgem+RNR;{>%Rqu`&)ihWOV)biF znG)3p2Jy=`LV>WCy7{!)iwsK>hcgOdB!9uu`}&t zO4N%f$H&A5N{^&y6DF{C!n7b%H&o*B-2$YduXdTRs{gfUHN9Js(rT!KOo^UlOYuTZ zfzq;Dtr#Y-SHm=nK>C;CUu^12!KZsNtQvlGvU;pFRM|8-%9QYXb&loRlgE^&Ltl

    G=9WpJ==uHUhoiGh6ZCp6V`s_Gl%4h|3Wssx02hPg^+}(mpK4g7X zL9qShB5U`(Bs+7vCn2zR!Zh@jKAvO0w=BhWh4kWBHTY?~I&ed(G6pK1P~u(NOKeuf zR&2$wP(onuglSj-tnPVsv{-9)b#M=kRqfK^RhOHoN{{c}G9}!%UuM(aMl-gv3n8#~ z!Zf_GZaUB6&P`_3Cw1jmH5FF(yk0a-`O(o^ro^0}bXNA;O6Iew10k??!n7cqpLT&2 z>$sW~itEU+>K&|B&=#r`yqf1FQ^KywO|~a7g{|1tf)Lm{VH&FAuRX{5s;AkP0j)Sz z{rnK8zFd>0^jhK}Q{uaDpLPB9C;N~`A_VqMn1-kN;zedu^736H>vOC!wTV*;eM?ge zh23RJtcZWYDqShbSHYZ4OknSXX{a{6JDojl;>`Vrd2p;cH8WN{)ZnDz^P!?liP9_H zFyXW}FAB2(F@e1krXla9-eQ}_*5HXDML1TC*&3s6gl9$Gp)N8d#-x2^PNnN}Uhh7` z1olpthUc8$|70)w1@fZbZZWL#-aAD-0j_AtNN1T6=a%H*g*r9oL8q4!0(&P+Lj?h^ zH_U%;8y>!90mG^(dnT(B;Q64%0C?{X#nawC%g-;5X~XOIRVD=XPMC&ukq7@^k^UjP zYmX8PtBUN6R+le2saW@QkSSqEFU-Y$ZFuE_Z4Y4rdnZf_!lp4+{LR3Q+)&HTAFJGt zM5!+#pc=_6JDC!r2RZO^JDYK7Oi>XN*gIhwRz7)LkT0LviucWM6R|4!{v>sL?UTxk z(uHM8Z2s)T2NyE%wGZYH0(&P+!#fRQi}Rqv_4#$*6(UxpxlU4d!HR{p6>Mcn%t=$e@6Rt&BDlL7KUyO{_d8%C zVFG(6Ov5>!_6r~S$cAq}Qb@w8xAqfNyBcXq{B3KQ5~I&n=F=D7U|(03Aq4hLn1PoabaScLX?}TZ1Ry5h0dv^bo#pbCgVbz`KMzs*QyNghP zh7xs(`0_iW-$DY^`YcMwE(Q!H}RFVOo?G5e&OYK0jY&eAwpp9 zglSj{+tH1;dT%3rY?)ueswOihs{Q-G4Aay3WlC(m>cs1~RF*2;z9V7+dnZf_!sz8L z{PRdRX-2>$5v$gEO;QWP3VGc{TbUB$hZg7kDg;Pf1}q~4_D-0Fl}Y;j_D-0F)e0^Z=d~v`mxi2zw@i_v8=4xW zx+EkixAxk}l(-&g#TQ0&l)~F?@xui6PMC&~iRy(pKiNha+JDy}tm<<(T5Sq-IhW6N zkSUSgTYKgeA{DSJ%`kzz8m3_m%aeS3bkjCcp7qrjRs|iNtcJHsQkpDulqnJOJ&{!z zS=3bCJAz|R_Tf{!y4gQfiT>#$hy93G1tC>wS=<-a1{^nV9c#Dptf}Sp!Gyrx3DfXC z&aFf?clKFR(1*bstMY;K@{34SR-EvWDN(fVdUp1^8w(E@NC@nmFf9lTwodXM75NSEcU`|RSbljo-3^HE!OG5ZF6m8Y)4vwXAx+U97!bcaBx2ka)FfK$@~C!AqvZ<^J1QfyTEO zvkxW&_D+}vC)|BCyR+&(dk-r-VAY^oacY%S@XpUX51A7E2JT^>GHm%OADIx?J7HQ7 zJliL-9yUe!_k0S+s>A+q>S^u0qC)O6B?|67$R;nY#3$ACAO!YKn1ynjYv^T$3GAIPEeKuS?qp|O+VdHC&oZp~xnzp^eDO(Te!R0x ziC23ru<B#S1?MXb7aY?4|ER@wXuU;O1dMVDE%!7%4J5V+YE^(}s|f zB37-knxtNQlBTq6VJlOj<+Hrp`j!u$Io?vj1olpthRWRHXJ(OBg@5R7BVko+--+tX z*=dT!qx>=@Zi2J>cpcs_wX8r0?42+TtKDQ+@H)Q~<@KIblCWwO)C4RCYu=A2oKL32 zqscaW?uP_?v`P zExW=xap3N(&sfTousL0b*Bf2hRP0$BLSXNNX?UM=ULpQA#K}~*Xt0D;n?j80UT}B2 z4_nHV@QN+OGX^&@l>N|#5ZF6m8mf_;D8%!34K(acZ6je-+ipg+Hn_WD7ht6g6c4f} zjQjl2!A9)-zBM7RcfzzFJYQXix3(xCMh|W+5!C>r`U%`!X=^K)5{16n^6uBVipt|( z34y&+TSUW}VFe2D83((G>&yKrVbx}E+vU2YC?7gN3_?ULE5IwdFBVI@3nB#ePMC)F z;a-r}IMd}0Urt-el-T?uKTj-jRGeTHKnU!eFf9mG(+luxtB;C@ z6C??%_Mb4SeZM9v%X(VNlqm4Ynx_Xo6&EzCO$h9rFb(yuL>u1d(o=C*cufhbe*a)p zg_LBaciDV0CAPe_;H7>RmGalALt=etN)m1hvFoe3+ZFZ!Ne zroc&Yq`oVbtjz0YD^sF%_%pUC zwyC7Vq>7lp-U-vtzk2kYxol`GRT_0j#Huo#Rz3VZO0}Dwq}boElPRGFpJRTP`bcF{7a1^ty%VMdp{w&F zw#h9_O1WRdfK{avqt&f_V20^V2bmH}J{@QFcl$|uGMEVy*sEb0-WVBvgLQcqCS5!A z*@RW))=pN-!R*g#I~-+7{1P^RE%{l-RO(VB#|~@aop`kwxVwmVKJx2_neMKLjppvc zrVnPn?Yd{0ReK~Muy?{VJXbs1pDmhx&vYSTB*&_l^YLojkW|I;kdI6Wu}K8`V`MF6 z8#Rm&*gIhwW>Zz_&t~kY#j4#I#TiasE~@a;!S5 zz&VE+bn0X;nGywdPh@wlyk?zywI>AjPMC&X`0gHT$-57%V$}{DtIC{+Q&X3xDXr#s z$duSTdbzjzWZXG^lsvF0uja_2Z65>gvT3%O~60V14vG7+-dEMyzguvbj z)6mN>3}Q9zw&I;HSaGZ}jfS2?KyZp-oV()}$n6Y&w zlBEvq$=^RSF|3+kgsLhFPAZNoon=bI_^x1G1N-x`t@{uHdnZi8%;i;+*qY}e}LYU6q&}{GQW?^>uuO@ho{U|B z6+Ol`ctQy5oiGj6ra!G`VQX6Q$eHg&th#bL+29FI2zC3+}FC^?WiVVmhR;-l0#~mX%EjfxQ!^1z~%I<7~#@XKZVFGYPA% zf%AF-?rzp-Ync)UI-X(`HXdOabAt(iy%VMd;bCYp^P8%&^yzISteQ5$s9pwlSL&ga zOo`7wPO}RG7qIs;I}-wXCrk@M-%4q0vHL<6+NO(yRb@LE)gs{TqzI@EgW?Io#gb>) z&RXr6*X$mIz}^Ydf}nId#j5<;fz>M?CSg_g21fNPxV!Eyuv#;U2P>>DKg&kg3Cw0* zZ$e=2glVYpo97I3-~x+#)?31=8g<}(HE?(D-dM_%SUDSFR4HQ`zMwB5uy?|=ApGWh zmMw$6kNu9m5>`dk$aHtJ?_0{0SZH~cT^to;Xfclx*gIhwW+Cl3%NFizY)Bi>SHdc} zu2HQ9?#}X~rA&$PZ%#AMiv`5$v*B1F4~V@Jrr}vp)LC|PnyvV<3J}O)^=xERUxK@9 zP}xeR#Dxl{SX9$c@%73cguvbj(}Ga?-WfJ?Mh~&ti%(E%W5sc?h`IE#m-wf8guvbj(=caZQYyRi+FshkYe`sj zsmVmus~@cF@QaO1iO_)AclCR=S2<)9O4YP5F9%FR})RZpIEGc1CGSubVVxO#R zoM|gl;+@k5CfT==?tFSHVgh?7Obfzv*#vKfwUj=dejsAiv(1y#p(#nq=eWW$CBDyE z#@thTN_l3kA_VqMn1(qlyZ5k5#ls|vqO(M-YB4QJJu@Ro>6T$9Q{uygIqZFh2(5_G*|G zgl$vTvdU|RNWblfHDT4D*vaa-&PmGElTb4g#S;XJK82ZD%-uAw={SxZ*3#s7^^0Gs za{0NBY!4MZv}bn>^JwmFs%ppPq`o!npEZUM*gIhw?jK_dF*WY3Y43qC9IF=p5wE@+ zoT}W}<0DhT)YYC{4pEr%yhuV|?}TZnl+FsWa}yMH;%p?xs<$wsvDaE~kez*GN)#CB zz)m%s!WL8;MhNVkFb!2`Kie{S$rN_pIE-V}{OEYq8`dkbx(DtK#e|pPcfvGORhePSCKTVyEDjIkST&?mylPc2O_|=nTc*Sb)seNkeu|Z@+nW&BJ7F3! zgM}?K6ga~k$M@z~)yp$p-DF5p8b*7`l<>-1k?kHW@SzJk5CVHAOoO}g64-~EdAQe> z4jii*Zi!QmE=^O8z_U9_jLGlChQ2G$S9O&MfxQ!^p%-raX<8Utk>8pUz_DsbfjD(P zRE?Nl(p{!Rt+_SWfgq6wS92u<_D-0Fb$&KvnC_*^Jm&Q;9IGN4#H!oi{iugUTxCkA z;|y$IgLeFLwLFBt-U-t%`q3s23vbzpKOFU)Vb#>GF>1e|CzUlbTx3f8T+oPh8qtq0 z{?42+TV@u~tv0y96 zRbFrWu}bO`t-glUBLb5hWJ9y%VOPC)2kY^Z^j&IfnbeXgxci8pp**+Hus z{N7;?LSXNNX{ZQPrX_PZTb*B8TndvddTBd||f$^+>9~ARE52LBb17h!lX+g->FM{>E%vt)Fo)T6) zYi?8r!_3TC->qay1P`CUsz~!#pFaHwfxQ!^VVrvI2qvDL$0|JTFJV>bDn>O9+}+7o zE141-Dj8Y%q&BRVeFPz}cfvG`>8FfhvB!d0%ZLaGtL&YOs%x)QMXU|0%cFSUYn_bj zRMIySyE>c@*gIib5Ke9w%ff7an8p_wAz>9SY*Zt`-Sy6AB~#+c;R#F%b2QD^HIfk6 zJ7F5C+$lpBoq)H&X(8Crm?C`Lqe_ zd96kUt2rYjtU6l+Mkc`B8Es*vEQ$xUMY@b-W83E!{SOZ(1olpt7KCP=MmD9njreT% za0#n^aW<;+!QEAp;F&Or2hRsjjAFaTbP?aYA3_N1oiGg}ch*Mspkz1EY1j}6tAy%C zbrHX~^O>AXUMR0fH3RufH z9^BO$M6j(Xs%U*Xj1bs65n8wwIga_aJ|^}|?jd2-{z#*G7-nX&)z&g4s#*?YT~0j} z*Ub(g1olpthLIw#F>LMP=VDdQjuKWK*-h>d? zJ7F5;Gt@A$>)q^OEIv@es$H-);AnVumtV4xDG`3SC7a%_hLrKan-JJLVH)NEEE~=C zeXc3>IpZ#2RnT!5xdV5%bDOP9iNsF;a-L^d@Vgh?7Ov7kYw|?+8RUgT6?=BImg8N6QEoLSu zHsy=Se3uy1a3aDY3|@ zG=r8XJt}g}9~0QCVH%w9m$ob=aI~~5!21wZ9q2b%9ojWXx$xLgrUb9N=TN1{@lvfH z*Gy5(CaVIx0ocT12$u0d2m~d-4SuF~*tw3q0 z(YW}isbCoNc z6C~q{L<3emZ3MkOAPhzRPW<_1zv*!Iu~OR!MH$}1-v>@n3j(fD&4v(o+c7N&`?oY_?SBrJHajT{tA55$QGdeo+T|(EG9~2TqHLW1 zXz5%^c|zc`iD|eS6kX0noe7sVAB|vG6|ruLnx|Ki(s8%5Oo;}+MX~*hhDcFcf(e1g z128QJ>D$h;L$+O{fEF_tRxLU_MRf~JQZ}!0mMQV|$wAicNtkp&i6R7kqKs)6nXu2p z`L$+J`_gL|R@q*KwHje$B7K&#Oo_@f-moyajnr!DB0}If$(V+k9G6S+p5y9BHbZxl znah1&O;PRJ!#SVqEK_1=lpUXBQD5rgwuKP*tyWCK+XD@~`5VzidROEqdG|FWZ;WaI z@4oIH<1ABR-hPz#bea2O_P*^!<}VH z?5yL*7YK!=9-e80z?F3|EeNI3oAZ#4SHvyluaNq?Cw_@h0~;hM&4xP5l-NA7Dfg;; zPpn$(5+U%~ESQFT72Sd7v0o~_Y;uFF;G%lRs2BW`l)=NCWlEH-(Vj0@kSOMFaGel% zbx%wS!am-e3&#v%e#={A4bZMNW7LW@layaZIm?u&+@w42J|j@ff9NJ5%2b=8c65iz z!`_ZEreRgY*j~I%$~Z%<4mTK9jjkJ`274zdttUGFjo31(7hgJdvY|jnN|dTGMHR}! z8`7SRGN$1PR+$~9NBxILB?l$4sERSFQ+$&0#sli@^o>#b!u*nq-7fNs<}vDP7>z8H z>H_)d(&A;NbzLH)_C;0_0%sgd!^)(k8?sGP`bufO2N+gK(J^ZAsWA6rHH`-&UVHPi z$4>`J#rJO_1kN~^hP#390yZtOi=uH}pj#EqY479OZ<- z83)sX5SO09=C^4n8CP6mSoLIIj9Phek`ff_B2$8Q+Qk|#Zzp|AI!6ecaWE|iMQ?v$ zgB3~YVf%<-)xI+^>Lz27Qpe~bQ)06BBR26#BT1cmhY&d9U>fF&*0<-KqdcX1&0aIC z+W#;{oes6UPmghtDdBw7mWwXcr5Vqk5dvo%Ov4*IJ=}Po1P5tiwT}#|R)2|6pA1h@ zoFE1zBG0?<%G1h7e(T;50%sgd3&PK#b$MjSSMf&jXNFakY-81vgOZf8<6UG*yzg3* zk6(~ivY!2k5IEyt8rEJ;4dUHqpAhfe{lu`UK064o3;!cfaxH(F??$Pbq;j4yIwHzaL%r znQ$L*>%C_TtE&3Os~&-N`+`61gupop(}M6~uphH7 z*j7sKX34S2p?9omJeH(PsOU=K!PWjgFLON*B8_eJlVJj998AL-poM3#8k?I)wPzLJ zShds`tByL7q?~kel__zg;$Ze8sFmco-kK0N<6s)ro8U*-8Nndcds&!cRpmvo>TReT z`L%?rOo>-(erKoNDpJc<1qp#O4yNJVrF*a0yj@<>@?~}$s|Ie5RSz6UQp!LKO1KHP z*_zwcrQNng34t>Xrs2tG+rr$vQ)!6}E5@}vDG^tFBs$^6-u%r z1kN~^hTPuk7ye5nYpMHKJC0S~uEwhQwkIjo%Dc*x=zgsXudt|~v}_C|aK^#3Ae@?1 zgSQC1BS!Bo%&|&+7OO6THP)>>U1dsCSXzZI@AgcLaW6s$oN+KM2oDA~;MaTX5GS}4 z;8<1rTdaC3F-e(P*HxxO+OYtBb>kmmm8+D%83)r)q3LQXez%=boP0Si$12bKaq5%h zNy_}Dt}-RYH*CrKHHi^lFR~;A&N!Hcnwg6`@g<2);?ygj7*<6Vi&IZ6Oj4e9bCoGk z^v@6;_ojmQRro>(oN+J>{gMq~{CPkNL-!L87*>6Bj8m7*PEwRnt}-QRj0@w}twRiB z8a^Zh&QX{agqVvae28%Bbq@@{Lcisvpcr zo-4XTzS^5O-V|aVC^e{Do)9=kVOkJ8zE)#OvcGi1(v4%)SC2T=6Y3Q8_i`uk1mVmC zfyv&o6t%koA#ldQG*r5+lfe3Xt13Njq&Ly(1ss`c5=7b0q}MIGBc8y%D1 zix>JWO^j?-ju1HGU>d5JpRCWj1uYU=eRkkjm28SrSH6XN?ErU~5)9Ug5BX!I_&_d6 z2%K>+4Qm`e{*~KDbr!{%1vyp?PK#6Ly?{5QC%em(nA@c}Z<)|X?9rhRA#ldQH1yjy zb>x@tTZyOA1&&p_F2||;AHz7@DtDO@qwjU#Yrhv19d=j{0%sgd!}|u$d+@t8s~Zj# ze9W+F$n7|_#{DE^8+Vr}VSl&>?{dh`@O3#QaE`*XAlz?0)AW07H|bMGeLi7eoEq9H zSs7ixLw>t6PECipYSzDd$Tt?nsgdv&{-T{8kgu#x4K&@{=Ptc@FA)OgC``k11J#37 z3o0j7IjeB2Isxb7QdqL0Zlv*`p3I^Q)7sq?q=XtWA#ldQG_0s&KZRMWc95PfYQV9o z_=7lgC{+Kxu-QYV#H@n7Si$C{rPg^Ufin)K1);Oc9yViC0cle^g=5vyZ*l4$U6Yj> zaC|6nZhRseXec6Gokt0raWDcy(td*pEXVG9{eHU1UW^ zi_;`o z@%QqSDRI-eDNjt5#5!_uLg0*pX?T~cKnMPz|1HDgJC+=)j*N^~Z#GO;rZ@AHDY33g zdp_XQBg5T&R)oMA2h%XOwtWwNp=@!(uWOz%tQtNsUfmb~eTG4vG9|p-dhqVWoD5>C zXN15x3e(^@??;=w!>yzW*E;a(U*go~+mm4}OD}n)Z@lUcwI;95^^!A6#H(|Xl9de$ zydYnhn)Ea!#8^vH+fV}MC``kKdLpWRNRKc!Amg1leJ3Sw#=$i7 z`d)2g_ARc9Q{D!1ta62Oz6#dVd%n&~rUXB*nw>v*SDbvmEg^8m!8BBXvb@Ox&zumq z4QR=+s?Rid+leJB^Y?hkl*kxyj5}XvQ=fGIjP&E}e1gQf8I?Fz30I+B#;#N5^Go0<)<)$hM2D_uKz%amB?+m7G2-(&c6Ha{V7#=$gHxw#X{>+X5tKjx3; z46Ek-j91TZOjeFg@|G!a_K#5hpwS!uCjl=AfpZk5;r;Wb-A%QeFNv4h_2D=#P3;DA zAff*5);8X93CJtwVNSq@U^s3j^TCqM}eFE!@M!{MTlU zG@SFr7QCXvRPjNlRvfEt!ds?iUnMKQ%=DHikyJT@ogX+|bgbE$5IEyt8lFcTao}wW zM2HoaHR4#c^3QlR;RU?6y}?_i#Nb}VxoP%ru}G&tLg0*pX?Vwdw>v+Qzp?n+?YbPR z?tG3{D?LkAIv(?uDbaYL8{gctnOJvyJwo7&gK3z#{HZRl9#U3p9q!4oD#9i~-SjwF z*>~Stro<@cx_oa97x9>v7a?%Q!8D8k3~S8WCOk0I3UT6CRlQV#>i8%0+pT?MN_cz- z;&-|~Hq?GX37l~-4HZfAw&OpW#T%C1wBcCwqhf+O?ml=bPal~QrPAB-2^SI!gG(16 z1kN~^7KG@9p}hO({r+1%ye|y7ALf{;QX?R|{ zxPxirkZs~+=fOOrd%W7dbc*tDpSK(s8?V-YxlzW~-tvb*aQ?khlu7Ve5Z=}eG}WKG zT^#p$5Fv2J!8FW0FHn*xb=HYjJO^>C>bf#sEe>_hzrCmN1i>)amhG*uLEPDh5;)^v z8s?YO8^Pv}SR$^l?9Z{vdVjo{3M*$l|KTlDqRfYI)~Mq$v1unt;EaQ5c#gAbBkLv2 z5P#p&i({3=88~k4DT<%1k4y>sz_sk5)huyGmEMHF83)tw#>j}vtnPt{Vy${zIaWEt zoA7F-6eXpMk4%Y>b>~^@h$!*+T}t4LgK3xpd060+9`qFNZVu*HRsL(dTF^B`8Bonf zrbOE@KUtR-eZ(hS+7be1985!>;Zt#bvtuJMwR#hdRksTzsP!tODDRs3$do9)-=4=; zY%CsoLkXO5Ff9nx-nnsyBNfFzkNR`0s#HEfZQ+ull<(^!Qz9sj8}D4kO{^SgAOy}h zm==U%H6Z(Zun;%w_vTo2wn~E9svN8=7w02WV%+LF{NkLv;@0{;guodG)6j>z6~u)m z2Mw{G%W$mPAtk5{oKut*TYO|n3?3WAzZ^3eruTIw1kN~^hKkmQ+VU6WyBkh!D8R95 zRkH-u+X<>{Uht7Aab`eUE~oS~{9f9Y5IEyt8s5kq6Uu#G&-YIo^O9jze7gkI&M`$9 z@!dzJ#G>Aze9V_hdw83-3I8m{9bqCBz?Ksd!ro@Zl z1zA1EC~?CVO5lw13DJV^tHm%jVs(UgyUY-dRZ*AY)qSwuMDs|9L5OP^;cQ3c;bPCB zl)xDW(*n%f*}w`+>MB|o!Z}tAd=am%gcS={O!1K^@yDNu%=Kb-(Rv3ZaK^zjgYl=!sw2P;~srnm&WGbV7x!8D9B^eE0#I+qqVSv2QZRmCeoJ>DTj zX_o3EQ{q^#J+Jv&8PVZ)O5luxX}A&%Zv4bRL0nc*;#g%A6V%}LDN5hRJ~Aaj=U3uY zQY^#^>nVXV4yFa+&Hg&vE`O?_=0IPLRW(~AsF&M9n}A9xlnDBz4nKVSq+wkKC2+>U zG*ng{9KN2{Z*wXeiFSM+uy9Fb!+b`Ps7`pX-YAY({ac z+Ilfwy)`#Qi9SZ-K~LszLH1yZpLnGjC2+>UG)uj_5aK^zjygzutp8Hwf zG?b~?f@9VGfCTmN%oN3V=@7C_#ZJd4WCa{;aGJlEJ1xYJw>@6 z<||Vo`e|)G@c1l4fr?cLfin)Kp+b{O5Kk-C(r~79IgV8qhbE}cr==)X@xC%8x?B(B z^*XjT*bb%y&N!HcHL5(@a^HI2{JpITa;(ZQCaCwOrYM(p_{x-sv~9~DEdSx3QG*gV z<6s)*`^cf(f3my(+~KbnR#l&xpk9Ey^7Fc{Oo=lR^sj6x`%f}b0_P}93xeCVMy5x- zo*P`gkK;Hm9Z7*P{nQktHMEb7JL1*H@VV+MEnoGiUDLGV+Y3YgyyGc>G90D_p~wb1 zmVf6NVV%*g@VlQsLB2xqprYKKLM+bxuA$LqO5luxX_&XvY%m-9=&Yf^ z=#d<&N_>e|Z6QYSyuLCeE@t#+g<(X0@dirZjDu+yFKM@qG3Btq^mH)Cs;5N~)Ga9~ z%G6@MG9`ZAOk^jf9x;q_8$t-2aWE|iw<=sUG^}~={FAkLv&fL%r!&W@YxNS;ba1Zqp1ZA$HWb|0l4I4pUlY_G5Mx#cUzrlqKNRD9?qoy#ca*>x2h%VwV|XQA zrfw(0SPPkB)#GlE6JaenQ>3p37l~-4Xb%Psm-1DdmAEnRgP6V zh9szcA%@=)Uzrli_toaH$9xQ>-ckZ*983#>_$ZLixbnsS`5)ytRvm#{^6*58a`3RP zOo{p|kbgMw&A;ypO5luxX+g027R={6FYx~qQIKQR_h|`gcZl)$v9C;t3$KD<)sqGO z&!Q-SGY+O>4F-#=$gH(%G?=Wz-T35hWuyR^b)WD3Ql?EsMD$81ng20%sgd3qt(#^UV6wBmY1B z`*N(pYiv`(WOts;uJOcwUwca6jDu--?=JEOD?9a+|Fz&Q9IML1c!^d|WNi!Z1|FH8 zkJi>|i@bOJ!K(HLC2+>UG*rfOw&#Ovcla9ywc=QHy>;gAb`JNIDe>iVF@E{R z4*#fFO5luxX+fAER^lgL%=T}(LgrZI(=#*1X6TntVzqN6UhUu<|EdQmfin)Kp$@%T zo7dgm+drXtHI7xEhG)iTyv0|hgxA{IytkpRfAdz9z!?YA&;!^K$ZO1X^N;W;&#|iT z5>@jW#G;$Q ze9g5qzjHe%fin)K1>rVipHb^={MhMN46EiY%Zzc_wTes$&wB7g(caq6C6N+1M`0SO zA?p8(9R4#F897ZA>Yr9%#*}O!tkXX)NGTIw{yrn4He9=z|8zpgD}?E)jEtm!-wt)r zKhM0rEuey9XZ`bp$o&ETPHZULT~~d1xSr6Iusgg^R|!MC1I+R6pI#Y|xBepi`;AhS zzr}dJrI-GfjEr4`NUhOR|9(%aKmJCTe^=WN^Jgsv-a@ifMzcyIPBjnHfA?~sBZQ^| zR^cr%|B@C@Cya0^wDTeKsnSXR-C`5}`duyFzaL#p49uTNZ{C}ly;T}bV_=ne3oE@n z{Z9h0%&o#i@aoJMkykHd9|eu3F|f+K=Yd-<{gcR!fr&rAWL`_qdyz$)|k z|Cw?9pM=r8ADFmi)lEOrQ=dHuz%-44RoA!l(FxbRcmGLb$G}9M{h>M$74|#;(=-NF zy{s6n6HOBT{3nqe0}~s5WM1L5@4gMdG>w5(d4z#_j8chD|4C%Wz(l3PeRX1Qjn4s? zrZKSUuKN(37&`yOKZ)!ZnCSIzfKC*v_dNj9GzM0^o-#})`iH&xCy^Zk6Z=|5=tTIX zp8=SrF|aC+5UCRx8L$3HWXHfnulpl(V*C3H*z><=8Uw4GMvckdkN+QWdR!(^W@bhJ zrb!GVR(W0-ugB2N$G;K+CM*P~#twIeUYmXdV4B9jDhpwvPH5NFzY+o_5(Z4t3GHgf zG>IYPH7?LqKQc-N%sY~qeNuW|tUsfENB#TS=PYP$H)3MNv`jjvf<2*W46N#EotYU- z@`n029wpYa%DhL76Rfi{=evvv^$UMCZ>_ZL9EoSC3)L z%2!4UW2Q>mbF9KN-6~9&ReNrfAvB30V3m0b=g)EZCjnUI-N1aTwBNnEtDU}29lll1 z{yboH^S|vmCh)nzG~ExZ+CRO$9^>xx(%CVzc>hk|D+AM%FmIK14$OCC?F{1cPY5F> zZ1-lKXYFiani5!ruZ({s1asf#$J9LJck%T`V-O;%hqTI=QU70K7|s1CO*M%v(~qvU z=l@Cwn3#4dvlkZM?Hi%VRtZ?uFKn?MBl+s*e-cLXbv3lwQeCC}Zl1%LpZ~svG=}+@ zjLoQ=eXO)TmHCKh{l|YN{yHD7gr)>mnXim$Z2td~FrR;|MPZu6FlJw)g?k5>uQA-Z zvRjnVe5^2GzS?J;oIq$2L%=G$RXCnbWXHgSIS=~oNeI9+C9n$b?Y|S|d(q4#E3@wz zQ~R#|_v~ZLw=r73O0=Fn&WXi0M(N*QYrHk{oM-O`CYJStN-=O()BFIY>3(2UIav8! zBeb6WKM26|oCvX?`T?l4-ZoZYn#RC{S*7)(F--}q!v5?ZMD|wY5tis%^)=%YX?M6i z(ioUnyd;zU->nv_a0|wHMUP?LD&bQ;^IgrA>@B|g(5=Em_pO=vN^A4~*mI+~ePGo) zDU;B$!9R%Xtuh~z5_77PwrxHlKQjJ)$H9a-+wE>qjnMjjWXB*X5}doM#hQ zWzGg#{|d*`wDbH37AEvEGt*#uVMHuw)Bd#f;E&X0f3 zD|(D<0;_Pw!SN_z_Q+aW!z$c@31P&9+5KwwT})E~tMK0bD}7vutoR>C7prh@ z0LO!RWY!ZT?O^#2-)Z=V#}Upbx{uP_5`5O&QZ^yvNWh(1BXsYRMZ^2Gfg|-8XD3CA zW>=)C^eYim*}m=XgpeZvF*E|xf-pR9A3et9&~y=B;rf-YZ@W#-gpeZvF@9v&1YjC! zf9`6f$4I?gOu{WnZ;uc|Yv(xtn-0scrz?4U5}9m+M>Bfrv0w&aUq6wmE?ke z7#e|TsH=9d7}xfL!?laOv+hhGhISq2f`AwrfoZ)B>M^tyWp=!pN_WK&Lu<9UARvZD zU>cs+?rx>W*bZ&c?6x(P?uxbjfb5eCLfa1@Fb&n-^7PST#P&=V|8m`CJeXLnAP)-*NO9+8xL2sx_59mZcx7lDQ%D zV^xySF#pPWf*#|{u$?A6MrPg;ZPWnA`ws$QXauHVW@g|>Jx1NAXlC9IO=Uhl+E_*| z2#BE(m==VaS?9cK&va%!ADZf~^X!@%LO)ingcgMSS=VmLrDFWA>&i9zdes~xj`tq~ z#Lx)y)vkSp2A;2`eysk?Q}K|lar6B{Q=Sn^ajG#&~)}!zuh(44`}%j$NLWg zVrYcfe`ufe+^!!hEw`KfhxQk<6Vmd0E(nOB5t!ERIC>229%c4Xno9R=S@*$Q5c;u# z=U>F#rDXZRs)MwC?_XoD`dE+gtUg++e-EECXFy~TLXHH)(8hNuJqY^ia9J6nVxmR! z7?P&aM~&cjwK3!z2_Z*9J61qo8fxif`N8kq(na%Vl%~?hne=Vnl`|paNI(p2L=e+3 z2NL?A+J5YVwrC!|(p3656U5NQ7IP$o90`b_5ts&#W0mO#4_Vff%;Q&@N*}+17}{80 zj)agS0WmZJ(}J)&%MX@>{V|V=WsV`jb7zR5jYj532ssiEBXj)nFB;x40bi~it5tAb z@R+4OvI#LVpH1XI2ssiELnAOP2;HJH{ooC_zVL{tKKcPMvY&-y#mgpy90`b_5txRz zm&a%N!4=R>@TiJD+5*3;jmhLl2ssiELnAOP2&*UT)cxR6h=E6O^f92U{m2E8wI7&< z_s^p<`wW-iSmCiHeJm^M_~e4fIvKL z8Gq*c>)+%32a&ZOm==WDkf*eK^$CuZ`F^hbuDNHS9iLnfS?2@OFuy&s?;}ixb8haJ zXuqrXgR;(ZE(nOBT^X3p?!#&KL2m9}X)1HSO}k!mK|lUmVY!mtqPVWaL-*!^nSJZFWR=7KWi~C4J%YQjpNrN9QBbkvq~eZUrkj|(e<_nl^_##?hb#v- z4S!KbHO3*&O4;Us* z+OxxuIDHmtm*J@s+8ohL;;iB}*c0x9nY8vjjAe8juJ?U*In5UF)BDW*IQ!Q-M$qQ9 zcZ~jnfOf8J6{ZED%Z!$KjNgV8=XmCc9xv;6_3zr_Ygz-KARA7B!JckOhd)Rthol~jM1Y0mn;=;lo_MN zL+6|cAx8pejli@Z)Xy4Q`lCm>sQ)EPH88A!z8@JGPB{}ojs(yefoZ6dnl-j`_F^$f z|4Wvtc~wP^(XnyqoCzUE0%(oEv>*)38e19#zE=NBmTL3f06oUu)1`7Igd7Q=H3HLu za0j*@nv-!e?2rDJEL9$%z8+)tl9D+SLXHH`8i8p+=-)kaY$*lKi~g4^)%Mb&9z!`$ zB4*jxF7WbFTj-OJyn4&|_#Dehy$$Lyv=*iRB}?_k=_+~*t<~m&09qq3t>+Rw zhL#!hzhtQvE%DW3XxS$h1kf6RX{b2>-bO!GVdD_0UtevmPK)20m==VC z=J6|dj-&r2OJ)Aup$-*uLjbK2n1(xN*0D+g|6$$_O=Uhl+e%l;4FNGU0@LK2GxPb- zRDYdkx7-jABO}9&(B#_Xe_dB@+1G30-paWl{*SWr0FR=0!}uT_EPxb2dKIPjc3F}| zKspMF6s1TJrAw1`C`GE2#DpfG6s1Wgv>dDkk`O@@MFFw*KPVzaK=^;(%+BVWyNl*{ z9)0%7y}x~@x1F6O4<>YJ=W8K0y6d}5XZpK(|+{((T}ZmenI6$b$)_g;+CPJvVrd%9n0;S*6?aE+-=*$b$)_ zg(&N;EiI*bqWce4>3)g6F&PO#9!wxD#4&emi9K{b$SU0<2mAd8;l=}Ls^{+7(j`hO z-JkP)^~i$LEds*L52U@Z507L5dX&NUy~`b6asEd@kOvb;dt*2rk3X+i^pD{Q5tbkiCXlA@ZM%C7#>0G&Rl5C{dG1_z zLWCvAg9)UC=tj>ssVVXEb7%RBtJ3XYiL_6{6Cx}@G!sbEI<>pk;2WCb=ysP?x;=k# z^vUpq2uqL$6G+oD;fZQK_%_T3S*3fjTX#-`Cq!6+JeWY5>c=ECA6yOdL00J=IoR(% z2sa)`3sH228Z)ed`5@m{k1ROdA|TxSKw5|!^n8>1k1~|!dR)Ty)gvS>B@qzh!35Gm z^mXThonb!6Dm~KUavT9c9!wxD>!6%RagEaBL{{k$E7!*e2=ZV8X=6<7%?DYf$L-uo zL_m-S6G+p#s5>7V2lGKz=@|sKj}Z{$!35GmjBw{TFT;G0ReC1G?R*3Tc`$)=##}8H z=7X%#Gdk{rTx`2%?!l+9G?AQFN+m_VAItGV;RQZOH6 zm9BS{lbc0CkOvb;ho29!O1B@o7e+@ykOvb;3-PYI*WfDUi~Pk^>2~ms5|2hg5X}VA z^qmHGJ{W-cAggqH-r>PkV5rZ(n-tkNTI zZdW28$b$)_>DjiL8;G}IKFBIPAK+Fr0)jl4K$_nFaOZ<Y2Bd2ag}Z5+W=?G!sbEIjJ-T<#^Pj_dw(?uBvez<-y~i zu!IOp5X}VALR4_yMZWiRAxr+^s@5i~lxfA|xv+!?OAyTj(&l_n{^F{-oTc}{DGzvD z8kUgr!4QIICXl9g8t7eWPOE1qKJph=m0c(g9$$wgL|B4oCXhDggYp+w)%_kizl7q! z^MtU3oDYT&L^FZ3IUkh2xT^j6=-p@X;Q3BiLe2+62%?!lTF$(9hlQW#YVsFXCEt}I z51zM$B}7<)XeN+0XLtJTELJ^sWr-J$2naWXNXxX6b2Xj`%U@j8hCk`#H#a{bAc*Gt zKw9Rx^xzr2{KZve6Uu{2NdyGZOdu`GZh-PbmPGlBtJ+$TPB5c*aA}W#AesrJh1if? z?R#xT=K{!ITvd;OZ%7ZWwGj|RGl4XHE5+TvJB6MP%3oa7u@B><2e&>E5JWS9v^gJ? zzqqQmdMXcYMI#`HW&&yIqulpvpQ61V@)uXtt(fxQ-XH>kXeN-BJ&w$C?s4QVt}44w z9^5ZQKoHFY(uN1^J*WG+Dt%w>cOxK(W&&v;`nhQ}&_69n$AeWmeR%v30YM&2AZ^YE zb$+l)=QEFkA|S|v38am(8_?y7Rl23YYb*9Zvm zU;=6Sh8w;A$Zg3&dJja`b5`m0Lyp_sc7^}`9|U zqa{}9aT}M{2nh0E0%>zTsK<${(&JCAj}Z{$!35IYn3_k(0X=$Ul^#cPyAlCG9!wxD z#5^@O5EY*JJV}q+S*7O#+&)G?kOvb;%e6k4AH3G5=O3)n^BQjFBOu6w38amg*Fimx zVinHMA|S|v`$43I7&)S&jK{gVidtJQ&vshfPO-Ok&K@&)z#Qk|>-4SP*K@@1-^HqA z`FA0P6Oq=xRsAoCh^ev6xpm~I{cYV^F)w^bqi|9c-&!wbK+~m8fe}aT`my}QTPEH< z)V}`tAmY2fmpSoOQtbN%)-h=MD#`GUR*^RY4G!lhYN4uZpXJU615)hQr_~K2Dw0R) z?mW9%W-n@u$vM}_^-zj^wq-6O>=-8@#uM?|=y~-|P^gf2_Bid?PC05%8=1$T={r9} z>`a}ys|0zV>bHaQoT{Ua+PU)P4WU_EnXGcmG<%3RXS*L5j=|%o{qxg5vS++ix`- zOCII_igzkqIARxURmBKZkxg$notz`~iTxEQ2YV3FVbJmhHz=);C{cNd^JSHzcB{CD z4Vu2~M8wIH*>|rZ0##Tt%uv-JV#hxvcQ>R^C7+n@)O+}-J@EEDMv7ue(^*KAR^w*& z+mjqbB;0=8>Gb;%`&+x9LDT4!JnZCd4S%Ijp{i_)h0eA2kJt@T3I`Ey67f~(FB>i= z;)NxPoVM>Cu`7*xz)&GA#8nEFRqKa6(@oZGZ>L5-RCOR-AGhD^Io-WJCa*ohA519vcnIwg86MPrcpj@#GCb(- z?B@{~9xfq0hzO=R2K>*@aq)k;kKTSKRi*PiqhH?on!Fycp-Z&?ZT0ux>-HxP^-mIF z{X5S|)%AAcqn}zs-!~wdRe#lZQC@%7ddR;J%U1T2s@Fb$-k?nnRBaipJUE2tXA-yh zBwz|joAqx-4?Z|eUeEh$dGyS3>hBAaR|JJ>&iyJLvs<_F!ai_RJI|xXYhC_@*qD>@ zpZrR7w+z}06{>s%>5B+NR6gJ0Ux;#zRr zXww5#SdKFbhd4Dpz~!WRYm_jH;B(${&S7e<;`o`Jr5+V%~K_@V!mn7NShw0()rId zHH7dykhn8mmBe}5=0qcHdZ0?@T4LgaP{Q*-Vrnr}605zsC>m+g164Zz*Pir;5}pSV zd%jXVPVxA~(MX#fn|3PIb05YUDx@Xhc_6VNUeQj;Hw@Y&P!%^z5f4s?4Q)e04#Ne~`c$g|rNn=YguybH;o3%^HC<3Te~h zX7^EEy~7ZO#KW&+j>NXn^o1kpow=SPZF-=}8KuT0GiyH-N_ZYf-i=Z;vf^v`L^!*I+JJStEWduVzB^a=spowCRB=U4yyD$r_PwxM~@ytePE-wCRB= zU4yyj%o-u*wUi$`&qUhvK$WiZJOaoXfwNSkO%GJzs6TV!&Xn*Yp+m^CJETnyIs2vi@;U<&It_W=mN_Bk(L{T* zZMrsACS-n~3PXZ^riUEk(7kxnCtCx$=5dK^edwCUL75YB^g=2g`yg!+sFJM#5j-x* zoRISmQhD?MXA^X7tSxcO{Yc0e5~;j7l}nqULY17WlZs1;oE3#5{7A_88L4=U z3~AE?RrqZF+(AZ>b}O3u%S;89=J2s!U3 zg4Y?4Ha$=!=VwH4DajfkR|<&Wbq1tO4^+w4nFucJStI1^g$Q0}Kw5hEsSwIKC`a3* z;;}lGcB}47S2qq0WGaXWc<>!NfW z+QOj<+eh>>LgklZXS$cSszTSCA9B1)*WN7Euk!;5IX57cw~FJ^(!(QAh53y6Z-h$7 z(FEPgn_<&6kKyE4g06Y=VGw>Kl(8-yPTxwb%rw=xmd z168_C@HkPY0>{bpKtisB(0#oX7P@BIAOxy(-R5y3`Wb{D3Av&}_w`na=-OBjmUR$S zx{cyK1N}@7B;?8z-&e1A(RFB#gDUKO(9iG?a@Iii;g2&Q`m7Op9L=pW(xwNh)RSuUbUJH< z9$9dEjZI~!^e$}@sKRy-{W2%y z3Ig3XPOnVRHMiO(fhugz(NBo=>g^hlG-3O}4WlPhT}zjYmlZ&c-?w@lS9N)#ZbV(pBL?dQ(b16*={6Hc3(=Y0@aFPZ zigp#NUzF;NGqe^?@%Xa(*ocU9Ngyr1UMD^1>vaM3i&CB2M5jWNN7RUM(UB18l0ceH z2z5^c;;#>>UzAGsqLt2%i;jfg5;IP%x64vFj%qD=@SCiD_E7g#s)LWCz&ON6v+6Qu{YiRu@n zO8REF^x#%BEFr=ZszpUwhEFr=Zs%JpjJAIG8Mte~G zqEuT(D-T{B3`_9WXu}Yk3O(uhUObWPyM1)`o2T5@s6#m6X`Y+NDFb7`*sa| z4Jt~&mAHnI2AfTDd|A%)jId9Bu~;?ni=J) zgI8YHoo^Enk!~}gOFLf+QI6j5=KkXYI(%@z?6={6Hcdu<}OaF%YbSf$&+A@gG*BB)#ufwb4Qb4zXMc9&JUJ-@qc zbVNkD%>>d$k7McngH;**QuBxiE?3PB+URSojDE1W*S`k){THF)p?hbhjWL6z`*Z$9 zj}tiEA|X_MAZ?6&EIlsa`|1%A=YJ%GDpyDgu}PhvEI#5Bv*fr+G4k$U`2825+AE}uxj|IM zxV?inAK+Fr5<<18dj7#Qjj7!^&UQLcPR~F17d@}xc0Lk9^&d!Q%)B~H*zVKwD84Vw z&mtjI4~I0L1g*Y&@+*xK<=Q0eR_AAsat)F88t|IF`g@A}JADU|h@+Fb?EEc=$R^a= zHFdt)&>U&1gRTb?Au1aCut(MiNz=}L&%>ovJaQ~8QJ>?1DqL?h*F`xVToS!dx%XAX zaT!~rg*f%$NLhAo#=I4UyOl$CF(t<)x=xmB8R|}&s8MsE^yu{S*(fA%mj%*v zS}72yQrF3HO~xehKHN=u^skiHLLzimhoXf*0#)i-y%B+aLOk*72AR5>I*oA4l`22D z&rX#qRo+YjRq8rfKHD~lA|3yd9zXxxJAef4vqPG`)d&Qt)O9lK>r;Mo+R$eY%Cst1 zqHO>P+-HZhNuWwyC&Ruz1s%dqd78A%X83AZ-$;QrF3HkA_Lq8a-OZF|+*4!{8)ytl zji~?Q>C@acQMF`9V_QjQStvq;CzJ=$+(z?1wN71o;Y+k9G1;zPxTCuRSJl)y+11}4 zY1f&0XZ24J^84pR@OOCSD3h)$(THP@k5-N7x^l&~|3a+ZOlvZ(3Te{=LxpXW+4^9p z8=oxueHEx{rc*_;tFcd~u!5cgYz0=zN;p z`(|^)L&&d7yZ4n}fu?Krli$ao>+K~T49au)ZF~BKzlDu?fO%tjAaUb*Ov-f<3Qjli0UwDj=nmH~TVYz;E6gGgX+iL@CH zROMWtN_(aAPef;pz}^yR(*splqq0U|Z;7<&fhz1RGbdKgQ)P+2G>$b2bJp}gBD-Ig z#9{_*5~#wOihc&+M?(9xu5kaqv<#@yVdpxCe$vD5mMg#fmO9l5zAx5PtieX8ghB9k z)ny&za}CzX>(F{GzrOCOG%dgBo+*K~bLp~W^1j@cg!CUe9s-HVKdT;xdrPE^mO z@4;`;anJcgC_$L&Yjx{0N#rt8G^35lYqoHHBy_9x&)mBV+DKhLs<7P+$w4nvNa!AJ zwf~OMY8xH`RoI@RpF#L_y5G2S&A2c25|Z%iv_eAXL2zGU5~vzgNA)<|%VZv^+FMnw zagVHNE+v?orUw#LzgIN(?MRyhsKh7yFSQle`P_Ze6xu;iN_NM!V)l?>V> z!l`I35QBb_@Ir+|pDin7Jh_xlc(jx`an~W0Yr&-tbJK{29|`Tj^&=$D z{ch^|O;tvV6GC_~M?%MmYp{+-XnTdKjC9KzO6X9DF8`<#TFM_f?x{FM7v!2FQ@Tg5 zBWBAWx{R11e|i3k)zP{odT{t4_q~Z^xktlHD5;|5x%x$i5S|ATxGsjY>4B<@5mJ9|F2a72@H~*fbupw(58c9X`d~YVt)1zCgl45~U+#xLq?IBR5$GBVvLkPca+mTRjqN#IHkTyL~ zrRRVJ-x=(Uso75wo(B@@jk;vHOAl$&166u9dF-VZqeBSK0}1tJV6xn8h_vZ}Dn0-7 zr3{GBca~sO_sZgkv2V0 zrRTC-u0jZ%R(>SZo6N~_cQn$b2deZKp6f@Zgdh79)9edu^q(rQ4)UL`XC`5nk9SAhZk-MZFdP%V^LIL z*wN4QK;qN`Dn)Y?*c}>kFI1?)JU~C`kr68KmJB<8JsZ!ws-2(C4yVxo|J@|8l;CIy zON=D^y8l2z?h&Q?@~%>(O#)TwT~sv+3n2(osr&thYh`%PkE;{&#cwJ<+WvYzdcXqp z_vF=egW`dwh#^tnK9$miy9!0`@jp)}3tLxs+{Liel{)pgrt4P)-#s^%hv$2JH`T?`d^gru&QR!A)Au0pbJ@()G`&9p)lh8_LPm>;RH z!aH_t{TM9aSn^E|Brvu}n*^%f9!#g>Q)%D$V?)C)a{^NrX_LUT5>SKdtx~l)h5Rxn zu;e3c5~woMC!@tMiQ&!Oma%=GN(P27(@^=5`2HhBA1!OrhKCmadOx3}Z9rX;_Bv6Gd4yJ-6{8R_!lQOwdMEd}^UsCS|AEymN=FXD9`^q&SQt{Is+2hbPug{nsNXYdh zSB11e_~m+{ysx|JNY@+^452{?B(%y~@pNgEK$T7f?`Z}Sex15xVxt#b*yQ|5%uHE*TR zr6u9lX@x2sk6=I3L$1Tnz4)n>?8)ew^BnUgb3(4@5aF%+xU@-_Dq71T6{i*YWlqRZ z9}(XAl}nohsxS}a`c+s$y>WP4zCkY6^hw1fQN77}T)w?-ddM{ZQh8@)(zSPHCS4nE znaWy=gj}T{m3L;QOPe03Qm0g?wnUu)q5Mojm)+o!i1{xGzb++6=(^&qEmEjBZ%hJJ za>blfyx%MH)I~zqRBwgerKJb`&um3mrCUz#i2xFQO~~gs^b4QdB8wXcf1+NE?Jel{%B*xIDQdQ^JpgE?3;nBW-%13R|2^2|p6@DT$0zrGIJR zP^D9s`z7=Y6ZU=R`8E^N?{6IpkIuhZX z_v+H72dc0|)%g+9?y9F5bT99@3SZO8gzg!5EMa=+{(}kKUvd4=eUvd*lko_r;+`{W zL`J{sK98ahhK~ABrF&%W`Bzv%y;FT0&KXcGwOk`3g3kspW3KBU=ajC&oT8b>L%m0T zT%N;$H5GeQ(*p_hhCKB$bdCbjCV?vTzPpN3<^+aUkEwXnmwBEefiXwg3>B*Mc#cQj zStE3N&SM6oO%GII>l{M(bw8NVw!1rzD4)4^*6lp^qNWEDn4;LXn*^$`EM<+r97Nji z@XI|c6!wghZB)C9?Xf`!B;+m|qWSC{-TLsUIwpZC_4c|N>1BKp}CYqLgRON6xPA=h3h zw*16ZK8dAkes-(d664GoZgHL3X7FV&c|zRcG|eoWQg)XctlA zc6A!TartB&(+6|Y^gu$LGjLq4AtP-PsM39jcS0=1DWsGLB;=Yksk{?n>6&TN168{B z@lJ^SPePsVa$G+7LE7{{m2MOH^pg<6uiJJc)cG#QU47TU%W&J3 zHA0;TqrQBCwCRB=-COdQF>8c;!cTd?-!Vbj^gtEP6EY{{sw~}?pATVcC!d(m-}!lq z>4AiNrb8<4DG*(Uj`UH5y$t%99`e}@-OGD|Mc48P7C!}|YcEuOUD}b5tInk2=UfERKml55sPcq`kkpBXB-LQlVVYx=HAuEWzcuhyG{d}=|z@G}qjG=m9xA|Rib(6#YI zQO=6wlLq>QzqN&7mrot&@B9@l(*p_lM2S@VybfuTK$UzxL})bgpcmaPbV=4<r#S*daBi`Sa2DytpmddpJ$DKG?40syoLSm*bfIg~&mz&&%}9u=+83cYj3R3>!Xa zt~2!1F?-FT-0JIPB zZYz4GcSmc*mLYpmiWfDAa`DTZM{6CkFBLaw`fBJ)9j*CYlj>i%UBp5af2*(A)0DdU z`-83@eXEhuYIM8SyJt{Z<=VE)8Jcv=esx7{qs2j*-l?XT7m5C5H-Ezoi3Oi8b()n( zx4&vx)1axpC6BAG&)i*~2vp@eyTtiraJs!`R<$5vD-q`=Z`(7SLN#IG>(0T0>2~R& z1&ln{b8><6zl(J4&z$=y2d`16KHRgf!K>tf#MS5LJJlwo+n;=Yw?Wfaj>%(h=lQ#T zCl6F%$uM(})9Sm|cQxR&s&g>GS-6Ex1R7P<2s_3}hyp}RJvC@g9|{!`yQjrFbG}Qr zFBYn7&_YZiqE^}`4bsR1RaG0k;Y`Z&p7CRr8{?OiYrG!BX(T3x(_nAHXr9V_*`j~yxY08hnNB?TL zHHg?J$sgk9_2Dr`L#vFA#w$%xCly;&N&jPllWP59EbOD+o4LYS zI48|6*tkIq_E&TU-Am=HUv{N5S+k*~l`?6C^X{TF``kmO3TgT_xl`TxtyKNJg+()i zsM%nJQ|nNgy<|=OAdgq>#8@Q@*4z8#mz6A3VfvV%ni~Iz)vKS=wDI3QgSb^~g_HM4 zn!Rjs@CcyqT`lBj?5&LztzeaIKhRHzmicp8FO8_t_)_ui)=RV#DD}xy`@S&^VsN(* z?uHSfY0cu6y>!_AFCT1g5bqvZ;pBWS)jl-eq=lGsKEGAA&(?h-o`2GM=E4f+v*oGw ziBwaCG=0l7HmCJ_&8U4J^zCjC?_FNu^m{keUU|}_h4|&&yR7F@uk3xRVowWI*YB)w zT78#lkN!HC7|=Ak_2(Bko8&y+!}|G;70yc~)9kv(T@|&1JaR%>h^Ob}v(j%ZYjVYY z${>C|y25#@OPZaUVA4Xgpwu0>{-4IbQ|h7$OC^rGD6L8rx7zG_Z10My?G0iY<;}W5 zY4$Ip8>k&y6hgIQYx%v!tvW;;uGii|6_!`@6M{=3jZXaMs3gkLK)aiCFQdP(DoY~$ zoky8;ibv-b*0?$!?>*M8qV;ms70xf$QtTdc-4gDq_)eM@qP|tbdS&{g#%1ON;Md1 zibv}QtzRCj*?9Jhwic?eEzBvbA7&{z^vnm6X!zob27x1Qq=i5N zRq~qBhi6_UF>1*$>2dh`aTXFG^EQ{J?`;EtD%_uje$+eXTP?q4Uby}g3ke+EBW)6> zlGhXxo=2I493!iNvV|&~A<1i(_Vj)pi6eo2COvY~Dn36^hz5Ly0_}UFn!_Opndx~R zNT5nylS=K(!yR;w+&e6ZEy`XPXCZ;}Op`_eRq~oVc&=^|JAZ#)dPKeYqJ;#`CXf~a z2~^2z^5A*DN#t>I1~?wyx9n~q5i)ymY5GW{J3W<jRyK*;4W>ws5*t?ekieBRr0F~vAW$W*DIUC9XA;yRu!o<^FRQvbDfWof3)Si% z5&9YZn>$nN{-HJq)6Cs=aB`OoI+31gLV4OSOBpoRK*pL&a?(rznR+6gXz*DwiOMzWI;Y z>xL`~lU4>nv`$@38=>+%w2JS`d4PUl2#UwEaqoCx*CFIMZN2$!MyUME%6kF9=~nQ) zbq4Kucm%3A4`x5L=06B7Kb$7g56Ttq5$6zk9(*A~We{7bT)C;sgx>pM=D7fsF0bfk zc=+Wn>eLTm z`Tc7SYL#x!<()hthB#4s#|Tr4{d7R)qRK zC;FKu{Na6Ze>2i1fhu*azB6hPc)}kN_|yt%^Gv`{LOn4Vjk z-@$^jm;QsGbYnuk)8x`ZWOvW_rSsd9^xICXlKXc_<-PNjHG({tKw5~&?srVK^!+>u z_XTI1s!}Nuf;|4YQz;s0TC;S&WAYt+djR(#%YDxjcHSKw0YM&2AWfZydv^3schwKz zerkNvI|70{c>gxiLfq?q$7BwD#{_qI%YDHV58ewN0YM&2AT30fXViC0UZHPV;C^Gd zFPJ>MeaNoge-Pxs1kysxouN)1UPxyZ<9=hgFPQG@?L&6`{(~S7CXlAIg728%eq;Gw z8Qs@=@L zj;(z2$xWZIga}Kx`GK?$%jtU=>~S}JyGFlJ#knTmd?F7nC1D8>mLLx%kQU;xQ|db= zg?Duh=r^iZrOzhg(jJx&VF~hJ0%=(X<$4L%LH(u{tK{x+iU-%)u!IOpkOvb;)9N7A zJx;5XPYVU~u5?z(edy%Dtxs4&geAy>38aNMf7c-C@ofLklQQid5Xrhb2TZd6do%R%PUK-be_UR(TCth!U#oifz=7WR$DCUU}uW zE70#h2=ZV;mv;4TMm&8(i1VXU_WG8tAN-51ciuaZlvY_FI3DyCCDQbb6xEi90DTKW z*K=0s_JiL5jesBzCXg25h-wo>HX5Jk_KH=y9praZBOu6w38dw>Ipp&X`kt4i+g(=a z_MG2$j({K!CXn{}DDH7A-G8u3_e=a1b_4`@FoCqub6UDrW0mfagZ=)4aN~ir5RbTH zhBxW-Y~7#pef7wK(=7tR%@3rhQFq5aRT?l<+g4(f3ttMvGj>s8Yxk}Hp^bH{L`mz3rVE^D ztB%_J``r_hUA*bMweqN)uio1{PS>&Rew}X zwG#q4V*2Eq=e+ekefi|8oH2_Q&2_SsOSPMR!n+N7+F%9+uBYX_^l9ncdWWqK!4_bV=)Y&)1#J zA0M?hch4_Xn!tRb9y7=P_H|fP$0|0gp+WSxHQ(9$`%(MPamqu})PMB+ZC}q36|G8j zTUfy=9VbqO4C1b@e`xyKlG@gcUX2VQX2^W!qY^20(TDTO5NeusAyHbztS)K|yWPP; z6{Z!Yv=Dz*zO--9_~F)XZ@d@9ztn7W)SlJ4a7=uS#m=zCN9}WM3QLb>eUI8D-YY=m zYJBe4W_eP_SubxH9+myOMb6NuqxQ`u_Zuptg*clSv)BG?)<$KMhwH#tOKLnzX7`tMjQ?lPtyV@${p=lxh z9&xG3;Y-h0yVu@~LKW6K_Q)WP9UQj*l{-_c4!PDh;a`@NKWex6?!lP5hrHoDTk)vf z^4kYxJPy;}d)@m0rB&cYRI_TYO|habj6C>jT%41w>{0vEUyBoH_;N;>O=*rbZ&BJGeQ;n#HeOZU!H88+`rq0 zM2AMP&bcZ_?d^$0rH7_zcl4z{_iarXZ~fJ>cND5HpV=dWh_SNmt+Zpfb?fOZNyB58 zI8*x^wfEQ+G{*u)uS{3`%N(xr#{O6cw5Ci+8~{(8eHNvYesbSW7^ zO$#xh_wfDYyG*f~<%vCrDl8dT-e@aPYyW{k{aRSv9;q1MU!pD?wNqwPjVbM0?o6Z> zZr#MH(qrkHN9|f~RHoGZuEZeU>I03ef~#u<9y_zl`ROAnqj3)zDx_(hp+x%r!5_A< zS~n_b5YPOx)OnrysQwEo8?+EJr=;z_|JPpD;ix-F!78249NLUfO*`1#*L-6qYwX7R z14#Vy!BXeyqNDbUcPkG~3o*^QYj5g_XRSZxUQa?*a2d-W3S5}(Tbr2O8uV57z>$O% zPB-e8d>g9Cu;*x-Vt;u15qbR~eUInlvg(vp*5eNze0)nGtIQjn4I;VC3MV)9QJXI- zLeoNw{j0>mpFXZ=ks*iijAS%%=#wEp5>|Gx|EJLMf zA)5T;Kk#C;+SZ|ijRL5`T*I;;#NxUu_TCgZ0!yCiAxp`vmyXHUPVBhCxk1-^+?dxb zLtnp@F<$xvxk?^{cq z-^$Rp8s}GzF^RK8G;jTQpy92822rHvQYT0Abo)ZlN-;=NTXLXDvuA(q607@aIQxq{(LZo)_IHxds%s0EIN5up+n0S6VoYKk5sSO@5BxpNB$iZI z;(Y#My1lV!`52^y_@nnPP2;u=51j3`#qi)zwSFyKw$w<|*eAWh{s{|413HYCx%4%`+GS#prchOG(bRclVxaj8wG0mq z)u0vWs^0~gTDViqn=GC=F)%gnLz2*{_(^X#HJ2%wbH|ftQfklt5JAlMU8Ufr-ss=O~z!1{jS|U0S zvF7RZ2T+BfGKt=2#y0)t-id+luhxlL;w*LwElRf=uPq|)t3$%XNlIxRsR>bG-vj%f z%QZRh{<(jANPJ6UhHsap+gsf+gQkTjOGH%8$$|SS-}a#j<7CD>s?Cc{OO78N*g@mO zrNb9FyC5{P1$Gv6{ZE7xd^3O=OC$v)|OHB*$ z2@#w3jtLBU{k14mVVumEmuuFb>GJqqfv0Gk_)M*Z&e?YKM$M}GWTJo4HBC=Uhce5-RzAlJK< z4dRPD3!KJ9sYYG6TgFM#G(A9VoQ5q7|&tvE`U&5XFu!+h@JjEzoO09)q~j zWPvl0TDX~g)%;V_^p#^G&Q0qU*cX?_LKUW)nY#BZd1ddLPd*fAcfPrW?oX7Q?+l-L z%zo#^JV7ykVB5JSPY$P6x?T%|VEWZj$K-qvX(0xV+_3M*d-4Zv{qdwEv})(Yc}~j6 zWA^vi^2C_L^F(YWqWmS3C`#|zZKy-f&v)mFL7JXHep#YvmlJoAHoLP_?ZKgHm-m>Q zJ0nf+NBwYm-}~1;O`5!jRvf$yX7oBF>{sB8G`Svtv=GPkoND~*td&XhOizYNt9YeA ztW1+D1tu|j$;iFGmRoqRX^$zE(`v5Mwp5xuxmXTa`Z~~c{~|eJwltsX%)FUucgVr( z3hfi`oUIuE7U+e?`=y{We}x$$Rb@+1}9Imx=wW3F@ci8T8{J5zmqcj=EGl!TIrWn%(P0X<4IA(_ZI0Q_93#FPGqS`Cppt8&HObQrC9) z))X6QeQU3Zs(35j`8?k-+a921jYl3nW|w`xR7^#Y;B2CHMXV@A#LiRUqJL&K5y;g#V^*wj^ev2A!T~2-~>Ek!!omRz; z*|%G(vCsM@$Lwsy9*AkWI^KEofn)ZD7kDirfBT)jSDxr)UGDr(()j`L&h$Uh>`q10 zxP;>&{DouQ7#i>c>OJ9kYw+*{=gE<&cH-a)F(pPMIG??gYQH^75z7ar+SQ(9qW1Ky zzJIb$OIpxlj1{cXew^nSMBRy-eNA`2mQ?7_XoGlrT!QoF%2fN|Q_4fr)H3AV<(pL^ zZ&JSZCR(TpjzRc$W=xQg!gF|)jpA@_Lkn%A|3-P5$^qrhh zHSopoC`oA5lkF3n{}oELx4m61i1>?$uCG=NTpnc-eW>33Kzr!l`l@UU(o}YxjlQ9M z>IE+Msb_d_sJeelE2&g#k)}8AsqD7c&^!=Tpo%24Y9iJ70l%f#m#NO1#Bw4AEomOu zTEQgx)J||#{g7g>tXnn)Y1+#fy~Wq)&rX5n?Ftzl9IC4CrO1{6X<7qF+Ta^suw&q- zY(*rYRX55fI0sIp*omXc#F#|A>YII+st*i&vhs9P)cpz0%H$Ng{wme_Xqx?+#HGk~ zg+>|ucKUW->=CG3Ae)866>7T*rKi~A-L^~9w0=dz=>PQy{BwUc3so2@j1#@xKWwM3 z>_5W;cMh$KDoZU~(_JZcZnuTgA$jzVcxTd<6noG6C8^f#CZg7@;eq}~Orq6Y3C_O6 z6uag=)jn!kh;MFg_Vt}PFi^JeXHlraIGHh@_w7bstFn^=rM}$eYnm4Cy#98I{pohq ziatF(#lHQsn%&WU64{~(kurI^@6&>l0-GA#GKd^sQk>SO*p2ooLeoNQ&%fQb?x`_> zkz!g@uu6xWLzO`kxH;WdKW@y2gZ@?kp-rx-N65qU&VmEz^djsDGTYQUe zPYT@s<-UVRe7if|8BFQccePsO*0c~?_igsIeQX@^i>N%%hn;iJL z>#Sx-a1S?@JZ@31#)PJYI6-~wS|Tp=eytg*f^##2xWDO6-_6V81Ai50BUcS{czZ95 zcS=y{n?9phP|Wk(+~`XlI3{o+&oqP3DSEzH(HNwKSXg?8uTtevfu+ZmNP=^URja4Q zJ9Fu|+WV`5iEd?f_#Q1iD)9I}Ch_%@cxMTfcHc~sragBPxB6CA8W@HK^Zy{^u0? z_lv4O=k}5N^Sh~^Z})qO-H!Tssvm2%__jCh6j<2leuH?Ycf3>kvlRQUM70K>Y3iev zZ1$bK+$oT!eW5_GN{5i+ltJ9xXQ!{i@4W)WYTQghg2yORPNdkq-7$)$>5Ty*{`#|5 zV0GD>awMZw7;{WFA(l|gfBU6*VCa#`0d#NFD&FaIE5*Ln`2L`nw|IM#@6faL0xf&j zGYF=+hda5bU<}gqX7HS?zNlWc0&n{oNkXd|c) z)?|q2_hQjN`(N7!P=%qwI0^CMqAk8+@u!ng9vK*Txoo_%;DuD%{z=#VhMBb-m( zy^lgQxXn)AnW^6;O=|L-LF{-q-g(kawbx8naniI9S03BxOC9=MlFxcBfU4kB$RH~8 z+Uy%gHTGh^F@XZbbHDuAlsRM39(++fBg-|TO<9ela;N1mdS+@y;$fnc{FClNREABKof{nlyn3R0XGk_7kGl zi<^93e6`J&Mxlx$j|taP?U6opUp4Z+SC+A|v>u?+YSf(FzOTP%-t@~GCNYcXJ71;R zU%PSAv=AeRxRBp&dX5NGVVumEzf)kd??%39QNy1b6KF{}IK4`m-F~bJl@19L&vi?4 z%T>V+yL~g0N=EhnYl1=iMrqZ$D4k~1*QABGhlsZON=Cg-1ge5lLHp4;6D79z9!WSI z^=Gw#fzPS5+fUMcFR1(KkjQu}NOSApe?S84I+1$c;~LRY4(1%Txpv2 zeh`uShow=~{~Q@WRd6a~5ErxU@~u5x%<6rvUEng+?b+|9+4-iZx@|jYvh|thi+8GT zO|w5;TZqb46cH2CidhwYG>JXbuGE;8W*=Fj>Y%2Dxbwd)zHT&f{rUG!fnb$zW6Lqm zAe#QV)3DQd?2*_Atd&A#tsMYSvx2%bCZkT9X=(L%JpvBWo`doSz3j<=23b_41; zTm6z|kK3+#PE89j=DjVx=)9e*q}cldsKObx8S`&WZucd09b*-|^J>T%0IxIf7=;PF z9ze6ZZ`b&abscZj$o6!S@AY`+6Poug99T@MG=ZxLLPQ_j;VWp3wC;3UX%K5^?DI6O zU)-}=d1#v6uBo`g_jBoiR+~kqlY&(`eK=GZ#LDj%__hunX$_mP${;#Sj(1{m9kUAz zS00)c;>>d!eb>GoWEE=pQ4*?f{ld(T6{U9i*5sXRt@?1=!Qd4Zojy$H)fOSz)nDrS z`q3%Y{k>E7At83gJ8ftkru{fIdeyWLn*v*XkH$^10_D#fL=~>XnECO3uN}U^UB+0i z-F`J>rHJpVXDpmnylN!GvMsB9x1Jqol{vC9YV!qJlPN^1l_kA=W&+oogjmyehcCU> zcq?COH-iu~|9F#Dhb|?m`G@wSR`m1jz6SS9wwx2&e8DQ6J~|%kN9F3&9N%Z}j<g%4G@%4O!q*Wd5(6)iQ;dT_z% zkaaknK1^^a;WarS+HOwp?H|y~I#bJBxm!~(!P!rz;q9HR=Fys_b%xFF`R1(|WUVZ5 zG743=TE`w4M2+D)d=sf0^d!+W6_dZ>ATwdR1>{5W{G<(5)S5 zc7e&tL(@WxTmG(ZY1`V?gpmy`RN+0Y#|FG+*_PHUR~AdN z{pZx`AotE{1+qsHokAkoMcuydWozu{1gB+vI?G_AsY04oQpFx$xr^^c)fqV4Anv9W z&vET39s^98RtG!p_N|(JI_i&N1Fc{c_m-TS9FL4pwSFVccYVQzsI+y%4dTZa5}cyF z)9klvDMHgi^l7r&_i^ouQMJePu~3Ei%pMs;w@26ba`w!d^yZm~R_BQcj+I8^==+cG7j2NHV!4HKFU^*~kd zXi2S$LXDChNZ`IDO^14*N{`z(R9PeRelHylHHL#w3H}9Ddc2c$Lhp2ALert~K$RZv zWS!7^{Fu;ms0XU_I3eo%J@00|~v7hIA-_D*diR)(O3a$b_atJy50J;K(|m*ISv;bf^ca z^jis8C-jOr6Pgb7K$U(UBkP1-V`oCsp&qExZwzFe&`(d8&~&H=s`Q%=Sts;UASN^& z>VYb~n?LJ>eg?&arb9hYrQb2gl#smv5*$Lk2B7Is4^-)W^Xw6pkRC|r=Z;KhI@AMI zdjEf>g!DjyOAOD+nb35o2debG`AiAvfdrR)o?$bg=}-?;>D~O964C<+uE9KCWa)y$X`F%Uv*DnYw~?lWoDnez`+VF^S=`h z6-<+9!YcF&2^E{k)J5X6Z&ivS9U3ZB>Ga7u@$uFS4^4-9pi1X6dt^>zJDKK{KD~0o zM98WEo5`3Xv5Zc5{PTX5x|$9R6{;|AvPPVv6CNKNqdYVn>VYcE^9-Wp*p60@of{I5 z-6&%1IuPqjqto#Z^eG)P{zR;^idGHQ$CZvb+b+(TxH;8+{tsTQJw2+U_W3k#T+UX=hRx8YF8RsCZKh{<_o9_%#L-|6-l$-`!twnNnek6^z^Ly#pvr1f&6jK zOK+#z-J6*q!4T4W+ao(#+3#DnXGu1bxOzR-=}B#3|2!rw#PctAwCq*I_l~?;#6s2H zA7Y)$t5fZ&pOg-Y`I{7~T%R=Evz)%PvFF=Z=kC&J_E%|UiegF&kxpN5X%OEeu@Qa2 z1&IPzW1T~kAJ2(0LHW^XNJs1L>uVb>%v01tRh7JPP7>v2_4>iYsOLIb)y`IE{88be zR?m-P9h+jic7+*sj1zrbh0I z*%a&iLp!j)tshM6d!eH>_Lc38oP0&Cm!jgFHXG>8`;;;19LnunDwO}jKQ9$jqh1)_(K;2KC-IYOMJ!a6n;7eiqBg4H zd%?uHS2|i_K3&?F0&SgrI?lOkTdLiwaM_q+@o~RM4Qd}>AwRS1 zuA`VAN{iWZh1x4a1tBzv?NoL*PqgLKLKS_h8k=iT9ER61``}In8fSU%SYp=>!^TuO2z@S;L~# zwxjCOf;eaTrBr**reLDtAgbpp_9iA$*&X{voa6kQYX808R3S~f4Tp8Kn)RO5pma`? zXps;n$0dIqGHE(DYC=b=z~fPkC;nB$LKWt@nO2=+J6birIn;RZ$3?8zxl~H%iOI%Q zW+^EZOQEGVJErd9QZiva*N=^jH=Z$xL;g6Y>)}-U(iD@XGyAE2{1G)ev0Oo_=b*yU zhaseMAp3W;E)zpsG<7@iwY52b)2C=C;D!X?oJ-??g)pJx`?H23Q$em`NZy!voqn0}DgE|erqLvzoIz&|3n`*z` zwp0w#bRGc3V{7{=4Hr>7P*uBitdn#*)t+7^m>5az)#E2V*fXBmDQKE{r_%-674}OoQM!9atM>dy_Y|vO60?ZN^GT}x5D`cV zQD}Qd>$hDKc0ciM5errK)sA)MeNQdwSHZ+%T{>D{`nxu+^hi;IxLGUKIYup9XCjd1 zaU%ay^R;66UUCGzlfSK1!|458#>nd!+m4>wY_zqwN@t5k{O>l?Ik&>pCg z-w-Chisxe@ChDm#5WBSD;m^2lz3Am{jPv4=@%I?{C4r2XXZ%txx>23+lHhnCZF->U z*cL@_`eaH7B$|Kovh?7TM%wTYsM@qk5#K!BGIPR@#KzGRrAPiIO`?%DJy6y9?Fo|T zcDZ%tgdd6e-%XOl=Z&MHkv2V0)pNKC)uAfwGAH~y^ii-?~O4ZF-<;(-q}W>3q-32|p5_?Nc61AZ>b}N{8f+K7F!CXuozJ_47i- zwDj=nwggo=Mc;DzhZ2OT77huWZo}pd_EMK=GajhYC8P5B=R*lER7mLjuXujAS4x;R zJy4}f_?*}wp@ipwgf7ReW5;-M0FPUxPRrs;65}q}pe4Y`K z;QE2I>4B=7FRM^-P0bpyJbjq-;Cha<>4B=Hr&Or8#mO4+Zu(H^!R-~&rU$C>cUK&$CA85ORNxwCRB=ojyD+$r_HD79*C&gF4k7m+NJ|et%_d}NN0m;|q!9x`3Bp1NozmP7B5iu0 zDx+kCAv_Nxbcx~q9BJv{5vbB7eC?M*LkYi*2NJsE^SA_Q(*sqyrdI4cGL-Nn168^m{IdGkP{Q*-Lbs?q-bLEb}YU34Jha-Z^Ri=bm zxpVI;=bv;f=N~{D9s*VKuh2Ri5nMme&mhz~oO@q6kEUy`A4nU7K-J)nX&sITuIHH& zY8}qKuUrqHYp&-=n;xi&n@(#>L{vIIICDa+!@2jB>l$>;?G@6d2db9loh&`L-OZFx z>u~OU<@yX=bGwVQ>4B;d-IWLTADI$r9nQV4TxX(d?mv(=Jy5k_wDRCyEmK0R!@2jB zD{OSl1k$Dls`P!iKhGMWL&*I((xwNhbo%hPBx{6DX&#p#ZF-<8BcD5Dk7m;zR_S(-=L6`MIiXuro_`>15~$Mc`Q2@!vq}Q5b|H6dscR3zNn*^%#$b$1DYlI#@aDE^yM8zhLTR)9o z(|AUaLV+gTXE*~-(>Ept&5gb@eui8xnYV3D^n#aWIM1F-v3s7JL-8p1X$NcO@*_YwHr1l~!AFYaz*jp|y!m-Y`P3pwO1Df5&xTPTf4V3^Bp}~(ID;`HQkv(yK$#pTM&&jogwtU zrtqfLrP%CY5+xoUU@dI5p-KKqUnkA%KGWIVEY&WbI6eB>yqPjo74uDt z9{$oyXJXe>d(8LKD6Kx}IMDjv4?i|edFE^qs(zg`)0x>j)!rE!OswtooHgt8+@=e9 z|CD4ko#{B0X#eiU8HNXX3t}mFS)XgMRVM)X^6ynzxx?06| z+_SHJ?|TABd`D$>^_MBOMP(OhAr5!wYLzFV&D?tesKOF%5}S!>s8!+BW+u`>v!` zZ_adHj8C=8j5k$C)0u$jL#_GaUu{<7@kE1|xnQO=-b<$Xfi#_L)N7E{DWz&+_pd%nLKW5z zljxl1S*z-uJO@5$cQZ-m6t&3QM%_DWh7zP&3sJM^GuGAm1rK)3aXSf#?H6Y_M-HXgcb$AK$YaKHy{-O% zl?R4IT}?vOTg7KObLh?cv1{BK<%OzVLSO58(Gmx~sCzN#NYqT{_juZ8x4^CEt_o@T zD&oB7tS^>K+287|9}VJg&zVmDskDE4o!b(59wl21u$C@evhV2TuaZ#p=$M(#q(SuV z{HJbyc*LqR1FeF4-${JC;1@|pXU}v_(VOr&Dw`^#DO8U>Z?#)owb8U6KQ;)?%`&ai zGV=t<>jm*^j)L}EV)D-qs%?3n5kOvb;(?e{oeWZ&e-x zHgt)EAesrJ=^WuW84v$2yDCS?UtHCtF3Mwc7dt#5!V*L?fi!(%>f_r|i7rqDJ07KK6bJid|8#_pX3DBO80KXIE@z@4aIOY-fSR-m&*n zL1E*?#x98c#NPERXSuWMdB10po#mN@uRr0heUZ;QpCmJx%slf<0&j11eDAL3gaa{G zj?RGnCg|h-z)k#jyz;7gKY!!@@%sP&KO#XVFil7w$JfmJ2hO${TMSjL9)`z*#zXy6 zLnJ7iz%(Iw9bYUQ(l^m+Y%x?h{(_t$IFAyy$E1o#&sP%2|9sk_+rS^1Nzs@*Mo<##ZdVK@Yzt~JW?b`%7k%*nAWeA{-tq#t&A;( z>Pr_s`)ZU&iUdiSFs?MF!K07yHS+-Ynz^yXQ0*VfXDy9-l_Eh>CX5<`X?RCG+7Hmcwiv3n zm4@gZycJE6ASn|@i;8LZeiYOv?lCNAw$<2Ts5)*Qtb6e1M~VbVnSjy+0@H*XgZqMe zEQfEC8(R$3p0S1pk5i{ekdz7I35RK?2PaI%7DFZW+cl^?v{y-f{~wW{a01iLYsJr; ziu2$qaeexaZk{S4LE!|Zon_8Tkc#r)DpAg*Zr4v0k)Ut_)6TlfYa$c%imOC@U7C)j zibzm6fob?+h;a{+!s%-=aer`?xbME^uahbwLE!|Z;jQwHubJ#47raM8cw`xX5*UXN2l821OJiGJ_#OBI`;CKLTczF*N}<@aN12;)A-wA80& zqQA@cEBevAT}cgLv{#sx#s*aM+xdRQ2!gkdsUeJZ7t_)hhl=qB->(?g@OC~mgz@~q zv^4TEiE$L)FCL$zhA^IRnC7L;|BN*axRo(xd*IudFuP>Tn5J!|rR5`mb&tpTQG53Dj~b>sD{$^S_NVgk1Yn3g@T%9x#w zSNLrB|0Du2fm;Ji%N|%|%(C%+5mk`aIztq&%|b>pKVOv~qiRY~P6@_phJ?k67=CPex3(H*8`53CY3 zoM%%dBLc;FU_#VmK1#*3?15F{zT;V8$q1(hCdB>7N86Z|J+Ml&A3VD)8R7K6glJcI zYzfn{2Udx8kZ0*7Bb*+X5bYz6En!;rz$($6^K8Rpgwq2PqMhf_C``*9SS6l5C2vni zPB=YMB6u_k)3S%y!d2q=nv^xk@A(Nv-383JKQJMl)cia!Eqh><=qK><_%TBCA9#6S zTK2#yBcC>2&zk%(LX6LNy~4EYfmKFcFvMiw{`fIMj5GQDfoa(TtBm|+h+n~d{$qp~ zFZ25x)3OIv8F|{goCp0NA;$f@y~4EYfmKGnxzP^(7$M>pyxqmL?15EA-h8~mpC3O) zh&T*?eqdVmz$zpE-*^uGD3KH$!nEvxV@P7Z{CWOkgg8Rp>&LY0fmP!A@T|!nBgB>F zqZdre9$1xB&MkkC5H*I6!Z0m+V3nxhyr1}EgsAy^G>K{11FOV+$FnAXj1YG)9~EO- z_P{F9e(=1$SK{|^B(qnyArA!8bj*GG>%=gqc?j9;$OGjqX%=ToPG01r-Jnhg{Oi54^Chj-bdz`AB=@L3X$=vua9xOXM*Rqr-A?vPUv~PaD@Cfd@;l^ zKlm2nqax#%Z_zVzLB;d*Q$c_SCooOO>MO?lU>TTW5gET+rDx`X2VZZH3IaUz6$*~G zhVb8nwCQcc$dx%u$GpU#`-7PT=8OZ{qO#e+cm41g7DuZASn`#^1!rSg1QGUbCDO!_p7gC z0uNsPDH0?_0z5c@X}#{M&@u+{x{KFG>Fcq;gV*B}36dfK9-P25d|wUb=DElAbTw7H z&P!ic1|Ix=Opzcd65zoJOzUll?!nspxOKfCncq4Q)G` z9~93It`g5B=Xw*k=lTEt9|Am_D_`{1t_BcC0*z;FxO0BcP>Cn9tKa`aIL-sp`nA&M z2l=%U&vU+C(NEylEfs{LJTR@7x$eQsT=Yx$eno$Wmwze<@Zbcdr9K=J{VT2#{We~Y zQ$c_SCom0fp>^~{O&M!4(NE+m(f{Q4V=4&n-~^_nJ~b2lU9J-SXx^@*f&dRrV49Fb z$JpS0w?r!X?OY|s1H64q1pywMz%+ap*)hi1Hg7f+;}5P9;~L)1r-A?vPGCA|fh@tgVtw8bpoYBI&RS+nFya2+01_3CR95X7wHW)#KvuJ1P6qp!IxFCxKN)Bpu4Uw#XM11Z02m zo<4!>Pa`|Qv0ptd4!@JKKMh*X7j+U?Wkk~BQXnAvQzsxl(a5rJ>{pMA!|$Z*PlI;m zK=O=6Blp9hG9u}5DG-qT$ul#_I(XvX{fehrQue1o>-nNi0;}}ja7QI4Ap4VNmF zr;+snN5xfoB;9d@nAY<}odi}Hv3KK0WWtdt8_3Tb6MEbSJa~Cv+L>Fc6If+Lii|7j zLO_p_p9kb}8d*q={pyh^_|0nxruBSLCxKN)EX$}FG6C72jC(*Xr;$zN*smU8gWtTi zV_MG_brM)*#N>?nDiaGJ+l6~{fy^^Z=#fJ3;CC&i3Bd$b8L>s$(vESr`<67x?ub2>5n#bEQ?Yve=nX+)UTqUkga>7yO zdj2lnuPA>WZ^yK=%#$*H!Go(rIVUF^HBrw)#`_iZn8({O?X0^=nakk8RieHoCm{Qi z*F;hTGO+P}#r??R?U>f{MV$mziTf@&ard$j<%H}{Bg-3(imOCR#N+LlhG#7zuu8Na z$%%JHn@Flc{{$1FMdk5!Ov5@aL|~O@2a^+!{mENVp3!Jz-NSism1yUAb|a<<&lhzP zSS8x?5R^0Gh_1QX&3$Md8x4e@qFV3l|-B_|;JQ-5-D4@`*XZc_GVoSw<0XMZ{g ztP;=jx$AsuP@mhjuSnGob ztP=gJ-`*NU%j!}}HE9sV@Hv^2&s*2IAaSBa5OaspQB=^lKg9^S8>Sp_tI z4q{pws~Kzi94aFh%Xkj{Pr{UJzd-ZnIi`7Olfbu=513&7gQX!6`nNJN7N6svhOE|V z?X)S+1{uHkx4roPb%LZ!L`a074UaW*X4C!9+u$Bz3-`!0!KQR;I9KvBJW?hiBtp=J z$Dp2x)E|0H+(T^P9;C5N*|lq)?jinfc%)3gRX~LJZFuB@9$yImCw8QYIoaOo-oxhd0D!PQVC~dx$OkJUl!?D8y?vYw_$%? zbk{w^7VdE@F;>aAVUg}3{%?4sOhib8pdIItb^x0>Ad&L(5L>uM2Q5|^xnYU!A^z_; zj}(ari4e5m0kc=^K0FV(huFeB*8Uc&^t-%V_YnU#JW?hiBtp=J$8oqf%8WW-;vQlP z_aOV=S``o1J;eVFkCX|hSBMb5lZYOp4#aQ|u|=Fm#L!i`hxq^Z2;&F^!H_ca@)q*up({eGTcjS@#hC{~lr7AA%6HL0I4(Yz6a#+(T^P9{j#@+Z&;K zi2r|&Fz#SM2-+aVz#5Px&;#HeVhi`+?MKhhZMui}|Mv)^y%L0=4dN-ZiQce|kb8(N z+=I7+`@U?~J;eXNM;I-tAOvj?IiPJn0drs6Lu}z5yqzz8b%*XD{{KC~crpk=&<5dn z;^-b?i+-)(xs;*!PTfQN|9b>n1w@G7P9lcq0qEBXsqFBDO>tB|LPTho5Wk&gZWY%` zY~knesS$i_(@`Gc|KB4bBtp;z0cCC#WiGbp*9yJ|DQb!M|Mv*ER)`S44Fc+}D(bG- z!aWAScP&M27ythr5g`$RHi)!v|2=|;DlZSQg?rqMwL9-~@&E4;5fUM2gBY;CjXLj| z(UyoU+@s+WJ3I%C)<^vRdqjjp2-+ZE9hsU1#t8g8#1`(c^IyBO-4*};9uXlCf;I?f z+f~uFi!I!vceXhF34r~+M?^@3pbY|^YN~ifi7kA;Bv+jCIVk@BJp$?#BE;_`LOg55 z7I7Zpc`p9{J;FE-LGYvEzYT(Cyof%7*dnfv=$DB9e~&QALlFF`^WO&XFO>N*c!vTn zbFqbc80BpAuf+eqM~E6@5P~*{nNWB8UNib|Vhi`+^;Pr}#s9xY825)D1Z@zDVD#7- zBB}g5#1`(s?>o`o761PpVcfxj5VS!+4_Os`YO#fT@b*LW+r|ICM;PsuAOvj?(9^ey zv4PmaJ$O4P#vkJU-y@86R}g|W2pF+g#TZ9y;U2s_7vm`L|L+mT^Ft7VHVAkQ@@JG@ z9%74rtsLVs?Dsvwcn*q@9vqd2qk)6L|C@=;Q=e@p8^ke2ud_ zxZn2)F-qa*A?W0Uq=Nh7*G0xy?Z*f)O3^(WbaD@@;`dzv`#R_S!Tr8Zh*1jn5Oi_^ zs|d6o+3o9fj~^t^s7TPsJ;YdsA4#L_Hf8f%qYw9Egczk@I=Kf{)j0`oa{X+02*2+W zVwA!?1f86~Dr3yCQNLEHA&gOxpp$!uu?#jmO_9(&Fo8!ef==#%RZFMZ_4b_Cw-gE80~2DD!U;hq_rNL=2;)J=b1+3h_mBuY z#&OV2k3jy5yNj`mI1=$Z7k*BH|42rNQ3|G=M4%wBieDemFX89G{hS2SMBx7>@C+7zn{Kje zrSI2J@#m{J58?NHfwb#-=wDH-IIb?sk~Ubo0QcRf3C1{6+(pgO z2Wyq#|K7uY1)|A==8;>TO=Qdd>~5_QHcy)dJ^F5r5rpX7&&nO7oo@hNvyWd1MAXG$ zNABO9&U^=ajrNB3$Yy|XMtVnkF2*=t-p|!K!vDvg2?t{I>Hi{sPB)d+_*e*{I7#EB zb8qHq*Fg2HfW^Om?RlC7ydUYU=&9`weXhXR{O3V@t|*D%zl8^;2}umUU3=+<>Fmkb zt~w!9f6SY!6Q%Qp`^!YzOT&&_eK?)@Uw$5q_lwU7(@@uEHj7Mzqv|y1K#c3P5`N-n zjZsnc&mICmw}-iqudAUv%5OUvSvtc2wxBDI zq$Uykw-^awnvkCloQh0awlkx@X3{-`YVn|8P3vY;x?Wo&`4MtpbOGNKbDQ^vc!s2 z_@3Y%!jF)7o3}>(xvvdl*WJ}TdxEtYFj8E!P#$OMSK2v(>~go7AH7SN)lyC(I&BWt zKKFrA8zs|(_~jqw8$PW$Ta%`sidDEgaB0FDxo0f(ogJN-^%>GhFF`R0;Wrh~6 zoNc|oy>WaC9ZPr6AsWfVEDc7&8_m_#S`^(pvRH+c#x3ZZ!vRH_gZjw!zbHx}hizAeeYUf>3Kj=o)i4Y^QP zBDOsa)_M-JDV@r@j_9*q+ZH*iGi7}%l~=JUS@}E5yz<)Dz9osMEdc+Z>; z(fr}bS>eM5|AA_V*5Q~(lx6o^l{&Bh1W{xe%i5 zdumhK7d9dVVieDbq|x@?Ic1}+R#2k5e36OWK>v5grc^8{(}Yx?Qzohptdiag9Y|r4U!Q9{hs8_Bk5x>x{u9GP8s)6sajd!d! zoBX1l4++t3m9Q)J(#C!Tf%im6qlMPP!P+TnCa)n9u^(zXCxRR?GC@Pm;QTX(;jXo| zg1gpLCC-)~RT6Rc-gMv2(H85S>0=}UmjNdP4O#bat%}b4XtiDJskaQgZ^$EpJ$r>{ z{cG5jyX)5b<7-IB{02LGY9_j?9pK%|_?qzFB1VE~s3p1o_Ng)0P0hEjtxgElhZ-ST zE`PgHE|2U-$nF>8eeT_;toF&`tNunpwCLt`g^V{^PC-|F8?2RX1%1@E>!4oEXj&qw zcw!0l<4r{(Ruu}-jzN$0&Ka2|*G8rAbdG@D zi(eo35)JfTxJpEB^xw{yOz#d=BNy*(s_yAiSR#7Bvwa?nWpg`X$byExPr53RZ{TV3 z4rbk5RpQLCA0cyRH}xCdpqaX4O(BWcaWGiB))~GMv)bqZ2pYcH7*X+m088AWLMgGb?x;(`2^G-uigloZM~l@ zNEONXhOav*7n`=evn$o zKhBC(_=?Kc>U5p0M=ZyttBdpd#h6OW(;82=D>ZUE#siKhS7sPreS-g|h4B@1M?$*V0TP-n86Rcm6B*ia?Qn{qPw^ z-khtAg|lth(&Dd=yx=PEaT~-hPDC8Bo}I4JfMO<0;A6)$lsOyh+be3SYOb4EA9IQ` zw81!Y5}e0xFwT^T%H=~N`L%-4oiT!RiBt0U9;OKi8yXt<_x7pk=L}hO4}OMRHM9Oa ztvdYvslF?bQ1YAa;{)B)%aLiAsBt`oxUxl%)(7s1JzmTF*HsJB&JBe))AVI<=8dkE zkJ@F_UEM=O0YzQn(Lqc@c}%Vlb!u!kHL+M)-9yCm7L9?stDjxjyLzb$(W1Z{pPf4f zsP7hEp{M?wr>z_V$3DcEaTR{@QFXj=HL~2gk?Qmc+hyYXJk1C0!HS1vnvk)%u0{@m z`+R8_WSF|B#C5}01iqHm@VM_H`$)BG^=%U2v1y)GZX#T(x}kb2A!v9Td&u!Rqqj^@ z>+Kp%u?m+5_edfVd;S#px6x83i!Vv_ru7F>boX&*{EwlT9vkT z<*KJK%Pt5Uc_C!V^;eOm(M-+rPg#k`dl1@Mcz*o*n@kh(y4K6cNO(rgzV6PFsi2mK zh_LV@z&^>-{+QUm#ujjR^eKL>lm~? z{XC+=q0it3EB0KYQR4b=LPVyZ&rtKQ@BBUK)q^j)NW_y;!P*WVyK*McHCo$pTK+oA z_ZCoFMmJ|zg=1E7c^v9jGwSaiiPr9rt?n9C6Gy@c-oN6JLa2#VGW)HJ*x~rOU-Xs^R@5KunNcCF1<>LW-n1#(9Wi7oJ|lXb5)5bFh8m!;%WV~QHyWBkFI-PCj7yJkD~&- z9pwR|A|A7b6^EJ9@^MrQywi!fs>Bu5%fm_RJh;xcN&JWC_xEHX!;E09_Fp#TR9VAA z(1d(gwKVc_jx5%$P##$2TAE2j$M6ikwPw$zx1r3ZjSANG9I+`|M$1>1A5~He`9sMt zpQAxz=rhX%iAWe5to;S!{x`j48m=ys;12)lG;{VT46AUd$yc{={?m2d1iqm4a`a(k zT0rD?g-sb&))7N?M7I6R!CLlZ5DDqVW60%)nS2-Ii=*5B8zd2%dqa)cW>czZj`DEO z@Rt8vhw8lUkx0A2J?N?uXRDWolbBtrapah$E9v9{Vv1Apzt zk>MUI>80Xh7*@Gn=_KM$k959`V4Y$f$Z>C5B3NrO$EMJS@|p9a;&C6NZTA}TI&wpc zjI8jR&Jv+P?A;xX{ozEJCS(o}5k48&z<)b4tio4RKJ&b@2lHwx|#@wQ0t% z%JoVo5m`sSh%7>Su{w3$(th28w6-1LJFG94>d$ZVjy{Tsl_*L$n?;e`9Y1%tE` zt!zrBv#w{pqU?Jg9-*J#mFK-0QF-yy=kageXT&ri?Is=esqQ|IO|f6n38Aulg|7)h z?7dPYS7JNN%KY(d3OhEWF#WqNj6W2cVk%i{aE~t&^>c<1Ea0aD60!c=JS`E< zJlxT<6f_|vfiUMB!EPk(r&xv0oO>h@&pPL2eCjfwS}XRgAAF^d#3@a;uJzY{!<#Ai z??!*k(GGvJD<3NJSa{iNwb=CEMjc!IwK{7*5@wX(+kgYFZSZe5622!4Ukxp{Zj1k; zeDk!~f7z8*wKfAWCfJXyNc-qmG^->Loz~6Mj$ViOOy3BJCS>@*N^H&ENk{+i^kXFt z&(+erhq#Dsqd)eOJ?dR3#crPN;xoFkSt1^cn5)Hqg7M&u4H6BJA|N&cQ4I*JN@zA$ zyZ8mhncZB8o1_Knqs{lr->v|=+$KnynA@i0I=J2c^{gOma2Z$)7`?-vlnI9KFrQM& zE!hKSPCZ()OxMc!y(;R#{)!0FPWsxEh-o_|l|+*b8{4uoc~ALlaW5->t)&l)RrU?mc(wXhb-KA+SL zDtokpPY#Av{x^fPF+CwG?2s$rm90Hn8Z!5&d3a7nql2^;I zp*cI2Va2hvnG3Sz@Knpa&93Boz1=8hhf1Q!wzN&zFu$|M3eh4Gv8rT{*8Z4XS#fEb zM8ns)Mzmt}&)+^eFhE=%rk%@?A4Vg!cSz!mefdJkijl}#gzV}}-ppZO(ao;Lq#tWxG7 zZ+C6&srhpDI9L1iY^-u*r^+?V2B_yI3T-|l=VwKh6>N>pP9gR?ed3t|7G7m}+t8i<8{Rp{S zvjKA(P`d82n%)x8A%Bpj5y;V4>Zm2ocK2=3ChXY#`+k!HiZZOitv2=}B;)uZtVTd? z-{)7Gu%`{@YF|#oDtDSWo&d04{)EeXdXBdGc&ri=#Uu2qUzTDsPtS|0o!2Z8XW)s` zrkh~J~V4u>Bh^?G^e zNA>bis}zV+I)Q0I(zSi4zc=c!S3hQKF;wqw&eT2JYOnB5ksv7(rxZ?L8fGoOS#*!x zW5+OKi=pas6W*%_$G#^jEMnK({F`E7`O3G24Td5`p`om?k6})RM1DIv(2swFIm5a)ze?uU9hB|43H7 zUOg+*F$E$nsa`qg6zUc9iur!^@&}c(UbzxU^-3b(E#0DCIp`GX6%bsdmouoG^~#k< zs#g*bmsGDDbPDwf2)a%!@crsF160m>^@BuQQoVA} z5b+v0QZK=(m3LULJvVyW&7R%%ufH}#?*TMTbJbt}KM?%?{|^Bz5hpNBh}+xAy2tv? zHLdyrpVV#GaSm9j}1~JNQwl|`uL2GKO8h6TLyK}J=V|5z;NF{ z8gocQz5AV6vr=KTqx)r)2t3A-XtLmOcfH;H_tSJ{+!IC(-~EVx(>qQXd0xI(V3djo ztTKKlq(Gd!?5#gP;toz>nD7}lO84k?aJfIG3Bd$b8NU;h>5&W*7c21Z zZO19U4P5GvX+ki8RmSgx6o@B_KItBx=JjNlcXk!f5V0u`xR&7k>g5cyvtEG*_e-H(IaCG# zy>L+zodm8Wc)xl%1MRFOKyW&RdgV|VL~IHKt|fTCdMyFkSxdl!`=wB?94do|O@TNW z+KnAlpC9e{EDZ}>9-_Igv?;l3r#0uw32i&jc{&jD_4y&%;d3^{w@_L$j5!Z=)oc5g zKIz!Le;^a=cUWuJCY?b*TgwUlf8Or$|3jbQX*-s2^DDmsYja8j&xf18%C4Mzr_UTWkrbAt|q+8pnvoJ&pB9OgROr{ChP^l+da66api?g38R^jWTUpMD@EZl9p z?=|Zkcm2%y73J4tGGrclSA`V=m(uFjs?oPt$F+)tt9zj6nWJwUS62|YJTMKh*WWv` z-B*_$n-H6YVO51~AzCqr>E9ibR`MgHSd%VHDW)8|5|cq9aQR~zW&yec=w%)h_MT!7 ze75*15E5KwxK8ZfbXX$FjxhRj3(J1?$FxjfmHr#9Xma9CcfAi6XnE~VF%ehD@c7v7 zAAd~4yfY%OO8*TW$%&>P^gdi*>G^Z&Vj?Jy;Stc|g+HbV!30+6zriCp;d_1xzgFbW zT*a-JSkcAsI6Cc-Kc?Yr(}=(-{Wo|dCrYFprF&fZJHmaP0`ptNl9M+gzvD=TWeRVvtM|QhZNly4R{%*Ebr(u;C!x=_d8rmRg<;jIw-)Vph^lqX;Y!3W zI%u+nl~uQlrmPnY*B-$;GB(~RX2t~G6CsBt7NLhPnAASiN=w8PDCb|E$148}lxadN zZ4*sRdi$zg{VFo7B9ATF_Ls3r&7rQuhu(Kh!y(`2ngSkG!?pE~VwH8(iSx!L0xt`3&W~}6Bey~LaegnA6G*0 zxo7$eKvBDOR=JXVLB+k5#S|l>G?l)vO9l+iIw)uG=9I#lBiJzeBM~reBJf zF%84h1z${q*A7;@=CV?(8obJ)odu#(RafF`^M|HiOO8VHU0XwpgW0 zZC4^B*K^Zt-zn;yGij)w-J&ht1Z8lbpcxZ*Pq5;!U0r%(7OZ-?{=P0ILSro2c%Z-j zS3sf(c`-53RQlOe^~ACzCan7Kvqf7Q0ez85vLCEC^m=VtRB@Ub{BcL!`-d&sAlPs3 z4F$}Yz5{p(4YT}%^`OKKWdxB?FCNquLJwlC2yF?;3%&=$+ zj>IY_*5{RILN;Hwn+9JWr*2(2*@{(@+~CX)$0|iVWj{iW*H24tPZ*^(JQ-%aJKdtK zfP33CFRvLBcux=szF?->%Kqxq3MV9D`EZL?2xc>~T0A70ki*YoO-F7GQ>#_lZ^f#( zFJW3Oc=zXl3bG#|d&Zfm*}t1=E%UcT-2TO)O+Oc_1bBFuF-^$R4}`{+>8mz#yJN+w z&QHR$v*%-#<4s(Nhj+5j{A0VTjfZ@&ZVRwzRsV=p-bUszV*>99+AF(1EpxA>de8oo ziit|?EZV?7;qAsRb4xTK^}F6T4cXjL?U^}~idAhdhiP&5VwFu3WIxC~pHYuCeacj? z(Owdfy_H34{tCW#w=cID)9~bM=t0B2Hdb2{EU04DEe$;0#wyp2x)Kqq+~~!X_0+68 zN~m=jS+v$)W0em+xy_isdm^NC7DgYhsH{fks38%NbuC(;8;s~yx=S?lK?{8|{hrZB zCD|*fSoPDvFl|^Cn^M?K_9LXh>y~uFZyxHSB26UXp|3>?$ZJ!)r@5Ok4d1()QiGba zc&Z1+D=Jof2oKX{)r6z^=H^1Yx|od~ZkJbGPn)adDp<6YCYw@owVN3ecu$19|E(cy z5qIC3Eq8!K94u$ieumti&2wZL)-?QHgZ3%*k2UH@Hx;WU%?Z=AzBVOGEmz{CM_#&e z!UO9)|K94PVixUJ$i+~e{i}AV4n8162KK0e2wBo~+wEOW95|PQ%qNQzSSB^ow!ZfsS-K)}> zrz5D>o1rRJ6`dQVmFR9)7T0xiAtKIEns(<(nytfdSZ!g^l%L^j|H@^?1l|)NHxGNz z5dn{B_uyUJyT~(~QwIWPwz5w2On#tXTSo2>) zTKM=QdZ9&6i8unSM5Wnw<@9DZGo}f-y6e4Z=%ixoijmWY3#g$vnkSF%obH)9%dqbjtbJqzb!#j-b6ry4wkxfnUxH~u zChti{w}$p%*V5k8`z1m(=5v_#`m0@uERxrSD6+(#_TJT%Jsk1Y8V0@lHy`av^B@m1 zCa@nwKio6X;f)5cbr7AvM9XOw&73h#$u%OcM8nFk8%60-zoG1gve$}L{c~Eh^_k<8 zYnk%75WPO9r8m}&WXJzqB@tVoFWMQ192@eQF-=HKw?xyMtmD|tJu|IX)wiTY8}1gT zWcV+i3(?t0n#OnK6O)1YdAD`OQ>&?gX|xds~UP2>td( z`QUqyjq^)1tXTKWO=m2a#Ez%SYsIPx(38mn#OME9iQ5zE(P9(Eu}!ZVTKzUyvsr&;=&#HCFu})8)4?MfDQLztL~$1VWmSHyb zx-iJ1dBHjT_ERAjqJL;z+CO|U3u@B8uIY?L`wjNHH>jW)6W9+{tnYnpx_M*@3!Hx6 zgbB-ai#8F?W3#1@L=!UoT0S}^Y$DrfElaWL71XOqx#N^lxeL1xx$ZtPEonP}%|6vl zBFHTmbHaJNi7aHsG|U_1JYp(Ue;lh*0=`>>RQmiy1d)_})Qh@@tMw=A~3Tg;3JyeH_rwzy;J)vgMQ zo?KfZhBpn@z8wmo!!>R@OAVNP2-U%4&rqR#nld%Ep@!)VRZ-8CdRK?qj3A`uxy8NQ^ zrrE!2r`O7lkcjLsH!-0Fl*cbJO~}Suk4=XLY^3*p8p*KgAjGUYRkbTGH@Xr_MrEb> zZ*QfZ-G)oV__5(yLq3DK)7y+`LflUzn$|{`fttv$N~;ZZH#58$?SU(i`BEDCc6bv? z9!`*mW)mTvoX@TV-t;zOnvj+s($IrpP3Vog6WFIo;o7pS@ZN{NWfi6g$x!=G)7h1C zP0{wL5^;J;xc=P?w=5-GJWADjXIlPOplRHesSK;EJ_d2?qwGh>iWTonBa|#LpVCZ| zh&JHC;Qc;%(v>h{8rC8|e`7kaBwbA5+|w9V`G80LIC#_4Ki)1xvxZ+yJi~2hfvg5AAMQ*ScHKUXiZsxsE>VF`Qu)zH6}`AuD&cp%2DgrcK`TmI!*$qP3iC zSNs=yN%uTtd1om{y&K=9=gRkHScO|0><9VnbGpzTr!%v&ecDKbcGRMM+W;fI$l@-o zkLhSB+I>wf);n)2hE=$&#eRg0d)$W3s#AEw-g}6b2F$%)VTM(>&w%|1$vU+g zJ=LrkYYHo>FmZ9TMH~C4UHMW@?s337YqHm)2llsRrTw!otit^r><6>@lLKhqO&!@L zkFOLHKHZ^S!P>R`SMP>dkyD7bN0yeT#M> zO`MWAUhXpz(!5_I`rp$5Z2P8T6svHL75hOB%gTW?Fkmoy_H~m)bSw|OSLpBd4R+}* z6ZfXg>A80!*s+=ODOTaWI`)J01~Z1y{>4VIGY9)i#KBw^trv_9*DP`E=~sTZ8msV_6Z;YJ zHDWq7)fvym6j~aCiM`e^EyquB%7NALh?S6;WB~0{d^{VvJiQgG@Ms(RK}-F0Cat-C zG<%Y{l09@>m@r6OBjEye~(xt|bRru?j~Dupc3By3VD6qldDUenApZ zFeFUd1@V#*zq`g6`e&F(tI|QN%DK%}titgU><7K@KZ5Cqhke;Y(-Dd2Ju*zY_6qvf zkL73!WMDrIq*XfxuxSl0TCobpdaxfMH^wcbIX$~DzlaACk)cbN7ID|EbS~%`DO%EO z4)q(+o~=Fb)rwU(;)VU7Jn}E0wtyC_{LG9hCMwqt(|Vq>D>r+%M!W_s45ri1HDs&r zx~W)&qjlI1X5zLlr`m1G+AS&|5t*t$h~9g-@1bdB#DB&gER=)WasMp!`VxdB5Z;=q+qtq!~w<@fup z5&A5xH_>g?%FwfKhpAYF=O(ZpyboZ*R@ysV4?oL;krFWrJQ7dalwS8-XBv*p+Da{b z+xQ*-bEJw@cvc4c!TR%}n`pwM3fA%Q!z3c;cBuApsZFU>%1xTnfe1^n9rWXv;@0Uu z4O6iS&qrZDSbu(L6m(HTU z*{HgDMiGfzq9c{6;rh52faTTlZEHd_kEboewX~D`Z)h1q9 zCE{6Um=nGetMn+~;WCSSX7?Jp<5PWgV!fOyR^b_N><6(W&*60ViLUA|2~Vwt7x&^XLB!T1C4ZZL7ZC_s)t{I1d2(K?dEFKJ-Yf{_3@y(Gn3mKTKN&`3ybI z=XJ>gIQSx*77Op8&K_X1VinF|zmLH?$>vSas zt8o4e_9NuX-MX~nl*ww*ai8mABJ@+3rhrHOV+CEZcm6D~khae=PW|mg&0|=FvyiYK zWC-=EMN6)ms5a@BiDKej9*forzBttnqRyCxte3=Ky2dwkRi$NIo zaj{CJ(M4S{=!&11Mt5K8qaHkPf?^fU{=0p$BEdhh9y16eQc zNcvO9mg>3;*%(&g{7vi!-@FegOJfSwQ+J*BmWV_cI~VyBt2|#_%q9D?^rk_y_Y!|~ z|6hd}R^cpG><8nII^}4vwW^xczq&-c+iB4*XSFH$AqIeH$i=zXmv;T5x_a+(1%_2P ze^(~bUC&Fev?;8PsM<&(3c|dR9iD>+%6duJzl0S1Jcw4wUPR3?%Aa8s&RmxKNZFo6 z={xsN)`ni)B%+jf1mMsM%PunOmFV?T&xWG_XFO^LGZ z`8Y@-CO@@kpQhQA2EDzdjBm(#xzdLECd63#KJL%33TLZhKgdrkUXcbyjkR8m93v59 z{jrPI zOT6wH9ZXnXkDiMB7L(9_BEu>ib;N$~M(eA7bW_Xs(YD~p64CpEMUU3ry5kz2;h)L3NER*iz}g!x`(Ov4+LXN;iZmt3Ip5B6eMh2xhpact2dTKwfV8tdOyBA$Ccy}M zMqe}g-`@PpR=;{8 z5iQuZ1TC?Ket{@Xhdfq^xOp{9`vPw* z`|`1{8Pl-lr|A+p{Nyj}Lf@?vt8n~MCMwt5KyO~_&sz0fA`v-{hG{_=;uLGn!e&ep z()(&CrEDnMTW2K2DjdI*3EzEN=(iF>*^GV-B%=MQFfC7(IHgvxLS{_Edu#8nq$4_v zWNEVIqF9Bakuve`kR5bF?h&k8VY>+v`KN?wQ^BJ>WcFhkqP2t9(=3UjSg&(6O<0Aa zkuvdZ* z8-lFJYsNHuyXHj{E#0RlyIgmx6{~RkQYP5h({w<(&a6%LD2Z71I8-|bS$by^Jj|Ge zwc(47)6n?#Z1Rc=R;?P10=dh{#_;wQTSOhM@uOW=z9Mq#n2E-oP(3V41&)RXBbr6D8c=(4Dq}^i1Ve z60x>bsMZs{h%qG2&5UV67EgRaw~X6Kr*CSfVik^G%0!klZ|Q$S>d?GRx=BQw5~>}B zm}RFxH#4RoTjcCZ`s`CBTD5Wy6{~RkQYL&G{zF^N>*rV6zn4V(3Ld>7X8CBEn;Fya zHpH_3(AB}6{M?)LQn3ohFJ? zR^j-iOguPojTY>eR^2&^NyN*!q1vp<@b2iExy_h{cdO5SMI-)tXD#^Bq+%70U&_SS z0d_jnzl_?dehG>Awm(#>2{Fr$UGkVQ4Vi!spVDZ1QMJFHw~AFbekl`bqm%SlP(3xq zltm)^;zBjk->^O^n}-?Ggse$-i@qCOTdmEqt5}8Omoo9XQZ!AIwUxR(|8pxQhC`be z04sPdo%Jwd8rFZ*Po$-64b<&>{;^%Z>+RKZua&}!_ zGp6A!Y3(mjd!x2${9KzAt8n~MCdNhXq}QYSse#&3iCA7dOsjk*R>?U%pBdB8Pb`~2 zTOI7Co|wMIid8s%DHGnYo9M(bL)9C$1`-ipFHGxag?EJw%x}gtAwg+u^pCi{Y87)2 zD^}t7rA+MXvYIZMJxc91{ZtGlLIYrR4a7yib}3-SG-Oj*PtYc#2dRr9zr7# zMm_g)ya^NO)`w|kSlhS1ejzia;q6IPqiDG_!_=YW7MZXLMaaE z6IPfLZh8z>%ho7t#x#tb)Bi??{54puIj{`HDjbcJi4%X%p--%X)dioINrcbMFwGxg z;jB;*Gp6ASc^UW8--h>BJpyJ?tith2nW#Q%ChhmOkJ>N8?-Eh;BdlG5cw)i#Ma-Cn z^-+~}&_yQ#)Z;z&QLMu8OPOfCc{<&$bWv|-e=ZST?iOt?yeG4}R@97Xc%NmLEi|NR zCpF`->lCYS{8A>0cbiNzW^AQqzn+<4A~&pK`32UZx1Z)|#xx-nGj5=}{%fJmd`ciA zH%Wz~kup(o#{^n*p;>L$v7kiUg0-&}SPhuFY%w#YA-iqgYFc8tS#5dConaM@U&_R% zspDwN3N=+zwsI0N5wg{vrnf2mv|?sV!`D@Ah0`k^YO43Lcr&cR@k^OFGI1>JTc)(S z_C;-p_^Yo)%Lc0fS2rzg#x$&5@(-owx0O+Qhg4-)h2xhpktd=TO*rkYeoNO>B7A0A zv|;f6Q^Nl6 zGGm&MpO!AB3Dcij3+?I1unNa7Wnx3vV7lPOF01?YffC`l71s04wkcPdd7Ci}v*A&} zblBQ`)>1WpVOWLZmogFNGm>_h*4J93)F_FFhSmLbVQt@uP;WD)p*-Htre}i(TQe3M z!LSO)FJm#ik#EwgB$^- z;=wY3qmh_~w+LF+&=YQ*OhMH~vk{PO7N5qhWSQ-4#sv0;+}hZUv~8_|bjQZw5|MR? zMZ4tccl%zwbQefIt9 zWyUl_QnRh1&;ALbzf>5+unNa7WnyXR9rR+@A=>?DPl-6+4A#mFgxKp;FEgegd*{?j z>bCWF8uf2ahE+IzDHFSL?4=D~KBMp7w2_GPRV`Y%1+ZQ%uDBV~P#%+4(FPU1&kQ-Hc3mve`jSW2P&#(%|FJ(fl zv5zK}&d->;uSA^5ZqXL)u`6!ZikUGD_uwyEX|aQztoku{k1$f<_@zv&^gT$kO)1GL zEvzUJ89sz*(N_3IRik2NOhe9gwjFeP_lhj5M;V4yIDRP;`L`XWz2J@0F zE#a(PnYh{0jA>W_+HNE^y!tqO)xR+6-4VyM$^GkoFm{7KcY2}~TmEg)n&6tKcuf2z8 zt9z|k+`gw2t8n~MChA-`LFu!$Y+uPgBw|QVm=*~u4mSi8F=HCufO+mHJ#wcrOKkN! z#VQ=Xl!^MyY&6@=E{rwaEfHV)Lz#cDE7Rr`He;HQ__N1p*1rN^Jx&Yn%r6=f7a=$5BjgB2kOF2* z6ViInZMvWQ!u;>djKL}#zm$o6PoC3~$9u7(GtNrH%ji&T4CFvgFP-0vY3TbTKBk*0 z_G0gUE@Z_j9KV!_!{jY3{irKD8^a_b%j!_g_YvgvbXkMn1*bs7K9D!+kmwwWV2!wjz-Ev=Vlq%o{M$ai%iKGANrdurx%M3LEaz0rZN@ZY zG;Ynwo(%p<{c4s|u?oj8WrD0Jzy{ntNV|NkEfFmemTS)-&yrZ&&6tLnYP$!U{CF45 zt=3hs3db*H;zRMmEKNxtI&y9Ui5Pc$xwZmgmI+PW&6tL@$nY%-^-&dS-`GgSDjdI* ziB3%lvomD|_;vlgsYFx;k7*FI?9jyBjA=p^)-B97{Myy8VO&!ct8n~MCfr^XU0*Zvd>?QlC*kTI?Dz?~SUAx7W z8H{Ut?e42G=jc(?89T0G=e4`r-}-)^*YkST`u+cTb6(WUoX^>NZS8&GAf2XYf62w& zLPcOte6T+Hdr2nR)wURwac0e|AZJN6_CEE>!>BFZ`q%v8I!)33l8b816lmZq^mUUT zXjIheh|djhO5V)N&XQ{U40pRYln;y2_aAz!(G+bXxfnhClki#HNPjUdmx;#snwaw# zX9z8DkyPV4vhKxTR~xB&Cm9+|(f*PP|5`6Z!C!6ktWgV?D80;L^uCULVkcKgwW9Pp zTnK^|G|_E07Hc#``%5lbc-$9@U#IC`>NRGfl5R0R<66#HQErlIMXBtpKw@?qy?4V- z8cosul8cw|`Ql{z9(svQcdS(S+_xB+Cr_$xo!uqXxPLJ3i&&?2)Nd3oqR|v>Be@v+ z!X+5J0q8h2}N>@BF9du&%WdPIq67o)qRJzV%+pD`qiG5tTaX2NG`TkIWAr$ z^wqbgEHzPax^j-O4|_P{frq3Tr@aL}6KS~4`Af|vCYqvcBo{k6YvRT3-umahp@NEW zjdF}p_`jc+%KvT58Pa%5i6Ynmv<$#qzbXEbYV5)j_lqU% zz4Z0xY64Bs{*sHe!z|)kkc0kud?O|Tu;0C02j_<2I!mgt#p$zOj9F4l&$v(rXo~ii zTyz|kBR*HVs?|K+o(V6U>Uh4VO)X#qNU9ZO>!a-=#`T)^V=|r>M^d!E zLhI|^lZgB!@t{%TDT6`de)}e=LSlu zaZT!wRicc3&3dyJo`^tFw7=wH^RN}7@Tm*Axz&a+@t;=yKb_@^>_AC1p5WrOQiN~3 zkz2d$kpHe+{@)bs5V`pFd4=dYrirOGuHd0xm$s2qD@x)Dt4NEfV>&ddA80jk_v&x_ z%fQx=3i_24Wk*v({P9-_@k;h#!m%1o+4QliUxK(+l;PcS#qOF;A}g>j&=l=2>GkkC zpOh#1obD~UU+Kn#87G)M6?nedwE#)AqQp4l3ZJx*!uf1>pefp4a8P~nHc^$$M}Y` zEXwEkOR8~BYF$n2Tm7$S?TUh=Xn)B?p@wHg)|4N@F|95W$8c{($~?Pj@8mD3#&zMl zPl&B?MId{a1e&7#B^Qs|To6US6o-)0@k~s&GygDNW#rwkKA60>-Xn)B?+sFCh z^vpnT=uwf0sKq(PZ>wERy5K9RR+Q>@E(m>YRmkt*12jeZOD>{@-V)(%;o#lPg^8ds zxUTP%UG)z0l~m)}sJU0fxY9B3J)sQH6m289*uLSu7@^mKH@Ay2v9VK*G3AO~y)fEG zQjPb{eXaPo6XJ3)kHJxMNp6b#F;EK7(v~U+hb7 z2np}=1x?ZZk_)xeYw@FYBUqSrf{7`fIYtO}udP0NNvd%@Lz}0fj7s<=zg6zwm$ z=E}6Noibv@dL%WX?p&qzNs&Q9*#S+kevBny=GS@`nXA|amRXOSty#83=7AU(`btJmt1sj z;DRS-H-xVtkxX3nwitf626AJ%tE3utnKpHXoTU0NHa|_HDcWCh@x7iWeD_a;jf2NC zQR%1IsCO8rA?|UJR4dB&R1auaSwKJmi$+tlzvRLiil5i7;FBeJ3ZEKGSH5_Lp4ja;y%`8~hX-tVMMy5=Wa2mrizds;85r8t>IARD(@dK8eV+rFEL3 z{UsM^`Oy%uX1kbF&5MbFoy>+6=i*$SRzXsYd))EV?8E~b#fZ}WI!)33l8fqbaqvb) z3736UnDA+4Htyow+Di!)B-J?2cw5&TLaBPpTlP z#-G)QIGAY((ynv~(P@hImt2@TL_(^|HtkrB9}^cxnGHQ1??0TJB-J2SkUa37E!Yl6Vuk3jR7$>^}=%}NwuOp`&a{Ne0{AohT=L+(f*Q) z8uR^Oecu4xKKh|Xh1X59Q3~&Ce-v?%RO1@q!J)7#-%ZbPxTDb&Z6moTnCS@}=f~)8 zs%>Y&_T6lBQt%X%tuB&ke16`)BIKV8(;p}A(rAkIms~_|c7}-Wsva|b1``|cHSsO( zKR?pdRZ@++$qV~Ij1i~5syIiZDcWCh(f?8znCsb8Z}YcgqG_VVP_QpqQqfIPjeooS zJmJZ{I{LSY%`}>#{UsOfFC9Vt+gcyE`=*tOM!07C@XeFzxHoQ+YDIZ@)dgDjZLH^| z{IJp#Z6mqpnNS$Y`?c4nzB`ahh3hPfk%Cj~w;XksRO55C`0~*FMsq#0e-$fD(KeEc zlnFn@)AJqmCl@A~sHnNiVm!b#sUMbjNUHHPsN7O8<7q2>utTVcrf3_<)0Sg zAfDjzCCN)tjr)qq7lB(ot@Pt}S_zt>{UsOOPu~;bLmOQ*T+PG>zZ}DM?WB6r#amL1 zpA*X#fUSd)^)YGLf~IJH$;B}9b#bR|vL5VjXQCL+XK0M;kelE1mQ*Xs^Tpr9vC9qh zI^zxsnxg$B7u6q+STz zm^g_0qnZ`6sdw)9N~&?~d4b2Go>E=+98wl&iuRXW%-eZF^oj}AzgG%k0&x0w8+_fZ z-``JCjnC*8+!GfQgY*L%eSoHDf60YonLN?{p@%-IUkxT|+H;IBKbyMzrJtl4KbOqD zDdyes&@BV20!`8Wl8e>%4B?(oT3?-DVqyn&01I(1Ks)RJsKztHobgWhcWHh1sc4`n z+Fx?9$M=A^>+w~)wWJXfvA=SRXU%M?H=b%mHBObkdqu>ie%4a=*8!TM{UsNl&iyUY zBaUei8&a64?y}IBHqfS){wqLIjnns{&x!iW^R$Ptt$?Ozf5}D1sRu;$8}qbs?b4Ze z6|~SeH_xX2EEFiIR+JXiZDQVqZ0*7LG@vQkUve?{@&?U{T&uQZ2cBSG zJ5W-M6UN6J6XVa<(FVu%1e&7#B^RrP<%-%Ttk(KhGnmMUUT73LZ&Md_43t#kx^U%) zXkpE>=3eXzG)4PMF4jcr!t~af8`!fS6C&n+I?EPaaBnziKNaQpNnI=)b|QCgQa_+6 z+97f=<1bxA%Q(|*4=!jMNj2{O$h#@hj)t2i@9zP3a7EkRA2wBY$LXD8OnkwHZJRsxKJNmU#%EqXZ-}sMg@u;a4QPt?m-Kqrq&hzoMaCtISrKVW zRJxyIxX0Mlh^+yVYTQ@kaZ`+%pC*EmIs;A7{*nt9rzgS|k}aZ?c1(;ugPjb{%*?7A zAgRWwz|C$6kD1HG+jH%Jrf7f3MGy6*@cXHWUdNj-v3Cc~pc`UWbNBd5s&NM0u{$Dr z;aQPrYXU4q`b#cC_P-P{qwb4S{p&C>a(RwXW1?NX)DEvfH0~wKeHsb$YcS!CbBgM%u&a$m_(`hqVtQ_l4?acx%`8uV)6vr{s5pU+Fx=ps?RTRpq39jdF#o! z_1Xcl+Sh{4A8s?T9_OkR!+GHsJ9iI!1pt!1WnQYk_+>vlCbDFz@3@7 zOmyC1F^=JSxcF6Gl4|@}*-OCH9(Cc}`t^dQXn)B?wf5!U=D0d=DRB`Ku37kf;M&?& zcReN5it^9+vaqgf0~lW%X9f{2~nLux3CKc$IsSKvT58NZZaFSaB}_cg|3on ze2(K^9ey6E0SlkTYcxgsOD@vpM?=oH5cuej%0%HTvoY&0yZY?6i=C&-a{R^ZrFEL3{UsN9om;@iX2IGfYY8R_U*h9n;eB^~dFPEx zOrB;o_IY8S_`yX|ji-j*me4A*tX^#88jYrCf62xDB9So6qnduAYdKg<>A&L5w3;V59+<$8}Mt(f0_I&LosaBNU2@$aFZj7Ek=&Y5d zXdB5zN=ZLhk(Z=9#I(<);x9Lg(ex#rK)eN?-I0zI*Nc7#fhm23K5*;(T$-Y7Bp1KW z;!3U0jr0darkJSs&pW^sT$4IsfQO`7QC1$Q1hw`{{Y`G7iKb{9$wjBz6`;ZHCi?R} z6$BMZFN@)W`)g-Mc}l7kW&1)usCT`NUZ=wk6HU=Jl8dtfKZCk7(d~QF1r=lGT8u!v z#>nrUl4|VqS9rqN({=O?0~-mNqWvWoN8KHvX;edfgtZuG$tC~uo%x@oK*Xd@|INNSrDVjgSJfQe;3*z zXo~iiTnrthz`abNH@|(4i8a6Qvk&e?K3~m8QjJp`>z0O+FJtws+b#;4qWvWoY4^U0 zBh{nzl#~KM#ZjESGwJ6^)$fXrq#EZG4Jr;Lk5<>elzA^`inftlOnU!b^w<%qho+PT zDtd|>BhA64ULE8ssm7CN?iPh^y{qU`vmAh?Xn)DYuV1gk)&>Fk;2Yjd^u&4L6P<8< zyW%IQ#$I$yAsFcAr~is|0h*%yB^NWUJ`)2HT=mBHykQ?$S2!qWGKIP7*; z3r}gt#9ckdSk>O9dKL(fR4Ymu`BAty+}1L?s6bP+zvLn*?7ArYZo76Rz6}$T^KsVw zNSs+SIzUp5Yn?4G#U9t4+WKS3KvT58l3L~l;4|fi-Jvd<>n0S0W?KBL@qYXxGhfqtYmU+ z!3Aw2sm6}%%Qq3z#KYA1WhZdA;zWFWl0Pv&KvF@kjqjYxeu*B(ubEu?bzs70FYbeM zva4ny{|vQ?CP=M0g`Im z!|U>0+@D=Xmnxg$B7hU%hgk~qli=ks$Fp;nT*S9yctKB>UB-Qww^VkouW64Z$ zzeh`;DcWChaVfS4lEPc~}3D3+NV`z7rnYqMYQjHU0@BS7e!}p0TRT=_K(f*Q) zkQ+tdXyFs0WRzrL3qDr^>_t1)_m@=To*#U|+imS7(HQR}X^QrjT=cONgJ#Qah>>mL znaF99V;mii_k+*;B-OYMpkPrbUFWF?X%P!FMf*!GrYvxTFY$QK*)5WZ!%;cL>DhQ* zD!zYEjr$-y9pJ*OUt-JjaG)vLUve?*W(lYmhx-THhA`oWU7ybqyIRoEPg0HVgENXl zg>{Z_YH}r@DcWChv3yKv*i)t?gyH92Dh}f_;el)MEV?Pal4@+|yOx5a{uN+fQx7}= z_5V_|zvSZOta5OtzBBmDbmHQc#TbQaQvE*pNUHJts2ydY&15e~u$6){Bt_duE`EP< zf+o5*B;P5<#H2$OA6Z-jZtE=QY_4%FeC|4L08wG)4PMF1(6*!;Udkp-kizCPody&(zrO4l3&{ zsaBNw&fd`GTLd=FM+HsM{*sI8yZm8CTm)Rn-p9noh8AO39-h6N?j@TkWJsNZM*)qD7#^7=qXMwHxn0Nc)MWHMa|fqkE!3=8qRNMf*!G zev}S{8RKd~{Y5>Q_=0P3O5@M!auH8SHU57*3Wald(eNU`Bxs8Emt16RtPVquMMBwQ z0Zh35V>TM#@BC4!hol-mU#+SEm2TFAtMZ+Rrf3_UL?nE)sprqOOcPPHsDz1`h+$X#z8JaD2gf%-mXf#FpOD=ZW+e7g#w}e)HHWSXb zvyHr_c6D!}i=-O+-Jz-A;C4-XZTY80Q?$S2;%BjRm_B2PI1sR#iE3K5F}5PEL)M)o z)%dynQy1`d$q{`$b2XZx{UsM}qk2M*hJNDg&{Iqt*_v(a|7=s6j&YV$!Q{^EnA~0+Fx?9bx>32dcKst@J>r6#?>(!531sQ?F&~) zH9n(vZw)`z7S<02HqdB__Lp2dUsey==lSRpBVSsnXxsxkWN%!T@rRqF8b6C}Yz)oU zx#(Xje74dQ?Jv3LS*13tT2xuznw!EzSA0$MEpJoXxVTHI@opj^3GV*#)f>MbVWlbB zMsi`AQwuh?j?kAjY?DAm>m6oe8uld<@yr*h6=lxOL~u_J)+Y@0h^HyqMsl&@cMTYQ zAxeMMe!Yo`6<5th%K|pFXb%rbHO}lWlK^WjhT`u2EE7%9Hj;~lV?&|6Pc8jywx^)N z`rB+Q`*Bho?cyn^#+d`-qM>p)e&^pE1x?X5l8ddaf*`{SSF!d>XTrU*#mM-E=Pu!% zYN~M-Yl-UcXhwBCWp7hKQ?!lb;(Mka#QuoY7lDO|z+_wliPsqZhnJ)p=k?jDLXFoE z`sMT)f~IJH$;CwJvdzw2kB+QFRSzLIL3A++8df-3sx5?4ad6m289uskgeuNS)Oy~esQ(F5lcUGuc5hQ(J> zja|l9XPDpBMPK`(G|&|7FS&@0aDdvs%IKL60ZbhB&M^uG<29W8B-OYcZcBM^zg9}` zu>|j{*nu; zQ(;(D=(9F3DvF5)O>>O(fHP8Xoh8+{5Asb(kdr=XA1z@(Q?$S2V)3Mc;P&mF_TJIN z#A56KcHw(e0qg*%#yQ(dii7xlU%PuJ8fc34ms~t(_CxrN$%GOm-secRn{ z`%9{E&7FfIG#h+WTl=s!&=l=2x#;cxO)S{7MB6&2ITPv2a*T*cHuYfR07WrD*i}L*ACTg$3)&X?0uHo)NYFdB-QvHm01wp4DY24%4`KR zMf*!G=1lx594k9(D|&Ze;=lo1_xd+JueAk8sug8mYX!#s<$(t{qykOR{*sHEExw7o z2(z{FtWHc6!47%fMVtEhE`A@RBgGS^=KU0DiGNxr%LyUG?nmc)AC!i_XA#%}V#1D~qwX7*>8W*&Uq#D<^W4n^{ zypYMozYXlhzrH&7so0DsW>Z10jVCYuSqchwKVTYLpcNB`@w^GWG|svo$TdDc|6Brk z|2SdFy59kbvJ+!3E^R%PPv2Nt8_R6Mh|f}f-s*8$9Phk@N+iefK=fTma* zNm^BG)pER`u=88-LmaiMh`BcZK~`uNz*HYV4LGt3%>GZ>Tcnu%Id0UvlAo zrX~!sctM9L`bR zPZ*`S37Vp9Bp1I2HG=uiU7_`|f=s+?XEqKmva2=Tx=X6@vrpY7(9y{ieje0KG)3D; zF5b0j4mV=T!=Jeen0Ov-HrCCts|PdOCDk~i@mCAjxuh(#bO|!i6zwm$xaZmy23m_l z*^Hb7D!#jzjZ?TzU%YjbRO6Xp^V-4K(GKupV#QpVqWvWozkZ~FZQLg@D66HFisQGk zja&Ha&fCRJQjLGR$I`%j7SCi^w%tlow7=wH_|)F;yLX;YUzF0QxVd&96TM?_Xeutrm~zvQC)t${GBN|rdfr#TZ(=i@cJ@mw?%`5 z;OQ-Fm@yyAwhg>Apc=p-DVbE_>P<)S+X&Oz@{*sG4*Gvc~RzjOP zZXy%E=4BfX*4WfJxOR|gJdb5(CX9MiNIQ@{PNON>UvhECX&@}zIzwA@sxuRvw_{H| z#-@(x;VP+ClzCeQLE_a3TI#2^8cosul8c7^y`b~?6I%MnKqijf$ToW5`jR1~-6Yl6 z0aWe_bHyR;L590VQ?$S2;(KmKsGaviyZwE+m5QlOW+PtM)MJm`B-Oaqc~MvRx#+pp zeD-WBP0==zi@^1*A*yI8edoHQcq%4EnT<=;ZE9jqJdcHRq&Nj?aw=@^P(*+KN7+L( zMf*!Geza=_(|bDW8w&L|QE>ua6B}dCFzJoEq#C=7a;;%$i&DBfPPC#a+D3Bm@7?^x!1I|dH8rR|sZ3d}xE9kenT{Y1ZZ6mqJ>?xstXFvV@y+}bt z|G&(}U^knpxqC{g6(#p#1GxXrRd-ugNzfE+Be^*DD<0(YkYp=C8@^u+QB&0D8obdyR}Ks6zwm$ z@Hi3zulM`t)3PoxF&o#qHgdM9jb?gFs`0#{AvK}pTUWi_t>c2GXn)DY*&CH0^ryT2 zuKsH#PUAcPt2@s4_4AQbCQ;~_}M;7BRJoDv(x1Xe1QA+jlgGcK=Xu->Hr3FdR{*ntf zz;z$n9%Z> zmr;|6@h-S8H5s2l;yg>Lah_$q2ec`2S)1<{1~f(cOD;z5D+k+(8CtbdaZGH%4xmj3 zn;L~30M+<mv$8bdZ}cebibq%_8JUx(V%uwDL=YCPFm zcY(C^>$SllCZH+WUvhD%Yf0$bezLYMrx6pCy5|_hXX7mI3IUR8+=ErK0<`ZlMe~?Z z4`_<^mt0)6mVndYQhWOnSIdyEJ78Fj;e}^()#(n)W}P zuCxZ4q8%a^XV#R2GnYRl>^sHX;PqF~PTgsk+& z@C=*(K_6^t1HcxT^q2J7xFTM9LU6<)Q~3IZO!z0|808%8>g_4=LSGiw7=v+ z`{fPKx7HLB8`ohXu2PPnM%q=^E&h_~|EzoUgm&}miNzJ_0!`8Wl8egWeo(bZUvcTO zVB)hwj>6xTrR z2!Nvd)`@+wkw8MlkU=o@-gY7oNl0&rec~GnbE51ZcQV^cYYL zXo~iiTwK7Xuc3nuh@6cfOq9d(qRhdqBOkkjuu6Z4;&4YzE&x-!XIQjO0h)|=pbtHO}K=!T#v+Fx?2)PiCovam|Xt`5MOrP0{|6i_pZn&;utyMcmD0;v)8mq4=}9 zW%80#D@xv(Bxw1(D0Hs2MbH%OFS%$kzad-*EdnW1{$gSS-g9Q+@BH>5Pf0btwg)zW zQe}$5Z5OkkDcWChQNSS?jvXol9V*OXVtT6C_&Ck3el~eZs`0tnf)=oCZz1sV93g0m z_Lp2VUDz6`{jI>Lu05H!6pOPBaqao+JP%1VJ}dg(7F6T6fYb(prf7f3#TC!?5S8>r zjBt!);*OiycrqO4C${vERO5LpDIMWQ&_}WKu&1CY+D3BGWqxO9{^q%O_OBxozrST0 zbNkuVr%&A_)r#_UYFB_GkHxqi_e?ZJ+ej`(tm_2{&KJdn;6IsIpND&qaSqF;YVMM1 zoVPT+H^lTfFA94J6HU=Jl8XU52f=S+gBX`zI-ZL6e`XuYqwx&4rEZdHMOjjNFr>w; z6)$~O~jAIWO>ql4?ci>E0K#W+%0w zt%jOtinftl9Dk4oX?5RdtsTEHG1nE>i`KWPRhoH7s_`7Go#_yha$j3<{-uegXdB7J z0f$tm=Kf1_Z5Ar1*nqEzjd4xUmt!81YDH;3yA!k;{90?UBv8;4?Jv2w^t&b0X;WCA z_NgNi%i7~iju@MIH_=m4ttfpHQ=rexuUgii7J{Z|8_7lYH%*|~gJSybDbtxKINoeP z4V&8Pn5U!~@1x$dgoZJSex&XMK~uE9Uf|Q9m5Jnu&HeCv|?9O`XxuOH!>U zEf+S0A&~|3s4a^HP0{|6i(PdjxaT?QBTpP+!VP=T{7{=Z{i2toT2Wf}X#o9}71VoQ z+bL*@_Lp2tI-3C9k{tBFBbS-@&yImo)of~9s<)&X_icBt1N)a1&|TKp1WnQYl8Z<7 z82H(!h@LR>1ryuwnXo(Vubp|vTT+c(-!6cDS--Tmz3&Q|qWvWoi>gQB$yo*TwbKd! z75!^jjNAA-AJ^GOQmrT@YsJH$MV~b-{*$07+D3BmtxP!FO#7_$$5lL3%xI7E!ejAl zjvGFbYTQ5Q76X5-eWkfKF9I}0+ej`J4yg)jK0nh&WjZsl=nq_HiO)Z_HuaTM<7b8j zkucTwp|imh+BD9yRe}W6HE43j0BvY=OfPpzvRM0dcpO`S=#w}f{B~1ImVd@HucbGe@V5XOdAmhhwo-- z5uIXzrf7f3Mamfu$XTDN?eABIi82v*z5(vr9&piLQjPO0r5_Cc-a*Uw2Y{w%8_C5J zoRvPSl%JL`vpy4_@hq}>TX5D(Y205+x=h^1a>X0s?G?4)#&vqfHO^=(;{|hS->`Nn-vDTe_Lp3&vAKg!pJvu+(3lB(GM-WO zk4?RYvkj@n_w(x>V1C=)`Z2u`&=l=2xj5O*18T)K%WV?fn2Ev7|EII8Q9nRZttf;4 z@Bn3Ar`&R$je(|Uhsed(!5-jawJ7nj-wW;48 z`%5b5wQ*8md}Z*6?`LY=tu_;ro$z;F$gUPT&ow@y?+^^h>O_;9Ln6==?Jw!|@PzK_ zRbbMqmSc z38xR(^#$A2xjp?Q)p$l#u__QU#Y;Gt5`d;?f5}CMj-e2|E=DA*jA6q48lIzA3(qnw z>o2Lsy#Uq_Sbn&%D0Mgn*SY^+iuRXWeCk;Z;$E~D4}5Ae;c?Pp?2~qN5}xTzwW6f0 zsRo&)`ip-D*8rNL{UsM0Y+=x9`VcYvMg$WF@cm;+BRqp=iJznzpGTR(VSATJ;>4CP zpefp4a#6M)p1resipX=Q#>C_0c%}v3*WPc5vqeZpigVBXs>9-~bH$EEAwW~KzvQAq zat#=lHD8q3P??F9Q*pje2fTMK>?f(ld6tbMAwTa=v9Mt!pefd0l2%nwhE1;tzDdi( z6iXlzg)=NhPh9sJz0Frrtte3!qoDQ3^`fZR7ifz1mt1Ts5(C9&ZV+{!c{5R~nZ>a8 zwyQOheI?b3vVTP^WcS-82Gwx~nxbta7iC`5f)}B?MdS!qCgw+23|CxRd+WK6q*_rr zUx^1}Xs-BHqdd?Q?Jv0qa5cfdr*g&NVP%;}$38J=2(C|@=p(7ddxK^Gb))jcn5D&m zrf7f3#e~0VL&eZMvG|#+6LF+Q8XIQjPafl~t%V_OzJWu^`YC?Jv1lH>VEl zc04Vj`YBAb#4~bBV7F9mowsCKSu2xZ!QBhu{_yvLrf7f3#R;uGG<$bmPFDE{y(Bv>ODbIw7=w{P^~5~_S7Y@?*mRbCSTW>VK#2#9^S(z zyd>2)>%LktxDC4^T<)9|G)4PME*{`Y_@ow>#k5d66AydgnZ@|rU{!lBNj1*vyVVL- zr~V@X+;Rm?(f*Q)s+-%u;~^KtW7qvm1U4`mYcue7{@znkjn}ZGz=_8fgyYbSf~IJH z$;GBw?ZLg^S+P+0i-~_i%trSfcn;QFPf4|+R7vgx7mJ-18_F*fG)4PMF2XW8L)5q9 zBDL0hChC+n8<#uT)zBKAl4?9_>vdOfxpY)4>^()$6zwm$xPa%x&lqSGzXp$GV#E7v zqj(!!PkqBfQjKTuWcGv!i3dd6b-e^l(f*Q){mvOMtLR2yuGy4{VaKwK^R?}&n&=^^ z#@!ry`@w%@T3QG%vu8_7j#xuM|eHC>zvEziWI71_pnd_Qk$cb8Nv%7|*25Vc~m z*chq^nxbta7hhl$;J>=4{qlr~ioB`W#_*Cj8+W9;q*_q|ua1I8GFFsXyVFEdw7=wH zYuH%m| z9hzEPL4c+?*nxbta7w>`o`B@anjhjZ+{`%5l%c1Q+?6F0PHLr*gCX%@}{XlPTLVV_7fKD(RH8hpy1)5e7y z7BofsOD-n0Xauzu-q5aClX&wr@oVpefp4a#1oW2A(WGpyge5W1?kCi&4Dof6nIcl~m);s*eet zJMGcBoh}bFMf*!GO7*J=j?=bj*>!!HXfyz44s^slqksEKs&Nf{%Q$$xdXtu%;SMxK z`%5lzpI3)#msV@foGLL`5 z-7Bt7JiF9SQmrVKqLH94%F_0Br~))a`%5mowui#C@X=aKl^RSG#SS15_Z!s14uEP! zIqF&+R_qr0{;~0pf#Em!$i}^7Nfyjo7zd>`YY0r;upefp4 zaJtK8<`vM2)lC4JqWvWooq~d)_qH`w z*9*0oxafvwROR70inshF)r!*WMP)cVcZ+o+F2kZJ+Fx?<&<7{VpZ2$UZA@h11g;A% zb`|#my!4k;<7c>M!BEMmnsxE3+CWpZzvN=(q+ocsJ0N%1{6r>t`TS33dHl7%q#C=v zCBZQFMp$mqF^ND^v_s?~-y94XC6*_w8pZ`}BdNv{b&f_tUi`=eB`zAgU*O8_S2#T< z%U@DKuZ=s_Gi$<(^;Jy1b#cud5rO|=C-W0$dEB_#!n1xw zh+Qpp9?#n*9VvD)|3*WZf=;5K3evXl~m(?PJBl6%XP5m-OdMSiuRXWxQp8G{o-KpwFykwk{+R9f_ zjpw*~NU(ezFZ#WA2b!Y&B^PaHNT^$Df~c6v#hMEE{(&8`q4-Lw@kzt3I8!*M-Es(}f()#mP_D`{3+^tc^aBYV2f2CxNkbj!55I255@*mt5q$NrIeB zb3{ESF2b&v4WAUd`lgwWq#D;V%xee^ud>CXkB&f7w7=w{cd%#A+xa> zuhIOYx1<{1Ywt9Hqwf}q8vhgmnxg$B7hgIx#ZP?;g|#9V)0dfzr|s-&;Xl14)%dxj zMRS-sc8R!G_`9Gf+D3A5?|E~0@M^Ju4qusQh3iW`V}I2^dP}MmCG2f07(eJwG3?n( zK~uE9sE?m6ul2qeo(PizRs=h>&*6#|MqWvWo{d=WA z>k*4ZpP9Frcv0VMWH-aPoQu6A)rykPvI9J9wMc9-UlKG$`%5kgHSGu+(sM-NTj!Z* z7;ZKaaUSxOMqZL?{68<=89IBKMFaD3K~uE9M{Q4sX;E`Tqelk>P0{|6i-4Ei;M)2u(Q@cMCaM%L8%GlC>KxruQjKd^s`dof zG*xVTxmC~4K(c8_C7d>6x(g zWJ&RFlQB%x+>mW#6|}3%cX~*w6=g-kVK5-Ps2KKRsGup@UvjZ?#|W5`zrYlaGi9lG zye!*z``o4uTHqn6#^;0IMnHQ1EK}OUbU{v6yw2H$IGZBKXi6=5`>M(pw zq*_sY&!t26J6YPhGlv9C(f*Q)(k>mL*Ow()<$h)p-9i@x}``_@ZRttdtNbbyNu%v$quR|HMb z{*sG<*IU7Fxl;RF_&F1vlW-&Opc%&twZMrf~IJH$%TOpr0cO2 z+Hc3NO!(lwi8np)Or*8AK9O{!isI(f8VYsE(bjKzBWQ~Dmt1_U+60b_U8aq0TnMNb zp_`44c#T2@eI(V2GHF_Ks9VsYHCg>r&=hSWx%jlE0nA>pSi6735vbU9%WRaxS$YdQ z`ber3idWXo~iiT>QwY1#N?qw0AYDFmVX)ojXsnsTFYlAl3Nn&ff&}V(V*LJSqWA z(f*Q)QLSUar*V`v@@Q2izAnQv!{*>#ee3|J#^+Is1h#;f$2eev)eJ$dow9zwE8G>RlCRiuRXW%z01~T%Uflo|%H34Eeef z&*T3Gu7Nxp<1eYkGuBVXz$W-^-QP1DXo~iiTs-o^vygi3wywpsMN}-igB`#@n|i#P zzoZ&JCx%4BfpLedM_bhZnxg$B7Y~m_!WOqa*68g~OjLb}Yn^R2HGYD>q#9qZ3PwSj zog=MtQfmTD(f*Q)sXHU#$l}MjzSX0dIQ!CKOwPBdCFlA}s&Q&vLQVL-;#+QyRZ&1w zw7=xy?3+mV`1$3bV$RV_q`$KKcb?_BdH#}WyjS}b39pv_KGe5ZG|&|75V?r^9trB~ zE(sZhxuD%5)%cuqG{C+Hw}giesz8>GEA#ME@xw~~k_vilJc;HJK)rRR62e<>5p@91 z|M-kOwG-DkopJ?0ZPVifxws0@6zwnR^>7DhhuYBlY>4TqxiS;gw^@uPxR&$I2R})* zq7-nb4G~YIY2Nk9KvT58GD%N$CiBE`xOSVQ zXn)DYo>dZ_?zNi!SyYjUIDFmh>StHo)BGgWc=lOc6+9Ul8b-))Psjp9Yh+wb5gN5%wmj*#B*h4`bw&Cmc@-E=yI~W7_!e3 zXo~iiTx>a%1ncLP7mM$6@en`zoWgyObsPCgs`2wx_Xd#F#7k82cL$oH{UsM|8#aJO zVP3+h$3+FjVl>1x!mEn;N~-aE&Wep-@~4WTeVhx>6zwm$h|@;f z8i(@$j`&EbvG*y~1YmQh*y~yWXo~iiTr9iM7?y4g6{TBok$u)|nB(p0t5H6ZYV7o# zo57fuHG~WHqBKSOOD^8tZ3^ScM2bZ}x%hjp*=UN_h^Xl!saBMf+Rfqe<`{9KQc0jG z+Fx=pret$?^&&>(_v4}|c9w4Vv)b~?TT+dE`;3Yxwt2yg0U?Fwhk3FS(e0t~E6M5ibJwaZzc2*>H@) z^NRX%d&lW({%Y_gg_z zw7=w{Fz)o;KeM_x+n0;8k!Is2t{u!i;w7oZH4_8V;M$a`qWPX@f~IJH$wkqB(%?{1 z6>)FbQzk+K%|_h-d{(r;OHz$zC>-np6?_83!|@LUP0{|6i(QZoh1R=@OEGttm|oOu zjK+Nvm2eg-)wtg0b2m8GqP)2OD__tQ?Jv2g+ovZiF7wg!E&L)AC2_4=&E5<(j9Y8u#P0=?h~9 zuQH7pkSA!0wvk*sw`M@*rkbWYla4Sk66Ys2dV(E59-hNXI#S#lUa%k3$qh0c?s{0z z6zwm$ST(aByvk3H8+k`#qBUNlHGbY*ihEzFR+JgD`oYXm&Emda*91+`{*sHIKQrLC zL%21q<6$O}@Mksaq)i=}?btt~^(F)^oz*(iy7+}q&1 z461ScZtq@jQNL^L9)3>H6zwm$nEWCgu8i=~Rxi21#1ntB5xE@CeVv1^C8Q%<ZVw z!RF&7wPCBS3!0++B^S$Uc7}3CLN)KK$4r#Q*OIhFc+aVONvaj4>aH$ueu0m6Kt2>S zMf*!GPFXs_5;a=$-SnD?Z*|Rvf3{8i178!V#(nhZX`n9%*4i(9E@+DOms}V>QeoK6 z1kLlG&rJMhh5B5)KaY;^mQ*W>Ly?ZKwojP$F#P?0r+EBtiuRXW?3e8zu3Dn@y@mqx z>n<9Ivx>89YSjVWl4@Ktu{aezeyO2l{P-qliuRXW1gvZg<8`TZ>`@q~c!_7lpTI6- z|4wg7HJ^Mf&&u?EAc$~Dfn9Q*;`VLcV2m| zVaAy#tzB{vpefo$a$#AJ40A(3>oUD06JZC;#*)c+My~LYRO3C)pq6m2d`)eVH$LGd zDcVMI;nkukL{*5>!V}6e(GJ&g4#R6~p5h~^R+LY%&0*kQ5t`4Dl0Z|mzvRLi))?GI zMr!YmRA8dTb37Xme^$Fs<2p;yk>Z|ezh>aEw5s+gvMkUP?Jv355!Dd>&8Vt*I=C{i zr;x>Pz~A|Ya=wykMHyYW$^T>Pti!6>p18l2P_a-EK><53Xi${BNB1@m#4fN4+lxr3 z*o`16qSrXb?zqOaW$&Zgf&-Y>4(#r3-#Pg5{APIH`xnpk`#EdZnzh!P zE(cUa{g<5ZniC9NnpM+;JI;)7uC!QRnV6~c$9x7#V@<%mp-}I%t5$lTBTyCfUveV# zOG{YQ!ATp3XZKOU-+QtCAvsg2un5;t#7By@U2P44W6EpYD>?&JQU4_;Hf+J2xHn5` zPfxfp;&h9}`s)Q~6LTudl*Y5Rlwjzzu!J@-xe`zn^P$M(r8QGx5UauR@$~Bu0U1Pf5{0YMS%@#-l%^^S7SsDuAO@>&s5^kFG^`a zD3;j*Znt}{PS{czsEYb8Iq}yP8GJThS2KQBXGA^p0W4dUsl4i4MW(bMOw^h~jig-F zYG75MD(b)F#FsA3U_)(_+P6Y2MpR$4Sbw@TQyH=upB3?u;@Wwc0!cNGsy!pC165IP zBqzN4H-);*($sFbwHcATak0K(f2JbmqECkSGV#2kIx^IAT&A8h)dZ@d-bhXyz6xMl zqq`dOsSYFjaL;Ihj`3QXsxqZ5XL>h-I#UL!m*><5s-pf&POO{Q$8~EePY+060ai zJ#t8O2dbhz!~(=>06%wY-095;>W!o{#&PL7xJpF*j;p2u!HI?Qk32g*~gRzZdJXZe%K(u^J*L+Qo%H z@TRLru5IQ7eVddPgw$>!(Cg`uBbCo%g+KCTxTfK?U&vIZ?nBQVX-^PbHiW>y-`&$2 z58?#kAnjpP|9dFBin39s#a3hlwRV)oyzt;qNRPKtZ}h9gEZmK7 zd{(=$(iEQh#tH9HZ6K_Jv+9`T%m`|=DUILm=}_=2S6)55ts=A3H!#{aVFzX>yulsP zq&>{Qe$ob>Jg%kM;>byVmySM^76fm{HgIimbv4MpA{%jHB=p>&rCyqWZIJc^VRM@> zm{`SEoifvj5p)!#G}c?1)dn&yd8;GwydSDMh+fV~n=%!9V`Z5W4R3_O(MF)U?XSQH zIvb!gp2_;U4J4ic_4PX^HUl{7x>)zZ%EL8BVUfje-m^TLA@{^txPtew z!HBz^NPB|tGq3|ZQirP>PL*W@o%K^1&r$Si4-Q4gs#j|`u$g{q%z$W(@8kXuH<=ST zLPvPM>@T(3x-yKQs~1WOg4wB^>xJLx05Pkks4@SRVJokQ6=`}H_K#^cZZanl4|M{2tH0FsRZ260t_>-T zexC~+AvJM|I-|2aTS1meO4Dm&KaaZVDsy7eqRueMJWTbtUy>1YjZ0}kSb4G&?4C7I zJ@K&=TM1XilYz#dy{fU(Rpvy?_%1Lhy}x>9X$eNq)jg&0op0<6CCy`1$DJjCsy2^G z)1A@oK2CI%IT0*&h1&rU>c{xvjG$f$N@G2;HC>=*#7MPss}ev}d-|v8w)--btRb#4 zC$5$31~&(`QP+mpF@kzqD2;WBV!MK)XMfe&p*T>LPxmyvCVHcehq}s~=;zcO;x75A zcQT7If_jZ8jWI918@N_&qiSBofU4HxiRnvmto`QdDsv(=bnT2`8v`n9`U-zdHhkZyyvCUc?5d>L@;|_AfDe2cH!u`T`Qwa)Lf>@vNSygv(>8?a+5jHy>KT`55|d}RXIVUq?E?m(H}ZMz4!5A>c%oG zmU>`ontl>9IevS($(&f{(h**rjuYMg;slNMQd$rml+FSDwY_58T6u37+hbYj%@4G5cUUXjo^k*#D&i zBWM-@rSW~-XbaD7^%C1P;F$yVxZCL{-p4@PQN@YYCELNP*1g49Ps+3G1ey&&X^heP zw8e~+j$%Zu3M^-$cCp2}hVP?+e`T2yO?tG2w%_@nlxhtY z>qoJFY+YJe=0vI(21)M&#dQlgL9=Wqji-6+YXj5k)ECEgcV@Xb(c)tL8TRwDCoy}6 zw1+cGtQI`te0}j&3r^5%Axh)78`K64Z*vi=6|2Z{iiY7@b~W0o2CuOqDQOR98J%$j zS;I{{{n(iijY)14r7>RnDHPUCw--la#X_ojjBE05Xm_Wf4}cT#NIaZ{XGj+yX!aJR z1)=S#Pv-L37F|jpwm+3Wb=k z>p_nPR$`fFmV3H_yK8FTE>liey$gZH5yygVzTgDSrlYhV{6J#P%MC#j-dAE7bbT>z zt?4)1y_{M_=ETZ%A#iv0oS^OfTo^&K0x6AWHSP|9L&HY~9q8o3G6CN%Sgg-{i&3)e zRb)=g9vuRYH&hF9+|CK=Poy;ZeWr&%mTnic0Z)siD(XYzMCU$u=XHXc^vU1^^>|Vm z>*;?i2Qw~Wu0d{FlNEmZX}E(UXSb(p`Mbi#OeOM(r(AWvQQs7Yl}TK@&}X@+Z&zs1 zf44flwjB)5G3b}SV=mt=Klw*}qh9QkSy{2jUp}u?u*3E*~1`r*m1RW_-RJCq!{#8ugpr~b)IrW=C--f47k2vWiM+!#0EdKu!&pna&`&}EDkZjOuzOrJ(7JTOw&zqG212~O2 zUe>sGWef1h9$2vy6{28<2w9J$JZoG$4KfD_6T(aD`)$3g8SHvF8O6qKSHq@x! z$}uZ-{XFGaBaHe5RGrW8l*_~#bu0X(N3|_ib-u3y6h6IH^Df_%5iJ_x*N&=-Q#maN z#Sh$|rIUI{**AGscR{c#08-FM|I#Lzo<%JIX(;y+qtp#6^aBHjm^oRYyQVTKwS zR+AB)0Y=^Hs99OI-e0CPWL044#w=?HRJC)qQD2yZbsz%^5`P!12KA53O7CB* zC0w0h)F*eq(@yFJ$ds6|%cyU}Q=6W~2H>;0_`?fobsU^N_hlnS%nC8;PiA3G>T!QY zV?NvpZy4#(vauD`j;1Pl?X*42^1f3Zel)wP+MEi@dxN!`^10dMht}M}_CLkxy9K$p2m`jTOc>J(3#to~C^$)gzC{SJ6Jfi9nmX zQttsqO(@fy5ww3$8h75mPm?Yb+p4YIGsr|$v_Ep9$qIWA@V^q!DX)z>Wz0&`cb@F6 zS?=lbJ)A$_|Hl)j+LndpPS4a}+xCpGs5~6Z%C%RV#(J+v)Ny&HivO3$S6PVsFNS|5 z;-IR~y;B7>WMWHGU$h1}*!uBEuRLpzek3%>w5jy<2k9=AX*0pnh#f_ec#g?@-Q5BuNSlaj>(XmuD zDC#~dJ-cd4cyijPukCDBGM5I()UI$_a`RGE$hoAYw`vS~CYzWg@ot?p+kv3CMwN@HC$r98BH z?B96I_jW*4o$-tDLSoIhg2X{2mS0}oq~149?0j$32W-hyR-F%!DQ&6a-18GZV$Lkki`t(>6x@RmVsKXRh?OC$`L%Gt~SnbLSJ@=j-%*!){yTzVUz zD(_83eHCUKM)xg9ct$%zeV2hjL+){6%Tc3lGZ6QZr3A>77KB>mYCwk(<|gq|ngdmd zlZ<-L!I_G&azUcKS{*JvoE`K;O4bp-drg6=6dXC< zduJ*=apdI0&g=t6z>$;E*v36S$bu8;BTD!KRW<))&^>-- zDC0`{7a*cz6`1mJmS`1MgAoxp1F#n`hXrQGi?w2F09B25H|kG6XDB_A z3lc>RkAkkxx2o26|CQ)mozA2AynTDm;ShVYyf)_ZVMa{1H|iA<(I->eU#7Gm*wq;X z%BiVpNjy=Isy;tA=o@F?nUg7g1&DGL2f(PVch%&{4;c~ZWYqgk!;}63{bfoELU6(W zaNo30jV|;=qALBJL3f*kGvw8N1&DLL{h@ceGwQs`&lu6PjZq)d)~uY~=r2V zFS)v@+O)DYP*rASqrN26taK_YBZ<;Bd!oTxb5sP|Zn@sB(HGNti!6+BaKZ^l zRpmA|>OU}2oe}o`5G65oS1m$Z*s>%ey0J>l+Tf3aE9!a!BV zibj3&$V?^BrXcYIBR>RMj%upgT>(6APgr;aGA!wA}Bhm7ZcHQDV<^gD#E7`d2@EWlG~% zJ2U}qo-LyJ*D5Aa)xC2D{WeyWuiUX9@p$)mc-_lc`?Rz;BaY(g_a~miyLgnJOli!l znLQ3#oiwYzoWdlkD*MKur?*7QaNM^5G5_p1So&bU8rh-^BkJIHHQ5nsh3)Z^DUG%6 zU&TY478BJHCE_KjYG7m3yQ5!pYLS9O@_?}r8t^OqmN}LYhpHR(k2o(4H~Yzy#yz}4 zc??rd3wK}Old)A*mf)o z4>ks+4;(8|)p}c;E$_@!Y)cd*np}v7T6T-VAkybBPuhsMBy-#xT9yE-yr4O*WH zF?f3R1|ONyn3=gI4vMe$*UFp=)2Qn76NCN>*XN!;y$cXcd&NPg4nbPTlQxV9K!4di z^dO`;_{x;V-5d@HFuZ#S%|4)%Mpe>xgFYGk3}XlT6d-=yOaQN|ch!t2dq%kZMn5dB zQa^O_l_@O=%n3%T6<5)lY+N#=O2pXxk}` zo}#LgKwAkQk8W+1&DJcC&Gte55!?@&NHGDj?URwRb^CBUzyUl zd*FHk*vFbh7guMEs*0n>ycK%o(|h<7AbRu}2UVu~O4jwtGU5q(QkS+s%dp5trnDgV zE{TJ*TeYOBMMYi%Y7$=6s*0J)q|OD2t{-JM*L;oEMkr&Veq-v>ZihtmOs@h&%OhQ2)UHsiU4Kqw zI2v`MjF}wAyk$ybuf_ef5ihD}nQ1RHs*ym>8uQ3vhJf3Z66y*4l15djxSBYH#Q9k70>sYPArPHiRE$5(iQ{-5yRe_9Soz45 z7KA9b!Juz=6m)ps4UMY)#{0N}MEpSS0>s>Dkude}I&sX)>x^iMYqc_%HCgPNw@hiQ zC-ZX<{QYB&c&Ev2jjEQlFzN~tb1+K62|a5dcvk-@CYx_EBA~oc4~)lb^?lwlr3JzD zX&;E2nk!DZ@K&R$pAxP=ka$|DAmLHA7pzc&rGIX{WW*ipAC2+sfu`6$D2=s{oVq}0 zi-yu~#nwbsQ?Y+sN8;TfuL49$gAVZI-fStz%8C&sG4iwAB~xi;@{%cytGk;mVBn(3 z(#Y`gCaP+Hv77m>nac1+1&Je}*6>{0q)kr;K}ECTGvToj983o z&YEZ$h6Z}cl*USh_Re6NG+bM`u(^qlH*RZ*`zCz4ZLz-LwqZQBS=9Kxv8Xzb@}S9lfh=^s4r4(X?>Xf?x{ zn5c@zCTM%OH=}qxDF5@NTCZ9VBN~k}>fYGTOPu#&kqxY@TFe(*haFSL_w_eX74=Qi z_V7%L8@}-SRc&=fE+0icbtQ`h_Xny8BU#c6wjP<0K)p^Dgw z-+VX`hxegjKi~A9mrQ9q$t>Cr(&O$1ImY;#sEYci2jiI**#$EPzSOM%MJCOWY86r#(I2C)W3itfKJF<~8Z#j36b0)xv~2!;z!zNJTB zb_1%SzEDoAmcn7xFE8=vS6fC{avPRm8*nDXVYMG|u5>HN0UlygYo~5r0b7}>PL7i)H{}u7Kb0XlK43X)|AHDh9#Q8tH`?Q9&>Hx*`{$d zPPiOx25Daxq+gIZL4EI(#vI6pp-{0xn)(rAMpQ-P^_-YHDGc`hEURuC=)?#bL!dN9 z6c>jTqEG$N7vMOfmT3OG#7&t z?<0DH)BCIGw|o9%5fhr}L}|=O$rudBuF4(OfJ}jQo2TcpN<@Hg^A$O?Bl$ zMqd6EwJY5ETy`DMRDZnR7OxwA*BW3PS{A;;*u-gHy>c$K^iOIM9!sAa9~t|czo49Mo^C@r3GPL z#!$F-ZlU;WSPt`Y(wGM)MvWT=yLy)u*YC_`1ohlf8u!F48Va)wiulR(9P`%F*bOHp z2*Y5f&$yrilg~1OdY~yS2=$YPzzL7_K|3#9Vt#5GgW|-%q#+=kS(x7U5hti8ozl3| z+jkfgE&E^kg!X5c_ngMkIC1UXP`EU(nfl`xCul@~(&#DLH4?_(T&5NcJj|j1G$zQ2 zHTy?GxYtru@ZtoGY)~54Y9B{~__&bP)NMJ7X3*FsCo*0~!(XfZQ|;rIGJ?iiC@lzj znP`|@uB`Uv@M0E~p)p!c9KSRM$~C{J%4#YjXrzhKxR2#`EHtuhqRs!%S)wW$Yv#n; z__2`CrG!@XPzWPvE+?h2Cg8((*kc~1{i<&ksfuQsa^mW^@o+G>sWg7>pM25pxfyvG zrqmK~>vIWnQcEW!O3laq$w|#8EU~o6`x$w8sFcP^&@B^S>$0ZO0pC(0RZ$N;CyuQi z3m0Atkpk;3R4HM}Po4WPBQHOd(t;3ubtJqQyIe9<=%G=SCBwAzlZ?C!Q%-dK5(mo) zjg&e?3Cuf4Rg}hRR^nLrDRq*DRj_3Q^F-Dpk=41}9RVO@LKJ zDo7(P03)a$meM$<-ai4_2UL}ePi_QJ6^*NKq6d1mOGoY(Q(J6h1obCV8f~J(BskgO zjQD-~JdvtsM2QnUOHKy)Xb&-aQ6eL#U!2mox9{*INLo5u{2I1Yq$(O2g7BvP1jwl0KpR}bMx`nmIp#$2mI=_bY*lUVq2i37@h?haWePld zdCTNrtx7^wm8xh2oD)7a6JT!_56$&uf=P_`hHNUibnD|(aJL( z+O{69B|rSi2%4=c*Y)(J0 zkrqip&!dd6WZ*w}nUR-)Pia9Id?WEQ z4>vXHd!;H$V{X)&p3vfCyrkRSX9V>QQyRak1%u$?e^aG%`wnSTMdL%9=+j^*Pm$exGd>V_f(D*4Q`XkYHZ4veQT~5#_5T$XR*dz}3ZP!-U zO`ppmKQs=^3FG)!DE0ZUIxIPn5j2`bX+elPIvQp#d!@QhH?jy8jc0SB)afYb?uofL zH4TiQQ8`NE-q%q>!EI4X?W=r9qbeGg=Y(nQP$+y+(e94s1dT3I8qdwR9|_gE4bvJf zIHFM%%`f0YnPfb*r)W>jdR;mrXq1%Fg79d04|rgcqP3iUOQR~9C&7tbh6qUgzC_EO zdV>*kKMtj_7Hd`r6u-1fb2=xOsEY0w;zU`jq?3EWAnm{XXV1^1HyL@mgs3Ir)?_JAEOFphNL%(2QCbjk!ej{dSSuY^RmMbBG`hrz&tH8YOIj-(bg01y z%O0cWZ!_}t7*QI(M8C2Sdw;)F*H6sbiIlIh>=OEdgk_fyCno#VgonpBNxL?AG0!$t zQ5vmiZ+EC&Vv6+siytGX@14?uFflU#c2%4!*+tf5{&pID<3!BU#&D@^LuuXlI*gz( z1WKbV`P3XHeh!h2#Z+Q(0~$r-L|kqwXtgU>{65K*5i}M;X+fxqRW>&Wzs36Q4lMpb zqoJI*H=`Z+w@nmRJm&p(C_%Dki!$F2f>NG&;=*eQig$aHFIe8psJ6W1}=i8oIWJImz|adVL*OB#uVe zIk91CJFvceQk{Rh93yC~kkU98)q~;qKOfXhw=1#uAk7xw#NY+3AmFd+npH_o(3mHs zaVOHPCNQmCs5YuyEfyK2Sr44Jy1xndIJeV!d2xcqZYhm^pIME-yTlmn#DQ8Y!b`I^ zIPvC0BN%gXr1t4KCuj_s(t^-Dqz)`fU#JaS>BHjAGz*0j*Iw3yRk<6ro1R{bpgRsJ zjn>DfEX0i3uf6Lany8BIiR46JX9rl;YMr#&>d&sm8t*dl_CeAZ8@E1oD{`empY}+z zeE;m6%qJ{S_Md3sEW0HsjVEnPwSv1#HcKrogqWy`#_l+=am{_H_SaR?=Eq$bVcE6i zj%`?WQBoRDGCP+h-P*EMI<$OH-d@Xmm1WP@FB}alJ105e@TnXe&Uzwl!2QlNo@v<` zG%+kQZ{MBe@BDqxc*^n97t;8I=F+7Fy%<3wm6XP+Dw(e(zcb?`!=P|eLDid?3*`84kOwR$AQ_nRO^U+!TlsM?O%RKH9AY2$yy z{2{qgaD$anoo?M3L7$bSjeHuiv^Nyne?nVV z-Kd=!V$jbP%2M3Vc*!w;8T8t?v;6rpFZmVj05A8`tVA`l?3|3h9S4st{iPL8`5~G^ z40=PyEMoiEloo_x z)}vwn#%)^3J*8EuT3Xkj@51|Nkl`hBB4c=0m{a(!_OQ-I_C7j~Fz6ALvJ|IHp7Qb* z2K_{pETx;D<$X9$=miNMbF^t~mob9AHA z=7e)k8@RHsu<5I-C;P5CV_taM@>$B`5D$6nReaL;x8qLB8|=QSJpA+WrM5S?E+gpI zM`=9qHsFL5+_bPMt9uI*RXGnd>bLP53;WhU=0x|d>&1CRUTYg-`myiI(kFZ?XDR1b zG+^HtR{0+>1j29KSDQaSBhhb(ekJtl!5!2&}^(WGSsCddqh@8uaZ& zvXsl1*H^CtX0GGkAIez1_FvI$A={9t^}TUd^FNIB8Qx=^fg7H33TA&U#opzndCKeN z8}xHh3&#{d@KRjek44)bfzKg%7FFb7v^jUpa zZO~6z`Z?CGpfxV=&O3#}$R|bAFSbP(LEk2&aplzxE0{GarCJv$0#sG?Z-d^#D@%Fn z>?d>LclB^kW>-+BDx9E}h|*YTYH&FC4Xv*3%&-Njs?yJ(2Zd)T^Jnp52@xYS$SD6`E@_&m&l2V z5yN0r(@gc>3#S=Dqt=why5~KHLC26xbx+P|7Tcy(LpU+7NHnZi(^wN*&y{G;p%#@} z>hX`G;k~V=mi}TkBk1o^S`fxG9s_+x)Ye)Fb0n&wV-zRcJIBD3zzW)s^D`Jh?}O6l z>)RItW!u%z(w-%-iYIh`B`2=#kAXG4YG?*?0;_mJRg}gmH@4$oY@@bXyO8I3@$>u| zDbyNJ8h!dR;-TlMf!g#}KSZjcqYo#FXW}>*zgQddYj-*&sP&;Vj?UA@KxU>7_l44eaP3e$$fc%ea|5hdJsE0)IWhHnEHvCRS6f?jBqJBiYbB!8R z(RmOjA}55x9Obf>`{@oN=vYf>L1^711QG|{*50Jv(x{5guQ=gVwkC{N^IIER$H7Di zI;WyEjJHP1Kl|A1zs-iWEIPtlZ54>;i zRNE|H~>l=x~Rz$>`hcf*HN5!J~$Bm z^*E~iDCfWkdLNX=yjM>TXy=rzJsj@J>MhY7HJsQ~+XH&IW^2x4Tv@#(s-iSjP#)q6 zE*(y4Ppf+|g3ib&joUc2Z^podHrBXZjA$ zr59UXXoUh~HczB8eNH@xijp=I{;92R-IWn^1xac2`#6?{-G$C+)k_63pA5Yx>Yu@N zRO8Zc=IvSR=ZzRa>r_!1PhA-BU8;TTq_+7{D^{C|&T%<0y!|z4QTsF6-bL*gLH9~f zS`geFcS}(-FKTzUbj$O}T|K0=soIGVwDu0A1;O7wMS45zw3hr| zUsf@TR_@`%n~RgBGiy(3eYy-_s|m}>tK|=@=~VuYXCi+UhIs%RW2COZ*R<!RMq{6XUjJD(?))Kf?zB>TiR19L%VRYA0y~}SlY;^1)=(f z6iNGVT(cU}kJTx%sPe0TaiY%i1yYma$EBzS{qm{~d1L;KA@R?Z@&sb(fkAUc>T5sfyCL$GueyTvYH}%V!hw=G6Ils5GOM(t=Rt zOEjc4sv<>vPGVWC^xbe`_u)8jPz7nu#VAHt)&}``wv@&w^6#OrC-supd}l`9+8|#= zpA{!IzKMcXiQU8(6NIWfq>F8%JsMK-L@!`*I^CyA>IEH5&6(^gVOJ_^caDUbS3$H2HqsEF(V` zWBodV9(6B6nV@^g>&*r|3HxSyuy{X0Tla#B6%R=7CTeD=vl&f@K%CNvAt5 zX1O2q-EhJ`V*o7L5-sWbPBX$X3(L<=p)|(T#*KiYHXEd%@162yulXwa);LkRlnenM z*Gn(zm&uzmb2qAw{4QGZvz&6rB~9$*QhVU%)^l0ma8i1;{oH&W=UtK z{F%w*$7^YPn9_JogNFy~Jf9^sp5e-3!t|avF)+Cp*zeyd?Fwv>H`eAyOz4%Yk2dNF zcvTB+ELZhva%u3nmLu)$8psG5iJ`P0#EdEp(RXsB!2W+`8Tqkh8mZ=lP5ON4*`T9R z)e8NYPoIt%mJug^EWuL|PtBL!4?HTZD$fZTm7z5H`s8y`s}nn=$V1&(REFLyCnot_ zmqy!}rNn{l8A0Pllt%w<-Rshw;%4b;WP27Xvdot9pEM_CxhF{8H&03x3KS)gdR?s}Bj~kL8hyy$-b#C;&PoyC!6vG5z_`lR(;3S1s~$2Z zN=&o{@1ScE1WJscUk0UdeID)%&!(T10?l3~s`}@tL4Sq!@dG?%PL!Ne4K`P~A{F~y zlM%E}P#T}rCx395X_iJlaxhUz5PL9(ROEQ75F4D=#sE+FDBE4xTpspzqP$()XJi zG^#2(*r3l$&rtTC!U_VUJv`sJ=0MocX0KFrP%0y+t);XeIJ_GLk*O=CnmYp7==`ER z?y26Np~Q!K%bZy069tORYN?D~ff01Hq%?YQ4#t6V>};uUZb_A@*0nU~J9cI$##i1l zC*GfmgZNr=q-}RDAE5*tEh&w&@TjqHvP^_z`0`k!su+ydJ==sM=QJOg6C)19!-Uuf z>E0JUhodtjN(+KbnHV^4tSm)`%#f(6Q&)pNWmSd}TgF%Bgvn|QRGLv)I({vQ5p;$` zY23}Rdnn9oq>E?UX0bW-GmKhpT9TpIEcKN+QT5OeSa`8HGp|VF_HEUu z%HlT;!ait;9CM;aP!ISRa$WLpUCan-)hLbY+Tue%tA9*-KTOuB%HqdwzceE+w#|v! z3x~q5xw_=?qY@*iRiiY{$bOFoZN~;_#@gB{Ras)@q7o&jRiiZS`dt_e zV%_G_PMhfxRas)qizZ~`cPj5k^ouNNLd{QYuMxznArDggey=-c>61btf{9(}|ePUX+a^gXG`JOpVzqcY=*;U#Ji4$|u z#P~j=O=Bl-l$J-O>f_?FmF6jBAm0>5#$|0VM^y0I!m4r49NO%pHFCLE= zVCwew6REe?Lj6XYY~|wW((*!^h5G9D*~*eLrRCNe7wQdqW-F)n+9NTf-9)jSXH`?R zW-XzUONt&fJ4@L-qNv>D<2=1mQkK$UQc?NPmlVA--g!)v9TN7BhKqw9S(_GzMSx?! zdHPnLEM?MuTlrYyd3uI_mNNOMt-SXY{vD0kJB5lO@x59%vCO(`t$M3r@brALKK_bX zi5_etyKhg{uV2H;EyHc(FK+Ynl%iS6iAuIeY;*{L!jmJ@r@Og=t#6V();deMCRodb z?UM8*npv4W*Gk^?ey)D#7}ilKAFW}?&mrk0MNYg4PSX2gHpIY2oW}Q&DuK)N z`s$m%>jG8HsFtM19l21+xS$%}HOld)w_1+s? zdd*h{x;F%>dRr?=e}5S3)}FR1K&V~3p~Ss~Djep-xP&A<_={P|SYa(w8fSfr9N_5C zLfVseVX%5Yk{-SnGdAj3*chy{AwRQL(HGp`O+Gn)k~~(AG7qAx}rQM zQo@t;uKUc&Jy%ZS$T_$=^!S#k&Ks=&Rne=W?cof$PYoD7=d`+StIUY7r0lE!ZT#RqP;YaRUg;mRk}}R(K5!{XKlB1? z>6NyTKYvQn-JW8uT74V5^TRnWq?7giw4~VHj97@zYSK=#Qgs-o1)9-uWK0(z|8B_fhd`c^H56hg!F07*G{`o3uUr z5^t@QAY-srZRc>vewU>8-fUJz?Xs4~J16Vg9-5USij8b9ChLRm;VBqhEO);9 z-GN$_3&R-E;6{>O3Qr=@)^ZwavGzYDZE4(2J1#{6RnaF(+rxEj>nthSB}{uCGKdk! z4kqdQx0{u3bF2%zj~g#uNE252XkDiE2CAZOleULr)N&u`+ww%seQGoqnkD1Otyq8c z4EDQz$$IBpvtsOTBO7L+jlmOKa)w&&yy(ehl3nvTTJ_JP8F9B-vR-3@S&2QxX*})b z;RLC#Hc=aW;V+;n`b24a_+8bQDcv2JpfxJP3B#`>eby$7W*o3C@IGo!+bs32GeEQb zIt-|azD?SmAT+&lJ!nW7gO+x145X$e>%uCt(&VBwv!c|x3c{%q{^HwmE3~uwI8kO~ zvVIHCN*Vtjr_oXmJ|mv5yGVP4yRoT?K2d75u^w`RH)4PLRBh=DPUx+Y_2+BNivKz5 z0`Fta>ZVeEdA4@lJsOybyiM93t~rCp2d%DlQOorl3Ur*HBMu#jFpe{6u3&)q%=;@Yp1jzB$TTw zg&jPsJx;=RPQFpc*U7q*n5A?-ZYvicqC%vMQ~R{SPlqysetne2Y{PnS(y|@fwM&JE z0#*5&lXYm8rPNQil{qnTQle!4-zH7EJD3sl>!Y+FZ17ku?O0>ff^8y!s#=>r)-?FXeX<2Uhy(e`DDVqk{%A8mbP!xtowbee&=*S2<0#F*y zqDyc9J;_T;JBR1elaYRSjb!~A<_#HRF@xUzQ;#(V;6Y2vWkOPmZa}xa-LFZbO#*D2<2_9_wOC20vm(9q0t|aLx!?Kh< z$82OyXf*-sQwOUPw!1Te&KW6<8C&+ai%wXb{?^%*%@cj~BwdQiQqCsZ$ebA7HU#!~ zE>BmpTo^&;zLdr)%@>;oz20BUbpCWVptEf{Z>RHlw24j`K^}98nM(Y}32Fx^jnyya z>=(x`C~RtD-2vY)yp&M?zP1ndJyX@DY4h|V z%l@>%iSmi_qyaT=XvbP|f?737W3Kb+HBz6QXSIl>J%Fm9_dGpm<)3H8iI;_UOPP)t z+UfxjjG$JH(&*FgeM)M3;jlLQNOz#BdQIl(qt^dft8v10$3J8b~ik=nUrbNjfYnclt&N(PtdIIHOIe>mo3dxNW(2irloo_mL+VL|ua-CMs1OQN z)hjVY&$*kW*dMi%IWciaxYVMzy=iV(8%9v8MrqvPc5l4o)4sT=`_M3;su}}Q^j(j$ zlr0%{GAB}ZFO)p)+n84D-~_d5l*Vtj#CqxE#NXPDDs6$Psz@n%l~-AcTb7;73ENxy zr0h!{v`eeP7(uNXr7<%zAyZ21`bd-UTw$tOTQNnq|A;%oPTR?xn6~VyG$Zt;cD6*fn64g%T#G~t9r9s}hb{|?Zf?7373qrT; zMd0w`f3)>`S^`xCU7M#jw$4`m-C-wl!hE;{n73`zTEA`12x`?Rjq#{|D}eZPfp)fZ zGoY%QN9O5WOJpne{|{{s# zuf+&z)hI0p@=i+c}>)$cbl)k^UMs``8Xe7#ELY-NpSNtqMw6&)mXvyZ87sxKp`Rim^Z%=zgd z*=2f|mfY|Ms_LCGU%yx*TX7C9DRW|}LqF-GT*p);xe+6%RiiYHgN>(1FDq3yMJ{g) zROK^xz8+RDTNxWsQszYY*d@}8I2Tj@>OqX4R*lja+rEGmhin{8S$jpGs_16(^+`V2 zN@`?DnG;Qm9Fbm4DQ&viOkxDJYLv!jbvsAuw7H1sDz03pD#~@f-lZ}2!4V~8PHYXj zEp;DM$W---#0YBDD2?$bcqg5x@<#jqOaiK!@I6J>#PTwZ8=U* zt43*zO*FNGv)9gO9#$ey)x8@j`kv5iW$M6^GACLtDh-nspU}FVZo&v^)hI0pypsrFgfJGAHIKZeV<{R%`#eAtR_&qcqNU)jHtiJ6r26`vFy* zU!S6%>Yc50S4zs9sIs;m{OdYJ8-LD+5!9+t8qf5;<_{G!WbNws20&Gp=i&Ppf{`Eh zk}@Z}_cVmjlN)LKn$%|mwQ7_`zfZSjpoBhGYxvXzs;WIcMSl^Ut^6!jQs%_P?lLSN zbX)Zct-%Ot)hI0p%RNJ(-+32x-tbC5RiB2Y==CRJH0wbLnG+M@L!m~5gL=3;C#W5y zv>?p4ZUftf)>Rv{s0axQ=j*DPt++Ybv)|>!Q!Nxa{qR#OEapV`s`g9+6bQD^sjeZj_TWnid%fv21MEfC&p=%n2} zSsSQ|zGvDV)|08)2%;+X)&9z^!wA!<`FeAVJ5KItU*Ibl73%?R_fxfN5%qzp==Vz7 z!&p&bJ(%Bpg*JIq14cZ>5hrW`ekGCi1-|wQct)=O&coWQk)A+RwBOP81YuV*S8#Sb zsXgiH#fbht=IiE}7~33XU!d34{ZMueo^ZlVT7YLrXDiiv z+ZV8+m$p5SYP2h7syN6KsEXQi+8)lx)?Sp#OsHtOwgBHG`Q1bP7wB(?W-C|1>q%gFuYELC3@Y_daJLRECWL)*je zYM~~^)oW)OHqn6*G)7NpK~Sc&2+HZv-SjM{DA1@rRZ$v!eQ)QA5pUX?G9Q*@#K*=9 z^a(g4o87241%EEBejHO)qtv~wd2H`+l}F5uLMnNQ=Jh} z!a{v#Mz+#ye>s`bf-qV0hTAjOYelcu0IH(ajuXFLd%&3IJG4ThYcgW2(?We&`kyu^ zjk6`Uny_yFIn94uO`s}j?KpAYx+>)MxT#f9Inl*$ps*1VsI}vS{od(2vMXentnm*Vg)$$H9?L6ebh*rlJ>Q+hF z%AK%sGNtjn?WSv_p+Sntyv81=ids8P^s103t^62ba&#}ji2E-V>cwVcE5~Y zdrs`J{x4J8@a^oX9uHcik6D_ne6Qlja>{Tt*ilQew;pC{;-)czK50s0WHht6^jGId zQ>}Fw?CDwsF47-kMw@H6qs$5Onh8>;>3vM!!mcoaele8B9fvOSrIigMO!eTNL{5(< zGVB>aEh?okpW$tJDAv;6^mpa*%!+QGkg8A4&Q=<^RggImkLO4ES1M+jAL_^mIx3ue5D>iGKWlqfeJzeT!JKXffb2%fZRim^Z{2RSQ8jv%{)UD=biK@o+OVc0y zldS~jI?J4>Sa_#2c1LfMUVT3!s8yph?ujdLTzb^{|FCt}QB`zbUm6Q-k z0TYxtTV@miF%ZPWLd8T3#KbO2L}>#XyG2Fr=ux?VSlAud-SJrOL0^CGK6m~8_^$O` z>)9WNd+*GinRE8pr#uSE*26mzQ+C{b9RYJy7Yt-IICgJ_DZSJhtY$*mAzv> z5gc{)<#IaWbcK9lx`o7x`WNa#m$@!VlMUZFfwLOcY!A?$mat)wg)(HQ4&bQsXO`0m zS1aVC^%fE@!qXdrJE^CTc;CB9W{z)`9Dmec7EE9C!9SV+7W z-M<+WT7OpUiZbE^&T3e*%Cq=35H#qFs)La!;HW{Xm(z&%Y<*0W@l;d5T#tcEq)d9iO0 z+z4x_DqPqAaMaNG%jrRuuar*~5-*1Q3<94euBr)9yueuvYc>X8+ZBf2k1d{U+5m9W zms!hcrOg?+kR5{;Km5Cb`I)HVlrQF-zi6LDEX5}BUJ+g;P!^O)t=aRH zZn%|{H8YcbXKycpz7?C5X+KKkx9-_2#bUU86bqcyux9(K-FzvwFPy0i*t1B)QRU{D zv>jWm(0h%Q#EV?d*5vkxX-aLwTb#gI4Qtl-d}BW%ER0tkWEc?~HT+Qq?ZWczxo1`q zFYK%niR-utidI^4PT;JDHTxW|SCjK&$11}UdJ-HJbufc=+)^R?HMf>{u{5@j{L+b5 z?$?Rq1kP$$vuZ=1GsOMKKxNtSWP+n+BxX=O_9i?x-df^CqRsFFkhR2%9_Msmiz+~I4J_mY&T3e*>QBA8(EFRO zVpY4G;HaG>gT|bykh^}gmUyvnw>eA?YpzVHRmlmQ)v#t&VN>j&e51W0**qjT>Wgg# zJ$9i&e&}K&@xpPA6R7%HD%~DG;{?uXShF5mKL@!f$G)+Q@~MncURB_wa>`m`)nj$d|bz>s6tw)YW?H|&T3c-!aMtJU{!N= z@x~SP0Y~k>vx1JZIwPM_Y$RUP_U#6}JSG%7r0@dgL9E$xNkxX=8MB#6m0=?l&V4rd zS@cO_g}gYyR;qn9i&`dE$YZ^2Sxy{DcZ(ZW&s44rxmt_`&T3e*{kHf267Po1R4&+N z6yqqnQCajh8)2D#)>h($*?B??qoyma1~oW=vl`ZdP%mZ_8QpxUa@4r69gZ?+okf47 zvg^aPvBZmCuFJ?Lh*L)Q^c1ncSq*DJm^Z9|G&vuu+)!^7anu2wEZTytCF?i7vBZmv z$H&MCGFovqeZvWy)v#vWtnOVS^ZbV@uhb3%N9kV8q+{4z(bVIOC0=|Dd_{(BjZ}QE zwdVxRYFM+5i)XdqI}KBAj~qvE)QKILbP*c^xMgf7@nV6AA+*g3Q6?On#|fO(ux5L* zzBGq|RiN~Y%Of~y?UGE|e^-U<*4s|vMZG9%FqC{0gGL)UfwLOcY>$!g&hX3GS-COq zD8W%MI+GR^v3Y})b`mc-xO>12M>}Qfu@juYSq*D;?lx!x=Z_jG_lDgdILbLJlg5;> z8TadU5--w%+d^=ho{}^1E+=qS!&(qZ6WKp;<-TgqgpUMAQU6TZhP|K9u46CpLY&(H zI!jko=XZSJ1kP$$3xat;FzmA1pnB-63pi>(n@oD;3A;Z0>?K~5Z0rnQd{(Mz)~v}1 zoYk;q)wu1uL0q3ssspEt07p5s%%r+sE975;>?K}&&+Y~WaiXfw%9s;4t6?n&_N+5d z>&pv@FTAP;ILgH*lg_MlM)sO+FY!X`+#ObLn^|1vJ1=k^#G0+znjQ+*Qsx#P6HVdZ z{4APORUyANb>jYAUii-mg|x?ui<4}4ad~? ze?R=^7`n3uJkZo4;?-_o ze|@uRL&O(Ow4R$q3)qbNktt0y&XOHRgP~i`TdFOkw+W8I=PN!QyMGu5!OED&D&ySi zoanPGi=JmsuP>T6(Ky>pBmKc6$Uw3CQA}_YzV7hx*xogh2>c4JtE{JmoUks)q8^zQ z^0!Bh8dvS9)h*$=iKBAzaxTG9IDg>du^x1y7uc_NRia0vbHbz~i)ynwXXJ86jqGDt z?g;50+bX?Uj3PJ+=Rtft_Br<0fJdRf;E zq*>#X?g6ceu_&67O&gD?kY{>1XxyC}xaE*hP7{@bF-65V3O^^{(-BA^?#SMFnr;IxN1IazlcqMJ2rwT{m=N)`JHv4*8pQvxeD=xQtal-vs zHtoue@!ukQji;poI3xx+uz8#wT1x%?xm2fph5X9AiBw^oOJ%Hs>R5e}5js}6b9%Q5M^)a-p|@Feo9!O{c&wNA zogQTBma)qIk*hg@zXhyW&&&-AiEq(Z#r^vN?voGMltXW|tB^YzI7z%1uxu@fts1Qu zH5kDO{M%s7#;?*8V%UD9GU1sQ_Y3YFmqXhEna|~AXRg%OyD5Va-nMXgmvfog_eeI)7{{L5L!BjFw6zQZ z>plj`{1EX`!(E%`Md$6UyDA z@Ld#ZL0B}aC$uvxP>r^#;_jT+w`9}9DHZamPtFoAx)?^loLBiOU$4iUz)u5Mvv?cV`L_6T_j#4OpJi@d9rHMf4sm?HCVGOdZh=11uQAP)2uG{ z?9;qBn=WJH?T!;&Bwi$*WY0eGyy8s*d4ZqKux6Fy(jJk18m%NOKd$<+EQe}GR>&Vj z2MOmcocUO7?chCP<(JXQwnex8=txkAvbk5v`w12QFf@;F~qyggvip6)&!dS2p#IQ{gE5PL7W!2<`NA#4mj! z6#YYn3eNhts|xP6!fGat%o4wO_fn1>)#n7h17OY8#IDxUW}ubu_u62Mip}KH5Z8&`@C7*RSVW(bH{Q{;CzlXo2g#z1x9^* zmB{jQ?Qm4>uQ~LRd4((nx=Ot8t84|Gj9V&Ri{ANRf%7@mtapN`1heNjDr2*&L>$%R zW)3}JS0V2ybd`7^ZtDoSZETfIvAP5coX@cqgyB**`1r|CiB$C^IBKpshlV#}*~igM z;>D;5p|ILiPg$uyiW4}WW6e4Oo$Cd|GViG}qSp`{wX`^gwr5Xd&63uLB27&xYb}@;5z`;tfTc{Yw`4e_R9U$&I;}*g?m%s zo>go%{K62i{S#0=UF8MNgIKeQU)|bb$tJlN6ezSD6XTm6&z)>HIMoqJ}s}h>nibLxYd60r6NRmar3JR z3!K%kX5UrpO>!YWM5$bNRfVHEkIkbe+2`od!A;`D+e>dq+r`03SY#O|a8|=w5DJS7 zpq5T2rNNB#DjapcbskM+Yj}P4xk!b)3 zj&iJ(N0*#rYb{;eC0?9-=L)diM_HNW#|fO(ux2@NKwH>r%g&HIsO;I%^O#A!k&w#Uf7NtcEqKh_4(B zar5$2=fe*X9JO_KF5S)6j80q7Oyb4SPlMsh*9=wLmPa{(vl`ZH$MgvUz^hbL6@PwC za8y4fmj)WLwS6y}NxZn;VF2{fYNJ~4?IkC0R>PY07CGD#Uay>0e4s{cz)@+}a;cvM z>yj7XDeaE&|MQrWMgk7c6KvP;2ecDdrmyGnRIL2 zO6k$Ev4W#!PG;R(S*MW2r`#o8tcxlpUCy;shAyz+1kO=dvvF$joRn6!Qf7ayrQoQI ztyj|C>~mzfdPuz3yZr|VZPrq`enyKEI7eYE2oL7egV<}{%FEbWDjfCxXC7@6b6O5& zR}?So?pQ!}Cr_n8SU%E4QB7E@!cpaC@~F+k({hnTGl>^D6)oUX zGbiP0at0@Gj>4L)D;m%NKJB+sDh_v0;i%!8^XRLor)AZeW)d&tae)wP*GTF5p&2J| zj>1|Hq)~c-pj+|SJqtr=xbjn<|)1R}a#EV&Bz2VoeTFS7+zMQ~03Tr{QkUJP2 zXTDJ_-n&S|QCZXT=;Gwl@}0e&5--XPqd@oSQ`O`Fn>c}U6xM9Ff^*UE@YgYwyrdJs zQ61y+=&h{Na?Q405-(2m8v*mYic~JvVVuA@3Tr{Q+;{{u$VpM%{JM_dsK*I;)P;2; z`FX@k;>A9T5m08hM3wSk6DM$v!kVoHTrvbI)$XdA9q$kv6_%by8?#O!vzmKLyja_5 z2-KCEswPC<;{?u8SPQ}zk6sYDe?;-Q7y5vsYVOISG3*Io-YRd27t?flLFa(M#V33W zIDxYo*6eNj&;W6$vA$A%su!2x@a{v^U7G)Ix0|-(E{NZr7$_F8Jvo818rG~6n{f|f z+{IL}9no3AQFvD)UR*MrNnSoSRc_p8yAPrKinAKl?8$P$KC(q=pbS~*tKg{WuF3y) zapi@LMG5im+&~Fy*@_c5t6|ORMa{pF2hAHPjXv2cI12B`#fyDmI&khz110sRH79UZ z!PX@F;c%PbSczTW^1LXa8z~I7;>k=G=cM9c&)5UQx zb=+FjZWl{V;H-uv z(>|#*m>rAnJm|xh1m&EYh5a_*ubq5(;DnAd?ljzJ8+J8i;ylar2WMGv- zEehF=7-rR7f!#}b!^@jQG%3&n-0`{UTOQ47S}NCxZZ7e?qlK>H;NatEa>P3M&z|1@ zI%R8}%%h#!m&#F7{_fEIuS+-ECB|+%e0sWytaGSEa6j!&NAl>!&ZYABcYpWW{?|L4 zy`QIyfhz?kNS%Z>N2|}DfB(f-l}BSEO6841y)-(E=RfQY-Io0#_Wxz7s;``X{nVYF z<iKRYF%e$e%UDvnNSxL=eO65arpD@1TyPsqWr#sYv zeXg|?{9hv4ucRpxO68yMcfaj_eec;k&dI~1s6kygXG4_g{Q9r!{{15>X?`5raV*+H z;ydssMGPQ0hYeuI^==COFIhEK(I%5h<@#oSchCN}4*^><`eVPCw^A2=diD9UTfx6w z3A{p9(cQ77a>6BdsU&+9d-g4r#jVv(`c=Y0(R6(ccxct16L`M?tOY?#StZt=>I25n zUWyItTt4HqTHZ9nMY=G5B{i@um9J~LNj)<2=#$H8S-j-Tj!{!?DjIpUfs6B-bD{~` zAuXp-seIs!E2mlaZ~3g4)X)Z+?dhc8DEyb;ucqe=#UBs5!jyUDoCvzXzMu1IIWohU(`+om;kan!;s+-lxhXgbf7AT8yIp&g zU-_eH;502*^))z~))Lk7q4tfX`=;4+KT*q7DUGGMY}Vnrk6K>9W*r0}=G}JD)O!*% zn7y16y32EDz+kl;-QI!ItmaPZwco4GvEcJ&mkLJ(_R68sP_=wGNmF$HxL*uN9u5zl zU*|;ZiX1wJ9ivcokgyhn#s!KvW%@7}dG59fN8xXj7n5S1_$})?1oEG}=ETpFx%6|o zS{_r|Ny1tXy5Bh>x?c-p9Waa(9EE>PUNq2N?RScOyNlz4RrnjN^D&cJHC4;)ZLBrE z-MeG)it7OXimq!>rlX8r94I;!P>2bLNl zs)nyvHER|ef9b`EZ&4ZS8dS@AEi5FgS*7gdd~tHCS+KvqUJ;IZp22$SH&)A+pEuGF z4+{GEdHhI#hL-z9EY7kX`pei~HHY=k$C~X%J0((lWt;$)8$IB}qgpFyNfWhv;y-f< zYe6V#nkQ~LI0N#3)FC*ktIrC0i+xvn4{3^dQ+@pO9H+u@x6z!)YPOt?^Hs~Yg3TnX z1!3y;x#IfV$q+Pq0Vhr!NT(Cqsb%L&^(3rWU$yla;!gWGXmLE1;3(~?bQ;61sP8$N zBL1_b-w5{@=(4$p6NVd>(SbwM^5R`}C9DO(ryxrVnK2TE&N<5oiwVnU!a(+$U#Kf# zEeM~6EE7G7N5I&|l>|q{uUbZ}qSUf`zNT=T8tOM&XCU0^@|_d6I;7EWX==HKwy}gY z+oxe>vUur1F9?XM1vsi8hV`;o!9K@LBMnjaAlogZmnpolZL8or8NNs1dl&0}wPy#} zRhxA}oa@Gk7T@#e0EbffPQIIjHCvI}ULmO$+@SJ>gMy=Ewqr!7eW`ptNK-6!Uq|L{ zkYQnE9Zuw#<3Kfoe5s*voF;THzQ?#C(Os;Mk0fwLQ zIWhHNHuYt{`Knfq64rw7v*SAQ?)M0&let)hql&E991F|Tzi&He2sl5N959~TmxZJXOkShL6=;9iCrIe?ljgAZeu19t!`5we|7s} zEQCIp^p%}jo~C0XVa>j)kY&VVY8=$}S=O>T^Y!U z1>2X?(@ZRhYan6G#`Jg2BV((^f=$IDf}`r+U^|r9vs~hWmGv@u zJzOoDIGRXUS9fC{Psqrg@Gj>!!BMWAmeIp~)$-7vbv4BPVQoq0J|QrHt%AVf`1_?a zaG_eZ^f#8UX5AJVj3l1VWO(9W0XS+L>j+dYSuKBd)D*X0w;-q3P97z*+&QuKVJaPc zQZ1icXDDIK&fU?2$*YN;uw<_{;3)grOKDY^TFy_?6rU%0l3;_zp!Y`NgazwPdC;g- zeiNZDVa@J?PJPL)tcK9RGXQYZ4x3cE)|Bl_)$+If)TH9et*RFe}pt6?n&2{j_g$MJn2CgZaTN8#r-USv$R zC00YCALP=qRQ84E0UKNhQ&!4=Q=~IuaF`ESAk1pZ_&T3e*@!f&| zQq(Svy%qIV;VAr+$%}EJwTR`K>7dqvGb1m|p57L1k57aT!Reg9Sq*FU?mWg zezz-hdSL=M3O~>BqV1z&;*3TTtaEL`37pliX1$OOnv(ZcZDGq(H^5QdS}vuV&Z^}_ zQw$|uI5asbPQ1Z7(V7!Z;GBpx+x2ag5&1FF9`^2*07qTwm`b%8l*&~^U*g5}*yesc zLhD2J%WfczO{M28*q(!~`Vtn?-=xs^E^Neeazgz>y*feem_#_;Wuje z{S*UE3qpP0n&Q6ap76Zf7jP8*OYrg7lYX|1pG#M7h}_`AiL?Ee(jAp*c}HJEjnAQf zFh!hT*#UlJI{=Qt-zYvF8@)*8>NUc()c~@o0!Pq7Y@VAJ^6Y)4Bs}Wx7Auczo2Q}M=asq!pSPQ~}UwUL& z&syOBt0&;7k-buA)=>7VMf2mA?2Uf;5wUZkF?{JC#tD4JV9h$jwhSX4QNKyRoL<~{ zmFb;A#|&ck^AUOyFIFYE6N@Xl@a1JsPT+ex)@;o3M+}&C8cvqKP9=CO6pwP^(NFfy zxp5SY8*TiJi;@{rt`ZvVPnC@tl0bDf~W2h)+}FX4TYs~>7?MzeuATvhPm{}YPI}i zuBI@pH2}U?tR)81PI01nog6wMkiCBxx=L8Hibi!Li2vo0(_6|3j#_V$Lof7F%V!E* zG{oc^yBe1{~!)JcH7!CGv(t znqoce1oO=EN$_R^PIS;-L330kGBmT2uoeXW$Uw+&$tIgwMGB7cGhIP@o+**_8)=Hi zLuBx_$|en~OgS-ndpgxGDUo~4YA9hX2;rmyoPDsAt+A~KIBI`!I(>JsL~anTDY`EP znDR1(ob6%33BAZ=bithxnLad=ux2~nX0?Y@zd8A zlBSO$>-IZwLVTY}R{^`@h{h7ug3xzsThJfapA>X)0vvUs)>3K~td>i{HO0u1){tS} zl^osS#)(D`Q)tlwHtHNgx9tdO1}sf10Ez5=&abE`2Xj ze#Mg$xnGj09vd&|e!7-~HG50#*_w^cHz6ahH3J;gw{8mEeOE0Hf2%1PH*EorKGr1@ z#1@>e^G>EKT9(SU3u;POv)yjCw}f{!^@&lV=76KN2Pe~GZA)eEi<+YRqc^lHy)V)m ztvFG0MG}q7DV3$KIuh2b8aJ#3v@f|LzCPFzaFpxLB&xN#R9@|*t07|ki-mU|SCUhi zbqUVMcm@m4Y_WALMx)_G?m=R;#)}g;J7dk(H2fX~+ClqBzpI4cr~vIeYWtIo+>LK0 z@gl2U6kKk5hK$`kiW4|HW6gfSrctm3N=Z}iX#_`Yx67s7wzEuK-(BK`o>o5~EpL&c zb;~({voqGL^H-;S@L|toA`ZzTI4ayahqf55mQ(w=NW3WX4uftH4~e0&hZ8v0V$H6o z17TnndyA~KIZSX=-1jV6=FUc=x;sg{aJ4MiEWIT->gkjW+V^n@ z+Xu^5;>DAn1ZwubMLL>l0TwtrW6jRQ$o5d@(gk8WSO;*_b*B|{)Xfrk%XdqO7o!&X z!qH$@?ts-zF#66M>mvsag$wp3tOEe|IKX3 z37nm=X0_)9t)XnpVbUhK5#Xo~i`ad!jXrz|9)FTDUqO*BuX``O&) zg%m@H7pgH$VcxMx5cRAhM)UAC@Np4nYj;)Pl39#DJ9FOs}ysR~yl;93J*gCGbO zHw41A1NGoo;Al>)@XDh}CZ+P`7!L_+Rs%VyGjxtLg`Ug1t8mnTh&<}RX581lan}&{ zcM({~R)LRZW7jlaN?ssbbjavx6WNH#!+?RbLqv?YT2yFRYSB_ zwFEcwRiUfBz zIGiHFrTs}F77IMHX=H#}?!Bprgf;7p8{`R{F8V;5s?#El>J*+$H+NUd2Aws<^)P!_ zZ0`>@H+c{&nt#otWtMCfV5+@@HQR5y%n1e!Xa^65gb*B+V3kD|IH~1qH%(E)&jQBG zYY$(aE#^e@Zr1rrP|KAzwi4E?97NOD`@%061l}zO9^XM8|Bmxq{A)2((e?(QI_*o(8Av(a<_O*(SLbu*ig_C z(%U`a#0%DicKx>!d9hbR32Qb^ZDI;}8{HxH?Hhul-g+&kVLEI~-#}9=5cJ@CPgfW! z>j4&z=rXEi?}KF}W)jwH6lZ5`*uvJuof~ZkI4bSYGOE>x{en9*g`KSy7$38SeOeZr zXtOYl?r6cDcjuT$ShKa32DRWwUVZrf(+Y4@azPrESdGRB_BO$bLnc4Sb@MuK@0=?q zo()(^`$el|?}^3|)~r6Uh7RZs(}TWg?tr7d&R$BbW7TqatfuJJ;uEo4`jh?7mlJ)$ zQt7M$wVbiTP{Nw^drcEyQQ{ji$fGUbD5tno8nBzy`0Updmz6hUruhxx-7J6;uScZN ziJ#Q64Ehq*Y$a0H@1$*=vn1+5N5E0@5>u${54GI5tEPzC`hrZ4+)swB?9Pb>8Pc9$W4L`L`n9%^9*NxmN6kHzOfQGB8n_@$VYBxssc)M?60Y{@M*_S8;}s?OQ<) zWez8BcE*}j6)*CD)rl=&|NX%#9QAkuTf4+YId2EKO1$tBZQ+Y?M=-1~oShKY< z$&O&-B0-lew~BGpi+r|5aVZaCXFykax%=y+_Uo?--njlU@L9)6lESvpa#8J%x zvS_>~8^5|?C-LG~gPQPkR5&b)=t!`@*%@m=NLySR3O{v$O^rqn9ChSJ2F)>J)gn1I z5-;8-{30fq-Qjd;HYad)###`%{nUl0-mL#;S^>dP^S7>`pwI4V#8TqL>%s5I9NQom z`|dO+aCXL85JG$e_$>Itt!>u{jvCa9bqh6O6%cnCNW7?Z?+J;BB@n;rJ120i#hQ&2 z#eODr*uH0Tjo;q>AT(P4YaY~Npx6F56#&1!4&UXk$;&M@dr z1He(k&!kZU_FS@bpozo_JKwA1tbrZ44{OQ^oSm^|vl+UNNqeOsy!Ukl9Mx>&QtCH_ zjYbVOmUuDu(Rq?zuMT`W=feq{ov~)`oRjVn&nbG)EwC-%sLJeAy0lO&Z)A4^UQD=s znk+c=ncO+ki4!+SNt z@}G8|WPHpf{onKl9Az1jOvmplmFJY`O1#+IYk>IE;Sq_RI}~tjcFf&m`uxj@o-TnSL%V zl{48fc%cp|62<)cWLVx%PT*M*tl6wgcnFCh<-~RwtLH>>H=|c1)BQ(E9iL#EAKBJ zG1upW)GUwwC{fD~T6jrVv!3MhdcliRy+krsA8^!X(>ywa)i>9?=&2#@b&G)8-tpo` zS3^z=ZEblY0#SN0F|}Xpajea-AERV)T&^m{&hce9*WNC$fJn zrQP3@$PZ)_32Q+xyb}Tw4|NocwHpDBN-<2MqrbD6p8=Xe&@Gx+N`iSrs*a^gjC z3U!&tGJ`(54SbRSi)IE*GE_W?CG4O0M z9bKxH=TE35Va-+aj5UHDhd83H7^o|C(+kS zOXZeJbtJ4=-O`X?*evhx8@}BNaFqFsB)Vk<8@W5BDGJ{QL7O3S{04Ti=EUv~iL}$N zQh9f%wuCiXZ{QFNCmK)jYh_>!I7-VPiH@#OCNE0V6sPP63=Q@dJ%77$Ge7v>#aa+j zVga@fnImrVa^VD?o5GrnC+;J#{lg-$4I8z^QTY4eMW0^nVTZ{^@$>ekoWOHzShH?# zi2yKZr|8GJ>f$K;JM-d59NW=)yIO2p-h>l)t`KXsm+7kZurKnG*khp+H$RBaS6+CY zlE7}&Gto2IffIPn6KghC^w}T!7<>~4IyrLlocOxq#q!V&aJY#sdH1j}C-B@Y*6eM2 zoeUcm8<84;cHDd|&L6zccMAZ?-i$O?TXO=>C}Yj4CbK)js4#0X_N_HH?~L;xFT#QY zA>@V~A#M1%Z9JEbHS30Wr4#7AbtC6&`1y03&w1gtpIske%}A*;yMLgWd|VTNwIJ*q z9SmQ6e8}iC^|?9#e3#*c&x9`UU!V`ETy4S$uC@W)69qx1M;BPqOd<}y>T>lA`2LEI zCkQL&cZVOFfXq*?%?Vs_fi>%SmeL)Hg&^X)-;k@zz|RT1c>gpEn$D8R+B$liz_lh= z3&M(q;jkkjgmikZ3pfft@9<(;ZZEjgTP80X*5CxLnZcUv&h?@fEVS%QeysV;)yd%J zHeQsmPE%KYiKOkyPn^KDKUlNf>pu2_(?dECoty8udLR7!$%}}U1L4HX=H#OCloPmy z32U~B&SDTu%V|TJU4O*YE#c>AURZ36f~lPvlR>|3ast<4Va@uHIS+-ZlMZB8;B~J4 z3cnBVqF2Rm)}Ns^QJYqBqIzxczjd%!3&I%NXn0&?L_SP7&#jilYifBBdxXHmoxWn% zNLQF|pG24Fl*#)QZ3)*M@OPYd9h<`&uRL+d-qxIW=afW^bj#!?YF@LqR3~rv*ehQg zSl9+|6rRn(#}fo-+Z=9?T(Rl#)|{v>CeeJoGWq#iZ3$~ZAPpSgeacDC??nWnihi?y{%G%Hop2!yt0@1G1~LrHBQtdcax`Ug!*m&v);T zj_smF9F@#gBH7g{m3zPSka*$Ssz1Ef`AxFh-{SaY&MQTtlv zvNsmBd|jHz?!X(Y7`EUqjf=1g%TW9t2tW%%AR-Iesh+1 z(a|UvLgyQU-`4q@z*P@evn~ZQJHy&n`ruTRN^sO6lWf|vty-@8tBJ&m;d}j|L(95Q z``Z>y;Hn3#1>wj<86Mp?fOW(75ghg5dM2Gzht)t*dx;m{Yqo_dl`(vZJHrWF^?)_I z<23SvrT1zN0*x;2z|F+Z&-xLo@}25dFs1g?6(n&sW)uCP;iPEr%i0Y_!7Uq*Lot7VJpW)d$( z-LQvo@Q?(yvEu};dcc~EOgK0}$JnbRrh`4;sAI#^Xp{>(uNIp~yx4Zj2J$|hA+~IX zZY*%s1J;6&*`3WM>QQ3BX5w&EFIY+q2C(yLoUz0U|M`}1B=Z2#`PhmRxat9Gw!3_7 zTQK;%mAFoA1vqMVi&PrOs=QVCh7vF4o^A-PiFxFwCA*KH>J41=fHixA^tFOJN7G3Q z6A^HfPf!Y-^ja;iVDK5<^dw$%W_xCa)(a&4z6Wsv-vO`|gcCc{wZ`2~Adb6Fn(Ou?bd=g!2R3;Ay(2;l%*j5Kzqut5I zR}tL&AdbSC^)S6%3%ZOMPP`U(=LDX?#F};3Xrc=lIul5hRS#~~5`S7=ta)nys(tC? zKkHyl;F(yg1)=x;n(+HsF4;e!GdKH+e>Gk_8gB%NCVNOQ+l~SMyLd(!Yt|o*Wl)+` zL_FU~+$=Ia`*?9AsxAz+IZIs9eK>(<#<6B^UIz>zd*KaoI@gDr4aZjzFQRYOgGsT^ zh+$t3PT(1StXYTHR&`*L{}-}yvO71ckFx^R#9+Vc; zf@Uc;Ty+A@YP|To!V2;i)&{q0CY-?a6Iio~EwLe7v@?Ut_l>zK3!I&KVg1Su0-Bmb z-mDs&z?CCdvrdJttYLnNHRyVL=c+~UU4|Ej>N~^sJZms-be9vj0tV|p>%8E0p(D&3 zewnL!!FNkujMVjnV=L{U)t5p};7T5>1tFlo4Q4lSfr~}kx#}H!*XKnfdzN<1afHbR zshq&|MOX{MHB}23KhPC^ubIPDA>pSNUYuwTu;rIMBxlK-z;#ksvs&lXY!5e9MK^bv z3&BzNDU27E!vdkAsWrr}KF`%(;R-RVSsxag0QmL3F<4jSi8u;BP4Z&Zt57JOW(wce z1o>fsE8VabgjwIafm_@9@a;vnqc{pb74zcj=zj2Jx)v;4lUz2uOqjV%(ox92!degx z1f3)o8xA86h7AK8h38Uvv7oquG#S;OxSI{-gvZS!`o4adtXiidVa;}GTCtVPJQPo& zI*$Y#Rq;NFu4_;x$L!V=C06#(-nlL$zR*)}1Z zf+SDvoR_@xu4VcQSBve~9d)%?Vr^gEgCX9-|B45q)6D_Pxb8 zY7^Vj!k2Ybxsm25@nYK5m!#9DA<*Y>c@Y-4HU?`!NSgJ7>{~DZCjG7>;;4m_vgqX2 zYB_$Poy3cHr@LhIlA&;^$8%2L+8C^>=MCNvy)y%#)ZT{RC|{RM+MM;7u2)&aSP!^Ybd2CAI(s?QF;~k4+Z#x{aDJmAYrb>?>m`pkfoo&1W@~-8-q355Ax%2(tC$9I1O|H9OZMGt*M^H zDzv<6(d9|$;VKxGOIVIy8O`sz!(aA>`rybi4* z#|K4l0@uc1&1T7*_L3Wot`YmL5rCs+)=r^S{YvFNL-izH6t-GRo+a!hJAV!41ik}c z%{qlx?j&``Y$f}h2Lp~eKQ5Viv!013uINgeH0*+ewD~V2PSSEKY)RB16s9`+0)+Cu2^oapn4}+ty7KGX}5=sBpM@X~ULpgyf zYp`bHJ{#gm$@CNCb^oD&qwuHYMQ~^;F}GQmSl|`XShGy+IgLyn_m#|HZ^AeV z|7yJ0ADK=*9x#G?B#;xhiwo9*;QTd#RMn^t@vZ?}=N5eS@gnCzCQ&9jz;3P9oWR{^ zuoi^u*K^69oo=w%zd6@|246+IDEXL2Mmx5Feg8G)1n!Z8HQNm;ei31`u7t`An5a$yS(8cKv*Fy+* zIl@{H&W%}4n%^A2)}U8#osDpI=7s&uBPVdTCaeWvhix8N_-zFIIG@IK zXu@|HUP$B+v8po?u3Cq30{4)@n(Y4v`gGNEZ=m4(A7VZLuHJiKJewcVfj0K?{ zEyhv!>4g_>RM&_yFbe#?w&r?;;cjMFvvW73glzjd6k>i4L;CCdWkYLF-7jY+m51Qmh4G*xHU{k8e8J&@C2l)Jp$kT4+@!XPniMcp*)2 zBehF2NsZgQ!1rCO**bdn020r#+^R;g+`aa`eKNgeQ6|Tg=t#Wi{dOTa@p&P+oII8j z_#Tcm+tD+jHTi1LMgX(`PXnpygzrB@XGHp4xTn<^HBUKB>jpcuiCkTUIv?7IG zeN;+~$(*SEv@h0`|M_;Y7KHmxwZv_E<5ivHDeyRvt?17zmn)C`{S9vCm;b-tTv${7 zzrXojswK|f9x0+yJFvi(^cVVlL1HJzpDB-|93q0%wV#C zZ0gloHP|EO&(qR?g7QD_@B+&;M<#NdwZK=9W z?(p&QKh<=sPT!xvqs{e-FV}MWQ)@7}sQgcL0v7mRVykP$d4pe{xZ;RMZ8%X~cktmz z`Jd_ptXT#2cyG8F99LXa^|w0VUljg+cwx0^r&zUNlB!F7Ja=BQCF*x?E0Zpd(=|2n|$Q#2%j$i$5()02~$mJc+HlE0fQD($)|Yw(S%< zOj%UibWQ^7Y@bXQeJ_){>gY&V;D1RF=3U<=_B>nvsIB=dPRxO1>Qh-J*Q>#6)*YsB zyBOQ2(a}xyW&w^edzM6BUMQ2tyw~QA$EpqOcZ!<^2Z+;8C2%4pAemm;P$s{wrz2r4 z2qqz0M7!~w#U*DG07p%Gn?#e>m&vX*HHByHF7eU5TjJ-`nVe|GzTJK6Sk+5?9SLhT zD-*g)gsl(6?$c)ij*@F6(-U!JvQ~3V(RS5$zt}Ocr0t<8fbVx+Ny+q=OPL&XT=QPr z_wsi?o$;~cQ6VpU*juVWNSRzdQ%Ay@Wl@(6qTRSVVzYvo;2Obl`;;=7iaHYhtMFgT zR$8pwC1xyeC5@*{=L9|m)~tWK;~H_%Lr+pVVmjccFP6!)B(O~OjN^~TcAR>!NAwGc zC9XH)If1_gtOa3T&8uQgL^LUX760el{r8-Jqp%i)3ZGV_xnCH$-+wYE@EsXz)=Mv_ z6>;zhBYl{_QTUF`i;JgbkftGB$nyge;3w+=aHm6=oFA$q;V7&HLC-Rd3=L^W-mi({ zgo^c((VJK%2OIF3?Sc_Li!^CvLf(mSfTQqlfR85#T9wntL7!9N*l&|L@pWYq71+6Z z{H8Yd`wPNxI-4~5epEcOVKU$-e1_xW3Bt&m2_&_(m*~7No)e8Tl4u&cYR{BtYg``* zUuP53EEjRd{CL1o_)5jcW9#U*%_c1d=^R~D!i)IKBzl$QtEh5qjqCh+%xqF~hHy0L zY&_s7oUicl1mRijIi%H|am9Lpyf9tM>d4&6<&}>$v(LdpGsywfh+_M!c)(FO*W%-` z{&4xTNvzNP;)$Mt+ zRmbE>oWRdJShJ^${0SswS!0#%#5llF_}<5hACISzxcT9#S>q>g0zY42&F;0s=a3h6 z5vm=R#{-VSPprH+)?qeDbnHwHEuZj5{2Ld;R~LUpU6{L`JpJTNZcdBg1Ri0-S`hSe z*AuU&-eg|<-{-`Cvpskgh!^(PE6DY5M`H48IK(F;(Xs8z*nS*35{|-}^-lOvMs|>I zqKoTDPCOcvM4yf;lMk}WOsv_R^U66Q}t{Ve!Q64DT!|TStfUxr!8U4)An4i*nK3SaZQSbzF7Y4h7dHKcSnC-6HC)@&}d zVJUfK>Y?hkF8a^x>%TW4{C>uZCRJ);VC+W9PW=`C=7I6m#a~f=U{Gz z7tcXs%{nyQdrD5VGa{q>{=VJ)o6p8GL)l8xRtIOmSt+ger*)Ej@#-N|tM;vAs4mb*5^Sp5EYz&X>ulh~c&kMI- ziFD6-HkM(dEn&^7y#4CH#Z@Q$?wN-Jj>6YGFXSeyHYzW_sFfctR{u_<%YU&k8GCIB zYeBI4W(<|>Runbp8xA-MU%|XM?_39#*EcC{s?Q56!z9|mt6VmdwI!_CcU5Tw?FZB< zZuK!7a1_4gd9iDNF^rkBsCZX>Ug+8-(QAXs<>f3VV$Ei-P8-6TusOx0*Lwnv!q+@6 z4)3WA*78#G=z>Dd_TUSxNxw@eR4dufX5uzo=EzxP*-nwafi!<6ZqG} zn&sX59&CT-*y2Hf?YLi1t16K`99k~x)zOxCaXrKXw9Z-`Jz?-v z=igXkyzx#04 z;Fn{GH1Rikuid64@nX$!FBmhyv*=1QUryjGfi-(8dhZ2;6T1|}3%*<~nXM$!)-3y^ zZPJo>apAWY=yw_JN1yv}0%tp{*?4;mFF57B#P9w!UoIy)lqS-aE6d~s$Fw9~tZd;0 zx*LA_eNW^C&e~YBv&5zuc;;A$Zll|AnOeD-NNL4Zx77%K7tUmsYr3c3!C;J4_6 z_~e4bt**hVd3X^u(i@`QP7u4i=GPVBD6H8E=@@TVQ8qz5^NbgG@T)#8`u64;c8Zn<2 z_$tDhy-hR^hUMM19F2X+MpDtWJ#kkeH5^$k2PSDryvSs$mt9-?A06ApniKdc!kUe+ z3=090O}S>~2R4cku#WMOd@BiH%+0ki6lDS$splQ8$tj>A`bl za$8F+i5Hn$y1?GbDed;g@&aE)ShL=rCqkgjshjQeH#7nqHG4%OHO*xskZrUiUVJDC zVXNYQw=-YO3w#w}&DH{34Tc}4GyHZowgMdGUXVx|4=a=JO=7tO9glT3IvNb`*0%P0 z8pI2HzGBTfI$Z1oNgqr7ohdCd*|_N;6^eh4;g}txAvzk(C&$=dVe78rqUgTIfsfsV-H2WIsHh0cJ&q$PHg-3n*eIZ=APT#Sv^0WUhy}K? zGd?56uI-~@cXxOE&bnW}-*fl%`~36a<#XP9H)ihKIQL$U!FK9e6eaQ6rBSWpEaIqa zxj%Rji1%I#6z#t8qH6a!f6B1jA5`Phz{^P$EM<5*sWhrhA!`|y`@!qq1SD`lI zd!X;1GA#Ew)j02rcajH+y#wu38dW6L@~)1`mimepW_fEcGrg++4iXc)UvXr17HEaBCTsdY5W!>Erd(7DYw8zG#$V zF>4u?`kWVMP)I1I*@!P?tz}rA3{>O10bb=%C}N7{7-`g&kCt!O@?DLz5tC4)qBv5F z7g--?{rRpef@*6S>DDqt8uj;`d^HZU5#CrvB8o=Eayaq#9S$Bo^nc%#MGL}P{N!U$ z%q|zoXw={Dr`F!VHsUY}2NXB4rlaETH@*4mfdBn=EgE}w_?uTl(PKkCu0XSXqn4=u z`<-otGydl9@Jh^10mt!O!?PN_jg0jrx1vwX4+EMzsH*yY|Z@Ui`g-hraLrzjv)g z5})f-{H=-Z4(s~AwU0&PIar(Xl~X8+ zVrzp&{jCQ}eCTN-#$uiL3_p2$XI}iRAERb=`QKX9qVYM1HT828&9I$CqyE-o+yZUpr|PaliMY>_+J#`Y-AHwpq8_4m2d@Kz5S;d3wB*d4{G z|F1Y9H@MYVqWVu6V$c66R;)i~;0Hk6e> zQ4v2mjr!ZNuzaJu!0(E^$8Xp2T~YD3#bNn9s1}6PtMi%V`Edn*K^pb9g=D!hc!9q; z3;UnnoQl6KC(Ct3HRh2G!jp7RoWg6DM*VH+S*~ziBo45HhbUhE;Kkn-pymFc8b_nB zExH~>>UbxhQGZ*kmOGUf2eB<$6hHZ#3B35*lC|9DRAamSOFw9WqSA0Xpi%$V@*ZF# z`s2N4so@6WnZi{3ZIN5*E2?oe9Qy_bEbaEBd`6@G_CG8&CogW`-Rguj+?n;f_}jCv z)TmVB$TnUbGKzB8!lY4u`!$v)05A4qALkB=t5~;F@wbO$d45ohYew-Z?>;+ITwOj# zq*2>H{_W$8v=N0G2f+^ft~}0Wb7Jd9Yahq*9Hbhvys?aSC^nYQG192N@5J&v=fzJH zC-HOKJDbgkzwglUJf|Ala0Yh}@PBpl9n>lhL$v~jPsnEj;-!$PVSk>^EtW3-^S9;S zEq~*V@1?py>6*$R?VCL(_T3KsBdRC!S`b#^+QeDs_qZnK=&BJUJ0RvxhG#cLBdjr+r083XC&JBJLDzbG_n>u&42nt0k){IhK)EPr~#b^5Jc z%7Q)C*G)Z>AW=bI3C{pMFcZ>Iyh`ImuN79^>QN%61>yel*-$5(+H6Lpk@ zaByhl+%wA@6dIKnZhcoZ7ubp;uY&=Wly$3mcT;Z8GVANM#V9K1E8z*mC>V;H`*VdG)iC3TEoR1wH4)iR<+cLi=&qG zfnQ$Ms2-bEN>RP7Wo#L_seR-_5FWB!_9; z@b8?5=~Ay9VcOwJCb?n33>2NOmVvsPlUdWI-QY(+nD+1U6WGpMDTR&=(@x;uZoe|5 z%JajtzAy321{ceB6;Ze<_>~P1dpcOZ-M`-={eId_4%58Po{$Huu!yn~uCqQ52SUK@ z-AdBgFzpk*_nLhZrA>RSpX1|^L}}KhFfFU0Nxr=+0Y#qsaQy_(*(@- z`CykKO%-)oIcAbQ&!tF{+FSpYR-~XfT{2eOjG}}0C{Dz5wMISo&1+moAMY=IMDeD3 z7$@RAtzu)7REcU_YuU#jjyo3wm1;(dptHWK!sSyW`VRSb)k(iiy!b5$UfDfx+t=Fq zy5jg0iE3UHH0>70pjbU>7$+9Cvg$jHc#V7ST-Ylz6rFawIY^^U{*SozESW10bJaeb z607uE1QmiWi8QKBnDsM#FJ)Us@A7-aNAH5*LjA~GD%P~IzN_auk|nBf?d#i};+7}a zzv)oeczLN#`wb@fXwejjin|@GdT&57{({$j3CySFLWnE;QKW*tF4Z{mbN;XxwkZ&T zgPoNr-E`VH5zDBZEX@Gx>t2<3Kjar*vd}O;mS?rV_KMY3s+}FE=`cm28L;69Zd4?nu${LrD56{T$MDjv89Il z)Z!Ogpz8#g-*`dmL8@{0qyl!(Kfeit@A#(dm>#Cp#roX-V!YI(o3(B)7?B{2m=LBF zFKd!(Y>me<8lWh3r3vJ2=LLNyRAVjLr8N|5b&q)zu~U<~hiTOXlU%(^yd>7frzrmI zT{%JO(Kbvg_ZE8-Z!Nuvt&1DL*UDwV-K7{O=sTercS87zc?<#TS+%{j)GCf)+Ae&` z9KW$#8uKgk&l5*g;-#DQ@!56vg#7PrOBt>|o#E%u^~~!4FX%g=8hi9d06cZw*t}{E z>MDHij+al!mD86?0nbAG@yUjpEBxpTPdZ@2-6a7osf$MSe}DjCYFWMMV(pA zy}Y1LOR8}O>*Gh}?pzo=1KPpfs4(r}?-O#hybNhCKB+Cghl@T#+Ljuor4%>GwSz6s zbLrbhmV^7^EDhvEs6I>^|NVq~?=i1&-`Y=G*_%!tuxn9ah&>agy~Jy`O7C>(ozZ&j z#??ueR^1QN+Tn_bn*Ui^83WsHV@s-eK&MT-D1RbM+gjHopYY|iAk2Y^Y*gF1u=a+I z-Ds%O9Pz&U-9JqVs;AQuI^gqsTAGwvOZVpv&cwDh&a1_)61y}C2Isk&+x1|bb`ByRT)205`k zCw}|rv{qQg!hiW^JLV2XO%X481;c-LYKkiX!Tst>|Aofo#<^S*JO< zndB*3Y{l?1^}u&fj(E7PJJ5C;z53`?iCKD0T0-36Z1ItsD<^1+m1;akv3W}vcR5?U z+0hkf)b)zi`=h|v4DMdR^XO~0guR7x#7SLUxt2Z^^p)`GjC#=;p(GN?_(5Qd9#EaorM*XMRV!gRFxn2j3JHV__{od)2X4fR3R)h{zWz4@KEBBotG~+O1Ray3S`fZnngNaTvc=rH zIo!zI+QZg&b#X_6#EVX~-65o9n0PRqL_`CHkg$nxZQjO>Ked`RxhljEUwX3PLRYX4%ZPnnsTJ9j2T_KdceEmhC zV#y_Ii)?y+0@rfFJ>m}xg2&ZE+4E0d6dFa}AuUf3eA2xkwnivh8L^EMMQ}veGR}}x zEJ>mo+dgZ&VRA_v&tJGrp;7e8;6;I#z7SXD0)xO^6=X28UU5-Lz!#qwYgMO-fS(yGa|+2j9XcT?w z)ADfr`TNG;h+=MBJ5JCsGOBTw>|JAs!pwxt@$G;{(H0UfvVzLNu!*6ptG5Ry=$IVU zILG4M5GLm*v1iPQ8@Z!>4qoh?-X03oy22{@l~ZY-jNbFKPlYG8V0R z;%6KY#{NgeYKdIG4R=sp)g3}r%zoJNRH0F{mZ0U~?vy^mpcaawSJ!f4@J(wOUjHOX zRO1RauVGNxoX=iASgX(|T1)VvV}XevqEHk^PDp31WsDn~EK!YFlZ7V2RV|+#+UBUx zD0t;0p5z66uH>@~o+TKKqO}As+ASLipY!wC%9pX6X!gchhTX9= ziE6w*P%J%~&%BDpF&af{30{Oc_lDzn`7ERIRZcX3X=nI;9Dl*!GC;+VPS!HM9ZHv|#u1j1&XA2)V(G9lK%;0a!HeRnYQxmS z`K-d+W}Kk?bEAKob=Pc%PPHhG>iq;amXf(GXWTU9&8PADTI9Ftu%{cCzBvFlXEa_dqf1w>j zb%|GK6s;wA@&2Dauna|ChdP{SQqWq)e^Zkss__Kkc7345JUeJovW`Nd=snMi6VE&$ zHNXy*O)%tAaZa$75j8hOq8i)nk3C`f0y_w<6P`<>=snMiq3im>U=+m@zlc<%m$a7Q z6PPMdjXio4j<~P0!}>2GjiR*#FBJc7FbGBO@=F;N?sctYeDF(?sKyyA6m90)L9I$l z8I7W~1TPG!9U&UU=iYgo=)kOH6dt=mq8d+-MDZ_vyQK%_F&ahhd0sT1(FimYb@6Z= zD&i+u%XrZ`U7{MteP%U+Ym4l_@x^aOqi8L`i@kAWVH=8!S~Y+QIul2=AiR$(3%>q# z@St%Gpi#7z;KllzFWAb}cJRuzB`4_2AJsT(`MMGu8C(<2Zp4*`WPXs2A@ZVfUPx7O5zNvIXj2zFX7&^>aMyrZx64iom6U7qzTqirch@IN zR13n#@bX~v_k=r-ZyIS7z2|w6fcs231>ngGeWY9}j0S5NS)M5p)i~*L3em}L& z>c6|6#AOTN$VAd1cJQh<++Q+Wp;5G!pylC-A$?D>OcY&OSL4LG+txBR_fM9n#$6+N zo@6cXT^(?#rqC#Q&-0>jt4pj03g3%2x;vvu{!v!TKKIq(kOb* z^CGF#Rn`r~ao2LWRQO%Bmhr(YMWPz_@hWqbox9=*kX}J(R-d3bzIM|X()aq7h_aZcx)}h(IHi$8uwy# zIm5o8@LX1m(I{F=@S@ifl@-I^qx{ProVfeJTE_NesS?#V2JlE_zwna}DB6?JC|XPK zqC(ZJ>^O>EIOa~pqoUUN>`6~jC8}|k=IUG7T>KoP`iC+aMQaIOOq&qT2BTOrVHGFn zoH^CF+X4!26feiGVl;}@61<4BOJtAFdPB+LD>*^u=&8op*U9VIvzz#PY>Z+wismHp z!h2vS`#IAecDQda(%d0hOVBJEL1=Q+i&b|Hz%i2|3KcXfh-w^}$n|19P`u19qR=Q> zOYp+K(tK7DMVq<@ja1NVGpYq4@aH_X9Yv7|2aPm}-t)YO)h}VUP`rKHof9;hj%wUJ zDS8R(i{j4g?nW9#?|EKqd=koLpy=^+`ync5Rv^{bD?$;3;*`&hLo|xs^Sp@hU&@A{ z=v%&yNCnMqq#DmR@LS5Rqv#x6TclC+p65k_xP|O2ir{Y>I6*TdsTPDmu?yJ-6p>{& ziZqJW61-UZ%ZJ6GsGakL6Ewq=YFq_Tcq)5`qSVqaB8{T=JTLAX@6Sqf41k)y>M<&4 zRw>nj@ZH#-ZN@UjRB~W6iq;am*sXVBTT#4hCUb&jh)^vEi6Krb*z(DpWJaTCEy0Vo z_UqYd+>g9pP@G5w%`c%Ea}CN?V)v`gg)AREqfs>XhZoaJwSnzf>y>$n8mN{zh&N}< ze=^LxG1FSeUHp`v~Ns=Xx zv^DPQZOJ3W^J^Decl-Bou{eZOIX)8fQkIhPa)_GRF7UyV0mWxy~ponbN$dcss=HEQ%{$dN&&NCm#xh zCF7eH?lYIT-9oXGK z{GHcdOOz}*o^SQ$KbfGoU$~tk+wnS3WwB?CRM0DfYRnyc9LAP;_^KmbNPjX+H-?-4 zrNOKrscgf%hLEb z{2V1Nxj@aEVa5*a9aZ{Y{;Z-CPX1XrXURMH`${-oa(=g4!Pmj+h(`Nd>D5Q?J9;VwyY*ZVq~_l{Cobut*V^LimhF-xQ9)lx5Z-lOEM5s)s2&fh$*8EjPOmkaZa zC2|_GKX>&KbLY%chxyHBG^(YyUh@br%T1#bY{Z*&A!3MqfQtXmi2~>JT1S7}e|K+! zL^aO7`bUT-vVGNm8mwY8N|&kE3i{%{QODwK#O;4vq3^s%<5s05_Y10H!?dEm&2lY| zIP03o|M@j>jmcpNQa9?2rTiOl;`6>RttDQ48!yL5R0~4<)XuQAWumcCa6^?w1_i$Lb!ipm4Y`VPS1fOu@dvn!9+P4~Uki#$AUn+pukNnsH-(O_fG%EUnYB z-<#z}Wo?DYwJ&rvE;GLGS(y``aTUa*t7iF%LzF}{t~XfQ5Bk5BfV{|3ixrXI`AC&Yrb{6RX-7 zw6oLAvQKb4r?K`)_7QsrOjegoy~t?Pj@Nq4;DcA<(5!v5$@;;Gf6)j9588I5Y?XwY_yGs_n%Ew>Tvuh$np4<4sxR)5E$=NdF$ zFSEP@Gs&r-uY|LfLb@39afn)@QgNW-@g{?IXQWvUz7xl3JR{dXRD67@k6PnLWuQ@~ zMjN!7L(TGDZ(DJ$=|*vQNe|VnZf#Cf*=5lDhnwY}yW=FPG0S4+0dZ`_&gz!|4S`1O zjxuPq`k3Vs`(tgyrI5a2M2@@aT-O17uNt&}`kUqax^WT}^p!A!&S$Gw<5qk1($&_S zC{Zw6JKxnT`_7ByG~R>#qQ#hYE!7TNT!BXQ*=x{TJDcT#)og|1j)~%)6K&PuJK90d z!r@vgeBJspV=1vfc2Hdxb>YP0M&a6)j@X*K62oa+|Isd1Oq)_&o!YP$ z(5Qy_2JIK__U0FBD;j3zh?iHER)-%R$cc5X;o8$yW_eIxj6^k#U!|`R+kPpm9=|XQ zxTyCAEg4U!cw5z0MBN_*g;y*w9@tlkyKDE)$87a`SSRj`kmwzZb&35TxZ{;>oDxu) z6B@QGy-%Cv)Kd`>)tE`XU@%;qvcfpVyQE5^%7*JS={D}AH`G=f|1b=8o5GBx-HLGH zVUA9Fif5Ym>6b}VN%db7ndDQ@D-j8#5X%%wB42aPyl& z#V>4yJMT2h0Sm$3hjrp_M^Z8ps}=5Kz% ziHst8tt$2)4*3`)s_{hVD-&U4b-gkE+dYLwt*x%tBCr(}uwHK?syR%8u8*e}n~l81 ziSteL+8t~&nrG`Js<9=rU^2Kh@iPu@d{LoM$CzGwjeVT6u{s;!gs17Y4;f|k-;sLF3wubNHip>|mTbELWjX?*4jh(PZrDT?(}k3#!k6Wehq8fMW**X(uW>z-Nex0MxsN>7KPN25?1G4Xzw*g`F-7FskI z26qY9{=@SIwElSCk$aHdo0yr@c(+*j=M&{c{&-FZBg3`Aweh5;d(oW69r%|di|!w< zDb?0a0veT5B3v6>!z@?bWh?AT>=xH{-J=*r%;3a;3E|qNDtJnef-L}|1tGQib}>Si zrPS#-3ux5M8sXZ6QfB%21Y7ZJf0Fn;YnS5vZ3cXr9kKC^ZjgR0!6)&Ukvn!xpx}EFom@ew z;J1(yx3P?)c=An0k7$W%Y=tN85c{1ip>*HB5NMQr%W!Sw3p`h*jIHSOZJl_mP6g#h z;zB4A60UW4iEB8UMoU!CSHiU!zq7>tqYD|=e+uG+v?N^necL3Dt%h(kDQFJI~$`i>qSdc&{qPfR>TIa5zB26*%&R5 z6Mp!6NO>k1dPYlB#Cx!3CY}UPtM*y4`W7^pc?xt-Emis@g0lBo{G0xxtHn z7VEVhSa+Q>he}in!ioyBVa13Cx$b+i6dE-oO|KnpZI&0MFSQY$TxP@mZpPf|KeljU z7}lac%A4iRexVZ8xKm*vUpO>0Blp9~jS7vrw_dNcsf=gQxh=I384kYCBYtGAe+6FD ziPdY5Kbqusa;QW#wq#;_q1ao;+%~J$DKzTZ7QJTvY{FC7m)eLDYkc9QPxnL6ix)HE z^jeK;COO?XRH7Q!(eL(!`&H{6YK(cvG^*oPy_Ry-Bs+gyVk2&D^M%4UKD!qC#0$@8 zy;fc|$x{b}N>t-_wb&QhygJ~zy6Ad^M*ZBZ*IaW=a^tE?ZN$$0zR;?DvRg_%FH{}& z?(wXxGx4Dk)q*heR~WO@MvPuF8+^meZVNVU=ET>f zdaY>&o}rKxDp4&6=Q3u)^2Uj7Q{HV>XjHeAdTm-V)+O_o+K4r6XTyVA1;wjJw{Swk z7QoP@Ciy|NFo|kxUu~HMUj6pDO>Vqhp;3CgN~SL`$y?qpwGlOj?h+3dThAT@%!c*j zu^!xPlG|v}61@lMy@{D;NpYgXtV?X^cW+KK>5V;$RFgcTX$+_Fw9SD=v09hY%xT~h zpi$x94Vsv4lFz^6%ft5Wh(z(9OJCTB_oF%C+BsY+9glmfkBpJ1##KTibHuOyuUL;+ z+c`jiSa(j8 zDHyIf&Ns=kus=vOo{!^tM67Jc;y5h`Hx?Wh-&AV@-P*JV z8udKfpuL)9k{2K2%M*m>rVw$~G6~8bZ^VgzP8qZ;AAAlDjFYIwCui6;vHfaSn17}P z(5QwX2JP?+llT|_+2IA9@vR{;v}l^uEkLU_gn7ZR=pn3 zs8an58k=a6>u1;suYYF2^dlw2BYk#q_n_q|vpvA{=NU!sM|{?1&4gdUO~n;EayapP zqF!5ypS)dW*qTSfE$rB-BRJd4o;{#6Q ze$#0wwXlpm28n7xFih}*Auf}}QM2zVG^#;ay>_}Z{^pvB)>tmldyw9nn7#9?t(e(%80d->!r($J&aYFKdg3lfB?k#$86m3mi#}!TX~oj-*nJ`-^%;h)vXS5c1*`qfz2j zy>_WT?mG34t?&&=5Oz+L68{x!7skTZ9PuO1RHmkq+Y4`_m!f$RSQ7 z|IlkfZ+4g+W+j5b{%EKeYt(61 zJDKFsW0NFrocT%aj6GqT`8oU6`tQH0TV|1q-<&2c>aqw*eJakVSYJc0^~EzT74Jk& zV++}Q(9OGk5VWoIPNY%q`s=msvPl+k4?KkS;o_l^{&1sJI49`$Mm6Sa=M`epYb;VvKFToC zximWCN@rqmtgmYW7Cd*Mda-2-PS80os&U4>W)1fJ(L(iCLUoZwb-Jw6KI4qp;QtaN zUg+Xlvzp5nsE@jYae~fTQH|NSTN|<7cjv2vf-5o_rE8(rO3uT)gUj&}FLbXvvRQ@a zslC^>;02lUq8dMW$#!h%^0{j4cwa_mVzy7!Yc+9}tWPDJVv_s=m06 z6Lgk@YHaVWb7S>SPgAEg*n+d-|2Grkv0blyo?@0~iOVHk+^aT#c} zD;qSwUN{Tj7%TB&aqa2sS`|07oojtg(Af;C1)=}K(JW}`6u^21 zS5S4H9-N>fsZ`?{UUdq~$t$7CyZZu-s2h-JCwD*pv}ae|JEQjNPOU7XGC z?aEdb44Vuzs(=~iAWLF?Nr`BQ7jt$jV%v6wDyMPml?pntNj2_(>Fmc2t_oCKbhCg) zHN_rFG>(h5$&ZqFaj)+pwqj{jWu${2C+H|A)q)`Z3Sjf9mQ(D_en6vwt{b#|IFefR zV3fp*?CT5Io8`rg9e(2Jz+}9Yj#*NT8S$xs?CP8XM&HWwfJVK&fwQkSO!A~%Q4%kL z1Lm{-`!|SJrv`9>jyh6}s{s!#WRu%wi1xh$fJQCB8O%T&BIwF?(C_68m*@4A7|R zTMgPS99!BD87=YR?4_x!R?h-3?ae?=(D4hZaZOy+K$a2pnGN}82+*iDYYp0M9F01* zH(KIF-=^c)njaOQepC-m(9sC0aV9P`n6biTz~gRDpixcq25tK?lYFC5jKqt@9>ZCS z@=ai!TSrdNkqN4?O+9%L8{W7+l={yFXw=S01`UF6)L?Ur#EVlEJlT5Ofi}m~kP~!l zfoef;S`^6obm;(Xd>R9d>f6bn#rm4$JXaiHA?4w^)a`@Wv);Iy&djQupkoVE;~2mm zAGRh+f{Zt{fJXi5fcFQEm)sp5EAb-cR~NP~v>z0xRhkpDS46cSY?(Qi^@!;OFT0ch z8WmZ>pe5kwN4vst5-;ACb77vZM?=!}r;G~Pub~=O{YFk_ZR1D4>Zi{bjoN=vuU#F1 z`>N%}NxT>!v|>l*`oP=b2RT9eI8^*aUUIS1e>Q{1zi7cLW8 zv4N9kL*Z)6IYE0VRO4xaZ3eRG?PtK=j5J20QgDRj4)%&7t}mB(aid~wCV2S6yUO02 zpsjwY1!3gYA?!l6xe%<3QL!4_-OxiV8f&M}sGM}278YriCt8ujZ}2T z@vG6;k2?G%Mxq+8#JIZfOYNq5RUKfYQC^pHT2p*icN}d+uXT-K%zR0W`?dTK6{p+j zwQkcfqY(wwnDOh|82;@hsV$A7NTb4v;dmluG&Ua=Z6g|va)fCmT+}*c_HjbRoQZAY z&2k1l2dT!Vv$rEWYwoPBh%3ox)Cfn+vz%&{S8R{65!co^LH#YQ)MDSAIMFi{>yp7{ zdFzWPiE2S;QP>H}+-afix-@~&s8a*3n`!9o*X%*DPy>dA5?J$nLx|-!z zk0K?i@x+h~B77KHM(uw42%}M#aV9QA!hE(_BfgpF7_+#TjU{7-=gpE=?6T(2czw#eB= zkrLI|^SUlWQu0Y<(v|{1qgw3OYsc%E<*yARY{c#9-N4nnL2;Nb3ot)iL{C zghVy&VqUZ>yxg}^DYm2x(5Pw0^jbd7@M<@g*$A`J9oAp)QS4V%)DBgEMzz3<-`w9OIW23MjTq?T0mB`ND*LC@;KUAmo_EC@4Sh0x z4x;e{m+bB!Z}@HexxFUPDCLq~b9`lzw?^aV;6$Fm117e9mwRDbZBBeIY0#!)|HC;h zLZVs_st@&mU!@-92EVBdG^${}UTcM-h+&zHSWwvm#IjKy z%so%^fEy_h;+>1NfJPO-R>oGdNj{vs%tkD((;a@UYsLBnRp-Pk!Jr+${E0_LA|$Hu z9vtZbQ?52*0|To8joN!kuQAMk2sJLV5$%t5gH7XRvd4jyII-uaUYofOb6CzrNL1r_ z6CvGURl5nS?2bx6qsp4~TIO!-rJh`7BQ8|w3QdEO*o6({IC0_)icQ!SEfXnGjiUym zy2H?VG3@!MvOuGz8THzQb$Et!sR$e4bWn!0nMc|24uv@}^R`|ao??<;jEa<~#^3x+ zR~UKi5G((*Ake7ATd{7(`P$ZF@oFdK;Y`Dv&QN*h1C~(f9iw9BWgMqoZjuj#MM_lT zISqMTz&_y``}*QNqfuWl>wa&fN$#{P!bWUw3UI)y0K6S`lM}BLy%ve{=kH%fN>pR6 zvns=ot)JNKhSwR5x)!O|`Ygil>RW`3cu~m}K98vc(yINOh+C`IPWs`z+SDkCYMg0U z(g}W_D+4v2>}52{l7F`aXDvr9inI}nTeOG%cN#$E!5B_BhUm53lX2$fYm`Jao{HGd z4eadefN@eZqfy8E>9u1x+vi=;R?O+?1Z$4AfV`-2ocJ_fuQ^RJ$!{>ziE3O&Ujujk z>ev`sC;BoPrFrPJI-^bUh_+ES;$@juP@!8p7$Q1xVxy;Cdoau-7so6;ss*8T%l2@s zn&m1*PTWxcI4}{mN*yUwIWucS`d`Z4sfBG zJ6z09HqxjcSvsu4h9k3P+kCUjzk%a;DbOtNNJE>VrUy`@ybwHaMu z(8dJ{jq2H0r(JGfl3U%4vk{$J6@pdOd%|hh%!w_(!!%P++(Y0*Fg-Y03+Ot&|xvL~6 zs#n7GmAICyZ-W?#YP?D&b%lOgb}Iwh7gcH0)8abq{aLf@x-;5Fd|BHYc9+cI)Ar&gKb8<>BUUaP1kX=wQ!bis zapGTGKRPPQEO+@DDN&8<=v{_D=SRDg*3T{|G-^|zPWyHU*Rc$>6}5(s0;h3Xlnpx$ zbK=WxJk28mKl#%LiE5lH>M#ac4&0&SHQ%Mss988uT@=^z6=`KFTH8&8%k~?T6yrKh zyuGf|)L64TwseFoObB;QJJC4^CHJW*9iJ ztN`XGF2+?tj>{yf1!2d|sZgQhN~Q14xeAS1`ctQsh%w7}jl$^I{k$ zT4KH1ex_M|?-edljptfEnFYmf$0|dwhzgBzs*5d4Tz9w9%U~leKAVFps+KAtLSs(s zb;I`6D6`zzXppGJUCbN$LH8LUO8%@e3XL+j;3vn7_ye2uHlkyC0Q@p~DMuH)H&PLV zeYLe7*vDyXkf_F$dQtPBTJ%`u)Q>zPje3F4sJR2oafv;ca!x+ph80*o~34(9uq-OO?uKb?(O_G}?MZ&OuSx>w{xBkT{_ z)iujcJ@gXQxT8bQMX>sGd8O`&f<_uOVh*kbY-pDKi|K4ch&~AVJ-lq}U2j`16&Dui zwL&GZe_m8CQ7s64_XWZ6sFTLj1J1cLsy&K(rOmSYp)ea!$q)>|jRK5WjYAGmF%+{V z2fj1O^=|7Vs`36v3WjUtCL101<+{+Qi%T#w^Mgqq9usCG>V6G|8+%9Rwi~(Lm5NmC z(U-q&k{eytNmL8M0u;OF^~;^$cHEUl)k2YS%_MgY3$qdRt_Q=Qv&F=eZ5ueT3R`3| z@-V;sxlW=Q&t$z545ok|Zov!My3!~+6c_%*Os9-68!@dFmQiP&cze>QLsU!%)N8M{ zVf(6%UZNUTllKaS8Z1d1^{I3&joNK#!)2P}`Ip0NgiBx$oSS_^ycwY9#NhzFRs=Ia zFa4vJs1^iu8|Kd6J0-R*9Fa?-3Zqcg;&=5t%trKFvIsUlEXBggU*$wQoN*tDEq$Y2 zFHtQB;^jr~*jZqUFPAjZs181Qt!#uzF3?+NBNoiZ6C@3|_f^kPoEV9DWIot#ul-Fg zQH`fs6|9tTC$3=4a2&;*HU^1m zEMrt4c(v@pHp!Vr8pW^`egX6PyvpcpMB2yzcqh+d!JDpf;t-)C}Ix$jtyre{AwsvRKlA2HMWok&kvWV#+;&a zb791kg)Ff^J%vX7uBq3~OD4JJ0)vhC_GAW(2u)#*t9x@Ifl*5K*T zqGl3%8$L~;Q8nM|v>(k)@=!y#jcC+R^C+L>hh?D!rfdV^N|Bf3uF>0Modx@EVt$RdDR0~4kI}_mO zVhM}YfEGAE;YhN1o;n#3P*M`=W%(Q*owPtWMF>cuOU$q)q=3=%t)wu zX*2U)lBdw9B9nF6T|80gkQ!+tUKSq&z8`k6U#ZtQF=7~I8*^oRCjMMcat-|GGm9yS=PTc2Sjz!Iy9kY|MeI-Yr(58c)sqr#sYc zx|QV(FRIe0-MG(0N6cvSeiUOPPIqyG$#rwsjq8;-(Zvv^js9>#u9%E#hKa^qBbGC$ zzc7<^ol{ArQS}3H9sT_ivVv>%dBLWyb(`@p7?zITWZm}zdySTTKj_Ixd_(&L$&0-BUM$0H=YwE4Z{BI$jRecE>{&u*fp~E~e1ltc6j!Hj=U@X;u$F?Vo(L$TKJU?{iQffJU!W&WN&NHx|zi~Yr$*#6m7XV4)UMNco} z#aivSxIHZhTxwP|($f!V6xBF>HM2Tv(`*40iulF}OZMO2lOCxSgyyFTurV_h!MiKL zMjA!u?szfpP8(J~KM>l@KE?^U2N~6v>H+x>F3c+g-vKdpB2ov$-%QXucrTSW`C-VVgVx)J3PK7-`h4H9D;# z&UqcKmLT!s(ApSQa-*NR&Does1@#*A6RhMk_F z%GcU(g60cSjr*#(XRvvxQ`Lth<}n)e8S{7Tr{SDeXq?20nFF@4ppZ#wJwps9XucrT zxRxw!1B0w_>iC*F8I5wpbzW_7w(rT|ScwJirMKofO$UPDgMd_k)5Or+mNcF?JwdSQb1kD$u z+Oqy5kD0nYR$i3r12pQ!bc5CeGaBb;Q4%lYyi;tVy`r35I+znQUyy2CCA981dr^D0 zB3~Z{G%98h?tX$9jV~5ONxW#a^E4A%>XdS8#&Uw@3sQ~a)HhAcp=XeizGOVmD0hQF zOZsk-J^DmRyqNRtG#lNlx)S8<%?X+>NHvZQ#-C*AwJRv@6(<9Y8X1kN=w6uQQ*ELo zUhD}u%|d6CH1_W2!wH%%NHu1XKRU%O)+l5Q^T(VYlEtXTU{)B;56*89CGleDfK$x> z*e3CTc?u_Jz97|t5OV1>JJEHO_&#b1(5ShQxYrA2G){Mol6c{&GqWW^ch*Vq;snhX zq#85NMx9|bJQ$nh?FBT-FBG#s73>>~iIRBnI>O9q)iN;WGUGTw^98BKy+!;_u@<-k z)UM^@fJQ~&3b(E&j?P?d_k%)^K94|wjgL7n-V($Xw>F8 z25mQHG>*=Ul6djs%@MZ$-#aX&Wh%Ue@{(p+n8@`OG`XIgJdy=3^8b#n9=Budjs&|>Q*DO zPpb$S(_J`0^98BK%w_+R>`9ff(7&Q9(5NFK-XECJXo$eQ6G(ZudU?!#c6xtPs8O^D zCuqJP)p+XL^%LxDxdt%fc@v;fPwU|Qfnyn)i^fR2Sl2m+T^b<5nW`E@hQ-wXf!8iz97|tFn@nG`(p3{rz4S!Mjgi0nHT$+zTmeR-9)8zpo;a7fzhJz?i-02`Y-Vr(WEChTQbF?tsTPECzUgfI?m1w0 zdbJykT8y(Yrx>n2dlxV9qUz#VY`%o!`d~0pLHit3qFv9hLEomR6F<3&G-~Zvoz_3lEI-5%7G8|& zeVsiVI7v0cXK{k|IjF{UkZZ26eNQH;!yi;;G|I6(uJf9O^R@rRO1!w+@iEKnI7U4i zEb)T$aj3?t{rbHem`~c$Q_JEjZV~SlX3UG&tqaFUf7NM#;zXhu71os!U@{vpc?o08Tg4A{*l#T zp*IkzSw^7?U6agCLeg|t& z8S_P*qa|MSiY*M@EgGta&XnT>?Q>8q2yt!&VWY8*>hz!*(5OgUUt6dH?(mq0Eo4%j zAYAQU47MIBr>-tspA)ptK{f6!W-JW(!6noO{hI-eI$O!0wQXvayJ5a4FHZI?0a;yM zD|XM?a)S0bs1}3^SBpYG+XqUU9vy*3EooxVcH$me8;V6qyf~qjgkQH0DsN2^CupC8 zYP`?&#o-99^O~{H9cWZ4u4#zFJ+^dtkrFRNeJL1NH&iLzp%*7;pMz>a7l5ZtOO1#LsSqkc1!&=&I04HdlgKFHR;CM->SfQL!+I}F=sAJu* zCyc$K4}p;qFBa}E1-)7oH&z@nm=mK`8jG6daxC%I-Ds1RB+eVZNx*Brn?-DeX#UbwWW|qIS8z*R=gK8Z8NWv3!Uaw|n zUv~u>RS|bR?Y9N@Zo}L`Ui_F@6n4$J$p+z$BvjBo2i3TK@V}C9ao2w=UBnzh(i3v1 zWzce0U=E}hCGo;XDFRP+39z!yKb)X_4ypyg^Hy<~ROu5ly=@INszOCvKbVO7xJ`_b zc#*9X1jp_bp!J}JoS=OUss*9LqvDVlTneh9pi$GYH}O($lJB32l6X<)?l0EsRwEeW zXU7TJ=b#!#?oJkkcX{@Zl5Gbx>eCI(zz#IYWx7U7yr@$6GaK=xBb1H*#;Blu4yy5a zUb!&j{EH{Qwg1j&lrJon|`y1HzI7U z_>j@4137xF*fh)pd=)M6qFLJ)>{$KYu>7~i3EJnN8h2b&e>0~>-QYmWBaB8JG2mK& zu_n13?#0TB0XOclfcL|o#=tmE&^`y%n3;L{6FcBO5N17$Wi;w1&YvgZyz}19u@Wx= zw_Rox!zVzKNg^j`pMz@5FUfzwhS-k=uURgPM%~0Lq*Fa{za{K>@nXpR^Q_V*Z`j)6 zvPcE(b5M;v$T@e}qO%hqz3~T;M!hSc*S_KY439>~NxZ1)ew4lYIThv^nsb8oIjF`S zWabTaI)4(R*q0P(R6|_z;|G{q+hw`LivoT3GpAuQpiIPEBNepIK{cMKx8p1`^_T*O z_s1G()K#318s}`1eO%%tUUYZKV*77RhX-xzDOAut2i17Sp})pl_D_apGg>J$YECoE z%xq(lbu2;R#ZUK@EdG)Y9G{2x4TqY8_*_mJ#h;vY@7^o6;?Pj&Rdp$s{YkS;sm4<(D_>_Z zS);*h;B!*xr{zV9vcK7fCd1*)!}?rKD$Sau8f&-*&zOJxvCyDiO)gWG{%X8vGp-nP zRfa;*Vsni2b!jdy)!07||Hdj^8w~~BhHyE;^y=fqqSB?{?9IX8+xVaxeO;Q9Otm09 zlCkyLd<57#*L0&%^e*B>aK8%Ry$;WC+q+Gqg639JjVlfh7lRUahCuHtySSWfS{v}< zVNg{V^SnD0^K@hMb!m<`)i|l|Sr#t)^o5R%8JBxbYc*bceNhWml@+1Mu^3L!?0Bm2 zR4czqaDTH5ao(|9Mm(*Zd9nCuZ5Z_#&r5Be%?X<2Pc^nO4poP`J6z!IyG>kXKYhyZ zBD;qJEG*j`B1a$R1YNB_HMYVp)PVB)Tf^`R$GH^>^l8b9Sz1G|^Q;any1nHDU3Eb< z?!z*qE>zfC7dC%;%dNDaPkmmT3~2&|oQptDxfIaXrK?A%#(S`KeK_q{3No&g0vbhI zFT7}D*A%|Ye2z1IRXIV|v`~#Z*AHt1Ra<{zlXg|%*2>UU7%y5kYYtU|%&cO&dYquE zd8o#dPX;uGa@{Vnja3}D6+E;x$%`~RTXuzA8f*Tg1t;jLB&spvSJxDJpIpN#yl%;@ zM53)?UQDRi0)AKVWBo_9|*KWq@#%&PC=#qP?j zL0hz0oN%xQC+KN6ss*9KA}5G}L~%n47w$|P9c}RILOEuoZYh?$^T3V>PZ7qPN=U5#S6NtS?YF9&{N-33&OEW_2H_XsY$ihaVNd$tRpXq<7L z!o<@8#2+84eu_C~peZ^l&x?jH-m#qH-fD?wb*?*swmVRbZ6r%Ru;YPaRsSagxJC!M zy1;{AiFP;*CX_0*fs z3hfi2cdgOe+3;O-i#41rbW(NG9&&hnmYe2Li>=7ErQs- z$BXRe&7fu#XLaq;1Dv4E9aQ7rkAXH&JEx<%dpc?O~zUByPe{@g_=lLr%Wm*)eJ>8181WjBc@xpFS2l%P9RcF=f%L&@` zLA4-2g^sZJZ98>V*?J01eST|FE(4aK<)uY^~bV*3{=pr52|sj7UBXA zw>YUsFU~U1RP{%Z+Fe{x>=hOx@uKBG89Fa&p~n7RRzL;q`k)%`wR|K)|NQ1^#}n6F zXliIhJS&6!B|&FaNxZ1~0viP8H&kseM2S?;t`Dklm-puZ@cCYSwe^cTB29H~9i@Gk zVv^6*UM2BjUGWgG^Qoa;?_ZBmLAySv#+kd=A<*?sRn>Z4PexNi2SsTr?tvUTccsLO zTgOI%bOmHs z!76Q%g($tmi@bpG5P0^j;rxNuoSs)t+2bK!TP)@Td|)({ksGDGD8jvibM+E0gwZ}Q;Z!4bBKQ?2Xx9hT zxQAueXzFST-sZ6z8~?ZKC0>l|>jgUoMzL8nZgYY*cTkPH?i=|)OoL_Y&C~0QrY7Rf zfv1VM68ACj%=3bs&9Yf!Cymk6E} zc|Dws@)`rZ;2b;DVizaAlBN)<1>xq0bHd)(6jJ>|w8V>D_lLpqR^{Mc$Az4r zT_05Adtz62`0o0Pb?)HLXi9dC(y}JuImqQJC0;z=?goZ;wP5BwJ5JE952^)W?2%y* z^{onoow8*#)!PAk=-qMU$99#(3u&e+#0{wruRq-qsi0jSRAYBr*dRC-QU|=NeGzHO z9a}uUVZ+~mzIghKydJ*8_3Q%+huOfN*AbkcT_05AJoQ&sxZkb;w{`RsPU;2JUHJ5W_@x}XzFfMq-MZ|jr&d3NW3T)YY)wY&Twev>1`Y%*y%F;DbtJu^i|8iI>@uF|Frf~gUC)hMIgA=stgK8Yto@$Bh zmu+FZPnJScjmkx84eA=@D*e_;yr?V$sHGka3|6+^hDU6LgG2HFob9YQmcHtzbpHG?hurvjxW~(+ z&{P4o!*tz=9gREINW4&jyF=xPR_ey3`#3?z98}{?8`pY3r@{5qYQxhNnyTuB`z*6e za@N7s5-;lZk)fqS9raS&8cxtL2i16H)Vnu4`CyHE?t&DWdbTlA`?$>{C+EaSym(sL z4XT%^sj6oOa)ORIsK(!@3WH$t-dgG@tL6$#4L^;yd0_9y*4?WlUW9~paT4yy5Q?V6D=wQ^N8XK${7rV?L9YVmlA?q}}yCz{g#6*2oUax)OLIoXjP>mh&TgO9T z*au~5xiFEY^4sAJ6}~3fW@fa+3w_5)aAfv9C8)lU6Lic$HO|lvodouGZYs@BmBCXZ z|2Go)XCU4Tgf|6OzN(jaabUnSupg=^UdgtcpkofI@$P{-(_lzlgOVN27)|w`7^S84 zG|8Dm^b#*7gw2F^eyK`5X)Gt`n1gEEXIXzH+$x)(WMg|aO|8K;l69?d#PUEV@j}Hu zfZl~ml&qcMoS{B`6O~yD>3qo7# zxiBsAq@i-T3`SEK>##55Ew))X=p>?fI_97nyS%s0g*mx<3PRUs zGn#s~K1y4HqoUR}I*Awg0drx4jjvd9R~9Gen1gCuiQ6|9rY;&SuGD8TntHPaJ0MOQ z<;ISCh8 zS)Zb{oS{GU~2WuB|f{r<; z7KDRVv!UPKH7xhZJVsMBr{P^fIAYn;Qjhmk|KIE3v(J+05Y}ZE+fi!-C+L`iYJ4xj zT~0Zhv)JLNk&LFckH(*l!~0tB`$Z*{3OdH2S`f_CPDl|nkHl=Ux3}0$JV;4qO z#}ldjj7m^yAVt8mh5zvAGD1$A4w@ zgZY*l`d#D2%Me$nG3ga+GxaRji$i;OsKyf`#=f9l{>C;nI?HwM(4RhD6doK3!OdQ? zOIvnvg7yhfEePum41x<@pV$w>KCVNE{uc3~<3o4o=1{__1;lcK_99V@H zvC73;xh^F7ZorG+2yf_H>H#})X$B`6<1EhqTA-*Fgwy!mz6oc8E5uCWI-R(8HSYcD zQr}6CQvC|+;MkHAw5N*G!kZowq2sKFtXYr^*G)y=oq3_{oC=E?o@0Y|zBJH}OZ&E{ z#`e7#lObc-RW@dFDXwFS{*~cHwZ=1H;E!WWbIv!=k4t;QsK&b*gYkaDcjs8+y=exT zqJJ%UF;De}fVFw7Fz|W-6|~KaYC(uyF&p9!9cCp7sRcAe|LXH1WYGf18McMpo_WKC z3fkjFHSPn*p9c{&QrVi!N+M0srx#vK_YZ(s#z+<%xSSK?JpZq?j%q=8Id~x~d$5{S ztG7&~Df$$~i-Y49!HwUOS;vq2IYE2%sK!xh>p*DeAIQSXoEB+{K27rCS(nA|Pfurd zw%!j;(0)Lwv7dT!5JX*ZVW%z1F`A-J#k{ciuox2NRAK#&TXKT-98!&^wo(>DM(H|i zbeWorrs#Np7X>?lA-wf@(RyV=PSEy6s&U^^|6u6(I!fWiwN4>myTM63 z(8_@mw0Dwf?8T`b0=?C);;Y9_jHc*lix+*ng}__C)dep{wBZD8!=xJbQ}+vjT18t6 zO8#|XG(|^^y!dl07`%@p8fLz*;{q#8$FkAvY&*(^hq)i#W#=;)UhuG(S_Q03yh{hXlvvQ%S7{H*|ZYZ0cL{;*P{DLSjdi^)|N!1ya$ zl{+=MbAq|D;MQ6EqQU2Tv2)=Yuxo|3k6STLOYJ9)CIUO==Pb(LL6$4Gt**ac~Ydskb zq+C;0-xj!bW7@w=HJ+S&=Lb2RuPKWb*>Ii9bk>mm^3u_bM( zH?tpH?DK$lx7Ui}sBliuK5VK5p<$QN;Pv>KB0t^8bzsw3U|tAq zhQh#qJ}RScZ|4N<^`;uXj=h5+<;ZKrrp95e%bU(-^TNZ>54?guD~AHla)P#vQ!NOO zo%+I*xo?%}qi=GZf2G)r`L56uU0vYC zbG}FO{F5&#!maILBCX!nH$$ z_V&Ch>H)e7>89x3|q4OE(dY40RI zD*D{G1H`7Kv%w>5Iq|m)pkS7|D#QH0j!T9I5Q-dqR^yF!!ALzE!R zUZvgqz7ry}ldnv&G;y8uSO4?O^qZ3<0Y zYK6BV>P@m~Zj{7}$|vT+HleAaYq^mVv~{0qK^TZP#D;HdtbDwqQ)p^%pD3*a`z#M8 zMoPTcU1}lpTwX<~b8H1CXzM=Jc+P8n00>Xg{I=Yuqg!Z9w`4fLgGbcULb7t zdTA&#YceNj>ps=^{W!A-Ml^kFD7Z3Gp{c+7a@zGV$));6NW8duA_(gAK4Q2&#f=lR zb)Rb7_qt&*w79aFeE+=FvP2E6q*_n9i{!OfqQEghD*Fy+cN~ZSEy%LKFWa;v~{0q+yl8Z1ge&) zVyIWYg+fz}ai3-JC!_pc4wraw|40Z_x>l(m_qh!xXzM=J_*bnk1g?Mjb~Nf_GliyR z<4RopTi8k7HC*Ba+ZO_E%61pesWzOTt@~8t>|jC&#J=6^;!@mPp{Zebr(O-!D9;!X zF7cv|QwTVO4-}>1R-B-%`&8rJk8&YkD(E1#Z_!4fDHT_+I;0!r^Bck?UKGy@hO-}a zqD5i{PSDnUss*7y7Yx6f28w<*9Tl4T78a%1V_#qM+;E8(w~jA{B|G!Qt|z*4g0}8c zEeP>AKJUCdR($_mQfNvGz&)vWJJ*xC5fU%@2thFA@>B6{`=Okmt@~8tUYswBph`-S zxE4GVntI_ErG;Swf2Zvc5-&z~34|u)%dor|Q#ip$XFt_=2WUbd9DMjfoE|?#p{e`W z-R6dE3k7c@BwoCqy%56Otyqyq5GQEsKGnGYDs3TT2A5&CM=w)o%2CEfhXF>}lpiVa z;@>9o;GKmNvmCgZ6SQ@oYTOsTdLGO^Y{hPSuTy9$s0Hr1>tK|>>Z2rHyl5~Re8w|& z*)f$9v~{0q+{;-w8|oI>vFHBj3QdhE9i{cfRhdr9b&{E=Hv^WPk=WyRyE#Ey_o>EJ zvKcc$3GT$+JLW4iRe(1MY{fqPPWyEdFUq)2g~qu<*q2@foS?1yRO1{n?#oC>?aFj3 z4GK+l!x`cCmGBmf^LmLF@!1n0_w^XoBK9&TXzM=Jc<%11FWg@*vn8djC^YpbDN+l^ zcKjbdq9tCu8#fL@-uSTngI;igw(e7n^Kg5-V4u}Mwx!Gqg{DSLi_}KFE|Mc$R!O{Y zoWHcxKp;}a5$bj zk-48NuTnu<_o>ERNLxpMvF%V+!@ImnQ|qcmYSR58S#Gmh;>ENUuFyd7VM_{Ya)Nf~ zQ!NN-F$1B6Jd_nnHC3AWbRt4iuNTSv6V^z)_>?Na@3x-Iet2U}&`}E2c;@G8FKFFk z5KBDKNTsRL^CPr>|0$BY*2dO4@_K?W-=`Z`9UR8GY;DB}I>w6+>m^>~bn%4e^<%}0i_5C?r{QrBjwbFF$*_B+)EL_rf8cjBXJNF2 z`>*c8>lqZt}sF?IaMTgnzcsaMd#)+oUOb?oSN926ZHE`wIIwsEJN3nDDk9CbCst4 z{_n`+Me_15Yb9O`PV51nTCEXxKxjk;rXbP2r=aO5_NoXxZytT)3#n}l0QC(l_pQd)*-xQEHyb!5}QY9{qetdtQCtt ziQhb{!I{i0tnh4Ks1p>S4S7{0zv!MQ{asg`@}@|h*f~l185p4*$5{$lN<`7z>jirs z)d>7w+Jf6oym_y-QEpK>K{{UrZ?Cg9%C-*^q=ForbHKg4%Nr)3SeF;aM&0v-D-W-; z4W;mQ@peXeUW;v#!7oyKi+?$XJ=-SL`x>F`#NF6a$8AHgHsh+eI4>ABysO6sPr}>e zumvdQ(N^gr{{8rSyW{DNu~MOXq;^%r_N>l-zmDk+v&AL8OQB>}U6G1E(<8OEs6&qP z8h12qswzHMz7)gW_D5;Qnm^|NGy2LGV^xUpH~# z`lZnE;cFKv=x0SW{*+|T79UMq3eK z*FiPji@c&8o84&vSRPu;p7x5=I=bNfj5)E=3cS~{0`|Rr8XqU!X@S38*mCq|cpQEm zBU+YbS(}65=o|}9(0@^?@#iY5FKf|x0W9k~oh@mGO{aMK<*=Fj$CdEk>J{#Qx!LOP zckoZZAvV4D0GOf^An9?0)(LmPH@Lh_TG|`;m*5_j@k#O0+Vc_GD?B-CH7Fj%z;kJ= zIL{OGS1&Ot=uZaKI4Vjz#{Mlo0LGpC!D`@bFguzU<)V4~$E}F_p7+>bBW?e`KZ#DM zf7rIpW$_-+_K+7Fp>3^*XFirDNL@eUy)u=J^0g_6(t(%=?J3^iQ}^Uwk>~J^*=%eC zF2|d3g8qb4jU5o3O2byWvan^cGlWM)XcO^S+P=5;-jh zS3+yUopOO<-OodSrs!u#Ur!L~Y-j}&?<^7Hgq~37AE^yET_nG}og&fCbm$Wn-YwxxiIxRrQ=WG_6SV2tJ7 z?eKRn-%@PYdkMVKKQhqNOWbYPOUB#MHpiKXg{@?9!1YiFy!x3F9XI2?SA30ecVi{0 z1)*b=jpB^p5a`#Wu0m7gpWyf$chGIxw9QPk^qb&vd2BG0-YRh-4Eqx=_A$z5&c;bp z3qree8}ZQFAdnA^QE2Kv#@c4R8oUX3Z+PmTz#W&kHjiYThFY$mH02kIoC^SVs zclvs`r)YGlOE>(ielJN?TzBfU+Sn0($SPiI5DZ>}#T$1gLBB`$6`HzqU8kja;C*+w3Eb=9y_O%s#96z2q2{h)PWU#}YdY*5 ztkX0>q8i5rH}b`MeZAprr|$|)y>!%TPbT2~2KY|I3y)uRP_Su(SlP8FgdK>~Vs017 zt#+qM^!JYc{c!PY123vaiQlkii;7sB-z~&?U zwfLNPaIU!+@wEfoj$R?oAK8f$;ds;E>k=GC#imPCW2<~>CzxixMZ7XuS72-6n)|~LdxxO`@isZnO42f#I!Tui+cE8^u`W|oqnpzecrS*JL zB*(dCnu!isy&!1MGVxSs3r;Y+gJ*A9ywlq*OQITAUkCJoLB}_VXR6x(O?CS>N;~-h zN2zJ%!c8f0(OP-K>EFMUHPiK)HV*I0yqO@;?>YThz`f3UR)_-}N5kp@3zZ6wbiMZ7 z7k_r=C2|_)ck@ETr;P?dzj1X{n%X&0uT7u!x9dL1Oq^Y_LF};56?SiGz=_)VdTlwL z&RiXnC{c~iiC%}rR()j%eP*lDlzWO^`#s+%zsgQB6AR`w7V9_Z1A!K{YWBZ+&1W{= zYv`CHQ9(Zv&hLJX7q^%125DE?a$;=5Xw5muD2Ez(jk7pyBE>mxo!~|(7nP+$ZI9p+-mvh8Ba>$L!04B>?3>}ajx zTBGb>OqQq?gsk^##pojyp?&UXm8Lc}kJg%QHp)Aiq?n1$RVRxcrEB0G#Sv=7dC}Uy zbw>Ht)nthZ`jPPG>TtfeY~MGQG{c({B^#o(!AaPW(l>?ExPtX!jreWCQ?|q2Po=4u zy`!~&G#o)JGZ!}J^TnnYOze22>6~!RjMj#2$GN`n6p3n_{g{&^Dwao?Yv3%Ere1qS zYu9$-DeOXXQL0C@cxy%>6I;$uZ{|j8Gw^i9n5`)i74#zs!pE<>#a&VyyI?h+6Vuda zZPZchV!gv_LAW(HR_rrAhD~x?sM6G^S<%`**fw3cbSn3H_!@0?i=&3SGT(1OoG3gU ztw|@1veTCoiE2TpIW=1xx4%2fyS!MXsnJ2vT930v`9-T#Gtr<&yqK2UpVjHNSamoX zt(`LAU;Rp{5*73#VIRQ1dE&Z72C>_>P)_`~6svCg&<6!gmB-g8 z_sl4ZUCqVHSvg|Lxse6Ut(U5;@Z;{n)X0XZ5*73#;cV21RB`{$_l9{BLOBs-jMn;n z!;{4Vukm}X?GitZe`FZ7C{(4X>jBZ)$}jl$qp7)=vnEbVelcG8{AUp-+7(7?Cx76% zqOU0u)q?QkQ;O)-W|%UjC`hF#%jwaYHJ%Jxi$5j2P?L6vVGDc}&*Vkw`=ilXVFm2a zznCIXK|d1CMn$g`*WXW7I#-y-iQV`+c-YD$>mqrLr^(M4#AB~wmC?d{m8RU?qqW~P zP4cBf=Ay@=4dUkbQ%bP^3{E`k5v_$bHOb2-r$|)eD!}AjVp;F&imt;H^e{79RM6MPexD`lM0of{Nt-=^6a6EjwF@mx^6t94#&dTRi)+G#$r9Cq(4oa%aod5PN_v==N>eXuM{A=| zTzP9QnjhIA&VNu|T@dD>`b>z{rr;fS50a84D(FYTd&4VwivKpNr~2%1C z{lX-PYFvYSm@dY(uv2r-^;Bu<#bLeHq@PLd_R?Hb`!WFTCeIdk$2R1iuO_^T(vtA0 zFaA`PM4z>=w>Gjr)U}8Z&-8B0iPX|MtuvlVc~?4Hq8i_KKe|G&&nj`7MFXIzQFV2i zCg50Yy}3AVH3$MO28grg)aAsbu6W0xtx?Xm*e+3xV`rP8@b$D#jJB)|G<9W|P7A7K zlxyrY7oL@d!?xJz;=Tk+PCS^R(~Q_WJ^tHviE2S;Uw;(LSrjau|4{{K>TQ@#o6!oN z019%1Emv3O#7?}o?>&wOduHWGR11RTWe+$Q<1N~54Z zm*kp>i}T08jv=n%;AQ1G(Jn`)-SEO2(|vL!s&O99ejLnl?I$KxEDbcZ+k`in4L8as z-FBFXf<5EFqkcQFThCIQ*mX*$*<*jn?eDn~)q=3h!UwhwYAG&U_?^*I)e@by3eWb< z{<*_U+;{hZ^9SpQ4Of2SMAMr(tvDK+(r4_DsK%ef>JwnFcUduR&Id+Qmww{yj$uZ5 zbV#0=(Dj`Fx8a#frIYVDQQ?_RTa8akgH1ams&NFFH4(b)Jngc2FP`WiDPvW=Rtj5g zMi=Lq39B0up+<0m%f!08nDRlVmBr_h^A+ZajnCBG{lLocMURnBiy2KlYNXd@Ud5-r z!TDyQem_4*UB2tc!=tcc>3!MSd!1dHWlqDf#0nCa(Z=zOF)(9}jRomLCmDXrg{i^9u8 z08Vc*v>sHO6ZSZtSS1(#by>DVHSVTD@wM_8!-~7Lfu^>#&}k!&;?B&==3@1NBr(FW zo%-T@7j>TytrfUo?_6M#M4wCO^9nZC$N7m@Yjjhm4|3*2yN`O!Ziq>qH=NgalJ!rv zxVk|HwRmSIm8P2F3`^7ilYIP)xv<)9E5@vr)N4KLIFYkguiYGj`>Ep-C93h=r{XEG zm1|G+PCGknJ^8veaUh0DuKNOl0@98uJ@1pB_#9V|= zUncHr@2lFV&y-8}m&_G^w{xo`NL0{|gzHh6<;AT>r>OPc+~9=z7;o;KgQKF=@tnr} zS4Y#tTBj$gwJzRNXev2Zr;WkaYu%fFJ=|GyXrIgTp|e$=%p;sg2+?Ur7n)@EtZfq2 z*b(oYC)$_HQJas-Q)udUf1ReAXOeTK#+!-4nu#uRY6hs@w^wmOKS!ta$F|TetF}p0 zV}D|Fe=&R90=4_9%?eHJ#2b$KEW-QfBhAHGWgtwex5n@u8^-DH;23;vA7#Rk7e2Ss z-$y~%YB2!1H(X(OpVf#Hqj2uEKmOL*waSvH#_#z8S17QYX4vruZyF~lH=KLza@Hgl zDRK2`1wi8T@pTj$tv;_n%?*+y*A5i%vJ@%HS<-f*hJe8W`_Tc9bAq$uskEt6cu z&s?+$XAtha#n9lrJtr)1U*C<3_&eA?L!w#`1}y{_{cD+FnUg)x)Ck;-+v5?A)soD` z+v8oKC_3ISwy`rO#$uyG+dC$?$)_}lYW%Go-whNw)X?ZgTcD|@)=^qGo*o#|Io(W% zan3Mxz*fVVFlCFv<9njfTr{>A zDxTXKq*h+nWxcgsN*B|29w|<8Iu1e2ux6`CT1?uzB5L7bn9K zwRCKefu`tw5Bhp|a`MM<@mX>x92!{2?KPll|8!4)AZ*<5o*%LogRUY{ zjW^iud?scLUjo}cT{ucpzdJ{1wzvlQb<#F&r-C5t^Ri%}iJ@SMJyJjgU5TR_d$yBG zGq>>}V0ZPNfu?5d#~s)>f-Lfjmw4eGUy-dS9|E%zpK*e&{823kfiBi8^-2(|Thg3c zA6$GtN(;pm#Rx;Z#0&pF4cPR6AV_}MiW78wkZN27m|?{-1}uc<8-ux3%Zt5r+M8iU zS>2W(@#4Lk0~^+CK1{d}#RXC$z1NnVelrvF$95_-bs{M3+0t3A$E9HO{a&ITzepX{n&~+TD1>su4U{-2;XXtI|q|(%% zwR-K-3Y=j%pDgjB{#PHit6y7)`q7RPbR~vrK}i1O!D99{hf*V5RGQkmPp{otg-8lnQnreDeuXT&XrrS*^5-%Daoy$BL zmIZs`a8A&56{_*?M^8T%T>O#c&mW`GRM{_j%^}k$FL|CK@#1^LLRPxdb@r;lcuvqY z7OHVa{MzZvsd6DJv(QhaDVr+MS{>}zdT5s_@gnO;5PM%UojHt{&I!6oLN)Hd-Y}aT zpRk23cATZs)XYZF+9K5`-|$S8cu`?uFpDvaW}kY@;{;tXp;{2KOXjibb^5VM+vlq^ zwYL?n51zwS%aBxw7Zd(0W-F?j#HarTaDuLRP>rj7I|G<)>7(NDv4JX0U2h$&ox?Sj zmn%~xUi7FM#5{WV79#0k3oLA4<4Hw3Y|>hOXEut=q;hWHxmOYro7K2_qy)*%a7 z^<$-!z!?FYpz9G-<5;ah2rJ#=y`gIF0F|c3w2apLJ{#pl3sWUt=)s>YoaV0>L*{aV zu4Ygz2rD6!88%E%dd19DX=-eJTv04zlC@!}5-^p0xE`HQnrKvj$^x82QM-ySm5-+;8=*^sTPFQj#Jsc{raobSJYN% zN_5t1y>aGl)5Ro-7xoXDvmt_~dfxw!LIoX@Q;mP4ti0Kjx1-g~n|>%Xbq1eH=Hp!7 zOnffkMXd>S*};aB)rJ)=bApb~sm8Utox|C#gMR9?`DYcHdX}!!cKey+>p_VUFCKf; zW@jR1s}GmvaDtAosTPFNoqI9nHB&8JDp#SYJqvW&p=l=hcf~}B7jL?hVWmbdPy;{e zIYCF*R0~3-w!qFL%~#)RK?+Sxu+nMA=9=WG9TOy8#14HW8eA8v>qmCr1Rd839W1>H|iHSTp@T9cjV9IC$FQ$?hyM%QqE zJI5cx(lA}Z>Ia6u`%m$E_+ zM2TvAlG&`Vwa2Hxu9d?WO^xmnrIp8(xFP?Ti*coltlsL$aPm9jghvG4CoE$J-NZzR zYP@d(Z|<#fVlvGCQ=idP4?K(PhWr25J13cm_%%0}JYf>N9bJhNpB~`}X*b+o)GJA% z8vCzm-()s6Q^4caI+3QdgHc)$cHKwSO*Rt~PCRGFhWJ7qxeh0MI_b1>qmAd6w- z*l6A71zRTh!pyjm0-EYvL8pb_=&sibb1@+ACtFqC8z%3JFi`O+RHt>FXq30({wu0+ zKlRO@?2`33xan0+p{dVqI?WB&IX`8mn2Etw zno%!7KAyC zYC&3^uCT6pkwQ~_Z|Jmq+@)8cb()#Tt6UEbENBC<&2DgFa$CJN5O3P3my{||jeF03 z*M+e0b`Tl&N};KZpLLoauGf06NHY`vENKjT9UH>qw!b)Wa)@4ghvTU2pHn5OvBjfT zBUpE+HdNeKQKhNLb@W>F7CcjZGtErYwzY*FlgfdwrzIzb;=K3|97nxpX%f}Avp=#K zWcUBcj!&(p(o}96y=IwVls`93HxtX}w}i`UZ!yQGO*vs1s@HDgILdEcnnX3uuvBRQ z%E@!gH=w0TQ!zdDn)hzp&oCn0Oe|_^5055iu_14qI5B6HUb8-Cl$H22iE2Suptpn0 z&*Rzp56&u0wZ(tksyOm;4^1}{sqY-%2%hJh=i8YR3peYv%{Y$IA4-#`#^U-od#Jc- zFpJ*NRi&u{58RWA`{9zdrke@f0Y^}?FNi)?E}XE~rq`a~I7&Q~CQ*&^aDN;iy^AJ( z`{bh1RDGP8P*GTAq?-x%Esk)##f*aM??g^ah|_C+IF9l^ktR_s2oLr;!V7g=L6e)J zN>f4O^xAe5!_v~tM4sLOHf<`WB>w2Z3Ga=1?Jc$xsC&{Rss&-*2}ihJ?YrS%j~*&b z9e3AjnK<%#yFT4a>^;~DjJ|ej{z5_};(DfD27I;p~emW({$M-Z4$08qXq!*}=yXx0FhUny57O z)K0GzH#W&fs-~NXEvuTry@*ok0lgI`GJWvh3dQwiX%f|VCsNDi5bf|;soS8QN>dTd z_1Y=i57)MAx|wjQ-w4*!udWs;)i|-QmtI@yXp(zgPL-&}cH?4ONc5|yPTyWtrKv9! z^;&~AcrV$3G&2!?$Qs`5X|C36@>QYYd=tI)rHe^!jN@~v1tDQ~6S#7{k=pF#CxxaC z7VES+J#gLGBh5?{=q+K#k}m4=Bj-60j_=f!d*g~?`BaH&LGVng4==Ku)gbJ9rKwTJ zblP6rM^^C6Tx2Y(4!e6w>XxDToY?dd=U#Cf)%+#yttA?FlGm#P6-v6RzkVE0XzKa_ zoi^3gBsaT&duutNRkDDQ3tiRi_qK4N(qWwzgLf!g^u?W-MB`4tR<*#nTyOP+VS_?b z>mzj9Q+IrN?SnHcoLD=h6bO6VRg3*YI8kwlPCMmglJDSi3DwwB^szGhj2o(UcI%_i zl*J&OwriqEZnZtdOaxwe&qi(cQM>-UYoOw7cb(R0Dy|7PPL`+^gqu!fq1C-Hs?Dtv z2AbMbMW^kVWs>)NGZ+6{FJ^9bemFwCQb5JyYC5gdY?C}~XOcvX``(!*-V6O$1|^Qrl|J?N0EwFhoZC~+?VkYPXJPlD<*SavB$k8s#hX{ zMVgw59VvHl#4-nGwt2C?;c0dzXqvisNM%OFzR^+IW<2S8_e+9AwIIB=xy>BU`>HKY zHe)pP-5F1YMVjP9EzwNue7cW$2TWDn$4ur#?N`_!fFi46f<(0-G`Lg5Zta_>dhT4p zXv)Wk?cXsbd5XzgYGm9Hn+EN;`^#dEh*Y0zv&S#QH>{Zm4mERm+`7=#|%bO z%8W?OZ9T4%eKHq*{?C||pAC3jY6A4cGCjjd&vpvJ&tn2)TxtfRN~}21R2Qi|Y-E(% zG)&^ok7DEErc$tAdMg;JRRfwDj^`DHe>IlywpK~I+ew2399-n>o zBuiA|h()Ul?PKsx`VaRQO)V~kYuosh_xDaQ6HAUYhWdLQpkm@>PISdpzZ6DO1ONW)+8O1z*{NotWr_n_R~_J2a1JNl7er~R0Z&@Qr%F@{ zLfKF!m{z3?Ebp+9(bTL|Jm-a<)rF~PW@2dl&akduD>!pv2`75|!PPz-L1xTJlc>g% zNJ3W#0td*=7{X{u#FLXhaO`~6E!|9H&js)w)g0_+wC2PSd!4q)9Y+)2(daj^8{St2x?cNL1tcxnVf4 z4wi6c^!Wms>W{mMM^3|2ruLa;V#Z1jus>S?GQ0a3s7OuHY5SHK5WsDdqzw4&n|v9gglC|ILu7#+@}OKF~Gz zCA;9zNTI3RWS!O~67RGqonQNb zp~V)3rk-EZY0nQB<-S+4%*4oUb70HyHf+?dBu;euiE|kyqwJ+-N>t-bG#6&W^+qjN zn|J97O+CJ^)A|(|<;h>N%tUdRKU~dC7v}}$aKb~toy$0miawVqQ7s5VC4cBRaGQ94 z(GG>Ce&hbDxi|6DcZF;-G3tmvI5rUrlIrGjLj9xD9^?6+$TOJ|)z~(D+8^F_XkXxW zBTu2JN%$HUpW~fK<+9C0)Xh1N;(WzW`%MlfJig=4)i=Ba<4~qVHJ+~V^M`$v3Jqzu zvK5*tk9*bRpLkCAZI+qX^mP`frrt{T8Y!Gm-|Doh6;1N9EtwM4I8R+?4qQCiRjE=w zQK6|I{Ao|9f@@x;EHg2r{0umEC`RcrXdNfs<4n=my0}+uQl>;TcBI^%32|K_6ywAg zg{BH{*L^syM=e^HWhNqCO@?(52bG@f131zAyiUu)oy%d(G9{`7;p*yXu;IWCrGCmR zg{I2w(P>R^#Nyf~%S<%9XN&XAyJL9QT~2l0oRmKa%+XA zer&{d(ViyR@mi*t=snvLmUxs_2Urvvs7PLiJC|{c<1#Wsq8exJj(WqBtk24erq>KK zRk%>6O&V&FfB9sZiRYh&gDJg+>bAp<6aF)G+Qw0Md)@VPiE2R@^LR8|A7-K6m{Gw% zQ>LLhEfDuppS+r3CZ3)c3^7lv)X-)jE>r~j>afe~8IztY$46D^l^OqfT2q8Sf@gtLr(Dg{R`X<7mRIO{zq-AgIQ6P^YQAy7BcoMpM(4 zMrkwgN&ozNbMfPr4fv-ztJ2wBoH&3tXVqSZV`rBXiE8{?Yhe$2huN!}Yz{D*YKo(x zs02I>_|{x_G_;0G58A39KHuO(&$p4<&^Vlp>Xs}~EeMawHG=UkTdA>~?=hNMa6MAH zoryb4@0p91V=IGOr`D?9<6oROfuo|UDJFRZ?x&_&5bjpC1pU00s_W)bKvU1LE6gJw ze@YZ{vG|<;y9-;XStZptk zH8Yso+3rA7*8L*22iUd{{@z@yyVe3uzDZ$WGum-tk|9zH{8=P##q+gP3qsv-c3^ci zhZWpw4K#HGcbE=;StS26$y|JF+XnXPve>mdcAPNaongh;G$i0&9IEkd*>=w0*(`_U zTDJh2(r!m;IoQfIy2M-zeA)>f=4Ue4+k_J)Y`+*%$tdsNohDI@>mTL1!m$hatZDfM zKvNewMrmKa70I33r<;j`2|c0V_$*d+65dlqK5ihc-R-l&y-}CbC91L0$y$aeLq1!1 zrwY(iCibK*EpL>wr)QW6P+h@lWd;k}RF)G}jCfC63#0tuVTMGtAgozA2#!3;W&gDQ z$!KaG3aJi`?$&0SiQHx*px5hE#>T$kMEu7nZL2em4e&{ZYTTuFcN7fmlfk-Zj~Pv+ ze~!}nVT09Sk1R8xpYI8lP2!oTyTOUNEpb$Yc^Cg#?f2=`B{XPq1rPF%ykgY}0S<;zal64f{lhtDMr2R5*qr*|@%I^eF; z&h*BWpN8Ab#OkqA;cgops}Gr+STy{n+C1LEbJ=jVD>vIq+bgKU>o|g3;6%Jc(2j zN03*?i7ni_^(Kan`* z)E?!S3BS+)SUqo9GMZX;3(vmdO5CFJ zxn|H06P>5%C%uHXi4i ziO{DZP%75bP`h6pPTV-F)5ha^)Q!*_iE7+|eIW$GPxm)$wXer$Y9X#WKgaHb`X_SD zM1VdRR`xI%Y7A<|iHDj_bH*lwHv@Adss&-xvS6t8?vP<$Z#za)7Wf@J+Q1}x>T}J+ zm?1$BZc$U&DRkmQ$X=bc)&bAT{Mjy1jm@f)g5X)}a>~^kE{vvL8gyEN_9l5uyIeEj zTsHt>BvEl~JB$S#oyRqnA-VV+B(En3 zO?u+g-P>u(LUA!C^viUbFP?BKUunBUwIEnMo(q!(j#3(pUCwA~gAPwl;)vy-b&i=> z_ihG^>Jq6e3S7^LcRo5T7e^Ci=VeP&V;|YunP9bNfl}$`n%aWns55$#ToRaVCZ1m( z2R&U=m1jmHC#(cKk&EMxu%b+fYHVAG@`gh;o0MM5&oY`?gZ&K6w_&5l>MS$y&x(;C zIOQlKyFTSaLww43gHQV6qYQ~^e9~X&4qAr<Y|U5P zwaT2xoe-r(?lj5$UDGA1@tNAbFX-1~Dkh7{KvPEC6?R!Q$(Gm5g-cowu;{m2Sz26& z6F+L;3f2*myaCspsm7Vqhay~$%uurDSOHC0RKc@kXKFC;lN1k(JhngUn<2+7-}_uJeHv>bn4EDW8WjR zkrzzzjFcpaYHWM^*$@JICMtidanwyx!{0?{yYJy@_;Yg+)VrD3CuFIbIC-G>U!yJV zN&MSr`?sss1^@TorrV0xfcp(c_ocA`R}hMiG!|bhUaG#UK18G`dX|hAn>_Y8sA|7!*Qj;X&r!ZbxS_8~ugC@#qjR(l?-^I!Au|HR*O zaE>cX|FsQMEeMMn8^kqTmZ%9gH;FVwcYpHY!o`ZLRAjLF#8{S5@wdJAY#6RPV|y>v zcpKEju54fD1?suvh5t47{x9{n*Y{GC>AzlIUKG2uXJJDEp<|%T=!rbq(#y93|6u*u zy9$ADy;%oN(35ji_Yv;Q1PPQQJPwd?{J&?U@LTIJQGJ=51)6PC$o_=gJAdG2?bQplXFz# z?Gb?sSZ~KgU>`EgKvPwAM`=^~ON$O(FKj%s{Dw$m}M8?&LM`yz#=`cBnp z*0^?O-z`bv#kL8X*oHgPAtExG6ZGU9)%fg_x}KdBCPAD1I~AJhw-3J#Tv5F6AxYvz zPFy_OS9Sta9eR`#^yD1Xg3xJ30vq1U6M8(pq0rPUT)}!Z(ih-ho#*jyki~DX7J*g5y#98`@r;_7M!3b=cvYA zdda!$$fh1}BFd*IapzAS9a33_slYJ9RByO-_8 zJMRXyu~+|JS$7>)Rr>u8f7|F7h#eSM*oqh^=U!}&ilTzp?byZG-9cJo1BwbLB8q`J zCTDLwV}UVtcMi6WozG&<_jCQ;Yo7n+a@LE(0oK`j-}k!L!l?Em`85`$S?gVi)1??y z!KQkDEXz~6>j;4-=TLJ8v(J0g+=fLd@Q9a*QOlM@*ypTDv#zNZuS;?Drd_?t>O{VO z>O$bjIn=xw)ySsY-+fm*Dz`E*YRgvc8j+Z0ojNOCm!f&tF?B8LZROjfoe+3(4mF<* ze|cENrk_!hYjiR(D&jDAjo8I!;`YYtQuO_pro7^kRJY+hgus(?sJVi!;89hu?;7Ql z-rK~ev~%2Zf}e!nKaAI1cybOkPgtdN^<=u;68~(diBalag#9J&j7B=I z*QLld@uYeXGdy*}gJDA8$vM=THk{viySY75<1P#{F>2A>2zyViFipt6UYDZQ_%!97 zoYQ#!Vu%oUat<~3PKY_BMnrzK`7In`VpQGheD;-VQa66%x^Q?s-VL98Obu-@+4yC3 ze%+TgL54 z0VYP3-xy&Z!8NI=!?_j*UQg2okFcpP3$vMJE3^;-PtKv{-+BC>D*5myBhJ#w#He56 zBkc9LCUtz@cwLI03;s}(ZaSM^7Ahg|etDj@`(oI}lB{wJiWg=eHzcStXIhv!2ILU} zPtKv%v~3r5svM1dOt%>YOpMy?9$|0DQ~0))j?<+`PG6-OJ`FI3P5Eh{z>{;Rxidxi z-RfFYYjf?N-wcfE`!?L3#CyV_i(_>u))Zc%rswNz)*F3J2s}B5n(z8%Zc)VtbT_|V zIAvf|cfK#_+#}tZ?cF+Eir@-i%DehdbJW~;A@JlJYQEF=iC2fS3^G42Uu|GiQC{;Rxi-otQr*k`o7t|_Xal2)_=MYIhNWAtU0th7 zG4ffE>fdU-nYgBg5O{J9wWj@+W2ySEWQ_SGy^w)XCmw~_hww_#!klY$DH@gNsx~Z` zY}WZ@xeW!LoI}mM)s0X!a{mOgEP2>4%08Rd0H&l{jVfz&DfT_Es(cNnn&(Dt@kW6s z=TK`}g<})cphA<(TuXacFlu!nKIg?xdTA;~m*THMo@&gjDdzY3H-x}vC)E5t+WxAt zj+$r|k9JZRwT@Q}&II$h)Jdy#DQIq8HGaq>v&P&SLg2F+YVHr0=C4lu9BWoMG)Q4o z=A@ONaIS#hNh?yEe>OIClh2OIE>hkcB=H_apg}@49)O;Ri_X1V0=s5Fp-X9i>!rz({yBF?M z?n{!x0_&bpbBCratCZj4vF0An?4q6;|N5jzOg^mQQiIG7T6G(KU98_m&E1nO zZ&EkPjyA^@n`^@;%pxh~_Dfg$Q-+wg*5oo!U>!PY?o@bXk7~O=$efxtmw{3EX&^y2d;NvLdV18nt52q~ejj9>9Mn_P>EoxG6k**Ssu>ww%&q;Sg}{>psCl|d zi&JX*hn{AODQm^)0sM59V%YarDxtccSwA*i2s{yiTGN{3zou4f4KVZ9IwMX&;8jM7 zeDmHY^CX!&on8uoCp%E{$@{F2RGWz{%r)H}iqjl;wUnapxvxrJRNwsDKZ}W97f-05 z*0iVnpQx;xo0x6OWi>GhuliCv{E>yO?I~}j{!>HwF0^Ehb6GNzZ-=O?gm42h3x$m^QI3kxU!Bo?SyxeQjGeRi|$pvW90tnB?O+}Ld_jX3umPx&d-eV3mS`4 zTXgEyU?Fyt|j;z?eKddpXE>=o}zK zZ#Z{{n)hpMxhVDMRO8gX0C9>ApHieKcQp^~Y4O9R@9iiAo(x3IwI3sMlkIgb!_Tji zI1PwTTT(QS$wSrN^-ir_uZs|P!Vxv^*G|bp6|0U&J>uI%oNC0UMk!w0$xT}x9kE3F z@%beXhD;{ z>hI41;*=>q#Y<7=d`_CuYMp8o>L&!AoJGxZGj2PP`Nw8eE4_s{EsLuWQdBas)8j8^ z)!wc?Lf{Et)ckq1HYe?9c}Io6Z7fdx;;M=i2RUoIHPh(e;(9{hNoLfV_TzIlsv5*U z;bYas>1A9UlEQQRHx)L#7%gsJK?ppNjhd@*-88D^T#gpBDq&(2u5wAy@6Y#Y`;lrC z#Gi5~@MJk^UMc$WLAkisBcIzjO^m|TIw@-3c%~+KdehOhKg9WSJRy&oyO>XWse(&4 zqurL^8r`*+o(Gi_+QeohEH>5rN#eizb^qRUwO_dCQh=+#Qk;L4rqasvr#tn=3xRzUP;tK|c?Kg@RwyG<-k>GBR6dmKj)VT4Z z>1JSCA+W;=YE8S~8leW>4WjB(BScpf+_jS8uUeB;Q2pQN*2$$p;9OJGJS)EAcvZFj zP>RXeBBr0>98D=2#)qpTIft4Nh2#GfX^XgTDbGvA6OQuf?#ubLD#q+?-tKZqh|C@` z?YY)DbE+z8{-mxQrA~G4Yj*5lQy7IOC#5*^IZ=6U=x%1)az=>ES)C_Wa%Bxq_e9No z)wZN6C+}8fQi&h`PW1d=ROZ~zLTkAqh39@sapUJc747LyAEv)n*b4`zc*?1vMJ}II zyAHIav(xSifqiOFYuc*9r&O?8M|##MO<`2;4Wahy?rGM~4mxWyl$Fx%kp))6nW;nRAXW~Q;{r7gup&EsChN2 z_zQU%AJ^$pd>;5yEipO~6&xW1_NhV5E08la@;cm=?j7`0 z7!}Q3Xb15Q?~RODU5dx0^3dj09jS+Nej%_=4Qif7`#BGF&eEA&Q#V*J>g4S(`|4I{ z*5=3JbSVh%aS(f69hYX?(_gZ6EFy%DWj-c#Nq?7Xo$4_acXZ z0{hgU=GmFKD^bHM7CKW=85nhCMz}qScSiHZ^Ue>v9(QA3QiC=(^rXvK2MU3GYEWxh z+TI%U>(JVCe%1m5qnwhs+Hgvm)zfW*F2%Id9#mpsC7SV1j1btT1~u3FSnE;IZDna} zdWwNjmSfxtDJ0F>YU&1Ein#NQC{K^VG=9lpA+S#kYVJwy-H6WB$WMBgO9n=L;8S#c zmhlNUu3M5~SSdv{(!Q&vQICbdJ~gPhPNtNF0w%vvMHhT9FsdD&QQREImE`3TbSb<) z>U1OUtST0l)kJ}PYEX0SM=qTbDjZe$yq!#pn#a>slDOh`T&DzGilBncX?W~9)n!F~ zA+S#kYQFcmX{EGrD^;^?E+$58DivXOv!z+javhlz9#wtmM|yiT@?$X}uulzY?&DRi z1vSjtLUr#`(!{7c+*{4&-nFc@IYF1=W0{uZ`>b#3kJV*`z&9i=uulzY?&|37OVNFL8%JIhH8HA6i3s~Gu0wX6oS;ilw{=qr>ay7= z?^i$w>{El9r}hkMPSX-&jkbT~GchWA9`2xAINh4$m!L~gyN9AP>uwsu9%K~)`_!Q3 zb)S7r$$9TtBcn?e6QfSN=Xt_z>DEFsJXN1NH5Bozo_}~{C)$YGWdjopHI4VNx%kO ziozGG)3-gf%uVH&3xQo{Q1gBJ?0S?uuZnr~{9*&6p7NQ|$hO>X>Bf3pio|2?v|(XG zbL08JLSWY!)O`KOT8mnG)iryTn`B_rF|MZ`%{z)!4z1Uvn6KQZY9Alda=VET*rx_H zulwApMpgX1Ouru<21Zrq-U%zY%T3oh>vbvat}H>*C$=`zJP+DXV4oV)Jd-uijW(=k zW~T1jXv3(9d|&d7J9*yW`w}T0hC0*pHXY0&Pl6kxz&^QxQq)VZiafqiOFa}T-W zU9PCRWdqC!)y^x7n$$Mb{s-5$yTz~3rC9gufU?(XXO8>)LXX7K=My3J4zcOh6Jug@DPHV9r{>>lVw!*C5obm*3N@dQUhJ*T z6*W(ab$g;_b@nl%CVo&Dh3{61pIx)lw8s{6`tIvO;OSh{nUiR~sQcTSnFE?$5GQi+ zw%fUv!359P8Q=|pA;Qym7;6jK4t^=P$BTN zG-{qdIH3?d>FH}89Xvyvkj5;M;z`>IG;kQ1Sx$Kifv3Jvb63a5rRn{eW@hE8N}Tk@ zPXj4>e6LOsMVgp(y+2y;>*DEk)VzA$uOijo(w_Qszk;Xvcw|-~ z@Ju~wO&jG?ivq?qF}IG~=Z#VL=`2O$4n^U$s+m&`46&iW-TbtDrsO)Vg6Zw@Q3&jDfSPCIdMa8_zN#5J{)XtCfLBW?mX>QtjRQ-X-k}u? z{JPlP0d;0gkxsvEDQ{jcQ{BKQyy{EwakD=y8k)!S_Z%Yx_MAY?EA)k0(T~*y&HOhf zi(VFZ_aeo)q8;g0x!1<%T`@vnw++;Mhdd^Lb`SY(EQpR39X9YTOo~3II?;s%*9`CT zJB7fmA*gvpIJyIMZ2!pU5V}ot3c6tEn)ZBZH#$;vt?~QI>!NcD-rY-4hvz6B8R&2H zDW4$(cB4VfldY%rq`NbF81)`K6CG&qDMgCPwfoTE{HO{I zwyv{2h)z2Av?ayrv3;oWi{`0bM?MRI-GNYRTE?J0baSnL>aACwMMoffYLvq5Zf^>H zlWbX7<&zNDy7suZ6&FO{n>^y<~6l z^R=qS6`qL>P52Zq#oR1C=>5(4YEk2RLSWY^)La{t-h+J3EmI#~UlpCEa5X}TGT*yU z(?WYy%8ye*VD~K4d}4i4SBl(qNWHmmSai(7RTU}5Ug|*EI^I=hPVN!{yMUqAwDV0m zQjLL6)zKjvMCUJD9gY zMKTJ}r-J>3z#eO;`Ggy<$vh1!PCq|2F)#{O>!i3+swp+-;6{ISDibKuUs5Uyy z{-Y9=9(T!xQMl?T#SOa`-RxMKR&Ngz0(;(}=D*#AjVM>|x>Rd@a4JTn!Ro0L&A-&8 z!k-$_^8-`7QDC<})I9%#=iEgP^P;z&<1HA4tH4rt4{)b$yg+YnYYKr~3sG}LN{%YD ztB)crq=@KLh^yIB`1En5d)1oJ@vbBUc3(uTX(d0DqU7~DWn3I9Ixga>ycGSP6r=%P zo72IHi-f=~lBjuAZLKqn&fk=hA8r(#BXM^@iY#CA(4jL{>JyP71a`wj&G&FObJ59^ zrj&D@DLP={E{PO(YjaJJr5Po6Iw=Hp^+e76EJtcoysskVeP3Y|?)FI0EI30Q{6ti* z=X)WrJ1J^DyEOf8)uE9W4K0~NbR@-HD=Bh+yQCKF_M&WA^9s>sdx-r|VLpA9bJwAw{pLw(o*wY(WvKY+MtSN;keR-QP_0|UytWzB)nJAA+Dy) zwVV)JqeJXN_wp*|%r!b{P3!k63pHty-E2I+4q?=ug(3D*htjRZkNj7ZXsJ=p@lMnu zv=(6>*?8U=z4`rwwI=uY&D4*$*H5PA8pxWzQ0}L>$Z2S0A+TdBYOd1r&P&nx^3&Ru z1f90J(6f>S2&0CkhuXLQ zl4k8bH%^!0zDs$^yU3ZI9&i!@d%U97w9upql=i70b#%#27&YK!sJ(Upp8Woidu+k$ zXRrz_)nU2o>rchvySJav|=y-JsIaru_UVo-Aszr;;5 z&XnWi6(O+4D{B5r{HGzccPmUuVMi54o#iR67r0MR&ng>qDc+GzB^KqUCqq(%z#gxt z`F=OjN|RJUs@r^x!l>Nm!|bW`(yW!sCg@U(-R?&>BYz>w=LJGwk5|+@Z@Xn%+IasL z${0OSVbr>BVfItJ!&~b}f-XhLz8z@C@f`F|L^mO@$17^?zq_gvy?B#@d}r2G7ixU%dDSWOCr7=~` zs?yu%d85D{uc*0?aPHw$>sY#~-g8tcMuja7x6hoOW*uK~lP<;gEhA~+ww=nByQ&QZ z_IO3DY0LVLqVRReYU!wXHjG-vT~6lzo@Sl0V3RIIS=Vut;d+w;HCG{p zj-xjJEKqav-mziS%KhA7BR0+Y?lSi;f!E``)QE}XU9q2YyAGBA$?wB6NtfcY+hpqZ(%oq6T2Y9} z{9XO8Lo90Ua&u`i6>%B%DMcsVN_|Jg0P`Nx^>&}O}Z4*`j4T6HEWC~b4($y$17@H>#H`7HmzG` zSQl@#VN{uTo^Vt@-8yL0CS8i@&qmU5mmNlji6e!;9Fg+ zZ^@TC#LnoqNtdESSP=DiYd4Y$7Zc*^^8eQ%7B!!=$TpI!SN9l4J3LIqs9nL_U945Q z_0${gxeTwzci{~NQIq65#?-!UDj%)?w}a+W$m zV2@YSeEnG4mHr&5nK`mFQW*7Du5kN%o*vQZb%HL%ic5af{qOwd;v&<8z#gxtxwpDs z0A&fzWm-1QRv1;9?@MSwx^)=emq>9m+K2K46*6m{UM~dpcty=WE05;1s!3kc$1PD| z)T8BLJWrVWUp3yKOA*nVXL+?QY<8IZrx4iV6*c$MkMO2moeP+uz3d93VuHf#t#}8k z;3l4r1FxrPm9N&KuZrs>;%^IqJzi1s3AgZiRJ}?8vwa_a9)v!!MO?$|3-}4C-?DgJ z3isP?6rqZk-Fs&t6xibxHP0*_SB1t;$!}&YpN%l8J5Tz%xjWsOdsLh*#XmgDqQ`U> zbLqQ+LST6tRUUbZ3&gMIQ6!@%$nol(j%T9i! zvzyaT)FO-u4hylb<-Sq(pRCcP$mW%shE~04to-67`YmA;YTg-5DMl?STsH!<)fNIf zLZRk*>KldW$L;$@;FemV3lzRvDgM0RMs;u9HtM@p5CS_}q2|>nuD8qO{?w@0%uRH& z!rz({*H71?g%|D{w!MXgzz$ugxwdv{b@HwA%4lROB)W3pU!N4O!x~d!?T5xnw;V!X zr!myrrJ!mgY&?tW3rNXa^9n(?nwu>)~eqO2t0@Wz?TAS9B4?tEChR7Y(L0-Up5F z)xQdXoe@#<-D{13bT|2g(Y;1D(G3x=`ch2HH-h}bd457kcOkIDBWm7hC=^6zz5Xz! z$CVXb9r5l(isJLfQopFBMyyYU1-~wKszl8_gmR3bH$T@HShX z8bKoxg}{!RsJQ|n$9NjFa-q@W%?=Aj;oYPZ<7ZByHLrt=xf#JiVCPWOnpSbzMA|WL zrcq+aKnq6UU9l7w?Nh1!`vyj~;h(%wUDluq(cc|^Q-%9XvS1Xhsz{M{?s#h5d%hZdI#!4S z&}SR9rfqFGj)q?RU3nHgZ^0;B9gLw2o z0z0##*0g)C`_kgdX{tq&V9|{oR~@D3_jL zkjE;0j3%ZP;Htb7g?84Xg9~4(-hby70w*w_=9TT`b!o|xM`}aX$|UEr6rRdtDU<`i0KiyOCm+d!fq7AzmNBy%L;)LF;MgT+R$>O z*S@3XH?Jh7VBl_#6m91hrl<+`)xLtYg}})ksQLbCKp{%MaYcRZTu)5%z+EdTE;Y_g z6(3wxH(oXtqR8YBd%%km)@O~^{%6lCPhlsjZk$u|(k+Bhna^kazMlB^=?-6yYjN`D zrPz(=ql{+1nY*oiLH5LNrqoC#< z@oTG6qppE!@`Of&QFD17%fcHctnMlCx)k5v)usZKTdU+d9zx)J6x4iAJ-sgVYZ9Q+ z^VcPeioO|YKYsg!^+@COx)e*dH=rTkTdHYQY6yYzQBZ5z#qEvg;nB|O>sxois9>J7 z^78K!R_Evqx)gUy_>kMnR_fL4@$)r&if|Nj1jb>iO% zx)fEPwxm~Yd{y@)MTNlmD5$yb`PSAn8im_)SKxW{ywf1X-?pAKx|E0dCF~y|a6SrZO*?*|4}FcQ zuZHY+qA=?2;Bb3dgEZ@}pObVc4wdXjm5Wzaqg&k*0_UTk=KI|>1L)ZFit3Tq6@^jT z`K-)a-!!XF;$~fnoKptT^07r!(f8+s!1*Ys`QGQr5X#%KkV@@#Twzq*&EfW|z0#~% z`fSmq=)Y+gZ7Y#QMQ|TQ6gVFRHGfj?3nI(m&z4>r_bH6p!8<=y$Mad_FI#je#$+Es z9a>$s6iwYN1kOi6&7D<)N7An3bj!!-TNOr?yB2PLGLPrc4^P&mxI1qYb$3ayJZZIA z2%L|CnrFTwj;2-qt1PF&Hz$*dA#gqlYE5&m zGM17W`dPv&uT>Z|nCEk5=kuIroVMyxOxZM+@|`{FJ!fu=5I7$NHNTHnV`+RLn|J5? zs}x4LeG0d?zno?buC!H`VqlSRw7SR8gNyn~f%8#Nb7g=2ag=thZgMvwU{S^0G9xc$kx6!q?mq8uak z*uMHD3W4)cP-k|)97Sh5*V)cJ+N?0D>Ls3u)HvOm&@ow;qEzD%^rXjgoBkk02%L6; zn%87r|3+_4pSEQ^@`u8xwgyk54NSL2oZX^JG4DFpGn~(2Y^a|q1kOi6t!bN=1kv`0 z=eC5o2NXud9^h#n9r=A6+@ee2Tz44d=-VlSMEMyXs(cdy z=cAzJUE~AZX!cMK<7)9A3ZtqP2)F0uU9u3hNtYt=S|A;m(!t2EI}r+;kAj*zU|wra zP1<-Hox9{FjOxVqB`pu~nNjydU5e!{esuRxS7TpzAt7)+3Tm!Z^Jz^vt6Gh$rwS29 zz2d5{5ovtxPTQzUv8uh5D&FjDR0u6C1kOi6%@x?!no&%_R>r$Sr3j;P4+yhgJ`7Qf%8#N^DdcDkNS>kVH6lrn=q;jcUFD#Fx@(JRlF|6QGPZUusqNxvdc>d zoR5NDCUb*XmN-Np`2BI~LnM?<2x@_+S*z82OxT9epECuf$JCSw3)Yp|p6e zNmWOx&^D(q+rC&IA@F-g&7TZ2-D%l_nKmD1AHt|JJniQESDq!)GftPH;Iy)IspdRe z$JxG8z|RV`rj^cCj%+8V+g$7U623#<7a{gNKhmuqYsczRY%NukeqR%8i~hr32>e;0 z=9P&FMXCSy3AXC<{0XCe3=FaJleN_^ajh;z=-{4Ib9subXrN}U-5>mK)U5dBdi_D`HbZ%?P#{HysGPV*iAC&4RHKeE&zo_I&_t>|I=t$l%8veLo{9zrSF{Q`1g8KBQt;JUem~OD#bQ3TQTLl((!+sGotmlH4bt2 zUbLQPf#csjZ)Hvfn&3BvW*$$m-D|K;vp^rP5pJ8fCVmZFmR9lwKb zMzLJQkE#O6M0^$zVFqO9*)J=V?f z?{^MmR$#YvZBC0Th1g!sa5IZOa(u17CN9(Gl?<_4U!_~`{=QV7UCbeB%w5Xj_BmgA z+kL0)`Ghh;Onl~eA6p}&*0h0No6=u>f{h%di<`G9gxJsVbf&|*m+C0`{0O#t@v4z& zWd4=7*@u`yePWs1|xB2X(5W%3bD80@BR2q zsrfgkc~QNg8;n~!N}CvkKLva}zO&5YLcd&fH&eHLF}D8}V!y}r|K%<&)7^bT?ECq@ zv(8_xSDzbV?~{;j9Z)6nyNYAc{))R9v0aKD{X^`ZQg~WgveZ1sB()M*Y%XTLNX^73 ze7E>|JmF|oMfzMMzuByDE+HaYhS;C*?6VThmg%T9Ev#u>a%*zm=#kCE#3=kpOR>t; znX+;7VW&2G41D$Xt3vE<+$C+n-2cAwv0t6&Ww59D#N(w9e@zLozvVgAKTEC9QS*6& z8b8#uP#-ht%Pj+=MkR*WJFVhA6T6oGM|f#3l$H``-kr2nh{Qc1_R8E*?){%DbkuzE zzW)v7|EQxm`OaHG| zjTEBhtWbL{j@s}^YCa+Tu)8XKY=XJ9wwrS1E3ywqg&&Y#7hg})QWEyqb~c@4W<(D$ zP-N>GYR}K#;mKZ7YubtN&Z^kR>1NEJ8wW88-;;bFGy9pAz3Zl!x5B&(6hnD>cHKGr zZe1gF)Lg^T%vA+BO)$GQ8g5_|{-mXd`@BfCKQ`Vx=)c$-#d`Npd+T7Hotd~&N6nMp z&-GVlSB)_(qlOt6g}*^53eRhz{JCfU#Pbc+<+*&1llhy<8KvKA==g2!nHZ^igoN5P z{`arHWM0)$%6qD(!IR8tRjLS4V@{|&8%K4~q~LP^>8j7&cWm7 zk0T8%ohHvTW4n3_kuA*eoxF32(oyriK@lIzwh1%M>MI&pFbXHuNwIX{P|Nv&GtC=! zO9|mWFx39PNp`6DI_R`qCHRarFO_&{!`E0A==fP}bdT0i^F*D~9a1aQnrs#wI!s{{ zPO_6?Yo0EtH9RJpQ_4$$^X^b<+P9G#lxZJr&c3$Tg0B%>nkxZ0Ym@lS0=1^amMN+{ z+{T%-C{$q-&Qp+L_^L4VnEP4w_IxDzS!Qf6@trhDl} z3SS-ja$<*1UZFp5MXkEq&Mdn#U5K|f$Ms`LnHU{4Ki7WXF0?+a%w5y76Gma*7b#XO zeypy2^)#Jhei3K;P`gJuuI)P?W!}TJt^8a?>7HhK{X9b8nL*TiE>+vAHa2c$RtwHf z7=_=J6#AFW-=G-auMfK+%-n+}Z-)S7SMwh#N@h{%1Vb<*Cz0p#LlYyW$t;Op+ z6ddbf7Hj4z&JW_d#nOv2c(|T8P?!L-G;0Z_6Tm#wWfiecTn#b={7N;6BPip?} z+@%z@3q>j7`&pw%um?|!{eSN^bC>jgd!F*0*SwsU%z;;pk9`^m5&Ub&zjv(OKe&ew zXic-;&qtNAL>b2l`VvOro~INy@8zS=98pH&{|MZ{M9m%kmX)Ex8PBX}hw&E#WgDYJAGjG~3h4bgJD1Tej)C5co8S znlGFK^3&;@jf_%z0>m>XepgZ~cdbeGZz;A3Et(KM%ivQHJ}q&cSFcH<&ZO9$dr5&` z7qzD8Z>mswiC`mfX?^jtdRo!(JO87+d_-#==;awfWx+IPjM zF|wNY4gTrl_^bSKFh-Xm%UV}@ee8;@m&rjGRda>oQ*>Y0YF&y(z8_Szou20O zvQpq@6lzVgJUp(xj0-e9N?cVKRrRFfy0pN)N|)ly)#K{Ggh2CqX({l^fSOlWxccbG zt-)rKPV2m`|2wQXls>r%`p(1=#-xng+Ckpgo9HFu{R zTbasFaxwF~`Kd6fp>kwY_Fq@)QbY}_OkOiwOyi3bm=mb^Oq@}GR&##jDs@X?RNz=g zMy}OQW$k%ha;mRyjJN_Tnk~s&P zkB|a$0=1?EST#e*@04xr14sOz=z??wMeL0)7rAnz+jIcu26h>8h%`1hRQ7*?;=~686YD>G! zE5@FpQeaM?=KI|!FB&u1#eCQPh{CAmWgQvyZu}};ioL76Xv0JovtfV~m=mb^#CkwE zy3Y9#yeLUwRM&2fjH+E|l`e&E>vH6_%hNotTnfwy)LcVfGAsFTM)_`tP#Co?#*tA+ zVxx5_ny?ta;?{oz<^*a@J96GsKAazIxaJ3=3O;dUR4un?U5chRP1T5Vu)|#`FegxR z&;FXj)oIR;6WcynFltZ(M@H$ZqjV|mx(-)$I0vg-kOFf8HQz1Oi?gizI>THSUCn|~ z6zW(5$nG4aOR?wNEX)1ZGtBI5LxsQ`M6GH2nvbFByrw^(!#ag4@wldsYyB)*jiJyz zDYj+aQefVp=IOv+cxJd$u<>@pDuq$Sb~|z~;*{J&;Jd!}!^oer)?>C5m_?|0jV!z; zjW~0~D3N1{!l*M>9XYrwDO#6ez~Y|t_23m_+ndEgU>2d~`>P4Q)O3oAnNVo1!l;-$ zjvO2|C0dsvVxljV=d3;NECpr}YW|(KtU>ouJk8NV`YDXc#%su#tF>i(qID_W`PHDl zoVDS-rNAsg%{}|C{6d?@2AX+N8!C))``wX)E51ePQaD}wg<5b94mc$RW)W)6!D?sJ z8_pa(WQ@1$>`?znkVAS5ajvTb~ zi_)cdmO4%CVc}Oy3d|zZe0C{ptL5UC8Rkouhu#>4StP|c&uLWsaf)rl)M5&E!*E{> z_uF{=s?jtma3IC@djTmhi%@IYqE+K)k87|oY^ICCs3Myj85KBR?&ERi$aUk$k}KG_ z6d(oW1ZqAfym}zrJbcAC&@s2dr~`cE%)F{?njNJ}ab@K|Ds}dX(Pn}am=maZ2Wx!* zHJi%UsP&&L72WYofOQMwc!8v>{_=U~p2QeaM?<~y10^(bPyr+IhZWeY~7kt3t} z4T#eJBf8Y1TbzS+Zc2eUfm+jUE-pxu_^xl~fNd6xvV}V`YD-|0E=9g&1*t9P;IdXy zU{0XsD!us2sxxQQ)v2>A7&ZQyBctAVN9j@|thua;b4JC+NP#(lnorj(n5))tejMBE zYQd;!wH+CCw{ny&#i7u-ssdltE>lHwBYR7dj4 z#0a0nRNRrqy=~m{<~5WwD%duCnK@Xyh!mI;sQG$cY`Re1yQf zL#=6dGRDxp0>Or@RbvCAa&XN|X4S*WTq{KdjHdarxXoExyO8b-v}u!GU#F>Qa1Tag?(*{;(97MX31+(!-xxOmi`_JC!joY8_XnWL75}AG}hR zq8v{#`eytrjm@j#yF2#is9`u59u*+U4FpE%Y z+SG;4cuS^M%kA*aW#6YurtQ43-XOxT$@lF2xwPODd3aa6^m~m_?|04p!V8b&4}8-=dZ_jEeJcT-Ba!kJP1bil3t_ zEK*9g5(2XbH9wy_@3B07JHtF*VL>WJVHQa-n@_S{S;DJ>9=i;z<-)2ktQO;%iOVCX zVQPx)2d)v`1?P)8A!-jld~e4UC#|$&pdNU6EC2eBZuiFqxc#@e8EDoItH< z>xOotG+rGn{CB*8Q7b+=GOAGV6}l8jEdJyi?0QWK%n8)|Ngdscex2=NR%*J;z^H4L z92s?fQc;SQJr(}`6wwcCs6YQuqG!}EzYPt zwTc@U^)thfQEwk`4GX-Urv1iZJB!9{QeaM?=D(8alT|OykF6mGY#4<#6H@G{Gg)Qj z`$T_FDKIBc^Qo=Wt(JY9QLWEsv0)TuloZ*<_avuZcG|i$)J&|W#ELeo-s6h+Uwe{z znqmv@Aq8d;YMwE&zZ3N;7HsGrKN%Q>^=VR=2RhMt&cQ4%rNEp(&DYvEp69jeig7ME z!@wx41e2m#d`r5+IT*4@3d{-An$~-GecC$9#VpkFf`L(3Qzpeo7A~BFhg(R2If0tb zhVSDl^=+Q!)VX^MjKZ2SDH^jN&cVEkrNEp(%~{*)hZ@2eb-l`R1Ea8}Op2#0qFF4e zECuESYJNVSdr-x4ew_KOyMa+yM5k=|P@xlYY6eWHDB7=@K*Qh2|ws`}rZY&JbrK%u}&C)AqO zD!e&yrI%LriktawMQpi~*361n%sW{rd*K(J!dKpCV*gT3h`n6#tFbN-xlCxj;`sHV zvRD2%xNMhZVie{)z8>#?H0ecESsXbf1zulKb2r4ReQ3eCyG@fiQ+Xj zM>@VMd+C)rYJMMMr&5nbSyG4Q@i8z8@8P8|hD;?Zi$)Kmz$a|fn%3QzM#Fj)@jf%p zO}xg6%&Kz!S(W1IanxLq@@gjS3eBHd>|SCjM&Z-F6lpAWvbeQZ3S3D;&39xUW>V_z zO5P9u>F@b^zcqPtc2*AS>?~))r!Webkv&GzUEkZxUoj+u4n5MM&W9`6gfS{(tQ?r z|B?dt(ok#K${8c+^gZR>^yqH!8e0zh-**+dT1U<22Rrtopz#e;yVQN9Fbenaq?psP zA5CQOqo)+OXO5aHQd;+!tYX|3sf$QebTiYE8>Kttri$-_d*A$jah1!pighIsXQi99^TM*0cfkn)G^m+f@6f zCWKK~mm@{%(={o}j<%`WUP^&=M5s0G(;4p5SD}};HLSUKjejeW_`AwHm4aH+oLd+B z_mg_z9Dhd@(*H$a4U-hnW!=rp&-P~dbu)_=!|(Qt)#J`)pDfx&yB2%Yy0c^{{onuQ Wf6x4HP5VDF>;ErUv-q#pwEqtq*k*44 From 9c9e81b30c5b17f2e8e948aecbf8af1e0a31a701 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 6 Nov 2018 11:04:16 +0100 Subject: [PATCH 0166/1039] Move InstanceContainer import into type checking closure CURA-5898 --- cura/Machines/MaterialManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Machines/MaterialManager.py b/cura/Machines/MaterialManager.py index 4f7646b341..2b41718975 100644 --- a/cura/Machines/MaterialManager.py +++ b/cura/Machines/MaterialManager.py @@ -12,7 +12,6 @@ from UM.Application import Application from UM.ConfigurationErrorMessage import ConfigurationErrorMessage from UM.Logger import Logger from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.SettingFunction import SettingFunction from UM.Util import parseBool @@ -22,6 +21,7 @@ from .VariantType import VariantType if TYPE_CHECKING: from UM.Settings.DefinitionContainer import DefinitionContainer + from UM.Settings.InstanceContainer import InstanceContainer from cura.Settings.GlobalStack import GlobalStack from cura.Settings.ExtruderStack import ExtruderStack @@ -451,7 +451,7 @@ class MaterialManager(QObject): # - A fallback by type (@sa getFallbackMaterialIdByMaterialType), which adds the generic version of this material # - A fallback by GUID; If a material has been duplicated, it should also check if the original materials do have # a GUID. This should only be done if the material itself does not have a quality just yet. - def getFallBackMaterialIdsByMaterial(self, material: InstanceContainer) -> List[str]: + def getFallBackMaterialIdsByMaterial(self, material: "InstanceContainer") -> List[str]: results = [] # type: List[str] material_groups = self.getMaterialGroupListByGUID(material.getMetaDataEntry("GUID")) From 11a3da3068bf71ac3d514af893db4b4870c8b3f8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 6 Nov 2018 11:06:20 +0100 Subject: [PATCH 0167/1039] Removed color animation from stage buttons This caused laggy updates and it didn't add that much anyway CURA-5772 --- resources/qml/ActionButton.qml | 2 -- resources/themes/cura-light/styles.qml | 2 -- 2 files changed, 4 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index a1c03af143..621318c4bb 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -37,7 +37,6 @@ Button color: button.hovered ? button.textHoverColor : button.textColor visible: source != "" anchors.verticalCenter: parent.verticalCenter - Behavior on color { ColorAnimation { duration: 50 } } } Label @@ -59,7 +58,6 @@ Button radius: UM.Theme.getSize("action_button_radius").width border.width: UM.Theme.getSize("default_lining").width border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor - Behavior on color { ColorAnimation { duration: 50 } } } MouseArea diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 43e8d29b57..dacff1b42b 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -129,8 +129,6 @@ QtObject return UM.Theme.getColor("main_window_header_button_background_inactive") } } - - Behavior on color { ColorAnimation { duration: 50 } } } } From f41ae128c2c14fb05dc84058b8f5833a396805bb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 6 Nov 2018 11:24:41 +0100 Subject: [PATCH 0168/1039] Modify alignments to avoid binding loop logs. Contributes to CURA-5786. --- resources/qml/IconLabel.qml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml index 918485751e..7c90382892 100644 --- a/resources/qml/IconLabel.qml +++ b/resources/qml/IconLabel.qml @@ -24,7 +24,6 @@ Item id: icon anchors.left: parent.left - anchors.verticalCenter: parent.verticalCenter source: UM.Theme.getIcon("dot") width: UM.Theme.getSize("section_icon").width @@ -41,7 +40,7 @@ Item id: label anchors.left: icon.right anchors.leftMargin: UM.Theme.getSize("thin_margin").width - anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenter: icon.verticalCenter text: "Empty label" color: UM.Theme.getColor("text") font: UM.Theme.getFont("very_small") From 0af9216c75edfb155b573d250e5159ca9debb1f6 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 6 Nov 2018 12:29:25 +0100 Subject: [PATCH 0169/1039] Remove deprecated setup.py --- setup.py | 76 -------------------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 setup.py diff --git a/setup.py b/setup.py deleted file mode 100644 index 0d78f44ddc..0000000000 --- a/setup.py +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright (c) 2015 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. - -from distutils.core import setup -import py2exe -import UM -import UM.Qt #@UnusedImport -import cura #@UnusedImport -import os -import shutil -import site - -# work around the limitation that shutil.copytree does not allow the target directory to exist -def copytree(src, dst, symlinks=False, ignore=None): - if not os.path.exists(dst): - os.makedirs(dst) - for item in os.listdir(src): - s = os.path.join(src, item) - d = os.path.join(dst, item) - if os.path.isdir(s): - copytree(s, d, symlinks, ignore) - else: - shutil.copy2(s, d) - -includes = ["sip", "ctypes", "UM", "PyQt5.QtNetwork", "PyQt5._QOpenGLFunctions_2_0", "serial", "Arcus", "google", "google.protobuf", "google.protobuf.descriptor", "xml.etree", "xml.etree.ElementTree", "cura", "cura.OneAtATimeIterator"] -# Include all the UM modules in the includes. As py2exe fails to properly find all the dependencies due to the plugin architecture. -for dirpath, dirnames, filenames in os.walk(os.path.dirname(UM.__file__)): - if "__" in dirpath: - continue - module_path = dirpath.replace(os.path.dirname(UM.__file__), "UM") - module_path = module_path.split(os.path.sep) - module_name = ".".join(module_path) - if os.path.isfile(dirpath + "/__init__.py"): - includes += [module_name] - for filename in filenames: - if "__" in filename or not filename.endswith(".py"): - continue - includes += [module_name + "." + os.path.splitext(filename)[0]] - -print("Removing previous distribution package") -shutil.rmtree("dist", True) - -setup(name="Cura", - version="15.09.80", - author="Ultimaker", - author_email="a.hiemstra@ultimaker.com", - url="http://software.ultimaker.com/", - license="GNU LESSER GENERAL PUBLIC LICENSE (LGPL)", - scripts=["cura_app.py"], - windows=[{"script": "cura_app.py", "dest_name": "Cura", "icon_resources": [(1, "icons/cura.ico")]}], - #console=[{"script": "cura_app.py"}], - options={"py2exe": {"skip_archive": False, "includes": includes}}) - -print("Copying Cura plugins.") -shutil.copytree(os.path.dirname(UM.__file__) + "/../plugins", "dist/plugins", ignore = shutil.ignore_patterns("ConsoleLogger", "OBJWriter", "MLPWriter", "MLPReader")) -for path in os.listdir("plugins"): - copytree("plugins/" + path, "dist/plugins/" + path) -print("Copying resources.") -copytree(os.path.dirname(UM.__file__) + "/../resources", "dist/resources") -copytree("resources", "dist/resources") -print("Copying Uranium QML.") -shutil.copytree(os.path.dirname(UM.__file__) + "/Qt/qml/UM", "dist/qml/UM") -for site_package in site.getsitepackages(): - qt_origin_path = os.path.join(site_package, "PyQt5") - if os.path.isdir(qt_origin_path): - print("Copying PyQt5 plugins from: %s" % qt_origin_path) - shutil.copytree(os.path.join(qt_origin_path, "plugins"), "dist/PyQt5/plugins") - print("Copying PyQt5 QtQuick from: %s" % qt_origin_path) - shutil.copytree(os.path.join(qt_origin_path, "qml/QtQuick"), "dist/qml/QtQuick") - shutil.copytree(os.path.join(qt_origin_path, "qml/QtQuick.2"), "dist/qml/QtQuick.2") - print("Copying PyQt5 svg library from: %s" % qt_origin_path) - shutil.copy(os.path.join(qt_origin_path, "Qt5Svg.dll"), "dist/Qt5Svg.dll") - print("Copying Angle libraries from %s" % qt_origin_path) - shutil.copy(os.path.join(qt_origin_path, "libEGL.dll"), "dist/libEGL.dll") - shutil.copy(os.path.join(qt_origin_path, "libGLESv2.dll"), "dist/libGLESv2.dll") -os.rename("dist/cura_app.exe", "dist/Cura.exe") From b0384bf10ef47b47339311ec4f172012d863aae8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 6 Nov 2018 13:15:02 +0100 Subject: [PATCH 0170/1039] Update Taiwanese translations These were e-mailed to me by the volunteer translator, @Dinowchang. Contributes to issue CURA-5870. --- resources/i18n/zh_TW/cura.po | 66 ++++++++++---------- resources/i18n/zh_TW/fdmextruder.def.json.po | 8 +-- resources/i18n/zh_TW/fdmprinter.def.json.po | 26 ++++---- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index c2d733fce1..c1aa8d65a7 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-10-02 10:25+0100\n" +"PO-Revision-Date: 2018-11-03 20:32+0800\n" "Last-Translator: Zhang Heh Ji \n" "Language-Team: Zhang Heh Ji \n" "Language: zh_TW\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.2\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 msgctxt "@action" @@ -49,7 +49,7 @@ msgstr "G-code 寫入器不支援非文字模式。" #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "匯出前請先將 G-code 準備好。" #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -78,7 +78,7 @@ msgstr "顯示更新日誌" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "更新韌體" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -823,7 +823,7 @@ msgstr "預切片檔案 {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "登入失敗" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -897,32 +897,32 @@ msgstr "無法從 {0} 匯入列印參數:{1}!" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "檔案 {0} 內沒有自訂列印參數可匯入" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "從 {0} 匯入列印參數失敗:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "列印參數 {0} 含有不正確的資料,無法匯入。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "列印參數 {0} 內定義的機器({1})與你目前的機器({2})不匹配, 無法匯入。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "從 {0} 匯入列印參數失敗:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1409,7 +1409,7 @@ msgstr "噴頭偏移 Y" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "冷卻風扇數量" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1513,7 +1513,7 @@ msgstr "返回" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "移除確認" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1656,7 +1656,7 @@ msgstr "關閉" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "更新韌體" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1681,12 +1681,12 @@ msgstr "上傳自訂韌體" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "因為沒有與印表機連線,無法更新韌體。" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "因為連線的印表機不支援更新韌體,無法更新韌體。" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1921,62 +1921,62 @@ msgstr "等待:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "設定更動" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "分配的印表機 %1 需要下列的設定更動:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "已分配到印表機 %1,但列印工作含有未知的耗材設定。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "將耗材 %1 從 %2 改成 %3。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "將 %3 做為耗材 %1 載入(無法覆寫)。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "將 print core %1 從 %2 改成 %3。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "將列印平台改成 %1(無法覆寫)。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "覆寫" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "使用不相容的設定啟動列印工作可能會損壞你的 3D 印表機。你確定要覆寫設定並列印 %1 嗎?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "覆寫設定並開始列印" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "玻璃" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "鋁" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -3434,17 +3434,17 @@ msgstr "用於處理 STL 檔案的函式庫" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "用於處理平面物件的函式庫" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "用於處理三角形網格的函式庫" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "用於分析複雜網路的函式庫" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3454,7 +3454,7 @@ msgstr "用於處理 3MF 檔案的函式庫" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "用於檔案 metadata 和串流的函式庫" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -4599,12 +4599,12 @@ msgstr "更新日誌" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "提供升級韌體用的機器操作。" #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "韌體更新器" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/zh_TW/fdmextruder.def.json.po b/resources/i18n/zh_TW/fdmextruder.def.json.po index 7ce9ef1ddd..93d62b5155 100644 --- a/resources/i18n/zh_TW/fdmextruder.def.json.po +++ b/resources/i18n/zh_TW/fdmextruder.def.json.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-03-31 15:18+0800\n" +"PO-Revision-Date: 2018-11-04 13:04+0800\n" "Last-Translator: Zhang Heh Ji \n" "Language-Team: Zhang Heh Ji \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2\n" #: fdmextruder.def.json msgctxt "machine_settings label" @@ -170,12 +170,12 @@ msgstr "列印開始時,噴頭在 Z 軸座標上的起始位置." #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "擠出機列印冷卻風扇" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "與此擠出機關聯的列印冷卻風扇的數量。只有當每個擠出機的列印冷卻風扇數量不同時,才需更改此值為正確數量,否則保持預設值 0 即可。" #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/zh_TW/fdmprinter.def.json.po b/resources/i18n/zh_TW/fdmprinter.def.json.po index 57268d752d..d57d8f6c97 100644 --- a/resources/i18n/zh_TW/fdmprinter.def.json.po +++ b/resources/i18n/zh_TW/fdmprinter.def.json.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-10-02 10:30+0100\n" +"PO-Revision-Date: 2018-11-04 16:58+0800\n" "Last-Translator: Zhang Heh Ji \n" "Language-Team: Zhang Heh Ji \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.2\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -1078,7 +1078,7 @@ msgstr "連接頂部/底部多邊形" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "將頂部/底部表層路徑相鄰的位置連接。同心模式時啟用此設定,可以大大地減少移動時間。但因連接可能碰巧在途中跨越填充,所以此功能可能會降低頂部表層的品質。" #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1498,7 +1498,7 @@ msgstr "填充列印樣式" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "選擇填充耗材的樣式。直線和鋸齒狀填充輪流在每一層交換方向,以降低耗材成本。網格、三角形、三-六邊形、立方體、八面體、四分立方體、十字形和同心的列印樣式在每層完整列印。螺旋形、立方體、四分立方體和八面體填充隨每層變化,以在各個方向提供更均衡的强度分布。" #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1563,7 +1563,7 @@ msgstr "立體十字形" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "螺旋形" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -3272,32 +3272,32 @@ msgstr "支撐填充樣式的方向。 支撐填充樣式的旋轉方向是在 #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "啟用支撐邊緣" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "在第一層的支撐填充區域內產生邊緣。這些邊緣列印在支撐下面,而不是支撐的周圍。啟用此設定可增加支撐對列印平台的附著力。" #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "支撐邊緣寬度" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "列印在支撐下面邊緣的寬度。較大的邊緣會加強對列印平台的附著力,但會需要一些額外的耗材。" #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "支撐邊緣線條數量" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "支撐邊緣所使用的線條數量。邊緣使用較多的線條會加強對列印平台的附著力,但會需要一些額外的耗材。" #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3871,12 +3871,12 @@ msgstr "邊緣所用線條數量。更多邊緣線條可增强與列印平台的 #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "邊綠取代支撐" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "強制在模型周圍列印邊緣,即使該空間已被支撐佔用。在第一層的部份區域會以邊綠取代支撐。" #: fdmprinter.def.json msgctxt "brim_outside_only label" From e45924b6fb532ab9891b1674c1a7f131e4fabd53 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 6 Nov 2018 13:30:09 +0100 Subject: [PATCH 0171/1039] Update translations for some languages German, Spanish, French, Italian, Japanese, Korean, Dutch and European Portuguese. Contributes to issue CURA-5870. --- resources/i18n/de_DE/cura.po | 122 +++++++------------ resources/i18n/de_DE/fdmextruder.def.json.po | 4 +- resources/i18n/de_DE/fdmprinter.def.json.po | 42 +++---- resources/i18n/es_ES/cura.po | 122 +++++++------------ resources/i18n/es_ES/fdmextruder.def.json.po | 4 +- resources/i18n/es_ES/fdmprinter.def.json.po | 42 +++---- resources/i18n/fr_FR/cura.po | 122 +++++++------------ resources/i18n/fr_FR/fdmextruder.def.json.po | 4 +- resources/i18n/fr_FR/fdmprinter.def.json.po | 42 +++---- resources/i18n/it_IT/cura.po | 122 +++++++------------ resources/i18n/it_IT/fdmextruder.def.json.po | 4 +- resources/i18n/it_IT/fdmprinter.def.json.po | 42 +++---- resources/i18n/ja_JP/cura.po | 105 ++++++---------- resources/i18n/ja_JP/fdmextruder.def.json.po | 4 +- resources/i18n/ja_JP/fdmprinter.def.json.po | 46 +++---- resources/i18n/ko_KR/cura.po | 122 +++++++------------ resources/i18n/ko_KR/fdmextruder.def.json.po | 4 +- resources/i18n/ko_KR/fdmprinter.def.json.po | 38 +++--- resources/i18n/nl_NL/cura.po | 122 +++++++------------ resources/i18n/nl_NL/fdmextruder.def.json.po | 4 +- resources/i18n/nl_NL/fdmprinter.def.json.po | 42 +++---- resources/i18n/pt_PT/cura.po | 122 +++++++------------ resources/i18n/pt_PT/fdmextruder.def.json.po | 4 +- resources/i18n/pt_PT/fdmprinter.def.json.po | 42 +++---- 24 files changed, 485 insertions(+), 842 deletions(-) diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 85a4a129ac..3433edc5bd 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -49,7 +49,7 @@ msgstr "GCodeWriter unterstützt keinen Nicht-Textmodus." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Vor dem Exportieren bitte G-Code vorbereiten." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    Ein oder mehrere 3D-Modelle können möglicherweise aufgrund der Modellgröße und Materialkonfiguration nicht optimal gedruckt werden:

    \n" -"

    {model_names}

    \n" -"

    Erfahren Sie, wie Sie die bestmögliche Druckqualität und Zuverlässigkeit sicherstellen.

    \n" -"

    Leitfaden zu Druckqualität anzeigen

    " +msgstr "

    Ein oder mehrere 3D-Modelle können möglicherweise aufgrund der Modellgröße und Materialkonfiguration nicht optimal gedruckt werden:

    \n

    {model_names}

    \n

    Erfahren Sie, wie Sie die bestmögliche Druckqualität und Zuverlässigkeit sicherstellen.

    \n

    Leitfaden zu Druckqualität anzeigen

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "Änderungsprotokoll anzeigen" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Firmware aktualisieren" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -822,7 +818,7 @@ msgstr "Vorgeschnittene Datei {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Login fehlgeschlagen" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -896,32 +892,32 @@ msgstr "Import des Profils aus Datei {0} fehlgeschlagen: !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "Kein benutzerdefiniertes Profil für das Importieren in Datei {0}" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Import des Profils aus Datei {0} fehlgeschlagen:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Dieses Profil {0} enthält falsche Daten, Importieren nicht möglich." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "Die Maschine, die im Profil {0} ({1}) definiert wurde, entspricht nicht Ihrer derzeitigen Maschine ({2}). Importieren nicht möglich." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Import des Profils aus Datei {0} fehlgeschlagen:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1073,12 +1069,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    Hoppla, bei Ultimaker Cura ist ein Problem aufgetreten.

    \n" -"

    Beim Start ist ein nicht behebbarer Fehler aufgetreten. Er wurde möglicherweise durch einige falsche Konfigurationsdateien verursacht. Wir empfehlen ein Backup und Reset Ihrer Konfiguration.

    \n" -"

    Backups sind im Konfigurationsordner abgelegt.

    \n" -"

    Senden Sie uns diesen Absturzbericht bitte, um das Problem zu beheben.

    \n" -" " +msgstr "

    Hoppla, bei Ultimaker Cura ist ein Problem aufgetreten.

    \n

    Beim Start ist ein nicht behebbarer Fehler aufgetreten. Er wurde möglicherweise durch einige falsche Konfigurationsdateien verursacht. Wir empfehlen ein Backup und Reset Ihrer Konfiguration.

    \n

    Backups sind im Konfigurationsordner abgelegt.

    \n

    Senden Sie uns diesen Absturzbericht bitte, um das Problem zu beheben.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1111,10 +1102,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Ein schwerer Fehler ist in Cura aufgetreten. Senden Sie uns diesen Absturzbericht, um das Problem zu beheben

    \n" -"

    Verwenden Sie bitte die Schaltfläche „Bericht senden“, um den Fehlerbericht automatisch an unsere Server zu senden

    \n" -" " +msgstr "

    Ein schwerer Fehler ist in Cura aufgetreten. Senden Sie uns diesen Absturzbericht, um das Problem zu beheben

    \n

    Verwenden Sie bitte die Schaltfläche „Bericht senden“, um den Fehlerbericht automatisch an unsere Server zu senden

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1408,7 +1396,7 @@ msgstr "Y-Versatz Düse" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Kühllüfter-Nr." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1512,7 +1500,7 @@ msgstr "Zurück" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Deinstallieren bestätigen" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1590,10 +1578,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Dieses Plugin enthält eine Lizenz.\n" -"Sie müssen diese Lizenz akzeptieren, um das Plugin zu installieren.\n" -"Stimmen Sie den nachfolgenden Bedingungen zu?" +msgstr "Dieses Plugin enthält eine Lizenz.\nSie müssen diese Lizenz akzeptieren, um das Plugin zu installieren.\nStimmen Sie den nachfolgenden Bedingungen zu?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1655,7 +1640,7 @@ msgstr "Schließen" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Firmware aktualisieren" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1680,12 +1665,12 @@ msgstr "Benutzerdefinierte Firmware hochladen" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "Firmware kann nicht aktualisiert werden, da keine Verbindung zum Drucker besteht." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "Firmware kann nicht aktualisiert werden, da die Verbindung zum Drucker die Firmware-Aktualisierung nicht unterstützt." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1753,10 +1738,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Um über das Netzwerk direkt auf Ihrem Drucker zu drucken, stellen Sie bitte sicher, dass der Drucker mit dem Netzwerkkabel verbunden ist oder verbinden Sie Ihren Drucker mit Ihrem WLAN-Netzwerk. Wenn Sie Cura nicht mit Ihrem Drucker verbinden, können Sie dennoch ein USB-Laufwerk für die Übertragung von G-Code-Dateien auf Ihren Drucker verwenden.\n" -"\n" -"Wählen Sie Ihren Drucker aus der folgenden Liste:" +msgstr "Um über das Netzwerk direkt auf Ihrem Drucker zu drucken, stellen Sie bitte sicher, dass der Drucker mit dem Netzwerkkabel verbunden ist oder verbinden Sie Ihren Drucker mit Ihrem WLAN-Netzwerk. Wenn Sie Cura nicht mit Ihrem Drucker verbinden, können Sie dennoch ein USB-Laufwerk für die Übertragung von G-Code-Dateien auf Ihren Drucker verwenden.\n\nWählen Sie Ihren Drucker aus der folgenden Liste:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1920,62 +1902,62 @@ msgstr "Warten auf: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Konfigurationsänderung" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "Der zugewiesene Drucker %1 erfordert die folgende(n) Konfigurationsänderung(en):" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "Der Drucker %1 wurde zugewiesen, allerdings enthält der Auftrag eine unbekannte Materialkonfiguration." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Material %1 von %2 auf %3 wechseln." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "%3 als Material %1 laden (Dies kann nicht übergangen werden)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Print Core %1 von %2 auf %3 wechseln." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Druckplatte auf %1 wechseln (Dies kann nicht übergangen werden)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Überschreiben" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Das Starten eines Druckauftrags mit einer inkompatiblen Konfiguration kann Ihren 3D-Drucker beschädigen. Möchten Sie die Konfiguration wirklich überschreiben und %1 drucken?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Konfiguration überschreiben und Druck starten" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Glas" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Aluminium" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2664,9 +2646,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Sie haben einige Profileinstellungen angepasst.\n" -"Möchten Sie diese Einstellungen übernehmen oder verwerfen?" +msgstr "Sie haben einige Profileinstellungen angepasst.\nMöchten Sie diese Einstellungen übernehmen oder verwerfen?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3368,9 +3348,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura wurde von Ultimaker B.V. in Zusammenarbeit mit der Community entwickelt.\n" -"Cura verwendet mit Stolz die folgenden Open Source-Projekte:" +msgstr "Cura wurde von Ultimaker B.V. in Zusammenarbeit mit der Community entwickelt.\nCura verwendet mit Stolz die folgenden Open Source-Projekte:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3435,17 +3413,17 @@ msgstr "Support-Bibliothek für die Handhabung von STL-Dateien" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Support-Bibliothek für die Handhabung von ebenen Objekten" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Support-Bibliothek für die Handhabung von dreieckigen Netzen" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Support-Bibliothek für die Analyse von komplexen Netzwerken" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3455,7 +3433,7 @@ msgstr "Support-Bibliothek für die Handhabung von 3MF-Dateien" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Support-Bibliothek für Datei-Metadaten und Streaming" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3503,10 +3481,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Einige Einstellungs-/Überschreibungswerte unterscheiden sich von den im Profil gespeicherten Werten.\n" -"\n" -"Klicken Sie, um den Profilmanager zu öffnen." +msgstr "Einige Einstellungs-/Überschreibungswerte unterscheiden sich von den im Profil gespeicherten Werten.\n\nKlicken Sie, um den Profilmanager zu öffnen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3560,10 +3535,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Einige ausgeblendete Einstellungen verwenden Werte, die von ihren normalen, berechneten Werten abweichen.\n" -"\n" -"Klicken Sie, um diese Einstellungen sichtbar zu machen." +msgstr "Einige ausgeblendete Einstellungen verwenden Werte, die von ihren normalen, berechneten Werten abweichen.\n\nKlicken Sie, um diese Einstellungen sichtbar zu machen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3591,10 +3563,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Diese Einstellung hat einen vom Profil abweichenden Wert.\n" -"\n" -"Klicken Sie, um den Wert des Profils wiederherzustellen." +msgstr "Diese Einstellung hat einen vom Profil abweichenden Wert.\n\nKlicken Sie, um den Wert des Profils wiederherzustellen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3602,10 +3571,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Diese Einstellung wird normalerweise berechnet; aktuell ist jedoch ein Absolutwert eingestellt.\n" -"\n" -"Klicken Sie, um den berechneten Wert wiederherzustellen." +msgstr "Diese Einstellung wird normalerweise berechnet; aktuell ist jedoch ein Absolutwert eingestellt.\n\nKlicken Sie, um den berechneten Wert wiederherzustellen." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3830,9 +3796,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Druckeinrichtung deaktiviert\n" -"G-Code-Dateien können nicht geändert werden" +msgstr "Druckeinrichtung deaktiviert\nG-Code-Dateien können nicht geändert werden" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4606,12 +4570,12 @@ msgstr "Änderungsprotokoll" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Ermöglicht Gerätemaßnahmen für die Aktualisierung der Firmware." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Firmware-Aktualisierungsfunktion" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/de_DE/fdmextruder.def.json.po b/resources/i18n/de_DE/fdmextruder.def.json.po index 9d146a1a63..77ffa5631d 100644 --- a/resources/i18n/de_DE/fdmextruder.def.json.po +++ b/resources/i18n/de_DE/fdmextruder.def.json.po @@ -169,12 +169,12 @@ msgstr "Die Z-Koordinate der Position, an der die Düse am Druckbeginn einzieht. #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Drucklüfter Extruder" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "Die Anzahl der Drucklüfter für diesen Extruder. Nur vom Standardwert 0 ändern, wenn Sie für jeden Extruder einen anderen Drucklüfter verwenden." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/de_DE/fdmprinter.def.json.po b/resources/i18n/de_DE/fdmprinter.def.json.po index 0bcf015c21..383a7a3886 100644 --- a/resources/i18n/de_DE/fdmprinter.def.json.po +++ b/resources/i18n/de_DE/fdmprinter.def.json.po @@ -57,9 +57,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"G-Code-Befehle, die zu Beginn ausgeführt werden sollen – getrennt durch \n" -"." +msgstr "G-Code-Befehle, die zu Beginn ausgeführt werden sollen – getrennt durch \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -71,9 +69,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"G-Code-Befehle, die am Ende ausgeführt werden sollen – getrennt durch \n" -"." +msgstr "G-Code-Befehle, die am Ende ausgeführt werden sollen – getrennt durch \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1078,7 +1074,7 @@ msgstr "Polygone oben/unten verbinden" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Außenhaut-Pfade oben/unten verbinden, wenn sie nebeneinander laufen. Bei konzentrischen Mustern reduziert die Aktivierung dieser Einstellung die Durchlaufzeit erheblich. Da die Verbindungen jedoch auf halbem Weg über der Füllung erfolgen können, kann diese Funktion die Oberflächenqualität reduzieren." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1498,7 +1494,7 @@ msgstr "Füllmuster" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren. Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Quer- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt. Gyroid-, Würfel-, Viertelwürfel- und Octahedral-Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen zu erzielen." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1563,7 +1559,7 @@ msgstr "3D-Quer" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Gyroid" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1635,9 +1631,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Fügen Sie zusätzliche Wände um den Füllbereich hinzu. Derartige Wände können zu einem verringerten Absacken der oberen/unteren Außenhautlinien beitragen, was bedeutet, dass Sie weniger Außenhautschichten oben/unten bei derselben Qualität von Kosten für zusätzliches Material benötigen.\n" -" Diese Funktion ist verknüpfbar mit „Füllungspolygone verbinden“, um alle Füllungen mit einem einzigen Extrusionspfad zu verbinden, ohne dass hierzu Vorwärtsbewegungen oder Rückzüge erforderlich sind, sofern die richtige Konfiguration gewählt wurde." +msgstr "Fügen Sie zusätzliche Wände um den Füllbereich hinzu. Derartige Wände können zu einem verringerten Absacken der oberen/unteren Außenhautlinien beitragen, was bedeutet, dass Sie weniger Außenhautschichten oben/unten bei derselben Qualität von Kosten für zusätzliches Material benötigen.\n Diese Funktion ist verknüpfbar mit „Füllungspolygone verbinden“, um alle Füllungen mit einem einzigen Extrusionspfad zu verbinden, ohne dass hierzu Vorwärtsbewegungen oder Rückzüge erforderlich sind, sofern die richtige Konfiguration gewählt wurde." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3272,32 +3266,32 @@ msgstr "Ausrichtung des Füllmusters für Unterstützung. Das Füllmuster für U #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Stütz-Brim aktivieren" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Erstellen Sie ein Brim in den Stützstruktur-Füllungsbereichen der ersten Schicht. Das Brim wird unterhalb der Stützstruktur und nicht drumherum gedruckt. Die Aktivierung dieser Einstellung erhöht die Haftung der Stützstruktur am Druckbett." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Breite der Brim-Stützstruktur" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Die Breite des unter der Stützstruktur zu druckenden Brims. Ein größeres Brim erhöht die Haftung am Druckbett, jedoch erhöht sich hierdurch der Materialverbrauch." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Anzahl der Brim-Stützstrukturlinien" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Die Anzahl der Linien für die Brim-Stützstruktur. Eine größere Anzahl von Brim-Linien verbessert die Haftung am Druckbett, jedoch erhöht sich hierdurch der Materialverbrauch." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3834,9 +3828,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"Der horizontale Abstand zwischen dem Skirt und der ersten Schicht des Drucks.\n" -"Es handelt sich dabei um den Mindestabstand. Ab diesem Abstand werden mehrere Skirt-Linien in äußerer Richtung angebracht." +msgstr "Der horizontale Abstand zwischen dem Skirt und der ersten Schicht des Drucks.\nEs handelt sich dabei um den Mindestabstand. Ab diesem Abstand werden mehrere Skirt-Linien in äußerer Richtung angebracht." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3871,12 +3863,12 @@ msgstr "Die Anzahl der Linien für das Brim-Element. Eine größere Anzahl von B #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Brim ersetzt die Stützstruktur" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Erzwingen Sie den Druck des Brims um das Modell herum, auch wenn dieser Raum sonst durch die Stützstruktur belegt würde. Dies ersetzt einige der ersten Schichten der Stützstruktur durch Brim-Bereiche." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5283,9 +5275,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Die Strecke einer Aufwärtsbewegung, die mit halber Geschwindigkeit extrudiert wird.\n" -"Dies kann zu einer besseren Haftung an vorhergehenden Schichten führen, während gleichzeitig ein Überhitzen des Materials in diesen Schichten vermieden wird. Dies gilt nur für das Drucken mit Drahtstruktur." +msgstr "Die Strecke einer Aufwärtsbewegung, die mit halber Geschwindigkeit extrudiert wird.\nDies kann zu einer besseren Haftung an vorhergehenden Schichten führen, während gleichzeitig ein Überhitzen des Materials in diesen Schichten vermieden wird. Dies gilt nur für das Drucken mit Drahtstruktur." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 71c133daa9..e6b5867e39 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -49,7 +49,7 @@ msgstr "GCodeWriter no es compatible con el modo sin texto." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Prepare el Gcode antes de la exportación." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    Es posible que uno o más modelos 3D no se impriman correctamente debido al tamaño del modelo y la configuración del material:

    \n" -"

    {model_names}

    \n" -"

    Obtenga más información sobre cómo garantizar la mejor calidad y fiabilidad de impresión posible.

    \n" -"

    Ver guía de impresión de calidad

    " +msgstr "

    Es posible que uno o más modelos 3D no se impriman correctamente debido al tamaño del modelo y la configuración del material:

    \n

    {model_names}

    \n

    Obtenga más información sobre cómo garantizar la mejor calidad y fiabilidad de impresión posible.

    \n

    Ver guía de impresión de calidad

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "Mostrar registro de cambios" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Actualizar firmware" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -822,7 +818,7 @@ msgstr "Archivo {0} presegmentado" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Fallo de inicio de sesión" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -896,32 +892,32 @@ msgstr "Error al importar el perfil de {0}: {1}
    !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "No hay ningún perfil personalizado para importar en el archivo {0}." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Error al importar el perfil de {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Este perfil {0} contiene datos incorrectos, no se han podido importar." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "El equipo definido en el perfil {0} ({1}) no coincide con el equipo actual ({2}), no se ha podido importar." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Error al importar el perfil de {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1073,12 +1069,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    ¡Vaya! Ultimaker Cura ha encontrado un error.

    \n" -"

    Hemos detectado un error irreversible durante el inicio, posiblemente como consecuencia de varios archivos de configuración erróneos. Le recomendamos que realice una copia de seguridad y que restablezca los ajustes.

    \n" -"

    Las copias de seguridad se encuentran en la carpeta de configuración.

    \n" -"

    Envíenos el informe de errores para que podamos solucionar el problema.

    \n" -" " +msgstr "

    ¡Vaya! Ultimaker Cura ha encontrado un error.

    \n

    Hemos detectado un error irreversible durante el inicio, posiblemente como consecuencia de varios archivos de configuración erróneos. Le recomendamos que realice una copia de seguridad y que restablezca los ajustes.

    \n

    Las copias de seguridad se encuentran en la carpeta de configuración.

    \n

    Envíenos el informe de errores para que podamos solucionar el problema.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1111,10 +1102,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Se ha producido un error grave en Cura. Envíenos este informe de errores para que podamos solucionar el problema.

    \n" -"

    Utilice el botón \"Enviar informe\" para publicar automáticamente el informe de errores en nuestros servidores.

    \n" -" " +msgstr "

    Se ha producido un error grave en Cura. Envíenos este informe de errores para que podamos solucionar el problema.

    \n

    Utilice el botón \"Enviar informe\" para publicar automáticamente el informe de errores en nuestros servidores.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1408,7 +1396,7 @@ msgstr "Desplazamiento de la tobera sobre el eje Y" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Número de ventilador de enfriamiento" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1512,7 +1500,7 @@ msgstr "Atrás" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Confirmar desinstalación" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1590,10 +1578,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Este complemento incluye una licencia.\n" -"Debe aceptar dicha licencia para instalar el complemento.\n" -"¿Acepta las condiciones que aparecen a continuación?" +msgstr "Este complemento incluye una licencia.\nDebe aceptar dicha licencia para instalar el complemento.\n¿Acepta las condiciones que aparecen a continuación?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1655,7 +1640,7 @@ msgstr "Cerrar" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Actualizar firmware" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1680,12 +1665,12 @@ msgstr "Cargar firmware personalizado" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "No se puede actualizar el firmware porque no hay conexión con la impresora." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "No se puede actualizar el firmware porque la conexión con la impresora no permite actualizaciones de firmware." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1753,10 +1738,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Para imprimir directamente en la impresora a través de la red, asegúrese de que esta está conectada a la red utilizando un cable de red o conéctela a la red wifi. Si no conecta Cura con la impresora, también puede utilizar una unidad USB para transferir archivos GCode a la impresora.\n" -"\n" -"Seleccione la impresora de la siguiente lista:" +msgstr "Para imprimir directamente en la impresora a través de la red, asegúrese de que esta está conectada a la red utilizando un cable de red o conéctela a la red wifi. Si no conecta Cura con la impresora, también puede utilizar una unidad USB para transferir archivos GCode a la impresora.\n\nSeleccione la impresora de la siguiente lista:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1920,62 +1902,62 @@ msgstr "Esperando: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Cambio de configuración" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "Es necesario modificar la siguiente configuración de la impresora asignada %1:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "Se ha asignado la impresora 1%, pero el trabajo tiene una configuración de material desconocido." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Cambiar material %1, de %2 a %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "Cargar %3 como material %1 (no se puede anular)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Cambiar print core %1, de %2 a %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Cambiar la placa de impresión a %1 (no se puede anular)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Anular" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Iniciar un trabajo de impresión con una configuración no compatible puede causar daños en su impresora 3D. ¿Seguro de que desea sobrescribir la configuración e imprimir %1?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Sobrescribir la configuración e iniciar la impresión" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Vidrio" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Aluminio" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2664,9 +2646,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Ha personalizado parte de los ajustes del perfil.\n" -"¿Desea descartar los cambios o guardarlos?" +msgstr "Ha personalizado parte de los ajustes del perfil.\n¿Desea descartar los cambios o guardarlos?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3368,9 +3348,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Ultimaker B.V. ha desarrollado Cura en cooperación con la comunidad.\n" -"Cura se enorgullece de utilizar los siguientes proyectos de código abierto:" +msgstr "Ultimaker B.V. ha desarrollado Cura en cooperación con la comunidad.\nCura se enorgullece de utilizar los siguientes proyectos de código abierto:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3435,17 +3413,17 @@ msgstr "Biblioteca de apoyo para gestionar archivos STL" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Biblioteca de compatibilidad para trabajar con objetos planos" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Biblioteca de compatibilidad para trabajar con mallas triangulares" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Biblioteca de compatibilidad para analizar redes complejas" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3455,7 +3433,7 @@ msgstr "Biblioteca de compatibilidad para trabajar con archivos 3MF" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Biblioteca de compatibilidad para metadatos y transmisión de archivos" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3503,10 +3481,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Algunos valores de los ajustes o sobrescrituras son distintos a los valores almacenados en el perfil.\n" -"\n" -"Haga clic para abrir el administrador de perfiles." +msgstr "Algunos valores de los ajustes o sobrescrituras son distintos a los valores almacenados en el perfil.\n\nHaga clic para abrir el administrador de perfiles." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3560,10 +3535,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Algunos ajustes ocultos utilizan valores diferentes de los valores normales calculados.\n" -"\n" -"Haga clic para mostrar estos ajustes." +msgstr "Algunos ajustes ocultos utilizan valores diferentes de los valores normales calculados.\n\nHaga clic para mostrar estos ajustes." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3591,10 +3563,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Este ajuste tiene un valor distinto del perfil.\n" -"\n" -"Haga clic para restaurar el valor del perfil." +msgstr "Este ajuste tiene un valor distinto del perfil.\n\nHaga clic para restaurar el valor del perfil." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3602,10 +3571,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Este ajuste se calcula normalmente pero actualmente tiene un valor absoluto establecido.\n" -"\n" -"Haga clic para restaurar el valor calculado." +msgstr "Este ajuste se calcula normalmente pero actualmente tiene un valor absoluto establecido.\n\nHaga clic para restaurar el valor calculado." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3830,9 +3796,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Ajustes de impresión deshabilitados\n" -"No se pueden modificar los archivos GCode" +msgstr "Ajustes de impresión deshabilitados\nNo se pueden modificar los archivos GCode" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4606,12 +4570,12 @@ msgstr "Registro de cambios" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Proporciona opciones a la máquina para actualizar el firmware." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Actualizador de firmware" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/es_ES/fdmextruder.def.json.po b/resources/i18n/es_ES/fdmextruder.def.json.po index f4791134ce..3da8d5251f 100644 --- a/resources/i18n/es_ES/fdmextruder.def.json.po +++ b/resources/i18n/es_ES/fdmextruder.def.json.po @@ -169,12 +169,12 @@ msgstr "Coordenada Z de la posición en la que la tobera queda preparada al inic #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Ventilador de refrigeración de impresión del extrusor" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "Número del ventilador de refrigeración de impresión asociado al extrusor. Modifique el valor predeterminado 0 solo cuando disponga de un ventilador de refrigeración de impresión diferente para cada extrusor." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/es_ES/fdmprinter.def.json.po b/resources/i18n/es_ES/fdmprinter.def.json.po index 3133fa86b8..bd4ad9fd7f 100644 --- a/resources/i18n/es_ES/fdmprinter.def.json.po +++ b/resources/i18n/es_ES/fdmprinter.def.json.po @@ -57,9 +57,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"Los comandos de GCode que se ejecutarán justo al inicio separados por - \n" -"." +msgstr "Los comandos de GCode que se ejecutarán justo al inicio separados por - \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -71,9 +69,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"Los comandos de GCode que se ejecutarán justo al final separados por -\n" -"." +msgstr "Los comandos de GCode que se ejecutarán justo al final separados por -\n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1078,7 +1074,7 @@ msgstr "Conectar polígonos superiores/inferiores" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Conecta las trayectorias de forro superior/inferior cuando están próximas entre sí. Al habilitar este ajuste, en el patrón concéntrico se reduce considerablemente el tiempo de desplazamiento, pero las conexiones pueden producirse en mitad del relleno, con lo que bajaría la calidad de la superficie superior." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1498,7 +1494,7 @@ msgstr "Patrón de relleno" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "Patrón del material de relleno de la impresión. El relleno de línea y zigzag cambia de dirección en capas alternas, con lo que se reduce el coste de material. Los patrones de rejilla, triángulo, trihexágono, cubo, octeto, cubo bitruncado, transversal y concéntrico se imprimen en todas las capas por completo. El relleno giroide, cúbico, cúbico bitruncado y de octeto cambian en cada capa para proporcionar una distribución de fuerza equitativa en cada dirección." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1563,7 +1559,7 @@ msgstr "Cruz 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Giroide" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1635,9 +1631,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Agregar paredes adicionales alrededor del área de relleno. Estas paredes pueden hacer que las líneas del forro superior/inferior se aflojen menos, lo que significa que necesitaría menos capas de forro superior/inferior para obtener la misma calidad utilizando algo más de material.\n" -"Puede utilizar esta función junto a la de Conectar polígonos de relleno para conectar todo el relleno en una única trayectoria de extrusión sin necesidad de desplazamientos ni retracciones si se configura correctamente." +msgstr "Agregar paredes adicionales alrededor del área de relleno. Estas paredes pueden hacer que las líneas del forro superior/inferior se aflojen menos, lo que significa que necesitaría menos capas de forro superior/inferior para obtener la misma calidad utilizando algo más de material.\nPuede utilizar esta función junto a la de Conectar polígonos de relleno para conectar todo el relleno en una única trayectoria de extrusión sin necesidad de desplazamientos ni retracciones si se configura correctamente." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3272,32 +3266,32 @@ msgstr "Orientación del patrón de relleno para soportes. El patrón de relleno #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Habilitar borde de soporte" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Genera un borde dentro de las zonas de relleno del soporte de la primera capa. Este borde se imprime por debajo del soporte y no a su alrededor. Si habilita esta configuración aumentará la adhesión del soporte a la placa de impresión." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Ancho del borde de soporte" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Anchura del borde de impresión que se imprime por debajo del soporte. Una anchura de soporte amplia mejora la adhesión a la placa de impresión, pero requieren material adicional." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Recuento de líneas del borde de soporte" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Número de líneas utilizadas para el borde de soporte. Más líneas de borde mejoran la adhesión a la placa de impresión, pero requieren material adicional." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3834,9 +3828,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"La distancia horizontal entre la falda y la primera capa de la impresión.\n" -"Se trata de la distancia mínima. Múltiples líneas de falda se extenderán hacia el exterior a partir de esta distancia." +msgstr "La distancia horizontal entre la falda y la primera capa de la impresión.\nSe trata de la distancia mínima. Múltiples líneas de falda se extenderán hacia el exterior a partir de esta distancia." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3871,12 +3863,12 @@ msgstr "Número de líneas utilizadas para un borde. Más líneas de borde mejor #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Sustituir soporte por borde" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Aplica la impresión de un borde alrededor del modelo, aunque en esa posición debiera estar el soporte. Sustituye algunas áreas de la primera capa de soporte por áreas de borde." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5283,9 +5275,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Distancia de un movimiento ascendente que se extrude a media velocidad.\n" -"Esto puede causar una mejor adherencia a las capas anteriores, aunque no calienta demasiado el material en esas capas. Solo se aplica a la impresión de alambre." +msgstr "Distancia de un movimiento ascendente que se extrude a media velocidad.\nEsto puede causar una mejor adherencia a las capas anteriores, aunque no calienta demasiado el material en esas capas. Solo se aplica a la impresión de alambre." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index f477c14ac6..9b1fff4124 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -49,7 +49,7 @@ msgstr "GCodeWriter ne prend pas en charge le mode non-texte." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Veuillez préparer le G-Code avant d'exporter." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    Un ou plusieurs modèles 3D peuvent ne pas s'imprimer de manière optimale en raison de la taille du modèle et de la configuration matérielle :

    \n" -"

    {model_names}

    \n" -"

    Découvrez comment optimiser la qualité et la fiabilité de l'impression.

    \n" -"

    Consultez le guide de qualité d'impression

    " +msgstr "

    Un ou plusieurs modèles 3D peuvent ne pas s'imprimer de manière optimale en raison de la taille du modèle et de la configuration matérielle :

    \n

    {model_names}

    \n

    Découvrez comment optimiser la qualité et la fiabilité de l'impression.

    \n

    Consultez le guide de qualité d'impression

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "Afficher le récapitulatif des changements" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Mettre à jour le firmware" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -822,7 +818,7 @@ msgstr "Fichier {0} prédécoupé" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "La connexion a échoué" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -896,32 +892,32 @@ msgstr "Échec de l'importation du profil depuis le fichier {0}!" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "Aucun profil personnalisé à importer dans le fichier {0}" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Échec de l'importation du profil depuis le fichier {0} :" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Le profil {0} contient des données incorrectes ; échec de l'importation." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "La machine définie dans le profil {0} ({1}) ne correspond pas à votre machine actuelle ({2}) ; échec de l'importation." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Échec de l'importation du profil depuis le fichier {0} :" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1073,12 +1069,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    Oups, un problème est survenu dans Ultimaker Cura.

    \n" -"

    Une erreur irrécupérable est survenue lors du démarrage. Elle peut avoir été causée par des fichiers de configuration incorrects. Nous vous suggérons de sauvegarder et de réinitialiser votre configuration.

    \n" -"

    Les sauvegardes se trouvent dans le dossier de configuration.

    \n" -"

    Veuillez nous envoyer ce rapport d'incident pour que nous puissions résoudre le problème.

    \n" -" " +msgstr "

    Oups, un problème est survenu dans Ultimaker Cura.

    \n

    Une erreur irrécupérable est survenue lors du démarrage. Elle peut avoir été causée par des fichiers de configuration incorrects. Nous vous suggérons de sauvegarder et de réinitialiser votre configuration.

    \n

    Les sauvegardes se trouvent dans le dossier de configuration.

    \n

    Veuillez nous envoyer ce rapport d'incident pour que nous puissions résoudre le problème.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1111,10 +1102,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Une erreur fatale est survenue dans Cura. Veuillez nous envoyer ce rapport d'incident pour résoudre le problème

    \n" -"

    Veuillez utiliser le bouton « Envoyer rapport » pour publier automatiquement un rapport d'erreur sur nos serveurs

    \n" -" " +msgstr "

    Une erreur fatale est survenue dans Cura. Veuillez nous envoyer ce rapport d'incident pour résoudre le problème

    \n

    Veuillez utiliser le bouton « Envoyer rapport » pour publier automatiquement un rapport d'erreur sur nos serveurs

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1408,7 +1396,7 @@ msgstr "Décalage buse Y" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Numéro du ventilateur de refroidissement" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1512,7 +1500,7 @@ msgstr "Précédent" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Confirmer la désinstallation" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1590,10 +1578,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Ce plug-in contient une licence.\n" -"Vous devez approuver cette licence pour installer ce plug-in.\n" -"Acceptez-vous les clauses ci-dessous ?" +msgstr "Ce plug-in contient une licence.\nVous devez approuver cette licence pour installer ce plug-in.\nAcceptez-vous les clauses ci-dessous ?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1655,7 +1640,7 @@ msgstr "Fermer" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Mettre à jour le firmware" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1680,12 +1665,12 @@ msgstr "Charger le firmware personnalisé" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "Impossible de se connecter à l'imprimante ; échec de la mise à jour du firmware." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "Échec de la mise à jour du firmware, car cette fonctionnalité n'est pas prise en charge par la connexion avec l'imprimante." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1753,10 +1738,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Pour imprimer directement sur votre imprimante sur le réseau, assurez-vous que votre imprimante est connectée au réseau via un câble réseau ou en connectant votre imprimante à votre réseau Wi-Fi. Si vous ne connectez pas Cura avec votre imprimante, vous pouvez utiliser une clé USB pour transférer les fichiers g-code sur votre imprimante.\n" -"\n" -"Sélectionnez votre imprimante dans la liste ci-dessous :" +msgstr "Pour imprimer directement sur votre imprimante sur le réseau, assurez-vous que votre imprimante est connectée au réseau via un câble réseau ou en connectant votre imprimante à votre réseau Wi-Fi. Si vous ne connectez pas Cura avec votre imprimante, vous pouvez utiliser une clé USB pour transférer les fichiers g-code sur votre imprimante.\n\nSélectionnez votre imprimante dans la liste ci-dessous :" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1920,62 +1902,62 @@ msgstr "En attente : " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Modification des configurations" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "L'imprimante assignée, %1, nécessite d'apporter la ou les modifications suivantes à la configuration :" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "L'imprimante %1 est assignée, mais le projet contient une configuration matérielle inconnue." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Changer le matériau %1 de %2 à %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "Charger %3 comme matériau %1 (Ceci ne peut pas être remplacé)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Changer le print core %1 de %2 à %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Changer le plateau en %1 (Ceci ne peut pas être remplacé)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Remplacer" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Le fait de démarrer un travail d'impression avec une configuration incompatible peut endommager votre imprimante 3D. Êtes-vous sûr de vouloir remplacer la configuration et imprimer %1 ?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Remplacer la configuration et lancer l'impression" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Verre" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Aluminium" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2664,9 +2646,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Vous avez personnalisé certains paramètres du profil.\n" -"Souhaitez-vous conserver ces changements, ou les annuler ?" +msgstr "Vous avez personnalisé certains paramètres du profil.\nSouhaitez-vous conserver ces changements, ou les annuler ?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3368,9 +3348,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura a été développé par Ultimaker B.V. en coopération avec la communauté Ultimaker.\n" -"Cura est fier d'utiliser les projets open source suivants :" +msgstr "Cura a été développé par Ultimaker B.V. en coopération avec la communauté Ultimaker.\nCura est fier d'utiliser les projets open source suivants :" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3435,17 +3413,17 @@ msgstr "Prise en charge de la bibliothèque pour le traitement des fichiers STL" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Prise en charge de la bibliothèque pour le traitement des objets planaires" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Prise en charge de la bibliothèque pour le traitement des mailles triangulaires" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Prise en charge de la bibliothèque pour l'analyse de réseaux complexes" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3455,7 +3433,7 @@ msgstr "Prise en charge de la bibliothèque pour le traitement des fichiers 3MF" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Prise en charge de la bibliothèque pour les métadonnées et le streaming de fichiers" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3503,10 +3481,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Certaines valeurs de paramètre / forçage sont différentes des valeurs enregistrées dans le profil. \n" -"\n" -"Cliquez pour ouvrir le gestionnaire de profils." +msgstr "Certaines valeurs de paramètre / forçage sont différentes des valeurs enregistrées dans le profil. \n\nCliquez pour ouvrir le gestionnaire de profils." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3560,10 +3535,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Certains paramètres masqués utilisent des valeurs différentes de leur valeur normalement calculée.\n" -"\n" -"Cliquez pour rendre ces paramètres visibles." +msgstr "Certains paramètres masqués utilisent des valeurs différentes de leur valeur normalement calculée.\n\nCliquez pour rendre ces paramètres visibles." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3591,10 +3563,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Ce paramètre possède une valeur qui est différente du profil.\n" -"\n" -"Cliquez pour restaurer la valeur du profil." +msgstr "Ce paramètre possède une valeur qui est différente du profil.\n\nCliquez pour restaurer la valeur du profil." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3602,10 +3571,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Ce paramètre est normalement calculé mais il possède actuellement une valeur absolue définie.\n" -"\n" -"Cliquez pour restaurer la valeur calculée." +msgstr "Ce paramètre est normalement calculé mais il possède actuellement une valeur absolue définie.\n\nCliquez pour restaurer la valeur calculée." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3830,9 +3796,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Configuration de l'impression désactivée\n" -"Les fichiers G-Code ne peuvent pas être modifiés" +msgstr "Configuration de l'impression désactivée\nLes fichiers G-Code ne peuvent pas être modifiés" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4606,12 +4570,12 @@ msgstr "Récapitulatif des changements" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Fournit à une machine des actions permettant la mise à jour du firmware." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Programme de mise à jour du firmware" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/fr_FR/fdmextruder.def.json.po b/resources/i18n/fr_FR/fdmextruder.def.json.po index 6fc72c38e1..52969f511f 100644 --- a/resources/i18n/fr_FR/fdmextruder.def.json.po +++ b/resources/i18n/fr_FR/fdmextruder.def.json.po @@ -169,12 +169,12 @@ msgstr "Les coordonnées Z de la position à laquelle la buse s'amorce au début #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Ventilateur de refroidissement d'impression de l'extrudeuse" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "Numéro du ventilateur de refroidissement d'impression associé à cette extrudeuse. Ne modifiez cette valeur par rapport à la valeur par défaut 0 que si vous utilisez un ventilateur de refroidissement d'impression différent pour chaque extrudeuse." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/fr_FR/fdmprinter.def.json.po b/resources/i18n/fr_FR/fdmprinter.def.json.po index 4eb7d674f5..87aa9d5a27 100644 --- a/resources/i18n/fr_FR/fdmprinter.def.json.po +++ b/resources/i18n/fr_FR/fdmprinter.def.json.po @@ -57,9 +57,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"Commandes G-Code à exécuter au tout début, séparées par \n" -"." +msgstr "Commandes G-Code à exécuter au tout début, séparées par \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -71,9 +69,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"Commandes G-Code à exécuter tout à la fin, séparées par \n" -"." +msgstr "Commandes G-Code à exécuter tout à la fin, séparées par \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1078,7 +1074,7 @@ msgstr "Relier les polygones supérieurs / inférieurs" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Relier les voies de couche extérieure supérieures / inférieures lorsqu'elles sont côte à côte. Pour le motif concentrique, ce paramètre réduit considérablement le temps de parcours, mais comme les liens peuvent se trouver à mi-chemin sur le remplissage, cette fonctionnalité peut réduire la qualité de la surface supérieure." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1498,7 +1494,7 @@ msgstr "Motif de remplissage" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "Motif du matériau de remplissage de l'impression. La ligne et le remplissage en zigzag changent de sens à chaque alternance de couche, réduisant ainsi les coûts matériels. Les motifs en grille, en triangle, trihexagonaux, cubiques, octaédriques, quart cubiques et concentriques sont entièrement imprimés sur chaque couche. Les remplissages gyroïde, cubique, quart cubique et octaédrique changent à chaque couche afin d'offrir une répartition plus égale de la solidité dans chaque direction." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1563,7 +1559,7 @@ msgstr "Entrecroisé 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Gyroïde" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1635,9 +1631,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Ajoutez des parois supplémentaires autour de la zone de remplissage. De telles parois peuvent réduire l'affaissement des lignes de couche extérieure supérieure / inférieure, réduisant le nombre de couches extérieures supérieures / inférieures nécessaires pour obtenir la même qualité, au prix d'un peu de matériau supplémentaire.\n" -"Configurée correctement, cette fonctionnalité peut être combinée avec « Relier les polygones de remplissage » pour relier tous les remplissages en un seul mouvement d'extrusion sans avoir besoin de déplacements ou de rétractions." +msgstr "Ajoutez des parois supplémentaires autour de la zone de remplissage. De telles parois peuvent réduire l'affaissement des lignes de couche extérieure supérieure / inférieure, réduisant le nombre de couches extérieures supérieures / inférieures nécessaires pour obtenir la même qualité, au prix d'un peu de matériau supplémentaire.\nConfigurée correctement, cette fonctionnalité peut être combinée avec « Relier les polygones de remplissage » pour relier tous les remplissages en un seul mouvement d'extrusion sans avoir besoin de déplacements ou de rétractions." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3272,32 +3266,32 @@ msgstr "Orientation du motif de remplissage pour les supports. Le motif de rempl #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Activer la bordure du support" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Générer un bord à l'intérieur des zones de remplissage du support de la première couche. Cette bordure est imprimée sous le support et non autour de celui-ci, ce qui augmente l'adhérence du support au plateau." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Largeur de la bordure du support" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Largeur de la bordure à imprimer sous le support. Une plus grande bordure améliore l'adhérence au plateau, mais demande un peu de matériau supplémentaire." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Nombre de lignes de la bordure du support" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Nombre de lignes utilisées pour la bordure du support. L'augmentation du nombre de lignes de bordure améliore l'adhérence au plateau, mais demande un peu de matériau supplémentaire." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3834,9 +3828,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"La distance horizontale entre la jupe et la première couche de l’impression.\n" -"Il s’agit de la distance minimale séparant la jupe de l’objet. Si la jupe a d’autres lignes, celles-ci s’étendront vers l’extérieur." +msgstr "La distance horizontale entre la jupe et la première couche de l’impression.\nIl s’agit de la distance minimale séparant la jupe de l’objet. Si la jupe a d’autres lignes, celles-ci s’étendront vers l’extérieur." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3871,12 +3863,12 @@ msgstr "Le nombre de lignes utilisées pour une bordure. Un plus grand nombre de #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "La bordure remplace le support" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Appliquer la bordure à imprimer autour du modèle même si cet espace aurait autrement dû être occupé par le support, en remplaçant certaines régions de la première couche de support par des régions de la bordure." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5283,9 +5275,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Distance d’un déplacement ascendant qui est extrudé à mi-vitesse.\n" -"Cela peut permettre une meilleure adhérence aux couches précédentes sans surchauffer le matériau dans ces couches. Uniquement applicable à l'impression filaire." +msgstr "Distance d’un déplacement ascendant qui est extrudé à mi-vitesse.\nCela peut permettre une meilleure adhérence aux couches précédentes sans surchauffer le matériau dans ces couches. Uniquement applicable à l'impression filaire." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 6a30a94865..d285cbfdc3 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -49,7 +49,7 @@ msgstr "GCodeWriter non supporta la modalità non di testo." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Preparare il codice G prima dell’esportazione." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    La stampa di uno o più modelli 3D può non avvenire in modo ottimale a causa della dimensioni modello e della configurazione materiale:

    \n" -"

    {model_names}

    \n" -"

    Scopri come garantire la migliore qualità ed affidabilità di stampa.

    \n" -"

    Visualizza la guida alla qualità di stampa

    " +msgstr "

    La stampa di uno o più modelli 3D può non avvenire in modo ottimale a causa della dimensioni modello e della configurazione materiale:

    \n

    {model_names}

    \n

    Scopri come garantire la migliore qualità ed affidabilità di stampa.

    \n

    Visualizza la guida alla qualità di stampa

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "Visualizza registro modifiche" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Aggiornamento firmware" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -822,7 +818,7 @@ msgstr "File pre-sezionato {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Login non riuscito" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -896,32 +892,32 @@ msgstr "Impossibile importare il profilo da {0}: { #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "Nessun profilo personalizzato da importare nel file {0}" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Impossibile importare il profilo da {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Questo profilo {0} contiene dati errati, impossibile importarlo." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "La macchina definita nel profilo {0} ({1}) non corrisponde alla macchina corrente ({2}), impossibile importarla." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Impossibile importare il profilo da {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1073,12 +1069,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    Oops, Ultimaker Cura ha rilevato qualcosa che non sembra corretto.

    \n" -"

    Abbiamo riscontrato un errore irrecuperabile durante l’avvio. È stato probabilmente causato da alcuni file di configurazione errati. Suggeriamo di effettuare il backup e ripristinare la configurazione.

    \n" -"

    I backup sono contenuti nella cartella configurazione.

    \n" -"

    Si prega di inviare questo Rapporto su crash per correggere il problema.

    \n" -" " +msgstr "

    Oops, Ultimaker Cura ha rilevato qualcosa che non sembra corretto.

    \n

    Abbiamo riscontrato un errore irrecuperabile durante l’avvio. È stato probabilmente causato da alcuni file di configurazione errati. Suggeriamo di effettuare il backup e ripristinare la configurazione.

    \n

    I backup sono contenuti nella cartella configurazione.

    \n

    Si prega di inviare questo Rapporto su crash per correggere il problema.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1111,10 +1102,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Si è verificato un errore fatale in Cura. Si prega di inviare questo Rapporto su crash per correggere il problema

    \n" -"

    Usare il pulsante “Invia report\" per inviare automaticamente una segnalazione errore ai nostri server

    \n" -" " +msgstr "

    Si è verificato un errore fatale in Cura. Si prega di inviare questo Rapporto su crash per correggere il problema

    \n

    Usare il pulsante “Invia report\" per inviare automaticamente una segnalazione errore ai nostri server

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1408,7 +1396,7 @@ msgstr "Scostamento Y ugello" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Numero ventola di raffreddamento" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1512,7 +1500,7 @@ msgstr "Indietro" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Conferma disinstalla" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1590,10 +1578,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Questo plugin contiene una licenza.\n" -"È necessario accettare questa licenza per poter installare il plugin.\n" -"Accetti i termini sotto riportati?" +msgstr "Questo plugin contiene una licenza.\nÈ necessario accettare questa licenza per poter installare il plugin.\nAccetti i termini sotto riportati?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1655,7 +1640,7 @@ msgstr "Chiudi" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Aggiornamento firmware" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1680,12 +1665,12 @@ msgstr "Carica il firmware personalizzato" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "Impossibile aggiornare il firmware: nessun collegamento con la stampante." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "Impossibile aggiornare il firmware: il collegamento con la stampante non supporta l’aggiornamento del firmware." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1753,10 +1738,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Per stampare direttamente sulla stampante in rete, verificare che la stampante desiderata sia collegata alla rete mediante un cavo di rete o mediante collegamento alla rete WIFI. Se si collega Cura alla stampante, è comunque possibile utilizzare una chiavetta USB per trasferire i file codice G alla stampante.\n" -"\n" -"Selezionare la stampante dall’elenco seguente:" +msgstr "Per stampare direttamente sulla stampante in rete, verificare che la stampante desiderata sia collegata alla rete mediante un cavo di rete o mediante collegamento alla rete WIFI. Se si collega Cura alla stampante, è comunque possibile utilizzare una chiavetta USB per trasferire i file codice G alla stampante.\n\nSelezionare la stampante dall’elenco seguente:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1920,62 +1902,62 @@ msgstr "In attesa: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Modifica configurazione" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "La stampante assegnata, %1, richiede le seguenti modifiche di configurazione:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "La stampante %1 è assegnata, ma il processo contiene una configurazione materiale sconosciuta." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Cambia materiale %1 da %2 a %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "Caricare %3 come materiale %1 (Operazione non annullabile)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Cambia print core %1 da %2 a %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Cambia piano di stampa a %1 (Operazione non annullabile)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Override" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "L’avvio di un processo di stampa con una configurazione non compatibile potrebbe danneggiare la stampante 3D. Sei sicuro di voler annullare la configurazione e stampare %1?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Annullare la configurazione e avviare la stampa" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Vetro" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Alluminio" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2664,9 +2646,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Sono state personalizzate alcune impostazioni del profilo.\n" -"Mantenere o eliminare tali impostazioni?" +msgstr "Sono state personalizzate alcune impostazioni del profilo.\nMantenere o eliminare tali impostazioni?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3368,9 +3348,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura è stato sviluppato da Ultimaker B.V. in cooperazione con la comunità.\n" -"Cura è orgogliosa di utilizzare i seguenti progetti open source:" +msgstr "Cura è stato sviluppato da Ultimaker B.V. in cooperazione con la comunità.\nCura è orgogliosa di utilizzare i seguenti progetti open source:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3435,17 +3413,17 @@ msgstr "Libreria di supporto per gestione file STL" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Libreria di supporto per gestione oggetti planari" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Libreria di supporto per gestione maglie triangolari" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Libreria di supporto per l’analisi di reti complesse" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3455,7 +3433,7 @@ msgstr "Libreria di supporto per gestione file 3MF" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Libreria di supporto per metadati file e streaming" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3503,10 +3481,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Alcuni valori di impostazione/esclusione sono diversi dai valori memorizzati nel profilo.\n" -"\n" -"Fare clic per aprire la gestione profili." +msgstr "Alcuni valori di impostazione/esclusione sono diversi dai valori memorizzati nel profilo.\n\nFare clic per aprire la gestione profili." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3560,10 +3535,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Alcune impostazioni nascoste utilizzano valori diversi dal proprio valore normale calcolato.\n" -"\n" -"Fare clic per rendere visibili queste impostazioni." +msgstr "Alcune impostazioni nascoste utilizzano valori diversi dal proprio valore normale calcolato.\n\nFare clic per rendere visibili queste impostazioni." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3591,10 +3563,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Questa impostazione ha un valore diverso dal profilo.\n" -"\n" -"Fare clic per ripristinare il valore del profilo." +msgstr "Questa impostazione ha un valore diverso dal profilo.\n\nFare clic per ripristinare il valore del profilo." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3602,10 +3571,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Questa impostazione normalmente viene calcolata, ma attualmente ha impostato un valore assoluto.\n" -"\n" -"Fare clic per ripristinare il valore calcolato." +msgstr "Questa impostazione normalmente viene calcolata, ma attualmente ha impostato un valore assoluto.\n\nFare clic per ripristinare il valore calcolato." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3830,9 +3796,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Impostazione di stampa disabilitata\n" -"I file codice G non possono essere modificati" +msgstr "Impostazione di stampa disabilitata\nI file codice G non possono essere modificati" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4606,12 +4570,12 @@ msgstr "Registro modifiche" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Fornisce azioni macchina per l’aggiornamento del firmware." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Aggiornamento firmware" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/it_IT/fdmextruder.def.json.po b/resources/i18n/it_IT/fdmextruder.def.json.po index 94439de443..aa170f18be 100644 --- a/resources/i18n/it_IT/fdmextruder.def.json.po +++ b/resources/i18n/it_IT/fdmextruder.def.json.po @@ -169,12 +169,12 @@ msgstr "Indica la coordinata Z della posizione in cui l’ugello si innesca all #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Ventola di raffreddamento stampa estrusore" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "Il numero di ventole di raffreddamento stampa abbinate a questo estrusore. Modificarlo dal valore predefinito 0 solo quando si ha una ventola di raffreddamento diversa per ciascun estrusore." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/it_IT/fdmprinter.def.json.po b/resources/i18n/it_IT/fdmprinter.def.json.po index b4b425da8d..e2d013f74c 100644 --- a/resources/i18n/it_IT/fdmprinter.def.json.po +++ b/resources/i18n/it_IT/fdmprinter.def.json.po @@ -57,9 +57,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"I comandi codice G da eseguire all’avvio, separati da \n" -"." +msgstr "I comandi codice G da eseguire all’avvio, separati da \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -71,9 +69,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"I comandi codice G da eseguire alla fine, separati da \n" -"." +msgstr "I comandi codice G da eseguire alla fine, separati da \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1078,7 +1074,7 @@ msgstr "Collega poligoni superiori/inferiori" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Collega i percorsi del rivestimento esterno superiore/inferiore quando corrono uno accanto all’altro. Per le configurazioni concentriche, l’abilitazione di questa impostazione riduce notevolmente il tempo di spostamento, tuttavia poiché i collegamenti possono aver luogo a metà del riempimento, con questa funzione la qualità della superficie superiore potrebbe risultare inferiore." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1498,7 +1494,7 @@ msgstr "Configurazione di riempimento" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "Configurazione del materiale di riempimento della stampa. Il riempimento a linea e a zig zag cambia direzione su strati alternati, riducendo il costo del materiale. Le configurazioni a griglia, a triangolo, tri-esagonali, cubiche, ottagonali, a quarto di cubo, incrociate e concentriche sono stampate completamente su ogni strato. Le configurazioni gyroid, cubiche, a quarto di cubo e ottagonali variano per ciascuno strato per garantire una più uniforme distribuzione della forza in ogni direzione." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1563,7 +1559,7 @@ msgstr "Incrociata 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Gyroid" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1635,9 +1631,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Aggiunge pareti supplementari intorno alla zona di riempimento. Queste pareti possono ridurre l’abbassamento delle linee del rivestimento esterno superiore/inferiore, pertanto saranno necessari meno strati di rivestimento esterno superiore/inferiore per ottenere la stessa qualità al costo del materiale supplementare.\n" -"Questa funzione può essere abbinata a Collega poligoni riempimento per collegare tutto il riempimento in un unico percorso di estrusione senza necessità di avanzamenti o arretramenti, se configurata correttamente." +msgstr "Aggiunge pareti supplementari intorno alla zona di riempimento. Queste pareti possono ridurre l’abbassamento delle linee del rivestimento esterno superiore/inferiore, pertanto saranno necessari meno strati di rivestimento esterno superiore/inferiore per ottenere la stessa qualità al costo del materiale supplementare.\nQuesta funzione può essere abbinata a Collega poligoni riempimento per collegare tutto il riempimento in un unico percorso di estrusione senza necessità di avanzamenti o arretramenti, se configurata correttamente." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3272,32 +3266,32 @@ msgstr "Indica l’orientamento della configurazione del riempimento per i suppo #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Abilitazione brim del supporto" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Genera un brim entro le zone di riempimento del supporto del primo strato. Questo brim viene stampato al di sotto del supporto, non intorno ad esso. L’abilitazione di questa impostazione aumenta l’adesione del supporto al piano di stampa." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Larghezza del brim del supporto" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Corrisponde alla larghezza del brim da stampare al di sotto del supporto. Un brim più largo migliora l’adesione al piano di stampa, ma utilizza una maggiore quantità di materiale." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Numero di linee del brim del supporto" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Corrisponde al numero di linee utilizzate per il brim del supporto. Più linee brim migliorano l’adesione al piano di stampa, ma utilizzano una maggiore quantità di materiale." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3834,9 +3828,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"Indica la distanza orizzontale tra lo skirt ed il primo strato della stampa.\n" -"Questa è la distanza minima. Più linee di skirt aumenteranno tale distanza." +msgstr "Indica la distanza orizzontale tra lo skirt ed il primo strato della stampa.\nQuesta è la distanza minima. Più linee di skirt aumenteranno tale distanza." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3871,12 +3863,12 @@ msgstr "Corrisponde al numero di linee utilizzate per un brim. Più linee brim m #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Brim in sostituzione del supporto" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Abilita la stampa del brim intorno al modello anche se quello spazio dovrebbe essere occupato dal supporto. Sostituisce alcune zone del primo strato del supporto con zone del brim." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5283,9 +5275,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Indica la distanza di uno spostamento verso l'alto con estrusione a velocità dimezzata.\n" -"Ciò può garantire una migliore adesione agli strati precedenti, senza eccessivo riscaldamento del materiale su questi strati. Applicabile solo alla funzione Wire Printing." +msgstr "Indica la distanza di uno spostamento verso l'alto con estrusione a velocità dimezzata.\nCiò può garantire una migliore adesione agli strati precedenti, senza eccessivo riscaldamento del materiale su questi strati. Applicabile solo alla funzione Wire Printing." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index ddc9447004..1029221991 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -49,7 +49,7 @@ msgstr "GCodeWriter は非テキストモードはサポートしていません #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "エクスポートする前にG-codeの準備をしてください。" #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    モデルのサイズまたは材料の設定によっては、適切に印刷しない3Dモデルがあります。:

    \n" -"

    {model_names}

    \n" -"

    可能な限り最高の品質および信頼性を得る方法をご覧ください。

    \n" -"

    印字品質ガイドを見る

    " +msgstr "

    モデルのサイズまたは材料の設定によっては、適切に印刷しない3Dモデルがあります。:

    \n

    {model_names}

    \n

    可能な限り最高の品質および信頼性を得る方法をご覧ください。

    \n

    印字品質ガイドを見る

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "Changelogの表示" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "ファームウェアアップデート" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -823,7 +819,7 @@ msgstr "スライス前ファイル {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "ログインに失敗しました" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -897,32 +893,32 @@ msgstr "{0}: {1}からプロファイル #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "ファイル{0}にはカスタムプロファイルがインポートされていません。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "{0}からプロファイルの取り込に失敗しました。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "このプロファイル{0}には、正しくないデータが含まれているため、インポートできません。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "プロファイル{0}の中で定義されているマシン({1})は、現在お使いのマシン({2})と一致しないため、インポートできませんでした。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "{0}からプロファイルの取り込に失敗しました。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1074,12 +1070,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    申し訳ありません。Ultimaker Cura で何らかの不具合が生じています。

    \n" -"

    開始時に回復不能のエラーが発生しました。不適切なファイル設定が原因の可能性があります。バックアップを実行してからリセットしてください。

    \n" -"

    バックアップは、設定フォルダに保存されます。

    \n" -"

    問題解決のために、このクラッシュ報告をお送りください。

    \n" -" " +msgstr "

    申し訳ありません。Ultimaker Cura で何らかの不具合が生じています。

    \n

    開始時に回復不能のエラーが発生しました。不適切なファイル設定が原因の可能性があります。バックアップを実行してからリセットしてください。

    \n

    バックアップは、設定フォルダに保存されます。

    \n

    問題解決のために、このクラッシュ報告をお送りください。

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1112,10 +1103,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    致命的なエラーが発生しました。問題解決のためこのクラッシュレポートを送信してください

    \n" -"

    「レポート送信」ボタンを使用してバグレポートが自動的に当社サーバーに送られるようにしてください

    \n" -" " +msgstr "

    致命的なエラーが発生しました。問題解決のためこのクラッシュレポートを送信してください

    \n

    「レポート送信」ボタンを使用してバグレポートが自動的に当社サーバーに送られるようにしてください

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1409,7 +1397,7 @@ msgstr "ノズルオフセットY" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "冷却ファンの番号" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1513,7 +1501,7 @@ msgstr "戻る" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "アンインストール確認" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1591,10 +1579,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"このプラグインにはライセンスが含まれています。\n" -"このプラグインをインストールするにはこのライセンスに同意する必要があります。\n" -"下の利用規約に同意しますか?" +msgstr "このプラグインにはライセンスが含まれています。\nこのプラグインをインストールするにはこのライセンスに同意する必要があります。\n下の利用規約に同意しますか?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1656,7 +1641,7 @@ msgstr "閉める" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "ファームウェアアップデート" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1681,12 +1666,12 @@ msgstr "カスタムファームウェアをアップロードする" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "プリンターと接続されていないため、ファームウェアをアップデートできません。" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "プリンターとの接続はファームウェアのアップデートをサポートしていないため、ファームウェアをアップデートできません。" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1918,62 +1903,62 @@ msgstr "待ち時間: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "構成の変更" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "割り当てられたプリンター %1 には以下の構成変更が必要です。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "プリンター %1 が割り当てられましたが、ジョブには不明な材料構成があります。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "材料 %1 を %2 から %3 に変更します。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "%3 を 材料 %1 にロードします(これは上書きできません)。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "プリントコア %1 を %2 から %3 に変更します。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "ビルドプレートを %1 に変更します(これは上書きできません)。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "上書き" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "互換性のない構成で印刷ジョブを開始すると3Dプリンターを損傷することがあります。構成と印刷 %1 を上書きしますか?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "構成を上書きしてから印刷を開始" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "ガラス" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "アルミニウム" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -3431,17 +3416,17 @@ msgstr "STLファイルを操作するためのライブラリーサポート" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "平面対象物を操作するためのライブラリーサポート" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "参画メッシュを操作するためのライブラリーサポート" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "複雑なネットワークを分析するためのライブラリーサポート" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3451,7 +3436,7 @@ msgstr "3MFファイルを操作するためのライブラリーサポート" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "ファイルメタデータとストリーミングのためのライブラリーサポート" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3499,9 +3484,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"いくらかの設定プロファイルにある値とことなる場合無効にします。\n" -"プロファイルマネージャーをクリックして開いてください。" +msgstr "いくらかの設定プロファイルにある値とことなる場合無効にします。\nプロファイルマネージャーをクリックして開いてください。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3555,9 +3538,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"いくらかの非表示設定は通常の計算された値と異なる値を使用します。\n" -"表示されるようにクリックしてください。" +msgstr "いくらかの非表示設定は通常の計算された値と異なる値を使用します。\n表示されるようにクリックしてください。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3585,9 +3566,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"この設定にプロファイルと異なった値があります。\n" -"プロファイルの値を戻すためにクリックしてください。" +msgstr "この設定にプロファイルと異なった値があります。\nプロファイルの値を戻すためにクリックしてください。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3595,9 +3574,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"このセッティングは通常計算されます、今は絶対値に固定されています。\n" -"計算された値に変更するためにクリックを押してください。" +msgstr "このセッティングは通常計算されます、今は絶対値に固定されています。\n計算された値に変更するためにクリックを押してください。" #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3822,9 +3799,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"プリントセットアップが無効\n" -"G-codeファイルを修正することができません" +msgstr "プリントセットアップが無効\nG-codeファイルを修正することができません" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4598,12 +4573,12 @@ msgstr "Changelog" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "ファームウェアアップデートのためのマシン操作を提供します。" #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "ファームウェアアップデーター" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/ja_JP/fdmextruder.def.json.po b/resources/i18n/ja_JP/fdmextruder.def.json.po index 826048fa4f..95f0382823 100644 --- a/resources/i18n/ja_JP/fdmextruder.def.json.po +++ b/resources/i18n/ja_JP/fdmextruder.def.json.po @@ -170,12 +170,12 @@ msgstr "印刷開始時にノズルがポジションを確認するZ座標。" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "エクストルーダープリント冷却ファン" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "このエクストルーダーに関連付けられているプリント冷却ファンの数です。デフォルト値は0(ゼロ)です。各エクストルーダーに対してプリント冷却ファンが異なる場合にのみ変更します。" #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/ja_JP/fdmprinter.def.json.po b/resources/i18n/ja_JP/fdmprinter.def.json.po index 72053ac7ac..3156e77288 100644 --- a/resources/i18n/ja_JP/fdmprinter.def.json.po +++ b/resources/i18n/ja_JP/fdmprinter.def.json.po @@ -61,9 +61,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"最初に実行するG-codeコマンドは、\n" -"で区切ります。" +msgstr "最初に実行するG-codeコマンドは、\nで区切ります。" #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -75,9 +73,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"最後に実行するG-codeコマンドは、\n" -"で区切ります。" +msgstr "最後に実行するG-codeコマンドは、\nで区切ります。" #: fdmprinter.def.json msgctxt "material_guid label" @@ -1123,7 +1119,7 @@ msgstr "上層/底層ポリゴンに接合" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "互いに次に実行する上層/底層スキンパスに接合します。同心円のパターンの場合、この設定を有効にすることにより、移動時間が短縮されますが、インフィルまでの途中で接合があるため、この機能で上層面の品質が損なわれることがあります。" #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1326,9 +1322,7 @@ msgstr "ZシームX" #: fdmprinter.def.json msgctxt "z_seam_x description" msgid "The X coordinate of the position near where to start printing each part in a layer." -msgstr "" -"レイヤー内の各印刷を開始するX座\n" -"標の位置。" +msgstr "レイヤー内の各印刷を開始するX座\n標の位置。" #: fdmprinter.def.json msgctxt "z_seam_y label" @@ -1569,7 +1563,7 @@ msgstr "インフィルパターン" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "印刷用インフィル材料のパターン。代替層のラインとジグザグの面詰めスワップ方向、材料コストを削減します。グリッド、トライアングル、トライ六角、キュービック、オクテット、クォーターキュービック、クロスと同心円のパターンは、すべてのレイヤーを完全に印刷されます。ジャイロイド、キュービック、クォーターキュービック、オクテットのインフィルは、各レイヤーを変更して各方向の強度をより均等な分布にします。" #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1637,7 +1631,7 @@ msgstr "3Dクロス" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "ジャイロイド" # msgstr "クロス3D" #: fdmprinter.def.json @@ -1711,9 +1705,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"インフィルエリア周辺に外壁を追加します。このような壁は、上層/底層ラインにたるみを作ります。つまり、一部の外壁材料の費用で同じ品質を実現するためには、必要な上層/底層スキンが少ないことを意味します。\n" -"この機能は、インフィルポリゴン接合と組み合わせて、構成が正しい場合、移動または引き戻しが必要なく、すべてのインフィルを1つの押出経路に接続することができます。" +msgstr "インフィルエリア周辺に外壁を追加します。このような壁は、上層/底層ラインにたるみを作ります。つまり、一部の外壁材料の費用で同じ品質を実現するためには、必要な上層/底層スキンが少ないことを意味します。\nこの機能は、インフィルポリゴン接合と組み合わせて、構成が正しい場合、移動または引き戻しが必要なく、すべてのインフィルを1つの押出経路に接続することができます。" #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1816,9 +1808,7 @@ msgstr "インフィル優先" #: fdmprinter.def.json msgctxt "infill_before_walls description" msgid "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface." -msgstr "" -"壁より前にインフィルをプリントします はじめに壁をプリントするとより精密な壁になりますが、オーバーハングのプリントは悪化します\n" -"はじめにインフィルをプリントすると丈夫な壁になりますが、インフィルの模様が時折表面から透けて表れます。" +msgstr "壁より前にインフィルをプリントします はじめに壁をプリントするとより精密な壁になりますが、オーバーハングのプリントは悪化します\nはじめにインフィルをプリントすると丈夫な壁になりますが、インフィルの模様が時折表面から透けて表れます。" #: fdmprinter.def.json msgctxt "min_infill_area label" @@ -3374,32 +3364,32 @@ msgstr "対応するインフィルラインの向きです。サポートイン #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "サポートブリムを有効にする" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "最初の層のインフィルエリア内ブリムを生成します。このブリムは、サポートの周囲ではなく、サポートの下に印刷されます。この設定を有効にすると、サポートのビルドプレートへの吸着性が高まります。" #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "サポートブリムの幅" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "サポートの下に印刷されるブリムの幅。ブリムが大きいほど、追加材料の費用でビルドプレートへの接着性が強化されます。" #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "サポートブリムのライン数" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "サポートブリムに使用される線の数。ブリムの線数を増やすと、追加材料の費用でビルドプレートへの接着性が強化されます。" #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3964,9 +3954,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"スカートと印刷の最初の層の間の水平距離。\n" -"これは最小距離です。複数のスカートラインがこの距離から外側に展開されます。" +msgstr "スカートと印刷の最初の層の間の水平距離。\nこれは最小距離です。複数のスカートラインがこの距離から外側に展開されます。" #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -4001,12 +3989,12 @@ msgstr "ブリムに使用される線数。ブリムの線数は、ビルドプ #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "ブリム交換サポート" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "スペースがサポートで埋まっている場合でも、モデルの周辺にブリムを印刷します。これにより、サポートの最初の層の一部のエリアがブリムになります。" #: fdmprinter.def.json msgctxt "brim_outside_only label" diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index ee93088df1..3e7980efb5 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -49,7 +49,7 @@ msgstr "GCodeWriter는 텍스트가 아닌 모드는 지원하지 않습니다." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "내보내기 전에 G-code를 준비하십시오." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    하나 이상의 3D 모델이 모델 크기 및 재료 구성으로 인해 최적의 상태로 인쇄되지 않을 수 있습니다.

    \n" -"

    {model_names}

    \n" -"

    인쇄 품질 및 안정성을 최고로 높이는 방법을 알아보십시오.

    \n" -"

    인쇄 품질 가이드 보기

    " +msgstr "

    하나 이상의 3D 모델이 모델 크기 및 재료 구성으로 인해 최적의 상태로 인쇄되지 않을 수 있습니다.

    \n

    {model_names}

    \n

    인쇄 품질 및 안정성을 최고로 높이는 방법을 알아보십시오.

    \n

    인쇄 품질 가이드 보기

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "변경 내역 표시" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "펌웨어 업데이트" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -822,7 +818,7 @@ msgstr "미리 슬라이싱한 파일 {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "로그인 실패" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -896,32 +892,32 @@ msgstr "{0}: {1} 에서 프로파일을 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "{0}(으)로 가져올 사용자 정의 프로파일이 없습니다" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "{0}에서 프로파일을 가져오지 못했습니다" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "프로파일 {0}에는 정확하지 않은 데이터가 포함되어 있으므로, 불러올 수 없습니다." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "The machine defined in profile {0} ({1}) doesn’t match with your current machine ({2}), could not import it." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "{0}에서 프로파일을 가져오지 못했습니다" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1073,12 +1069,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    죄송합니다, Ultimaker Cura가 정상적이지 않습니다. \n" -"                    

    시작할 때 복구 할 수없는 오류가 발생했습니다. 이 오류는 잘못된 구성 파일로 인해 발생할 수 있습니다. 설정을 백업하고 재설정하는 것이 좋습니다. \n" -"                    

    백업은 설정 폴더에서 찾을 수 있습니다. \n" -"                    

    문제를 해결하기 위해이 오류 보고서를 보내주십시오. \n" -" " +msgstr "

    죄송합니다, Ultimaker Cura가 정상적이지 않습니다. \n                    

    시작할 때 복구 할 수없는 오류가 발생했습니다. 이 오류는 잘못된 구성 파일로 인해 발생할 수 있습니다. 설정을 백업하고 재설정하는 것이 좋습니다. \n                    

    백업은 설정 폴더에서 찾을 수 있습니다. \n                    

    문제를 해결하기 위해이 오류 보고서를 보내주십시오. \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1111,10 +1102,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    치명적인 오류가 발생했습니다. 문제를 해결할 수 있도록 이 충돌 보고서를 보내주십시오

    \n" -"

    \"보고서 전송\" 버튼을 사용하면 버그 보고서가 서버에 자동으로 전달됩니다

    \n" -" " +msgstr "

    치명적인 오류가 발생했습니다. 문제를 해결할 수 있도록 이 충돌 보고서를 보내주십시오

    \n

    \"보고서 전송\" 버튼을 사용하면 버그 보고서가 서버에 자동으로 전달됩니다

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1408,7 +1396,7 @@ msgstr "노즐 오프셋 Y" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "냉각 팬 번호" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1512,7 +1500,7 @@ msgstr "뒤로" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "제거 확인" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1590,10 +1578,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"이 플러그인에는 라이선스가 포함되어 있습니다.\n" -"이 플러그인을 설치하려면 이 라이선스를 수락해야 합니다.\n" -"아래의 약관에 동의하시겠습니까?" +msgstr "이 플러그인에는 라이선스가 포함되어 있습니다.\n이 플러그인을 설치하려면 이 라이선스를 수락해야 합니다.\n아래의 약관에 동의하시겠습니까?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1655,7 +1640,7 @@ msgstr "닫기" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "펌웨어 업데이트" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1680,12 +1665,12 @@ msgstr "사용자 정의 펌웨어 업로드" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "프린터와 연결되지 않아 펌웨어를 업데이트할 수 없습니다." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "프린터와 연결이 펌웨어 업그레이드를 지원하지 않아 펌웨어를 업데이트할 수 없습니다." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1753,10 +1738,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"네트워크를 통해 프린터로 직접 프린팅하려면 네트워크 케이블을 사용하거나 프린터를 WIFI 네트워크에 연결하여 프린터가 네트워크에 연결되어 있는지 확인하십시오. Cura를 프린터에 연결하지 않은 경우에도 USB 드라이브를 사용하여 g 코드 파일을 프린터로 전송할 수 있습니다\n" -"\n" -"아래 목록에서 프린터를 선택하십시오:" +msgstr "네트워크를 통해 프린터로 직접 프린팅하려면 네트워크 케이블을 사용하거나 프린터를 WIFI 네트워크에 연결하여 프린터가 네트워크에 연결되어 있는지 확인하십시오. Cura를 프린터에 연결하지 않은 경우에도 USB 드라이브를 사용하여 g 코드 파일을 프린터로 전송할 수 있습니다\n\n아래 목록에서 프린터를 선택하십시오:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1920,62 +1902,62 @@ msgstr "대기: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "구성 변경" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "할당된 프린터 %1의 구성을 다음과 같이 변경해야 합니다." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "프린터 %1이(가) 할당되었으나 작업에 알 수 없는 재료 구성이 포함되어 있습니다." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "재료 %1을(를) %2에서 %3(으)로 변경합니다." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "%3을(를) 재료 %1(으)로 로드합니다(이 작업은 무효화할 수 없음)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "PrintCore %1을(를) %2에서 %3(으)로 변경합니다." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "빌드 플레이트를 %1(으)로 변경합니다(이 작업은 무효화할 수 없음)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "무시하기" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "호환되지 않는 구성이 있는 인쇄 작업을 시작하면 3D 프린터가 손상될 수 있습니다. 구성을 재정의하고 %1을(를) 인쇄하시겠습니까?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "구성 재정의 및 인쇄 시작" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "유리" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "알루미늄" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2662,9 +2644,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"일부 프로파일 설정을 수정했습니다.\n" -"이러한 설정을 유지하거나 삭제 하시겠습니까?" +msgstr "일부 프로파일 설정을 수정했습니다.\n이러한 설정을 유지하거나 삭제 하시겠습니까?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3366,9 +3346,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura는 커뮤니티와 공동으로 Ultimaker B.V.에 의해 개발되었습니다.\n" -"Cura는 다음의 오픈 소스 프로젝트를 사용합니다:" +msgstr "Cura는 커뮤니티와 공동으로 Ultimaker B.V.에 의해 개발되었습니다.\nCura는 다음의 오픈 소스 프로젝트를 사용합니다:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3433,17 +3411,17 @@ msgstr "STL 파일 처리를 위한 라이브러리" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "평면 개체 처리를 위한 지원 라이브러리" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "삼각형 메쉬 처리를 위한 지원 라이브러리" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "복잡한 네트워크 분석을 위한 지원 라이브러리" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3453,7 +3431,7 @@ msgstr "3MF 파일 처리를 위한 라이브러리" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "파일 메타데이터 및 스트리밍을 위한 지원 라이브러리" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3501,10 +3479,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"일부 설정/대체 값은 프로파일에 저장된 값과 다릅니다.\n" -"\n" -"프로파일 매니저를 열려면 클릭하십시오." +msgstr "일부 설정/대체 값은 프로파일에 저장된 값과 다릅니다.\n\n프로파일 매니저를 열려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3558,10 +3533,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"일부 숨겨진 설정은 일반적인 계산 값과 다른 값을 사용합니다.\n" -"\n" -"이 설정을 표시하려면 클릭하십시오." +msgstr "일부 숨겨진 설정은 일반적인 계산 값과 다른 값을 사용합니다.\n\n이 설정을 표시하려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3589,10 +3561,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"이 설정에는 프로파일과 다른 값이 있습니다.\n" -"\n" -"프로파일 값을 복원하려면 클릭하십시오." +msgstr "이 설정에는 프로파일과 다른 값이 있습니다.\n\n프로파일 값을 복원하려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3600,10 +3569,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"이 설정은 일반적으로 계산되지만 현재는 절대 값이 설정되어 있습니다.\n" -"\n" -"계산 된 값을 복원하려면 클릭하십시오." +msgstr "이 설정은 일반적으로 계산되지만 현재는 절대 값이 설정되어 있습니다.\n\n계산 된 값을 복원하려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3826,9 +3792,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"프린팅 설정 사용 안 함\n" -"G-코드 파일은 수정할 수 없습니다" +msgstr "프린팅 설정 사용 안 함\nG-코드 파일은 수정할 수 없습니다" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4598,12 +4562,12 @@ msgstr "변경 내역" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "펌웨어 업데이트를 위한 기계 동작을 제공합니다." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "펌웨어 업데이터" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/ko_KR/fdmextruder.def.json.po b/resources/i18n/ko_KR/fdmextruder.def.json.po index cef9d4ba3d..bbfe9429fb 100644 --- a/resources/i18n/ko_KR/fdmextruder.def.json.po +++ b/resources/i18n/ko_KR/fdmextruder.def.json.po @@ -171,12 +171,12 @@ msgstr "프린팅이 시작될 때 노즐이 시작하는 위치의 Z 좌표입 #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "익스트루더 프린팅 냉각 팬" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "이 익스트루더와 관련된 프린팅 냉각 팬의 개수. 각 익스트루더마다 다른 프린팅 냉각 팬이 있을 때만 기본값 0에서 변경하십시오." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/ko_KR/fdmprinter.def.json.po b/resources/i18n/ko_KR/fdmprinter.def.json.po index 72a8b763f0..37392395ef 100644 --- a/resources/i18n/ko_KR/fdmprinter.def.json.po +++ b/resources/i18n/ko_KR/fdmprinter.def.json.po @@ -58,9 +58,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"시작과 동시에형실행될 G 코드 명령어 \n" -"." +msgstr "시작과 동시에형실행될 G 코드 명령어 \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +70,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"맨 마지막에 실행될 G 코드 명령 \n" -"." +msgstr "맨 마지막에 실행될 G 코드 명령 \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1079,7 +1075,7 @@ msgstr "상단/하단 다각형 연결" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "스킨 경로가 나란히 이어지는 상단/하단 스킨 경로를 연결합니다. 동심원 패턴의 경우 이 설정을 사용하면 이동 시간이 크게 감소하지만, 내부채움의 중간에 연결될 수 있기 때문에 이 기능은 상단 표면 품질을 저하시킬 수 있습니다." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1499,7 +1495,7 @@ msgstr "내부채움 패턴" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "프린트 충진 재료의 패턴입니다. 선과 갈지자형 충진이 레이어를 하나 걸러서 방향을 바꾸므로 재료비가 절감됩니다. 격자, 삼각형, 삼육각형, 입방체, 옥텟, 4분 입방체, 십자, 동심원 패턴이 레이어마다 완전히 인쇄됩니다. 자이로이드, 입방체, 4분 입방체, 옥텟 충진이 레이어마다 변경되므로 각 방향으로 힘이 더 균등하게 분산됩니다." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1564,7 +1560,7 @@ msgstr "십자형 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "자이로이드" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1636,9 +1632,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"내부채움 영역 주변에 여분의 벽을 추가합니다. 이러한 벽은 상단/하단 스킨 라인이 늘어지는 것을 줄여줄 수 있습니다. 일부 여분 재료를 사용해도 같은 품질을 유지하는 데 필요한 필요한 상단/하단 스킨 층이 감소한다는 의미입니다.\n" -"이 기능을 올바르게 구성하는 경우 내부채움 다각형 연결과 함께 사용해 이동 또는 리트랙션없이 모든 내부채움을 단일 돌출 경로에 연결할 수 있습니다." +msgstr "내부채움 영역 주변에 여분의 벽을 추가합니다. 이러한 벽은 상단/하단 스킨 라인이 늘어지는 것을 줄여줄 수 있습니다. 일부 여분 재료를 사용해도 같은 품질을 유지하는 데 필요한 필요한 상단/하단 스킨 층이 감소한다는 의미입니다.\n이 기능을 올바르게 구성하는 경우 내부채움 다각형 연결과 함께 사용해 이동 또는 리트랙션없이 모든 내부채움을 단일 돌출 경로에 연결할 수 있습니다." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3273,32 +3267,32 @@ msgstr "서포트에 대한 내부채움 패턴 방향. 서포트 내부채움 #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "서포트 브림 사용" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "첫 번째 레이어의 서포트 내부채움 영역 내에서 브림을 생성합니다. 이 브림은 서포트 주변이 아니라 아래에 인쇄됩니다. 이 설정을 사용하면 빌드 플레이트에 대한 서포트력이 향상됩니다." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "서포트 브림 폭" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "서포트 아래를 인쇄하기 위한 브림 폭. 브림이 커질수록 추가 재료가 소요되지만 빌드 플레이트에 대한 접착력이 향상됩니다." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "서포트 브림 라인 수" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "서포트 브림에 사용되는 라인의 수. 브림 라인이 많아질수록 추가 재료가 소요되지만 빌드 플레이트에 대한 접착력이 향상됩니다." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3835,9 +3829,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"프린트의 스커트와 첫 번째 레이어 사이의 수평 거리입니다.\n" -"이것은 최소 거리입니다. 여러 개의 스커트 선이 이 거리에서 바깥쪽으로 연장됩니다." +msgstr "프린트의 스커트와 첫 번째 레이어 사이의 수평 거리입니다.\n이것은 최소 거리입니다. 여러 개의 스커트 선이 이 거리에서 바깥쪽으로 연장됩니다." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3872,12 +3864,12 @@ msgstr "브림에 사용되는 선의 수입니다. 더 많은 브림 선이 빌 #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "브림이 서포트 대체" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "서포트가 차지할 공간이더라도 모델 주변에 브림이 인쇄되도록 합니다. 이렇게 하면 서포트의 첫 번째 레이어 영역 일부가 브림 영역으로 대체됩니다." #: fdmprinter.def.json msgctxt "brim_outside_only label" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index ed0d045cd5..b2e4aa4086 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -47,7 +47,7 @@ msgstr "GCodeWriter ondersteunt geen non-tekstmodus." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Bereid voorafgaand aan het exporteren G-code voor." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -62,11 +62,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    Een of meer 3D-modellen worden mogelijk niet optimaal geprint vanwege het modelformaat en de materiaalconfiguratie:

    \n" -"

    {model_names}

    \n" -"

    Ontdek hoe u de best mogelijke printkwaliteit en betrouwbaarheid verkrijgt.

    \n" -"

    Handleiding printkwaliteit bekijken

    " +msgstr "

    Een of meer 3D-modellen worden mogelijk niet optimaal geprint vanwege het modelformaat en de materiaalconfiguratie:

    \n

    {model_names}

    \n

    Ontdek hoe u de best mogelijke printkwaliteit en betrouwbaarheid verkrijgt.

    \n

    Handleiding printkwaliteit bekijken

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -76,7 +72,7 @@ msgstr "Wijzigingenlogboek Weergeven" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Firmware bijwerken" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -820,7 +816,7 @@ msgstr "Vooraf geslicet bestand {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Inloggen mislukt" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -894,32 +890,32 @@ msgstr "Kan het profiel niet importeren uit {0}: { #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "Er is geen aangepast profiel om in het bestand {0} te importeren" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Kan het profiel niet importeren uit {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Dit profiel {0} bevat incorrecte gegevens. Kan het profiel niet importeren." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "De machine die is vastgelegd in het profiel {0} ({1}), komt niet overeen met uw huidige machine ({2}). Kan het profiel niet importeren." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Kan het profiel niet importeren uit {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1071,12 +1067,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    Oeps, Ultimaker Cura heeft een probleem gedetecteerd.

    \n" -"

    Tijdens het opstarten is een onherstelbare fout opgetreden. Deze fout is mogelijk veroorzaakt door enkele onjuiste configuratiebestanden. Het wordt aanbevolen een back-up te maken en de standaardinstelling van uw configuratie te herstellen.

    \n" -"

    Back-ups bevinden zich in de configuratiemap.

    \n" -"

    Stuur ons dit crashrapport om het probleem op te lossen.

    \n" -" " +msgstr "

    Oeps, Ultimaker Cura heeft een probleem gedetecteerd.

    \n

    Tijdens het opstarten is een onherstelbare fout opgetreden. Deze fout is mogelijk veroorzaakt door enkele onjuiste configuratiebestanden. Het wordt aanbevolen een back-up te maken en de standaardinstelling van uw configuratie te herstellen.

    \n

    Back-ups bevinden zich in de configuratiemap.

    \n

    Stuur ons dit crashrapport om het probleem op te lossen.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1109,10 +1100,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Er is een fatale fout opgetreden in Cura. Stuur ons het crashrapport om het probleem op te lossen

    \n" -"

    Druk op de knop \"Rapport verzenden\" om het foutenrapport automatisch naar onze servers te verzenden

    \n" -" " +msgstr "

    Er is een fatale fout opgetreden in Cura. Stuur ons het crashrapport om het probleem op te lossen

    \n

    Druk op de knop \"Rapport verzenden\" om het foutenrapport automatisch naar onze servers te verzenden

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1406,7 +1394,7 @@ msgstr "Nozzle-offset Y" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Nummer van koelventilator" # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER @@ -1525,7 +1513,7 @@ msgstr "Terug" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "De-installeren bevestigen" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1603,10 +1591,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Deze invoegtoepassing bevat een licentie.\n" -"U moet akkoord gaan met deze licentie om deze invoegtoepassing te mogen installeren.\n" -"Gaat u akkoord met de onderstaande voorwaarden?" +msgstr "Deze invoegtoepassing bevat een licentie.\nU moet akkoord gaan met deze licentie om deze invoegtoepassing te mogen installeren.\nGaat u akkoord met de onderstaande voorwaarden?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1668,7 +1653,7 @@ msgstr "Sluiten" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Firmware bijwerken" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1693,12 +1678,12 @@ msgstr "Aangepaste Firmware Uploaden" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "Kan de firmware niet bijwerken omdat er geen verbinding met de printer is." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "Kan de firmware niet bijwerken omdat de verbinding met de printer geen ondersteuning biedt voor het uitvoeren van een firmware-upgrade." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1766,10 +1751,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Als u rechtstreeks via het netwerk wilt printen naar de printer, moet u ervoor zorgen dat de printer met een netwerkkabel is verbonden met het netwerk of moet u verbinding maken met de printer via het wifi-netwerk. Als u geen verbinding maakt tussen Cura en de printer, kunt u een USB-station gebruiken om g-code-bestanden naar de printer over te zetten.\n" -"\n" -"Selecteer uw printer in de onderstaande lijst:" +msgstr "Als u rechtstreeks via het netwerk wilt printen naar de printer, moet u ervoor zorgen dat de printer met een netwerkkabel is verbonden met het netwerk of moet u verbinding maken met de printer via het wifi-netwerk. Als u geen verbinding maakt tussen Cura en de printer, kunt u een USB-station gebruiken om g-code-bestanden naar de printer over te zetten.\n\nSelecteer uw printer in de onderstaande lijst:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1933,62 +1915,62 @@ msgstr "Wachten op: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Configuratiewijziging" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "Voor de toegewezen printer, 1%, is/zijn de volgende configuratiewijziging/configuratiewijzigingen vereist:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "De printer 1% is toegewezen. De taak bevat echter een onbekende materiaalconfiguratie." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Wijzig het materiaal %1 van %2 in %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "Laad %3 als materiaal %1 (kan niet worden overschreven)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Wijzig de print core %1 van %2 in %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Wijzig het platform naar %1 (kan niet worden overschreven)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Overschrijven" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Als u een printtaak met een incompatibele configuratie start, kan dit leiden tot schade aan de 3D-printer. Weet u zeker dat u de configuratie en print %1 wilt overschrijven?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Configuratie overschrijven en printen starten" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Glas" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Aluminium" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2677,9 +2659,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"U hebt enkele profielinstellingen aangepast.\n" -"Wilt u deze instellingen behouden of verwijderen?" +msgstr "U hebt enkele profielinstellingen aangepast.\nWilt u deze instellingen behouden of verwijderen?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3381,9 +3361,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura is ontwikkeld door Ultimaker B.V. in samenwerking met de community.\n" -"Cura maakt met trots gebruik van de volgende opensourceprojecten:" +msgstr "Cura is ontwikkeld door Ultimaker B.V. in samenwerking met de community.\nCura maakt met trots gebruik van de volgende opensourceprojecten:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3448,17 +3426,17 @@ msgstr "Ondersteuningsbibliotheek voor het verwerken van STL-bestanden" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Ondersteuningsbibliotheek voor het verwerken van tweedimensionale objecten" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Ondersteuningsbibliotheek voor het verwerken van driehoekig rasters" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Ondersteuningsbibliotheek voor de analyse van complexe netwerken" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3468,7 +3446,7 @@ msgstr "Ondersteuningsbibliotheek voor het verwerken van 3MF-bestanden" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Ondersteuningsbibliotheek voor bestandsmetadata en streaming" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3516,10 +3494,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Sommige waarden of aanpassingen van instellingen zijn anders dan de waarden die in het profiel zijn opgeslagen.\n" -"\n" -"Klik om het profielbeheer te openen." +msgstr "Sommige waarden of aanpassingen van instellingen zijn anders dan de waarden die in het profiel zijn opgeslagen.\n\nKlik om het profielbeheer te openen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3573,10 +3548,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Een aantal verborgen instellingen gebruiken andere waarden dan hun normale berekende waarde.\n" -"\n" -"Klik om deze instellingen zichtbaar te maken." +msgstr "Een aantal verborgen instellingen gebruiken andere waarden dan hun normale berekende waarde.\n\nKlik om deze instellingen zichtbaar te maken." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3604,10 +3576,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Deze instelling heeft een andere waarde dan in het profiel.\n" -"\n" -"Klik om de waarde van het profiel te herstellen." +msgstr "Deze instelling heeft een andere waarde dan in het profiel.\n\nKlik om de waarde van het profiel te herstellen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3615,10 +3584,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Deze instelling wordt normaliter berekend, maar is nu ingesteld op een absolute waarde.\n" -"\n" -"Klik om de berekende waarde te herstellen." +msgstr "Deze instelling wordt normaliter berekend, maar is nu ingesteld op een absolute waarde.\n\nKlik om de berekende waarde te herstellen." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3843,9 +3809,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Instelling voor printen uitgeschakeld\n" -"G-code-bestanden kunnen niet worden aangepast" +msgstr "Instelling voor printen uitgeschakeld\nG-code-bestanden kunnen niet worden aangepast" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4619,12 +4583,12 @@ msgstr "Wijzigingenlogboek" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Biedt machineacties voor het bijwerken van de firmware." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Firmware-updater" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/nl_NL/fdmextruder.def.json.po b/resources/i18n/nl_NL/fdmextruder.def.json.po index 9fbf5e269a..9dfe5e859e 100644 --- a/resources/i18n/nl_NL/fdmextruder.def.json.po +++ b/resources/i18n/nl_NL/fdmextruder.def.json.po @@ -169,12 +169,12 @@ msgstr "De Z-coördinaat van de positie waar filament in de nozzle wordt terugge #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Printkoelventilator van extruder" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "Het nummer van de bij deze extruder behorende printkoelventilator. Verander de standaardwaarde 0 alleen als u voor elke extruder een andere printkoelventilator hebt." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/nl_NL/fdmprinter.def.json.po b/resources/i18n/nl_NL/fdmprinter.def.json.po index 8ebbaee3d6..844e97d189 100644 --- a/resources/i18n/nl_NL/fdmprinter.def.json.po +++ b/resources/i18n/nl_NL/fdmprinter.def.json.po @@ -56,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"G-code-opdrachten die aan het begin worden uitgevoerd, gescheiden door \n" -"." +msgstr "G-code-opdrachten die aan het begin worden uitgevoerd, gescheiden door \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -70,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"G-code-opdrachten die aan het eind worden uitgevoerd, gescheiden door \n" -"." +msgstr "G-code-opdrachten die aan het eind worden uitgevoerd, gescheiden door \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1077,7 +1073,7 @@ msgstr "Boven-/onderkant Polygonen Verbinden" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Verbind skinpaden aan de boven-/onderkant waar ze naast elkaar lopen. Met deze instelling wordt bij concentrische patronen de bewegingstijd aanzienlijk verkort. Dit kan echter ten koste gaan van de kwaliteit van de bovenste laag aangezien de verbindingen in het midden van de vulling kunnen komen te liggen." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1497,7 +1493,7 @@ msgstr "Vulpatroon" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "Het patroon van het vulmateriaal van de print. De lijn- en zigzagvulling veranderen per vullaag van richting, waardoor wordt bespaard op materiaalkosten. De raster-, driehoeks-, tri-hexagonale, kubische, achtvlaks-, afgeknotte kubus-, kruis- en concentrische patronen worden elke laag volledig geprint. Gyroïde, kubische, afgeknotte kubus- en achtvlaksvullingen veranderen elke laag voor een meer gelijke krachtverdeling in elke richting." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1562,7 +1558,7 @@ msgstr "Kruis 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Gyroïde" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1634,9 +1630,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Voeg extra wanden toe rondom de vulling. Deze wanden kunnen ervoor zorgen dat de skin aan de boven-/onderkant minder doorzakt. Dit betekent dat u met alleen wat extra materiaal voor dezelfde kwaliteit minder skinlagen aan de boven-/onderkant nodig hebt.\n" -"Deze optie kan in combinatie met de optie 'Polygonen voor de vulling verbinden' worden gebruikt om alle vulling in één doorvoerpad te verbinden zonder extra bewegingen of intrekkingen, mits correct ingesteld." +msgstr "Voeg extra wanden toe rondom de vulling. Deze wanden kunnen ervoor zorgen dat de skin aan de boven-/onderkant minder doorzakt. Dit betekent dat u met alleen wat extra materiaal voor dezelfde kwaliteit minder skinlagen aan de boven-/onderkant nodig hebt.\nDeze optie kan in combinatie met de optie 'Polygonen voor de vulling verbinden' worden gebruikt om alle vulling in één doorvoerpad te verbinden zonder extra bewegingen of intrekkingen, mits correct ingesteld." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3271,32 +3265,32 @@ msgstr "Richting van het vulpatroon voor supportstructuren. Het vulpatroon voor #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Supportbrim inschakelen" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Genereer een brim binnen de supportvulgebieden van de eerste laag. Deze brim wordt niet rondom maar onder de supportstructuur geprint. Als u deze instelling inschakelt, hecht de supportstructuur beter aan het platform." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Lijnbreedte supportbrim" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "De breedte van de brim die onder de support wordt geprint. Een bredere brim kost meer materiaal, maar hecht beter aan het platform." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Aantal supportbrimlijnen" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Het aantal lijnen dat voor de supportbrim wordt gebruikt. Meer brimlijnen zorgen voor betere hechting aan het platform, maar kosten wat extra materiaal." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3833,9 +3827,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"De horizontale afstand tussen de skirt en de eerste laag van de print.\n" -"Dit is de minimumafstand. Als u meerdere skirtlijnen print, worden deze vanaf deze afstand naar buiten geprint." +msgstr "De horizontale afstand tussen de skirt en de eerste laag van de print.\nDit is de minimumafstand. Als u meerdere skirtlijnen print, worden deze vanaf deze afstand naar buiten geprint." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3870,12 +3862,12 @@ msgstr "Het aantal lijnen dat voor een brim wordt gebruikt. Meer lijnen zorgen v #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Brim vervangt supportstructuur" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Dwing af dat de brim rond het model wordt geprint, zelfs als deze ruimte anders door supportstructuur zou worden ingenomen. Hierdoor worden enkele gebieden van de eerste supportlaag vervangen door brimgebieden." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5282,9 +5274,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"De afstand van een opwaartse beweging waarbij de doorvoersnelheid wordt gehalveerd.\n" -"Hierdoor ontstaat een betere hechting aan voorgaande lagen, zonder dat het materiaal in die lagen te zeer wordt verwarmd. Alleen van toepassing op Draadprinten." +msgstr "De afstand van een opwaartse beweging waarbij de doorvoersnelheid wordt gehalveerd.\nHierdoor ontstaat een betere hechting aan voorgaande lagen, zonder dat het materiaal in die lagen te zeer wordt verwarmd. Alleen van toepassing op Draadprinten." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po index 14e7e89801..bcfa154d11 100644 --- a/resources/i18n/pt_PT/cura.po +++ b/resources/i18n/pt_PT/cura.po @@ -49,7 +49,7 @@ msgstr "O GCodeWriter não suporta modo sem texto." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Prepare um G-code antes de exportar." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -65,11 +65,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    Um, ou mais, dos modelos 3D podem ter menos qualidade de impressão devido à dimensão do modelo 3D e definição de material:

    \n" -"

    {model_names}

    \n" -"

    Descubra como assegurar a melhor qualidade e fiabilidade possível da impressão.

    \n" -"

    Ver o guia de qualidade da impressão

    " +msgstr "

    Um, ou mais, dos modelos 3D podem ter menos qualidade de impressão devido à dimensão do modelo 3D e definição de material:

    \n

    {model_names}

    \n

    Descubra como assegurar a melhor qualidade e fiabilidade possível da impressão.

    \n

    Ver o guia de qualidade da impressão

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -79,7 +75,7 @@ msgstr "Mostrar Lista das Alterações de cada Versão" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Atualizar firmware" # rever! # flatten -ver contexto! @@ -846,7 +842,7 @@ msgstr "Ficheiro pré-seccionado {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Falha no início de sessão" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -920,32 +916,32 @@ msgstr "Falha ao importar perfil de {0}: {1}!" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "Nenhum perfil personalizado para importar no ficheiro {0}" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Falha ao importar perfil de {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "O perfil {0} contém dados incorretos, não foi possível importá-lo." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "A máquina definida no perfil {0} ({1}) não corresponde à sua máquina atual ({2}), não foi possível importá-la." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Falha ao importar perfil de {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1100,12 +1096,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    Ups, o Ultimaker Cura encontrou um possível problema.

    \n" -"

    Foi encontrado um erro irrecuperável durante o arranque da aplicação. Este pode ter sido causado por alguns ficheiros de configuração incorrectos. Sugerimos que faça um backup e reponha a sua configuração.

    \n" -"

    Os backups estão localizados na pasta de configuração.

    \n" -"

    Por favor envie-nos este Relatório de Falhas para podermos resolver o problema.

    \n" -" " +msgstr "

    Ups, o Ultimaker Cura encontrou um possível problema.

    \n

    Foi encontrado um erro irrecuperável durante o arranque da aplicação. Este pode ter sido causado por alguns ficheiros de configuração incorrectos. Sugerimos que faça um backup e reponha a sua configuração.

    \n

    Os backups estão localizados na pasta de configuração.

    \n

    Por favor envie-nos este Relatório de Falhas para podermos resolver o problema.

    \n " # rever! # button size? @@ -1140,10 +1131,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Ocorreu um erro fatal no Cura. Por favor envie-nos este Relatório de Falhas para podermos resolver o problema

    \n" -"

    Por favor utilize o botão \"Enviar relatório\" para publicar um relatório de erros automaticamente nos nossos servidores

    \n" -" " +msgstr "

    Ocorreu um erro fatal no Cura. Por favor envie-nos este Relatório de Falhas para podermos resolver o problema

    \n

    Por favor utilize o botão \"Enviar relatório\" para publicar um relatório de erros automaticamente nos nossos servidores

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1439,7 +1427,7 @@ msgstr "Desvio Y do Nozzle" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Número de ventoinha de arrefecimento" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1543,7 +1531,7 @@ msgstr "Anterior" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Confirmar desinstalação" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1621,10 +1609,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Este plug-in contém uma licença.\n" -"É necessário aceitar esta licença para instalar o plug-in.\n" -"Concorda com os termos abaixo?" +msgstr "Este plug-in contém uma licença.\nÉ necessário aceitar esta licença para instalar o plug-in.\nConcorda com os termos abaixo?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1686,7 +1671,7 @@ msgstr "Fechar" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Atualizar firmware" # rever! #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 @@ -1712,12 +1697,12 @@ msgstr "Carregar firmware personalizado" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "O firmware não pode ser atualizado por não existir ligação com a impressora." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "O firmware não pode ser atualizado porque a ligação com a impressora não suporta a atualização de firmware." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1785,10 +1770,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Para imprimir diretamente para a sua impressora através da rede, certifique-se de que a sua impressora está ligada à rede por meio de um cabo de rede ou através de ligação à rede Wi-Fi. Se não ligar o Cura por rede à impressora, poderá ainda assim utilizar uma unidade USB para transferir ficheiros g-code para a impressora.\n" -"\n" -"Selecione a sua impressora na lista em baixo:" +msgstr "Para imprimir diretamente para a sua impressora através da rede, certifique-se de que a sua impressora está ligada à rede por meio de um cabo de rede ou através de ligação à rede Wi-Fi. Se não ligar o Cura por rede à impressora, poderá ainda assim utilizar uma unidade USB para transferir ficheiros g-code para a impressora.\n\nSelecione a sua impressora na lista em baixo:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1954,62 +1936,62 @@ msgstr "A aguardar: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Configuração alterada" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "A impressora atribuída %1 requer as seguintes alterações de configuração:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "A impressora %1 está atribuída, mas o trabalho tem uma configuração de material desconhecida." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Alterar o material %1 de %2 para %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "Carregar %3 como material %1 (isto não pode ser substituído)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Substituir o núcleo de impressão %1 de %2 para %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Alterar placa de construção para %1 (isto não pode ser substituído)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Ignorar" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Iniciar um trabalho de impressão com uma configuração incompatível pode danificar a impressora 3D. Tem a certeza de que pretende ignorar a configuração e imprimir %1?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Ignorar configuração e iniciar impressão" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Vidro" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Alumínio" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2714,9 +2696,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Alterou algumas das definições do perfil.\n" -"Gostaria de manter ou descartar essas alterações?" +msgstr "Alterou algumas das definições do perfil.\nGostaria de manter ou descartar essas alterações?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3422,9 +3402,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"O Cura foi desenvolvido pela Ultimaker B.V. em colaboração com a comunidade.\n" -"O Cura tem o prazer de utilizar os seguintes projetos open source:" +msgstr "O Cura foi desenvolvido pela Ultimaker B.V. em colaboração com a comunidade.\nO Cura tem o prazer de utilizar os seguintes projetos open source:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3491,17 +3469,17 @@ msgstr "Biblioteca de apoio para processamento de ficheiros STL" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Biblioteca de apoio para processamento de objetos planos" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Biblioteca de apoio para processamento de malhas triangulares" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Biblioteca de apoio para análise de redes complexas" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3511,7 +3489,7 @@ msgstr "Biblioteca de apoio para processamento de ficheiros 3MF" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Biblioteca de apoio para transmissões de fluxo e metadados de ficheiros" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3560,10 +3538,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Alguns valores de definição/substituição são diferentes dos valores armazenados no perfil.\n" -"\n" -"Clique para abrir o gestor de perfis." +msgstr "Alguns valores de definição/substituição são diferentes dos valores armazenados no perfil.\n\nClique para abrir o gestor de perfis." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3621,10 +3596,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Algumas das definições invisíveis têm valores diferentes dos valores normais calculados automaticamente.\n" -"\n" -"Clique para tornar estas definições visíveis." +msgstr "Algumas das definições invisíveis têm valores diferentes dos valores normais calculados automaticamente.\n\nClique para tornar estas definições visíveis." # rever! # Afeta? @@ -3661,10 +3633,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Esta definição tem um valor que é diferente do perfil.\n" -"\n" -"Clique para restaurar o valor do perfil." +msgstr "Esta definição tem um valor que é diferente do perfil.\n\nClique para restaurar o valor do perfil." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3672,10 +3641,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Normalmente, o valor desta definição é calculado, mas atualmente tem definido um valor diferente.\n" -"\n" -"Clique para restaurar o valor calculado." +msgstr "Normalmente, o valor desta definição é calculado, mas atualmente tem definido um valor diferente.\n\nClique para restaurar o valor calculado." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3908,9 +3874,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Configuração da Impressão desativada\n" -"Os ficheiros G-code não podem ser modificados" +msgstr "Configuração da Impressão desativada\nOs ficheiros G-code não podem ser modificados" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4706,12 +4670,12 @@ msgstr "Lista das Alterações" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Disponibiliza as ações da máquina para atualizar o firmware." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Atualizador de firmware" # rever! # contexto! diff --git a/resources/i18n/pt_PT/fdmextruder.def.json.po b/resources/i18n/pt_PT/fdmextruder.def.json.po index da320cbc9b..6d0d26b34c 100644 --- a/resources/i18n/pt_PT/fdmextruder.def.json.po +++ b/resources/i18n/pt_PT/fdmextruder.def.json.po @@ -171,12 +171,12 @@ msgstr "A coordenada Z da posição onde o nozzle é preparado ao iniciar a impr #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Ventoinha de arrefecimento de impressão do Extrusor" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "O número de ventoinhas de arrefecimento de impressão associadas a este extrusor. Apenas alterar o valor predefinido de 0 quando tiver uma ventoinha de arrefecimento de impressão diferente para cada extrusor." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/pt_PT/fdmprinter.def.json.po b/resources/i18n/pt_PT/fdmprinter.def.json.po index 35becb7199..4e33fedb36 100644 --- a/resources/i18n/pt_PT/fdmprinter.def.json.po +++ b/resources/i18n/pt_PT/fdmprinter.def.json.po @@ -58,9 +58,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"Comandos G-code a serem executados no início – separados por \n" -"." +msgstr "Comandos G-code a serem executados no início – separados por \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +70,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"Comandos G-code a serem executados no fim – separados por \n" -"." +msgstr "Comandos G-code a serem executados no fim – separados por \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1099,7 +1095,7 @@ msgstr "Ligar polígonos superiores/inferiores" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Ligar caminhos de revestimento superiores/inferiores quando as trajetórias são paralelas. Para o padrão concêntrico, ativar esta definição reduz consideravelmente o tempo de deslocação mas, uma vez que as ligações podem suceder num ponto intermediário sobre o enchimento, esta funcionalidade pode reduzir a qualidade da superfície superior." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1559,7 +1555,7 @@ msgstr "Padrão de Enchimento" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "O padrão do material de enchimento da impressão. A direção de troca de enchimento de linha e ziguezague em camadas alternadas, reduzindo os custos de material. Os padrões de grelha, triângulo, tri-hexágono, cubo, octeto, quarto cúbico, cruz e concêntrico são totalmente impressos em cada camada. Os enchimentos Gyroid, cúbico, quarto cúbico e octeto são alterados a cada camada para fornecer uma distribuição mais uniforme da resistência em cada direção." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1624,7 +1620,7 @@ msgstr "Cruz 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Gyroid" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1699,9 +1695,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Adicionar paredes adicionais em torno da área de enchimento. Essas paredes podem fazer com que as linhas de revestimento superiores/inferiores desçam menos, o que significa que são necessárias menos camadas de revestimento superior/inferior para a mesma qualidade à custa de algum material adicional.\n" -"Esta funcionalidade pode ser combinada com a opção Ligar polígonos de enchimento para unir todo o enchimento num único caminho de extrusão sem necessidade de deslocações ou retrações, se configurado corretamente." +msgstr "Adicionar paredes adicionais em torno da área de enchimento. Essas paredes podem fazer com que as linhas de revestimento superiores/inferiores desçam menos, o que significa que são necessárias menos camadas de revestimento superior/inferior para a mesma qualidade à custa de algum material adicional.\nEsta funcionalidade pode ser combinada com a opção Ligar polígonos de enchimento para unir todo o enchimento num único caminho de extrusão sem necessidade de deslocações ou retrações, se configurado corretamente." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3403,32 +3397,32 @@ msgstr "Orientação do padrão de enchimento para suportes. O padrão de enchim #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Ativar borda de suporte" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Gera uma borda dentro das regiões de enchimento do suporte da primeira camada. Esta borda é impressa na parte por baixo do suporte e não em torno do mesmo. Ativar esta definição aumenta a aderência do suporte à placa de construção." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Largura da borda do suporte" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "A largura da borda para imprimir na parte por baixo do suporte. Uma borda mais larga melhora a aderência à placa de construção à custa de algum material adicional." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Contagem de linhas da borda do suporte" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "O número de linhas utilizado para a borda do suporte. Uma borda com mais linhas melhora a aderência à placa de construção à custa de algum material adicional." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3971,9 +3965,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"A distância horizontal entre o contorno e o perímetro exterior da primeira camada da impressão.\n" -"Esta é a distância mínima. Linhas múltiplas de contorno serão impressas para o exterior." +msgstr "A distância horizontal entre o contorno e o perímetro exterior da primeira camada da impressão.\nEsta é a distância mínima. Linhas múltiplas de contorno serão impressas para o exterior." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -4008,12 +4000,12 @@ msgstr "O número de linhas utilizado para uma aba. Um maior número de linhas d #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "A borda substitui o suporte" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Aplicar a borda para ser impressa em torno do modelo, mesmo se esse espaço fosse ocupado de outra forma pelo suporte. Isto substitui algumas regiões da primeira camada do suporte por regiões de borda." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5462,9 +5454,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"A distância de um movimento ascendente que é extrudido a metade da velocidade.\n" -"Isto pode causar melhor aderência às camadas anteriores, sendo que o material nessas camadas não é demasiado aquecido. Aplica-se apenas à impressão de fios." +msgstr "A distância de um movimento ascendente que é extrudido a metade da velocidade.\nIsto pode causar melhor aderência às camadas anteriores, sendo que o material nessas camadas não é demasiado aquecido. Aplica-se apenas à impressão de fios." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" From 8e33a19ca7ce138f8789e0c854a066f763904c10 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 6 Nov 2018 13:31:02 +0100 Subject: [PATCH 0172/1039] Fix quality changes lookup in project loading CURA-5899 Should always use custom quality profile names to look up. --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index e994e1a817..9ee2ef0dd4 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -298,7 +298,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): values = parser["values"] if parser.has_section("values") else dict() num_settings_overriden_by_quality_changes += len(values) # Check if quality changes already exists. - quality_changes = self._container_registry.findInstanceContainers(id = container_id) + quality_changes = self._container_registry.findInstanceContainers(name = custom_quality_name, + type = "quality_changes") if quality_changes: containers_found_dict["quality_changes"] = True # Check if there really is a conflict by comparing the values From d3ace436e6b9ba67ee802fe9f7ec179a9e3c61ef Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 6 Nov 2018 13:33:48 +0100 Subject: [PATCH 0173/1039] Update translations for some more languages Russian, Turkish and Chinese. Contributes to issue CURA-5870. --- resources/i18n/ru_RU/cura.po | 122 +++++++------------ resources/i18n/ru_RU/fdmextruder.def.json.po | 4 +- resources/i18n/ru_RU/fdmprinter.def.json.po | 64 ++++------ resources/i18n/tr_TR/cura.po | 122 +++++++------------ resources/i18n/tr_TR/fdmextruder.def.json.po | 4 +- resources/i18n/tr_TR/fdmprinter.def.json.po | 42 +++---- resources/i18n/zh_CN/cura.po | 122 +++++++------------ resources/i18n/zh_CN/fdmextruder.def.json.po | 4 +- resources/i18n/zh_CN/fdmprinter.def.json.po | 42 +++---- 9 files changed, 194 insertions(+), 332 deletions(-) diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 012d92af9f..863354188a 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -49,7 +49,7 @@ msgstr "Средство записи G-кода (GCodeWriter) не поддер #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Подготовьте G-код перед экспортом." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    Одна или несколько 3D-моделей могут не напечататься оптимальным образом из-за размера модели и конфигурации материала:

    \n" -"

    {model_names}

    \n" -"

    Узнайте, как обеспечить максимально возможное качество и высокую надежность печати.

    \n" -"

    Ознакомиться с руководством по качеству печати

    " +msgstr "

    Одна или несколько 3D-моделей могут не напечататься оптимальным образом из-за размера модели и конфигурации материала:

    \n

    {model_names}

    \n

    Узнайте, как обеспечить максимально возможное качество и высокую надежность печати.

    \n

    Ознакомиться с руководством по качеству печати

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "Показать журнал изменений" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Обновить прошивку" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -822,7 +818,7 @@ msgstr "Предообратка файла {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Вход не выполнен" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -896,32 +892,32 @@ msgstr "Невозможно импортировать профиль из !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "Отсутствует собственный профиль для импорта в файл {0}" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Не удалось импортировать профиль из {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Данный профиль {0} содержит неверные данные, поэтому его невозможно импортировать." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "Принтер, заданный в профиле {0} ({1}), не совпадает с вашим текущим принтером ({2}), поэтому его невозможно импортировать." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "Не удалось импортировать профиль из {0}:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1073,12 +1069,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    В ПО Ultimaker Cura обнаружена ошибка.

    \n" -"

    Во время запуска обнаружена неустранимая ошибка. Возможно, она вызвана некоторыми файлами конфигурации с неправильными данными. Рекомендуется создать резервную копию конфигурации и сбросить ее.

    \n" -"

    Резервные копии хранятся в папке конфигурации.

    \n" -"

    Отправьте нам этот отчет о сбое для устранения проблемы.

    \n" -" " +msgstr "

    В ПО Ultimaker Cura обнаружена ошибка.

    \n

    Во время запуска обнаружена неустранимая ошибка. Возможно, она вызвана некоторыми файлами конфигурации с неправильными данными. Рекомендуется создать резервную копию конфигурации и сбросить ее.

    \n

    Резервные копии хранятся в папке конфигурации.

    \n

    Отправьте нам этот отчет о сбое для устранения проблемы.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1111,10 +1102,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    В Cura возникла критическая ошибка. Отправьте нам этот отчет о сбое для устранения проблемы

    \n" -"

    Нажмите кнопку «Отправить отчет», чтобы автоматически опубликовать отчет об ошибке на наших серверах

    \n" -" " +msgstr "

    В Cura возникла критическая ошибка. Отправьте нам этот отчет о сбое для устранения проблемы

    \n

    Нажмите кнопку «Отправить отчет», чтобы автоматически опубликовать отчет об ошибке на наших серверах

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1408,7 +1396,7 @@ msgstr "Смещение сопла по оси Y" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Номер охлаждающего вентилятора" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1512,7 +1500,7 @@ msgstr "Назад" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Подтвердить удаление" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1590,10 +1578,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Этот плагин содержит лицензию.\n" -"Чтобы установить этот плагин, необходимо принять условия лицензии.\n" -"Принять приведенные ниже условия?" +msgstr "Этот плагин содержит лицензию.\nЧтобы установить этот плагин, необходимо принять условия лицензии.\nПринять приведенные ниже условия?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1655,7 +1640,7 @@ msgstr "Закрыть" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Обновить прошивку" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1680,12 +1665,12 @@ msgstr "Залить собственную прошивку" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "Невозможно обновить прошивку, так как нет подключения к принтеру." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "Невозможно обновить прошивку, так как подключение к принтеру не поддерживает функцию обновления прошивки." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1753,10 +1738,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Для печати на вашем принтере через сеть, пожалуйста, удостоверьтесь, что ваш принтер подключен к сети с помощью кабеля или через WiFi. Если вы не подключили Cura к вашему принтеру, вы по-прежнему можете использовать USB флешку для переноса G-Code файлов на ваш принтер.\n" -"\n" -"Укажите ваш принтер в списке ниже:" +msgstr "Для печати на вашем принтере через сеть, пожалуйста, удостоверьтесь, что ваш принтер подключен к сети с помощью кабеля или через WiFi. Если вы не подключили Cura к вашему принтеру, вы по-прежнему можете использовать USB флешку для переноса G-Code файлов на ваш принтер.\n\nУкажите ваш принтер в списке ниже:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1920,62 +1902,62 @@ msgstr "Ожидание: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Изменение конфигурации" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "Для назначенного принтера %1 требуются следующие изменения конфигурации:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "Принтер %1 назначен, однако в задании указана неизвестная конфигурация материала." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "Изменить материал %1 с %2 на %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "Загрузите %3 как материал %1 (переопределение этого действия невозможно)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "Изменить экструдер %1 с %2 на %3." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Заменить рабочий стол на %1 (переопределение этого действия невозможно)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Переопределить" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Начало задания печати с несовместимой конфигурацией может привести к повреждению 3D-принтера. Действительно переопределить конфигурацию и печатать %1?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Переопределить конфигурацию и начать печать" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Стекло" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Алюминий" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2666,9 +2648,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Вы изменили некоторые параметры профиля.\n" -"Желаете сохранить их или вернуть к прежним значениям?" +msgstr "Вы изменили некоторые параметры профиля.\nЖелаете сохранить их или вернуть к прежним значениям?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3370,9 +3350,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura разработана компанией Ultimaker B.V. совместно с сообществом.\n" -"Cura использует следующие проекты с открытым исходным кодом:" +msgstr "Cura разработана компанией Ultimaker B.V. совместно с сообществом.\nCura использует следующие проекты с открытым исходным кодом:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3437,17 +3415,17 @@ msgstr "Вспомогательная библиотека для работы #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Вспомогательная библиотека для работы с плоскими объектами" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Вспомогательная библиотека для работы с треугольными сетками" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Вспомогательная библиотека для анализа сложных сетей" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3457,7 +3435,7 @@ msgstr "Вспомогательная библиотека для работы #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Вспомогательная библиотека для метаданных файла и потоковой передачи" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3505,10 +3483,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Значения некоторых параметров отличаются от значений профиля.\n" -"\n" -"Нажмите для открытия менеджера профилей." +msgstr "Значения некоторых параметров отличаются от значений профиля.\n\nНажмите для открытия менеджера профилей." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3562,10 +3537,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Некоторые из скрытых параметров используют значения, отличающиеся от их вычисленных значений.\n" -"\n" -"Щёлкните, чтобы сделать эти параметры видимыми." +msgstr "Некоторые из скрытых параметров используют значения, отличающиеся от их вычисленных значений.\n\nЩёлкните, чтобы сделать эти параметры видимыми." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3593,10 +3565,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Значение этого параметра отличается от значения в профиле.\n" -"\n" -"Щёлкните для восстановления значения из профиля." +msgstr "Значение этого параметра отличается от значения в профиле.\n\nЩёлкните для восстановления значения из профиля." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3604,10 +3573,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Обычно это значение вычисляется, но в настоящий момент было установлено явно.\n" -"\n" -"Щёлкните для восстановления вычисленного значения." +msgstr "Обычно это значение вычисляется, но в настоящий момент было установлено явно.\n\nЩёлкните для восстановления вычисленного значения." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3834,9 +3800,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Настройка принтера отключена\n" -"G-code файлы нельзя изменять" +msgstr "Настройка принтера отключена\nG-code файлы нельзя изменять" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4614,12 +4578,12 @@ msgstr "Журнал изменений" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Обеспечение действий принтера для обновления прошивки." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Средство обновления прошивки" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/ru_RU/fdmextruder.def.json.po b/resources/i18n/ru_RU/fdmextruder.def.json.po index a75cc5dd6b..65e6698016 100644 --- a/resources/i18n/ru_RU/fdmextruder.def.json.po +++ b/resources/i18n/ru_RU/fdmextruder.def.json.po @@ -171,12 +171,12 @@ msgstr "Позиция кончика сопла на оси Z при старт #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Охлаждающий вентилятор экструдера, используемый во время печати" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "Номер охлаждающего вентилятора, используемого при печати и ассоциированного с этим экструдером. Применяемое по умолчанию значение 0 следует менять только при наличии другого охлаждающего вентилятора, используемого при печати, для каждого экструдера." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/ru_RU/fdmprinter.def.json.po b/resources/i18n/ru_RU/fdmprinter.def.json.po index 16c265f007..0697420b6a 100644 --- a/resources/i18n/ru_RU/fdmprinter.def.json.po +++ b/resources/i18n/ru_RU/fdmprinter.def.json.po @@ -58,9 +58,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"Команды в G-коде, которые будут выполнены в самом начале, разделенные с помощью \n" -"." +msgstr "Команды в G-коде, которые будут выполнены в самом начале, разделенные с помощью \n." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +70,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"Команды в G-коде, которые будут выполнены в самом конце, разделенные с помощью \n" -"." +msgstr "Команды в G-коде, которые будут выполнены в самом конце, разделенные с помощью \n." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1079,7 +1075,7 @@ msgstr "Соединение верхних/нижних полигонов" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Соединение верхних/нижних путей оболочки на участках, где они проходят рядом. При использовании концентрического шаблона активация данной настройки значительно сокращает время перемещения, но, учитывая возможность наличия соединений на полпути над заполнением, эта функция может ухудшить качество верхней поверхности." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1419,7 +1415,7 @@ msgstr "Границы разглаживания" #: fdmprinter.def.json msgctxt "ironing_inset description" msgid "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print." -msgstr "Расстояние от краёв модели. Разглаживание от края до края может выразится в загибании краёв при печати." +msgstr "Расстояние от краёв модели. Разглаживание от края до края может выразиться в загибании краёв при печати." #: fdmprinter.def.json msgctxt "speed_ironing label" @@ -1499,7 +1495,7 @@ msgstr "Шаблон заполнения" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "Шаблон заполняющего материала печати. Линейное и зигзагообразное заполнение меняет направление на чередующихся слоях, снижая расходы на материал. Шаблоны «сетка», «треугольник», «шестигранник из треугольников», «куб», «восьмигранник», «четверть куба», «крестовое», «концентрическое» полностью печатаются в каждом слое. Шаблоны заполнения «гироид», «куб», «четверть куба» и «восьмигранник» меняются в каждом слое, чтобы обеспечить более равномерное распределение прочности в каждом направлении." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1564,7 +1560,7 @@ msgstr "Крестовое 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Гироид" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1636,9 +1632,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Добавление дополнительных стенок вокруг области заполнения. Эти стенки могут уменьшить провисание верхних/нижних линий оболочки, что уменьшает необходимое количество верхних/нижних слоев оболочки без ухудшения качества за счет небольшого увеличения количества материала.\n" -"Эта функция может сочетаться с соединением полигонов заполнения для соединения всего участка заполнения в один путь экструзии без необходимости в движениях или откатах в случае правильной настройки." +msgstr "Добавление дополнительных стенок вокруг области заполнения. Эти стенки могут уменьшить провисание верхних/нижних линий оболочки, что уменьшает необходимое количество верхних/нижних слоев оболочки без ухудшения качества за счет небольшого увеличения количества материала.\nЭта функция может сочетаться с соединением полигонов заполнения для соединения всего участка заполнения в один путь экструзии без необходимости в движениях или откатах в случае правильной настройки." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3018,7 +3012,7 @@ msgstr "Обычная скорость вентилятора на слое" #: fdmprinter.def.json msgctxt "cool_fan_full_layer description" msgid "The layer at which the fans spin on regular fan speed. If regular fan speed at height is set, this value is calculated and rounded to a whole number." -msgstr "Слой, на котором вентилятор должен вращаться с обыкновенной скорость. Если определена обычная скорость для вентилятора на высоте, это значение вычисляется и округляется до целого." +msgstr "Слой, на котором вентилятор должен вращаться с обыкновенной скоростью. Если определена обычная скорость для вентилятора на высоте, это значение вычисляется и округляется до целого." #: fdmprinter.def.json msgctxt "cool_min_layer_time label" @@ -3273,32 +3267,32 @@ msgstr "Ориентация шаблона заполнения для подд #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Разрешить кайму поддержек" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "Создайте кайму внутри участков заполнения поддержек первого слоя. Эта кайма печатается под поддержкой, а не вокруг нее. Включение этого параметра увеличивает адгезию поддержки к рабочему столу." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Ширина каймы поддержки" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Ширина каймы для печати под поддержкой. При увеличении каймы улучшается адгезия к рабочему столу и увеличивается расход материала." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Количество линий каймы поддержки" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Количество линий, используемых для каймы поддержки. При увеличении линий каймы улучшается адгезия к рабочему столу и увеличивается расход материала." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3428,7 +3422,7 @@ msgstr "Степень заполнения поддержек" #: fdmprinter.def.json msgctxt "gradual_support_infill_steps description" msgid "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density." -msgstr "Количество раз, на которое на половину можно уменьшать плотность заполнения поддержек при прохоже вглубь структуры от поверхности. Области ближе к оболочке имеют большую плотность, вплоть до значения \"Плотность заполнения поддержек\"." +msgstr "Количество раз, на которое на половину можно уменьшать плотность заполнения поддержек при проходе вглубь структуры от поверхности. Области ближе к оболочке имеют большую плотность, вплоть до значения \"Плотность заполнения поддержек\"." #: fdmprinter.def.json msgctxt "gradual_support_infill_step_height label" @@ -3835,9 +3829,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"Горизонтальное расстояние между юбкой и первым слоем печати.\n" -"Минимальное расстояние. Несколько линий юбки будут расширяться от этого расстояния." +msgstr "Горизонтальное расстояние между юбкой и первым слоем печати.\nМинимальное расстояние. Несколько линий юбки будут расширяться от этого расстояния." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3872,12 +3864,12 @@ msgstr "Количество линий, используемых для печ #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Кайма заменяет поддержку" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "Принудительная печать каймы вокруг модели, даже если пространство в ином случае было бы занято поддержкой. При этом некоторые участки первого слоя поддержки заменяются участками каймы." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -4567,7 +4559,7 @@ msgstr "Сглаживает спиральные контуры для умен #: fdmprinter.def.json msgctxt "relative_extrusion label" msgid "Relative Extrusion" -msgstr "Отностительная экструзия" +msgstr "Относительная экструзия" #: fdmprinter.def.json msgctxt "relative_extrusion description" @@ -5002,7 +4994,7 @@ msgstr "Максимальный угол спагетти заполнения" #: fdmprinter.def.json msgctxt "spaghetti_max_infill_angle description" msgid "The maximum angle w.r.t. the Z axis of the inside of the print for areas which are to be filled with spaghetti infill afterwards. Lowering this value causes more angled parts in your model to be filled on each layer." -msgstr "Максимальный угол по отношению к оси Z внутри печатаемого объёма для заполняемых областей. Уменьшение этого значения приводит к тому, что более наклонённый части вашей модели будут заполнены на каждом слое." +msgstr "Максимальный угол по отношению к оси Z внутри печатаемого объёма для заполняемых областей. Уменьшение этого значения приводит к тому, что более наклонённые части вашей модели будут заполнены на каждом слое." #: fdmprinter.def.json msgctxt "spaghetti_max_height label" @@ -5284,9 +5276,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Расстояние движения вверх, при котором выдавливание идёт на половине скорости.\n" -"Это может улучшить прилипание к предыдущим слоям, не перегревая материал тех слоёв. Применяется только при каркасной печати." +msgstr "Расстояние движения вверх, при котором выдавливание идёт на половине скорости.\nЭто может улучшить прилипание к предыдущим слоям, не перегревая материал тех слоёв. Применяется только при каркасной печати." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -5306,7 +5296,7 @@ msgstr "Падение (КП)" #: fdmprinter.def.json msgctxt "wireframe_fall_down description" msgid "Distance with which the material falls down after an upward extrusion. This distance is compensated for. Only applies to Wire Printing." -msgstr "Расстояние с которой материал падает вниз после восходящего выдавливания. Расстояние компенсируется. Применяется только при каркасной печати." +msgstr "Расстояние, с которого материал падает вниз после восходящего выдавливания. Расстояние компенсируется. Применяется только при каркасной печати." #: fdmprinter.def.json msgctxt "wireframe_drag_along label" @@ -5426,7 +5416,7 @@ msgstr "Разница между высотой следующего слоя #: fdmprinter.def.json msgctxt "adaptive_layer_height_threshold label" msgid "Adaptive layers threshold" -msgstr "Порог для адаптивных слове" +msgstr "Порог для адаптивных слоев" #: fdmprinter.def.json msgctxt "adaptive_layer_height_threshold description" @@ -5671,7 +5661,7 @@ msgstr "X позиция объекта" #: fdmprinter.def.json msgctxt "mesh_position_x description" msgid "Offset applied to the object in the x direction." -msgstr "Смещение, применяемое к объект по оси X." +msgstr "Смещение, применяемое к объекту по оси X." #: fdmprinter.def.json msgctxt "mesh_position_y label" @@ -5681,7 +5671,7 @@ msgstr "Y позиция объекта" #: fdmprinter.def.json msgctxt "mesh_position_y description" msgid "Offset applied to the object in the y direction." -msgstr "Смещение, применяемое к объект по оси Y." +msgstr "Смещение, применяемое к объекту по оси Y." #: fdmprinter.def.json msgctxt "mesh_position_z label" @@ -5691,7 +5681,7 @@ msgstr "Z позиция объекта" #: fdmprinter.def.json msgctxt "mesh_position_z description" msgid "Offset applied to the object in the z direction. With this you can perform what was used to be called 'Object Sink'." -msgstr "Смещение, применяемое к объект по оси Z. Это позволяет выполнять операцию, ранее известную как проваливание объекта под поверхность стола." +msgstr "Смещение, применяемое к объекту по оси Z. Это позволяет выполнять операцию, ранее известную как проваливание объекта под поверхность стола." #: fdmprinter.def.json msgctxt "mesh_rotation_matrix label" @@ -5701,7 +5691,7 @@ msgstr "Матрица вращения объекта" #: fdmprinter.def.json msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." -msgstr "Матрица преобразования, применяемая к модели при её загрузки из файла." +msgstr "Матрица преобразования, применяемая к модели при её загрузке из файла." #~ msgctxt "connect_skin_polygons description" #~ msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happend midway over infill this feature can reduce the top surface quality." diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index 9b5a47135b..4b52e474b7 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -47,7 +47,7 @@ msgstr "GCodeWriter metin dışı modu desteklemez." #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "Lütfen dışa aktarmadan önce G-code'u hazırlayın." #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -62,11 +62,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    Model boyutu ve model yapılandırması nedeniyle bir veya daha fazla 3D model optimum yazdırılamayabilir:

    \n" -"

    {model_names}

    \n" -"

    En iyi kalite ve güvenilirliği nasıl elde edeceğinizi öğrenin.

    \n" -"

    Yazdırma kalitesi kılavuzunu görüntüleyin

    " +msgstr "

    Model boyutu ve model yapılandırması nedeniyle bir veya daha fazla 3D model optimum yazdırılamayabilir:

    \n

    {model_names}

    \n

    En iyi kalite ve güvenilirliği nasıl elde edeceğinizi öğrenin.

    \n

    Yazdırma kalitesi kılavuzunu görüntüleyin

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -76,7 +72,7 @@ msgstr "Değişiklik Günlüğünü Göster" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "Aygıt Yazılımını Güncelle" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -820,7 +816,7 @@ msgstr "Önceden dilimlenmiş dosya {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "Giriş başarısız" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -894,32 +890,32 @@ msgstr "{0} dosyasından profil içe aktarımı başarısı #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "{0} dosyasında içe aktarılabilecek özel profil yok" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "{0} dosyasından profil içe aktarımı başarısız oldu:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "Bu {0} profili yanlış veri içeriyor, içeri aktarılamadı." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "{0} ({1}) profilinde tanımlanan makine, mevcut makineniz ({2}) ile eşleşmiyor, içe aktarılamadı." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "{0} dosyasından profil içe aktarımı başarısız oldu:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1071,12 +1067,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    Ultimaker Cura doğru görünmeyen bir şeyle karşılaştı.

    \n" -"

    Başlatma esnasında kurtarılamaz bir hata ile karşılaştık. Muhtemelen bazı hatalı yapılandırma dosyalarından kaynaklanıyordu. Yapılandırmanızı yedekleyip sıfırlamanızı öneriyoruz.

    \n" -"

    Yedekler yapılandırma klasöründe bulunabilir.

    \n" -"

    Sorunu düzeltmek için lütfen bu Çökme Raporunu bize gönderin.

    \n" -" " +msgstr "

    Ultimaker Cura doğru görünmeyen bir şeyle karşılaştı.

    \n

    Başlatma esnasında kurtarılamaz bir hata ile karşılaştık. Muhtemelen bazı hatalı yapılandırma dosyalarından kaynaklanıyordu. Yapılandırmanızı yedekleyip sıfırlamanızı öneriyoruz.

    \n

    Yedekler yapılandırma klasöründe bulunabilir.

    \n

    Sorunu düzeltmek için lütfen bu Çökme Raporunu bize gönderin.

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1109,10 +1100,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Cura’da onarılamaz bir hata oluştu. Lütfen sorunu çözmek için bize Çökme Raporunu gönderin

    \n" -"

    Sunucularımıza otomatik olarak bir hata raporu yüklemek için lütfen \"Rapor gönder\" düğmesini kullanın

    \n" -" " +msgstr "

    Cura’da onarılamaz bir hata oluştu. Lütfen sorunu çözmek için bize Çökme Raporunu gönderin

    \n

    Sunucularımıza otomatik olarak bir hata raporu yüklemek için lütfen \"Rapor gönder\" düğmesini kullanın

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1406,7 +1394,7 @@ msgstr "Nozül Y ofseti" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "Soğutma Fanı Numarası" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1510,7 +1498,7 @@ msgstr "Geri" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "Kaldırmayı onayla" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1588,10 +1576,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"Bu eklenti bir lisans içerir.\n" -"Bu eklentiyi yüklemek için bu lisansı kabul etmeniz gerekir.\n" -"Aşağıdaki koşulları kabul ediyor musunuz?" +msgstr "Bu eklenti bir lisans içerir.\nBu eklentiyi yüklemek için bu lisansı kabul etmeniz gerekir.\nAşağıdaki koşulları kabul ediyor musunuz?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1653,7 +1638,7 @@ msgstr "Kapat" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "Aygıt Yazılımını Güncelle" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1678,12 +1663,12 @@ msgstr "Özel Aygıt Yazılımı Yükle" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "Yazıcı ile bağlantı kurulmadığı için aygıt yazılımı güncellenemiyor." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "Yazıcı bağlantısı aygıt yazılımını yükseltmeyi desteklemediği için aygıt yazılımı güncellenemiyor." #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1751,10 +1736,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"Yazıcınıza ağ üzerinden doğrudan bağlamak için, lütfen yazıcınızın ağ kablosu kullanan bir ağa bağlı olduğundan emin olun veya yazıcınızı WiFi ağına bağlayın. Cura'ya yazıcınız ile bağlanamıyorsanız g-code dosyalarını yazıcınıza aktarmak için USB sürücüsü kullanabilirsiniz.\n" -"\n" -"Aşağıdaki listeden yazıcınızı seçin:" +msgstr "Yazıcınıza ağ üzerinden doğrudan bağlamak için, lütfen yazıcınızın ağ kablosu kullanan bir ağa bağlı olduğundan emin olun veya yazıcınızı WiFi ağına bağlayın. Cura'ya yazıcınız ile bağlanamıyorsanız g-code dosyalarını yazıcınıza aktarmak için USB sürücüsü kullanabilirsiniz.\n\nAşağıdaki listeden yazıcınızı seçin:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1918,62 +1900,62 @@ msgstr "Bekleniyor: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "Yapılandırma değişikliği" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "Atanan yazıcı %1, aşağıdaki yapılandırma değişikliklerini gerektiriyor:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "Yazıcı %1 atandı, fakat iş bilinmeyen bir malzeme yapılandırması içeriyor." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "%2 olan %1 malzemesini %3 yapın." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "%3 malzemesini %1 malzemesi olarak yükleyin (Bu işlem geçersiz kılınamaz)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "%2 olan %1 print core'u %3 yapın." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "Baskı tablasını %1 olarak değiştirin (Bu işlem geçersiz kılınamaz)." #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "Geçersiz kıl" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "Bir yazdırma işini uyumsuz bir yapılandırmayla başlatmak 3D yazıcınıza zarar verebilir. Yapılandırmayı geçersiz kılmak ve %1 öğesini yazdırmak istediğinizden emin misiniz?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "Yapılandırmayı geçersiz kıl ve yazdırmayı başlat" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "Cam" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "Alüminyum" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2662,9 +2644,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"Bazı profil ayarlarını özelleştirdiniz.\n" -"Bu ayarları kaydetmek veya iptal etmek ister misiniz?" +msgstr "Bazı profil ayarlarını özelleştirdiniz.\nBu ayarları kaydetmek veya iptal etmek ister misiniz?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3366,9 +3346,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura, topluluk iş birliği ile Ultimaker B.V. tarafından geliştirilmiştir.\n" -"Cura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" +msgstr "Cura, topluluk iş birliği ile Ultimaker B.V. tarafından geliştirilmiştir.\nCura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3433,17 +3411,17 @@ msgstr "STL dosyalarının işlenmesi için destek kitaplığı" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "Düzlemsel nesnelerin işlenmesi için destek kitaplığı" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "Üçgen birleşimlerin işlenmesi için destek kitaplığı" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "Karmaşık ağların analizi için destek kitaplığı" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3453,7 +3431,7 @@ msgstr "3MF dosyalarının işlenmesi için destek kitaplığı" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "Dosya meta verileri ve akış için destek kitaplığı" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3501,10 +3479,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"Bazı ayar/geçersiz kılma değerleri profilinizde saklanan değerlerden farklıdır.\n" -"\n" -"Profil yöneticisini açmak için tıklayın." +msgstr "Bazı ayar/geçersiz kılma değerleri profilinizde saklanan değerlerden farklıdır.\n\nProfil yöneticisini açmak için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3558,10 +3533,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"Gizlenen bazı ayarlar normal hesaplanan değerden farklı değerler kullanır.\n" -"\n" -"Bu ayarları görmek için tıklayın." +msgstr "Gizlenen bazı ayarlar normal hesaplanan değerden farklı değerler kullanır.\n\nBu ayarları görmek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3589,10 +3561,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"Bu ayarın değeri profilden farklıdır.\n" -"\n" -"Profil değerini yenilemek için tıklayın." +msgstr "Bu ayarın değeri profilden farklıdır.\n\nProfil değerini yenilemek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3600,10 +3569,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"Bu ayar normal olarak yapılır ama şu anda mutlak değer ayarı var.\n" -"\n" -"Hesaplanan değeri yenilemek için tıklayın." +msgstr "Bu ayar normal olarak yapılır ama şu anda mutlak değer ayarı var.\n\nHesaplanan değeri yenilemek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3828,9 +3794,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"Yazdırma Ayarı devre dışı\n" -"G-code dosyaları üzerinde değişiklik yapılamaz" +msgstr "Yazdırma Ayarı devre dışı\nG-code dosyaları üzerinde değişiklik yapılamaz" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4604,12 +4568,12 @@ msgstr "Değişiklik Günlüğü" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "Aygıt yazılımını güncellemeye yönelik makine eylemleri sağlar." #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "Aygıt Yazılımı Güncelleyici" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/tr_TR/fdmextruder.def.json.po b/resources/i18n/tr_TR/fdmextruder.def.json.po index 1c93b99706..f9519e7e68 100644 --- a/resources/i18n/tr_TR/fdmextruder.def.json.po +++ b/resources/i18n/tr_TR/fdmextruder.def.json.po @@ -169,12 +169,12 @@ msgstr "Nozül yazdırma işlemini başlatmaya hazırlandığında konumun Z koo #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "Ekstrüder Yazıcı Soğutma Fanı" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "Bu ekstrüdere bağlı yazıcı soğutma fanı sayısı. Yalnızca her bir ekstrüder için farklı yazıcı soğutma fanınız varsa bunu 0 varsayılan değeri olarak değiştirin." #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/tr_TR/fdmprinter.def.json.po b/resources/i18n/tr_TR/fdmprinter.def.json.po index 2d84548848..2060ab23d4 100644 --- a/resources/i18n/tr_TR/fdmprinter.def.json.po +++ b/resources/i18n/tr_TR/fdmprinter.def.json.po @@ -56,9 +56,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -" \n" -" ile ayrılan, başlangıçta yürütülecek G-code komutları." +msgstr " \n ile ayrılan, başlangıçta yürütülecek G-code komutları." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -70,9 +68,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -" \n" -" ile ayrılan, bitişte yürütülecek G-code komutları." +msgstr " \n ile ayrılan, bitişte yürütülecek G-code komutları." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1077,7 +1073,7 @@ msgstr "Üst/Alt Poligonları Bağla" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "Üst/alt yüzey yollarını yan yana ise bağla. Eş merkezli şekil için bu ayarı etkinleştirmek, hareket süresini önemli ölçüde kısaltır ancak bağlantılar dolgunun üzerinde meydana gelebileceğinden bu özellik üst yüzeyin kalitesini düşürebilir." #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1497,7 +1493,7 @@ msgstr "Dolgu Şekli" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "Baskının dolgu malzemesinin şeklidir. Hat ve zikzak dolgu, farklı katmanlar üzerinde yön değiştirerek malzeme maliyetini azaltır. Izgara, üçgen, üçlü altıgen, kübik, sekizlik, çeyrek kübik, çapraz ve eşmerkezli şekiller, her katmana tam olarak basılır. Gyroid, kübik, çeyrek kübik ve sekizlik dolgu, her yönde daha eşit bir kuvvet dağılımı sağlamak için her katmanda değişir." #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1562,7 +1558,7 @@ msgstr "Çapraz 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "Gyroid" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1634,9 +1630,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"Dolgu alanının etrafına ekstra duvar ekle. Bu duvarlar üst/alt yüzey hatlarının daha az aşağı düşmesini sağlar. Yani biraz fazla materyal kullanarak, daha az üst/alt yüzey katmanı ile aynı kaliteyi yakalayabilirsiniz.\n" -"Bu özellik, doğru konfigüre edildiğinde, harekete veya geri çekmeye gerek kalmadan Dolgu Poligonlarını Bağlama ile birlikte tüm dolguyu tek bir ekstrüzyon yoluna bağlayabilir." +msgstr "Dolgu alanının etrafına ekstra duvar ekle. Bu duvarlar üst/alt yüzey hatlarının daha az aşağı düşmesini sağlar. Yani biraz fazla materyal kullanarak, daha az üst/alt yüzey katmanı ile aynı kaliteyi yakalayabilirsiniz.\nBu özellik, doğru konfigüre edildiğinde, harekete veya geri çekmeye gerek kalmadan Dolgu Poligonlarını Bağlama ile birlikte tüm dolguyu tek bir ekstrüzyon yoluna bağlayabilir." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3271,32 +3265,32 @@ msgstr "Destekler için dolgu şeklinin döndürülmesi. Destek dolgu şekli yat #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "Destek Kenarını Etkinleştir" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "İlk katmanın destek dolgu alanı içinde bir kenar oluşturun. Bu kenar, desteğin çevresine değil, altına yazdırılır. Bu ayarı etkinleştirmek, desteğin baskı tablasına yapışma alanını artırır." #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "Destek Kenar Genişliği" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Desteğin altına yazdırılacak kenarın genişliği. Daha geniş kenar, ekstra malzeme karşılığında baskı tablasına daha fazla alanın yapışacağı anlamına gelir." #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "Destek Kenar Hattı Sayısı" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "Bir destek kenarı için kullanılan hatların sayısı. Daha fazla kenar hattı, ekstra malzeme karşılığında baskı tablasına daha fazla alanın yapışacağı anlamına gelir." #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3833,9 +3827,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"Baskının eteği ve ilk katmanı arasındaki yatay mesafe.\n" -"Minimum mesafedir. Bu mesafeden çok sayıda etek hattı dışarı doğru uzanır." +msgstr "Baskının eteği ve ilk katmanı arasındaki yatay mesafe.\nMinimum mesafedir. Bu mesafeden çok sayıda etek hattı dışarı doğru uzanır." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3870,12 +3862,12 @@ msgstr "Bir kenar için kullanılan hatların sayısı Daha fazla kenar hattı y #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Kenar, Desteği Değiştirir" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "İlgili alan üzerinde destek olsa bile kenarı modelin çevresine yazdırmaya zorlayın. Desteğin ilk katmanının bazı alanlarını kenar alanları ile değiştirir." #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5282,9 +5274,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"Yarı hızda sıkıştırılmış yukarı doğru hareket mesafesi.\n" -"Bu katmanlarda malzemeyi çok fazla ısıtmayarak önceki katmanlarda daha iyi yapışma sağlayabilir. Sadece kablo yazdırmaya uygulanır." +msgstr "Yarı hızda sıkıştırılmış yukarı doğru hareket mesafesi.\nBu katmanlarda malzemeyi çok fazla ısıtmayarak önceki katmanlarda daha iyi yapışma sağlayabilir. Sadece kablo yazdırmaya uygulanır." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 8bcaf11ab1..033aa0f8ef 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -49,7 +49,7 @@ msgstr "GCodeWriter 不支持非文本模式。" #: /home/ruben/Projects/Cura/plugins/GCodeWriter/GCodeWriter.py:89 msgctxt "@warning:status" msgid "Please prepare G-code before exporting." -msgstr "" +msgstr "导出前请先准备 G-code。" #: /home/ruben/Projects/Cura/plugins/ModelChecker/ModelChecker.py:30 msgctxt "@info:title" @@ -64,11 +64,7 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "" -"

    由于模型的大小和材质的配置,一个或多个3D模型可能无法最优地打印:

    \n" -"

    {model_names}

    \n" -"

    找出如何确保最好的打印质量和可靠性.

    \n" -"

    查看打印质量指南

    " +msgstr "

    由于模型的大小和材质的配置,一个或多个3D模型可能无法最优地打印:

    \n

    {model_names}

    \n

    找出如何确保最好的打印质量和可靠性.

    \n

    查看打印质量指南

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -78,7 +74,7 @@ msgstr "显示更新日志" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.py:25 msgctxt "@action" msgid "Update Firmware" -msgstr "" +msgstr "更新固件" #: /home/ruben/Projects/Cura/plugins/ProfileFlattener/ProfileFlattener.py:23 msgctxt "@item:inmenu" @@ -822,7 +818,7 @@ msgstr "预切片文件 {0}" #: /home/ruben/Projects/Cura/cura/API/Account.py:71 msgctxt "@info:title" msgid "Login failed" -msgstr "" +msgstr "登录失败" #: /home/ruben/Projects/Cura/cura/Settings/ContainerManager.py:201 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:121 @@ -896,32 +892,32 @@ msgstr "无法从 {0} 导入配置文件: {1}< #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "No custom profile to import in file {0}" -msgstr "" +msgstr "没有可导入文件 {0} 的自定义配置文件" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:194 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "无法从 {0} 导入配置文件:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "This profile {0} contains incorrect data, could not import it." -msgstr "" +msgstr "此配置文件 {0} 包含错误数据,无法导入。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:241 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "" +msgstr "配置文件 {0} ({1}) 中定义的机器与当前机器 ({2}) 不匹配,无法导入。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "" +msgstr "无法从 {0} 导入配置文件:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1073,12 +1069,7 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "" -"

    糟糕,Ultimaker Cura 似乎遇到了问题。

    \n" -"

    在启动时发生了不可修复的错误。这可能是因某些配置文件出错导致的。建议您备份并重置配置。

    \n" -"

    您可在配置文件夹中找到备份。

    \n" -"

    请向我们发送此错误报告,以便解决问题。

    \n" -" " +msgstr "

    糟糕,Ultimaker Cura 似乎遇到了问题。

    \n

    在启动时发生了不可修复的错误。这可能是因某些配置文件出错导致的。建议您备份并重置配置。

    \n

    您可在配置文件夹中找到备份。

    \n

    请向我们发送此错误报告,以便解决问题。

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1111,10 +1102,7 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "" -"

    Cura 发生了严重错误。请将这份错误报告发送给我们以便修复问题

    \n" -"

    请使用“发送报告”按钮将错误报告自动发布到我们的服务器

    \n" -" " +msgstr "

    Cura 发生了严重错误。请将这份错误报告发送给我们以便修复问题

    \n

    请使用“发送报告”按钮将错误报告自动发布到我们的服务器

    \n " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1408,7 +1396,7 @@ msgstr "喷嘴偏移 Y" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:451 msgctxt "@label" msgid "Cooling Fan Number" -msgstr "" +msgstr "冷却风扇数量" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:452 msgctxt "@label" @@ -1512,7 +1500,7 @@ msgstr "背部" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:20 msgctxt "@title:window" msgid "Confirm uninstall" -msgstr "" +msgstr "确认卸载" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml:50 msgctxt "@text:window" @@ -1590,10 +1578,7 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "" -"该插件包含一个许可。\n" -"您需要接受此许可才能安装此插件。\n" -"是否同意下列条款?" +msgstr "该插件包含一个许可。\n您需要接受此许可才能安装此插件。\n是否同意下列条款?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1655,7 +1640,7 @@ msgstr "关闭" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:31 msgctxt "@title" msgid "Update Firmware" -msgstr "" +msgstr "更新固件" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:39 msgctxt "@label" @@ -1680,12 +1665,12 @@ msgstr "上传自定义固件" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:83 msgctxt "@label" msgid "Firmware can not be updated because there is no connection with the printer." -msgstr "" +msgstr "未连接打印机,无法更新固件。" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:91 msgctxt "@label" msgid "Firmware can not be updated because the connection with the printer does not support upgrading firmware." -msgstr "" +msgstr "与打印机间的连接不支持固件更新,因此无法更新固件。" #: /home/ruben/Projects/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:98 msgctxt "@title:window" @@ -1753,10 +1738,7 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "" -"要通过网络向打印机发送打印请求,请确保您的打印机已通过网线或 WIFI 连接到网络。若您不能连接 Cura 与打印机,您仍然可以使用 USB 设备将 G-code 文件传输到打印机。\n" -"\n" -"从以下列表中选择您的打印机:" +msgstr "要通过网络向打印机发送打印请求,请确保您的打印机已通过网线或 WIFI 连接到网络。若您不能连接 Cura 与打印机,您仍然可以使用 USB 设备将 G-code 文件传输到打印机。\n\n从以下列表中选择您的打印机:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1920,62 +1902,62 @@ msgstr "等待: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" msgid "Configuration change" -msgstr "" +msgstr "配置更改" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "" +msgstr "分配的打印机 %1 需要以下配置更改:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" msgid "The printer %1 is assigned, but the job contains an unknown material configuration." -msgstr "" +msgstr "已向打印机 %1 分配作业,但作业包含未知的材料配置。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:375 msgctxt "@label" msgid "Change material %1 from %2 to %3." -msgstr "" +msgstr "将材料 %1 从 %2 更改为 %3。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:378 msgctxt "@label" msgid "Load %3 as material %1 (This cannot be overridden)." -msgstr "" +msgstr "将 %3 作为材料 %1 进行加载(此操作无法覆盖)。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:381 msgctxt "@label" msgid "Change print core %1 from %2 to %3." -msgstr "" +msgstr "将 Print Core %1 从 %2 更改为 %3。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:384 msgctxt "@label" msgid "Change build plate to %1 (This cannot be overridden)." -msgstr "" +msgstr "将打印平台更改为 %1(此操作无法覆盖)。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:404 msgctxt "@label" msgid "Override" -msgstr "" +msgstr "覆盖" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:432 msgctxt "@label" msgid "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?" -msgstr "" +msgstr "使用不兼容的配置启动打印作业可能会损坏 3D 打印机。您确定要覆盖配置并打印 %1 吗?" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:435 msgctxt "@window:title" msgid "Override configuration configuration and start print" -msgstr "" +msgstr "覆盖配置并开始打印" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:466 msgctxt "@label" msgid "Glass" -msgstr "" +msgstr "玻璃" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:469 msgctxt "@label" msgid "Aluminum" -msgstr "" +msgstr "铝" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml:39 msgctxt "@label link to connect manager" @@ -2662,9 +2644,7 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "" -"您已自定义某些配置文件设置。\n" -"您想保留或舍弃这些设置吗?" +msgstr "您已自定义某些配置文件设置。\n您想保留或舍弃这些设置吗?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3366,9 +3346,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "" -"Cura 由 Ultimaker B.V. 与社区合作开发。\n" -"Cura 使用以下开源项目:" +msgstr "Cura 由 Ultimaker B.V. 与社区合作开发。\nCura 使用以下开源项目:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3433,17 +3411,17 @@ msgstr "用于处理 STL 文件的支持库" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:145 msgctxt "@label" msgid "Support library for handling planar objects" -msgstr "" +msgstr "用于处理平面对象的支持库" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:146 msgctxt "@label" msgid "Support library for handling triangular meshes" -msgstr "" +msgstr "用于处理三角网格的支持库" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:147 msgctxt "@label" msgid "Support library for analysis of complex networks" -msgstr "" +msgstr "用于分析复杂网络的支持库" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:148 msgctxt "@label" @@ -3453,7 +3431,7 @@ msgstr "用于处理 3MF 文件的支持库" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:149 msgctxt "@label" msgid "Support library for file metadata and streaming" -msgstr "" +msgstr "用于文件元数据和流媒体的支持库" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:150 msgctxt "@label" @@ -3501,10 +3479,7 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "" -"某些设置/重写值与存储在配置文件中的值不同。\n" -"\n" -"点击打开配置文件管理器。" +msgstr "某些设置/重写值与存储在配置文件中的值不同。\n\n点击打开配置文件管理器。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3558,10 +3533,7 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "" -"一些隐藏设置正在使用有别于一般设置的计算值。\n" -"\n" -"单击以使这些设置可见。" +msgstr "一些隐藏设置正在使用有别于一般设置的计算值。\n\n单击以使这些设置可见。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3589,10 +3561,7 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "" -"此设置的值与配置文件不同。\n" -"\n" -"单击以恢复配置文件的值。" +msgstr "此设置的值与配置文件不同。\n\n单击以恢复配置文件的值。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3600,10 +3569,7 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "" -"此设置通常可被自动计算,但其当前已被绝对定义。\n" -"\n" -"单击以恢复自动计算的值。" +msgstr "此设置通常可被自动计算,但其当前已被绝对定义。\n\n单击以恢复自动计算的值。" #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3826,9 +3792,7 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "" -"打印设置已禁用\n" -"G-code 文件无法被修改" +msgstr "打印设置已禁用\nG-code 文件无法被修改" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4598,12 +4562,12 @@ msgstr "更新日志" #: FirmwareUpdater/plugin.json msgctxt "description" msgid "Provides a machine actions for updating firmware." -msgstr "" +msgstr "为固件更新提供操作选项。" #: FirmwareUpdater/plugin.json msgctxt "name" msgid "Firmware Updater" -msgstr "" +msgstr "固件更新程序" #: ProfileFlattener/plugin.json msgctxt "description" diff --git a/resources/i18n/zh_CN/fdmextruder.def.json.po b/resources/i18n/zh_CN/fdmextruder.def.json.po index f8a875cec6..cddfeae984 100644 --- a/resources/i18n/zh_CN/fdmextruder.def.json.po +++ b/resources/i18n/zh_CN/fdmextruder.def.json.po @@ -171,12 +171,12 @@ msgstr "打印开始时,喷头在 Z 轴坐标上的起始位置." #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number label" msgid "Extruder Print Cooling Fan" -msgstr "" +msgstr "挤出机打印冷却风扇" #: fdmextruder.def.json msgctxt "machine_extruder_cooling_fan_number description" msgid "The number of the print cooling fan associated with this extruder. Only change this from the default value of 0 when you have a different print cooling fan for each extruder." -msgstr "" +msgstr "打印冷却风扇的数量与该挤出机有关。仅在每个挤出机都对应不同的打印冷却风扇时,对默认值 0 进行更改。" #: fdmextruder.def.json msgctxt "platform_adhesion label" diff --git a/resources/i18n/zh_CN/fdmprinter.def.json.po b/resources/i18n/zh_CN/fdmprinter.def.json.po index 15a04ac92c..56027d5be1 100644 --- a/resources/i18n/zh_CN/fdmprinter.def.json.po +++ b/resources/i18n/zh_CN/fdmprinter.def.json.po @@ -58,9 +58,7 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "" -"在开始时执行的 G-code 命令 - 以 \n" -" 分行。" +msgstr "在开始时执行的 G-code 命令 - 以 \n 分行。" #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -72,9 +70,7 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "" -"在结束前执行的 G-code 命令 - 以 \n" -" 分行。" +msgstr "在结束前执行的 G-code 命令 - 以 \n 分行。" #: fdmprinter.def.json msgctxt "material_guid label" @@ -1079,7 +1075,7 @@ msgstr "连接顶部/底部多边形" #: fdmprinter.def.json msgctxt "connect_skin_polygons description" msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality." -msgstr "" +msgstr "在顶部/底部皮肤路径互相紧靠运行的地方连接它们。对于同心图案,启用此设置可大大减少空驶时间,但由于连接可在填充中途发生,此功能可能会降低顶部表面质量。" #: fdmprinter.def.json msgctxt "skin_angles label" @@ -1499,7 +1495,7 @@ msgstr "填充图案" #: fdmprinter.def.json msgctxt "infill_pattern description" msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction." -msgstr "" +msgstr "打印填充材料的图案。线条和锯齿形填充在交替层上交换方向,从而降低材料成本。网格、三角形、内六角、立方体、八角形、四面体、交叉和同心图案在每层完整打印。螺旋二十四面体、立方体、四面体和八角形填充随每层变化,以在各个方向提供更均衡的强度分布。" #: fdmprinter.def.json msgctxt "infill_pattern option grid" @@ -1564,7 +1560,7 @@ msgstr "交叉 3D" #: fdmprinter.def.json msgctxt "infill_pattern option gyroid" msgid "Gyroid" -msgstr "" +msgstr "螺旋二十四面体" #: fdmprinter.def.json msgctxt "zig_zaggify_infill label" @@ -1636,9 +1632,7 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "" -"在填充区域周围添加额外壁。此类壁可减少顶部/底部皮肤走线,这意味着只要付出一些额外的材料就可以使用更少的顶部/底部皮肤层达到相同的质量。\n" -"在适当配置的情况下,此功能可结合连接填充多边形以将所有填充物连接到单一挤出路径而无需空驶或回抽。" +msgstr "在填充区域周围添加额外壁。此类壁可减少顶部/底部皮肤走线,这意味着只要付出一些额外的材料就可以使用更少的顶部/底部皮肤层达到相同的质量。\n在适当配置的情况下,此功能可结合连接填充多边形以将所有填充物连接到单一挤出路径而无需空驶或回抽。" #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3273,32 +3267,32 @@ msgstr "用于支撑的填充图案的方向。支撑填充图案在水平面中 #: fdmprinter.def.json msgctxt "support_brim_enable label" msgid "Enable Support Brim" -msgstr "" +msgstr "启用支撑 Brim" #: fdmprinter.def.json msgctxt "support_brim_enable description" msgid "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate." -msgstr "" +msgstr "在第一层的支撑填充区域内生成一个 Brim。此 Brim 在支撑下方打印,而非周围。启用此设置会增强支撑与打印平台的附着。" #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "" +msgstr "支撑 Brim 宽度" #: fdmprinter.def.json msgctxt "support_brim_width description" msgid "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "在支撑下方要打印的 Brim 的宽度。较大的 Brim 可增强与打印平台的附着,但也会增加一些额外材料成本。" #: fdmprinter.def.json msgctxt "support_brim_line_count label" msgid "Support Brim Line Count" -msgstr "" +msgstr "支撑 Brim 走线次数" #: fdmprinter.def.json msgctxt "support_brim_line_count description" msgid "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material." -msgstr "" +msgstr "用于支撑 Brim 的走线数量。更多 Brim 走线可增强与打印平台的附着,但也会增加一些额外材料成本。" #: fdmprinter.def.json msgctxt "support_z_distance label" @@ -3835,9 +3829,7 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "" -"skirt 和打印第一层之间的水平距离。\n" -"这是最小距离。多个 skirt 走线将从此距离向外延伸。" +msgstr "skirt 和打印第一层之间的水平距离。\n这是最小距离。多个 skirt 走线将从此距离向外延伸。" #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -3872,12 +3864,12 @@ msgstr "brim 所用走线数量。 更多 brim 走线可增强与打印平台的 #: fdmprinter.def.json msgctxt "brim_replaces_support label" msgid "Brim Replaces Support" -msgstr "" +msgstr "Brim 替换支撑" #: fdmprinter.def.json msgctxt "brim_replaces_support description" msgid "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions." -msgstr "" +msgstr "强制围绕模型打印 Brim,即使该空间本该由支撑占据。此操作会将第一层的某些支撑区域替换为 Brim 区域。" #: fdmprinter.def.json msgctxt "brim_outside_only label" @@ -5284,9 +5276,7 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "" -"以半速挤出的上行移动的距离。\n" -"这会与之前的层产生更好的附着,而不会将这些层中的材料过度加热。 仅应用于单线打印。" +msgstr "以半速挤出的上行移动的距离。\n这会与之前的层产生更好的附着,而不会将这些层中的材料过度加热。 仅应用于单线打印。" #: fdmprinter.def.json msgctxt "wireframe_top_jump label" From 3db85b2493eb5b402875ed94225784f4e72c18f7 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 6 Nov 2018 13:48:15 +0100 Subject: [PATCH 0174/1039] Try to strip extra curaproject extensions CURA-5896 --- cura/PrintInformation.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 0d6418d388..86c90e03d3 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -374,6 +374,11 @@ class PrintInformation(QObject): if self._base_name.endswith(OLD_CURA_PROJECT_EXT): self._base_name = self._base_name[:len(self._base_name) - len(OLD_CURA_PROJECT_EXT)] + # CURA-5896 Try to strip extra extensions with an infinite amount of ".curaproject.3mf". + OLD_CURA_PROJECT_3MF_EXT = ".curaproject.3mf" + while self._base_name.endswith(OLD_CURA_PROJECT_3MF_EXT): + self._base_name = self._base_name[:len(self._base_name) - len(OLD_CURA_PROJECT_3MF_EXT)] + self._updateJobName() @pyqtProperty(str, fset = setBaseName, notify = baseNameChanged) From b6b60702c054ff93c112089583c721a6ddedd44a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 6 Nov 2018 14:32:48 +0100 Subject: [PATCH 0175/1039] Make the action panel to have a fixed width. Remove the animations when switching states. Contributes to CURA-5786. --- resources/qml/ActionPanel/ActionPanelWidget.qml | 7 +++---- resources/qml/ActionPanel/SliceProcessWidget.qml | 2 -- resources/themes/cura-light/theme.json | 1 + 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/resources/qml/ActionPanel/ActionPanelWidget.qml b/resources/qml/ActionPanel/ActionPanelWidget.qml index 1fc288af6a..0db778de5a 100644 --- a/resources/qml/ActionPanel/ActionPanelWidget.qml +++ b/resources/qml/ActionPanel/ActionPanelWidget.qml @@ -16,7 +16,7 @@ Rectangle { id: actionPanelWidget - width: childrenRect.width + 2 * UM.Theme.getSize("thick_margin").width + width: UM.Theme.getSize("action_panel_widget").width height: childrenRect.height + 2 * UM.Theme.getSize("thick_margin").height color: UM.Theme.getColor("main_background") @@ -36,13 +36,12 @@ Rectangle topMargin: UM.Theme.getSize("thick_margin").height left: parent.left leftMargin: UM.Theme.getSize("thick_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("thick_margin").width } sourceComponent: outputAvailable ? outputProcessWidget : sliceProcessWidget } - Behavior on height { NumberAnimation { duration: 100 } } - Behavior on width { NumberAnimation { duration: 100 } } - Component { id: sliceProcessWidget diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index e70ec45e43..1ba5776b6b 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -17,8 +17,6 @@ Column { id: widget - width: UM.Theme.getSize("action_panel_button").width - spacing: UM.Theme.getSize("thin_margin").height UM.I18nCatalog diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index f354b521ee..27dfbaf807 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -379,6 +379,7 @@ "configuration_selector_widget": [35.0, 4.5], "configuration_selector_mode_tabs": [0.0, 3.0], + "action_panel_widget": [25.0, 0.0], "action_panel_information_widget": [20.0, 0.0], "action_panel_button": [15.0, 3.0], From 5dddcbd6664b38f091ce0565c01a5a6ece1cc35f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 6 Nov 2018 15:14:27 +0100 Subject: [PATCH 0176/1039] Add a new property to the ActionButton to indicate whether the button has a fixed width or the width will be dependant on the content. Contributes to CURA-5786. --- resources/qml/Account/GeneralOperations.qml | 2 ++ resources/qml/Account/UserOperations.qml | 2 ++ resources/qml/ActionButton.qml | 7 +++++++ resources/qml/ActionPanel/OutputDevicesActionButton.qml | 1 + resources/qml/ActionPanel/SliceProcessWidget.qml | 1 + 5 files changed, 13 insertions(+) diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml index 6bc94dd830..362e088033 100644 --- a/resources/qml/Account/GeneralOperations.qml +++ b/resources/qml/Account/GeneralOperations.qml @@ -21,6 +21,7 @@ Row textColor: UM.Theme.getColor("main_window_header_button_text_active") textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") onClicked: Qt.openUrlExternally("https://account.ultimaker.com") + fixedWidthMode: true } Cura.ActionButton @@ -29,5 +30,6 @@ Row height: UM.Theme.getSize("account_button").height text: catalog.i18nc("@button", "Login") onClicked: Cura.API.account.login() + fixedWidthMode: true } } \ No newline at end of file diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index a12bfbf6d7..c167813425 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -21,6 +21,7 @@ Row textColor: UM.Theme.getColor("main_window_header_button_text_active") textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") onClicked: Qt.openUrlExternally("https://account.ultimaker.com") + fixedWidthMode: true } Cura.ActionButton @@ -29,5 +30,6 @@ Row height: UM.Theme.getSize("account_button").height text: catalog.i18nc("@button", "Logout") onClicked: Cura.API.account.logout() + fixedWidthMode: true } } \ No newline at end of file diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 05e75ac8c5..b35ad4ba87 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -24,6 +24,10 @@ Button property var outlineColor: color property var outlineHoverColor: hoverColor property var outlineDisabledColor: outlineColor + // This property is used to indicate whether the button has a fixed width or the width would depend on the contents + // Be careful when using fixedWidthMode, the translated texts can be too long that they won't fit. In any case, + // we elide the text to the right so the text will be cut off with the three dots at the end. + property var fixedWidthMode: false contentItem: Row { @@ -50,6 +54,9 @@ Button visible: text != "" renderType: Text.NativeRendering anchors.verticalCenter: parent.verticalCenter + width: fixedWidthMode ? button.width - button.leftPadding - button.rightPadding : undefined + horizontalAlignment: Text.AlignHCenter + elide: Text.ElideRight } } diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 87faa0a2bf..be79a1893e 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -16,6 +16,7 @@ Item { id: saveToButton height: parent.height + fixedWidthMode: true anchors { diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 1ba5776b6b..2d4a7b6b89 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -86,6 +86,7 @@ Column id: prepareButton width: parent.width height: UM.Theme.getSize("action_panel_button").height + fixedWidthMode: true text: { if ([UM.Backend.NotStarted, UM.Backend.Error].indexOf(widget.backendState) != -1) From ef3bb044f4b09fe5ab7702d9aff5e82e35145f6e Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 6 Nov 2018 15:31:51 +0100 Subject: [PATCH 0177/1039] Rename CC Red 0.6 to CC 0.6 --- .../ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg | 2 +- resources/variants/ultimaker_s5_cc06.inst.cfg | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg index 104c385aa3..99b4b142fa 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft weight = -3 material = generic_cffcpe -variant = CC Red 0.6 +variant = CC 0.6 [values] adhesion_type = skirt diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg index 14cb93e53b..80c383aa8d 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft weight = -3 material = generic_cffpa -variant = CC Red 0.6 +variant = CC 0.6 [values] adhesion_type = skirt diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg index 30c4ea8f51..c94d239c81 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft weight = -3 material = generic_gffcpe -variant = CC Red 0.6 +variant = CC 0.6 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg index 5a0640c858..e7d4d1955b 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft weight = -3 material = generic_gffpa -variant = CC Red 0.6 +variant = CC 0.6 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg index 21e2dd0661..9045c36fbe 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft weight = -3 material = generic_pla -variant = CC Red 0.6 +variant = CC 0.6 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg index 1c54089058..8e747bb06f 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = fast weight = -2 material = generic_pla -variant = CC Red 0.6 +variant = CC 0.6 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/variants/ultimaker_s5_cc06.inst.cfg b/resources/variants/ultimaker_s5_cc06.inst.cfg index dd888eff6f..d41d08118a 100644 --- a/resources/variants/ultimaker_s5_cc06.inst.cfg +++ b/resources/variants/ultimaker_s5_cc06.inst.cfg @@ -1,5 +1,5 @@ [general] -name = CC Red 0.6 +name = CC 0.6 version = 4 definition = ultimaker_s5 @@ -11,7 +11,7 @@ hardware_type = nozzle [values] brim_width = 7 machine_nozzle_cool_down_speed = 0.9 -machine_nozzle_id = CC Red 0.6 +machine_nozzle_id = CC 0.6 machine_nozzle_size = 0.6 material_print_temperature = =default_material_print_temperature + 10 raft_acceleration = =acceleration_print From 52c27239906d8d573c3e6cb599bf32f4c80e4147 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 6 Nov 2018 16:03:00 +0100 Subject: [PATCH 0178/1039] Make corrections to translation mistakes These are all the mistakes that we found in the translations to Cura 3.6. Contributes to issue CURA-5870. --- resources/i18n/ja_JP/cura.po | 75 ++++++++++------ resources/i18n/ko_KR/cura.po | 76 ++++++++++++----- resources/i18n/nl_NL/cura.po | 92 ++++++++++++++------ resources/i18n/nl_NL/fdmprinter.def.json.po | 39 ++++++--- resources/i18n/ru_RU/cura.po | 74 +++++++++++----- resources/i18n/ru_RU/fdmprinter.def.json.po | 26 ++++-- resources/i18n/tr_TR/cura.po | 84 +++++++++++++----- resources/i18n/tr_TR/fdmprinter.def.json.po | 45 ++++++---- resources/i18n/zh_CN/cura.po | 94 ++++++++++++++------- resources/i18n/zh_CN/fdmprinter.def.json.po | 32 ++++--- resources/i18n/zh_TW/cura.po | 20 ++--- resources/i18n/zh_TW/fdmprinter.def.json.po | 14 +-- 12 files changed, 461 insertions(+), 210 deletions(-) diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index 1029221991..13916ef1e2 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-09-28 15:19+0200\n" +"PO-Revision-Date: 2018-11-06 14:58+0100\n" "Last-Translator: Bothof \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -64,7 +64,11 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "

    モデルのサイズまたは材料の設定によっては、適切に印刷しない3Dモデルがあります。:

    \n

    {model_names}

    \n

    可能な限り最高の品質および信頼性を得る方法をご覧ください。

    \n

    印字品質ガイドを見る

    " +msgstr "" +"

    モデルのサイズまたは材料の設定によっては、適切に印刷しない3Dモデルがあります。:

    \n" +"

    {model_names}

    \n" +"

    可能な限り最高の品質および信頼性を得る方法をご覧ください。

    \n" +"

    印字品質ガイドを見る

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -870,7 +874,7 @@ msgstr "{0}にプロファイルを書き出すのに失敗 #, python-brace-format msgctxt "@info:status Don't translate the XML tag !" msgid "Failed to export profile to {0}: Writer plugin reported failure." -msgstr " {0}にプロファイルを書き出すことに失敗しました。:ライタープラグイン失敗の報告。" +msgstr "{0}にプロファイルを書き出すことに失敗しました。:ライタープラグイン失敗の報告。" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:143 #, python-brace-format @@ -1070,7 +1074,12 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "

    申し訳ありません。Ultimaker Cura で何らかの不具合が生じています。

    \n

    開始時に回復不能のエラーが発生しました。不適切なファイル設定が原因の可能性があります。バックアップを実行してからリセットしてください。

    \n

    バックアップは、設定フォルダに保存されます。

    \n

    問題解決のために、このクラッシュ報告をお送りください。

    \n " +msgstr "" +"

    申し訳ありません。Ultimaker Cura で何らかの不具合が生じています。

    \n" +"

    開始時に回復不能のエラーが発生しました。不適切なファイル設定が原因の可能性があります。バックアップを実行してからリセットしてください。

    \n" +"

    バックアップは、設定フォルダに保存されます。

    \n" +"

    問題解決のために、このクラッシュ報告をお送りください。

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1103,7 +1112,10 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "

    致命的なエラーが発生しました。問題解決のためこのクラッシュレポートを送信してください

    \n

    「レポート送信」ボタンを使用してバグレポートが自動的に当社サーバーに送られるようにしてください

    \n " +msgstr "" +"

    致命的なエラーが発生しました。問題解決のためこのクラッシュレポートを送信してください

    \n" +"

    「レポート送信」ボタンを使用してバグレポートが自動的に当社サーバーに送られるようにしてください

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1579,7 +1591,10 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "このプラグインにはライセンスが含まれています。\nこのプラグインをインストールするにはこのライセンスに同意する必要があります。\n下の利用規約に同意しますか?" +msgstr "" +"このプラグインにはライセンスが含まれています。\n" +"このプラグインをインストールするにはこのライセンスに同意する必要があります。\n" +"下の利用規約に同意しますか?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1604,7 +1619,7 @@ msgstr "互換性" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLoadingPage.qml:16 msgctxt "@info" msgid "Fetching packages..." -msgstr "パッケージ取得中" +msgstr "パッケージ取得中…" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml:88 msgctxt "@label" @@ -2610,7 +2625,7 @@ msgstr "プリンターへの接続が切断されました" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:187 msgctxt "@label:MonitorStatus" msgid "Printing..." -msgstr "プリント中" +msgstr "プリント中…" #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:149 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:189 @@ -2622,7 +2637,7 @@ msgstr "一時停止しました" #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:191 msgctxt "@label:MonitorStatus" msgid "Preparing..." -msgstr "準備中" +msgstr "準備中…" #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:154 msgctxt "@label:MonitorStatus" @@ -2847,12 +2862,12 @@ msgstr "フィラメントを取り込む" #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsPage.qml:286 msgctxt "@info:status Don't translate the XML tags or !" msgid "Could not import material %1: %2" -msgstr " %1フィラメントを取り込むことができない: %2" +msgstr "%1フィラメントを取り込むことができない: %2" #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsPage.qml:290 msgctxt "@info:status Don't translate the XML tag !" msgid "Successfully imported material %1" -msgstr "フィラメント%1の取り込みに成功しました。" +msgstr "フィラメント%1の取り込みに成功しました" #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsPage.qml:308 #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsPage.qml:316 @@ -2868,7 +2883,7 @@ msgstr "フィラメントの書き出しに失敗しました %1
    !" msgid "Successfully exported material to %1" -msgstr "フィラメントの%1への書き出しが完了ました。" +msgstr "フィラメントの%1への書き出しが完了ました" #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:14 msgctxt "@title:tab" @@ -3484,7 +3499,9 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "いくらかの設定プロファイルにある値とことなる場合無効にします。\nプロファイルマネージャーをクリックして開いてください。" +msgstr "" +"いくらかの設定プロファイルにある値とことなる場合無効にします。\n" +"プロファイルマネージャーをクリックして開いてください。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3520,7 +3537,7 @@ msgstr "常に見えるように設定する" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:417 msgctxt "@action:menu" msgid "Configure setting visibility..." -msgstr "視野のセッティングを構成する" +msgstr "視野のセッティングを構成する…" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:644 msgctxt "@action:inmenu" @@ -3538,7 +3555,9 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "いくらかの非表示設定は通常の計算された値と異なる値を使用します。\n表示されるようにクリックしてください。" +msgstr "" +"いくらかの非表示設定は通常の計算された値と異なる値を使用します。\n" +"表示されるようにクリックしてください。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3566,7 +3585,9 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "この設定にプロファイルと異なった値があります。\nプロファイルの値を戻すためにクリックしてください。" +msgstr "" +"この設定にプロファイルと異なった値があります。\n" +"プロファイルの値を戻すためにクリックしてください。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3574,7 +3595,9 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "このセッティングは通常計算されます、今は絶対値に固定されています。\n計算された値に変更するためにクリックを押してください。" +msgstr "" +"このセッティングは通常計算されます、今は絶対値に固定されています。\n" +"計算された値に変更するためにクリックを押してください。" #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3743,7 +3766,7 @@ msgstr "すべての設定を表示" #: /home/ruben/Projects/Cura/resources/qml/Menus/SettingVisibilityPresetsMenu.qml:53 msgctxt "@action:inmenu" msgid "Manage Setting Visibility..." -msgstr "視野のセッティングを管理する" +msgstr "視野のセッティングを管理する…" # can’t enter japanese texts #: /home/ruben/Projects/Cura/resources/qml/Menus/ContextMenu.qml:27 @@ -3799,7 +3822,9 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "プリントセットアップが無効\nG-codeファイルを修正することができません" +msgstr "" +"プリントセットアップが無効\n" +"G-codeファイルを修正することができません" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -3916,17 +3941,17 @@ msgstr "Curaを構成する…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:156 msgctxt "@action:inmenu menubar:printer" msgid "&Add Printer..." -msgstr "&プリンターを追加する" +msgstr "&プリンターを追加する…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:162 msgctxt "@action:inmenu menubar:printer" msgid "Manage Pr&inters..." -msgstr "プリンターを管理する" +msgstr "プリンターを管理する…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:169 msgctxt "@action:inmenu" msgid "Manage Materials..." -msgstr "フィラメントを管理する" +msgstr "フィラメントを管理する…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:177 msgctxt "@action:inmenu menubar:profile" @@ -3946,7 +3971,7 @@ msgstr "&今の設定/無効からプロファイルを作成する…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:203 msgctxt "@action:inmenu menubar:profile" msgid "Manage Profiles..." -msgstr "プロファイルを管理する" +msgstr "プロファイルを管理する…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:210 msgctxt "@action:inmenu menubar:help" @@ -4067,7 +4092,7 @@ msgstr "&新しいプロジェクト…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:402 msgctxt "@action:inmenu menubar:help" msgid "Show Engine &Log..." -msgstr "エンジン&ログを表示する" +msgstr "エンジン&ログを表示する…" #: /home/ruben/Projects/Cura/resources/qml/Actions.qml:410 msgctxt "@action:inmenu menubar:help" @@ -4270,7 +4295,7 @@ msgstr "設定" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:593 msgctxt "@title:window" msgid "New project" -msgstr "新しいプロジェクト…" +msgstr "新しいプロジェクト" #: /home/ruben/Projects/Cura/resources/qml/Cura.qml:594 msgctxt "@info:question" diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index 3e7980efb5..8141cdf63e 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-09-28 14:25+0100\n" +"PO-Revision-Date: 2018-11-06 15:00+0100\n" "Last-Translator: Jinbuhm Kim \n" "Language-Team: Jinbum Kim , Korean \n" "Language: ko_KR\n" @@ -64,7 +64,11 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "

    하나 이상의 3D 모델이 모델 크기 및 재료 구성으로 인해 최적의 상태로 인쇄되지 않을 수 있습니다.

    \n

    {model_names}

    \n

    인쇄 품질 및 안정성을 최고로 높이는 방법을 알아보십시오.

    \n

    인쇄 품질 가이드 보기

    " +msgstr "" +"

    하나 이상의 3D 모델이 모델 크기 및 재료 구성으로 인해 최적의 상태로 인쇄되지 않을 수 있습니다.

    \n" +"

    {model_names}

    \n" +"

    인쇄 품질 및 안정성을 최고로 높이는 방법을 알아보십시오.

    \n" +"

    인쇄 품질 가이드 보기

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -898,7 +902,7 @@ msgstr "{0}(으)로 가져올 사용자 정의 프로파일 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}:" -msgstr "{0}에서 프로파일을 가져오지 못했습니다" +msgstr "{0}에서 프로파일을 가져오지 못했습니다:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:218 #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:228 @@ -917,7 +921,7 @@ msgstr "The machine defined in profile {0} ({1}) doesn’t #, python-brace-format msgctxt "@info:status Don't translate the XML tags or !" msgid "Failed to import profile from {0}:" -msgstr "{0}에서 프로파일을 가져오지 못했습니다" +msgstr "{0}에서 프로파일을 가져오지 못했습니다:" #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:315 #, python-brace-format @@ -1069,7 +1073,12 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "

    죄송합니다, Ultimaker Cura가 정상적이지 않습니다. \n                    

    시작할 때 복구 할 수없는 오류가 발생했습니다. 이 오류는 잘못된 구성 파일로 인해 발생할 수 있습니다. 설정을 백업하고 재설정하는 것이 좋습니다. \n                    

    백업은 설정 폴더에서 찾을 수 있습니다. \n                    

    문제를 해결하기 위해이 오류 보고서를 보내주십시오. \n " +msgstr "" +"

    죄송합니다, Ultimaker Cura가 정상적이지 않습니다. \n" +"                    

    시작할 때 복구 할 수없는 오류가 발생했습니다. 이 오류는 잘못된 구성 파일로 인해 발생할 수 있습니다. 설정을 백업하고 재설정하는 것이 좋습니다. \n" +"                    

    백업은 설정 폴더에서 찾을 수 있습니다. \n" +"                    

    문제를 해결하기 위해이 오류 보고서를 보내주십시오. \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1102,7 +1111,10 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "

    치명적인 오류가 발생했습니다. 문제를 해결할 수 있도록 이 충돌 보고서를 보내주십시오

    \n

    \"보고서 전송\" 버튼을 사용하면 버그 보고서가 서버에 자동으로 전달됩니다

    \n " +msgstr "" +"

    치명적인 오류가 발생했습니다. 문제를 해결할 수 있도록 이 충돌 보고서를 보내주십시오

    \n" +"

    \"보고서 전송\" 버튼을 사용하면 버그 보고서가 서버에 자동으로 전달됩니다

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1525,7 +1537,7 @@ msgstr "확인" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxFooter.qml:17 msgctxt "@info" msgid "You will need to restart Cura before changes in packages have effect." -msgstr "패키지의 변경 사항이 적용되기 전에 Cura를 다시 시작해야 합니다" +msgstr "패키지의 변경 사항이 적용되기 전에 Cura를 다시 시작해야 합니다." #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxFooter.qml:34 msgctxt "@info:button" @@ -1578,7 +1590,10 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "이 플러그인에는 라이선스가 포함되어 있습니다.\n이 플러그인을 설치하려면 이 라이선스를 수락해야 합니다.\n아래의 약관에 동의하시겠습니까?" +msgstr "" +"이 플러그인에는 라이선스가 포함되어 있습니다.\n" +"이 플러그인을 설치하려면 이 라이선스를 수락해야 합니다.\n" +"아래의 약관에 동의하시겠습니까?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1738,7 +1753,10 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "네트워크를 통해 프린터로 직접 프린팅하려면 네트워크 케이블을 사용하거나 프린터를 WIFI 네트워크에 연결하여 프린터가 네트워크에 연결되어 있는지 확인하십시오. Cura를 프린터에 연결하지 않은 경우에도 USB 드라이브를 사용하여 g 코드 파일을 프린터로 전송할 수 있습니다\n\n아래 목록에서 프린터를 선택하십시오:" +msgstr "" +"네트워크를 통해 프린터로 직접 프린팅하려면 네트워크 케이블을 사용하거나 프린터를 WIFI 네트워크에 연결하여 프린터가 네트워크에 연결되어 있는지 확인하십시오. Cura를 프린터에 연결하지 않은 경우에도 USB 드라이브를 사용하여 g 코드 파일을 프린터로 전송할 수 있습니다\n" +"\n" +"아래 목록에서 프린터를 선택하십시오:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1907,7 +1925,7 @@ msgstr "구성 변경" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:365 msgctxt "@label" msgid "The assigned printer, %1, requires the following configuration change(s):" -msgstr "할당된 프린터 %1의 구성을 다음과 같이 변경해야 합니다." +msgstr "할당된 프린터 %1의 구성을 다음과 같이 변경해야 합니다:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:367 msgctxt "@label" @@ -2186,7 +2204,7 @@ msgstr "이미지 변환 ..." #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:33 msgctxt "@info:tooltip" msgid "The maximum distance of each pixel from \"Base.\"" -msgstr "\"Base\"에서 각 픽셀까지의 최대 거리" +msgstr "\"Base\"에서 각 픽셀까지의 최대 거리." #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:38 msgctxt "@action:label" @@ -2644,7 +2662,9 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "일부 프로파일 설정을 수정했습니다.\n이러한 설정을 유지하거나 삭제 하시겠습니까?" +msgstr "" +"일부 프로파일 설정을 수정했습니다.\n" +"이러한 설정을 유지하거나 삭제 하시겠습니까?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3346,7 +3366,9 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura는 커뮤니티와 공동으로 Ultimaker B.V.에 의해 개발되었습니다.\nCura는 다음의 오픈 소스 프로젝트를 사용합니다:" +msgstr "" +"Cura는 커뮤니티와 공동으로 Ultimaker B.V.에 의해 개발되었습니다.\n" +"Cura는 다음의 오픈 소스 프로젝트를 사용합니다:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3479,7 +3501,10 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "일부 설정/대체 값은 프로파일에 저장된 값과 다릅니다.\n\n프로파일 매니저를 열려면 클릭하십시오." +msgstr "" +"일부 설정/대체 값은 프로파일에 저장된 값과 다릅니다.\n" +"\n" +"프로파일 매니저를 열려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3533,7 +3558,10 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "일부 숨겨진 설정은 일반적인 계산 값과 다른 값을 사용합니다.\n\n이 설정을 표시하려면 클릭하십시오." +msgstr "" +"일부 숨겨진 설정은 일반적인 계산 값과 다른 값을 사용합니다.\n" +"\n" +"이 설정을 표시하려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3561,7 +3589,10 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "이 설정에는 프로파일과 다른 값이 있습니다.\n\n프로파일 값을 복원하려면 클릭하십시오." +msgstr "" +"이 설정에는 프로파일과 다른 값이 있습니다.\n" +"\n" +"프로파일 값을 복원하려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3569,7 +3600,10 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "이 설정은 일반적으로 계산되지만 현재는 절대 값이 설정되어 있습니다.\n\n계산 된 값을 복원하려면 클릭하십시오." +msgstr "" +"이 설정은 일반적으로 계산되지만 현재는 절대 값이 설정되어 있습니다.\n" +"\n" +"계산 된 값을 복원하려면 클릭하십시오." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3792,7 +3826,9 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "프린팅 설정 사용 안 함\nG-코드 파일은 수정할 수 없습니다" +msgstr "" +"프린팅 설정 사용 안 함\n" +"G-코드 파일은 수정할 수 없습니다" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4452,7 +4488,7 @@ msgstr "재료" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:543 msgctxt "@label" msgid "Use glue with this material combination" -msgstr "이 재료 조합과 함께 접착제를 사용하십시오." +msgstr "이 재료 조합과 함께 접착제를 사용하십시오" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:575 msgctxt "@label" @@ -4652,7 +4688,7 @@ msgstr "이동식 드라이브 출력 장치 플러그인" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers." -msgstr "Ultimaker 3 프린터에 대한 네트워크 연결을 관리합니다" +msgstr "Ultimaker 3 프린터에 대한 네트워크 연결을 관리합니다." #: UM3NetworkPrinting/plugin.json msgctxt "name" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index b2e4aa4086..60b7671e6c 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -8,13 +8,15 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-10-01 11:30+0100\n" +"PO-Revision-Date: 2018-11-06 15:03+0100\n" "Last-Translator: Bothof \n" "Language-Team: Dutch\n" "Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 msgctxt "@action" @@ -62,7 +64,11 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "

    Een of meer 3D-modellen worden mogelijk niet optimaal geprint vanwege het modelformaat en de materiaalconfiguratie:

    \n

    {model_names}

    \n

    Ontdek hoe u de best mogelijke printkwaliteit en betrouwbaarheid verkrijgt.

    \n

    Handleiding printkwaliteit bekijken

    " +msgstr "" +"

    Een of meer 3D-modellen worden mogelijk niet optimaal geprint vanwege het modelformaat en de materiaalconfiguratie:

    \n" +"

    {model_names}

    \n" +"

    Ontdek hoe u de best mogelijke printkwaliteit en betrouwbaarheid verkrijgt.

    \n" +"

    Handleiding printkwaliteit bekijken

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -435,7 +441,7 @@ msgstr "De PrintCores en/of materialen in de printer wijken af van de PrintCores #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:91 msgctxt "@info:status" msgid "Connected over the network" -msgstr "Via het netwerk verbonden." +msgstr "Via het netwerk verbonden" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:303 msgctxt "@info:status" @@ -1067,7 +1073,12 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "

    Oeps, Ultimaker Cura heeft een probleem gedetecteerd.

    \n

    Tijdens het opstarten is een onherstelbare fout opgetreden. Deze fout is mogelijk veroorzaakt door enkele onjuiste configuratiebestanden. Het wordt aanbevolen een back-up te maken en de standaardinstelling van uw configuratie te herstellen.

    \n

    Back-ups bevinden zich in de configuratiemap.

    \n

    Stuur ons dit crashrapport om het probleem op te lossen.

    \n " +msgstr "" +"

    Oeps, Ultimaker Cura heeft een probleem gedetecteerd.

    \n" +"

    Tijdens het opstarten is een onherstelbare fout opgetreden. Deze fout is mogelijk veroorzaakt door enkele onjuiste configuratiebestanden. Het wordt aanbevolen een back-up te maken en de standaardinstelling van uw configuratie te herstellen.

    \n" +"

    Back-ups bevinden zich in de configuratiemap.

    \n" +"

    Stuur ons dit crashrapport om het probleem op te lossen.

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1100,7 +1111,10 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "

    Er is een fatale fout opgetreden in Cura. Stuur ons het crashrapport om het probleem op te lossen

    \n

    Druk op de knop \"Rapport verzenden\" om het foutenrapport automatisch naar onze servers te verzenden

    \n " +msgstr "" +"

    Er is een fatale fout opgetreden in Cura. Stuur ons het crashrapport om het probleem op te lossen

    \n" +"

    Druk op de knop \"Rapport verzenden\" om het foutenrapport automatisch naar onze servers te verzenden

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1334,7 +1348,7 @@ msgstr "Hoogte rijbrug" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:238 msgctxt "@tooltip" msgid "The height difference between the tip of the nozzle and the gantry system (X and Y axes). Used to prevent collisions between previous prints and the gantry when printing \"One at a Time\"." -msgstr "Het hoogteverschil tussen de punt van de nozzle en het rijbrugsysteem (X- en Y-as). Wordt tijdens \"een voor een\"-printen gebruikt om botsingen tussen eerder geprinte voorwerpen en het rijbrugsysteem te voorkomen" +msgstr "Het hoogteverschil tussen de punt van de nozzle en het rijbrugsysteem (X- en Y-as). Wordt tijdens \"een voor een\"-printen gebruikt om botsingen tussen eerder geprinte voorwerpen en het rijbrugsysteem te voorkomen." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.qml:257 msgctxt "@label" @@ -1591,7 +1605,10 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "Deze invoegtoepassing bevat een licentie.\nU moet akkoord gaan met deze licentie om deze invoegtoepassing te mogen installeren.\nGaat u akkoord met de onderstaande voorwaarden?" +msgstr "" +"Deze invoegtoepassing bevat een licentie.\n" +"U moet akkoord gaan met deze licentie om deze invoegtoepassing te mogen installeren.\n" +"Gaat u akkoord met de onderstaande voorwaarden?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1751,7 +1768,10 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "Als u rechtstreeks via het netwerk wilt printen naar de printer, moet u ervoor zorgen dat de printer met een netwerkkabel is verbonden met het netwerk of moet u verbinding maken met de printer via het wifi-netwerk. Als u geen verbinding maakt tussen Cura en de printer, kunt u een USB-station gebruiken om g-code-bestanden naar de printer over te zetten.\n\nSelecteer uw printer in de onderstaande lijst:" +msgstr "" +"Als u rechtstreeks via het netwerk wilt printen naar de printer, moet u ervoor zorgen dat de printer met een netwerkkabel is verbonden met het netwerk of moet u verbinding maken met de printer via het wifi-netwerk. Als u geen verbinding maakt tussen Cura en de printer, kunt u een USB-station gebruiken om g-code-bestanden naar de printer over te zetten.\n" +"\n" +"Selecteer uw printer in de onderstaande lijst:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -2184,12 +2204,12 @@ msgstr "Cura verzendt anonieme gegevens naar Ultimaker om de printkwaliteit en g #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:101 msgctxt "@text:window" msgid "I don't want to send these data" -msgstr "Ik wil deze gegevens niet verzenden." +msgstr "Ik wil deze gegevens niet verzenden" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:111 msgctxt "@text:window" msgid "Allow sending these data to Ultimaker and help us improve Cura" -msgstr "Verzenden van deze gegevens naar Ultimaker toestaan en ons helpen Cura te verbeteren." +msgstr "Verzenden van deze gegevens naar Ultimaker toestaan en ons helpen Cura te verbeteren" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:19 msgctxt "@title:window" @@ -2229,7 +2249,7 @@ msgstr "Breedte (mm)" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:103 msgctxt "@info:tooltip" msgid "The depth in millimeters on the build plate" -msgstr "De diepte op het platform in millimeters." +msgstr "De diepte op het platform in millimeters" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:108 msgctxt "@action:label" @@ -2460,7 +2480,7 @@ msgstr "Printerupgrades Selecteren" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:38 msgctxt "@label" msgid "Please select any upgrades made to this Ultimaker 2." -msgstr "Selecteer eventuele upgrades die op deze Ultimaker 2 zijn uitgevoerd" +msgstr "Selecteer eventuele upgrades die op deze Ultimaker 2 zijn uitgevoerd." #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UM2UpgradeSelectionMachineAction.qml:47 msgctxt "@label" @@ -2659,7 +2679,9 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "U hebt enkele profielinstellingen aangepast.\nWilt u deze instellingen behouden of verwijderen?" +msgstr "" +"U hebt enkele profielinstellingen aangepast.\n" +"Wilt u deze instellingen behouden of verwijderen?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -2846,7 +2868,7 @@ msgstr "Verwijderen Bevestigen" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfilesPage.qml:240 msgctxt "@label (%1 is object name)" msgid "Are you sure you wish to remove %1? This cannot be undone!" -msgstr "Weet u zeker dat u %1 wilt verwijderen? Deze bewerking kan niet ongedaan worden gemaakt." +msgstr "Weet u zeker dat u %1 wilt verwijderen? Deze bewerking kan niet ongedaan worden gemaakt!" #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsPage.qml:277 #: /home/ruben/Projects/Cura/resources/qml/Preferences/Materials/MaterialsPage.qml:285 @@ -3361,7 +3383,9 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura is ontwikkeld door Ultimaker B.V. in samenwerking met de community.\nCura maakt met trots gebruik van de volgende opensourceprojecten:" +msgstr "" +"Cura is ontwikkeld door Ultimaker B.V. in samenwerking met de community.\n" +"Cura maakt met trots gebruik van de volgende opensourceprojecten:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3494,7 +3518,10 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "Sommige waarden of aanpassingen van instellingen zijn anders dan de waarden die in het profiel zijn opgeslagen.\n\nKlik om het profielbeheer te openen." +msgstr "" +"Sommige waarden of aanpassingen van instellingen zijn anders dan de waarden die in het profiel zijn opgeslagen.\n" +"\n" +"Klik om het profielbeheer te openen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3548,7 +3575,10 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "Een aantal verborgen instellingen gebruiken andere waarden dan hun normale berekende waarde.\n\nKlik om deze instellingen zichtbaar te maken." +msgstr "" +"Een aantal verborgen instellingen gebruiken andere waarden dan hun normale berekende waarde.\n" +"\n" +"Klik om deze instellingen zichtbaar te maken." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3563,7 +3593,7 @@ msgstr "Beïnvloed door" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:155 msgctxt "@label" msgid "This setting is always shared between all extruders. Changing it here will change the value for all extruders." -msgstr "Deze instelling wordt altijd door alle extruders gedeeld. Als u hier de instelling wijzigt, wordt de waarde voor alle extruders gewijzigd" +msgstr "Deze instelling wordt altijd door alle extruders gedeeld. Als u hier de instelling wijzigt, wordt de waarde voor alle extruders gewijzigd." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:158 msgctxt "@label" @@ -3576,7 +3606,10 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "Deze instelling heeft een andere waarde dan in het profiel.\n\nKlik om de waarde van het profiel te herstellen." +msgstr "" +"Deze instelling heeft een andere waarde dan in het profiel.\n" +"\n" +"Klik om de waarde van het profiel te herstellen." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3584,7 +3617,10 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "Deze instelling wordt normaliter berekend, maar is nu ingesteld op een absolute waarde.\n\nKlik om de berekende waarde te herstellen." +msgstr "" +"Deze instelling wordt normaliter berekend, maar is nu ingesteld op een absolute waarde.\n" +"\n" +"Klik om de berekende waarde te herstellen." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3809,7 +3845,9 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "Instelling voor printen uitgeschakeld\nG-code-bestanden kunnen niet worden aangepast" +msgstr "" +"Instelling voor printen uitgeschakeld\n" +"G-code-bestanden kunnen niet worden aangepast" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4503,7 +4541,7 @@ msgstr "Huidig platform schikken" #: MachineSettingsAction/plugin.json msgctxt "description" msgid "Provides a way to change machine settings (such as build volume, nozzle size, etc.)." -msgstr "Biedt een manier om de machine-instellingen (zoals bouwvolume, maat nozzle, enz.) te wijzigen" +msgstr "Biedt een manier om de machine-instellingen (zoals bouwvolume, maat nozzle, enz.) te wijzigen." #: MachineSettingsAction/plugin.json msgctxt "name" @@ -4613,7 +4651,7 @@ msgstr "USB-printen" #: UserAgreement/plugin.json msgctxt "description" msgid "Ask the user once if he/she agrees with our license." -msgstr "Vraag de gebruiker één keer of deze akkoord gaat met de licentie" +msgstr "Vraag de gebruiker één keer of deze akkoord gaat met de licentie." #: UserAgreement/plugin.json msgctxt "name" @@ -4673,7 +4711,7 @@ msgstr "Invoegtoepassing voor Verwijderbaar uitvoerapparaat" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers." -msgstr "Hiermee beheert u netwerkverbindingen naar Ultimaker 3-printers" +msgstr "Hiermee beheert u netwerkverbindingen naar Ultimaker 3-printers." #: UM3NetworkPrinting/plugin.json msgctxt "name" @@ -4808,7 +4846,7 @@ msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.5 naar Cura 2.6." #: VersionUpgrade/VersionUpgrade25to26/plugin.json msgctxt "name" msgid "Version Upgrade 2.5 to 2.6" -msgstr "Versie-upgrade van 2.5 naar 2.6." +msgstr "Versie-upgrade van 2.5 naar 2.6" #: VersionUpgrade/VersionUpgrade27to30/plugin.json msgctxt "description" @@ -4848,7 +4886,7 @@ msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.6 naar Cura 2.7." #: VersionUpgrade/VersionUpgrade26to27/plugin.json msgctxt "name" msgid "Version Upgrade 2.6 to 2.7" -msgstr "Versie-upgrade van 2.6 naar 2.7." +msgstr "Versie-upgrade van 2.6 naar 2.7" #: VersionUpgrade/VersionUpgrade21to22/plugin.json msgctxt "description" @@ -4868,7 +4906,7 @@ msgstr "Hiermee worden configuraties bijgewerkt van Cura 2.2 naar Cura 2.4." #: VersionUpgrade/VersionUpgrade22to24/plugin.json msgctxt "name" msgid "Version Upgrade 2.2 to 2.4" -msgstr "Versie-upgrade van 2.2 naar 2.4." +msgstr "Versie-upgrade van 2.2 naar 2.4" #: ImageReader/plugin.json msgctxt "description" diff --git a/resources/i18n/nl_NL/fdmprinter.def.json.po b/resources/i18n/nl_NL/fdmprinter.def.json.po index 844e97d189..1733d1830e 100644 --- a/resources/i18n/nl_NL/fdmprinter.def.json.po +++ b/resources/i18n/nl_NL/fdmprinter.def.json.po @@ -8,13 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-10-01 14:10+0100\n" +"PO-Revision-Date: 2018-11-06 15:03+0100\n" "Last-Translator: Bothof \n" "Language-Team: Dutch\n" "Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -56,7 +57,9 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "G-code-opdrachten die aan het begin worden uitgevoerd, gescheiden door \n." +msgstr "" +"G-code-opdrachten die aan het begin worden uitgevoerd, gescheiden door \n" +"." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -68,7 +71,9 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "G-code-opdrachten die aan het eind worden uitgevoerd, gescheiden door \n." +msgstr "" +"G-code-opdrachten die aan het eind worden uitgevoerd, gescheiden door \n" +"." #: fdmprinter.def.json msgctxt "material_guid label" @@ -543,7 +548,7 @@ msgstr "Maximale Acceleratie X" #: fdmprinter.def.json msgctxt "machine_max_acceleration_x description" msgid "Maximum acceleration for the motor of the X-direction" -msgstr "De maximale acceleratie van de motor in de X-richting." +msgstr "De maximale acceleratie van de motor in de X-richting" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y label" @@ -693,7 +698,7 @@ msgstr "Minimale Doorvoersnelheid" #: fdmprinter.def.json msgctxt "machine_minimum_feedrate description" msgid "The minimal movement speed of the print head." -msgstr "De minimale bewegingssnelheid van de printkop" +msgstr "De minimale bewegingssnelheid van de printkop." #: fdmprinter.def.json msgctxt "machine_feeder_wheel_diameter label" @@ -743,7 +748,7 @@ msgstr "Lijnbreedte" #: fdmprinter.def.json msgctxt "line_width description" msgid "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints." -msgstr "De breedte van een enkele lijn. Over het algemeen dient de breedte van elke lijn overeen te komen met de breedte van de nozzle. Wanneer deze waarde echter iets wordt verlaagd, resulteert dit in betere prints" +msgstr "De breedte van een enkele lijn. Over het algemeen dient de breedte van elke lijn overeen te komen met de breedte van de nozzle. Wanneer deze waarde echter iets wordt verlaagd, resulteert dit in betere prints." #: fdmprinter.def.json msgctxt "wall_line_width label" @@ -1630,7 +1635,9 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "Voeg extra wanden toe rondom de vulling. Deze wanden kunnen ervoor zorgen dat de skin aan de boven-/onderkant minder doorzakt. Dit betekent dat u met alleen wat extra materiaal voor dezelfde kwaliteit minder skinlagen aan de boven-/onderkant nodig hebt.\nDeze optie kan in combinatie met de optie 'Polygonen voor de vulling verbinden' worden gebruikt om alle vulling in één doorvoerpad te verbinden zonder extra bewegingen of intrekkingen, mits correct ingesteld." +msgstr "" +"Voeg extra wanden toe rondom de vulling. Deze wanden kunnen ervoor zorgen dat de skin aan de boven-/onderkant minder doorzakt. Dit betekent dat u met alleen wat extra materiaal voor dezelfde kwaliteit minder skinlagen aan de boven-/onderkant nodig hebt.\n" +"Deze optie kan in combinatie met de optie 'Polygonen voor de vulling verbinden' worden gebruikt om alle vulling in één doorvoerpad te verbinden zonder extra bewegingen of intrekkingen, mits correct ingesteld." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1860,7 +1867,7 @@ msgstr "Standaard printtemperatuur" #: fdmprinter.def.json msgctxt "default_material_print_temperature description" msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value" -msgstr "De standaardtemperatuur waarmee wordt geprint. Dit moet overeenkomen met de basistemperatuur van een materiaal. Voor alle andere printtemperaturen moet een offset worden gebruikt die gebaseerd is op deze waarde." +msgstr "De standaardtemperatuur waarmee wordt geprint. Dit moet overeenkomen met de basistemperatuur van een materiaal. Voor alle andere printtemperaturen moet een offset worden gebruikt die gebaseerd is op deze waarde" #: fdmprinter.def.json msgctxt "material_print_temperature label" @@ -1920,7 +1927,7 @@ msgstr "Standaardtemperatuur platform" #: fdmprinter.def.json msgctxt "default_material_bed_temperature description" msgid "The default temperature used for the heated build plate. This should be the \"base\" temperature of a build plate. All other print temperatures should use offsets based on this value" -msgstr "De standaardtemperatuur die wordt gebruikt voor het verwarmde platform. Dit moet overeenkomen met de basistemperatuur van een platform. Voor alle andere printtemperaturen moet een offset worden gebruikt die is gebaseerd op deze waarde." +msgstr "De standaardtemperatuur die wordt gebruikt voor het verwarmde platform. Dit moet overeenkomen met de basistemperatuur van een platform. Voor alle andere printtemperaturen moet een offset worden gebruikt die is gebaseerd op deze waarde" #: fdmprinter.def.json msgctxt "material_bed_temperature label" @@ -2010,7 +2017,7 @@ msgstr "Intrekken bij laagwisseling" #: fdmprinter.def.json msgctxt "retract_at_layer_change description" msgid "Retract the filament when the nozzle is moving to the next layer." -msgstr "Trek het filament in wanneer de nozzle naar de volgende laag beweegt. " +msgstr "Trek het filament in wanneer de nozzle naar de volgende laag beweegt." #: fdmprinter.def.json msgctxt "retraction_amount label" @@ -2380,7 +2387,7 @@ msgstr "Maximale Snelheid voor het Afstemmen van Doorvoer" #: fdmprinter.def.json msgctxt "speed_equalize_flow_max description" msgid "Maximum print speed when adjusting the print speed in order to equalize flow." -msgstr "Maximale printsnelheid tijdens het aanpassen van de printsnelheid om de doorvoer af te stemmen" +msgstr "Maximale printsnelheid tijdens het aanpassen van de printsnelheid om de doorvoer af te stemmen." #: fdmprinter.def.json msgctxt "acceleration_enabled label" @@ -3275,7 +3282,7 @@ msgstr "Genereer een brim binnen de supportvulgebieden van de eerste laag. Deze #: fdmprinter.def.json msgctxt "support_brim_width label" msgid "Support Brim Width" -msgstr "Lijnbreedte supportbrim" +msgstr "Breedte supportbrim" #: fdmprinter.def.json msgctxt "support_brim_width description" @@ -3827,7 +3834,9 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "De horizontale afstand tussen de skirt en de eerste laag van de print.\nDit is de minimumafstand. Als u meerdere skirtlijnen print, worden deze vanaf deze afstand naar buiten geprint." +msgstr "" +"De horizontale afstand tussen de skirt en de eerste laag van de print.\n" +"Dit is de minimumafstand. Als u meerdere skirtlijnen print, worden deze vanaf deze afstand naar buiten geprint." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -5274,7 +5283,9 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "De afstand van een opwaartse beweging waarbij de doorvoersnelheid wordt gehalveerd.\nHierdoor ontstaat een betere hechting aan voorgaande lagen, zonder dat het materiaal in die lagen te zeer wordt verwarmd. Alleen van toepassing op Draadprinten." +msgstr "" +"De afstand van een opwaartse beweging waarbij de doorvoersnelheid wordt gehalveerd.\n" +"Hierdoor ontstaat een betere hechting aan voorgaande lagen, zonder dat het materiaal in die lagen te zeer wordt verwarmd. Alleen van toepassing op Draadprinten." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 863354188a..c5fe8b331f 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-10-01 13:25+0100\n" +"PO-Revision-Date: 2018-11-06 15:29+0100\n" "Last-Translator: Bothof \n" "Language-Team: Ruslan Popov , Russian \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 @@ -64,7 +64,11 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "

    Одна или несколько 3D-моделей могут не напечататься оптимальным образом из-за размера модели и конфигурации материала:

    \n

    {model_names}

    \n

    Узнайте, как обеспечить максимально возможное качество и высокую надежность печати.

    \n

    Ознакомиться с руководством по качеству печати

    " +msgstr "" +"

    Одна или несколько 3D-моделей могут не напечататься оптимальным образом из-за размера модели и конфигурации материала:

    \n" +"

    {model_names}

    \n" +"

    Узнайте, как обеспечить максимально возможное качество и высокую надежность печати.

    \n" +"

    Ознакомиться с руководством по качеству печати

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -437,7 +441,7 @@ msgstr "Модуль PrintCore и/или материал в вашем прин #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:91 msgctxt "@info:status" msgid "Connected over the network" -msgstr "Подключен по сети." +msgstr "Подключен по сети" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:303 msgctxt "@info:status" @@ -1069,7 +1073,12 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "

    В ПО Ultimaker Cura обнаружена ошибка.

    \n

    Во время запуска обнаружена неустранимая ошибка. Возможно, она вызвана некоторыми файлами конфигурации с неправильными данными. Рекомендуется создать резервную копию конфигурации и сбросить ее.

    \n

    Резервные копии хранятся в папке конфигурации.

    \n

    Отправьте нам этот отчет о сбое для устранения проблемы.

    \n " +msgstr "" +"

    В ПО Ultimaker Cura обнаружена ошибка.

    \n" +"

    Во время запуска обнаружена неустранимая ошибка. Возможно, она вызвана некоторыми файлами конфигурации с неправильными данными. Рекомендуется создать резервную копию конфигурации и сбросить ее.

    \n" +"

    Резервные копии хранятся в папке конфигурации.

    \n" +"

    Отправьте нам этот отчет о сбое для устранения проблемы.

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1102,7 +1111,10 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "

    В Cura возникла критическая ошибка. Отправьте нам этот отчет о сбое для устранения проблемы

    \n

    Нажмите кнопку «Отправить отчет», чтобы автоматически опубликовать отчет об ошибке на наших серверах

    \n " +msgstr "" +"

    В Cura возникла критическая ошибка. Отправьте нам этот отчет о сбое для устранения проблемы

    \n" +"

    Нажмите кнопку «Отправить отчет», чтобы автоматически опубликовать отчет об ошибке на наших серверах

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1479,7 +1491,7 @@ msgstr "Обновить" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml:31 msgctxt "@action:button" msgid "Updating" -msgstr "Обновление..." +msgstr "Обновление" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml:46 #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml:32 @@ -1578,7 +1590,10 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "Этот плагин содержит лицензию.\nЧтобы установить этот плагин, необходимо принять условия лицензии.\nПринять приведенные ниже условия?" +msgstr "" +"Этот плагин содержит лицензию.\n" +"Чтобы установить этот плагин, необходимо принять условия лицензии.\n" +"Принять приведенные ниже условия?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1738,7 +1753,10 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "Для печати на вашем принтере через сеть, пожалуйста, удостоверьтесь, что ваш принтер подключен к сети с помощью кабеля или через WiFi. Если вы не подключили Cura к вашему принтеру, вы по-прежнему можете использовать USB флешку для переноса G-Code файлов на ваш принтер.\n\nУкажите ваш принтер в списке ниже:" +msgstr "" +"Для печати на вашем принтере через сеть, пожалуйста, удостоверьтесь, что ваш принтер подключен к сети с помощью кабеля или через WiFi. Если вы не подключили Cura к вашему принтеру, вы по-прежнему можете использовать USB флешку для переноса G-Code файлов на ваш принтер.\n" +"\n" +"Укажите ваш принтер в списке ниже:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -1982,7 +2000,7 @@ msgstr "Управление принтерами" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml:115 msgctxt "@label" msgid "Move to top" -msgstr "переместить в начало" +msgstr "Переместить в начало" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml:124 msgctxt "@label" @@ -2648,7 +2666,9 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "Вы изменили некоторые параметры профиля.\nЖелаете сохранить их или вернуть к прежним значениям?" +msgstr "" +"Вы изменили некоторые параметры профиля.\n" +"Желаете сохранить их или вернуть к прежним значениям?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3350,7 +3370,9 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura разработана компанией Ultimaker B.V. совместно с сообществом.\nCura использует следующие проекты с открытым исходным кодом:" +msgstr "" +"Cura разработана компанией Ultimaker B.V. совместно с сообществом.\n" +"Cura использует следующие проекты с открытым исходным кодом:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3483,7 +3505,10 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "Значения некоторых параметров отличаются от значений профиля.\n\nНажмите для открытия менеджера профилей." +msgstr "" +"Значения некоторых параметров отличаются от значений профиля.\n" +"\n" +"Нажмите для открытия менеджера профилей." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3537,7 +3562,10 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "Некоторые из скрытых параметров используют значения, отличающиеся от их вычисленных значений.\n\nЩёлкните, чтобы сделать эти параметры видимыми." +msgstr "" +"Некоторые из скрытых параметров используют значения, отличающиеся от их вычисленных значений.\n" +"\n" +"Щёлкните, чтобы сделать эти параметры видимыми." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3565,7 +3593,10 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "Значение этого параметра отличается от значения в профиле.\n\nЩёлкните для восстановления значения из профиля." +msgstr "" +"Значение этого параметра отличается от значения в профиле.\n" +"\n" +"Щёлкните для восстановления значения из профиля." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3573,7 +3604,10 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "Обычно это значение вычисляется, но в настоящий момент было установлено явно.\n\nЩёлкните для восстановления вычисленного значения." +msgstr "" +"Обычно это значение вычисляется, но в настоящий момент было установлено явно.\n" +"\n" +"Щёлкните для восстановления вычисленного значения." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3800,7 +3834,9 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "Настройка принтера отключена\nG-code файлы нельзя изменять" +msgstr "" +"Настройка принтера отключена\n" +"G-code файлы нельзя изменять" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4608,7 +4644,7 @@ msgstr "Печать через USB" #: UserAgreement/plugin.json msgctxt "description" msgid "Ask the user once if he/she agrees with our license." -msgstr "Запрашивает согласие пользователя с условиями лицензии" +msgstr "Запрашивает согласие пользователя с условиями лицензии." #: UserAgreement/plugin.json msgctxt "name" @@ -4668,7 +4704,7 @@ msgstr "Плагин для работы с внешним носителем" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers." -msgstr "Управляет сетевыми соединениями с принтерами Ultimaker 3" +msgstr "Управляет сетевыми соединениями с принтерами Ultimaker 3." #: UM3NetworkPrinting/plugin.json msgctxt "name" diff --git a/resources/i18n/ru_RU/fdmprinter.def.json.po b/resources/i18n/ru_RU/fdmprinter.def.json.po index 0697420b6a..58dde033be 100644 --- a/resources/i18n/ru_RU/fdmprinter.def.json.po +++ b/resources/i18n/ru_RU/fdmprinter.def.json.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-10-01 14:15+0100\n" +"PO-Revision-Date: 2018-11-06 15:29+0100\n" "Last-Translator: Bothof \n" "Language-Team: Ruslan Popov , Russian \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: fdmprinter.def.json @@ -58,7 +58,9 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "Команды в G-коде, которые будут выполнены в самом начале, разделенные с помощью \n." +msgstr "" +"Команды в G-коде, которые будут выполнены в самом начале, разделенные с помощью \n" +"." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -70,7 +72,9 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "Команды в G-коде, которые будут выполнены в самом конце, разделенные с помощью \n." +msgstr "" +"Команды в G-коде, которые будут выполнены в самом конце, разделенные с помощью \n" +"." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1632,7 +1636,9 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "Добавление дополнительных стенок вокруг области заполнения. Эти стенки могут уменьшить провисание верхних/нижних линий оболочки, что уменьшает необходимое количество верхних/нижних слоев оболочки без ухудшения качества за счет небольшого увеличения количества материала.\nЭта функция может сочетаться с соединением полигонов заполнения для соединения всего участка заполнения в один путь экструзии без необходимости в движениях или откатах в случае правильной настройки." +msgstr "" +"Добавление дополнительных стенок вокруг области заполнения. Эти стенки могут уменьшить провисание верхних/нижних линий оболочки, что уменьшает необходимое количество верхних/нижних слоев оболочки без ухудшения качества за счет небольшого увеличения количества материала.\n" +"Эта функция может сочетаться с соединением полигонов заполнения для соединения всего участка заполнения в один путь экструзии без необходимости в движениях или откатах в случае правильной настройки." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1862,7 +1868,7 @@ msgstr "Температура сопла" #: fdmprinter.def.json msgctxt "default_material_print_temperature description" msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value" -msgstr "Стандартная температура сопла, используемая при печати. Значением должна быть \"базовая\" температура для материала. Все другие температуры печати должны быть выражены смещениями от основного значения." +msgstr "Стандартная температура сопла, используемая при печати. Значением должна быть \"базовая\" температура для материала. Все другие температуры печати должны быть выражены смещениями от основного значения" #: fdmprinter.def.json msgctxt "material_print_temperature label" @@ -3829,7 +3835,9 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "Горизонтальное расстояние между юбкой и первым слоем печати.\nМинимальное расстояние. Несколько линий юбки будут расширяться от этого расстояния." +msgstr "" +"Горизонтальное расстояние между юбкой и первым слоем печати.\n" +"Минимальное расстояние. Несколько линий юбки будут расширяться от этого расстояния." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -5276,7 +5284,9 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "Расстояние движения вверх, при котором выдавливание идёт на половине скорости.\nЭто может улучшить прилипание к предыдущим слоям, не перегревая материал тех слоёв. Применяется только при каркасной печати." +msgstr "" +"Расстояние движения вверх, при котором выдавливание идёт на половине скорости.\n" +"Это может улучшить прилипание к предыдущим слоям, не перегревая материал тех слоёв. Применяется только при каркасной печати." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index 4b52e474b7..f801db7f78 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -8,13 +8,15 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-10-01 13:40+0100\n" +"PO-Revision-Date: 2018-11-06 15:33+0100\n" "Last-Translator: Bothof \n" "Language-Team: Turkish\n" "Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 msgctxt "@action" @@ -62,7 +64,11 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "

    Model boyutu ve model yapılandırması nedeniyle bir veya daha fazla 3D model optimum yazdırılamayabilir:

    \n

    {model_names}

    \n

    En iyi kalite ve güvenilirliği nasıl elde edeceğinizi öğrenin.

    \n

    Yazdırma kalitesi kılavuzunu görüntüleyin

    " +msgstr "" +"

    Model boyutu ve model yapılandırması nedeniyle bir veya daha fazla 3D model optimum yazdırılamayabilir:

    \n" +"

    {model_names}

    \n" +"

    En iyi kalite ve güvenilirliği nasıl elde edeceğinizi öğrenin.

    \n" +"

    Yazdırma kalitesi kılavuzunu görüntüleyin

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -167,7 +173,7 @@ msgstr "Yazılacak dosya biçimleri mevcut değil!" #, python-brace-format msgctxt "@info:progress Don't translate the XML tags !" msgid "Saving to Removable Drive {0}" -msgstr "Çıkarılabilir Sürücü {0} Üzerine Kaydediliyor " +msgstr "Çıkarılabilir Sürücü {0} Üzerine Kaydediliyor" #: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:94 msgctxt "@info:title" @@ -435,7 +441,7 @@ msgstr "Yazıcınızda bulunan PrintCore’lar ve/veya malzemeler geçerli proje #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:91 msgctxt "@info:status" msgid "Connected over the network" -msgstr "Ağ üzerinden bağlandı." +msgstr "Ağ üzerinden bağlandı" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:303 msgctxt "@info:status" @@ -509,7 +515,7 @@ msgstr "Katman görünümü" #: /home/ruben/Projects/Cura/plugins/SimulationView/SimulationView.py:113 msgctxt "@info:status" msgid "Cura does not accurately display layers when Wire Printing is enabled" -msgstr "Tel Yazma etkinleştirildiğinde, Cura katmanları doğru olarak görüntülemez." +msgstr "Tel Yazma etkinleştirildiğinde, Cura katmanları doğru olarak görüntülemez" #: /home/ruben/Projects/Cura/plugins/SimulationView/SimulationView.py:114 msgctxt "@info:title" @@ -548,7 +554,7 @@ msgstr "Daha fazla bilgi" #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:58 msgctxt "@action:tooltip" msgid "See more information on what data Cura sends." -msgstr "Cura’nın gönderdiği veriler hakkında daha fazla bilgi alın" +msgstr "Cura’nın gönderdiği veriler hakkında daha fazla bilgi alın." #: /home/ruben/Projects/Cura/plugins/SliceInfoPlugin/SliceInfo.py:60 msgctxt "@action:button" @@ -647,7 +653,7 @@ msgstr "Bilgi" #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" msgid "Per Model Settings" -msgstr "Model Başına Ayarlar " +msgstr "Model Başına Ayarlar" #: /home/ruben/Projects/Cura/plugins/PerObjectSettingsTool/__init__.py:15 msgctxt "@info:tooltip" @@ -1067,7 +1073,12 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "

    Ultimaker Cura doğru görünmeyen bir şeyle karşılaştı.

    \n

    Başlatma esnasında kurtarılamaz bir hata ile karşılaştık. Muhtemelen bazı hatalı yapılandırma dosyalarından kaynaklanıyordu. Yapılandırmanızı yedekleyip sıfırlamanızı öneriyoruz.

    \n

    Yedekler yapılandırma klasöründe bulunabilir.

    \n

    Sorunu düzeltmek için lütfen bu Çökme Raporunu bize gönderin.

    \n " +msgstr "" +"

    Ultimaker Cura doğru görünmeyen bir şeyle karşılaştı.

    \n" +"

    Başlatma esnasında kurtarılamaz bir hata ile karşılaştık. Muhtemelen bazı hatalı yapılandırma dosyalarından kaynaklanıyordu. Yapılandırmanızı yedekleyip sıfırlamanızı öneriyoruz.

    \n" +"

    Yedekler yapılandırma klasöründe bulunabilir.

    \n" +"

    Sorunu düzeltmek için lütfen bu Çökme Raporunu bize gönderin.

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1100,7 +1111,10 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "

    Cura’da onarılamaz bir hata oluştu. Lütfen sorunu çözmek için bize Çökme Raporunu gönderin

    \n

    Sunucularımıza otomatik olarak bir hata raporu yüklemek için lütfen \"Rapor gönder\" düğmesini kullanın

    \n " +msgstr "" +"

    Cura’da onarılamaz bir hata oluştu. Lütfen sorunu çözmek için bize Çökme Raporunu gönderin

    \n" +"

    Sunucularımıza otomatik olarak bir hata raporu yüklemek için lütfen \"Rapor gönder\" düğmesini kullanın

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1576,7 +1590,10 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "Bu eklenti bir lisans içerir.\nBu eklentiyi yüklemek için bu lisansı kabul etmeniz gerekir.\nAşağıdaki koşulları kabul ediyor musunuz?" +msgstr "" +"Bu eklenti bir lisans içerir.\n" +"Bu eklentiyi yüklemek için bu lisansı kabul etmeniz gerekir.\n" +"Aşağıdaki koşulları kabul ediyor musunuz?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1736,7 +1753,10 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "Yazıcınıza ağ üzerinden doğrudan bağlamak için, lütfen yazıcınızın ağ kablosu kullanan bir ağa bağlı olduğundan emin olun veya yazıcınızı WiFi ağına bağlayın. Cura'ya yazıcınız ile bağlanamıyorsanız g-code dosyalarını yazıcınıza aktarmak için USB sürücüsü kullanabilirsiniz.\n\nAşağıdaki listeden yazıcınızı seçin:" +msgstr "" +"Yazıcınıza ağ üzerinden doğrudan bağlamak için, lütfen yazıcınızın ağ kablosu kullanan bir ağa bağlı olduğundan emin olun veya yazıcınızı WiFi ağına bağlayın. Cura'ya yazıcınız ile bağlanamıyorsanız g-code dosyalarını yazıcınıza aktarmak için USB sürücüsü kullanabilirsiniz.\n" +"\n" +"Aşağıdaki listeden yazıcınızı seçin:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -2239,7 +2259,7 @@ msgstr "Daha koyu olan daha yüksek" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:149 msgctxt "@info:tooltip" msgid "The amount of smoothing to apply to the image." -msgstr "Resme uygulanacak düzeltme miktarı" +msgstr "Resme uygulanacak düzeltme miktarı." #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:154 msgctxt "@action:label" @@ -2622,7 +2642,7 @@ msgstr "Hazırlanıyor..." #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:154 msgctxt "@label:MonitorStatus" msgid "Please remove the print" -msgstr "Lütfen yazıcıyı çıkarın " +msgstr "Lütfen yazıcıyı çıkarın" #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:325 msgctxt "@label" @@ -2644,7 +2664,9 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "Bazı profil ayarlarını özelleştirdiniz.\nBu ayarları kaydetmek veya iptal etmek ister misiniz?" +msgstr "" +"Bazı profil ayarlarını özelleştirdiniz.\n" +"Bu ayarları kaydetmek veya iptal etmek ister misiniz?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -2959,7 +2981,7 @@ msgstr "Dışarıda kalan alanı göster" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:355 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" -msgstr "Bir model seçildiğinde bu model görüntünün ortasında kalacak şekilde kamera hareket eder." +msgstr "Bir model seçildiğinde bu model görüntünün ortasında kalacak şekilde kamera hareket eder" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:360 msgctxt "@action:button" @@ -3346,7 +3368,9 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura, topluluk iş birliği ile Ultimaker B.V. tarafından geliştirilmiştir.\nCura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" +msgstr "" +"Cura, topluluk iş birliği ile Ultimaker B.V. tarafından geliştirilmiştir.\n" +"Cura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3479,7 +3503,10 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "Bazı ayar/geçersiz kılma değerleri profilinizde saklanan değerlerden farklıdır.\n\nProfil yöneticisini açmak için tıklayın." +msgstr "" +"Bazı ayar/geçersiz kılma değerleri profilinizde saklanan değerlerden farklıdır.\n" +"\n" +"Profil yöneticisini açmak için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3533,7 +3560,10 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "Gizlenen bazı ayarlar normal hesaplanan değerden farklı değerler kullanır.\n\nBu ayarları görmek için tıklayın." +msgstr "" +"Gizlenen bazı ayarlar normal hesaplanan değerden farklı değerler kullanır.\n" +"\n" +"Bu ayarları görmek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3561,7 +3591,10 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "Bu ayarın değeri profilden farklıdır.\n\nProfil değerini yenilemek için tıklayın." +msgstr "" +"Bu ayarın değeri profilden farklıdır.\n" +"\n" +"Profil değerini yenilemek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3569,7 +3602,10 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "Bu ayar normal olarak yapılır ama şu anda mutlak değer ayarı var.\n\nHesaplanan değeri yenilemek için tıklayın." +msgstr "" +"Bu ayar normal olarak yapılır ama şu anda mutlak değer ayarı var.\n" +"\n" +"Hesaplanan değeri yenilemek için tıklayın." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3794,7 +3830,9 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "Yazdırma Ayarı devre dışı\nG-code dosyaları üzerinde değişiklik yapılamaz" +msgstr "" +"Yazdırma Ayarı devre dışı\n" +"G-code dosyaları üzerinde değişiklik yapılamaz" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4598,7 +4636,7 @@ msgstr "USB yazdırma" #: UserAgreement/plugin.json msgctxt "description" msgid "Ask the user once if he/she agrees with our license." -msgstr "Kullanıcıya bir kez lisansımızı kabul edip etmediğini sorun" +msgstr "Kullanıcıya bir kez lisansımızı kabul edip etmediğini sorun." #: UserAgreement/plugin.json msgctxt "name" @@ -4658,7 +4696,7 @@ msgstr "Çıkarılabilir Sürücü Çıkış Cihazı Eklentisi" #: UM3NetworkPrinting/plugin.json msgctxt "description" msgid "Manages network connections to Ultimaker 3 printers." -msgstr "Ultimaker 3 yazıcıları için ağ bağlantılarını yönetir" +msgstr "Ultimaker 3 yazıcıları için ağ bağlantılarını yönetir." #: UM3NetworkPrinting/plugin.json msgctxt "name" diff --git a/resources/i18n/tr_TR/fdmprinter.def.json.po b/resources/i18n/tr_TR/fdmprinter.def.json.po index 2060ab23d4..955eab686a 100644 --- a/resources/i18n/tr_TR/fdmprinter.def.json.po +++ b/resources/i18n/tr_TR/fdmprinter.def.json.po @@ -8,13 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-10-01 14:20+0100\n" +"PO-Revision-Date: 2018-11-06 15:36+0100\n" "Last-Translator: Bothof \n" "Language-Team: Turkish\n" "Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -56,7 +57,9 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr " \n ile ayrılan, başlangıçta yürütülecek G-code komutları." +msgstr "" +" \n" +" ile ayrılan, başlangıçta yürütülecek G-code komutları." #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -68,7 +71,9 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr " \n ile ayrılan, bitişte yürütülecek G-code komutları." +msgstr "" +" \n" +" ile ayrılan, bitişte yürütülecek G-code komutları." #: fdmprinter.def.json msgctxt "material_guid label" @@ -1630,7 +1635,9 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "Dolgu alanının etrafına ekstra duvar ekle. Bu duvarlar üst/alt yüzey hatlarının daha az aşağı düşmesini sağlar. Yani biraz fazla materyal kullanarak, daha az üst/alt yüzey katmanı ile aynı kaliteyi yakalayabilirsiniz.\nBu özellik, doğru konfigüre edildiğinde, harekete veya geri çekmeye gerek kalmadan Dolgu Poligonlarını Bağlama ile birlikte tüm dolguyu tek bir ekstrüzyon yoluna bağlayabilir." +msgstr "" +"Dolgu alanının etrafına ekstra duvar ekle. Bu duvarlar üst/alt yüzey hatlarının daha az aşağı düşmesini sağlar. Yani biraz fazla materyal kullanarak, daha az üst/alt yüzey katmanı ile aynı kaliteyi yakalayabilirsiniz.\n" +"Bu özellik, doğru konfigüre edildiğinde, harekete veya geri çekmeye gerek kalmadan Dolgu Poligonlarını Bağlama ile birlikte tüm dolguyu tek bir ekstrüzyon yoluna bağlayabilir." #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -1860,7 +1867,7 @@ msgstr "Varsayılan Yazdırma Sıcaklığı" #: fdmprinter.def.json msgctxt "default_material_print_temperature description" msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value" -msgstr "Yazdırma için kullanılan varsayılan sıcaklık. Bu sıcaklık malzemenin “temel” sıcaklığı olmalıdır. Diğer tüm yazıcı sıcaklıkları bu değere dayanan ofsetler kullanmalıdır." +msgstr "Yazdırma için kullanılan varsayılan sıcaklık. Bu sıcaklık malzemenin “temel” sıcaklığı olmalıdır. Diğer tüm yazıcı sıcaklıkları bu değere dayanan ofsetler kullanmalıdır" #: fdmprinter.def.json msgctxt "material_print_temperature label" @@ -1890,7 +1897,7 @@ msgstr "İlk Yazdırma Sıcaklığı" #: fdmprinter.def.json msgctxt "material_initial_print_temperature description" msgid "The minimal temperature while heating up to the Printing Temperature at which printing can already start." -msgstr "Yazdırmanın başlayacağı Yazdırma Sıcaklığına ulaşırken görülen minimum sıcaklık" +msgstr "Yazdırmanın başlayacağı Yazdırma Sıcaklığına ulaşırken görülen minimum sıcaklık." #: fdmprinter.def.json msgctxt "material_final_print_temperature label" @@ -1920,7 +1927,7 @@ msgstr "Varsayılan Yapı Levhası Sıcaklığı" #: fdmprinter.def.json msgctxt "default_material_bed_temperature description" msgid "The default temperature used for the heated build plate. This should be the \"base\" temperature of a build plate. All other print temperatures should use offsets based on this value" -msgstr "Isınan yapı levhası için kullanılan varsayılan sıcaklık. Bu sıcaklık yapı levhasının “temel” sıcaklığı olmalıdır. Diğer tüm yazıcı sıcaklıkları bu değere dayanan ofsetler kullanmalıdır." +msgstr "Isınan yapı levhası için kullanılan varsayılan sıcaklık. Bu sıcaklık yapı levhasının “temel” sıcaklığı olmalıdır. Diğer tüm yazıcı sıcaklıkları bu değere dayanan ofsetler kullanmalıdır" #: fdmprinter.def.json msgctxt "material_bed_temperature label" @@ -2010,7 +2017,7 @@ msgstr "Katman Değişimindeki Geri Çekme" #: fdmprinter.def.json msgctxt "retract_at_layer_change description" msgid "Retract the filament when the nozzle is moving to the next layer." -msgstr "Nozül bir sonraki katmana doğru hareket ettiğinde filamanı geri çekin. " +msgstr "Nozül bir sonraki katmana doğru hareket ettiğinde filamanı geri çekin." #: fdmprinter.def.json msgctxt "retraction_amount label" @@ -3470,7 +3477,7 @@ msgstr "Destek Arayüzü Kalınlığı" #: fdmprinter.def.json msgctxt "support_interface_height description" msgid "The thickness of the interface of the support where it touches with the model on the bottom or the top." -msgstr "Alt veya üst kısımdaki modele değdiği yerde destek arayüzü kalınlığı" +msgstr "Alt veya üst kısımdaki modele değdiği yerde destek arayüzü kalınlığı." #: fdmprinter.def.json msgctxt "support_roof_height label" @@ -3827,7 +3834,9 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "Baskının eteği ve ilk katmanı arasındaki yatay mesafe.\nMinimum mesafedir. Bu mesafeden çok sayıda etek hattı dışarı doğru uzanır." +msgstr "" +"Baskının eteği ve ilk katmanı arasındaki yatay mesafe.\n" +"Minimum mesafedir. Bu mesafeden çok sayıda etek hattı dışarı doğru uzanır." #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -4147,7 +4156,7 @@ msgstr "Radye Fan Hızı" #: fdmprinter.def.json msgctxt "raft_fan_speed description" msgid "The fan speed for the raft." -msgstr "Radye için fan hızı" +msgstr "Radye için fan hızı." #: fdmprinter.def.json msgctxt "raft_surface_fan_speed label" @@ -4157,7 +4166,7 @@ msgstr "Radye Üst Fan Hızı" #: fdmprinter.def.json msgctxt "raft_surface_fan_speed description" msgid "The fan speed for the top raft layers." -msgstr "Üst radye katmanları için fan hızı" +msgstr "Üst radye katmanları için fan hızı." #: fdmprinter.def.json msgctxt "raft_interface_fan_speed label" @@ -4167,7 +4176,7 @@ msgstr "Radyenin Orta Fan Hızı" #: fdmprinter.def.json msgctxt "raft_interface_fan_speed description" msgid "The fan speed for the middle raft layer." -msgstr "Radyenin orta katmanı için fan hızı" +msgstr "Radyenin orta katmanı için fan hızı." #: fdmprinter.def.json msgctxt "raft_base_fan_speed label" @@ -4177,7 +4186,7 @@ msgstr "Radyenin Taban Fan Hızı" #: fdmprinter.def.json msgctxt "raft_base_fan_speed description" msgid "The fan speed for the base raft layer." -msgstr "Radyenin taban katmanı için fan hızı" +msgstr "Radyenin taban katmanı için fan hızı." #: fdmprinter.def.json msgctxt "dual label" @@ -4217,7 +4226,7 @@ msgstr "İlk Direk Boyutu" #: fdmprinter.def.json msgctxt "prime_tower_size description" msgid "The width of the prime tower." -msgstr "İlk Direk Genişliği" +msgstr "İlk Direk Genişliği." #: fdmprinter.def.json msgctxt "prime_tower_min_volume label" @@ -5274,7 +5283,9 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "Yarı hızda sıkıştırılmış yukarı doğru hareket mesafesi.\nBu katmanlarda malzemeyi çok fazla ısıtmayarak önceki katmanlarda daha iyi yapışma sağlayabilir. Sadece kablo yazdırmaya uygulanır." +msgstr "" +"Yarı hızda sıkıştırılmış yukarı doğru hareket mesafesi.\n" +"Bu katmanlarda malzemeyi çok fazla ısıtmayarak önceki katmanlarda daha iyi yapışma sağlayabilir. Sadece kablo yazdırmaya uygulanır." #: fdmprinter.def.json msgctxt "wireframe_top_jump label" @@ -5689,7 +5700,7 @@ msgstr "Bileşim Rotasyon Matrisi" #: fdmprinter.def.json msgctxt "mesh_rotation_matrix description" msgid "Transformation matrix to be applied to the model when loading it from file." -msgstr "Modeli dosyadan indirirken modele uygulanacak olan dönüşüm matrisi" +msgstr "Modeli dosyadan indirirken modele uygulanacak olan dönüşüm matrisi." #~ msgctxt "connect_skin_polygons description" #~ msgid "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happend midway over infill this feature can reduce the top surface quality." diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 033aa0f8ef..cecca58cdd 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-10-01 13:45+0100\n" +"PO-Revision-Date: 2018-11-06 15:38+0100\n" "Last-Translator: Bothof \n" "Language-Team: PCDotFan , Bothof \n" "Language: zh_CN\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 1.8.13\n" +"X-Generator: Poedit 2.0.6\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 msgctxt "@action" @@ -64,7 +64,11 @@ msgid "" "

    {model_names}

    \n" "

    Find out how to ensure the best possible print quality and reliability.

    \n" "

    View print quality guide

    " -msgstr "

    由于模型的大小和材质的配置,一个或多个3D模型可能无法最优地打印:

    \n

    {model_names}

    \n

    找出如何确保最好的打印质量和可靠性.

    \n

    查看打印质量指南

    " +msgstr "" +"

    由于模型的大小和材质的配置,一个或多个3D模型可能无法最优地打印:

    \n" +"

    {model_names}

    \n" +"

    找出如何确保最好的打印质量和可靠性.

    \n" +"

    查看打印质量指南

    " #: /home/ruben/Projects/Cura/plugins/ChangeLogPlugin/ChangeLog.py:32 msgctxt "@item:inmenu" @@ -286,7 +290,7 @@ msgstr "已通过网络连接,但没有打印机的控制权限。" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py:97 msgctxt "@info:status" msgid "Access to the printer requested. Please approve the request on the printer" -msgstr "已发送打印机访问请求,请在打印机上批准该请求。" +msgstr "已发送打印机访问请求,请在打印机上批准该请求" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py:100 msgctxt "@info:title" @@ -437,7 +441,7 @@ msgstr "打印机上的打印头和/或材料与当前项目中的不同。 为 #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:91 msgctxt "@info:status" msgid "Connected over the network" -msgstr "已通过网络连接。" +msgstr "已通过网络连接" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py:303 msgctxt "@info:status" @@ -1069,7 +1073,12 @@ msgid "" "

    Backups can be found in the configuration folder.

    \n" "

    Please send us this Crash Report to fix the problem.

    \n" " " -msgstr "

    糟糕,Ultimaker Cura 似乎遇到了问题。

    \n

    在启动时发生了不可修复的错误。这可能是因某些配置文件出错导致的。建议您备份并重置配置。

    \n

    您可在配置文件夹中找到备份。

    \n

    请向我们发送此错误报告,以便解决问题。

    \n " +msgstr "" +"

    糟糕,Ultimaker Cura 似乎遇到了问题。

    \n" +"

    在启动时发生了不可修复的错误。这可能是因某些配置文件出错导致的。建议您备份并重置配置。

    \n" +"

    您可在配置文件夹中找到备份。

    \n" +"

    请向我们发送此错误报告,以便解决问题。

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:102 msgctxt "@action:button" @@ -1102,7 +1111,10 @@ msgid "" "

    A fatal error has occurred in Cura. Please send us this Crash Report to fix the problem

    \n" "

    Please use the \"Send report\" button to post a bug report automatically to our servers

    \n" " " -msgstr "

    Cura 发生了严重错误。请将这份错误报告发送给我们以便修复问题

    \n

    请使用“发送报告”按钮将错误报告自动发布到我们的服务器

    \n " +msgstr "" +"

    Cura 发生了严重错误。请将这份错误报告发送给我们以便修复问题

    \n" +"

    请使用“发送报告”按钮将错误报告自动发布到我们的服务器

    \n" +" " #: /home/ruben/Projects/Cura/cura/CrashHandler.py:177 msgctxt "@title:groupbox" @@ -1578,7 +1590,10 @@ msgid "" "This plugin contains a license.\n" "You need to accept this license to install this plugin.\n" "Do you agree with the terms below?" -msgstr "该插件包含一个许可。\n您需要接受此许可才能安装此插件。\n是否同意下列条款?" +msgstr "" +"该插件包含一个许可。\n" +"您需要接受此许可才能安装此插件。\n" +"是否同意下列条款?" #: /home/ruben/Projects/Cura/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml:54 msgctxt "@action:button" @@ -1738,7 +1753,10 @@ msgid "" "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n" "\n" "Select your printer from the list below:" -msgstr "要通过网络向打印机发送打印请求,请确保您的打印机已通过网线或 WIFI 连接到网络。若您不能连接 Cura 与打印机,您仍然可以使用 USB 设备将 G-code 文件传输到打印机。\n\n从以下列表中选择您的打印机:" +msgstr "" +"要通过网络向打印机发送打印请求,请确保您的打印机已通过网线或 WIFI 连接到网络。若您不能连接 Cura 与打印机,您仍然可以使用 USB 设备将 G-code 文件传输到打印机。\n" +"\n" +"从以下列表中选择您的打印机:" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:85 #: /home/ruben/Projects/Cura/resources/qml/Preferences/MachinesPage.qml:42 @@ -2186,7 +2204,7 @@ msgstr "转换图像..." #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:33 msgctxt "@info:tooltip" msgid "The maximum distance of each pixel from \"Base.\"" -msgstr "每个像素与底板的最大距离。" +msgstr "每个像素与底板的最大距离" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:38 msgctxt "@action:label" @@ -2216,7 +2234,7 @@ msgstr "宽度 (mm)" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:103 msgctxt "@info:tooltip" msgid "The depth in millimeters on the build plate" -msgstr "打印平台深度,以毫米为单位。" +msgstr "打印平台深度,以毫米为单位" #: /home/ruben/Projects/Cura/plugins/ImageReader/ConfigUI.qml:108 msgctxt "@action:label" @@ -2505,7 +2523,7 @@ msgstr "开始打印机检查" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:80 msgctxt "@label" msgid "Connection: " -msgstr "连接:" +msgstr "连接: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 msgctxt "@info:status" @@ -2520,7 +2538,7 @@ msgstr "未连接" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:99 msgctxt "@label" msgid "Min endstop X: " -msgstr "X Min 限位开关:" +msgstr "X Min 限位开关: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 @@ -2541,17 +2559,17 @@ msgstr "未检查" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:120 msgctxt "@label" msgid "Min endstop Y: " -msgstr "Y Min 限位开关:" +msgstr "Y Min 限位开关: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:141 msgctxt "@label" msgid "Min endstop Z: " -msgstr "Z Min 限位开关:" +msgstr "Z Min 限位开关: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:163 msgctxt "@label" msgid "Nozzle temperature check: " -msgstr "检查喷嘴温度:" +msgstr "检查喷嘴温度: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 @@ -2644,7 +2662,9 @@ msgctxt "@text:window" msgid "" "You have customized some profile settings.\n" "Would you like to keep or discard those settings?" -msgstr "您已自定义某些配置文件设置。\n您想保留或舍弃这些设置吗?" +msgstr "" +"您已自定义某些配置文件设置。\n" +"您想保留或舍弃这些设置吗?" #: /home/ruben/Projects/Cura/resources/qml/DiscardOrKeepProfileChangesDialog.qml:110 msgctxt "@title:column" @@ -3089,7 +3109,7 @@ msgstr "打开项目文件时的默认行为" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:557 msgctxt "@window:text" msgid "Default behavior when opening a project file: " -msgstr "打开项目文件时的默认行为:" +msgstr "打开项目文件时的默认行为: " #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@option:openProject" @@ -3346,7 +3366,9 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura 由 Ultimaker B.V. 与社区合作开发。\nCura 使用以下开源项目:" +msgstr "" +"Cura 由 Ultimaker B.V. 与社区合作开发。\n" +"Cura 使用以下开源项目:" #: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:132 msgctxt "@label" @@ -3479,7 +3501,10 @@ msgid "" "Some setting/override values are different from the values stored in the profile.\n" "\n" "Click to open the profile manager." -msgstr "某些设置/重写值与存储在配置文件中的值不同。\n\n点击打开配置文件管理器。" +msgstr "" +"某些设置/重写值与存储在配置文件中的值不同。\n" +"\n" +"点击打开配置文件管理器。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:200 msgctxt "@label:textbox" @@ -3533,7 +3558,10 @@ msgid "" "Some hidden settings use values different from their normal calculated value.\n" "\n" "Click to make these settings visible." -msgstr "一些隐藏设置正在使用有别于一般设置的计算值。\n\n单击以使这些设置可见。" +msgstr "" +"一些隐藏设置正在使用有别于一般设置的计算值。\n" +"\n" +"单击以使这些设置可见。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3543,7 +3571,7 @@ msgstr "影响" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:66 msgctxt "@label Header for list of settings." msgid "Affected By" -msgstr "受影响项目:" +msgstr "受影响项目" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:155 msgctxt "@label" @@ -3553,7 +3581,7 @@ msgstr "此设置始终在所有挤出机之间共享。在此处更改它将改 #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:158 msgctxt "@label" msgid "The value is resolved from per-extruder values " -msgstr "该值将会根据每一个挤出机的设置而确定" +msgstr "该值将会根据每一个挤出机的设置而确定 " #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:189 msgctxt "@label" @@ -3561,7 +3589,10 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "此设置的值与配置文件不同。\n\n单击以恢复配置文件的值。" +msgstr "" +"此设置的值与配置文件不同。\n" +"\n" +"单击以恢复配置文件的值。" #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:281 msgctxt "@label" @@ -3569,7 +3600,10 @@ msgid "" "This setting is normally calculated, but it currently has an absolute value set.\n" "\n" "Click to restore the calculated value." -msgstr "此设置通常可被自动计算,但其当前已被绝对定义。\n\n单击以恢复自动计算的值。" +msgstr "" +"此设置通常可被自动计算,但其当前已被绝对定义。\n" +"\n" +"单击以恢复自动计算的值。" #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ManualPrinterControl.qml:129 msgctxt "@label" @@ -3728,7 +3762,7 @@ msgstr "打印平台(&B)" #: /home/ruben/Projects/Cura/resources/qml/Menus/SettingVisibilityPresetsMenu.qml:13 msgctxt "@action:inmenu" msgid "Visible Settings" -msgstr "可见设置:" +msgstr "可见设置" #: /home/ruben/Projects/Cura/resources/qml/Menus/SettingVisibilityPresetsMenu.qml:42 msgctxt "@action:inmenu" @@ -3792,7 +3826,9 @@ msgctxt "@label:listbox" msgid "" "Print Setup disabled\n" "G-code files cannot be modified" -msgstr "打印设置已禁用\nG-code 文件无法被修改" +msgstr "" +"打印设置已禁用\n" +"G-code 文件无法被修改" #: /home/ruben/Projects/Cura/resources/qml/PrepareSidebar.qml:340 msgctxt "@label Hours and minutes" @@ -4442,7 +4478,7 @@ msgstr "引擎日志" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:70 msgctxt "@label" msgid "Printer type" -msgstr "打印机类型:" +msgstr "打印机类型" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:376 msgctxt "@label" @@ -4682,7 +4718,7 @@ msgstr "固件更新检查程序" #: SimulationView/plugin.json msgctxt "description" msgid "Provides the Simulation view." -msgstr "提供仿真视图" +msgstr "提供仿真视图。" #: SimulationView/plugin.json msgctxt "name" diff --git a/resources/i18n/zh_CN/fdmprinter.def.json.po b/resources/i18n/zh_CN/fdmprinter.def.json.po index 56027d5be1..3a85b1b454 100644 --- a/resources/i18n/zh_CN/fdmprinter.def.json.po +++ b/resources/i18n/zh_CN/fdmprinter.def.json.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-10-01 14:20+0100\n" +"PO-Revision-Date: 2018-11-06 15:38+0100\n" "Last-Translator: Bothof \n" "Language-Team: PCDotFan , Bothof \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.13\n" +"X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=1; plural=0;\n" #: fdmprinter.def.json @@ -58,7 +58,9 @@ msgctxt "machine_start_gcode description" msgid "" "G-code commands to be executed at the very start - separated by \n" "." -msgstr "在开始时执行的 G-code 命令 - 以 \n 分行。" +msgstr "" +"在开始时执行的 G-code 命令 - 以 \n" +" 分行。" #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -70,7 +72,9 @@ msgctxt "machine_end_gcode description" msgid "" "G-code commands to be executed at the very end - separated by \n" "." -msgstr "在结束前执行的 G-code 命令 - 以 \n 分行。" +msgstr "" +"在结束前执行的 G-code 命令 - 以 \n" +" 分行。" #: fdmprinter.def.json msgctxt "material_guid label" @@ -80,7 +84,7 @@ msgstr "材料 GUID" #: fdmprinter.def.json msgctxt "material_guid description" msgid "GUID of the material. This is set automatically. " -msgstr "材料 GUID,此项为自动设置。" +msgstr "材料 GUID,此项为自动设置。 " #: fdmprinter.def.json msgctxt "material_diameter label" @@ -235,7 +239,7 @@ msgstr "挤出机组数目。 挤出机组是指进料装置、鲍登管和喷 #: fdmprinter.def.json msgctxt "extruders_enabled_count label" msgid "Number of Extruders that are enabled" -msgstr "已启用的挤出机数目。" +msgstr "已启用的挤出机数目" #: fdmprinter.def.json msgctxt "extruders_enabled_count description" @@ -550,7 +554,7 @@ msgstr "X 轴方向电机的最大加速度" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y label" msgid "Maximum Acceleration Y" -msgstr " 轴最大加速度" +msgstr "轴最大加速度" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y description" @@ -850,7 +854,7 @@ msgstr "单一支撑底板走线宽度。" #: fdmprinter.def.json msgctxt "prime_tower_line_width label" msgid "Prime Tower Line Width" -msgstr "装填塔走线宽度。" +msgstr "装填塔走线宽度" #: fdmprinter.def.json msgctxt "prime_tower_line_width description" @@ -1632,7 +1636,9 @@ msgctxt "infill_wall_line_count description" msgid "" "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n" "This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right." -msgstr "在填充区域周围添加额外壁。此类壁可减少顶部/底部皮肤走线,这意味着只要付出一些额外的材料就可以使用更少的顶部/底部皮肤层达到相同的质量。\n在适当配置的情况下,此功能可结合连接填充多边形以将所有填充物连接到单一挤出路径而无需空驶或回抽。" +msgstr "" +"在填充区域周围添加额外壁。此类壁可减少顶部/底部皮肤走线,这意味着只要付出一些额外的材料就可以使用更少的顶部/底部皮肤层达到相同的质量。\n" +"在适当配置的情况下,此功能可结合连接填充多边形以将所有填充物连接到单一挤出路径而无需空驶或回抽。" #: fdmprinter.def.json msgctxt "sub_div_rad_add label" @@ -3829,7 +3835,9 @@ msgctxt "skirt_gap description" msgid "" "The horizontal distance between the skirt and the first layer of the print.\n" "This is the minimum distance. Multiple skirt lines will extend outwards from this distance." -msgstr "skirt 和打印第一层之间的水平距离。\n这是最小距离。多个 skirt 走线将从此距离向外延伸。" +msgstr "" +"skirt 和打印第一层之间的水平距离。\n" +"这是最小距离。多个 skirt 走线将从此距离向外延伸。" #: fdmprinter.def.json msgctxt "skirt_brim_minimal_length label" @@ -5276,7 +5284,9 @@ msgctxt "wireframe_up_half_speed description" msgid "" "Distance of an upward move which is extruded with half speed.\n" "This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing." -msgstr "以半速挤出的上行移动的距离。\n这会与之前的层产生更好的附着,而不会将这些层中的材料过度加热。 仅应用于单线打印。" +msgstr "" +"以半速挤出的上行移动的距离。\n" +"这会与之前的层产生更好的附着,而不会将这些层中的材料过度加热。 仅应用于单线打印。" #: fdmprinter.def.json msgctxt "wireframe_top_jump label" diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index c1aa8d65a7..c27349ffe3 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0100\n" -"PO-Revision-Date: 2018-11-03 20:32+0800\n" +"PO-Revision-Date: 2018-11-06 15:39+0100\n" "Last-Translator: Zhang Heh Ji \n" "Language-Team: Zhang Heh Ji \n" "Language: zh_TW\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.0.6\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 msgctxt "@action" @@ -1916,7 +1916,7 @@ msgstr "等待:第一可用" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:217 msgctxt "@label" msgid "Waiting for: " -msgstr "等待:" +msgstr "等待: " #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml:299 msgctxt "@label" @@ -2524,7 +2524,7 @@ msgstr "開始印表機檢查" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:80 msgctxt "@label" msgid "Connection: " -msgstr "連線:" +msgstr "連線: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:89 msgctxt "@info:status" @@ -2539,7 +2539,7 @@ msgstr "未連線" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:99 msgctxt "@label" msgid "Min endstop X: " -msgstr "X Min 限位開關:" +msgstr "X Min 限位開關: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:109 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:130 @@ -2560,17 +2560,17 @@ msgstr "未檢查" #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:120 msgctxt "@label" msgid "Min endstop Y: " -msgstr "Y Min 限位開關:" +msgstr "Y Min 限位開關: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:141 msgctxt "@label" msgid "Min endstop Z: " -msgstr "Z Min 限位開關:" +msgstr "Z Min 限位開關: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:163 msgctxt "@label" msgid "Nozzle temperature check: " -msgstr "檢查噴頭溫度:" +msgstr "檢查噴頭溫度: " #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:187 #: /home/ruben/Projects/Cura/plugins/UltimakerMachineActions/UMOCheckupMachineAction.qml:248 @@ -3110,7 +3110,7 @@ msgstr "開啟專案檔案時的預設行為" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:557 msgctxt "@window:text" msgid "Default behavior when opening a project file: " -msgstr "開啟專案檔案時的預設行為:" +msgstr "開啟專案檔案時的預設行為: " #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@option:openProject" @@ -3140,7 +3140,7 @@ msgstr "列印參數" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:623 msgctxt "@window:text" msgid "Default behavior for changed setting values when switching to a different profile: " -msgstr "當切換到另一組列印參數時,對於被修改過的設定的預設行為:" +msgstr "當切換到另一組列印參數時,對於被修改過的設定的預設行為: " #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:638 msgctxt "@option:discardOrKeep" diff --git a/resources/i18n/zh_TW/fdmprinter.def.json.po b/resources/i18n/zh_TW/fdmprinter.def.json.po index d57d8f6c97..1571d7648c 100644 --- a/resources/i18n/zh_TW/fdmprinter.def.json.po +++ b/resources/i18n/zh_TW/fdmprinter.def.json.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Cura 3.6\n" "Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n" "POT-Creation-Date: 2018-10-29 15:01+0000\n" -"PO-Revision-Date: 2018-11-04 16:58+0800\n" +"PO-Revision-Date: 2018-11-06 16:00+0100\n" "Last-Translator: Zhang Heh Ji \n" "Language-Team: Zhang Heh Ji \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.0.6\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -59,7 +59,7 @@ msgid "" "." msgstr "" "開始時最先執行的 G-code 命令 - 使用 \n" -". 隔開" +"隔開。" #: fdmprinter.def.json msgctxt "machine_end_gcode label" @@ -73,7 +73,7 @@ msgid "" "." msgstr "" "結束前最後執行的 G-code 命令 - 使用 \n" -". 隔開" +" 隔開。" #: fdmprinter.def.json msgctxt "material_guid label" @@ -83,7 +83,7 @@ msgstr "耗材 GUID" #: fdmprinter.def.json msgctxt "material_guid description" msgid "GUID of the material. This is set automatically. " -msgstr "耗材 GUID,此項為自動設定。" +msgstr "耗材 GUID,此項為自動設定。 " #: fdmprinter.def.json msgctxt "material_diameter label" @@ -2007,7 +2007,7 @@ msgstr "啟用回抽" #: fdmprinter.def.json msgctxt "retraction_enable description" msgid "Retract the filament when the nozzle is moving over a non-printed area. " -msgstr "當噴頭移動到非列印區域上方時回抽耗材。" +msgstr "當噴頭移動到非列印區域上方時回抽耗材。 " #: fdmprinter.def.json msgctxt "retract_at_layer_change label" @@ -3367,7 +3367,7 @@ msgstr "最小支撐 X/Y 間距" #: fdmprinter.def.json msgctxt "support_xy_distance_overhang description" msgid "Distance of the support structure from the overhang in the X/Y directions. " -msgstr "支撐結構在 X/Y 方向與突出部分的間距。" +msgstr "支撐結構在 X/Y 方向與突出部分的間距。 " #: fdmprinter.def.json msgctxt "support_bottom_stair_step_height label" From 9fa9c04517ff9a53b318ccece22bf22788275f22 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 6 Nov 2018 16:07:41 +0100 Subject: [PATCH 0179/1039] Fix translation mistakes found in Cura 3.6 These mistakes were found in the translations. In many cases it makes the text closer to the original rather than more consistent with the environment. If the environment is inconsistent then we should fix the original string in our source code rather than in the translations. Contributes to issue CURA-5870. --- resources/i18n/pt_BR/cura.po | 27 +++++++++++---------- resources/i18n/pt_BR/fdmprinter.def.json.po | 21 ++++++++-------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index 671cf9d76b..73b8d759ce 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -16,6 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.6\n" #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:22 msgctxt "@action" @@ -414,7 +415,7 @@ msgstr "Nenhum material carregado no slot {slot_number}" #, python-brace-format msgctxt "@label" msgid "Different PrintCore (Cura: {cura_printcore_name}, Printer: {remote_printcore_name}) selected for extruder {extruder_id}" -msgstr "PrintCore Diferente (Cura: {cure_printcore_name}, Impressora: {remote_printcore_name}) selecionado para o extrusor {extruder_id}" +msgstr "PrintCore Diferente (Cura: {cura_printcore_name}, Impressora: {remote_printcore_name}) selecionado para o extrusor {extruder_id}" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py:361 #, python-brace-format @@ -2058,7 +2059,7 @@ msgstr "Abortar impressão" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml:43 msgctxt "@info:tooltip" msgid "Connect to a printer" -msgstr "Conecta a uma impressora." +msgstr "Conecta a uma impressora" #: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml:121 msgctxt "@action:button" @@ -2602,7 +2603,7 @@ msgstr "Tudo está em ordem! A verificação terminou." #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:119 msgctxt "@label:MonitorStatus" msgid "Not connected to a printer" -msgstr "Não conectado a nenhuma impressora." +msgstr "Não conectado a nenhuma impressora" #: /home/ruben/Projects/Cura/resources/qml/MonitorButton.qml:123 msgctxt "@label:MonitorStatus" @@ -2980,7 +2981,7 @@ msgstr "Exibir seções pendentes" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:355 msgctxt "@info:tooltip" msgid "Moves the camera so the model is in the center of the view when a model is selected" -msgstr "Move a câmera de modo que o modelo fique no centro da visão quando for selecionado." +msgstr "Move a câmera de modo que o modelo fique no centro da visão quando for selecionado" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:360 msgctxt "@action:button" @@ -3025,7 +3026,7 @@ msgstr "Os modelos devem ser movidos pra baixo pra se assentar na plataforma de #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:418 msgctxt "@option:check" msgid "Automatically drop models to the build plate" -msgstr "Automaticamente fazer os modelos caírem na mesa de impressão." +msgstr "Automaticamente fazer os modelos caírem na mesa de impressão" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:430 msgctxt "@info:tooltip" @@ -3110,7 +3111,7 @@ msgstr "Comportamento default ao abrir um arquivo de projeto" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:557 msgctxt "@window:text" msgid "Default behavior when opening a project file: " -msgstr "Comportamento default ao abrir um arquivo de projeto" +msgstr "Comportamento default ao abrir um arquivo de projeto: " #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:571 msgctxt "@option:openProject" @@ -3175,7 +3176,7 @@ msgstr "Dados anônimos sobre sua impressão podem ser enviados para a Ultimaker #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:702 msgctxt "@option:check" msgid "Send (anonymous) print information" -msgstr "Enviar informação (anônima) de impressão." +msgstr "Enviar informação (anônima) de impressão" #: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:711 msgctxt "@action:button" @@ -3562,7 +3563,7 @@ msgid "" msgstr "" "Alguns ajustes ocultados usam valores diferentes de seu valor calculado normal.\n" "\n" -"Clique para tornar estes ajustes visíveis. " +"Clique para tornar estes ajustes visíveis." #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:61 msgctxt "@label Header for list of settings." @@ -3582,7 +3583,7 @@ msgstr "Este ajuste é sempre compartilhado entre todos os extrusores. Modificá #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:158 msgctxt "@label" msgid "The value is resolved from per-extruder values " -msgstr "O valor é resolvido de valores específicos de cada extrusor" +msgstr "O valor é resolvido de valores específicos de cada extrusor " #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingItem.qml:189 msgctxt "@label" @@ -3655,7 +3656,7 @@ msgstr "A temperatura-alvo do hotend. O hotend vai aquecer ou esfriar na direç #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ExtruderBox.qml:98 msgctxt "@tooltip" msgid "The current temperature of this hotend." -msgstr "A temperatura atual deste hotend" +msgstr "A temperatura atual deste hotend." #: /home/ruben/Projects/Cura/resources/qml/PrinterOutput/ExtruderBox.qml:172 msgctxt "@tooltip of temperature input" @@ -4403,7 +4404,7 @@ msgstr "Você modificou alguns ajustes de perfil. Se você quiser alterá-los, u #: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:541 msgctxt "@label" msgid "Infill" -msgstr "Preenchimento:" +msgstr "Preenchimento" #: /home/ruben/Projects/Cura/resources/qml/SidebarSimple.qml:777 msgctxt "@label" @@ -4495,7 +4496,7 @@ msgstr "Material" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:543 msgctxt "@label" msgid "Use glue with this material combination" -msgstr "Use cola com esta combinação de materiais." +msgstr "Use cola com esta combinação de materiais" #: /home/ruben/Projects/Cura/resources/qml/SidebarHeader.qml:575 msgctxt "@label" @@ -4845,7 +4846,7 @@ msgstr "Atualização de Versão de 2.7 para 3.0" #: VersionUpgrade/VersionUpgrade34to35/plugin.json msgctxt "description" msgid "Upgrades configurations from Cura 3.4 to Cura 3.5." -msgstr "Atualiza configurações do Cura 3.4 para o Cura 3.5" +msgstr "Atualiza configurações do Cura 3.4 para o Cura 3.5." #: VersionUpgrade/VersionUpgrade34to35/plugin.json msgctxt "name" diff --git a/resources/i18n/pt_BR/fdmprinter.def.json.po b/resources/i18n/pt_BR/fdmprinter.def.json.po index 728c2eb3e9..bd55d331ae 100644 --- a/resources/i18n/pt_BR/fdmprinter.def.json.po +++ b/resources/i18n/pt_BR/fdmprinter.def.json.po @@ -16,6 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 2.0.6\n" #: fdmprinter.def.json msgctxt "machine_settings label" @@ -458,7 +459,7 @@ msgstr "ID do Bico" #: fdmprinter.def.json msgctxt "machine_nozzle_id description" msgid "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\"." -msgstr "O identificador do bico para o carro extrusor, tais como \"AA 0.4\" ou \"BB 0.8\"" +msgstr "O identificador do bico para o carro extrusor, tais como \"AA 0.4\" ou \"BB 0.8.\"" #: fdmprinter.def.json msgctxt "machine_nozzle_size label" @@ -548,7 +549,7 @@ msgstr "Aceleração Máxima em X" #: fdmprinter.def.json msgctxt "machine_max_acceleration_x description" msgid "Maximum acceleration for the motor of the X-direction" -msgstr "A aceleração máxima para o motor da impressora na direção X." +msgstr "A aceleração máxima para o motor da impressora na direção X" #: fdmprinter.def.json msgctxt "machine_max_acceleration_y label" @@ -598,7 +599,7 @@ msgstr "Jerk Default nos eixos X-Y" #: fdmprinter.def.json msgctxt "machine_max_jerk_xy description" msgid "Default jerk for movement in the horizontal plane." -msgstr "O valor default de jerk para movimentos no plano horizontal" +msgstr "O valor default de jerk para movimentos no plano horizontal." #: fdmprinter.def.json msgctxt "machine_max_jerk_z label" @@ -1867,7 +1868,7 @@ msgstr "Temperatura Default de Impressão" #: fdmprinter.def.json msgctxt "default_material_print_temperature description" msgid "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value" -msgstr "A temperatura default usada para a impressão. Esta deve ser a temperatura \"base\" de um material. Todas as outras temperaturas de impressão devem usar diferenças baseadas neste valor." +msgstr "A temperatura default usada para a impressão. Esta deve ser a temperatura \"base\" de um material. Todas as outras temperaturas de impressão devem usar diferenças baseadas neste valor" #: fdmprinter.def.json msgctxt "material_print_temperature label" @@ -1957,7 +1958,7 @@ msgstr "Tendência à Aderência" #: fdmprinter.def.json msgctxt "material_adhesion_tendency description" msgid "Surface adhesion tendency." -msgstr "Tendência de aderência da superfície" +msgstr "Tendência de aderência da superfície." #: fdmprinter.def.json msgctxt "material_surface_energy label" @@ -2007,7 +2008,7 @@ msgstr "Habilitar Retração" #: fdmprinter.def.json msgctxt "retraction_enable description" msgid "Retract the filament when the nozzle is moving over a non-printed area. " -msgstr "Retrai o filamento quando o bico está se movendo sobre uma área não impressa." +msgstr "Retrai o filamento quando o bico está se movendo sobre uma área não impressa. " #: fdmprinter.def.json msgctxt "retract_at_layer_change label" @@ -3547,7 +3548,7 @@ msgstr "Densidade da Base do Suporte" #: fdmprinter.def.json msgctxt "support_bottom_density description" msgid "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model." -msgstr "A densidade das bases da estrutura de suporte. Um valor maior resulta em melhor aderência do suporte no topo da superfície" +msgstr "A densidade das bases da estrutura de suporte. Um valor maior resulta em melhor aderência do suporte no topo da superfície." #: fdmprinter.def.json msgctxt "support_bottom_line_distance label" @@ -3672,7 +3673,7 @@ msgstr "Sobrepor Velocidade de Ventoinha" #: fdmprinter.def.json msgctxt "support_fan_enable description" msgid "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support." -msgstr "Quando habilitado, a velocidade da ventoinha de resfriamento é alterada para as regiões de contorno imediatamente acima do suporte" +msgstr "Quando habilitado, a velocidade da ventoinha de resfriamento é alterada para as regiões de contorno imediatamente acima do suporte." #: fdmprinter.def.json msgctxt "support_supported_skin_fan_speed label" @@ -3946,7 +3947,7 @@ msgstr "Espessura da Camada Superior do Raft" #: fdmprinter.def.json msgctxt "raft_surface_thickness description" msgid "Layer thickness of the top raft layers." -msgstr "Espessura de camada das camadas superiores do raft" +msgstr "Espessura de camada das camadas superiores do raft." #: fdmprinter.def.json msgctxt "raft_surface_line_width label" @@ -5116,7 +5117,7 @@ msgstr "A distância média entre os pontos aleatórios introduzidos em cada seg #: fdmprinter.def.json msgctxt "flow_rate_max_extrusion_offset label" msgid "Flow rate compensation max extrusion offset" -msgstr "Deslocamento de extrusão máxima da compensação de taxa de fluxo." +msgstr "Deslocamento de extrusão máxima da compensação de taxa de fluxo" #: fdmprinter.def.json msgctxt "flow_rate_max_extrusion_offset description" From ce7d2c36d0834aed603f1d7dd59439c58d297802 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 6 Nov 2018 16:15:32 +0100 Subject: [PATCH 0180/1039] Fix the width of the slider label when the number of layers was exactly 10, 100, 1000 and so on. The calculation was using the maximumValue that is 9 in case we have 10 layers, since we start counting from 0 but showing from 1. Now it uses maximumValue + 1. --- plugins/SimulationView/SimulationSliderLabel.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationSliderLabel.qml b/plugins/SimulationView/SimulationSliderLabel.qml index b69fede243..06c6a51b44 100644 --- a/plugins/SimulationView/SimulationSliderLabel.qml +++ b/plugins/SimulationView/SimulationSliderLabel.qml @@ -48,7 +48,7 @@ UM.PointingRectangle { horizontalCenter: parent.horizontalCenter } - width: (maximumValue.toString().length + 1) * 10 * screenScaleFactor + width: ((maximumValue + 1).toString().length + 1) * 10 * screenScaleFactor text: sliderLabelRoot.value + startFrom // the current handle value, add 1 because layers is an array horizontalAlignment: TextInput.AlignRight From dc4b69c386a8973d77427ffc57fe07d68379fe44 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 6 Nov 2018 16:37:47 +0100 Subject: [PATCH 0181/1039] Show context menu at the right times Contributes to CL-1126 --- .../resources/qml/PrintJobContextMenu.qml | 47 ++++++++++++++++--- .../resources/qml/PrintJobContextMenuItem.qml | 2 +- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml index 695b69f822..9462475c2f 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml @@ -34,7 +34,13 @@ Item { hoverEnabled: true; onClicked: parent.switchPopupState(); text: "\u22EE"; //Unicode; Three stacked points. - visible: printJob.state == "queued" || printJob.state == "aborted" || started ? true : false; + visible: { + if (!printJob) { + return false; + } + var states = ["queued", "sent_to_printer", "pre_print", "printing", "pausing", "paused", "resuming"]; + return states.indexOf(printJob.state) !== -1; + } width: 35 * screenScaleFactor; // TODO: Theme! } @@ -123,11 +129,17 @@ Item { popup.close(); } text: catalog.i18nc("@label", "Delete"); - visible: printJob && !started && printJob.state !== "aborted" && printJob.state !== "finished"; + visible: { + if (!printJob) { + return false; + } + var states = ["queued", "sent_to_printer"]; + return states.indexOf(printJob.state) !== -1; + } } PrintJobContextMenuItem { - enabled: !(printJob.state == "pausing" || printJob.state == "resuming"); + enabled: visible && !(printJob.state == "pausing" || printJob.state == "resuming"); onClicked: { if (printJob.state == "paused") { printJob.setState("print"); @@ -155,17 +167,29 @@ Item { catalog.i18nc("@label", "Pause"); } } - visible: printJob && started && printJob.state; + visible: { + if (!printJob) { + return false; + } + var states = ["printing", "pausing", "paused", "resuming"]; + return states.indexOf(printJob.state) !== -1; + } } PrintJobContextMenuItem { - enabled: printJob.state !== "aborting"; + enabled: visible && printJob.state !== "aborting"; onClicked: { abortConfirmationDialog.visible = true; popup.close(); } text: printJob.state == "aborting" ? catalog.i18nc("@label", "Aborting...") : catalog.i18nc("@label", "Abort"); - visible: printJob && started; + visible: { + if (!printJob) { + return false; + } + var states = ["pre_print", "printing", "pausing", "paused", "resuming"]; + return states.indexOf(printJob.state) !== -1; + } } } enter: Transition { @@ -224,6 +248,8 @@ Item { // Utils function switchPopupState() { popup.visible ? popup.close() : popup.open(); + console.log("printJob.state is:", printJob.state); + console.log("children.length is:", getMenuLength()); } function isStarted(job) { if (!job) { @@ -237,4 +263,13 @@ Item { } return job.assignedPrinter ? true : false; } + function getMenuLength() { + var visible = 0; + for (var i = 0; i < popupOptions.children.length; i++) { + if (popupOptions.children[i].visible) { + visible++; + } + } + return visible; + } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml index 18f5e3b305..eea8fac3e1 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenuItem.qml @@ -17,7 +17,7 @@ Button { horizontalAlignment: Text.AlignLeft; verticalAlignment: Text.AlignVCenter; } - height: 39 * screenScaleFactor; // TODO: Theme! + height: visible ? 39 * screenScaleFactor : 0; // TODO: Theme! hoverEnabled: true; width: parent.width; } \ No newline at end of file From 4c831de06ca6ba186208a2fed28b4fbd08b086de Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 6 Nov 2018 16:41:59 +0100 Subject: [PATCH 0182/1039] Remove console logs Contributes to CL-1126 --- .../UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml index 9462475c2f..11bc913d06 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml @@ -248,8 +248,6 @@ Item { // Utils function switchPopupState() { popup.visible ? popup.close() : popup.open(); - console.log("printJob.state is:", printJob.state); - console.log("children.length is:", getMenuLength()); } function isStarted(job) { if (!job) { From 94924783b688c908cf9664d7ae6168f2c89f6a5c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 6 Nov 2018 17:16:29 +0100 Subject: [PATCH 0183/1039] Defensive coding: Old file-extensions may have been saved as all-caps. [CURA-5896] --- cura/PrintInformation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 86c90e03d3..e11f70a54c 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -371,12 +371,12 @@ class PrintInformation(QObject): # Strip the old "curaproject" extension from the name OLD_CURA_PROJECT_EXT = ".curaproject" - if self._base_name.endswith(OLD_CURA_PROJECT_EXT): + if self._base_name.lower().endswith(OLD_CURA_PROJECT_EXT): self._base_name = self._base_name[:len(self._base_name) - len(OLD_CURA_PROJECT_EXT)] # CURA-5896 Try to strip extra extensions with an infinite amount of ".curaproject.3mf". OLD_CURA_PROJECT_3MF_EXT = ".curaproject.3mf" - while self._base_name.endswith(OLD_CURA_PROJECT_3MF_EXT): + while self._base_name.lower().endswith(OLD_CURA_PROJECT_3MF_EXT): self._base_name = self._base_name[:len(self._base_name) - len(OLD_CURA_PROJECT_3MF_EXT)] self._updateJobName() From c51995f3497dba6880014f45e077f0dd494329b1 Mon Sep 17 00:00:00 2001 From: pinchies Date: Wed, 7 Nov 2018 04:36:32 +1100 Subject: [PATCH 0184/1039] Update jgaurora_a5.def.json --- resources/definitions/jgaurora_a5.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/jgaurora_a5.def.json b/resources/definitions/jgaurora_a5.def.json index 0a8b93f7cf..02d9a9db4f 100644 --- a/resources/definitions/jgaurora_a5.def.json +++ b/resources/definitions/jgaurora_a5.def.json @@ -1,5 +1,5 @@ { - "name": "JGAurora A5", + "name": "JGAurora A5 & A5S", "version": 2, "inherits": "fdmprinter", "metadata": { @@ -17,7 +17,7 @@ }, "overrides": { "machine_name": { - "default_value": "JGAurora A5" + "default_value": "JGAurora A5 & A5S" }, "machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nM420 S1 ;turn on mesh bed levelling if enabled in firmware\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" From 70d2f407a37f186fe3712042ac84d67da1c75e12 Mon Sep 17 00:00:00 2001 From: pinchies Date: Wed, 7 Nov 2018 04:38:39 +1100 Subject: [PATCH 0185/1039] Update cocoon_create_modelmaker.def.json --- resources/definitions/cocoon_create_modelmaker.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/cocoon_create_modelmaker.def.json b/resources/definitions/cocoon_create_modelmaker.def.json index 7f19fb0239..204d5b9492 100644 --- a/resources/definitions/cocoon_create_modelmaker.def.json +++ b/resources/definitions/cocoon_create_modelmaker.def.json @@ -1,11 +1,11 @@ { - "name": "Cocoon Create ModelMaker", + "name": "Cocoon Create ModelMaker & Wanhao Duplicator i3 Mini", "version": 2, "inherits": "fdmprinter", "metadata": { "visible": true, "author": "Samuel Pinches", - "manufacturer": "Cocoon Create", + "manufacturer": "Cocoon Create / Wanhao", "file_formats": "text/x-gcode", "preferred_quality_type": "fine", "machine_extruder_trains": @@ -15,7 +15,7 @@ }, "overrides": { "machine_name": { - "default_value": "Cocoon Create ModelMaker" + "default_value": "Cocoon Create ModelMaker & Wanhao Duplicator i3 Mini" }, "machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" From 982123a04e105a532a24fc5591bc5a349bd0963f Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 7 Nov 2018 10:31:29 +0100 Subject: [PATCH 0186/1039] Update bundled package versions for materials using CC 0.6 --- resources/bundled_packages/cura.json | 48 ++++++++++++++-------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index 8ec0c3d29d..fceee75539 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -753,7 +753,7 @@ "package_type": "material", "display_name": "Generic ABS", "description": "The generic ABS profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -771,7 +771,7 @@ "package_type": "material", "display_name": "Generic BAM", "description": "The generic BAM profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -789,7 +789,7 @@ "package_type": "material", "display_name": "Generic CFF CPE", "description": "The generic CFF CPE profile which other profiles can be based upon.", - "package_version": "1.0.0", + "package_version": "1.1.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -807,7 +807,7 @@ "package_type": "material", "display_name": "Generic CFF PA", "description": "The generic CFF PA profile which other profiles can be based upon.", - "package_version": "1.0.0", + "package_version": "1.1.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -825,7 +825,7 @@ "package_type": "material", "display_name": "Generic CPE", "description": "The generic CPE profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -843,7 +843,7 @@ "package_type": "material", "display_name": "Generic CPE+", "description": "The generic CPE+ profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -861,7 +861,7 @@ "package_type": "material", "display_name": "Generic GFF CPE", "description": "The generic GFF CPE profile which other profiles can be based upon.", - "package_version": "1.0.0", + "package_version": "1.1.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -879,7 +879,7 @@ "package_type": "material", "display_name": "Generic GFF PA", "description": "The generic GFF PA profile which other profiles can be based upon.", - "package_version": "1.0.0", + "package_version": "1.1.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -915,7 +915,7 @@ "package_type": "material", "display_name": "Generic Nylon", "description": "The generic Nylon profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -933,7 +933,7 @@ "package_type": "material", "display_name": "Generic PC", "description": "The generic PC profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -969,7 +969,7 @@ "package_type": "material", "display_name": "Generic PLA", "description": "The generic PLA profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -987,7 +987,7 @@ "package_type": "material", "display_name": "Generic PP", "description": "The generic PP profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -1005,7 +1005,7 @@ "package_type": "material", "display_name": "Generic PVA", "description": "The generic PVA profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -1041,7 +1041,7 @@ "package_type": "material", "display_name": "Generic TPU", "description": "The generic TPU profile which other profiles can be based upon.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://github.com/Ultimaker/fdm_materials", "author": { @@ -1297,7 +1297,7 @@ "package_type": "material", "display_name": "Ultimaker ABS", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { @@ -1316,7 +1316,7 @@ "package_type": "material", "display_name": "Ultimaker Breakaway", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/breakaway", "author": { @@ -1335,7 +1335,7 @@ "package_type": "material", "display_name": "Ultimaker CPE", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { @@ -1354,7 +1354,7 @@ "package_type": "material", "display_name": "Ultimaker CPE+", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/cpe", "author": { @@ -1373,7 +1373,7 @@ "package_type": "material", "display_name": "Ultimaker Nylon", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { @@ -1392,7 +1392,7 @@ "package_type": "material", "display_name": "Ultimaker PC", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/pc", "author": { @@ -1411,7 +1411,7 @@ "package_type": "material", "display_name": "Ultimaker PLA", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { @@ -1430,7 +1430,7 @@ "package_type": "material", "display_name": "Ultimaker PP", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/pp", "author": { @@ -1449,7 +1449,7 @@ "package_type": "material", "display_name": "Ultimaker PVA", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { @@ -1468,7 +1468,7 @@ "package_type": "material", "display_name": "Ultimaker TPU 95A", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.1.0", + "package_version": "1.2.0", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/tpu-95a", "author": { From 2c28e931ea5cb66ce123bc1ce590957ecc499000 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 7 Nov 2018 11:06:40 +0100 Subject: [PATCH 0187/1039] Rename CC Red 0.6 to CC 0.6 in the Changelog. Contributes to CURA-5900. --- plugins/ChangeLogPlugin/ChangeLog.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 266442473c..7e5cf2dd3b 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -11,8 +11,8 @@ It is now possible to specify the cooling fan to use if your printer has multipl *Settings refactor The CuraEngine has been refactored to create a more testable, future-proof way of storing and representing settings. This makes slicing faster, and future development easier. -*Print core CC Red 0.6 -The new print core CC Red 0.6 is selectable when the Ultimaker S5 profile is active. This print core is optimized for use with abrasive materials and composites. +*Print core CC 0.6 +The new print core CC 0.6 is selectable when the Ultimaker S5 profile is active. This print core is optimized for use with abrasive materials and composites. *File name and layer display Added M117 commands to GCODE to give real-time information about the print job file name and layer number shown on the printer’s display when printing via USB. Contributed by adecastilho. From 9a93f6866a644fb4d1992b36c37154dafa1a1561 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 7 Nov 2018 12:03:32 +0100 Subject: [PATCH 0188/1039] Fix crash of toolbox when metadata got corrupted --- plugins/Toolbox/src/Toolbox.py | 38 ++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 25e7656999..43e1f5b3d9 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -265,21 +265,25 @@ class Toolbox(QObject, Extension): raise Exception("Failed to create Marketplace dialog") return dialog - def _convertPluginMetadata(self, plugin: Dict[str, Any]) -> Dict[str, Any]: - formatted = { - "package_id": plugin["id"], - "package_type": "plugin", - "display_name": plugin["plugin"]["name"], - "package_version": plugin["plugin"]["version"], - "sdk_version": plugin["plugin"]["api"], - "author": { - "author_id": plugin["plugin"]["author"], - "display_name": plugin["plugin"]["author"] - }, - "is_installed": True, - "description": plugin["plugin"]["description"] - } - return formatted + def _convertPluginMetadata(self, plugin_data: Dict[str, Any]) -> Optional[Dict[str, Any]]: + try: + formatted = { + "package_id": plugin_data["id"], + "package_type": "plugin", + "display_name": plugin_data["plugin"]["name"], + "package_version": plugin_data["plugin"]["version"], + "sdk_version": plugin_data["plugin"]["api"], + "author": { + "author_id": plugin_data["plugin"]["author"], + "display_name": plugin_data["plugin"]["author"] + }, + "is_installed": True, + "description": plugin_data["plugin"]["description"] + } + return formatted + except: + Logger.log("w", "Unable to convert plugin meta data %s", str(plugin_data)) + return None @pyqtSlot() def _updateInstalledModels(self) -> None: @@ -299,7 +303,9 @@ class Toolbox(QObject, Extension): old_metadata = self._plugin_registry.getMetaData(plugin_id) new_metadata = self._convertPluginMetadata(old_metadata) - + if new_metadata is None: + # Something went wrong converting it. + continue self._old_plugin_ids.add(plugin_id) self._old_plugin_metadata[new_metadata["package_id"]] = new_metadata From 58a01816aa6eaef630c8fd711102f0e4eca21a6b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 7 Nov 2018 13:39:06 +0100 Subject: [PATCH 0189/1039] Remove quality profiles for PLA in the UMS5 with the CC 0.6 print core. PLA is compatible with the print core but we don't want to provide profiles because they were not fully tested. Contributes to CURA-5900. --- .../um_s5_cc0.6_PLA_Draft_Print.inst.cfg | 42 ------------------- .../um_s5_cc0.6_PLA_Fast_Print.inst.cfg | 42 ------------------- 2 files changed, 84 deletions(-) delete mode 100644 resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg deleted file mode 100644 index 9045c36fbe..0000000000 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Draft_Print.inst.cfg +++ /dev/null @@ -1,42 +0,0 @@ -[general] -version = 4 -name = Fast -definition = ultimaker_s5 - -[metadata] -setting_version = 5 -type = quality -quality_type = draft -weight = -3 -material = generic_pla -variant = CC 0.6 - -[values] -cool_fan_full_at_height = =layer_height_0 + 2 * layer_height -cool_fan_speed_max = =100 -cool_min_speed = 2 -gradual_infill_step_height = =3 * layer_height -infill_line_width = =round(line_width * 0.65 / 0.75, 2) -infill_pattern = triangles -line_width = =machine_nozzle_size * 0.9375 -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_final_print_temperature = =max(-273.15, material_print_temperature - 15) -material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) -material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 -prime_tower_enable = True -retract_at_layer_change = False -speed_print = 45 -speed_topbottom = =math.ceil(speed_print * 35 / 45) -speed_wall = =math.ceil(speed_print * 40 / 45) -speed_wall_x = =speed_wall -speed_wall_0 = =math.ceil(speed_wall * 35 / 40) -support_angle = 70 -support_line_width = =line_width * 0.75 -support_pattern = triangles -support_xy_distance = =wall_line_width_0 * 1.5 -top_bottom_thickness = =layer_height * 4 -wall_line_width = =round(line_width * 0.75 / 0.75, 2) -wall_line_width_x = =round(wall_line_width * 0.625 / 0.75, 2) -wall_thickness = =wall_line_width_0 + wall_line_width_x diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg deleted file mode 100644 index 8e747bb06f..0000000000 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_PLA_Fast_Print.inst.cfg +++ /dev/null @@ -1,42 +0,0 @@ -[general] -version = 4 -name = Normal -definition = ultimaker_s5 - -[metadata] -setting_version = 5 -type = quality -quality_type = fast -weight = -2 -material = generic_pla -variant = CC 0.6 - -[values] -cool_fan_full_at_height = =layer_height_0 + 2 * layer_height -cool_fan_speed_max = =100 -cool_min_speed = 2 -gradual_infill_step_height = =3 * layer_height -infill_line_width = =round(line_width * 0.65 / 0.75, 2) -infill_pattern = triangles -line_width = =machine_nozzle_size * 0.9375 -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_final_print_temperature = =max(-273.15, material_print_temperature - 15) -material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) -material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = 100 -prime_tower_enable = True -retract_at_layer_change = False -speed_print = 45 -speed_topbottom = =math.ceil(speed_print * 35 / 45) -speed_wall = =math.ceil(speed_print * 40 / 45) -speed_wall_x = =speed_wall -speed_wall_0 = =math.ceil(speed_wall * 35 / 40) -support_angle = 70 -support_line_width = =line_width * 0.75 -support_pattern = triangles -support_xy_distance = =wall_line_width_0 * 1.5 -top_bottom_thickness = =layer_height * 4 -wall_line_width = =round(line_width * 0.75 / 0.75, 2) -wall_line_width_x = =round(wall_line_width * 0.625 / 0.75, 2) -wall_thickness = =wall_line_width_0 + wall_line_width_x From f12efb7aa1f6305d4d1fea6a757a17d10a080e43 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 7 Nov 2018 16:07:45 +0100 Subject: [PATCH 0190/1039] Fix LegacyUM3OutputDevice post() call --- plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py index e786840803..fb79b26b64 100644 --- a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py @@ -499,8 +499,8 @@ class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice): self._authentication_id = None self.post("auth/request", - json.dumps({"application": "Cura-" + CuraApplication.getInstance().getVersion(), - "user": self._getUserName()}).encode(), + json.dumps({"application": "Cura-" + CuraApplication.getInstance().getVersion(), + "user": self._getUserName()}), on_finished=self._onRequestAuthenticationFinished) self.setAuthenticationState(AuthState.AuthenticationRequested) From f15d03d48c84855ca30ec60017e9f00837b686f3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 7 Nov 2018 16:30:52 +0100 Subject: [PATCH 0191/1039] Fix foldout of the layerview panel being too short or too long CURA-5829 --- .../SimulationViewMenuComponent.qml | 152 +++++++++--------- 1 file changed, 80 insertions(+), 72 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index cb70d1d78e..1cbaffa65e 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -19,7 +19,7 @@ Rectangle width: UM.Theme.getSize("layerview_menu_size").width - height: viewSettings.collapsed ? layerViewTypesLabel.height + 2 * UM.Theme.getSize("default_margin").height : childrenRect.height + height: viewSettings.collapsed ? layerViewTypesLabel.height + 2 * UM.Theme.getSize("default_margin").height : childrenRect.height + 2 * UM.Theme.getSize("default_margin").height Behavior on height { NumberAnimation { duration: 100 } } @@ -469,83 +469,91 @@ Rectangle } } - // Gradient colors for feedrate - Rectangle - { // In QML 5.9 can be changed by LinearGradient - // Invert values because then the bar is rotated 90 degrees - id: feedrateGradient - visible: viewSettings.show_feedrate_gradient - anchors.left: parent.right - height: parent.width - width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} - gradient: Gradient - { - GradientStop + Item + { + // Another hack on top of the rotation of the gradient. + // Since we set the side of the panel to use childrenRect (and that uses the un-rotated height), add this + // wrapper item with the correct width & height so it doesn't get confused. + width: parent.width + height: feedrateGradient.visible || thicknessGradient.visible ? Math.round(UM.Theme.getSize("layerview_row").height * 1.5) : 0 + // Gradient colors for feedrate + Rectangle + { // In QML 5.9 can be changed by LinearGradient + // Invert values because then the bar is rotated 90 degrees + id: feedrateGradient + visible: viewSettings.show_feedrate_gradient + anchors.left: parent.right + height: parent.width + width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} + gradient: Gradient { - position: 0.000 - color: Qt.rgba(1, 0.5, 0, 1) - } - GradientStop - { - position: 0.625 - color: Qt.rgba(0.375, 0.5, 0, 1) - } - GradientStop - { - position: 0.75 - color: Qt.rgba(0.25, 1, 0, 1) - } - GradientStop - { - position: 1.0 - color: Qt.rgba(0, 0, 1, 1) + GradientStop + { + position: 0.000 + color: Qt.rgba(1, 0.5, 0, 1) + } + GradientStop + { + position: 0.625 + color: Qt.rgba(0.375, 0.5, 0, 1) + } + GradientStop + { + position: 0.75 + color: Qt.rgba(0.25, 1, 0, 1) + } + GradientStop + { + position: 1.0 + color: Qt.rgba(0, 0, 1, 1) + } } } - } - // Gradient colors for layer thickness (similar to parula colormap) - Rectangle // In QML 5.9 can be changed by LinearGradient - { - // Invert values because then the bar is rotated 90 degrees - id: thicknessGradient - visible: viewSettings.show_thickness_gradient - anchors.left: parent.right - height: parent.width - width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - - transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} - gradient: Gradient + // Gradient colors for layer thickness (similar to parula colormap) + Rectangle // In QML 5.9 can be changed by LinearGradient { - GradientStop + // Invert values because then the bar is rotated 90 degrees + id: thicknessGradient + visible: viewSettings.show_thickness_gradient + anchors.left: parent.right + height: parent.width + width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + + transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} + gradient: Gradient { - position: 0.000 - color: Qt.rgba(1, 1, 0, 1) - } - GradientStop - { - position: 0.25 - color: Qt.rgba(1, 0.75, 0.25, 1) - } - GradientStop - { - position: 0.5 - color: Qt.rgba(0, 0.75, 0.5, 1) - } - GradientStop - { - position: 0.75 - color: Qt.rgba(0, 0.375, 0.75, 1) - } - GradientStop - { - position: 1.0 - color: Qt.rgba(0, 0, 0.5, 1) + GradientStop + { + position: 0.000 + color: Qt.rgba(1, 1, 0, 1) + } + GradientStop + { + position: 0.25 + color: Qt.rgba(1, 0.75, 0.25, 1) + } + GradientStop + { + position: 0.5 + color: Qt.rgba(0, 0.75, 0.5, 1) + } + GradientStop + { + position: 0.75 + color: Qt.rgba(0, 0.375, 0.75, 1) + } + GradientStop + { + position: 1.0 + color: Qt.rgba(0, 0, 0.5, 1) + } } } } From 9f663cfd18b13f8504bf3d753166fe1f9a9b653c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 7 Nov 2018 17:25:43 +0100 Subject: [PATCH 0192/1039] Change the gradient for the LinearGradient that works in the new versions of Qt. I also changed it because we had a TODO here and I thought it was the right moment to do it. Contributes to CURA-5829. --- .../SimulationViewMenuComponent.qml | 139 ++++++++++-------- 1 file changed, 80 insertions(+), 59 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 1cbaffa65e..d251244c9f 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -5,6 +5,7 @@ import QtQuick 2.4 import QtQuick.Controls 1.2 import QtQuick.Layouts 1.1 import QtQuick.Controls.Styles 1.1 +import QtGraphicalEffects 1.0 import UM 1.0 as UM import Cura 1.0 as Cura @@ -469,75 +470,95 @@ Rectangle } } - Item + // Gradient colors for feedrate + Rectangle { - // Another hack on top of the rotation of the gradient. - // Since we set the side of the panel to use childrenRect (and that uses the un-rotated height), add this - // wrapper item with the correct width & height so it doesn't get confused. - width: parent.width - height: feedrateGradient.visible || thicknessGradient.visible ? Math.round(UM.Theme.getSize("layerview_row").height * 1.5) : 0 - // Gradient colors for feedrate - Rectangle - { // In QML 5.9 can be changed by LinearGradient - // Invert values because then the bar is rotated 90 degrees - id: feedrateGradient - visible: viewSettings.show_feedrate_gradient - anchors.left: parent.right - height: parent.width - width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} - gradient: Gradient - { - GradientStop - { - position: 0.000 - color: Qt.rgba(1, 0.5, 0, 1) - } - GradientStop - { - position: 0.625 - color: Qt.rgba(0.375, 0.5, 0, 1) - } - GradientStop - { - position: 0.75 - color: Qt.rgba(0.25, 1, 0, 1) - } - GradientStop - { - position: 1.0 - color: Qt.rgba(0, 0, 1, 1) - } - } - } + id: feedrateGradient + visible: viewSettings.show_feedrate_gradient + anchors.left: parent.left + anchors.right: parent.right + height: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") - // Gradient colors for layer thickness (similar to parula colormap) - Rectangle // In QML 5.9 can be changed by LinearGradient + LinearGradient { - // Invert values because then the bar is rotated 90 degrees - id: thicknessGradient - visible: viewSettings.show_thickness_gradient - anchors.left: parent.right - height: parent.width - width: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - - transform: Rotation {origin.x: 0; origin.y: 0; angle: 90} + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("default_lining").width + right: parent.right + rightMargin: UM.Theme.getSize("default_lining").width + top: parent.top + topMargin: UM.Theme.getSize("default_lining").width + bottom: parent.bottom + bottomMargin: UM.Theme.getSize("default_lining").width + } + start: Qt.point(0, 0) + end: Qt.point(parent.width, 0) gradient: Gradient { GradientStop { position: 0.000 - color: Qt.rgba(1, 1, 0, 1) + color: Qt.rgba(0, 0, 1, 1) } GradientStop { position: 0.25 - color: Qt.rgba(1, 0.75, 0.25, 1) + color: Qt.rgba(0.25, 1, 0, 1) + } + GradientStop + { + position: 0.375 + color: Qt.rgba(0.375, 0.5, 0, 1) + } + GradientStop + { + position: 1.0 + color: Qt.rgba(1, 0.5, 0, 1) + } + } + } + } + + // Gradient colors for layer thickness (similar to parula colormap) + Rectangle + { + id: thicknessGradient + visible: viewSettings.show_thickness_gradient + anchors.left: parent.left + anchors.right: parent.right + height: Math.round(UM.Theme.getSize("layerview_row").height * 1.5) + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + + LinearGradient + { + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("default_lining").width + right: parent.right + rightMargin: UM.Theme.getSize("default_lining").width + top: parent.top + topMargin: UM.Theme.getSize("default_lining").width + bottom: parent.bottom + bottomMargin: UM.Theme.getSize("default_lining").width + } + start: Qt.point(0, 0) + end: Qt.point(parent.width, 0) + gradient: Gradient + { + GradientStop + { + position: 0.000 + color: Qt.rgba(0, 0, 0.5, 1) + } + GradientStop + { + position: 0.25 + color: Qt.rgba(0, 0.375, 0.75, 1) } GradientStop { @@ -547,12 +568,12 @@ Rectangle GradientStop { position: 0.75 - color: Qt.rgba(0, 0.375, 0.75, 1) + color: Qt.rgba(1, 0.75, 0.25, 1) } GradientStop { position: 1.0 - color: Qt.rgba(0, 0, 0.5, 1) + color: Qt.rgba(1, 1, 0, 1) } } } From c5a9c6c6cce35fc3f943ca37f83abd9299a9e393 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 8 Nov 2018 09:48:52 +0100 Subject: [PATCH 0193/1039] Add translation for missing line in Korean This one was not translated. Contributes to issue CURA-5870. --- resources/i18n/ko_KR/cura.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index 8141cdf63e..6f32d46cd7 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -915,7 +915,7 @@ msgstr "프로파일 {0}에는 정확하지 않은 데이 #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "The machine defined in profile {0} ({1}) doesn't match with your current machine ({2}), could not import it." -msgstr "The machine defined in profile {0} ({1}) doesn’t match with your current machine ({2}), could not import it." +msgstr "프로필 {0}({1})에 정의된 제품이 현재 제품({2})과 일치하지 않으므로, 불러올 수 없습니다." #: /home/ruben/Projects/Cura/cura/Settings/CuraContainerRegistry.py:312 #, python-brace-format From 35ed2349913e91d0f163e9aa1840228cf1c2736a Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 8 Nov 2018 10:49:22 +0100 Subject: [PATCH 0194/1039] Show print time in monitor tab Contributes to CL-1040 --- .../resources/qml/PrintJobInfoBlock.qml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml index 8c2c8f9121..a0de63ec74 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml @@ -168,6 +168,19 @@ Item { width: 0.5 * printJobPreview.width; } } + + Label { + id: totalTimeLabel; + anchors { + bottom: parent.bottom; + right: parent.right; + } + color: UM.Theme.getColor("text"); + elide: Text.ElideRight; + font: UM.Theme.getFont("default"); + opacity: 0.6; + text: printJob ? OutputDevice.formatDuration(printJob.timeTotal) : ""; + } } // Divider From de6ab02422f04fe4c2d3ffd641f7b91472e3b827 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 8 Nov 2018 11:02:57 +0100 Subject: [PATCH 0195/1039] Merge pull request #4678 from fieldOfView/fix_networkprinter_post Fix type error in NetworkedPrinterOutputDevice.post --- cura/PrinterOutput/NetworkedPrinterOutputDevice.py | 2 +- plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py index f7c7f5d233..35d2ce014a 100644 --- a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py +++ b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py @@ -213,7 +213,7 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): request = self._createEmptyRequest(target) self._last_request_time = time() if self._manager is not None: - reply = self._manager.post(request, data) + reply = self._manager.post(request, data.encode()) if on_progress is not None: reply.uploadProgress.connect(on_progress) self._registerOnFinishedCallback(reply, on_finished) diff --git a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py index e45de2dbb0..18af22e72f 100644 --- a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py @@ -498,8 +498,8 @@ class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice): self._authentication_id = None self.post("auth/request", - json.dumps({"application": "Cura-" + CuraApplication.getInstance().getVersion(), - "user": self._getUserName()}).encode(), + json.dumps({"application": "Cura-" + CuraApplication.getInstance().getVersion(), + "user": self._getUserName()}), on_finished=self._onRequestAuthenticationFinished) self.setAuthenticationState(AuthState.AuthenticationRequested) From aa6ec9e44bc6f8a2069984134dd785c70bed2fd9 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 8 Nov 2018 11:48:22 +0100 Subject: [PATCH 0196/1039] Make text black Contributes to CL-1040 --- plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml index a0de63ec74..a611cb4ff6 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml @@ -178,7 +178,6 @@ Item { color: UM.Theme.getColor("text"); elide: Text.ElideRight; font: UM.Theme.getFont("default"); - opacity: 0.6; text: printJob ? OutputDevice.formatDuration(printJob.timeTotal) : ""; } } From 75f2f405344e16d0bc191d40c488cc3cea3888e8 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 8 Nov 2018 12:04:41 +0100 Subject: [PATCH 0197/1039] Make API version configuration for Application CURA-5840 --- cura/API/Interface/__init__.py | 4 ---- cura/API/__init__.py | 4 +--- cura/CuraApplication.py | 3 ++- plugins/Toolbox/src/Toolbox.py | 6 +++--- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/cura/API/Interface/__init__.py b/cura/API/Interface/__init__.py index 742254a1a4..cec174bf0a 100644 --- a/cura/API/Interface/__init__.py +++ b/cura/API/Interface/__init__.py @@ -3,7 +3,6 @@ from typing import TYPE_CHECKING -from UM.PluginRegistry import PluginRegistry from cura.API.Interface.Settings import Settings if TYPE_CHECKING: @@ -23,9 +22,6 @@ if TYPE_CHECKING: class Interface: - # For now we use the same API version to be consistent. - VERSION = PluginRegistry.APIVersion - def __init__(self, application: "CuraApplication") -> None: # API methods specific to the settings portion of the UI self.settings = Settings(application) diff --git a/cura/API/__init__.py b/cura/API/__init__.py index ad07452c1a..b3e702263a 100644 --- a/cura/API/__init__.py +++ b/cura/API/__init__.py @@ -4,7 +4,6 @@ from typing import Optional, TYPE_CHECKING from PyQt5.QtCore import QObject, pyqtProperty -from UM.PluginRegistry import PluginRegistry from cura.API.Backups import Backups from cura.API.Interface import Interface from cura.API.Account import Account @@ -22,7 +21,6 @@ if TYPE_CHECKING: class CuraAPI(QObject): # For now we use the same API version to be consistent. - VERSION = PluginRegistry.APIVersion __instance = None # type: "CuraAPI" _application = None # type: CuraApplication @@ -62,4 +60,4 @@ class CuraAPI(QObject): @property def interface(self) -> "Interface": - return self._interface \ No newline at end of file + return self._interface diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index fc9ba1ebf4..7f0e742a9f 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -133,7 +133,7 @@ except ImportError: CuraVersion = "master" # [CodeStyle: Reflecting imported value] CuraBuildType = "" CuraDebugMode = False - CuraSDKVersion = "" + CuraSDKVersion = "5.0.0" class CuraApplication(QtApplication): @@ -162,6 +162,7 @@ class CuraApplication(QtApplication): def __init__(self, *args, **kwargs): super().__init__(name = "cura", version = CuraVersion, + api_version = CuraSDKVersion, buildtype = CuraBuildType, is_debug_mode = CuraDebugMode, tray_icon_name = "cura-icon-32.png", diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 7db4e8bde0..2d9299fb5a 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -209,11 +209,11 @@ class Toolbox(QObject, Extension): # Get the packages version depending on Cura version settings. def _getSDKVersion(self) -> Union[int, str]: if not hasattr(cura, "CuraVersion"): - return self._plugin_registry.APIVersion.getMajor() + return self._application.getAPIVersion().getMajor() if not hasattr(cura.CuraVersion, "CuraSDKVersion"): # type: ignore - return self._plugin_registry.APIVersion.getMajor() + return self._application.getAPIVersion().getMajor() if not cura.CuraVersion.CuraSDKVersion: # type: ignore - return self._plugin_registry.APIVersion.getMajor() + return self._application.getAPIVersion().getMajor() return cura.CuraVersion.CuraSDKVersion # type: ignore @pyqtSlot() From dcc6003a927a2ad7a883be46e4f9467828f70dfe Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 8 Nov 2018 12:50:00 +0100 Subject: [PATCH 0198/1039] Allow negative support interface offsets There is no technical reason why this is not allowed. You could save some material with this. Contributes to issue CURA-5880. --- resources/definitions/fdmprinter.def.json | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 23dc49418b..d845f80e14 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4384,7 +4384,6 @@ "description": "Amount of offset applied to the support interface polygons.", "unit": "mm", "type": "float", - "minimum_value": "0", "default_value": 0.0, "limit_to_extruder": "support_interface_extruder_nr", "enabled": "support_interface_enable and (support_enable or support_tree_enable)", From f132adc135f53d9caac74419d14595404d829944 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 8 Nov 2018 12:59:24 +0100 Subject: [PATCH 0199/1039] Rename 'Offset' to 'Horizontal Expansion' This is more consistent with other similar settings. Contributes to issue CURA-5880. --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d845f80e14..1730598874 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4380,7 +4380,7 @@ }, "support_interface_offset": { - "label": "Support Interface Offset", + "label": "Support Interface Horizontal Expansion", "description": "Amount of offset applied to the support interface polygons.", "unit": "mm", "type": "float", @@ -4393,7 +4393,7 @@ { "support_roof_offset": { - "label": "Support Roof Offset", + "label": "Support Roof Horizontal Expansion", "description": "Amount of offset applied to the roofs of the support.", "unit": "mm", "type": "float", @@ -4407,7 +4407,7 @@ }, "support_bottom_offset": { - "label": "Support Floor Offset", + "label": "Support Floor Horizontal Expansion", "description": "Amount of offset applied to the floors of the support.", "unit": "mm", "type": "float", From 6d66060222bc2e9cbee69534926e5ac27372fd53 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 8 Nov 2018 13:03:37 +0100 Subject: [PATCH 0200/1039] Don't allow support interface offset greater than support offset The support interface can't exceed the volume of the support now, so this is now a technical limitation. Contributes to issue CURA-5880. --- resources/definitions/fdmprinter.def.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 1730598874..5c446e0b6f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4385,6 +4385,7 @@ "unit": "mm", "type": "float", "default_value": 0.0, + "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "support_interface_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, @@ -4400,6 +4401,7 @@ "minimum_value": "0", "default_value": 0.0, "value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')", + "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", "limit_to_extruder": "support_roof_extruder_nr", "enabled": "support_roof_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, @@ -4414,6 +4416,7 @@ "minimum_value": "0", "default_value": 0.0, "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')", + "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", "limit_to_extruder": "support_bottom_extruder_nr", "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", "settable_per_mesh": false, From e66dd2be0b417646fa015dba7133a21b6d5a48e4 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 8 Nov 2018 15:03:24 +0100 Subject: [PATCH 0201/1039] Action-Panel (CURA-5786) can now know about Preview-Stage (CURA-5829). --- resources/qml/ActionPanel/OutputProcessWidget.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index db9a23cdf3..0ea956d1dc 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -110,7 +110,7 @@ Column hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - onClicked: UM.Controller.setActiveStage("MonitorStage") + onClicked: UM.Controller.setActiveStage("PreviewStage") } Cura.OutputDevicesActionButton From 94e27fbbdb93d75998129cfeb91926d0707031cb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 8 Nov 2018 15:42:39 +0100 Subject: [PATCH 0202/1039] Add the quality folder to the version upgrade in order to update quality profiles. Contributes to CURA-5915. --- plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py | 5 +++++ plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py b/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py index 8213f195d5..1130c1e9e2 100644 --- a/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py @@ -11,6 +11,7 @@ def getMetaData(): # From To Upgrade function ("definition_changes", 3000004): ("definition_changes", 4000004, upgrade.upgradeInstanceContainer), ("quality_changes", 3000004): ("quality_changes", 4000004, upgrade.upgradeInstanceContainer), + ("quality", 3000004): ("quality", 4000004, upgrade.upgradeInstanceContainer), ("user", 3000004): ("user", 4000004, upgrade.upgradeInstanceContainer), }, "sources": { @@ -22,6 +23,10 @@ def getMetaData(): "get_version": upgrade.getCfgVersion, "location": {"./quality_changes"} }, + "quality": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality"} + }, "user": { "get_version": upgrade.getCfgVersion, "location": {"./user"} diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py b/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py index de0fdccb7d..2ea74f6194 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py @@ -13,6 +13,7 @@ def getMetaData(): ("definition_changes", 4000004): ("definition_changes", 4000005, upgrade.upgradeInstanceContainer), ("quality_changes", 4000004): ("quality_changes", 4000005, upgrade.upgradeInstanceContainer), + ("quality", 4000004): ("quality", 4000005, upgrade.upgradeInstanceContainer), ("user", 4000004): ("user", 4000005, upgrade.upgradeInstanceContainer), ("machine_stack", 4000004): ("machine_stack", 4000005, upgrade.upgradeStack), @@ -39,6 +40,10 @@ def getMetaData(): "get_version": upgrade.getCfgVersion, "location": {"./quality_changes"} }, + "quality": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality"} + }, "user": { "get_version": upgrade.getCfgVersion, "location": {"./user"} From d3302938b2c07f9b5c8ec05102b96f12c4816bb0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 8 Nov 2018 16:38:38 +0100 Subject: [PATCH 0203/1039] Fix technical data sheet not showing if there is no support_configs --- .../qml/ToolboxCompatibilityChart.qml | 244 ++++++++++-------- 1 file changed, 131 insertions(+), 113 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index 58fea079e9..fd014d26e1 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -15,141 +15,159 @@ Item var link = undefined if ("Technical Data Sheet" in packageData.links) { + // HACK: This is the way the old API (used in 3.6-beta) used to do it. For safety it's still here, + // but it can be removed over time. link = packageData.links["Technical Data Sheet"] } + else if ("technicalDataSheet" in packageData.links) + { + link = packageData.links["technicalDataSheet"] + } return link } - anchors.topMargin: UM.Theme.getSize("default_margin").height height: visible ? childrenRect.height : 0 - visible: packageData.type == "material" && packageData.has_configs - Label + + visible: packageData.type == "material" && (packageData.has_configs || technicalDataSheetUrl != undefined) + + Item { - id: heading - anchors.topMargin: UM.Theme.getSize("default_margin").height + id: combatibilityItem + visible: packageData.has_configs width: parent.width - text: catalog.i18nc("@label", "Compatibility") - wrapMode: Text.WordWrap - color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("medium") - } - TableView - { - id: table - anchors.top: heading.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - width: parent.width - frameVisible: false + // This is a bit of a hack, but the whole QML is pretty messy right now. This needs a big overhaul. + height: visible ? heading.height + table.height: 0 - // Workaround for scroll issues (QTBUG-49652) - flickableItem.interactive: false - Component.onCompleted: + Label { - for (var i = 0; i < flickableItem.children.length; ++i) - { - flickableItem.children[i].enabled = false - } - } - selectionMode: 0 - model: packageData.supported_configs - headerDelegate: Rectangle - { - color: UM.Theme.getColor("sidebar") - height: UM.Theme.getSize("toolbox_chart_row").height - Label - { - anchors.verticalCenter: parent.verticalCenter - elide: Text.ElideRight - text: styleData.value || "" - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("default_bold") - } - Rectangle - { - anchors.bottom: parent.bottom - height: UM.Theme.getSize("default_lining").height - width: parent.width - color: "black" - } - } - rowDelegate: Item - { - height: UM.Theme.getSize("toolbox_chart_row").height - Label - { - anchors.verticalCenter: parent.verticalCenter - elide: Text.ElideRight - text: styleData.value || "" - color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("default") - } - } - itemDelegate: Item - { - height: UM.Theme.getSize("toolbox_chart_row").height - Label - { - anchors.verticalCenter: parent.verticalCenter - elide: Text.ElideRight - text: styleData.value || "" - color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("default") - } + id: heading + anchors.topMargin: UM.Theme.getSize("default_margin").height + width: parent.width + text: catalog.i18nc("@label", "Compatibility") + wrapMode: Text.WordWrap + color: UM.Theme.getColor("text_medium") + font: UM.Theme.getFont("medium") } - Component + TableView { - id: columnTextDelegate - Label - { - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - text: styleData.value || "" - elide: Text.ElideRight - color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("default") - } - } + id: table + anchors.top: heading.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + width: parent.width + frameVisible: false - TableViewColumn - { - role: "machine" - title: "Machine" - width: Math.floor(table.width * 0.25) - delegate: columnTextDelegate - } - TableViewColumn - { - role: "print_core" - title: "Print Core" - width: Math.floor(table.width * 0.2) - } - TableViewColumn - { - role: "build_plate" - title: "Build Plate" - width: Math.floor(table.width * 0.225) - } - TableViewColumn - { - role: "support_material" - title: "Support" - width: Math.floor(table.width * 0.225) - } - TableViewColumn - { - role: "quality" - title: "Quality" - width: Math.floor(table.width * 0.1) + // Workaround for scroll issues (QTBUG-49652) + flickableItem.interactive: false + Component.onCompleted: + { + for (var i = 0; i < flickableItem.children.length; ++i) + { + flickableItem.children[i].enabled = false + } + } + selectionMode: 0 + model: packageData.supported_configs + headerDelegate: Rectangle + { + color: UM.Theme.getColor("sidebar") + height: UM.Theme.getSize("toolbox_chart_row").height + Label + { + anchors.verticalCenter: parent.verticalCenter + elide: Text.ElideRight + text: styleData.value || "" + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("default_bold") + } + Rectangle + { + anchors.bottom: parent.bottom + height: UM.Theme.getSize("default_lining").height + width: parent.width + color: "black" + } + } + rowDelegate: Item + { + height: UM.Theme.getSize("toolbox_chart_row").height + Label + { + anchors.verticalCenter: parent.verticalCenter + elide: Text.ElideRight + text: styleData.value || "" + color: UM.Theme.getColor("text_medium") + font: UM.Theme.getFont("default") + } + } + itemDelegate: Item + { + height: UM.Theme.getSize("toolbox_chart_row").height + Label + { + anchors.verticalCenter: parent.verticalCenter + elide: Text.ElideRight + text: styleData.value || "" + color: UM.Theme.getColor("text_medium") + font: UM.Theme.getFont("default") + } + } + + Component + { + id: columnTextDelegate + Label + { + anchors.fill: parent + verticalAlignment: Text.AlignVCenter + text: styleData.value || "" + elide: Text.ElideRight + color: UM.Theme.getColor("text_medium") + font: UM.Theme.getFont("default") + } + } + + TableViewColumn + { + role: "machine" + title: "Machine" + width: Math.floor(table.width * 0.25) + delegate: columnTextDelegate + } + TableViewColumn + { + role: "print_core" + title: "Print Core" + width: Math.floor(table.width * 0.2) + } + TableViewColumn + { + role: "build_plate" + title: "Build Plate" + width: Math.floor(table.width * 0.225) + } + TableViewColumn + { + role: "support_material" + title: "Support" + width: Math.floor(table.width * 0.225) + } + TableViewColumn + { + role: "quality" + title: "Quality" + width: Math.floor(table.width * 0.1) + } } } Label { id: technical_data_sheet - anchors.top: table.bottom + anchors.top: combatibilityItem.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 visible: base.technicalDataSheetUrl !== undefined + height: visible ? contentHeight : 0 text: { if (base.technicalDataSheetUrl !== undefined) From 02c97052eb54b9c2e32106f793841374fc179962 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 8 Nov 2018 17:31:30 +0100 Subject: [PATCH 0204/1039] Remove transitions when collapsing/expanding the printer category in the add printer dialog. --- resources/qml/AddMachineDialog.qml | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 0df8b891d9..06ef2e1fc1 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -213,28 +213,6 @@ UM.Dialog PropertyChanges { target: machineButton; opacity: 0; height: 0; } } - - transitions: - [ - Transition - { - to: "collapsed"; - SequentialAnimation - { - NumberAnimation { property: "opacity"; duration: 75; } - NumberAnimation { property: "height"; duration: 75; } - } - }, - Transition - { - from: "collapsed"; - SequentialAnimation - { - NumberAnimation { property: "height"; duration: 75; } - NumberAnimation { property: "opacity"; duration: 75; } - } - } - ] } } } From 88234f7e21620d2e045aefa6bbc9247da941e0c7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 9 Nov 2018 10:48:22 +0100 Subject: [PATCH 0205/1039] Change ExtruderIcon to match the new design CURA-5785 --- resources/qml/CustomConfigurationSelector.qml | 4 +- resources/qml/ExtruderIcon.qml | 46 ++++++------ .../cura-light/icons/extruder_button.svg | 73 +++---------------- 3 files changed, 33 insertions(+), 90 deletions(-) diff --git a/resources/qml/CustomConfigurationSelector.qml b/resources/qml/CustomConfigurationSelector.qml index 17b652e8d8..c78ca700da 100644 --- a/resources/qml/CustomConfigurationSelector.qml +++ b/resources/qml/CustomConfigurationSelector.qml @@ -195,8 +195,8 @@ Rectangle height: width checked: control.checked - material_color: model.color - text_color: extruderStaticText.color + materialColor: model.color + textColor: extruderStaticText.color } } } diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index e4161e0058..eb4bdef0f7 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -13,46 +13,44 @@ Item implicitHeight: implicitWidth property bool checked: true - property alias material_color: materialColorCircle.color - property alias text_color: extruderNumberText.color + property alias materialColor: mainIcon.color + property alias textColor: extruderNumberText.color UM.RecolorImage { - id: mainCircle + id: mainIcon anchors.fill: parent sourceSize.width: parent.width sourceSize.height: parent.width source: UM.Theme.getIcon("extruder_button") - color: extruderNumberText.color } - Label - { - id: extruderNumberText - anchors.centerIn: parent - text: index + 1; - font: UM.Theme.getFont("default_bold") - } - - // Material colour circle - // Only draw the filling colour of the material inside the SVG border. Rectangle { - id: materialColorCircle + id: extruderNumberCircle + + width: height + height: parent.height / 2 + radius: Math.round(width / 2) + color: "white" anchors { - right: parent.right + horizontalCenter: parent.horizontalCenter + top: parent.top + // The circle needs to be slightly off center (so it sits in the middle of the square bit of the icon) + topMargin: (parent.height - height) / 2 - 0.1 * parent.height } - width: Math.round(parent.width * 0.35) - height: Math.round(parent.height * 0.35) - radius: Math.round(width / 2) - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("extruder_button_material_border") - - opacity: !extruderIconItem.checked ? 0.6 : 1.0 + Label + { + id: extruderNumberText + anchors.centerIn: parent + text: index + 1 + font: UM.Theme.getFont("default") + width: contentWidth + height: contentHeight + } } } \ No newline at end of file diff --git a/resources/themes/cura-light/icons/extruder_button.svg b/resources/themes/cura-light/icons/extruder_button.svg index e3c01b6a0a..c79ba5c5df 100644 --- a/resources/themes/cura-light/icons/extruder_button.svg +++ b/resources/themes/cura-light/icons/extruder_button.svg @@ -1,64 +1,9 @@ - - - - - - image/svg+xml - - Artboard 3 Copy - - - - - - Artboard 3 Copy - Created with Sketch. - - - + + + + + + + + + \ No newline at end of file From 161b200a670b0c6325a26ec12368da71ae23e63e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Nov 2018 11:41:43 +0100 Subject: [PATCH 0206/1039] Fix typo in label ID --- cura/CuraVersion.py.in | 2 +- resources/qml/SidebarHeader.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/CuraVersion.py.in b/cura/CuraVersion.py.in index 388429bc02..7c6304231d 100644 --- a/cura/CuraVersion.py.in +++ b/cura/CuraVersion.py.in @@ -1,4 +1,4 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@" diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index df4f493ea5..5fde199cd0 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -489,7 +489,7 @@ Column Label { - id: bulidplateLabel + id: buildplateLabel text: catalog.i18nc("@label", "Build plate"); width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) height: parent.height From 21d4cd8f9fff870bb29080b74295fd4cb7c9b984 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 9 Nov 2018 13:44:42 +0100 Subject: [PATCH 0207/1039] Add Safety Data Sheet links to materials in Marketplace. [CURA-5922] --- .../qml/ToolboxCompatibilityChart.qml | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index fd014d26e1..a1038fd6b2 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -11,7 +11,8 @@ Item id: base property var packageData - property var technicalDataSheetUrl: { + property var technicalDataSheetUrl: + { var link = undefined if ("Technical Data Sheet" in packageData.links) { @@ -25,10 +26,16 @@ Item } return link } + property var safetyDataSheetUrl: + { + var sds_name = "safetyDataSheet" + return (sds_name in packageData.links) ? packageData.links[sds_name] : undefined + } anchors.topMargin: UM.Theme.getSize("default_margin").height height: visible ? childrenRect.height : 0 - visible: packageData.type == "material" && (packageData.has_configs || technicalDataSheetUrl != undefined) + visible: packageData.type == "material" && + (packageData.has_configs || technicalDataSheetUrl !== undefined || safetyDataSheetUrl !== undefined) Item { @@ -163,23 +170,31 @@ Item Label { - id: technical_data_sheet + id: data_sheet_links anchors.top: combatibilityItem.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 - visible: base.technicalDataSheetUrl !== undefined + visible: base.technicalDataSheetUrl !== undefined || base.safetyDataSheetUrl !== undefined height: visible ? contentHeight : 0 text: { + var result = "" if (base.technicalDataSheetUrl !== undefined) { - return "%2".arg(base.technicalDataSheetUrl).arg("Technical Data Sheet") + result += "%2".arg(base.technicalDataSheetUrl).arg("Technical Data Sheet") } - return "" + if (base.safetyDataSheetUrl !== undefined) + { + if (result.length > 0) + { + result += "
    " + } + result += "%2".arg(base.safetyDataSheetUrl).arg("Safety Data Sheet") + } + return result } font: UM.Theme.getFont("very_small") color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) } - } From 2adb79aa39a2944ddba9397512d0c51e9d048bb5 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 9 Nov 2018 13:45:51 +0100 Subject: [PATCH 0208/1039] Added re-usable expandable component CURA-5785 --- resources/qml/ExpandableComponent.qml | 77 +++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 resources/qml/ExpandableComponent.qml diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml new file mode 100644 index 0000000000..0b728ccaff --- /dev/null +++ b/resources/qml/ExpandableComponent.qml @@ -0,0 +1,77 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +// The expandable component has 3 major sub components: +// * The headerItem; Always visible and should hold some info about what happens if the component is expanded +// * The popupItem; The content that needs to be shown if the component is expanded. +// * The Button; The actual button that expands the popup. +Item +{ + // The headerItem holds the QML item that is always displayed. + property alias headerItem: headerItemLoader.sourceComponent + + // The popupItem holds the QML item that is shown when the "open" button is pressed + property var popupItem + + // The background color of the popup + property color popupBackgroundColor: "white" + + // How much spacing is needed around the popupItem + property alias padding: popup.padding + + onPopupItemChanged: + { + // Since we want the size of the popup to be set by the size of the content, + // we need to do it like this. + popup.width = popupItem.width + 2 * popup.padding + popup.height = popupItem.height + 2 * popup.padding + popup.contentItem = popupItem + } + + implicitHeight: 100 + implicitWidth: 400 + + Loader + { + id: headerItemLoader + anchors + { + left: parent.left + right: collapseButton.left + top: parent.top + bottom: parent.bottom + } + } + + Button + { + id: collapseButton + anchors + { + right: parent.right + top: parent.top + bottom: parent.bottom + } + text: popup.visible ? "close" : "open" + onClicked: popup.visible ? popup.close() : popup.open() + } + + Popup + { + id: popup + + // Ensure that the popup is located directly below the headerItem + y: headerItemLoader.height + + // Make the popup right aligned with the rest. + x: -width + collapseButton.width + headerItemLoader.width + + closePolicy: Popup.CloseOnPressOutsideParent + + background: Rectangle + { + id: background + color: popupBackgroundColor + } + } +} From c8d9ad37ffc0b56dbedd35a72aa80f0fd0210209 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 9 Nov 2018 13:49:14 +0100 Subject: [PATCH 0209/1039] Add Printing Guidelines links to materials in Marketplace. [CURA-5922] --- .../qml/ToolboxCompatibilityChart.qml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index a1038fd6b2..c6dd2217da 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -31,11 +31,17 @@ Item var sds_name = "safetyDataSheet" return (sds_name in packageData.links) ? packageData.links[sds_name] : undefined } + property var printingGuidelinesUrl: + { + var pg_name = "printingGuidelines" + return (pg_name in packageData.links) ? packageData.links[pg_name] : undefined + } anchors.topMargin: UM.Theme.getSize("default_margin").height height: visible ? childrenRect.height : 0 visible: packageData.type == "material" && - (packageData.has_configs || technicalDataSheetUrl !== undefined || safetyDataSheetUrl !== undefined) + (packageData.has_configs || technicalDataSheetUrl !== undefined || + safetyDataSheetUrl !== undefined || printingGuidelinesUrl !== undefined) Item { @@ -173,7 +179,8 @@ Item id: data_sheet_links anchors.top: combatibilityItem.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 - visible: base.technicalDataSheetUrl !== undefined || base.safetyDataSheetUrl !== undefined + visible: base.technicalDataSheetUrl !== undefined || + base.safetyDataSheetUrl !== undefined || base.printingGuidelinesUrl !== undefined height: visible ? contentHeight : 0 text: { @@ -190,6 +197,14 @@ Item } result += "%2".arg(base.safetyDataSheetUrl).arg("Safety Data Sheet") } + if (base.printingGuidelinesUrl !== undefined) + { + if (result.length > 0) + { + result += "
    " + } + result += "%2".arg(base.printingGuidelinesUrl).arg("Printing Guidelines") + } return result } font: UM.Theme.getFont("very_small") From 7f54cacd0ffb13e07201ac6010457dc62d11c70f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 9 Nov 2018 14:11:38 +0100 Subject: [PATCH 0210/1039] Code style Discovered during work on CURA-5840. --- plugins/Toolbox/src/PackagesModel.py | 4 ++-- plugins/Toolbox/src/Toolbox.py | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py index aa5626b7f2..a31facf75a 100644 --- a/plugins/Toolbox/src/PackagesModel.py +++ b/plugins/Toolbox/src/PackagesModel.py @@ -12,7 +12,7 @@ from UM.Qt.ListModel import ListModel from .ConfigsModel import ConfigsModel -## Model that holds cura packages. By setting the filter property the instances held by this model can be changed. +## Model that holds Cura packages. By setting the filter property the instances held by this model can be changed. class PackagesModel(ListModel): def __init__(self, parent = None): super().__init__(parent) @@ -70,7 +70,7 @@ class PackagesModel(ListModel): # Links is a list of dictionaries with "title" and "url". Convert this list into a dict so it's easier # to process. - link_list = package['data']['links'] if 'links' in package['data'] else [] + link_list = package["data"]["links"] if "links" in package["data"] else [] links_dict = {d["title"]: d["url"] for d in link_list} if "author_id" not in package["author"] or "display_name" not in package["author"]: diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 2d9299fb5a..cec7fae6bd 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -172,18 +172,18 @@ class Toolbox(QObject, Extension): self._cloud_api_version = self._getCloudAPIVersion() self._cloud_api_root = self._getCloudAPIRoot() self._api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format( - cloud_api_root=self._cloud_api_root, - cloud_api_version=self._cloud_api_version, - sdk_version=self._sdk_version + cloud_api_root = self._cloud_api_root, + cloud_api_version = self._cloud_api_version, + sdk_version = self._sdk_version ) self._request_urls = { - "authors": QUrl("{base_url}/authors".format(base_url=self._api_url)), - "packages": QUrl("{base_url}/packages".format(base_url=self._api_url)), - "plugins_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)), - "plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url=self._api_url)), - "materials_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)), - "materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url=self._api_url)), - "materials_generic": QUrl("{base_url}/packages?package_type=material&tags=generic".format(base_url=self._api_url)) + "authors": QUrl("{base_url}/authors".format(base_url = self._api_url)), + "packages": QUrl("{base_url}/packages".format(base_url = self._api_url)), + "plugins_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)), + "plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url = self._api_url)), + "materials_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)), + "materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url = self._api_url)), + "materials_generic": QUrl("{base_url}/packages?package_type=material&tags=generic".format(base_url = self._api_url)) } # Get the API root for the packages API depending on Cura version settings. @@ -295,7 +295,7 @@ class Toolbox(QObject, Extension): for plugin_id in old_plugin_ids: # Neither the installed packages nor the packages that are scheduled to remove are old plugins if plugin_id not in installed_package_ids and plugin_id not in scheduled_to_remove_package_ids: - Logger.log('i', 'Found a plugin that was installed with the old plugin browser: %s', plugin_id) + Logger.log("i", "Found a plugin that was installed with the old plugin browser: %s", plugin_id) old_metadata = self._plugin_registry.getMetaData(plugin_id) new_metadata = self._convertPluginMetadata(old_metadata) From 1d775c984e4ebf426bc563adcc639b3d643410bf Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 9 Nov 2018 14:31:06 +0100 Subject: [PATCH 0211/1039] Added background padding to expandable component CURA-5785 --- resources/qml/ExpandableComponent.qml | 66 +++++++++++++++++---------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 0b728ccaff..26bdf3b3ce 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -1,6 +1,8 @@ import QtQuick 2.7 import QtQuick.Controls 2.3 +import UM 1.2 as UM + // The expandable component has 3 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded // * The popupItem; The content that needs to be shown if the component is expanded. @@ -16,8 +18,13 @@ Item // The background color of the popup property color popupBackgroundColor: "white" + property alias headerBackgroundColor: background.color + // How much spacing is needed around the popupItem - property alias padding: popup.padding + property alias popupPadding: popup.padding + + // How much padding is needed around the header & button + property alias headerPadding: background.padding onPopupItemChanged: { @@ -30,30 +37,39 @@ Item implicitHeight: 100 implicitWidth: 400 - - Loader + Rectangle { - id: headerItemLoader - anchors - { - left: parent.left - right: collapseButton.left - top: parent.top - bottom: parent.bottom - } - } + id: background + property real padding: UM.Theme.getSize("default_margin").width - Button - { - id: collapseButton - anchors + color: "white" + anchors.fill: parent + Loader { - right: parent.right - top: parent.top - bottom: parent.bottom + id: headerItemLoader + anchors + { + left: parent.left + right: collapseButton.left + top: parent.top + bottom: parent.bottom + margins: background.padding + } + } + + Button + { + id: collapseButton + anchors + { + right: parent.right + top: parent.top + bottom: parent.bottom + margins: background.padding + } + text: popup.visible ? "close" : "open" + onClicked: popup.visible ? popup.close() : popup.open() } - text: popup.visible ? "close" : "open" - onClicked: popup.visible ? popup.close() : popup.open() } Popup @@ -61,16 +77,16 @@ Item id: popup // Ensure that the popup is located directly below the headerItem - y: headerItemLoader.height + y: headerItemLoader.height + 2 * background.padding - // Make the popup right aligned with the rest. - x: -width + collapseButton.width + headerItemLoader.width + // Make the popup right aligned with the rest. The 3x padding is due to left, right and padding between + //the button & text. + x: -width + collapseButton.width + headerItemLoader.width + 3 * background.padding closePolicy: Popup.CloseOnPressOutsideParent background: Rectangle { - id: background color: popupBackgroundColor } } From 2c7bdba7d009d8dfbcebb99a7e9b0b85172432f6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 9 Nov 2018 15:20:26 +0100 Subject: [PATCH 0212/1039] Update ConfigurationSelector header to that it looks more like the new design CURA-5785 --- cura/Settings/ExtrudersModel.py | 11 ++- plugins/PrepareStage/PrepareMenu.qml | 10 ++- .../QuickConfigurationSelector.qml | 79 ++++++++++++++++++- 3 files changed, 92 insertions(+), 8 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 52fc502bfc..9b85afa10e 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -47,6 +47,9 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): VariantRole = Qt.UserRole + 7 StackRole = Qt.UserRole + 8 + MaterialBrandRole = Qt.UserRole + 9 + ColorNameRole = Qt.UserRole + 10 + ## List of colours to display if there is no material or the material has no known # colour. defaultColors = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"] @@ -67,7 +70,8 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): self.addRoleName(self.MaterialRole, "material") self.addRoleName(self.VariantRole, "variant") self.addRoleName(self.StackRole, "stack") - + self.addRoleName(self.MaterialBrandRole, "material_brand") + self.addRoleName(self.ColorNameRole, "color_name") self._update_extruder_timer = QTimer() self._update_extruder_timer.setInterval(100) self._update_extruder_timer.setSingleShot(True) @@ -183,7 +187,8 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): default_color = self.defaultColors[position] if 0 <= position < len(self.defaultColors) else self.defaultColors[0] color = extruder.material.getMetaDataEntry("color_code", default = default_color) if extruder.material else default_color - + material_brand = extruder.material.getMetaDataEntry("brand", default = "generic") + color_name = extruder.material.getMetaDataEntry("color_name") # construct an item with only the relevant information item = { "id": extruder.getId(), @@ -195,6 +200,8 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): "material": extruder.material.getName() if extruder.material else "", "variant": extruder.variant.getName() if extruder.variant else "", # e.g. print core "stack": extruder, + "material_brand": material_brand, + "color_name": color_name } items.append(item) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index e8514a9ef9..bcc8ec4c0a 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -50,16 +50,18 @@ Item Cura.QuickConfigurationSelector { - id: configSelection + height: prepareMenu.height + width: UM.Theme.getSize("configuration_selector_widget").width + /*id: configSelection width: visible ? UM.Theme.getSize("machine_selector_widget").width * 0.2 : 0 panelWidth: UM.Theme.getSize("machine_selector_widget").width - height: prepareMenu.height + height: prepareMenu.height*/ } - Cura.CustomConfigurationSelector + /*Cura.CustomConfigurationSelector { width: UM.Theme.getSize("configuration_selector_widget").width - } + }*/ Cura.PrintSetupSelector { diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 740c12d340..966133d906 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -8,7 +8,82 @@ import QtQuick.Controls.Styles 1.4 import UM 1.2 as UM import Cura 1.0 as Cura -Item + +Cura.ExpandableComponent +{ + id: base + headerItem: Item + { + Cura.ExtrudersModel + { + id: extrudersModel + } + + ListView + { + // Horizontal list that shows the extruders + id: extrudersList + + orientation: ListView.Horizontal + anchors.fill: parent + model: extrudersModel + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + } + + delegate: Item + { + height: parent.height + width: Math.round(ListView.view.width / extrudersModel.rowCount()) + + Cura.ExtruderIcon + { + id: extruderIcon + materialColor: model.color + height: parent.height + width: height + } + + Label + { + id: brandNameLabel + + text: model.material_brand + elide: Text.ElideRight + + anchors + { + left: extruderIcon.right + leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + } + } + Label + { + text: model.color_name + elide: Text.ElideRight + + anchors + { + left: extruderIcon.right + leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + top: brandNameLabel.bottom + } + } + } + } + } + + +} + +/*Item { id: configurationSelector property var connectedDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null @@ -65,4 +140,4 @@ Item onClosed: visible = false onOpened: visible = true } -} \ No newline at end of file +}*/ \ No newline at end of file From 8e05c2adcb708cffaa34cf62d513312d7ea37951 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 9 Nov 2018 15:27:02 +0100 Subject: [PATCH 0213/1039] Have translation instead of plain string for Safety Data Sheets and Printing Guidelines. [CURA-5922] --- .../Toolbox/resources/qml/ToolboxCompatibilityChart.qml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index c6dd2217da..a48cb2ee3f 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -187,7 +187,8 @@ Item var result = "" if (base.technicalDataSheetUrl !== undefined) { - result += "%2".arg(base.technicalDataSheetUrl).arg("Technical Data Sheet") + var tds_name = catalog.i18nc("@action:label", "Technical Data Sheet") + result += "%2".arg(base.technicalDataSheetUrl).arg(tds_name) } if (base.safetyDataSheetUrl !== undefined) { @@ -195,7 +196,8 @@ Item { result += "
    " } - result += "%2".arg(base.safetyDataSheetUrl).arg("Safety Data Sheet") + var sds_name = catalog.i18nc("@action:label", "Safety Data Sheet") + result += "%2".arg(base.safetyDataSheetUrl).arg(sds_name) } if (base.printingGuidelinesUrl !== undefined) { @@ -203,7 +205,8 @@ Item { result += "
    " } - result += "%2".arg(base.printingGuidelinesUrl).arg("Printing Guidelines") + var pg_name = catalog.i18nc("@action:label", "Printing Guidelines") + result += "%2".arg(base.printingGuidelinesUrl).arg(pg_name) } return result } From 1602bf0999974c4815faa54575ad84aabb1e3867 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 9 Nov 2018 16:59:10 +0100 Subject: [PATCH 0214/1039] Re-Add the material & printcore selection to the configuration selector CURA-5785 --- .../QuickConfigurationSelector.qml | 170 ++++++++++++++++-- 1 file changed, 157 insertions(+), 13 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 966133d906..e093c96ae5 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -4,6 +4,9 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.11 + +import QtQuick.Controls 1.1 as OldControls import UM 1.2 as UM import Cura 1.0 as Cura @@ -12,33 +15,28 @@ import Cura 1.0 as Cura Cura.ExpandableComponent { id: base + Cura.ExtrudersModel + { + id: extrudersModel + } + headerItem: Item { - Cura.ExtrudersModel - { - id: extrudersModel - } - + // Horizontal list that shows the extruders ListView { - // Horizontal list that shows the extruders id: extrudersList orientation: ListView.Horizontal anchors.fill: parent model: extrudersModel - Connections - { - target: Cura.MachineManager - onGlobalContainerChanged: forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - } - delegate: Item { height: parent.height width: Math.round(ListView.view.width / extrudersModel.rowCount()) + // Extruder icon. Shows extruder index and has the same color as the active material. Cura.ExtruderIcon { id: extruderIcon @@ -47,6 +45,7 @@ Cura.ExpandableComponent width: height } + // Label for the human readable material color name Label { id: brandNameLabel @@ -62,6 +61,8 @@ Cura.ExpandableComponent rightMargin: UM.Theme.getSize("default_margin").width } } + + // Label that shows the brand of the material Label { text: model.color_name @@ -80,7 +81,150 @@ Cura.ExpandableComponent } } - + popupItem: Item + { + width: base.width + height: 200 + + TabBar + { + id: tabBar + onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) + width: parent.width + height: 50 + Repeater + { + model: extrudersModel + + delegate: TabButton + { + width: Math.round(ListView.view.width / extrudersModel.rowCount()) + height: parent.height + contentItem: Item + { + Cura.ExtruderIcon + { + anchors.horizontalCenter: parent.horizontalCenter + materialColor: model.color + width: parent.height + height: parent.height + } + } + } + } + } + + Item + { + id: tabControl + width: parent.width + anchors.top: tabBar.bottom + anchors.bottom: parent.bottom + property var model: extrudersModel.items[tabBar.currentIndex] + property real textWidth: Math.round(width * 0.3) + property real controlWidth: Math.round(width * 0.7) + Column + { + spacing: UM.Theme.getSize("default_margin").height + Row + { + height: UM.Theme.getSize("print_setup_item").height + + Label + { + text: "Enabled" + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + height: parent.height + width: tabControl.textWidth + } + + OldControls.CheckBox + { + checked: Cura.MachineManager.getExtruder(parent.model.index).isEnabled + onClicked: Cura.MachineManager.setExtruderEnabled(parent.model.index, checked) + height: UM.Theme.getSize("setting_control").height + style: UM.Theme.styles.checkbox + } + } + + Row + { + height: UM.Theme.getSize("print_setup_item").height + Label + { + text: "Material" + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + height: parent.height + width: tabControl.textWidth + } + + OldControls.ToolButton + { + id: materialSelection + + property var activeExtruder: Cura.MachineManager.activeStack + property var hasActiveExtruder: activeExtruder != null + property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" + property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true + property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported + + text: currentRootMaterialName + tooltip: currentRootMaterialName + visible: Cura.MachineManager.hasMaterials + + enabled: !extrudersList.visible || Cura.ExtruderManager.activeExtruderIndex > -1 + + height: UM.Theme.getSize("setting_control").height + width: tabControl.controlWidth + + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true + menu: Cura.MaterialMenu + { + extruderIndex: Cura.ExtruderManager.activeExtruderIndex + } + + } + } + + Row + { + height: UM.Theme.getSize("print_setup_item").height + + Label + { + text: Cura.MachineManager.activeDefinitionVariantsName + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + height: parent.height + width: tabControl.textWidth + } + + OldControls.ToolButton + { + id: variantSelection + text: Cura.MachineManager.activeVariantName + tooltip: Cura.MachineManager.activeVariantName; + visible: Cura.MachineManager.hasVariants + + height: UM.Theme.getSize("setting_control").height + width: tabControl.controlWidth + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + + menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } + } + } + } + + } + } + } /*Item From 15a30a7a982e3498b72022ad5839f24fe16f32da Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 9 Nov 2018 17:06:45 +0100 Subject: [PATCH 0215/1039] Increase the version of the bundled TPLA to match with the version that is currently in the server. --- resources/bundled_packages/cura.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index fceee75539..79cce6aa4e 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -1487,7 +1487,7 @@ "package_type": "material", "display_name": "Ultimaker Tough PLA", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.0.0", + "package_version": "1.0.2", "sdk_version": 5, "website": "https://ultimaker.com/products/materials/tough-pla", "author": { From a9523fd89462665a6d0358e1b231c13ccd4ad46e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 9 Nov 2018 17:18:01 +0100 Subject: [PATCH 0216/1039] Change the Ultimaker author_id to UltimakerPackages. Apparently this is the new author_id. Contributes to CURA-5926. --- resources/bundled_packages/cura.json | 104 +++++++++++++-------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index 79cce6aa4e..ee82b17a75 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -9,7 +9,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -26,7 +26,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -43,7 +43,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -60,7 +60,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -77,7 +77,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -94,7 +94,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -111,7 +111,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -128,7 +128,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -145,7 +145,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -162,7 +162,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -179,7 +179,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -213,7 +213,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -230,7 +230,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -247,7 +247,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -281,7 +281,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -298,7 +298,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -315,7 +315,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -332,7 +332,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -349,7 +349,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -366,7 +366,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -383,7 +383,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -400,7 +400,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -417,7 +417,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -434,7 +434,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -451,7 +451,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -468,7 +468,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -485,7 +485,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -502,7 +502,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -519,7 +519,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -536,7 +536,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -553,7 +553,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -570,7 +570,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -587,7 +587,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -604,7 +604,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -621,7 +621,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -638,7 +638,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -655,7 +655,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -672,7 +672,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -689,7 +689,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -723,7 +723,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -740,7 +740,7 @@ "sdk_version": 5, "website": "https://ultimaker.com", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" @@ -1301,7 +1301,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1320,7 +1320,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/breakaway", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1339,7 +1339,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1358,7 +1358,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/cpe", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1377,7 +1377,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1396,7 +1396,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/pc", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1415,7 +1415,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1434,7 +1434,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/pp", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1453,7 +1453,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/abs", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1472,7 +1472,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/tpu-95a", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", @@ -1491,7 +1491,7 @@ "sdk_version": 5, "website": "https://ultimaker.com/products/materials/tough-pla", "author": { - "author_id": "Ultimaker", + "author_id": "UltimakerPackages", "display_name": "Ultimaker B.V.", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", From 69daa0d91a2d7a70fa9d4e3a5d90778799dbca31 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 11 Nov 2018 12:44:56 +0100 Subject: [PATCH 0217/1039] Rename Toolbox menu to Marketplace. It was remove by mistake in a merge conflict. Contributes to CURA-5784. --- resources/qml/MainWindow/ApplicationMenu.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/MainWindow/ApplicationMenu.qml b/resources/qml/MainWindow/ApplicationMenu.qml index d3bc115419..04c068cb54 100644 --- a/resources/qml/MainWindow/ApplicationMenu.qml +++ b/resources/qml/MainWindow/ApplicationMenu.qml @@ -86,7 +86,7 @@ Item Menu { id: plugin_menu - title: catalog.i18nc("@title:menu menubar:toplevel", "&Toolbox") + title: catalog.i18nc("@title:menu menubar:toplevel", "&Marketplace") MenuItem { action: Cura.Actions.browsePackages } } From 3669a3791dc04f9fa35a9ef62cd3e57b8667ce94 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 11 Nov 2018 12:56:30 +0100 Subject: [PATCH 0218/1039] Hide the Preview shortcut in the action panel when the active stage is the PreviewStage. Also adjust the size of the output button when the Preview button is not visible. Contributes to CURA-5786. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 0ea956d1dc..f4e014b1ec 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -102,6 +102,8 @@ Column Cura.ActionButton { + id: previewStageShortcut + leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("action_panel_button").height @@ -111,11 +113,12 @@ Column textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") onClicked: UM.Controller.setActiveStage("PreviewStage") + visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage" } Cura.OutputDevicesActionButton { - width: UM.Theme.getSize("action_panel_button").width + width: previewStageShortcut.visible ? UM.Theme.getSize("action_panel_button").width : parent.width height: UM.Theme.getSize("action_panel_button").height } } From f65b1f8fbc183fb1b696baacc263c54ef9246f03 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 11 Nov 2018 13:16:38 +0100 Subject: [PATCH 0219/1039] Add soft animation to the entire popup and not only in the background. This prevents the content to show before the background. Contributes to CURA-5784. --- resources/qml/Account/AccountWidget.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/qml/Account/AccountWidget.qml b/resources/qml/Account/AccountWidget.qml index e37523296f..d3bd6fd130 100644 --- a/resources/qml/Account/AccountWidget.qml +++ b/resources/qml/Account/AccountWidget.qml @@ -51,6 +51,9 @@ Button closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent + opacity: opened ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 100 } } + contentItem: AccountDetails { id: panel @@ -61,8 +64,6 @@ Button background: UM.PointingRectangle { - opacity: visible ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 100 } } color: UM.Theme.getColor("tool_panel_background") borderColor: UM.Theme.getColor("lining") borderWidth: UM.Theme.getSize("default_lining").width From 8a63a79896b3c22f94562ddc0aec1b939103494b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 11 Nov 2018 13:17:59 +0100 Subject: [PATCH 0220/1039] Add soft animation to the entire popup and not only in the background. This prevents the content to show before the background. Contributes to CURA-5786. --- .../ActionPanel/PrintInformationWidget.qml | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/resources/qml/ActionPanel/PrintInformationWidget.qml b/resources/qml/ActionPanel/PrintInformationWidget.qml index 620c3a408c..82707576e0 100644 --- a/resources/qml/ActionPanel/PrintInformationWidget.qml +++ b/resources/qml/ActionPanel/PrintInformationWidget.qml @@ -7,29 +7,30 @@ import QtQuick.Controls 2.1 import UM 1.1 as UM import Cura 1.0 as Cura -Button +UM.RecolorImage { id: widget - implicitHeight: UM.Theme.getSize("section_icon").height - implicitWidth: UM.Theme.getSize("section_icon").width + //implicitHeight: UM.Theme.getSize("section_icon").height + //implicitWidth: UM.Theme.getSize("section_icon").width - background: UM.RecolorImage + source: UM.Theme.getIcon("info") + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + + sourceSize.width: width + sourceSize.height: height + + color: popup.opened ? UM.Theme.getColor("primary") : UM.Theme.getColor("text_medium") + + MouseArea { - id: moreInformationIcon - - source: UM.Theme.getIcon("info") - width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height - - sourceSize.width: width - sourceSize.height: height - - color: widget.hovered ? UM.Theme.getColor("primary") : UM.Theme.getColor("text_medium") + anchors.fill: parent + hoverEnabled: true + onEntered: popup.open() + onExited: popup.close() } - onClicked: popup.opened ? popup.close() : popup.open() - Popup { id: popup @@ -39,6 +40,9 @@ Button closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent + opacity: opened ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 100 } } + contentItem: PrintJobInformation { id: printJobInformation @@ -47,8 +51,6 @@ Button background: UM.PointingRectangle { - opacity: visible ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 100 } } color: UM.Theme.getColor("tool_panel_background") borderColor: UM.Theme.getColor("lining") borderWidth: UM.Theme.getSize("default_lining").width From 38a80ecae59eeac754f10cd2ef00054ed09c3ba2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 11 Nov 2018 14:06:52 +0100 Subject: [PATCH 0221/1039] Make some tweaks in the UI for the preview stage. Clean up the default theme a bit by removing unused entries. Contributes to CURA-5829. --- plugins/SimulationView/LayerSlider.qml | 10 ++--- plugins/SimulationView/PathSlider.qml | 9 ++-- .../SimulationViewMainComponent.qml | 4 +- resources/themes/cura-dark/theme.json | 1 - resources/themes/cura-light/styles.qml | 41 ------------------- resources/themes/cura-light/theme.json | 33 ++++++--------- 6 files changed, 21 insertions(+), 77 deletions(-) diff --git a/plugins/SimulationView/LayerSlider.qml b/plugins/SimulationView/LayerSlider.qml index 7916cd62b3..42b8cf0ba0 100644 --- a/plugins/SimulationView/LayerSlider.qml +++ b/plugins/SimulationView/LayerSlider.qml @@ -21,15 +21,12 @@ Item property color lowerHandleColor: UM.Theme.getColor("slider_handle") property color rangeHandleColor: UM.Theme.getColor("slider_groove_fill") property color handleActiveColor: UM.Theme.getColor("slider_handle_active") - property real handleLabelWidth: UM.Theme.getSize("slider_layerview_background").width property var activeHandle: upperHandle // Track properties property real trackThickness: UM.Theme.getSize("slider_groove").width // width of the slider track - property real trackRadius: trackThickness / 2 + property real trackRadius: UM.Theme.getSize("slider_groove_radius").width property color trackColor: UM.Theme.getColor("slider_groove") - property real trackBorderWidth: 1 - property color trackBorderColor: UM.Theme.getColor("slider_groove_border") // value properties property real maximumValue: 100 @@ -90,8 +87,6 @@ Item radius: sliderRoot.trackRadius anchors.centerIn: sliderRoot color: sliderRoot.trackColor - border.width: sliderRoot.trackBorderWidth - border.color: sliderRoot.trackBorderColor visible: sliderRoot.layersVisible } @@ -140,9 +135,10 @@ Item Rectangle { - width: sliderRoot.trackThickness - 2 * sliderRoot.trackBorderWidth + width: sliderRoot.trackThickness height: parent.height + sliderRoot.handleSize anchors.centerIn: parent + radius: sliderRoot.trackRadius color: sliderRoot.rangeHandleColor } diff --git a/plugins/SimulationView/PathSlider.qml b/plugins/SimulationView/PathSlider.qml index 701e54e398..c7a43c6407 100644 --- a/plugins/SimulationView/PathSlider.qml +++ b/plugins/SimulationView/PathSlider.qml @@ -23,10 +23,8 @@ Item // track properties property real trackThickness: UM.Theme.getSize("slider_groove").width - property real trackRadius: trackThickness / 2 + property real trackRadius: UM.Theme.getSize("slider_groove_radius").width property color trackColor: UM.Theme.getColor("slider_groove") - property real trackBorderWidth: 1 // width of the slider track border - property color trackBorderColor: UM.Theme.getColor("slider_groove_border") // value properties property real maximumValue: 100 @@ -68,8 +66,6 @@ Item radius: sliderRoot.trackRadius anchors.centerIn: sliderRoot color: sliderRoot.trackColor - border.width: sliderRoot.trackBorderWidth - border.color: sliderRoot.trackBorderColor visible: sliderRoot.pathsVisible } @@ -86,9 +82,10 @@ Item Rectangle { - height: sliderRoot.trackThickness - 2 * sliderRoot.trackBorderWidth + height: sliderRoot.trackThickness width: parent.width + sliderRoot.handleSize anchors.centerIn: parent + radius: sliderRoot.trackRadius color: sliderRoot.rangeColor } } diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index 784938e5c2..4e038a1cf1 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -18,7 +18,7 @@ Item { id: pathSlider height: UM.Theme.getSize("slider_handle").width - width: UM.Theme.getSize("layerview_menu_size").width + width: UM.Theme.getSize("slider_layerview_size").height anchors.bottom: parent.bottom anchors.bottomMargin: UM.Theme.getSize("default_margin").height @@ -166,7 +166,7 @@ Item id: layerSlider width: UM.Theme.getSize("slider_handle").width - height: UM.Theme.getSize("layerview_menu_size").height + height: UM.Theme.getSize("slider_layerview_size").height anchors { diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 344efb6fd1..62b1dbfa0f 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -135,7 +135,6 @@ "slider_handle": [255, 255, 255, 255], "slider_handle_hover": [77, 182, 226, 255], "slider_handle_active": [68, 192, 255, 255], - "slider_handle_border": [39, 44, 48, 255], "slider_text_background": [255, 255, 255, 255], "checkbox": [43, 48, 52, 255], diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index dacff1b42b..503a3eddca 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -915,47 +915,6 @@ QtObject } } - property Component slider: Component - { - SliderStyle - { - groove: Rectangle - { - implicitWidth: control.width - implicitHeight: Theme.getSize("slider_groove").height - - color: Theme.getColor("slider_groove") - border.width: Theme.getSize("default_lining").width - border.color: Theme.getColor("slider_groove_border") - - radius: Math.round(width / 2) - - Rectangle - { - anchors - { - left: parent.left - top: parent.top - bottom: parent.bottom - } - color: Theme.getColor("slider_groove_fill"); - width: Math.round((control.value / (control.maximumValue - control.minimumValue)) * parent.width); - radius: Math.round(width / 2); - } - } - handle: Rectangle - { - width: Theme.getSize("slider_handle").width; - height: Theme.getSize("slider_handle").height; - color: control.hovered ? Theme.getColor("slider_handle_hover") : Theme.getColor("slider_handle"); - border.width: Theme.getSize("default_lining").width - border.color: control.hovered ? Theme.getColor("slider_handle_hover_border") : Theme.getColor("slider_handle_border") - radius: Math.round(Theme.getSize("slider_handle").width / 2); //Round. - Behavior on color { ColorAnimation { duration: 50; } } - } - } - } - property Component text_field: Component { TextFieldStyle diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index f882277d65..48cf5d456d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -131,11 +131,11 @@ "button_disabled": [31, 36, 39, 255], "button_disabled_text": [255, 255, 255, 101], - "small_button": [31, 36, 39, 0], - "small_button_hover": [68, 72, 75, 255], - "small_button_active": [68, 72, 75, 255], - "small_button_active_hover": [68, 72, 75, 255], - "small_button_text": [31, 36, 39, 197], + "small_button": [0, 0, 0, 0], + "small_button_hover": [10, 8, 80, 255], + "small_button_active": [10, 8, 80, 255], + "small_button_active_hover": [10, 8, 80, 255], + "small_button_text": [171, 171, 191, 255], "small_button_text_hover": [255, 255, 255, 255], "small_button_text_active": [255, 255, 255, 255], "small_button_text_active_hover": [255, 255, 255, 255], @@ -215,13 +215,11 @@ "progressbar_background": [245, 245, 245, 255], "progressbar_control": [50, 130, 255, 255], - "slider_groove": [245, 245, 245, 255], - "slider_groove_border": [127, 127, 127, 255], - "slider_groove_fill": [127, 127, 127, 255], - "slider_handle": [0, 0, 0, 255], + "slider_groove": [223, 223, 223, 255], + "slider_groove_fill": [10, 8, 80, 255], + "slider_handle": [10, 8, 80, 255], "slider_handle_hover": [77, 182, 226, 255], - "slider_handle_active": [68, 192, 255, 255], - "slider_handle_border": [39, 44, 48, 255], + "slider_handle_active": [50, 130, 255, 255], "slider_text_background": [255, 255, 255, 255], "quality_slider_unavailable": [179, 179, 179, 255], @@ -449,17 +447,12 @@ "scrollbar": [0.75, 0.5], - "quality_slider_bar": [1, 0.2], - - "slider_groove": [0.3, 0.3], - "slider_handle": [1.0, 1.0], - "slider_layerview_size": [1.0, 22.0], - "slider_layerview_background": [4.0, 0.0], - "slider_layerview_margin": [1.0, 1.5], + "slider_groove": [0.5, 0.5], + "slider_groove_radius": [0.15, 0.15], + "slider_handle": [1.5, 1.5], + "slider_layerview_size": [1.0, 26.0], "layerview_menu_size": [15, 20], - "layerview_menu_size_material_color_mode": [15, 16], - "layerview_menu_size_collapsed": [15, 6], "layerview_legend_size": [1.0, 1.0], "layerview_row": [11.0, 1.5], "layerview_row_spacing": [0.0, 0.5], From 9bf18031ce33f41d649e5471048ac84a3dc06bd9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 11 Nov 2018 19:15:02 +0100 Subject: [PATCH 0222/1039] Apply restyle of the toolbar according to the new designs. --- .../qml/ActionPanel/ActionPanelWidget.qml | 1 - resources/qml/Cura.qml | 2 + resources/qml/ExtruderButton.qml | 35 +++-- resources/qml/Toolbar.qml | 130 +++++++++++------- resources/themes/cura-light/styles.qml | 75 ++++++++++ resources/themes/cura-light/theme.json | 9 +- 6 files changed, 185 insertions(+), 67 deletions(-) diff --git a/resources/qml/ActionPanel/ActionPanelWidget.qml b/resources/qml/ActionPanel/ActionPanelWidget.qml index 0db778de5a..a1cd81e9e9 100644 --- a/resources/qml/ActionPanel/ActionPanelWidget.qml +++ b/resources/qml/ActionPanel/ActionPanelWidget.qml @@ -23,7 +23,6 @@ Rectangle border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") radius: UM.Theme.getSize("default_radius").width - visible: CuraApplication.platformActivity property bool outputAvailable: UM.Backend.state == UM.Backend.Done || UM.Backend.state == UM.Backend.Disabled diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index dc64aeee38..819d986ece 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -186,6 +186,7 @@ UM.MainWindow verticalCenter: parent.verticalCenter left: parent.left } + visible: CuraApplication.platformActivity } ObjectsList @@ -235,6 +236,7 @@ UM.MainWindow anchors.bottom: parent.bottom anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.bottomMargin: UM.Theme.getSize("thick_margin").height + visible: CuraApplication.platformActivity } Loader diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 2c1b80047e..7923521658 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -15,37 +15,36 @@ Button text: catalog.i18ncp("@label %1 is filled in with the name of an extruder", "Print Selected Model with %1", "Print Selected Models with %1", UM.Selection.selectionCount).arg(extruder.name) - style: UM.Theme.styles.tool_button; + style: UM.Theme.styles.toolbar_button iconSource: UM.Theme.getIcon("extruder_button") checked: Cura.ExtruderManager.selectedObjectExtruders.indexOf(extruder.id) != -1 enabled: UM.Selection.hasSelection && extruder.stack.isEnabled - property color customColor: base.hovered ? UM.Theme.getColor("button_hover") : UM.Theme.getColor("button"); - - Rectangle - { - anchors.fill: parent - anchors.margins: UM.Theme.getSize("default_lining").width; - - color: "transparent" - - border.width: base.checked ? UM.Theme.getSize("default_lining").width : 0; - border.color: UM.Theme.getColor("button_text") - } - Item { anchors.centerIn: parent width: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("default_margin").height + opacity: !base.enabled ? 0.2 : 1.0 Label { - anchors.centerIn: parent; - text: index + 1; - color: parent.enabled ? UM.Theme.getColor("button_text") : UM.Theme.getColor("button_disabled_text") - font: UM.Theme.getFont("default_bold"); + anchors.centerIn: parent + text: index + 1 + color: + { + if (base.checked) + { + return UM.Theme.getColor("toolbar_button_text_active") + } + else if(base.hovered) + { + return UM.Theme.getColor("toolbar_button_text_hover") + } + return UM.Theme.getColor("toolbar_button_text") + } + font: UM.Theme.getFont("default_bold") } } diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index a04b3650df..9955ceeba7 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -11,75 +11,113 @@ import Cura 1.0 as Cura Item { - id: base; + id: base - width: buttons.width; + width: buttons.width height: buttons.height property int activeY - Column + Item { - id: buttons; + id: buttons + width: parent.visible ? toolButtons.width : 0 + height: childrenRect.height - anchors.bottom: parent.bottom - anchors.left: parent.left - spacing: UM.Theme.getSize("button_lining").width + Behavior on width { NumberAnimation { duration: 100 } } - Repeater + // Used to create a rounded rectangle behind the toolButtons + Rectangle { - id: repeat + anchors.fill: toolButtons + anchors.leftMargin: -radius + radius: UM.Theme.getSize("default_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: UM.Theme.getColor("toolbar_background") + } - model: UM.ToolModel { } - width: childrenRect.width - height: childrenRect.height - Button + Column + { + id: toolButtons + + anchors.top: parent.top + anchors.right: parent.right + spacing: UM.Theme.getSize("button_lining").width + + Repeater { - text: model.name + (model.shortcut ? (" (" + model.shortcut + ")") : "") - iconSource: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon - checkable: true - checked: model.active - enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled - style: UM.Theme.styles.tool_button + id: repeat - onCheckedChanged: + model: UM.ToolModel { } + width: childrenRect.width + height: childrenRect.height + Button { - if (checked) - { - base.activeY = y; - } - } + text: model.name + (model.shortcut ? (" (" + model.shortcut + ")") : "") + iconSource: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon + checkable: true + checked: model.active + enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled + style: UM.Theme.styles.toolbar_button - //Workaround since using ToolButton's onClicked would break the binding of the checked property, instead - //just catch the click so we do not trigger that behaviour. - MouseArea - { - anchors.fill: parent; - onClicked: + onCheckedChanged: { - forceActiveFocus() //First grab focus, so all the text fields are updated - if(parent.checked) + if (checked) { - UM.Controller.setActiveTool(null); + base.activeY = y; } - else + } + + //Workaround since using ToolButton's onClicked would break the binding of the checked property, instead + //just catch the click so we do not trigger that behaviour. + MouseArea + { + anchors.fill: parent; + onClicked: { - UM.Controller.setActiveTool(model.id); + forceActiveFocus() //First grab focus, so all the text fields are updated + if(parent.checked) + { + UM.Controller.setActiveTool(null); + } + else + { + UM.Controller.setActiveTool(model.id); + } } } } } } - Item { height: UM.Theme.getSize("default_margin").height; width: UM.Theme.getSize("default_lining").width; visible: extruders.count > 0 } - - Repeater + // Used to create a rounded rectangle behind the extruderButtons + Rectangle { - id: extruders - width: childrenRect.width - height: childrenRect.height - property var _model: Cura.ExtrudersModel { id: extrudersModel } - model: _model.items.length > 1 ? _model : 0 - ExtruderButton { extruder: model } + anchors.fill: extruderButtons + anchors.leftMargin: -radius + radius: UM.Theme.getSize("default_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: UM.Theme.getColor("toolbar_background") + } + + Column + { + id: extruderButtons + + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.top: toolButtons.bottom + anchors.right: parent.right + + Repeater + { + id: extruders + width: childrenRect.width + height: childrenRect.height + property var _model: Cura.ExtrudersModel { id: extrudersModel } + model: _model.items.length > 1 ? _model : 0 + ExtruderButton { extruder: model } + } } } @@ -91,7 +129,7 @@ Item anchors.leftMargin: UM.Theme.getSize("default_margin").width; anchors.top: base.top; anchors.topMargin: base.activeY - z: buttons.z -1 + z: buttons.z - 1 target: Qt.point(parent.right, base.activeY + Math.round(UM.Theme.getSize("button").height/2)) arrowSize: UM.Theme.getSize("default_arrow").width diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 503a3eddca..52ae3cd243 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -171,6 +171,81 @@ QtObject } } + property Component toolbar_button: Component + { + ButtonStyle + { + background: Item + { + implicitWidth: Theme.getSize("button").width; + implicitHeight: Theme.getSize("button").height; + + UM.PointingRectangle + { + id: button_tooltip + + anchors.left: parent.right + anchors.leftMargin: Theme.getSize("button_tooltip_arrow").width * 2 + anchors.verticalCenter: parent.verticalCenter + + target: Qt.point(parent.x, y + Math.round(height/2)) + arrowSize: Theme.getSize("button_tooltip_arrow").width + color: Theme.getColor("button_tooltip") + opacity: control.hovered ? 1.0 : 0.0; + visible: control.text != "" + + width: control.hovered ? button_tip.width + Theme.getSize("button_tooltip").width : 0 + height: Theme.getSize("button_tooltip").height + + Behavior on width { NumberAnimation { duration: 100; } } + Behavior on opacity { NumberAnimation { duration: 100; } } + + Label + { + id: button_tip + + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter; + + text: control.text; + font: Theme.getFont("button_tooltip"); + color: Theme.getColor("tooltip_text"); + } + } + } + + label: Item + { + UM.RecolorImage + { + anchors.centerIn: parent; + opacity: !control.enabled ? 0.2 : 1.0 + source: control.iconSource; + width: Theme.getSize("button_icon").width; + height: Theme.getSize("button_icon").height; + color: + { + if(control.checkable && control.checked && control.hovered) + { + return Theme.getColor("toolbar_button_text_active_hover"); + } + else if(control.pressed || (control.checkable && control.checked)) + { + return Theme.getColor("toolbar_button_text_active"); + } + else if(control.hovered) + { + return Theme.getColor("toolbar_button_text_hover"); + } + return Theme.getColor("toolbar_button_text"); + } + + sourceSize: Theme.getSize("button_icon") + } + } + } + } + property Component tool_button: Component { ButtonStyle diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 48cf5d456d..a33ff87042 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -105,6 +105,8 @@ "action_panel_secondary": [27, 95, 202, 255], + "toolbar_background": [255, 255, 255, 255], + "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], "text_link": [50, 130, 255, 255], @@ -120,6 +122,11 @@ "error": [255, 140, 0, 255], "warning": [255, 190, 35, 255], + "toolbar_button_text": [10, 8, 80, 255], + "toolbar_button_text_hover": [50, 130, 255, 255], + "toolbar_button_text_active": [50, 130, 255, 255], + "toolbar_button_text_active_hover": [50, 130, 255, 255], + "button": [31, 36, 39, 255], "button_hover": [68, 72, 75, 255], "button_active": [68, 72, 75, 255], @@ -128,8 +135,6 @@ "button_text_hover": [255, 255, 255, 255], "button_text_active": [255, 255, 255, 255], "button_text_active_hover": [255, 255, 255, 255], - "button_disabled": [31, 36, 39, 255], - "button_disabled_text": [255, 255, 255, 101], "small_button": [0, 0, 0, 0], "small_button_hover": [10, 8, 80, 255], From 3d1a9a6f5b9a24080d4445a9e570265997c36fc2 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 12 Nov 2018 09:28:48 +0100 Subject: [PATCH 0223/1039] Increase lines shown from 3 to 6 --- plugins/Toolbox/resources/qml/ToolboxDetailTile.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml index d544757d58..9061a8e06b 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml @@ -37,7 +37,7 @@ Item anchors.top: packageName.bottom width: parent.width text: model.description - maximumLineCount: 3 + maximumLineCount: 6 elide: Text.ElideRight wrapMode: Text.WordWrap color: UM.Theme.getColor("text") From f534885e341bd3fd1098d59e55c7231ff29c5b76 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 12 Nov 2018 09:35:32 +0100 Subject: [PATCH 0224/1039] Modify the color behavior of the toolbar buttons. --- resources/themes/cura-light/styles.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 52ae3cd243..6f099bf1c5 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -225,11 +225,11 @@ QtObject height: Theme.getSize("button_icon").height; color: { - if(control.checkable && control.checked && control.hovered) + if (control.checked && control.hovered) { return Theme.getColor("toolbar_button_text_active_hover"); } - else if(control.pressed || (control.checkable && control.checked)) + else if (control.checked) { return Theme.getColor("toolbar_button_text_active"); } From e64158402137953789861adfbe77f2345b5bb983 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 09:45:55 +0100 Subject: [PATCH 0225/1039] Made strings in ConfigurationSelector translatable. CURA-5785 --- .../ConfigurationMenu/QuickConfigurationSelector.qml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index e093c96ae5..3c354384c7 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -15,11 +15,18 @@ import Cura 1.0 as Cura Cura.ExpandableComponent { id: base + Cura.ExtrudersModel { id: extrudersModel } + UM.I18nCatalog + { + id: catalog + name: "cura" + } + headerItem: Item { // Horizontal list that shows the extruders @@ -132,7 +139,7 @@ Cura.ExpandableComponent Label { - text: "Enabled" + text: catalog.i18nc("@label", "Enabled") verticalAlignment: Text.AlignVCenter font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") @@ -154,7 +161,7 @@ Cura.ExpandableComponent height: UM.Theme.getSize("print_setup_item").height Label { - text: "Material" + text: catalog.i18nc("@label", "Material") verticalAlignment: Text.AlignVCenter font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") From 9c555bf67f1964fcc0055c7826f1097199548dc8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 11:02:43 +0100 Subject: [PATCH 0226/1039] Add typing and always add error message if loading failed There were some places where it would return None. Then in the QML it would give a QML error that the null object has no dictionary items. Contributes to issue CURA-5929. --- cura/Settings/ContainerManager.py | 8 ++++---- cura/Settings/CuraContainerRegistry.py | 15 +++++++-------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 3cfca1a944..3c1e09f086 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -419,13 +419,13 @@ class ContainerManager(QObject): self._container_name_filters[name_filter] = entry ## Import single profile, file_url does not have to end with curaprofile - @pyqtSlot(QUrl, result="QVariantMap") - def importProfile(self, file_url: QUrl): + @pyqtSlot(QUrl, result = "QVariantMap") + def importProfile(self, file_url: QUrl) -> Dict[str, str]: if not file_url.isValid(): - return + return {"status": "error", "message": catalog.i18nc("@info:status", "Invalid file URL:") + " " + file_url} path = file_url.toLocalFile() if not path: - return + return {"status": "error", "message": catalog.i18nc("@info:status", "Invalid file URL:") + " " + file_url} return self._container_registry.importProfile(path) @pyqtSlot(QObject, QUrl, str) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 11640adc0f..63277ebce5 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -5,8 +5,7 @@ import os import re import configparser -from typing import cast, Optional - +from typing import cast, Dict, Optional from PyQt5.QtWidgets import QMessageBox from UM.Decorators import override @@ -161,20 +160,20 @@ class CuraContainerRegistry(ContainerRegistry): ## Imports a profile from a file # - # \param file_name \type{str} the full path and filename of the profile to import - # \return \type{Dict} dict with a 'status' key containing the string 'ok' or 'error', and a 'message' key - # containing a message for the user - def importProfile(self, file_name): + # \param file_name The full path and filename of the profile to import. + # \return Dict with a 'status' key containing the string 'ok' or 'error', + # and a 'message' key containing a message for the user. + def importProfile(self, file_name: str) -> Dict[str, str]: Logger.log("d", "Attempting to import profile %s", file_name) if not file_name: - return { "status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags or !", "Failed to import profile from {0}: {1}", file_name, "Invalid path")} + return { "status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags !", "Failed to import profile from {0}: {1}", file_name, "Invalid path")} plugin_registry = PluginRegistry.getInstance() extension = file_name.split(".")[-1] global_stack = Application.getInstance().getGlobalContainerStack() if not global_stack: - return + return {"status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags !", "Can't import profile from {0} before a printer is added.", file_name)} machine_extruders = [] for position in sorted(global_stack.extruders): From b60977e435676171c3bb678c98f74c449a474cd3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 11:14:39 +0100 Subject: [PATCH 0227/1039] Convert PrintSetupSelector to an ExpandableComponent CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 1 + resources/qml/PrintSetupSelector.qml | 281 ++++++++++++--------------- 2 files changed, 125 insertions(+), 157 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index bcc8ec4c0a..ff8cdc2a47 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -66,6 +66,7 @@ Item Cura.PrintSetupSelector { width: UM.Theme.getSize("print_setup_widget").width + height: prepareMenu.height onShowTooltip: prepareMenu.showTooltip(item, location, text) onHideTooltip: prepareMenu.hideTooltip() } diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 8232e76a17..7a415b1e2e 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -10,22 +10,14 @@ import Cura 1.0 as Cura import "Menus" import "Menus/ConfigurationMenu" -Rectangle +Cura.ExpandableComponent { id: base height: childrenRect.height - property int currentModeIndex: -1 property bool hideSettings: PrintInformation.preSliced - property variant printDuration: PrintInformation.currentPrintTime - property variant printMaterialLengths: PrintInformation.materialLengths - property variant printMaterialWeights: PrintInformation.materialWeights - property variant printMaterialCosts: PrintInformation.materialCosts - property variant printMaterialNames: PrintInformation.materialNames - - color: UM.Theme.getColor("main_background") UM.I18nCatalog { id: catalog; name: "cura"} // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. @@ -46,40 +38,12 @@ Rectangle } } - function strPadLeft(string, pad, length) - { - return (new Array(length + 1).join(pad) + string).slice(-length); - } - - function getPrettyTime(time) - { - var hours = Math.floor(time / 3600) - time -= hours * 3600 - var minutes = Math.floor(time / 60); - time -= minutes * 60 - var seconds = Math.floor(time); - - var finalTime = strPadLeft(hours, "0", 2) + ":" + strPadLeft(minutes, "0", 2) + ":" + strPadLeft(seconds, "0", 2); - return finalTime; - } - - MouseArea - { - anchors.fill: parent - acceptedButtons: Qt.AllButtons - - onWheel: - { - wheel.accepted = true; - } - } - onCurrentModeIndexChanged: { UM.Preferences.setValue("cura/active_mode", currentModeIndex); } - Label + headerItem: Label { id: settingsModeLabel text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox", "Print Setup disabled\nG-code files cannot be modified") @@ -98,146 +62,149 @@ Rectangle color: UM.Theme.getColor("text") } - - ListView + popupItem: Item { - // Settings mode selection toggle - id: settingsModeSelection - model: modesListModel - width: Math.round(parent.width * 0.55) - height: UM.Theme.getSize("print_setup_mode_toggle").height - visible: !hideSettings - - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - anchors.top: settingsModeLabel.top - - ButtonGroup + height: settingsModeSelection.height + sidebarContents.height + width: UM.Theme.getSize("print_setup_widget").width + ListView { - id: modeMenuGroup + // Settings mode selection toggle + id: settingsModeSelection + model: modesListModel + width: Math.round(parent.width * 0.55) + height: UM.Theme.getSize("print_setup_mode_toggle").height + visible: !hideSettings + + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("thick_margin").width + + ButtonGroup + { + id: modeMenuGroup + } + + delegate: Button + { + id: control + + height: settingsModeSelection.height + width: Math.round(parent.width / 2) + + anchors.left: parent.left + anchors.leftMargin: model.index * Math.round(settingsModeSelection.width / 2) + anchors.verticalCenter: parent.verticalCenter + + ButtonGroup.group: modeMenuGroup + + checkable: true + checked: base.currentModeIndex == index + onClicked: base.currentModeIndex = index + + onHoveredChanged: + { + if (hovered) + { + tooltipDelayTimer.item = settingsModeSelection + tooltipDelayTimer.text = model.tooltipText + tooltipDelayTimer.start() + } + else + { + tooltipDelayTimer.stop() + base.hideTooltip() + } + } + + background: Rectangle + { + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") + + // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + } + + contentItem: Label + { + text: model.text + font: UM.Theme.getFont("default") + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + renderType: Text.NativeRendering + elide: Text.ElideRight + color: + { + if(control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } + } + } } - delegate: Button + Item { - id: control - - height: settingsModeSelection.height - width: Math.round(parent.width / 2) - + id: sidebarContents + anchors.top: settingsModeSelection.bottom + anchors.topMargin: UM.Theme.getSize("thick_margin").height anchors.left: parent.left - anchors.leftMargin: model.index * Math.round(settingsModeSelection.width / 2) - anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + height: UM.Theme.getSize("print_setup_widget").height - ButtonGroup.group: modeMenuGroup + visible: !hideSettings - checkable: true - checked: base.currentModeIndex == index - onClicked: base.currentModeIndex = index - - onHoveredChanged: + // We load both of them at once (instead of using a loader) because the advanced sidebar can take + // quite some time to load. So in this case we sacrifice memory for speed. + SidebarAdvanced { - if (hovered) - { - tooltipDelayTimer.item = settingsModeSelection - tooltipDelayTimer.text = model.tooltipText - tooltipDelayTimer.start() - } - else - { - tooltipDelayTimer.stop() - base.hideTooltip() - } + anchors.fill: parent + visible: currentModeIndex == 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() } - background: Rectangle + SidebarSimple { - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") - - // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - } - - contentItem: Label - { - text: model.text - font: UM.Theme.getFont("default") - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - renderType: Text.NativeRendering - elide: Text.ElideRight - color: - { - if(control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text"); - } - return UM.Theme.getColor("action_button_text"); - } + anchors.fill: parent + visible: currentModeIndex != 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() } } - } - Item - { - id: sidebarContents - anchors.top: settingsModeSelection.bottom - anchors.topMargin: UM.Theme.getSize("thick_margin").height - anchors.left: parent.left - anchors.right: parent.right - height: UM.Theme.getSize("print_setup_widget").height - - visible: !hideSettings - - // We load both of them at once (instead of using a loader) because the advanced sidebar can take - // quite some time to load. So in this case we sacrifice memory for speed. - SidebarAdvanced + // Setting mode: Recommended or Custom + ListModel { - anchors.fill: parent - visible: currentModeIndex == 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() + id: modesListModel } - SidebarSimple + Component.onCompleted: { - anchors.fill: parent - visible: currentModeIndex != 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - } + modesListModel.append({ + text: catalog.i18nc("@title:tab", "Recommended"), + tooltipText: "%1

    %2".arg(catalog.i18nc("@tooltip:title", "Recommended Print Setup")).arg(catalog.i18nc("@tooltip", "Print with the recommended settings for the selected printer, material and quality.")) + }) + modesListModel.append({ + text: catalog.i18nc("@title:tab", "Custom"), + tooltipText: "%1

    %2".arg(catalog.i18nc("@tooltip:title", "Custom Print Setup")).arg(catalog.i18nc("@tooltip", "Print with finegrained control over every last bit of the slicing process.")) + }) - // Setting mode: Recommended or Custom - ListModel - { - id: modesListModel - } + var index = Math.round(UM.Preferences.getValue("cura/active_mode")) - Component.onCompleted: - { - modesListModel.append({ - text: catalog.i18nc("@title:tab", "Recommended"), - tooltipText: "%1

    %2".arg(catalog.i18nc("@tooltip:title", "Recommended Print Setup")).arg(catalog.i18nc("@tooltip", "Print with the recommended settings for the selected printer, material and quality.")) - }) - modesListModel.append({ - text: catalog.i18nc("@title:tab", "Custom"), - tooltipText: "%1

    %2".arg(catalog.i18nc("@tooltip:title", "Custom Print Setup")).arg(catalog.i18nc("@tooltip", "Print with finegrained control over every last bit of the slicing process.")) - }) - - var index = Math.round(UM.Preferences.getValue("cura/active_mode")) - - if(index != null && !isNaN(index)) - { - currentModeIndex = index; - } - else - { - currentModeIndex = 0; + if(index != null && !isNaN(index)) + { + currentModeIndex = index; + } + else + { + currentModeIndex = 0; + } } } } From 9d94b0d63eaf1db2b7e08a7ce7f4ae848df98f9e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 11:16:33 +0100 Subject: [PATCH 0228/1039] Rename input vs. output parsers Technically you could re-use the variable name but that is confusing. Contributes to issue CURA-5929. --- .../LegacyProfileReader.py | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/LegacyProfileReader/LegacyProfileReader.py b/plugins/LegacyProfileReader/LegacyProfileReader.py index cd577218d5..b5b2379b22 100644 --- a/plugins/LegacyProfileReader/LegacyProfileReader.py +++ b/plugins/LegacyProfileReader/LegacyProfileReader.py @@ -82,9 +82,9 @@ class LegacyProfileReader(ProfileReader): profile_id = container_registry.uniqueName("Imported Legacy Profile") profile = InstanceContainer(profile_id) # Create an empty profile. - parser = configparser.ConfigParser(interpolation = None) + input_parser = configparser.ConfigParser(interpolation = None) try: - parser.read([file_name]) # Parse the INI file. + input_parser.read([file_name]) # Parse the INI file. except Exception as e: Logger.log("e", "Unable to open legacy profile %s: %s", file_name, str(e)) return None @@ -92,7 +92,7 @@ class LegacyProfileReader(ProfileReader): # Legacy Cura saved the profile under the section "profile_N" where N is the ID of a machine, except when you export in which case it saves it in the section "profile". # Since importing multiple machine profiles is out of scope, just import the first section we find. section = "" - for found_section in parser.sections(): + for found_section in input_parser.sections(): if found_section.startswith("profile"): section = found_section break @@ -110,7 +110,7 @@ class LegacyProfileReader(ProfileReader): return None defaults = self.prepareDefaults(dict_of_doom) - legacy_settings = self.prepareLocals(parser, section, defaults) #Gets the settings from the legacy profile. + legacy_settings = self.prepareLocals(input_parser, section, defaults) #Gets the settings from the legacy profile. #Check the target version in the Dictionary of Doom with this application version. if "target_version" not in dict_of_doom: @@ -152,15 +152,15 @@ class LegacyProfileReader(ProfileReader): profile.setDirty(True) #Serialise and deserialise in order to perform the version upgrade. - parser = configparser.ConfigParser(interpolation = None) + output_parser = configparser.ConfigParser(interpolation = None) data = profile.serialize() - parser.read_string(data) - parser["general"]["version"] = "1" - if parser.has_section("values"): - parser["settings"] = parser["values"] - del parser["values"] + output_parser.read_string(data) + output_parser["general"]["version"] = "1" + if output_parser.has_section("values"): + output_parser["settings"] = output_parser["values"] + del output_parser["values"] stream = io.StringIO() - parser.write(stream) + output_parser.write(stream) data = stream.getvalue() profile.deserialize(data) From 88b57518d9770ea1406cd0a97fc975132588483c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 11:24:11 +0100 Subject: [PATCH 0229/1039] Fix codestyle CURA-5785 --- resources/qml/SidebarSimple.qml | 187 ++++++++++++++++---------------- 1 file changed, 94 insertions(+), 93 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 59980d1f55..affd1eb3a2 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -13,16 +13,18 @@ Item { id: base - signal showTooltip(Item item, point location, string text); - signal hideTooltip(); + signal showTooltip(Item item, point location, string text) + signal hideTooltip() + + property Action configureSettings - property Action configureSettings; - property variant minimumPrintTime: PrintInformation.minimumPrintTime; - property variant maximumPrintTime: PrintInformation.maximumPrintTime; property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 - Component.onCompleted: PrintInformation.enabled = true - Component.onDestruction: PrintInformation.enabled = false - UM.I18nCatalog { id: catalog; name: "cura" } + + UM.I18nCatalog + { + id: catalog + name: "cura" + } ScrollView { @@ -313,7 +315,7 @@ Item } } - Rectangle + Item { id: rightArea width: @@ -324,7 +326,6 @@ Item return qualityModel.qualitySliderMarginRight - 10 } height: parent.height - color: "transparent" x: { if (qualityModel.availableTotalTicks == 0) @@ -450,10 +451,7 @@ Item var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) } - onExited: - { - base.hideTooltip(); - } + onExited: base.hideTooltip() } } @@ -575,7 +573,8 @@ Item } // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider - Binding { + Binding + { target: infillSlider property: "value" value: parseInt(infillDensity.properties.value) @@ -604,10 +603,12 @@ Item // set initial value from stack value: parseInt(infillDensity.properties.value) - onValueChanged: { + onValueChanged: + { // Don't round the value if it's already the same - if (parseInt(infillDensity.properties.value) == infillSlider.value) { + if (parseInt(infillDensity.properties.value) == infillSlider.value) + { return } @@ -631,7 +632,8 @@ Item style: SliderStyle { - groove: Rectangle { + groove: Rectangle + { id: groove implicitWidth: 200 * screenScaleFactor implicitHeight: 2 * screenScaleFactor @@ -639,8 +641,10 @@ Item radius: 1 } - handle: Item { - Rectangle { + handle: Item + { + Rectangle + { id: handleButton anchors.centerIn: parent color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") @@ -650,24 +654,27 @@ Item } } - tickmarks: Repeater { + tickmarks: Repeater + { id: repeater model: control.maximumValue / control.stepSize + 1 // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) - function shouldShowTick (index) { - if (index % 10 == 0) { + function shouldShowTick (index) + { + if (index % 10 == 0) + { return true } return false } - Rectangle { + Rectangle + { anchors.verticalCenter: parent.verticalCenter color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") width: 1 * screenScaleFactor height: 6 * screenScaleFactor - y: 0 x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) visible: shouldShowTick(index) } @@ -693,8 +700,10 @@ Item model: infillModel anchors.fill: parent - function activeIndex () { - for (var i = 0; i < infillModel.count; i++) { + function activeIndex () + { + for (var i = 0; i < infillModel.count; i++) + { var density = Math.round(infillDensity.properties.value) var steps = Math.round(infillSteps.properties.value) var infillModelItem = infillModel.get(i) @@ -703,8 +712,8 @@ Item && density >= infillModelItem.percentageMin && density <= infillModelItem.percentageMax && steps >= infillModelItem.stepsMin - && steps <= infillModelItem.stepsMax - ){ + && steps <= infillModelItem.stepsMax) + { return i } } @@ -719,7 +728,8 @@ Item border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("quality_slider_unavailable") - UM.RecolorImage { + UM.RecolorImage + { anchors.fill: parent anchors.margins: 2 * screenScaleFactor sourceSize.width: width @@ -732,7 +742,8 @@ Item } // Gradual Support Infill Checkbox - CheckBox { + CheckBox + { id: enableGradualInfillCheckBox property alias _hovered: enableGradualInfillMouseArea.containsMouse @@ -745,7 +756,8 @@ Item visible: infillSteps.properties.enabled == "True" checked: parseInt(infillSteps.properties.value) > 0 - MouseArea { + MouseArea + { id: enableGradualInfillMouseArea anchors.fill: parent @@ -754,35 +766,37 @@ Item property var previousInfillDensity: parseInt(infillDensity.properties.value) - onClicked: { + onClicked: + { // Set to 90% only when enabling gradual infill var newInfillDensity; - if (parseInt(infillSteps.properties.value) == 0) { + if (parseInt(infillSteps.properties.value) == 0) + { previousInfillDensity = parseInt(infillDensity.properties.value) - newInfillDensity = 90; + newInfillDensity = 90 } else { - newInfillDensity = previousInfillDensity; + newInfillDensity = previousInfillDensity } Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) - var infill_steps_value = 0; + var infill_steps_value = 0 if (parseInt(infillSteps.properties.value) == 0) - infill_steps_value = 5; + { + infill_steps_value = 5 + } Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) } - onEntered: { - base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), + onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) - } - onExited: { - base.hideTooltip() - } + onExited: base.hideTooltip() + } - Label { + Label + { id: gradualInfillLabel height: parent.height anchors.left: enableGradualInfillCheckBox.right @@ -855,9 +869,9 @@ Item anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter - text: catalog.i18nc("@label", "Generate Support"); - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); + text: catalog.i18nc("@label", "Generate Support") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") elide: Text.ElideRight } @@ -869,32 +883,24 @@ Item anchors.top: enableSupportLabel.top anchors.left: infillCellRight.left - style: UM.Theme.styles.checkbox; + style: UM.Theme.styles.checkbox enabled: base.settingsEnabled visible: supportEnabled.properties.enabled == "True" - checked: supportEnabled.properties.value == "True"; + checked: supportEnabled.properties.value == "True" MouseArea { id: enableSupportMouseArea anchors.fill: parent hoverEnabled: true - enabled: true - onClicked: - { - // The value is a string "True" or "False" - supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True"); - } - onEntered: - { - base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), - catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")); - } - onExited: - { - base.hideTooltip(); - } + onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") + + onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), + catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) + + onExited: base.hideTooltip() + } } @@ -916,7 +922,7 @@ Item textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started anchors.top: enableSupportCheckBox.top - //anchors.topMargin: ((supportEnabled.properties.value === "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("thick_margin").height : 0 + anchors.left: enableSupportCheckBox.right anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) @@ -933,24 +939,21 @@ Item { if (supportExtruderNr.properties == null) { - return Cura.MachineManager.defaultExtruderPosition; + return Cura.MachineManager.defaultExtruderPosition } else { - var extruder = parseInt(supportExtruderNr.properties.value); + var extruder = parseInt(supportExtruderNr.properties.value) if ( extruder === -1) { - return Cura.MachineManager.defaultExtruderPosition; + return Cura.MachineManager.defaultExtruderPosition } return extruder; } } - onActivated: - { - // Send the extruder nr as a string. - supportExtruderNr.setPropertyValue("value", String(index)); - } + onActivated: supportExtruderNr.setPropertyValue("value", String(index)) + MouseArea { id: supportExtruderMouseArea @@ -963,17 +966,16 @@ Item base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); } - onExited: - { - base.hideTooltip(); - } + onExited: base.hideTooltip() + } function updateCurrentColor() { - var current_extruder = extruderModel.get(currentIndex); - if (current_extruder !== undefined) { - supportExtruderCombobox.color_override = current_extruder.color; + var current_extruder = extruderModel.get(currentIndex) + if (current_extruder !== undefined) + { + supportExtruderCombobox.color_override = current_extruder.color } } @@ -989,7 +991,8 @@ Item color: UM.Theme.getColor("text") elide: Text.ElideRight - anchors { + anchors + { left: parent.left leftMargin: UM.Theme.getSize("thick_margin").width right: infillCellLeft.right @@ -1008,7 +1011,7 @@ Item anchors.left: infillCellRight.left //: Setting enable printing build-plate adhesion helper checkbox - style: UM.Theme.styles.checkbox; + style: UM.Theme.styles.checkbox enabled: base.settingsEnabled visible: platformAdhesionType.properties.enabled == "True" @@ -1022,29 +1025,27 @@ Item enabled: base.settingsEnabled onClicked: { - var adhesionType = "skirt"; + var adhesionType = "skirt" if(!parent.checked) { // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft - platformAdhesionType.removeFromContainer(0); - adhesionType = platformAdhesionType.properties.value; + platformAdhesionType.removeFromContainer(0) + adhesionType = platformAdhesionType.properties.value if(adhesionType == "skirt" || adhesionType == "none") { // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim - adhesionType = "brim"; + adhesionType = "brim" } } - platformAdhesionType.setPropertyValue("value", adhesionType); + platformAdhesionType.setPropertyValue("value", adhesionType) } onEntered: { base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); } - onExited: - { - base.hideTooltip(); - } + onExited: base.hideTooltip() + } } @@ -1163,6 +1164,6 @@ Item color: extruders.getItem(extruderNumber).color }) } - supportExtruderCombobox.updateCurrentColor(); + supportExtruderCombobox.updateCurrentColor() } } From 987ff1737ff11223ec986cf74d79a0d529f2c5dd Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 11:27:54 +0100 Subject: [PATCH 0230/1039] Remove unused background from PrintSetupSelector CURA-5785 --- resources/qml/SidebarSimple.qml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index affd1eb3a2..5e723a3d70 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -33,11 +33,10 @@ Item style: UM.Theme.styles.scrollview flickableItem.flickableDirection: Flickable.VerticalFlick - Rectangle + Item { width: childrenRect.width height: childrenRect.height - color: UM.Theme.getColor("main_background") // // Quality profile From 6ad682b00db9e614ff40eb530133247744e02658 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 12:02:49 +0100 Subject: [PATCH 0231/1039] Don't serialise legacy profile via Profile instance That profile instance was being explicitly set to version 1 (but then serialised as version 4) and then deserialised with upgrade, so the upgrade was thinking it was upgrading from version 1 to 4, but it was actually upgrading a file which was already at version 4. We shouldn't use the Profile() instance at all but just perform the upgrade on simple string data generated by the configparser. This also updates the format to the newest version (since that was easiest for me to reimplement) but we don't need to ever update this again because it gets passed through the version upgrade system, which upgrades it from version 4000005 to the latest version in the future. Contributes to issue CURA-5929. --- .../LegacyProfileReader.py | 50 ++++++++----------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/plugins/LegacyProfileReader/LegacyProfileReader.py b/plugins/LegacyProfileReader/LegacyProfileReader.py index b5b2379b22..b915242d55 100644 --- a/plugins/LegacyProfileReader/LegacyProfileReader.py +++ b/plugins/LegacyProfileReader/LegacyProfileReader.py @@ -80,7 +80,6 @@ class LegacyProfileReader(ProfileReader): Logger.log("i", "Importing legacy profile from file " + file_name + ".") container_registry = ContainerRegistry.getInstance() profile_id = container_registry.uniqueName("Imported Legacy Profile") - profile = InstanceContainer(profile_id) # Create an empty profile. input_parser = configparser.ConfigParser(interpolation = None) try: @@ -112,13 +111,11 @@ class LegacyProfileReader(ProfileReader): defaults = self.prepareDefaults(dict_of_doom) legacy_settings = self.prepareLocals(input_parser, section, defaults) #Gets the settings from the legacy profile. - #Check the target version in the Dictionary of Doom with this application version. - if "target_version" not in dict_of_doom: - Logger.log("e", "Dictionary of Doom has no target version. Is it the correct JSON file?") - return None - if InstanceContainer.Version != dict_of_doom["target_version"]: - Logger.log("e", "Dictionary of Doom of legacy profile reader (version %s) is not in sync with the current instance container version (version %s)!", dict_of_doom["target_version"], str(InstanceContainer.Version)) - return None + # Serialised format into version 4.5. Do NOT upgrade this, let the version upgrader handle it. + output_parser = configparser.ConfigParser(interpolation = None) + output_parser.add_section("general") + output_parser.add_section("metadata") + output_parser.add_section("values") if "translation" not in dict_of_doom: Logger.log("e", "Dictionary of Doom has no translation. Is it the correct JSON file?") @@ -127,7 +124,7 @@ class LegacyProfileReader(ProfileReader): quality_definition = current_printer_definition.getMetaDataEntry("quality_definition") if not quality_definition: quality_definition = current_printer_definition.getId() - profile.setDefinition(quality_definition) + output_parser["general"]["definition"] = quality_definition for new_setting in dict_of_doom["translation"]: # Evaluate all new settings that would get a value from the translations. old_setting_expression = dict_of_doom["translation"][new_setting] compiled = compile(old_setting_expression, new_setting, "eval") @@ -140,37 +137,34 @@ class LegacyProfileReader(ProfileReader): definitions = current_printer_definition.findDefinitions(key = new_setting) if definitions: if new_value != value_using_defaults and definitions[0].default_value != new_value: # Not equal to the default in the new Cura OR the default in the legacy Cura. - profile.setProperty(new_setting, "value", new_value) # Store the setting in the profile! + output_parser["values"][new_setting] = new_value # Store the setting in the profile! - if len(profile.getAllKeys()) == 0: + if len(output_parser["values"]) == 0: Logger.log("i", "A legacy profile was imported but everything evaluates to the defaults, creating an empty profile.") - profile.setMetaDataEntry("type", "profile") - # don't know what quality_type it is based on, so use "normal" by default - profile.setMetaDataEntry("quality_type", "normal") - profile.setName(profile_id) - profile.setDirty(True) + output_parser["general"]["version"] = "4" + output_parser["general"]["name"] = profile_id + output_parser["metadata"]["type"] = "quality_changes" + output_parser["metadata"]["quality_type"] = "normal" # Don't know what quality_type it is based on, so use "normal" by default. + output_parser["metadata"]["position"] = "0" # We only support single extrusion. + output_parser["metadata"]["setting_version"] = "5" # What the dictionary of doom is made for. - #Serialise and deserialise in order to perform the version upgrade. - output_parser = configparser.ConfigParser(interpolation = None) - data = profile.serialize() - output_parser.read_string(data) - output_parser["general"]["version"] = "1" - if output_parser.has_section("values"): - output_parser["settings"] = output_parser["values"] - del output_parser["values"] + # Serialise in order to perform the version upgrade. stream = io.StringIO() output_parser.write(stream) data = stream.getvalue() - profile.deserialize(data) - # The definition can get reset to fdmprinter during the deserialization's upgrade. Here we set the definition - # again. - profile.setDefinition(quality_definition) + profile = InstanceContainer(profile_id) + profile.deserialize(data) # Also performs the version upgrade. + profile.setDirty(True) #We need to return one extruder stack and one global stack. global_container_id = container_registry.uniqueName("Global Imported Legacy Profile") + # We duplicate the extruder profile into the global stack. + # This may introduce some settings that are global in the extruder stack and some settings that are per-extruder in the global stack. + # We don't care about that. The engine will ignore them anyway. global_profile = profile.duplicate(new_id = global_container_id, new_name = profile_id) #Needs to have the same name as the extruder profile. + del global_profile.getMetaData()["position"] # Has no position because it's global. global_profile.setDirty(True) profile_definition = "fdmprinter" From 6022ed0f2347001efb013cdbad7ba952fb532ab4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 12:06:00 +0100 Subject: [PATCH 0232/1039] Update target version in DoD There are no changes to these settings, luckily. This target version is now only here for documentation (like source_version was). It is no longer actually used by the code. Contributes to issue CURA-5929. --- plugins/LegacyProfileReader/DictionaryOfDoom.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/LegacyProfileReader/DictionaryOfDoom.json b/plugins/LegacyProfileReader/DictionaryOfDoom.json index 0be413dd2c..f65cc271d1 100644 --- a/plugins/LegacyProfileReader/DictionaryOfDoom.json +++ b/plugins/LegacyProfileReader/DictionaryOfDoom.json @@ -1,6 +1,6 @@ { "source_version": "15.04", - "target_version": 3, + "target_version": "4.5", "translation": { "machine_nozzle_size": "nozzle_size", From 27aff4e5da270f446e03545f69247f7e38abc3d3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 12:48:49 +0100 Subject: [PATCH 0233/1039] Fix typing issues Because this function now has typing, it's raising a load of issues with it. Contributes to issue CURA-5929. --- cura/Machines/QualityManager.py | 4 ++-- cura/Settings/CuraContainerRegistry.py | 24 ++++++++++--------- .../LegacyProfileReader.py | 2 +- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index fc8262de52..a784d17f0b 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -16,7 +16,7 @@ from .QualityGroup import QualityGroup from .QualityNode import QualityNode if TYPE_CHECKING: - from UM.Settings.DefinitionContainer import DefinitionContainer + from UM.Settings.Interfaces import DefinitionContainerInterface from cura.Settings.GlobalStack import GlobalStack from .QualityChangesGroup import QualityChangesGroup from cura.CuraApplication import CuraApplication @@ -538,7 +538,7 @@ class QualityManager(QObject): # Example: for an Ultimaker 3 Extended, it has "quality_definition = ultimaker3". This means Ultimaker 3 Extended # shares the same set of qualities profiles as Ultimaker 3. # -def getMachineDefinitionIDForQualitySearch(machine_definition: "DefinitionContainer", +def getMachineDefinitionIDForQualitySearch(machine_definition: "DefinitionContainerInterface", default_definition_id: str = "fdmprinter") -> str: machine_definition_id = default_definition_id if parseBool(machine_definition.getMetaDataEntry("has_machine_quality", False)): diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 63277ebce5..9f44d075e0 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -10,6 +10,7 @@ from PyQt5.QtWidgets import QMessageBox from UM.Decorators import override from UM.Settings.ContainerFormatError import ContainerFormatError +from UM.Settings.Interfaces import ContainerInterface from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerStack import ContainerStack from UM.Settings.InstanceContainer import InstanceContainer @@ -27,7 +28,7 @@ from . import GlobalStack import cura.CuraApplication from cura.Machines.QualityManager import getMachineDefinitionIDForQualitySearch -from cura.ReaderWriters.ProfileReader import NoProfileException +from cura.ReaderWriters.ProfileReader import NoProfileException, ProfileReader from UM.i18n import i18nCatalog catalog = i18nCatalog("cura") @@ -182,7 +183,7 @@ class CuraContainerRegistry(ContainerRegistry): for plugin_id, meta_data in self._getIOPlugins("profile_reader"): if meta_data["profile_reader"][0]["extension"] != extension: continue - profile_reader = plugin_registry.getPluginObject(plugin_id) + profile_reader = cast(ProfileReader, plugin_registry.getPluginObject(plugin_id)) try: profile_or_list = profile_reader.read(file_name) # Try to open the file with the profile reader. except NoProfileException: @@ -220,13 +221,13 @@ class CuraContainerRegistry(ContainerRegistry): # Make sure we have a profile_definition in the file: if profile_definition is None: break - machine_definition = self.findDefinitionContainers(id = profile_definition) - if not machine_definition: + machine_definitions = self.findDefinitionContainers(id = profile_definition) + if not machine_definitions: Logger.log("e", "Incorrect profile [%s]. Unknown machine type [%s]", file_name, profile_definition) return {"status": "error", "message": catalog.i18nc("@info:status Don't translate the XML tags !", "This profile {0} contains incorrect data, could not import it.", file_name) } - machine_definition = machine_definition[0] + machine_definition = machine_definitions[0] # Get the expected machine definition. # i.e.: We expect gcode for a UM2 Extended to be defined as normal UM2 gcode... @@ -273,11 +274,12 @@ class CuraContainerRegistry(ContainerRegistry): setting_value = global_profile.getProperty(qc_setting_key, "value") setting_definition = global_stack.getSettingDefinition(qc_setting_key) - new_instance = SettingInstance(setting_definition, profile) - new_instance.setProperty("value", setting_value) - new_instance.resetState() # Ensure that the state is not seen as a user state. - profile.addInstance(new_instance) - profile.setDirty(True) + if setting_definition is not None: + new_instance = SettingInstance(setting_definition, profile) + new_instance.setProperty("value", setting_value) + new_instance.resetState() # Ensure that the state is not seen as a user state. + profile.addInstance(new_instance) + profile.setDirty(True) global_profile.removeInstance(qc_setting_key, postpone_emit=True) extruder_profiles.append(profile) @@ -289,7 +291,7 @@ class CuraContainerRegistry(ContainerRegistry): for profile_index, profile in enumerate(profile_or_list): if profile_index == 0: # This is assumed to be the global profile - profile_id = (global_stack.getBottom().getId() + "_" + name_seed).lower().replace(" ", "_") + profile_id = (cast(ContainerInterface, global_stack.getBottom()).getId() + "_" + name_seed).lower().replace(" ", "_") elif profile_index < len(machine_extruders) + 1: # This is assumed to be an extruder profile diff --git a/plugins/LegacyProfileReader/LegacyProfileReader.py b/plugins/LegacyProfileReader/LegacyProfileReader.py index b915242d55..9a74c15082 100644 --- a/plugins/LegacyProfileReader/LegacyProfileReader.py +++ b/plugins/LegacyProfileReader/LegacyProfileReader.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser # For reading the legacy profile INI files. From 6d1b64465a8142c7d9e52b4d3a48ac4e5438cf96 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 12:50:18 +0100 Subject: [PATCH 0234/1039] Fix URL in error message Contributes to issue CURA-5929. --- cura/Settings/ContainerManager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 3c1e09f086..133e04e8fc 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -422,10 +422,10 @@ class ContainerManager(QObject): @pyqtSlot(QUrl, result = "QVariantMap") def importProfile(self, file_url: QUrl) -> Dict[str, str]: if not file_url.isValid(): - return {"status": "error", "message": catalog.i18nc("@info:status", "Invalid file URL:") + " " + file_url} + return {"status": "error", "message": catalog.i18nc("@info:status", "Invalid file URL:") + " " + str(file_url)} path = file_url.toLocalFile() if not path: - return {"status": "error", "message": catalog.i18nc("@info:status", "Invalid file URL:") + " " + file_url} + return {"status": "error", "message": catalog.i18nc("@info:status", "Invalid file URL:") + " " + str(file_url)} return self._container_registry.importProfile(path) @pyqtSlot(QObject, QUrl, str) From bbbb08c793e45b49e0421daf900afdc2bda31a81 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 13:02:28 +0100 Subject: [PATCH 0235/1039] Add test for prepareDefaults Contributes to issue CURA-5929. --- .../tests/TestLegacyProfileReader.py | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py new file mode 100644 index 0000000000..9f6ffe4f24 --- /dev/null +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -0,0 +1,31 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import pytest #To register tests with. + +from LegacyProfileReader import LegacyProfileReader #The module we're testing. + +@pytest.fixture +def legacy_profile_reader(): + return LegacyProfileReader() + +test_prepareDefaultsData = [ + { + "defaults": { + "foo": "bar" + }, + "cheese": "delicious" + }, + { + "cat": "fluffy", + "dog": "floofy" + } +] + +@pytest.mark.parametrize("input", test_prepareDefaultsData) +def test_prepareDefaults(legacy_profile_reader, input): + output = legacy_profile_reader.prepareDefaults(input) + if "defaults" in input: + assert input["defaults"] == output + else: + assert output == {} \ No newline at end of file From ca637338270e12c7dd32e20e21dd005eae2066cb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 13:06:12 +0100 Subject: [PATCH 0236/1039] Updated header of the settingbar CURA-5785 --- resources/qml/IconWithText.qml | 60 ++++++++++++++++++ resources/qml/PrintSetupSelector.qml | 94 ++++++++++++++++++++++++---- 2 files changed, 141 insertions(+), 13 deletions(-) create mode 100644 resources/qml/IconWithText.qml diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml new file mode 100644 index 0000000000..0b0feea821 --- /dev/null +++ b/resources/qml/IconWithText.qml @@ -0,0 +1,60 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.0 +import QtQuick.Layouts 1.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +// Reusable component that holds an (re-colorable) icon on the left with some text on the right +Item +{ + property alias iconColor: icon.color + property alias source: icon.source + property alias text: label.text + + implicitWidth: icon.width + 100 + implicitHeight: icon.height + + Component.onCompleted: print(label.contentWidth) + + UM.RecolorImage + { + id: icon + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height + + sourceSize.width: width + sourceSize.height: height + color: "black" + + anchors + { + left: parent.left + verticalCenter: parent.verticalCenter + } + + } + + Label + { + id: label + height: contentHeight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + anchors + { + left: icon.right + right: parent.right + top: parent.top + bottom: parent.bottom + rightMargin: 0 + margins: UM.Theme.getSize("narrow_margin").width + } + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 7a415b1e2e..2daf8adb4b 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -18,12 +18,19 @@ Cura.ExpandableComponent property int currentModeIndex: -1 property bool hideSettings: PrintInformation.preSliced - UM.I18nCatalog { id: catalog; name: "cura"} + property string enabledText: catalog.i18nc("@label", "On") + property string disabledText: catalog.i18nc("@label", "Off") // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. signal showTooltip(Item item, point location, string text) signal hideTooltip() + UM.I18nCatalog + { + id: catalog + name: "cura" + } + Timer { id: tooltipDelayTimer @@ -32,18 +39,82 @@ Cura.ExpandableComponent property var item property string text - onTriggered: + onTriggered: base.showTooltip(base, {x: 0, y: item.y}, text) + } + + onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) + + headerItem: Row + { + anchors.fill: parent + + IconWithText { - base.showTooltip(base, {x: 0, y: item.y}, text); + source: UM.Theme.getIcon("category_layer_height") + text: Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" + width: parent.width / 4 + height: parent.height + + UM.SettingPropertyProvider + { + id: layerHeight + containerStackId: Cura.MachineManager.activeStackId + key: "layer_height" + watchedProperties: ["value"] + } + } + + IconWithText + { + source: UM.Theme.getIcon("category_infill") + text: parseInt(infillDensity.properties.value) + "%" + width: parent.width / 4 + height: parent.height + + UM.SettingPropertyProvider + { + id: infillDensity + containerStackId: Cura.MachineManager.activeStackId + key: "infill_sparse_density" + watchedProperties: ["value"] + } + } + + IconWithText + { + source: UM.Theme.getIcon("category_support") + text: supportEnabled.properties.value == "True" ? enabledText : disabledText + width: parent.width / 4 + height: parent.height + + UM.SettingPropertyProvider + { + id: supportEnabled + containerStack: Cura.MachineManager.activeMachine + key: "support_enable" + watchedProperties: ["value"] + } + } + + IconWithText + { + source: UM.Theme.getIcon("category_adhesion") + text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText + width: parent.width / 4 + height: parent.height + + UM.SettingPropertyProvider + { + id: platformAdhesionType + containerStack: Cura.MachineManager.activeMachine + key: "adhesion_type" + watchedProperties: [ "value"] + } } } - onCurrentModeIndexChanged: - { - UM.Preferences.setValue("cura/active_mode", currentModeIndex); - } - headerItem: Label + /*Label { id: settingsModeLabel text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox", "Print Setup disabled\nG-code files cannot be modified") @@ -51,16 +122,13 @@ Cura.ExpandableComponent anchors { - left: parent.left - top: parent.top - margins: UM.Theme.getSize("thick_margin").width + fill: parent } - width: Math.round(parent.width * 0.45) height: contentHeight font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") - } + }*/ popupItem: Item { From 54685c983acf1e1d5d24425b67d7d5f5e7a2c3ff Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 13:29:21 +0100 Subject: [PATCH 0237/1039] Make PrintSetupSelector use layout instead of fixed width This makes the components autoscale a bit when needed. CURA-5785 --- resources/qml/IconWithText.qml | 22 ++++++++++++++++------ resources/qml/PrintSetupSelector.qml | 15 ++++----------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index 0b0feea821..d19c7e3899 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -8,18 +8,29 @@ import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.0 as Cura -// Reusable component that holds an (re-colorable) icon on the left with some text on the right +// Reusable component that holds an (re-colorable) icon on the left with some text on the right. +// This component is also designed to be used with layouts. It will use the width of the text + icon as preferred width +// It sets the icon size + half of the content as it's minium width (in which case it will elide the text) Item { property alias iconColor: icon.color property alias source: icon.source property alias text: label.text + property real margin: UM.Theme.getSize("narrow_margin").width + + // These properties can be used in combination with layouts. + readonly property real contentWidth: icon.width + margin + label.contentWidth + readonly property real minContentWidth: icon.width + margin + 0.5 * label.contentWidth + + Layout.minimumWidth: minContentWidth + Layout.preferredWidth: contentWidth + Layout.fillHeight: true + Layout.fillWidth: true + implicitWidth: icon.width + 100 implicitHeight: icon.height - Component.onCompleted: print(label.contentWidth) - UM.RecolorImage { id: icon @@ -35,18 +46,17 @@ Item left: parent.left verticalCenter: parent.verticalCenter } - } Label { id: label - height: contentHeight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") renderType: Text.NativeRendering elide: Text.ElideRight verticalAlignment: Text.AlignVCenter + anchors { left: icon.right @@ -54,7 +64,7 @@ Item top: parent.top bottom: parent.bottom rightMargin: 0 - margins: UM.Theme.getSize("narrow_margin").width + margins: margin } } } \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 2daf8adb4b..4a8ebda2b3 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -18,8 +18,8 @@ Cura.ExpandableComponent property int currentModeIndex: -1 property bool hideSettings: PrintInformation.preSliced - property string enabledText: catalog.i18nc("@label", "On") - property string disabledText: catalog.i18nc("@label", "Off") + property string enabledText: catalog.i18nc("@label:Should be short", "On") + property string disabledText: catalog.i18nc("@label:Should be short", "Off") // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. signal showTooltip(Item item, point location, string text) @@ -44,7 +44,7 @@ Cura.ExpandableComponent onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) - headerItem: Row + headerItem: RowLayout { anchors.fill: parent @@ -52,8 +52,6 @@ Cura.ExpandableComponent { source: UM.Theme.getIcon("category_layer_height") text: Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" - width: parent.width / 4 - height: parent.height UM.SettingPropertyProvider { @@ -68,8 +66,6 @@ Cura.ExpandableComponent { source: UM.Theme.getIcon("category_infill") text: parseInt(infillDensity.properties.value) + "%" - width: parent.width / 4 - height: parent.height UM.SettingPropertyProvider { @@ -84,8 +80,7 @@ Cura.ExpandableComponent { source: UM.Theme.getIcon("category_support") text: supportEnabled.properties.value == "True" ? enabledText : disabledText - width: parent.width / 4 - height: parent.height + UM.SettingPropertyProvider { @@ -100,8 +95,6 @@ Cura.ExpandableComponent { source: UM.Theme.getIcon("category_adhesion") text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText - width: parent.width / 4 - height: parent.height UM.SettingPropertyProvider { From 8d49d5a1b10fe1f6e6f1459fb0e602df1ab66bec Mon Sep 17 00:00:00 2001 From: THeijmans Date: Mon, 12 Nov 2018 13:29:51 +0100 Subject: [PATCH 0238/1039] CPE and CPE+ Comb retractions In this commit I changed all CPE and CPE+ profiles to have a 50mm combing max distance without retraction. This should decrease blobs caused by combing long distances. I also reverted the CPE infill back to triangles, as we now connect this infill type as well. --- .../ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg | 3 ++- .../quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg | 3 ++- .../quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg | 3 ++- .../ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg | 3 ++- .../um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg | 3 ++- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg | 3 ++- .../um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg | 3 ++- .../um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg | 3 ++- .../quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg | 1 + .../um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg | 1 + .../um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg | 1 + 29 files changed, 37 insertions(+), 22 deletions(-) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg index 2068ed51c0..c15311d104 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg @@ -12,6 +12,7 @@ material = generic_cpe variant = AA 0.25 [values] +retraction_combing_max_distance = 50 retraction_extrusion_window = 0.5 speed_infill = =math.ceil(speed_print * 40 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg index 421fcdf095..627302e0ab 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg index 536c6c97b8..cda8d85211 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg @@ -29,7 +29,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg index 77182c21e1..3ce76bf6be 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg @@ -31,7 +31,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg index d779baf315..d402b663c6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -31,7 +31,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg index c51e5652e1..505cd952d2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg @@ -15,6 +15,7 @@ variant = AA 0.4 material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 skin_overlap = 20 speed_print = 60 speed_layer_0 = =math.ceil(speed_print * 20 / 60) @@ -24,5 +25,5 @@ speed_wall_0 = =math.ceil(speed_wall * 35 / 45) wall_thickness = 1 -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 50 / 60) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg index b80d3ccf22..cc5df0abb9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg @@ -16,11 +16,12 @@ cool_min_speed = 7 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 speed_print = 60 speed_layer_0 = =math.ceil(speed_print * 20 / 60) speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 50 / 60) \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg index c90eedaec3..c81dc0f5a7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg @@ -18,10 +18,11 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 speed_print = 50 speed_layer_0 = =math.ceil(speed_print * 20 / 50) speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 40 / 50) \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg index e098b0ffb4..7d29f8fb7c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg @@ -16,10 +16,11 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 speed_print = 55 speed_layer_0 = =math.ceil(speed_print * 20 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 45 / 55) \ No newline at end of file diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg index 46e3483a6a..4a55f5d24c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg @@ -30,7 +30,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg index 5c235b656a..730e058212 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg @@ -30,7 +30,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg index 326a730fe4..e6921e63d8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg @@ -32,7 +32,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg index d40b2db90e..a4eec45e38 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg @@ -32,7 +32,7 @@ material_print_temperature_layer_0 = =material_print_temperature multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_extrusion_window = 1 retraction_hop = 0.2 retraction_hop_enabled = False diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg index c812066e0c..4f085f10a6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg @@ -16,6 +16,7 @@ buildplate = Aluminum material_print_temperature = =default_material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 skin_overlap = 20 speed_print = 60 speed_layer_0 = 20 @@ -25,7 +26,7 @@ speed_wall_0 = =math.ceil(speed_wall * 35 / 45) wall_thickness = 1 -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 50 / 60) prime_tower_purge_volume = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg index ef634316da..2580bf952d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg @@ -17,13 +17,14 @@ cool_min_speed = 7 material_print_temperature = =default_material_print_temperature + 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 speed_print = 60 speed_layer_0 = 20 speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 50 / 60) prime_tower_purge_volume = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg index cda97e6ab3..d6f07c37a5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg @@ -19,12 +19,13 @@ machine_nozzle_heat_up_speed = 1.5 material_print_temperature = =default_material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 speed_print = 50 speed_layer_0 = 20 speed_topbottom = =math.ceil(speed_print * 30 / 50) speed_wall = =math.ceil(speed_print * 30 / 50) -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 40 / 50) prime_tower_purge_volume = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg index 5a75f3b6e3..6032ff3845 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg @@ -17,12 +17,13 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 +retraction_combing_max_distance = 50 speed_print = 55 speed_layer_0 = 20 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) -infill_pattern = zigzag +infill_pattern = triangles speed_infill = =math.ceil(speed_print * 45 / 55) prime_tower_purge_volume = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg index e78006689b..b855eb2c8b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg @@ -22,7 +22,7 @@ material_print_temperature = =default_material_print_temperature - 10 material_print_temperature_layer_0 = =material_print_temperature material_standby_temperature = 100 prime_tower_enable = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg index c6d0962157..d74711e8cf 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -22,7 +22,7 @@ material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature material_standby_temperature = 100 prime_tower_enable = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg index b80f773594..b65a7ff93c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -22,7 +22,7 @@ material_print_temperature = =default_material_print_temperature - 7 material_print_temperature_layer_0 = =material_print_temperature material_standby_temperature = 100 prime_tower_enable = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg index 532aacabf7..7cb69ba3eb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg @@ -17,6 +17,7 @@ line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = 100 prime_tower_enable = True +retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg index 55b9ae8315..6c323fe602 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -17,6 +17,7 @@ line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 20 material_standby_temperature = 100 prime_tower_enable = True +retraction_combing_max_distance = 50 speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg index 01761062a4..a0380ecc0e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -17,6 +17,7 @@ line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 17 material_standby_temperature = 100 prime_tower_enable = True +retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg index 3e74390840..c01f9b1ff1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg @@ -23,7 +23,7 @@ material_print_temperature = =default_material_print_temperature - 10 material_print_temperature_layer_0 = =material_print_temperature material_standby_temperature = 100 prime_tower_enable = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg index 4c1b807430..b9c9ef6611 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg @@ -23,7 +23,7 @@ material_print_temperature = =default_material_print_temperature - 5 material_print_temperature_layer_0 = =material_print_temperature material_standby_temperature = 100 prime_tower_enable = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg index 11aefc90cd..be2cc62b08 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg @@ -23,7 +23,7 @@ material_print_temperature = =default_material_print_temperature - 7 material_print_temperature_layer_0 = =material_print_temperature material_standby_temperature = 100 prime_tower_enable = True -retraction_combing = off +retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg index 80c0585061..0d0ed8f8b2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg @@ -18,6 +18,7 @@ line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = 100 prime_tower_enable = True +retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg index 5dcc454173..a163e0c735 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg @@ -18,6 +18,7 @@ line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 20 material_standby_temperature = 100 prime_tower_enable = True +retraction_combing_max_distance = 50 speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) speed_wall = =math.ceil(speed_print * 40 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg index 8423e109e8..2137cf740b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg @@ -18,6 +18,7 @@ line_width = =machine_nozzle_size * 0.875 material_print_temperature = =default_material_print_temperature + 17 material_standby_temperature = 100 prime_tower_enable = True +retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) From 0bf7bf4cbe5f242c6f520d947064631bb5dd7317 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 13:33:44 +0100 Subject: [PATCH 0239/1039] Fix handling dictionaries without 'defaults' section According to the test, this should return an empty dict then. Contributes to issue CURA-5929. --- plugins/LegacyProfileReader/LegacyProfileReader.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/LegacyProfileReader/LegacyProfileReader.py b/plugins/LegacyProfileReader/LegacyProfileReader.py index 9a74c15082..7974bbe829 100644 --- a/plugins/LegacyProfileReader/LegacyProfileReader.py +++ b/plugins/LegacyProfileReader/LegacyProfileReader.py @@ -6,6 +6,7 @@ import io import json # For reading the Dictionary of Doom. import math # For mathematical operations included in the Dictionary of Doom. import os.path # For concatenating the path to the plugin and the relative path to the Dictionary of Doom. +from typing import Dict from UM.Application import Application # To get the machine manager to create the new profile in. from UM.Logger import Logger # Logging errors. @@ -33,10 +34,11 @@ class LegacyProfileReader(ProfileReader): # \param json The JSON file to load the default setting values from. This # should not be a URL but a pre-loaded JSON handle. # \return A dictionary of the default values of the legacy Cura version. - def prepareDefaults(self, json): + def prepareDefaults(self, json: Dict[str, Dict[str, str]]) -> Dict[str, str]: defaults = {} - for key in json["defaults"]: # We have to copy over all defaults from the JSON handle to a normal dict. - defaults[key] = json["defaults"][key] + if "defaults" in json: + for key in json["defaults"]: # We have to copy over all defaults from the JSON handle to a normal dict. + defaults[key] = json["defaults"][key] return defaults ## Prepares the local variables that can be used in evaluation of computing From 91e8c177fe2c7b999d7724112c4bcb71d9e8912b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 13:35:18 +0100 Subject: [PATCH 0240/1039] Add test for prepareLocal Contributes to issue CURA-5929. --- .../tests/TestLegacyProfileReader.py | 43 +++++++++++++++++-- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py index 9f6ffe4f24..f54939e884 100644 --- a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -1,9 +1,10 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import pytest #To register tests with. +import configparser # An input for some functions we're testing. +import pytest # To register tests with. -from LegacyProfileReader import LegacyProfileReader #The module we're testing. +from LegacyProfileReader import LegacyProfileReader # The module we're testing. @pytest.fixture def legacy_profile_reader(): @@ -11,7 +12,8 @@ def legacy_profile_reader(): test_prepareDefaultsData = [ { - "defaults": { + "defaults": + { "foo": "bar" }, "cheese": "delicious" @@ -28,4 +30,37 @@ def test_prepareDefaults(legacy_profile_reader, input): if "defaults" in input: assert input["defaults"] == output else: - assert output == {} \ No newline at end of file + assert output == {} + +test_prepareLocalsData = [ + ( + { # Parser data. + "profile": + { + "layer_height": "0.2", + "infill_density": "30" + } + }, + "profile", # Config section. + { # Defaults. + "layer_height": "0.1", + "infill_density": "20", + "line_width": "0.4" + } + ) +] + +@pytest.mark.parametrize("parser_data, config_section, defaults", test_prepareLocalsData) +def test_prepareLocals(legacy_profile_reader, parser_data, config_section, defaults): + parser = configparser.ConfigParser() + parser.read_dict(parser_data) + + output = legacy_profile_reader.prepareLocals(parser, config_section, defaults) + + assert set(defaults.keys()) <= set(output.keys()) # All defaults must be in there. + assert set(parser_data[config_section]) <= set(output.keys()) # All overwritten values must be in there. + for key in output: + if key in parser_data[config_section]: + assert output[key] == parser_data[config_section][key] # If overwritten, must be the overwritten value. + else: + assert output[key] == defaults[key] # Otherwise must be equal to the default. \ No newline at end of file From 53c9cdc3fe7d0a6c4efa0bd2223edd15e9be71a1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 13:42:14 +0100 Subject: [PATCH 0241/1039] Add alternative scenarios for prepareLocals Contributes to issue CURA-5929. --- .../tests/TestLegacyProfileReader.py | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py index f54939e884..6d730ed786 100644 --- a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -33,7 +33,7 @@ def test_prepareDefaults(legacy_profile_reader, input): assert output == {} test_prepareLocalsData = [ - ( + ( # Ordinary case. { # Parser data. "profile": { @@ -47,6 +47,56 @@ test_prepareLocalsData = [ "infill_density": "20", "line_width": "0.4" } + ), + ( # Empty data. + { # Parser data. + "profile": + { + } + }, + "profile", # Config section. + { # Defaults. + } + ), + ( # All defaults. + { # Parser data. + "profile": + { + } + }, + "profile", # Config section. + { # Defaults. + "foo": "bar", + "boo": "far" + } + ), + ( # Multiple config sections. + { # Parser data. + "some_other_name": + { + "foo": "bar" + }, + "profile": + { + "foo": "baz" #Not the same as in some_other_name + } + }, + "profile", # Config section. + { # Defaults. + "foo": "bla" + } + ), + ( # Section does not exist. + { # Parser data. + "some_other_name": + { + "foo": "bar" + }, + }, + "profile", # Config section. + { # Defaults. + "foo": "baz" + } ) ] From e18ea4bca4d37d2feabcd47e0bf42cf36fedac68 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 13:47:24 +0100 Subject: [PATCH 0242/1039] Expect a NoSectionError if testing with a section that is missing We want to get that error in order to debug. Contributes to issue CURA-5929. --- .../tests/TestLegacyProfileReader.py | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py index 6d730ed786..f20658ae5d 100644 --- a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -85,18 +85,6 @@ test_prepareLocalsData = [ { # Defaults. "foo": "bla" } - ), - ( # Section does not exist. - { # Parser data. - "some_other_name": - { - "foo": "bar" - }, - }, - "profile", # Config section. - { # Defaults. - "foo": "baz" - } ) ] @@ -113,4 +101,28 @@ def test_prepareLocals(legacy_profile_reader, parser_data, config_section, defau if key in parser_data[config_section]: assert output[key] == parser_data[config_section][key] # If overwritten, must be the overwritten value. else: - assert output[key] == defaults[key] # Otherwise must be equal to the default. \ No newline at end of file + assert output[key] == defaults[key] # Otherwise must be equal to the default. + +test_prepareLocalsNoSectionErrorData = [ + ( # Section does not exist. + { # Parser data. + "some_other_name": + { + "foo": "bar" + }, + }, + "profile", # Config section. + { # Defaults. + "foo": "baz" + } + ) +] + +## Test cases where a key error is expected. +@pytest.mark.parametrize("parser_data, config_section, defaults", test_prepareLocalsNoSectionErrorData) +def test_prepareLocalsNoSectionError(legacy_profile_reader, parser_data, config_section, defaults): + parser = configparser.ConfigParser() + parser.read_dict(parser_data) + + with pytest.raises(configparser.NoSectionError): + legacy_profile_reader.prepareLocals(parser, config_section, defaults) \ No newline at end of file From 7e87a303cbf54d36c9404f2a1060417ae6dcc8e4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 13:49:13 +0100 Subject: [PATCH 0243/1039] Remove config_section parameter Just always take 'profile'. We don't need to test with anything else. Just adjust the data to it. Contributes to issue CURA-5929. --- .../tests/TestLegacyProfileReader.py | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py index f20658ae5d..828c14bbf5 100644 --- a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -41,7 +41,6 @@ test_prepareLocalsData = [ "infill_density": "30" } }, - "profile", # Config section. { # Defaults. "layer_height": "0.1", "infill_density": "20", @@ -54,7 +53,6 @@ test_prepareLocalsData = [ { } }, - "profile", # Config section. { # Defaults. } ), @@ -64,7 +62,6 @@ test_prepareLocalsData = [ { } }, - "profile", # Config section. { # Defaults. "foo": "bar", "boo": "far" @@ -81,25 +78,24 @@ test_prepareLocalsData = [ "foo": "baz" #Not the same as in some_other_name } }, - "profile", # Config section. { # Defaults. "foo": "bla" } ) ] -@pytest.mark.parametrize("parser_data, config_section, defaults", test_prepareLocalsData) -def test_prepareLocals(legacy_profile_reader, parser_data, config_section, defaults): +@pytest.mark.parametrize("parser_data, defaults", test_prepareLocalsData) +def test_prepareLocals(legacy_profile_reader, parser_data, defaults): parser = configparser.ConfigParser() parser.read_dict(parser_data) - output = legacy_profile_reader.prepareLocals(parser, config_section, defaults) + output = legacy_profile_reader.prepareLocals(parser, "profile", defaults) assert set(defaults.keys()) <= set(output.keys()) # All defaults must be in there. - assert set(parser_data[config_section]) <= set(output.keys()) # All overwritten values must be in there. + assert set(parser_data["profile"]) <= set(output.keys()) # All overwritten values must be in there. for key in output: - if key in parser_data[config_section]: - assert output[key] == parser_data[config_section][key] # If overwritten, must be the overwritten value. + if key in parser_data["profile"]: + assert output[key] == parser_data["profile"][key] # If overwritten, must be the overwritten value. else: assert output[key] == defaults[key] # Otherwise must be equal to the default. @@ -111,7 +107,6 @@ test_prepareLocalsNoSectionErrorData = [ "foo": "bar" }, }, - "profile", # Config section. { # Defaults. "foo": "baz" } @@ -119,10 +114,10 @@ test_prepareLocalsNoSectionErrorData = [ ] ## Test cases where a key error is expected. -@pytest.mark.parametrize("parser_data, config_section, defaults", test_prepareLocalsNoSectionErrorData) -def test_prepareLocalsNoSectionError(legacy_profile_reader, parser_data, config_section, defaults): +@pytest.mark.parametrize("parser_data, defaults", test_prepareLocalsNoSectionErrorData) +def test_prepareLocalsNoSectionError(legacy_profile_reader, parser_data, defaults): parser = configparser.ConfigParser() parser.read_dict(parser_data) with pytest.raises(configparser.NoSectionError): - legacy_profile_reader.prepareLocals(parser, config_section, defaults) \ No newline at end of file + legacy_profile_reader.prepareLocals(parser, "profile", defaults) \ No newline at end of file From 4be33031d7553c06ed7bf5adab7d2f9c31008dae Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 14:07:45 +0100 Subject: [PATCH 0244/1039] Added icons to ExpandableComponent This also makes the entire header react to mouse events instead of just the icon/button CURA-5785 --- resources/qml/ExpandableComponent.qml | 31 ++++++++++++++++--- .../QuickConfigurationSelector.qml | 2 ++ resources/qml/PrintSetupSelector.qml | 8 +++-- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 26bdf3b3ce..af579340a5 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -6,7 +6,7 @@ import UM 1.2 as UM // The expandable component has 3 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded // * The popupItem; The content that needs to be shown if the component is expanded. -// * The Button; The actual button that expands the popup. +// * The Icon; An icon that is displayed on the right of the drawer. Item { // The headerItem holds the QML item that is always displayed. @@ -26,6 +26,18 @@ Item // How much padding is needed around the header & button property alias headerPadding: background.padding + // What icon should be displayed on the right. + property alias iconSource: collapseButton.source + + // What is the color of the icon? + property alias iconColor: collapseButton.color + + // The icon size (it's always drawn as a square) + property alias iconSize: collapseButton.width + + // Is the "drawer" open? + readonly property alias expanded: popup.visible + onPopupItemChanged: { // Since we want the size of the popup to be set by the size of the content, @@ -57,17 +69,26 @@ Item } } - Button + UM.RecolorImage { id: collapseButton anchors { right: parent.right - top: parent.top - bottom: parent.bottom + verticalCenter: parent.verticalCenter margins: background.padding } - text: popup.visible ? "close" : "open" + sourceSize.width: width + sourceSize.height: height + visible: source != "" + width: UM.Theme.getSize("section_icon").width + height: width + color: "black" + } + + MouseArea + { + anchors.fill: parent onClicked: popup.visible ? popup.close() : popup.open() } } diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 3c354384c7..75787ea033 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -27,6 +27,8 @@ Cura.ExpandableComponent name: "cura" } + iconSource: expanded ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") + headerItem: Item { // Horizontal list that shows the extruders diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 4a8ebda2b3..1281961ef4 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -14,7 +14,6 @@ Cura.ExpandableComponent { id: base - height: childrenRect.height property int currentModeIndex: -1 property bool hideSettings: PrintInformation.preSliced @@ -25,6 +24,11 @@ Cura.ExpandableComponent signal showTooltip(Item item, point location, string text) signal hideTooltip() + height: childrenRect.height + iconSource: UM.Theme.getIcon("pencil") + + onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) + UM.I18nCatalog { id: catalog @@ -42,8 +46,6 @@ Cura.ExpandableComponent onTriggered: base.showTooltip(base, {x: 0, y: item.y}, text) } - onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) - headerItem: RowLayout { anchors.fill: parent From 783fe9ab73db3c24abe5dbfcfd6e34ce4c09f911 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 15:23:58 +0100 Subject: [PATCH 0245/1039] Updated the look of the extruder buttons CURA-5785 --- resources/qml/ExtruderButton.qml | 60 ++++---------------------------- resources/qml/Toolbar.qml | 7 +++- 2 files changed, 13 insertions(+), 54 deletions(-) diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 7923521658..764e9c94cb 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -2,7 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.0 import UM 1.2 as UM import Cura 1.0 as Cura @@ -11,65 +11,19 @@ Button { id: base - property var extruder; + property var extruder text: catalog.i18ncp("@label %1 is filled in with the name of an extruder", "Print Selected Model with %1", "Print Selected Models with %1", UM.Selection.selectionCount).arg(extruder.name) - style: UM.Theme.styles.toolbar_button - iconSource: UM.Theme.getIcon("extruder_button") - checked: Cura.ExtruderManager.selectedObjectExtruders.indexOf(extruder.id) != -1 enabled: UM.Selection.hasSelection && extruder.stack.isEnabled - Item + background: Item {} + contentItem: ExtruderIcon { - anchors.centerIn: parent - width: UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("default_margin").height - opacity: !base.enabled ? 0.2 : 1.0 - - Label - { - anchors.centerIn: parent - text: index + 1 - color: - { - if (base.checked) - { - return UM.Theme.getColor("toolbar_button_text_active") - } - else if(base.hovered) - { - return UM.Theme.getColor("toolbar_button_text_hover") - } - return UM.Theme.getColor("toolbar_button_text") - } - font: UM.Theme.getFont("default_bold") - } - } - - // Material colour circle - // Only draw the filling colour of the material inside the SVG border. - Rectangle - { - anchors - { - right: parent.right - top: parent.top - rightMargin: UM.Theme.getSize("extruder_button_material_margin").width - topMargin: UM.Theme.getSize("extruder_button_material_margin").height - } - - color: model.color - - width: UM.Theme.getSize("extruder_button_material").width - height: UM.Theme.getSize("extruder_button_material").height - radius: Math.round(width / 2) - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("extruder_button_material_border") - - opacity: !base.enabled ? 0.2 : 1.0 + width: UM.Theme.getSize("button_icon").width + materialColor: model.color + property int index: extruder.index } onClicked: diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 9955ceeba7..2239125fbe 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -116,7 +116,12 @@ Item height: childrenRect.height property var _model: Cura.ExtrudersModel { id: extrudersModel } model: _model.items.length > 1 ? _model : 0 - ExtruderButton { extruder: model } + ExtruderButton + { + extruder: model + height: UM.Theme.getSize("button").width + width: UM.Theme.getSize("button").width + } } } } From fe66d15b9e1b615ac894daddf24e1a1aeecb2408 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 15:47:21 +0100 Subject: [PATCH 0246/1039] Disable Polish language The translation didn't arrive in time for the 3.6 release. Contributes to issue CURA-5870. --- resources/qml/Preferences/GeneralPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index 64c1246929..bba2cf764a 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -171,7 +171,7 @@ UM.PreferencesPage append({ text: "日本語", code: "ja_JP" }) append({ text: "한국어", code: "ko_KR" }) append({ text: "Nederlands", code: "nl_NL" }) - append({ text: "Polski", code: "pl_PL" }) + //Polish is disabled for being incomplete: append({ text: "Polski", code: "pl_PL" }) append({ text: "Português do Brasil", code: "pt_BR" }) append({ text: "Português", code: "pt_PT" }) append({ text: "Русский", code: "ru_RU" }) From 4c1a45f904faf1b7e37bef6e18c476b113a6df58 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 15:53:09 +0100 Subject: [PATCH 0247/1039] Added sizes to the stage menu This isn't themed, but right now it does adhere to the sizes I got from UX CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 73 +++++++++++++++------------- resources/qml/MachineSelector.qml | 2 +- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index ff8cdc2a47..9fd8747e28 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -1,5 +1,5 @@ import QtQuick 2.7 - +import QtQuick.Layouts 1.1 import QtQuick.Controls 1.4 import UM 1.3 as UM @@ -19,9 +19,12 @@ Item name: "cura" } - Row + // Item to ensure that all of the buttons are nicely centered. + Item { anchors.horizontalCenter: parent.horizontalCenter + width: openFileButton.width + UM.Theme.getSize("default_margin").width + itemRow.width + height: parent.height Button { @@ -33,42 +36,46 @@ Item action: Cura.Actions.open } - Item + RowLayout { - id: spacing - width: UM.Theme.getSize("default_margin").width - height: prepareMenu.height - } + id: itemRow - Cura.MachineSelector - { - id: machineSelection - width: UM.Theme.getSize("machine_selector_widget").width - configSelection.width - height: prepareMenu.height - z: openFileButton.z - 1 - } + anchors.left: openFileButton.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width - Cura.QuickConfigurationSelector - { - height: prepareMenu.height - width: UM.Theme.getSize("configuration_selector_widget").width - /*id: configSelection - width: visible ? UM.Theme.getSize("machine_selector_widget").width * 0.2 : 0 - panelWidth: UM.Theme.getSize("machine_selector_widget").width - height: prepareMenu.height*/ - } + width: 0.9 * prepareMenu.width + height: parent.height - /*Cura.CustomConfigurationSelector - { - width: UM.Theme.getSize("configuration_selector_widget").width - }*/ + Cura.MachineSelector + { + id: machineSelection + z: openFileButton.z - 1 - Cura.PrintSetupSelector - { - width: UM.Theme.getSize("print_setup_widget").width - height: prepareMenu.height - onShowTooltip: prepareMenu.showTooltip(item, location, text) - onHideTooltip: prepareMenu.hideTooltip() + Layout.minimumWidth: 240 + Layout.maximumWidth: 240 + Layout.fillWidth: true + Layout.fillHeight: true + } + + Cura.QuickConfigurationSelector + { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelector.width + } + + Cura.PrintSetupSelector + { + id: printSetupSelector + + onShowTooltip: prepareMenu.showTooltip(item, location, text) + onHideTooltip: prepareMenu.hideTooltip() + + Layout.minimumWidth: 460 + Layout.maximumWidth: 460 + Layout.fillWidth: true + Layout.fillHeight: true + } } } } \ No newline at end of file diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index d82211af3a..b4ca9a4899 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -19,7 +19,7 @@ ToolButton text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName tooltip: Cura.MachineManager.activeMachineName - + width: 240 style: ButtonStyle { background: Rectangle From 7bd55f5064ae86ceadc0653b6b9f05df1186f2e1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 12 Nov 2018 16:28:29 +0100 Subject: [PATCH 0248/1039] Add test for read() function This is complex. I don't want to get into the actual translations from the DoD here. Contributes to issue CURA-5929. --- .../tests/TestLegacyProfileReader.py | 69 ++++++++++++++++++- .../LegacyProfileReader/tests/normal_case.ini | 7 ++ 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 plugins/LegacyProfileReader/tests/normal_case.ini diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py index 828c14bbf5..480a61f301 100644 --- a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -2,8 +2,16 @@ # Cura is released under the terms of the LGPLv3 or higher. import configparser # An input for some functions we're testing. +import os.path # To find the integration test .ini files. import pytest # To register tests with. +import unittest.mock # To mock the application, plug-in and container registry out. +import UM.Application # To mock the application out. +import UM.PluginRegistry # To mock the plug-in registry out. +import UM.Settings.ContainerRegistry # To mock the container registry out. +import UM.Settings.InstanceContainer # To intercept the serialised data from the read() function. + +import LegacyProfileReader as LegacyProfileReaderModule # To get the directory of the module. from LegacyProfileReader import LegacyProfileReader # The module we're testing. @pytest.fixture @@ -120,4 +128,63 @@ def test_prepareLocalsNoSectionError(legacy_profile_reader, parser_data, default parser.read_dict(parser_data) with pytest.raises(configparser.NoSectionError): - legacy_profile_reader.prepareLocals(parser, "profile", defaults) \ No newline at end of file + legacy_profile_reader.prepareLocals(parser, "profile", defaults) + +intercepted_data = "" + +@pytest.mark.parametrize("file_name", ["normal_case.ini"]) +def test_read(legacy_profile_reader, file_name): + # Mock out all dependencies. Quite a lot! + global_stack = unittest.mock.MagicMock() + global_stack.getProperty = unittest.mock.MagicMock(return_value = 1) # For machine_extruder_count setting. + def getMetaDataEntry(key, default_value = ""): + if key == "quality_definition": + return "mocked_quality_definition" + if key == "has_machine_quality": + return "True" + global_stack.definition.getMetaDataEntry = getMetaDataEntry + global_stack.definition.getId = unittest.mock.MagicMock(return_value = "mocked_global_definition") + application = unittest.mock.MagicMock() + application.getGlobalContainerStack = unittest.mock.MagicMock(return_value = global_stack) + application_getInstance = unittest.mock.MagicMock(return_value = application) + container_registry = unittest.mock.MagicMock() + container_registry_getInstance = unittest.mock.MagicMock(return_value = container_registry) + container_registry.uniqueName = unittest.mock.MagicMock(return_value = "Imported Legacy Profile") + container_registry.findDefinitionContainers = unittest.mock.MagicMock(return_value = [global_stack.definition]) + UM.Settings.InstanceContainer.setContainerRegistry(container_registry) + plugin_registry = unittest.mock.MagicMock() + plugin_registry_getInstance = unittest.mock.MagicMock(return_value = plugin_registry) + plugin_registry.getPluginPath = unittest.mock.MagicMock(return_value = os.path.dirname(LegacyProfileReaderModule.__file__)) + + # Mock out the resulting InstanceContainer so that we can intercept the data before it's passed through the version upgrader. + def deserialize(self, data): # Intercepts the serialised data that we'd perform the version upgrade from when deserializing. + global intercepted_data + intercepted_data = data + + parser = configparser.ConfigParser() + parser.read_string(data) + self._metadata["position"] = parser["metadata"]["position"] + def duplicate(self, new_id, new_name): + self._metadata["id"] = new_id + self._metadata["name"] = new_name + return self + + with unittest.mock.patch.object(UM.Application.Application, "getInstance", application_getInstance): + with unittest.mock.patch.object(UM.Settings.ContainerRegistry.ContainerRegistry, "getInstance", container_registry_getInstance): + with unittest.mock.patch.object(UM.PluginRegistry.PluginRegistry, "getInstance", plugin_registry_getInstance): + with unittest.mock.patch.object(UM.Settings.InstanceContainer.InstanceContainer, "deserialize", deserialize): + with unittest.mock.patch.object(UM.Settings.InstanceContainer.InstanceContainer, "duplicate", duplicate): + result = legacy_profile_reader.read(os.path.join(os.path.dirname(__file__), file_name)) + + assert len(result) == 1 + + # Let's see what's inside the actual output file that we generated. + parser = configparser.ConfigParser() + parser.read_string(intercepted_data) + assert parser["general"]["definition"] == "mocked_quality_definition" + assert parser["general"]["version"] == "4" # Yes, before we upgraded. + assert parser["general"]["name"] == "Imported Legacy Profile" # Because we overwrote uniqueName. + assert parser["metadata"]["type"] == "quality_changes" + assert parser["metadata"]["quality_type"] == "normal" + assert parser["metadata"]["position"] == "0" + assert parser["metadata"]["setting_version"] == "5" # Yes, before we upgraded. \ No newline at end of file diff --git a/plugins/LegacyProfileReader/tests/normal_case.ini b/plugins/LegacyProfileReader/tests/normal_case.ini new file mode 100644 index 0000000000..213444d2d3 --- /dev/null +++ b/plugins/LegacyProfileReader/tests/normal_case.ini @@ -0,0 +1,7 @@ +[profile] +foo = bar +boo = far +fill_overlap = 3 + +[alterations] +some = values From fe4ed464962d76abd6a8058f1f69987f8bad205d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 12 Nov 2018 16:55:42 +0100 Subject: [PATCH 0249/1039] Show material name instead of just color CURA-5785 --- .../Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 75787ea033..7c70229b5d 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -54,7 +54,7 @@ Cura.ExpandableComponent width: height } - // Label for the human readable material color name + // Label for the brand of the material Label { id: brandNameLabel @@ -71,10 +71,10 @@ Cura.ExpandableComponent } } - // Label that shows the brand of the material + // Label that shows the name of the material Label { - text: model.color_name + text: model.material elide: Text.ElideRight anchors From 2486a5b5da9dec0c07f5e6326f889ab6c05e91dd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Nov 2018 11:48:02 +0100 Subject: [PATCH 0250/1039] Improve generic profiles for fabtotum and zyyx These printers had profiles for zyyx_pro and fabtotum material suites, which were specific to those materials, but caused the generic materials to no longer have any profile. Let's use these machine-specific profiles for the generic materials as well. For the specific materials this changes nothing because the same profiles are still matched. For the generic materials this should improve the quality if the quality profile is tuned in any way to the machine. --- resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_abs_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_pla_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg index f2628e16df..95e8b93b36 100644 --- a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = fast weight = -1 -material = fabtotum_abs +material = generic_abs [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg index d750eb98a3..baedf0ed2b 100644 --- a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = high weight = 1 -material = fabtotum_abs +material = generic_abs [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg index 7db9682c8a..58933486ee 100644 --- a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = 0 -material = fabtotum_abs +material = generic_abs [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg index b6629d1fac..00f0737227 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = fast weight = -1 -material = fabtotum_nylon +material = generic_nylon [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg index f819f2bbd5..bd7f32c9ba 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = high weight = 1 -material = fabtotum_nylon +material = generic_nylon [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg index 8e0ed4f93c..6a450e7ffe 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = 0 -material = fabtotum_nylon +material = generic_nylon [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg index dce262216a..afac0b0884 100644 --- a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = fast weight = -1 -material = fabtotum_pla +material = generic_pla [values] adhesion_type = skirt diff --git a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg index 2dce693235..89dc6d9b33 100644 --- a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = high weight = 1 -material = fabtotum_pla +material = generic_pla [values] adhesion_type = skirt diff --git a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg index 01f730c2e8..e5496a13d4 100644 --- a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = 0 -material = fabtotum_pla +material = generic_pla [values] adhesion_type = skirt diff --git a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg index be8d2e3e3a..7917c92514 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg @@ -6,7 +6,7 @@ name = Fast Quality [metadata] type = quality setting_version = 5 -material = fabtotum_tpu +material = generic_tpu quality_type = fast weight = -1 diff --git a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg index 2dcaa15bd3..1c31967d79 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg @@ -6,7 +6,7 @@ name = High Quality [metadata] type = quality setting_version = 5 -material = fabtotum_tpu +material = generic_tpu quality_type = high weight = 1 diff --git a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg index e680038e26..0a3821f953 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg @@ -6,7 +6,7 @@ name = Normal Quality [metadata] type = quality setting_version = 5 -material = fabtotum_TPU +material = generic_tpu quality_type = normal weight = 0 diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg index c7d7faf575..188bdd25e5 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = fast weight = 1 -material = zyyx_pro_flex +material = generic_tpu [values] layer_height = 0.3 diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg index 1e0cc16df0..6654889c10 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = fine weight = 3 -material = zyyx_pro_flex +material = generic_tpu [values] layer_height = 0.12 diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg index 8f7be7b481..f56355100c 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = 2 -material = zyyx_pro_flex +material = generic_tpu [values] layer_height = 0.2 diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg index 7ac7dc89b5..7ae4be06b0 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = fast weight = 1 -material = zyyx_pro_pla +material = generic_pla [values] layer_height = 0.3 diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg index 98033908f6..64c7d4afc8 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = fine weight = 3 -material = zyyx_pro_pla +material = generic_pla [values] layer_height = 0.1 diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg index b694bd9172..dbdd600ece 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg @@ -8,7 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = 2 -material = zyyx_pro_pla +material = generic_pla [values] layer_height = 0.2 From 87cbc3907c1a4912e30ca60f30d00d5b84fbef51 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Nov 2018 12:05:14 +0100 Subject: [PATCH 0251/1039] Convert to string before storing in configparser Because configparser can only handle strings. Contributes to issue CURA-5929. --- plugins/LegacyProfileReader/LegacyProfileReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/LegacyProfileReader/LegacyProfileReader.py b/plugins/LegacyProfileReader/LegacyProfileReader.py index 7974bbe829..013bab6f11 100644 --- a/plugins/LegacyProfileReader/LegacyProfileReader.py +++ b/plugins/LegacyProfileReader/LegacyProfileReader.py @@ -139,7 +139,7 @@ class LegacyProfileReader(ProfileReader): definitions = current_printer_definition.findDefinitions(key = new_setting) if definitions: if new_value != value_using_defaults and definitions[0].default_value != new_value: # Not equal to the default in the new Cura OR the default in the legacy Cura. - output_parser["values"][new_setting] = new_value # Store the setting in the profile! + output_parser["values"][new_setting] = str(new_value) # Store the setting in the profile! if len(output_parser["values"]) == 0: Logger.log("i", "A legacy profile was imported but everything evaluates to the defaults, creating an empty profile.") From c18b8241f55f425d5c6a91c00bb8d130560bbdbb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 14:00:00 +0100 Subject: [PATCH 0252/1039] Change MachineSelection so that it also uses the ExpandableComponent CURA-5785 --- resources/qml/Cura.qml | 1 - resources/qml/MachineSelector.qml | 176 ++++++++++++++++++------------ 2 files changed, 108 insertions(+), 69 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 819d986ece..cdbf1f3511 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -249,7 +249,6 @@ UM.MainWindow source: UM.Controller.activeStage != null ? UM.Controller.activeStage.mainComponent : "" } - Loader { // The stage menu is, as the name implies, a menu that is defined by the active stage. diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index b4ca9a4899..206229e837 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -2,7 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.1 +import QtQuick.Controls 2.4 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 @@ -10,77 +10,117 @@ import UM 1.2 as UM import Cura 1.0 as Cura import "Menus" -ToolButton + +Cura.ExpandableComponent { - id: base + id: machineSelector + property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" - property bool printerConnected: Cura.MachineManager.printerConnected - property var printerStatus: Cura.MachineManager.printerConnected ? "connected" : "disconnected" - text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName - tooltip: Cura.MachineManager.activeMachineName - width: 240 - style: ButtonStyle + iconSource: expanded ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") + + UM.I18nCatalog { - background: Rectangle - { - color: - { - if (control.pressed) { - return UM.Theme.getColor("machine_selector_active"); - } - else if (control.hovered) { - return UM.Theme.getColor("machine_selector_hover"); - } - else { - return UM.Theme.getColor("machine_selector_bar"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - - UM.RecolorImage - { - id: downArrow - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("text_emphasis") - source: UM.Theme.getIcon("arrow_bottom") - } - - PrinterStatusIcon - { - id: printerStatusIcon - visible: printerConnected || isNetworkPrinter - status: printerStatus - anchors - { - verticalCenter: parent.verticalCenter - left: parent.left - leftMargin: UM.Theme.getSize("thick_margin").width - } - } - - Label - { - id: sidebarComboBoxLabel - color: UM.Theme.getColor("machine_selector_text_active") - text: control.text; - elide: Text.ElideRight; - anchors.left: printerStatusIcon.visible ? printerStatusIcon.right : parent.left; - anchors.leftMargin: printerStatusIcon.visible ? UM.Theme.getSize("narrow_margin").width : UM.Theme.getSize("thick_margin").width - anchors.right: downArrow.left; - anchors.rightMargin: control.rightMargin; - anchors.verticalCenter: parent.verticalCenter; - font: UM.Theme.getFont("medium_bold") - } - } - label: Label {} + id: catalog + name: "cura" } - menu: PrinterMenu { } + headerItem: Item + { + Label + { + text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName + verticalAlignment: Text.AlignVCenter + height: parent.height + } + } + + popupItem: Item + { + id: popup + width: 240 + height: 200 + + ScrollView + { + anchors.fill: parent + contentHeight: column.implicitHeight + contentWidth: row.implicitWidth + clip: true + ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + + Column + { + id: column + anchors.fill: parent + Label + { + text: catalog.i18nc("@label", "Networked Printers") + visible: networkedPrintersModel.items.length > 0 + height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 + font: UM.Theme.getFont("medium_bold") + verticalAlignment: Text.AlignVCenter + } + + Repeater + { + id: networkedPrinters + + model: UM.ContainerStacksModel + { + id: networkedPrintersModel + filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} + } + + delegate: RoundButton + { + text: name + width: parent.width + + checkable: true + onClicked: Cura.MachineManager.setActiveMachine(model.id) + radius: UM.Theme.getSize("default_radius").width + + Connections + { + target: Cura.MachineManager + onActiveMachineNetworkGroupNameChanged: checked = Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] + } + } + + } + + Label + { + text: catalog.i18nc("@label", "Virtual Printers") + visible: virtualPrintersModel.items.length > 0 + height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 + font: UM.Theme.getFont("medium_bold") + verticalAlignment: Text.AlignVCenter + } + + Repeater + { + id: virtualPrinters + + model: UM.ContainerStacksModel + { + id: virtualPrintersModel + filter: {"type": "machine", "um_network_key": null} + } + + delegate: RoundButton + { + text: name + width: parent.width + checked: Cura.MachineManager.activeMachineId == model.id + checkable: true + onClicked: Cura.MachineManager.setActiveMachine(model.id) + radius: UM.Theme.getSize("default_radius").width + } + + } + } + } + } } From deb5fd1926763af05bf107fe7599cff1f085ec23 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 15:35:05 +0100 Subject: [PATCH 0253/1039] Fix PrintSetupSelector for previewStage CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 3 ++- resources/qml/PrintSetupSelector.qml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 66f7d527d9..db96525365 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -25,7 +25,7 @@ Item { anchors.horizontalCenter: parent.horizontalCenter spacing: UM.Theme.getSize("default_margin").width - + height: parent.height ComboBox { // This item contains the views selector, a combobox that is dynamically created from @@ -87,6 +87,7 @@ Item Cura.PrintSetupSelector { width: UM.Theme.getSize("print_setup_widget").width + height: parent.height onShowTooltip: previewMenu.showTooltip(item, location, text) onHideTooltip: previewMenu.hideTooltip() } diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 1281961ef4..65bcee8507 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -24,6 +24,7 @@ Cura.ExpandableComponent signal showTooltip(Item item, point location, string text) signal hideTooltip() + implicitWidth: 200 height: childrenRect.height iconSource: UM.Theme.getIcon("pencil") From 785c2661a2ad382d77285cbb124bfee1e5f1985e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 15:57:00 +0100 Subject: [PATCH 0254/1039] Make SimulationViewMenuComponent also use the ExpandableComponent CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 2 +- .../SimulationViewMenuComponent.qml | 74 +++---------------- resources/qml/ExpandableComponent.qml | 8 ++ 3 files changed, 20 insertions(+), 64 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index db96525365..aeef2bf300 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -78,7 +78,7 @@ Item property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) - height: childrenRect.height + height: parent.height width: childrenRect.width source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index d251244c9f..fe9f4471fd 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -10,19 +10,13 @@ import QtGraphicalEffects 1.0 import UM 1.0 as UM import Cura 1.0 as Cura -Rectangle + +Cura.ExpandableComponent { id: base - color: UM.Theme.getColor("tool_panel_background") - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - width: UM.Theme.getSize("layerview_menu_size").width - - height: viewSettings.collapsed ? layerViewTypesLabel.height + 2 * UM.Theme.getSize("default_margin").height : childrenRect.height + 2 * UM.Theme.getSize("default_margin").height - - Behavior on height { NumberAnimation { duration: 100 } } + iconSource: UM.Theme.getIcon("pencil") property var buttonTarget: { @@ -51,59 +45,21 @@ Rectangle } } - Label + headerItem: Label { id: layerViewTypesLabel - text: catalog.i18nc("@label","Color scheme") - font: UM.Theme.getFont("default"); + text: catalog.i18nc("@label", "Color scheme") + font: UM.Theme.getFont("default") visible: !UM.SimulationView.compatibilityMode color: UM.Theme.getColor("setting_control_text") - height: contentHeight - anchors - { - top: parent.top - margins: UM.Theme.getSize("default_margin").height - right: collapseButton.left - left: parent.left - } + height: base.height + verticalAlignment: Text.AlignVCenter } - Button - { - id: collapseButton - - anchors - { - top: parent.top - margins: UM.Theme.getSize("default_margin").width - right: parent.right - } - - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - - onClicked: viewSettings.collapsed = !viewSettings.collapsed - - style: ButtonStyle - { - background: UM.RecolorImage - { - width: control.width - height: control.height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("setting_control_text") - source: viewSettings.collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") - } - label: Label{ } - } - } - - Column + popupItem: Column { id: viewSettings - property bool collapsed: false property var extruder_opacities: UM.Preferences.getValue("layerview/extruder_opacities").split("|") property bool show_travel_moves: UM.Preferences.getValue("layerview/show_travel_moves") property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers") @@ -118,19 +74,11 @@ Rectangle property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers") property int top_layer_count: UM.Preferences.getValue("view/top_layer_count") - anchors - { - top: layerViewTypesLabel.bottom - left: parent.left - right: parent.right - margins: UM.Theme.getSize("default_margin").height - - } + width: UM.Theme.getSize("layerview_menu_size").width + height: childrenRect.height spacing: UM.Theme.getSize("layerview_row_spacing").height - visible: !collapsed - ListModel // matches SimulationView.py { id: layerViewTypes diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index af579340a5..06b4146a57 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -47,6 +47,14 @@ Item popup.contentItem = popupItem } + Connections + { + // Since it could be that the popup is dynamically populated, we should also take these changes into account. + target: popupItem + onWidthChanged: popup.width = popupItem.width + 2 * popup.padding + onHeightChanged: popup.height = popupItem.height + 2 * popup.padding + } + implicitHeight: 100 implicitWidth: 400 Rectangle From c9389dd9ab824b40a09b13fd9f3939ffc531f874 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 15:58:34 +0100 Subject: [PATCH 0255/1039] Codestyle fixes --- resources/qml/PrintSetupSelector.qml | 29 ++++++---------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 65bcee8507..7a7d438bc3 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -109,23 +109,6 @@ Cura.ExpandableComponent } } - - /*Label - { - id: settingsModeLabel - text: !hideSettings ? catalog.i18nc("@label:listbox", "Print Setup") : catalog.i18nc("@label:listbox", "Print Setup disabled\nG-code files cannot be modified") - renderType: Text.NativeRendering - - anchors - { - fill: parent - } - - height: contentHeight - font: UM.Theme.getFont("large") - color: UM.Theme.getColor("text") - }*/ - popupItem: Item { height: settingsModeSelection.height + sidebarContents.height @@ -184,7 +167,7 @@ Cura.ExpandableComponent border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") - // for some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is + // For some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") } @@ -200,13 +183,13 @@ Cura.ExpandableComponent { if(control.pressed) { - return UM.Theme.getColor("action_button_active_text"); + return UM.Theme.getColor("action_button_active_text") } else if(control.hovered) { - return UM.Theme.getColor("action_button_hovered_text"); + return UM.Theme.getColor("action_button_hovered_text") } - return UM.Theme.getColor("action_button_text"); + return UM.Theme.getColor("action_button_text") } } } @@ -263,11 +246,11 @@ Cura.ExpandableComponent if(index != null && !isNaN(index)) { - currentModeIndex = index; + currentModeIndex = index } else { - currentModeIndex = 0; + currentModeIndex = 0 } } } From 20e2f317de0507ec889baa5dc30cf48277165bdb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 16:02:45 +0100 Subject: [PATCH 0256/1039] Add background to viewModeSelection CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 71 +++++++++++++++------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index aeef2bf300..f21c13a5bc 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -26,49 +26,56 @@ Item anchors.horizontalCenter: parent.horizontalCenter spacing: UM.Theme.getSize("default_margin").width height: parent.height - ComboBox + + Rectangle { - // This item contains the views selector, a combobox that is dynamically created from - // the list of available Views (packages that create different visualizations of the - // scene). - id: viewModeButton - - style: UM.Theme.styles.combobox - - model: UM.ViewModel { } - textRole: "name" - - // update the model's active index - function updateItemActiveFlags() + color: UM.Theme.getColor("tool_panel_background") + width: viewModeButton.width + 2 * UM.Theme.getSize("default_margin").width + height: parent.height + ComboBox { - currentIndex = getActiveIndex() - for (var i = 0; i < model.rowCount(); i++) - { - model.getItem(i).active = (i == currentIndex) - } - } + // This item contains the views selector, a combobox that is dynamically created from + // the list of available Views (packages that create different visualizations of the + // scene). + id: viewModeButton - // get the index of the active model item on start - function getActiveIndex() - { - for (var i = 0; i < model.rowCount(); i++) + style: UM.Theme.styles.combobox + anchors.centerIn: parent + model: UM.ViewModel { } + textRole: "name" + + // update the model's active index + function updateItemActiveFlags() { - if (model.getItem(i).active) + currentIndex = getActiveIndex() + for (var i = 0; i < model.rowCount(); i++) { - return i; + model.getItem(i).active = (i == currentIndex) } } - return 0 - } - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id != undefined) + // get the index of the active model item on start + function getActiveIndex() { - UM.Controller.setActiveView(model.getItem(currentIndex).id) + for (var i = 0; i < model.rowCount(); i++) + { + if (model.getItem(i).active) + { + return i; + } + } + return 0 } + + onCurrentIndexChanged: + { + if (model.getItem(currentIndex).id != undefined) + { + UM.Controller.setActiveView(model.getItem(currentIndex).id) + } + } + currentIndex: getActiveIndex() } - currentIndex: getActiveIndex() } Loader From 4b8d20cad770646c9f33c6ca5a508bedee968858 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 13 Nov 2018 16:27:19 +0100 Subject: [PATCH 0257/1039] Correct the link to create a new account Previously this button just took you to the log-in page. Fixes issue CURA-5921. --- resources/qml/Account/GeneralOperations.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml index 362e088033..4614c4ba88 100644 --- a/resources/qml/Account/GeneralOperations.qml +++ b/resources/qml/Account/GeneralOperations.qml @@ -20,7 +20,7 @@ Row hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("main_window_header_button_text_active") textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") - onClicked: Qt.openUrlExternally("https://account.ultimaker.com") + onClicked: Qt.openUrlExternally("https://account.ultimaker.com/app/create") fixedWidthMode: true } From b83175a380e170a71e8b6cdfae0235a4777e9c44 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 16:31:48 +0100 Subject: [PATCH 0258/1039] Add rounded corners to stage menus CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 72 +++++++++------ plugins/PreviewStage/PreviewMenu.qml | 130 +++++++++++++++------------ 2 files changed, 117 insertions(+), 85 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 9fd8747e28..7006545204 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -23,7 +23,7 @@ Item Item { anchors.horizontalCenter: parent.horizontalCenter - width: openFileButton.width + UM.Theme.getSize("default_margin").width + itemRow.width + width: openFileButton.width + itemRowBackground.width height: parent.height Button @@ -36,45 +36,59 @@ Item action: Cura.Actions.open } - RowLayout + Rectangle { - id: itemRow + id: itemRowBackground + radius: UM.Theme.getSize("default_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: UM.Theme.getColor("toolbar_background") + + width: itemRow.width + UM.Theme.getSize("default_margin").width + height: parent.height anchors.left: openFileButton.right anchors.leftMargin: UM.Theme.getSize("default_margin").width - width: 0.9 * prepareMenu.width - height: parent.height - - Cura.MachineSelector + RowLayout { - id: machineSelection - z: openFileButton.z - 1 + id: itemRow - Layout.minimumWidth: 240 - Layout.maximumWidth: 240 - Layout.fillWidth: true - Layout.fillHeight: true - } + anchors.centerIn: parent - Cura.QuickConfigurationSelector - { - Layout.fillHeight: true - Layout.fillWidth: true - Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelector.width - } + width: 0.9 * prepareMenu.width + height: parent.height - 2 * UM.Theme.getSize("default_lining").width - Cura.PrintSetupSelector - { - id: printSetupSelector + Cura.MachineSelector + { + id: machineSelection + z: openFileButton.z - 1 - onShowTooltip: prepareMenu.showTooltip(item, location, text) - onHideTooltip: prepareMenu.hideTooltip() + Layout.minimumWidth: 240 + Layout.maximumWidth: 240 + Layout.fillWidth: true + Layout.fillHeight: true + } - Layout.minimumWidth: 460 - Layout.maximumWidth: 460 - Layout.fillWidth: true - Layout.fillHeight: true + Cura.QuickConfigurationSelector + { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelector.width + } + + Cura.PrintSetupSelector + { + id: printSetupSelector + + onShowTooltip: prepareMenu.showTooltip(item, location, text) + onHideTooltip: prepareMenu.hideTooltip() + + Layout.minimumWidth: 460 + Layout.maximumWidth: 460 + Layout.fillWidth: true + Layout.fillHeight: true + } } } } diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index f21c13a5bc..1741706679 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -15,88 +15,106 @@ Item signal showTooltip(Item item, point location, string text) signal hideTooltip() + property real itemHeight: height - 2 * UM.Theme.getSize("default_lining").width + UM.I18nCatalog { id: catalog name: "cura" } - Row + Rectangle { - anchors.horizontalCenter: parent.horizontalCenter - spacing: UM.Theme.getSize("default_margin").width + anchors.fill: stageMenu + anchors.leftMargin: -radius + radius: UM.Theme.getSize("default_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: UM.Theme.getColor("toolbar_background") + } + + Item + { + id: stageMenu height: parent.height - - Rectangle + width: childrenRect.width + UM.Theme.getSize("default_margin").width + anchors.horizontalCenter: parent.horizontalCenter + Row { - color: UM.Theme.getColor("tool_panel_background") - width: viewModeButton.width + 2 * UM.Theme.getSize("default_margin").width - height: parent.height - ComboBox + anchors.centerIn: parent + spacing: UM.Theme.getSize("default_margin").width + height: parent.height - 2 * UM.Theme.getSize("default_lining").width + + Item { - // This item contains the views selector, a combobox that is dynamically created from - // the list of available Views (packages that create different visualizations of the - // scene). - id: viewModeButton - - style: UM.Theme.styles.combobox - anchors.centerIn: parent - model: UM.ViewModel { } - textRole: "name" - - // update the model's active index - function updateItemActiveFlags() + width: viewModeButton.width + 2 * UM.Theme.getSize("default_margin").width + height: parent.height + ComboBox { - currentIndex = getActiveIndex() - for (var i = 0; i < model.rowCount(); i++) - { - model.getItem(i).active = (i == currentIndex) - } - } + // This item contains the views selector, a combobox that is dynamically created from + // the list of available Views (packages that create different visualizations of the + // scene). + id: viewModeButton - // get the index of the active model item on start - function getActiveIndex() - { - for (var i = 0; i < model.rowCount(); i++) + style: UM.Theme.styles.combobox + anchors.centerIn: parent + model: UM.ViewModel { } + textRole: "name" + + // update the model's active index + function updateItemActiveFlags() { - if (model.getItem(i).active) + currentIndex = getActiveIndex() + for (var i = 0; i < model.rowCount(); i++) { - return i; + model.getItem(i).active = (i == currentIndex) } } - return 0 - } - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id != undefined) + // get the index of the active model item on start + function getActiveIndex() { - UM.Controller.setActiveView(model.getItem(currentIndex).id) + for (var i = 0; i < model.rowCount(); i++) + { + if (model.getItem(i).active) + { + return i; + } + } + return 0 } + + onCurrentIndexChanged: + { + if (model.getItem(currentIndex).id != undefined) + { + UM.Controller.setActiveView(model.getItem(currentIndex).id) + } + } + currentIndex: getActiveIndex() } - currentIndex: getActiveIndex() } - } - Loader - { - // TODO: Make this panel collapsable and ensure it has a standardised background. - id: viewPanel + Loader + { + // TODO: Make this panel collapsable and ensure it has a standardised background. + id: viewPanel - property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) + property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) - height: parent.height - width: childrenRect.width + height: parent.height + width: childrenRect.width - source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" - } + source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" + } - Cura.PrintSetupSelector - { - width: UM.Theme.getSize("print_setup_widget").width - height: parent.height - onShowTooltip: previewMenu.showTooltip(item, location, text) - onHideTooltip: previewMenu.hideTooltip() + Cura.PrintSetupSelector + { + width: UM.Theme.getSize("print_setup_widget").width + height: parent.height + onShowTooltip: previewMenu.showTooltip(item, location, text) + onHideTooltip: previewMenu.hideTooltip() + } } } } \ No newline at end of file From 551bc2fbd41984a4ca11a4d42a49be04736f5e9b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 16:40:51 +0100 Subject: [PATCH 0259/1039] Removed line around the headerbar I was checking an old design, the new one doesn't have a line around it CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 5 ++--- plugins/PreviewStage/PreviewMenu.qml | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 7006545204..ac43fd5634 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -40,8 +40,7 @@ Item { id: itemRowBackground radius: UM.Theme.getSize("default_radius").width - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") + color: UM.Theme.getColor("toolbar_background") width: itemRow.width + UM.Theme.getSize("default_margin").width @@ -57,7 +56,7 @@ Item anchors.centerIn: parent width: 0.9 * prepareMenu.width - height: parent.height - 2 * UM.Theme.getSize("default_lining").width + height: parent.height Cura.MachineSelector { diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 1741706679..b441a78dff 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -28,8 +28,6 @@ Item anchors.fill: stageMenu anchors.leftMargin: -radius radius: UM.Theme.getSize("default_radius").width - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") color: UM.Theme.getColor("toolbar_background") } @@ -43,7 +41,7 @@ Item { anchors.centerIn: parent spacing: UM.Theme.getSize("default_margin").width - height: parent.height - 2 * UM.Theme.getSize("default_lining").width + height: parent.height Item { From a9fdd455ebf39dbc66f592324ebcca08620ed14e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 16:47:39 +0100 Subject: [PATCH 0260/1039] Add seperator lines for the stageMenu's CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 18 +++++++++++++++++- plugins/PreviewStage/PreviewMenu.qml | 17 ++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index ac43fd5634..c7164eb490 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -69,11 +69,27 @@ Item Layout.fillHeight: true } + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } + Cura.QuickConfigurationSelector { Layout.fillHeight: true Layout.fillWidth: true - Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelector.width + Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelector.width - 2 * UM.Theme.getSize("default_lining").width + } + + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") } Cura.PrintSetupSelector diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index b441a78dff..ccc0a98c6e 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -40,7 +40,7 @@ Item Row { anchors.centerIn: parent - spacing: UM.Theme.getSize("default_margin").width + //spacing: UM.Theme.getSize("default_margin").width height: parent.height Item @@ -93,6 +93,14 @@ Item } } + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } + Loader { // TODO: Make this panel collapsable and ensure it has a standardised background. @@ -106,6 +114,13 @@ Item source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" } + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } Cura.PrintSetupSelector { width: UM.Theme.getSize("print_setup_widget").width From 6307784a7940e4942ea964068b6a1135329071ed Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 13 Nov 2018 16:50:00 +0100 Subject: [PATCH 0261/1039] Fix some English grammar. [CURA-5903] --- resources/definitions/fdmprinter.def.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 3b3194f1dc..e67608f579 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4142,7 +4142,7 @@ "minimum_support_area": { "label": "Minimum Support Area", - "description": "Minimum area size for support polygons. Polygons which area is smaller than this value will not be generated.", + "description": "Minimum area size for support polygons. Polygons which have an area smaller than this value will not be generated.", "unit": "mm²", "type": "float", "default_value": 0.0, @@ -4395,7 +4395,7 @@ "minimum_interface_area": { "label": "Minimum Support Interface Area", - "description": "Minimum area size for support interface polygons. Polygons which area are smaller than this value will not be generated.", + "description": "Minimum area size for support interface polygons. Polygons which have an area smaller than this value will not be generated.", "unit": "mm²", "type": "float", "default_value": 1.0, @@ -4409,7 +4409,7 @@ "minimum_roof_area": { "label": "Minimum Support Roof Area", - "description": "Minimum area size for the roofs of the support. Polygons which area are smaller than this value will not be generated.", + "description": "Minimum area size for the roofs of the support. Polygons which have an area smaller than this value will not be generated.", "unit": "mm²", "type": "float", "default_value": 1.0, @@ -4423,7 +4423,7 @@ "minimum_bottom_area": { "label": "Minimum Support Floor Area", - "description": "Minimum area size for the floors of the support. Polygons which area are smaller than this value will not be generated.", + "description": "Minimum area size for the floors of the support. Polygons which have an area smaller than this value will not be generated.", "unit": "mm²", "type": "float", "default_value": 1.0, From 12c296241436acf72fd171f00e914be74ffd3ba7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 13 Nov 2018 16:59:02 +0100 Subject: [PATCH 0262/1039] Update the look & feel of openButton to the new design CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 30 +++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index c7164eb490..3c7235a26f 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -23,19 +23,30 @@ Item Item { anchors.horizontalCenter: parent.horizontalCenter - width: openFileButton.width + itemRowBackground.width + width: openFileButtonBackground.width + itemRowBackground.width height: parent.height - Button + Rectangle { - id: openFileButton - text: catalog.i18nc("@action:button", "Open File") - iconSource: UM.Theme.getIcon("load") - style: UM.Theme.styles.tool_button - tooltip: "" - action: Cura.Actions.open + id: openFileButtonBackground + height: UM.Theme.getSize("stage_menu").height + width: UM.Theme.getSize("stage_menu").height + + radius: UM.Theme.getSize("default_radius").width + color: UM.Theme.getColor("toolbar_background") + Button + { + id: openFileButton + text: catalog.i18nc("@action:button", "Open File") + iconSource: UM.Theme.getIcon("load") + style: UM.Theme.styles.toolbar_button + tooltip: "" + action: Cura.Actions.open + anchors.centerIn: parent + } } + Rectangle { id: itemRowBackground @@ -46,7 +57,7 @@ Item width: itemRow.width + UM.Theme.getSize("default_margin").width height: parent.height - anchors.left: openFileButton.right + anchors.left: openFileButtonBackground.right anchors.leftMargin: UM.Theme.getSize("default_margin").width RowLayout @@ -57,6 +68,7 @@ Item width: 0.9 * prepareMenu.width height: parent.height + spacing: 0 Cura.MachineSelector { From 13a9bb7eba2abf2a2790f732165b557ff7d4ec71 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 13 Nov 2018 17:03:27 +0100 Subject: [PATCH 0263/1039] Remove enables for min. support area in case of TreeSupport. [CURA-5903] --- resources/definitions/fdmprinter.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e67608f579..325e4b6c79 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4402,7 +4402,7 @@ "minimum_value": "0", "minimum_value_warning": "minimum_support_area", "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_tree_enable)", + "enabled": "support_interface_enable and support_enable", "settable_per_mesh": true, "children": { @@ -4417,7 +4417,7 @@ "minimum_value": "0", "minimum_value_warning": "minimum_support_area", "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_tree_enable)", + "enabled": "support_roof_enable and support_enable", "settable_per_mesh": true }, "minimum_bottom_area": @@ -4431,7 +4431,7 @@ "minimum_value": "0", "minimum_value_warning": "minimum_support_area", "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", + "enabled": "support_bottom_enable and support_enable", "settable_per_mesh": true } } From fb72f9a0594c8ac1d3e721dbad60617c227699d0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 09:59:56 +0100 Subject: [PATCH 0264/1039] Fixed size of expandableItem not being the correct width CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 1 + plugins/SimulationView/SimulationViewMenuComponent.qml | 2 +- resources/qml/ExpandableComponent.qml | 2 +- .../qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index ccc0a98c6e..5b0ae4e9c5 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -121,6 +121,7 @@ Item width: UM.Theme.getSize("default_lining").width color: UM.Theme.getColor("lining") } + Cura.PrintSetupSelector { width: UM.Theme.getSize("print_setup_widget").width diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index fe9f4471fd..92a4e1e317 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -74,7 +74,7 @@ Cura.ExpandableComponent property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers") property int top_layer_count: UM.Preferences.getValue("view/top_layer_count") - width: UM.Theme.getSize("layerview_menu_size").width + width: base.width - 2 * UM.Theme.getSize("default_margin").width height: childrenRect.height spacing: UM.Theme.getSize("layerview_row_spacing").height diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 06b4146a57..c525d163fe 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -111,7 +111,7 @@ Item // Make the popup right aligned with the rest. The 3x padding is due to left, right and padding between //the button & text. x: -width + collapseButton.width + headerItemLoader.width + 3 * background.padding - + padding: UM.Theme.getSize("default_margin").width closePolicy: Popup.CloseOnPressOutsideParent background: Rectangle diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 7c70229b5d..721416352d 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -92,7 +92,7 @@ Cura.ExpandableComponent popupItem: Item { - width: base.width + width: base.width - 2 * UM.Theme.getSize("default_margin").width height: 200 TabBar From c35b4f1d31d295fc9d91b15167cea6ac79298bd7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 10:00:44 +0100 Subject: [PATCH 0265/1039] Removed old unusued code CURA-5785 --- .../QuickConfigurationSelector.qml | 62 +------------------ 1 file changed, 1 insertion(+), 61 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 721416352d..5565884bd8 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -233,64 +233,4 @@ Cura.ExpandableComponent } } - -} - -/*Item -{ - id: configurationSelector - property var connectedDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - property var panelWidth: control.width - - // Make this component only visible when it's a network printer and it is connected - visible: Cura.MachineManager.activeMachineNetworkKey != "" && Cura.MachineManager.printerConnected - - function switchPopupState() - { - popup.visible ? popup.close() : popup.open() - } - - SyncButton - { - id: syncButton - onClicked: switchPopupState() - outputDevice: connectedDevice - } - - Popup - { - // TODO Change once updating to Qt5.10 - The 'opened' property is in 5.10 but the behavior is now implemented with the visible property - id: popup - clip: true - closePolicy: Popup.CloseOnPressOutsideParent - y: configurationSelector.height - UM.Theme.getSize("default_lining").height - x: configurationSelector.width - width - width: panelWidth - visible: false - padding: UM.Theme.getSize("default_lining").width - transformOrigin: Popup.Top - contentItem: ConfigurationListView - { - id: configList - width: panelWidth - 2 * popup.padding - outputDevice: connectedDevice - } - background: Rectangle - { - color: UM.Theme.getColor("setting_control") - border.color: UM.Theme.getColor("setting_control_border") - } - exit: Transition - { - // This applies a default NumberAnimation to any changes a state change makes to x or y properties - NumberAnimation { property: "visible"; duration: 75; } - } - enter: Transition - { - // This applies a default NumberAnimation to any changes a state change makes to x or y properties - NumberAnimation { property: "visible"; duration: 75; } - } - onClosed: visible = false - onOpened: visible = true - } -}*/ \ No newline at end of file +} \ No newline at end of file From 878b7432327e92f2081f153d28063c42e6905c0c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 10:39:03 +0100 Subject: [PATCH 0266/1039] Add elide to machine selector label. CURA-5785 --- resources/qml/MachineSelector.qml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 206229e837..87a3154338 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -25,14 +25,12 @@ Cura.ExpandableComponent name: "cura" } - headerItem: Item + headerItem: Label { - Label - { - text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName - verticalAlignment: Text.AlignVCenter - height: parent.height - } + text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName + verticalAlignment: Text.AlignVCenter + height: parent.height + elide: Text.ElideRight } popupItem: Item From fcfe95c7d0a7217bd5793ee5e5148b835bae29c4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 12:57:57 +0100 Subject: [PATCH 0267/1039] Move OpenFile button to be instantiated left so it's tooltip doesn't get messed up CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 43 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 3c7235a26f..78f9ced1e7 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -26,27 +26,6 @@ Item width: openFileButtonBackground.width + itemRowBackground.width height: parent.height - Rectangle - { - id: openFileButtonBackground - height: UM.Theme.getSize("stage_menu").height - width: UM.Theme.getSize("stage_menu").height - - radius: UM.Theme.getSize("default_radius").width - color: UM.Theme.getColor("toolbar_background") - Button - { - id: openFileButton - text: catalog.i18nc("@action:button", "Open File") - iconSource: UM.Theme.getIcon("load") - style: UM.Theme.styles.toolbar_button - tooltip: "" - action: Cura.Actions.open - anchors.centerIn: parent - } - } - - Rectangle { id: itemRowBackground @@ -73,7 +52,7 @@ Item Cura.MachineSelector { id: machineSelection - z: openFileButton.z - 1 + z: openFileButtonBackground.z - 1 Layout.minimumWidth: 240 Layout.maximumWidth: 240 @@ -118,5 +97,25 @@ Item } } } + + Rectangle + { + id: openFileButtonBackground + height: UM.Theme.getSize("stage_menu").height + width: UM.Theme.getSize("stage_menu").height + + radius: UM.Theme.getSize("default_radius").width + color: UM.Theme.getColor("toolbar_background") + Button + { + id: openFileButton + text: catalog.i18nc("@action:button", "Open File") + iconSource: UM.Theme.getIcon("load") + style: UM.Theme.styles.toolbar_button + tooltip: "" + action: Cura.Actions.open + anchors.centerIn: parent + } + } } } \ No newline at end of file From ae2b3124721c9c74730073d178c0ac1927819b1c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 14 Nov 2018 13:41:23 +0100 Subject: [PATCH 0268/1039] Add typing for all version upgrade plug-ins Hopefully we'll take this typing along when we next copy-paste the stuffs. Contributes to issue CURA-5936. --- .../VersionUpgrade21to22/MachineInstance.py | 17 ++--- .../VersionUpgrade21to22/Preferences.py | 9 +-- .../VersionUpgrade21to22/Profile.py | 11 ++- .../VersionUpgrade21to22.py | 69 ++++++++++--------- .../VersionUpgrade21to22/__init__.py | 11 ++- .../VersionUpgrade22to24/VersionUpgrade.py | 20 +++--- .../VersionUpgrade22to24/__init__.py | 11 ++- .../VersionUpgrade25to26.py | 26 +++---- .../VersionUpgrade25to26/__init__.py | 11 ++- .../VersionUpgrade26to27.py | 13 ++-- .../VersionUpgrade26to27/__init__.py | 11 ++- .../VersionUpgrade27to30.py | 21 +++--- .../VersionUpgrade27to30/__init__.py | 11 ++- .../VersionUpgrade30to31.py | 19 ++--- .../VersionUpgrade30to31/__init__.py | 11 ++- .../VersionUpgrade32to33.py | 21 +++--- .../VersionUpgrade32to33/__init__.py | 9 ++- .../VersionUpgrade33to34.py | 8 +-- .../VersionUpgrade33to34/__init__.py | 9 ++- .../VersionUpgrade34to35.py | 23 +++---- .../VersionUpgrade34to35/__init__.py | 9 ++- 21 files changed, 200 insertions(+), 150 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index 37b6989add..a947114595 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -1,15 +1,16 @@ -# Copyright (c) 2016 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import UM.VersionUpgrade #To indicate that a file is of incorrect format. -import UM.VersionUpgradeManager #To schedule more files to be upgraded. -from UM.Resources import Resources #To get the config storage path. - import configparser #To read config files. import io #To write config files to strings as if they were files. import os.path #To get the path to write new user profiles to. +from typing import List, Optional, Tuple import urllib #To serialise the user container file name properly. +import UM.VersionUpgrade #To indicate that a file is of incorrect format. +import UM.VersionUpgradeManager #To schedule more files to be upgraded. +from UM.Resources import Resources #To get the config storage path. + ## Creates a new machine instance instance by parsing a serialised machine # instance in version 1 of the file format. # @@ -18,7 +19,7 @@ import urllib #To serialise the user container file name properly. # extension. # \return A machine instance instance, or None if the file format is # incorrect. -def importFrom(serialised, filename): +def importFrom(serialised: str, filename: str) -> Optional["MachineInstance"]: try: return MachineInstance(serialised, filename) except (configparser.Error, UM.VersionUpgrade.FormatException, UM.VersionUpgrade.InvalidVersionException): @@ -32,7 +33,7 @@ class MachineInstance: # \param serialised A string with the contents of a machine instance file, # without extension. # \param filename The supposed file name of this machine instance. - def __init__(self, serialised, filename): + def __init__(self, serialised: str, filename: str) -> str: self._filename = filename config = configparser.ConfigParser(interpolation = None) @@ -67,7 +68,7 @@ class MachineInstance: # # \return A tuple containing the new filename and a serialised form of # this machine instance, serialised in version 2 of the file format. - def export(self): + def export(self) -> Tuple[List[str], List[str]]: config = configparser.ConfigParser(interpolation = None) # Build a config file in the form of version 2. config.add_section("general") diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py index 842499da86..51e4b617e8 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py @@ -1,8 +1,9 @@ -# Copyright (c) 2016 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser #To read config files. import io #To output config files to string. +from typing import List, Optional, Tuple import UM.VersionUpgrade #To indicate that a file is of the wrong format. @@ -14,7 +15,7 @@ import UM.VersionUpgrade #To indicate that a file is of the wrong format. # extension. # \return A representation of those preferences, or None if the file format is # incorrect. -def importFrom(serialised, filename): +def importFrom(serialised: str, filename: str) -> Optional["Preferences"]: try: return Preferences(serialised, filename) except (configparser.Error, UM.VersionUpgrade.FormatException, UM.VersionUpgrade.InvalidVersionException): @@ -28,7 +29,7 @@ class Preferences: # \param serialised A serialised version 2 preferences file. # \param filename The supposed filename of the preferences file, without # extension. - def __init__(self, serialised, filename): + def __init__(self, serialised: str, filename: str) -> None: self._filename = filename self._config = configparser.ConfigParser(interpolation = None) @@ -50,7 +51,7 @@ class Preferences: # # \return A tuple containing the new filename and a serialised version of # a preferences file in version 3. - def export(self): + def export(self) -> Tuple[List[str], List[str]]: #Reset the cura/categories_expanded property since it works differently now. if self._config.has_section("cura") and self._config.has_option("cura", "categories_expanded"): self._config.remove_option("cura", "categories_expanded") diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py index 161edcb67c..af9635d384 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py @@ -1,10 +1,9 @@ -# Copyright (c) 2016 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser #To read config files. import io #To write config files to strings as if they were files. -from typing import Dict -from typing import List +from typing import Dict, List, Optional, Tuple import UM.VersionUpgrade from UM.Logger import Logger @@ -15,7 +14,7 @@ from UM.Logger import Logger # \param serialised The serialised form of a profile in version 1. # \param filename The supposed filename of the profile, without extension. # \return A profile instance, or None if the file format is incorrect. -def importFrom(serialised, filename): +def importFrom(serialised: str, filename: str) -> Optional["Profile"]: try: return Profile(serialised, filename) except (configparser.Error, UM.VersionUpgrade.FormatException, UM.VersionUpgrade.InvalidVersionException): @@ -77,11 +76,11 @@ class Profile: # # \return A tuple containing the new filename and a serialised form of # this profile, serialised in version 2 of the file format. - def export(self): + def export(self) -> Optional[Tuple[List[str], List[str]]]: import VersionUpgrade21to22 # Import here to prevent circular dependencies. if self._name == "Current settings": - return None, None #Can't upgrade these, because the new current profile needs to specify the definition ID and the old file only had the machine instance, not the definition. + return None #Can't upgrade these, because the new current profile needs to specify the definition ID and the old file only had the machine instance, not the definition. config = configparser.ConfigParser(interpolation = None) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index d8036491bf..89c847e606 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -1,7 +1,8 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser #To get version numbers from config files. +from typing import Dict, Iterable, List, Optional, Set, Tuple from UM.VersionUpgrade import VersionUpgrade # Superclass of the plugin. @@ -30,7 +31,7 @@ _machines_with_machine_quality = { "materials": { "generic_abs", "generic_cpe", "generic_pla", "generic_pva", "generic_cpe_plus", "generic_nylon", "generic_pc", "generic_tpu" }, "variants": { "0.25 mm", "0.4 mm", "0.6 mm", "0.8 mm" } } -} +} # type: Dict[str, Dict[str, Set[str]]] ## How to translate material names from the old version to the new. _material_translations = { @@ -41,7 +42,7 @@ _material_translations = { "Nylon": "generic_nylon", "PC": "generic_pc", "TPU": "generic_tpu", -} +} # type: Dict[str, str] ## How to translate material names for in the profile names. _material_translations_profiles = { @@ -52,17 +53,17 @@ _material_translations_profiles = { "Nylon": "nylon", "PC": "pc", "TPU": "tpu", -} +} # type: Dict[str, str] ## How to translate printer names from the old version to the new. _printer_translations = { "ultimaker2plus": "ultimaker2_plus" -} +} # type: Dict[str, str] _printer_translations_profiles = { "ultimaker2plus": "um2p", #Does NOT get included in PLA profiles! "ultimaker2_extended_plus": "um2ep" #Has no profiles for CPE+, Nylon, PC and TPU! -} +} # type: Dict[str, str] ## How to translate profile names from the old version to the new. # @@ -116,13 +117,13 @@ _profile_translations = { "tpu_0.25_high": "um2p_tpu_0.25_high", "tpu_0.4_normal": "um2p_tpu_0.4_normal", "tpu_0.6_fast": "um2p_tpu_0.6_fast" -} +} # type: Dict[str, str] ## Settings that are no longer in the new version. _removed_settings = { "fill_perimeter_gaps", "support_area_smoothing" -} +} # type: Set[str] ## How to translate setting names from the old version to the new. _setting_name_translations = { @@ -142,7 +143,7 @@ _setting_name_translations = { "support_roof_line_distance": "support_interface_line_distance", "support_roof_line_width": "support_interface_line_width", "support_roof_pattern": "support_interface_pattern" -} +} # type: Dict[str, str] ## Custom profiles become quality_changes. This dictates which quality to base # the quality_changes profile on. @@ -190,7 +191,7 @@ _quality_fallbacks = { #No TPU. } } -} +} # type: Dict[str, Dict[str, Dict[str, str]]] ## How to translate variants of specific machines from the old version to the # new. @@ -207,7 +208,7 @@ _variant_translations = { "0.6 mm": "ultimaker2_extended_plus_0.6", "0.8 mm": "ultimaker2_extended_plus_0.8" } -} +} # type: Dict[str, Dict[str, str]] ## How to translate variant names for in the profile names. _variant_translations_profiles = { @@ -215,7 +216,7 @@ _variant_translations_profiles = { "0.4 mm": "0.4", "0.6 mm": "0.6", "0.8 mm": "0.8" -} +} # type: Dict[str, str] ## Cura 2.2's material profiles use a different naming scheme for variants. # @@ -233,7 +234,7 @@ _variant_translations_materials = { "0.6 mm": "ultimaker2_plus_0.6_mm", "0.8 mm": "ultimaker2_plus_0.8_mm" } -} +} # type: Dict[str, Dict[str, str]] ## Converts configuration from Cura 2.1's file formats to Cura 2.2's. # @@ -245,8 +246,8 @@ class VersionUpgrade21to22(VersionUpgrade): # number is stored in general/version, so get the data from that key. # # \param serialised The contents of a config file. - # \return \type{int} The version number of that config file. - def getCfgVersion(self, serialised): + # \return The version number of that config file. + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -263,7 +264,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \param variant The variant ID of the user's configuration in 2.2. # \param material The material ID of the user's configuration in 2.2. @staticmethod - def getQualityFallback(machine, variant, material): + def getQualityFallback(machine: str, variant: str, material: str) -> str: if machine not in _quality_fallbacks: return "normal" if variant not in _quality_fallbacks[machine]: @@ -277,14 +278,14 @@ class VersionUpgrade21to22(VersionUpgrade): # This is required to test if profiles should be converted to a quality # profile or a quality-changes profile. @staticmethod - def builtInProfiles(): + def builtInProfiles() -> Iterable[str]: return _profile_translations.keys() ## Gets a set of the machines which now have per-material quality profiles. # # \return A set of machine identifiers. @staticmethod - def machinesWithMachineQuality(): + def machinesWithMachineQuality() -> Dict[str, Dict[str, Set[str]]]: return _machines_with_machine_quality ## Converts machine instances from format version 1 to version 2. @@ -295,10 +296,10 @@ class VersionUpgrade21to22(VersionUpgrade): # \return A tuple containing the new filename and the serialised machine # instance in version 2, or None if the input was not of the correct # format. - def upgradeMachineInstance(self, serialised, filename): + def upgradeMachineInstance(self, serialised: str, filename: str) -> Optional[Tuple[List[str], List[str]]]: machine_instance = MachineInstance.importFrom(serialised, filename) if not machine_instance: #Invalid file format. - return filename, None + return None return machine_instance.export() ## Converts preferences from format version 2 to version 3. @@ -309,10 +310,10 @@ class VersionUpgrade21to22(VersionUpgrade): # \return A tuple containing the new filename and the serialised # preferences in version 3, or None if the input was not of the correct # format. - def upgradePreferences(self, serialised, filename): + def upgradePreferences(self, serialised: str, filename: str) -> Optional[Tuple[List[str], List[str]]]: preferences = Preferences.importFrom(serialised, filename) if not preferences: #Invalid file format. - return filename, None + return None return preferences.export() ## Converts profiles from format version 1 to version 2. @@ -322,10 +323,10 @@ class VersionUpgrade21to22(VersionUpgrade): # extension. # \return A tuple containing the new filename and the serialised profile # in version 2, or None if the input was not of the correct format. - def upgradeProfile(self, serialised, filename): + def upgradeProfile(self, serialised: str, filename: str) -> Optional[Tuple[List[str], List[str]]]: profile = Profile.importFrom(serialised, filename) if not profile: # Invalid file format. - return filename, None + return None return profile.export() ## Translates a material name for the change from Cura 2.1 to 2.2. @@ -333,7 +334,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \param material A material name in Cura 2.1. # \return The name of the corresponding material in Cura 2.2. @staticmethod - def translateMaterial(material): + def translateMaterial(material: str) -> str: if material in _material_translations: return _material_translations[material] return material @@ -345,7 +346,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \return The name of the corresponding material in the quality profiles # in Cura 2.2. @staticmethod - def translateMaterialForProfiles(material): + def translateMaterialForProfiles(material: str) -> str: if material in _material_translations_profiles: return _material_translations_profiles[material] return material @@ -356,7 +357,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \param printer A printer name in Cura 2.1. # \return The name of the corresponding printer in Cura 2.2. @staticmethod - def translatePrinter(printer): + def translatePrinter(printer: str) -> str: if printer in _printer_translations: return _printer_translations[printer] return printer #Doesn't need to be translated. @@ -367,7 +368,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \param printer A printer name in 2.1. # \return The name of the corresponding printer in Cura 2.2. @staticmethod - def translatePrinterForProfile(printer): + def translatePrinterForProfile(printer: str) -> str: if printer in _printer_translations_profiles: return _printer_translations_profiles[printer] return printer @@ -378,7 +379,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \param profile A profile name in the old version. # \return The corresponding profile name in the new version. @staticmethod - def translateProfile(profile): + def translateProfile(profile: str) -> str: if profile in _profile_translations: return _profile_translations[profile] return profile #Doesn't need to be translated. @@ -392,7 +393,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \param settings A dictionary of settings (as key-value pairs) to update. # \return The same dictionary. @staticmethod - def translateSettings(settings): + def translateSettings(settings: Dict[str, str]) -> Dict[str, str]: new_settings = {} for key, value in settings.items(): if key in _removed_settings: @@ -414,7 +415,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \param setting The name of a setting in Cura 2.1. # \return The name of the corresponding setting in Cura 2.2. @staticmethod - def translateSettingName(setting): + def translateSettingName(setting: str) -> str: if setting in _setting_name_translations: return _setting_name_translations[setting] return setting #Doesn't need to be translated. @@ -426,7 +427,7 @@ class VersionUpgrade21to22(VersionUpgrade): # 2.2's naming. # \return The name of the corresponding variant in Cura 2.2. @staticmethod - def translateVariant(variant, machine): + def translateVariant(variant: str, machine: str) -> str: if machine in _variant_translations and variant in _variant_translations[machine]: return _variant_translations[machine][variant] return variant @@ -440,7 +441,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \return The name of the corresponding variant for in material profiles # in Cura 2.2. @staticmethod - def translateVariantForMaterials(variant, machine): + def translateVariantForMaterials(variant: str, machine: str) -> str: if machine in _variant_translations_materials and variant in _variant_translations_materials[machine]: return _variant_translations_materials[machine][variant] return variant @@ -452,7 +453,7 @@ class VersionUpgrade21to22(VersionUpgrade): # \return The name of the corresponding variant for in quality profiles in # Cura 2.2. @staticmethod - def translateVariantForProfiles(variant): + def translateVariantForProfiles(variant: str) -> str: if variant in _variant_translations_profiles: return _variant_translations_profiles[variant] return variant \ No newline at end of file diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py index 609781ebfe..67530b9d45 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/__init__.py @@ -1,11 +1,16 @@ -# Copyright (c) 2016 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade21to22 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade21to22.VersionUpgrade21to22() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -33,5 +38,5 @@ def getMetaData(): } } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py index a56f1f807b..48af365877 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py @@ -1,18 +1,18 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser #To get version numbers from config files. +import io import os import os.path -import io +from typing import Dict, List, Optional, Tuple from UM.Resources import Resources from UM.VersionUpgrade import VersionUpgrade # Superclass of the plugin. import UM.VersionUpgrade class VersionUpgrade22to24(VersionUpgrade): - - def upgradeMachineInstance(self, serialised, filename): + def upgradeMachineInstance(self, serialised: str, filename: str) -> Optional[Tuple[List[str], List[str]]]: # All of this is needed to upgrade custom variant machines from old Cura to 2.4 where # `definition_changes` instance container has been introduced. Variant files which # look like the the handy work of the old machine settings plugin are converted directly @@ -71,7 +71,7 @@ class VersionUpgrade22to24(VersionUpgrade): config.write(output) return [filename], [output.getvalue()] - def __convertVariant(self, variant_path): + def __convertVariant(self, variant_path: str) -> str: # Copy the variant to the machine_instances/*_settings.inst.cfg variant_config = configparser.ConfigParser(interpolation = None) with open(variant_path, "r", encoding = "utf-8") as fhandle: @@ -99,7 +99,7 @@ class VersionUpgrade22to24(VersionUpgrade): return config_name - def __getUserVariants(self): + def __getUserVariants(self) -> List[Dict[str, str]]: resource_path = Resources.getDataStoragePath() variants_dir = os.path.join(resource_path, "variants") @@ -113,7 +113,7 @@ class VersionUpgrade22to24(VersionUpgrade): result.append( { "path": entry.path, "name": config.get("general", "name") } ) return result - def upgradeExtruderTrain(self, serialised, filename): + def upgradeExtruderTrain(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: config = configparser.ConfigParser(interpolation = None) config.read_string(serialised) # Read the input string as config file. config.set("general", "version", "3") # Just bump the version number. That is all we need for now. @@ -122,7 +122,7 @@ class VersionUpgrade22to24(VersionUpgrade): config.write(output) return [filename], [output.getvalue()] - def upgradePreferences(self, serialised, filename): + def upgradePreferences(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: config = configparser.ConfigParser(interpolation = None) config.read_string(serialised) @@ -142,7 +142,7 @@ class VersionUpgrade22to24(VersionUpgrade): config.write(output) return [filename], [output.getvalue()] - def upgradeQuality(self, serialised, filename): + def upgradeQuality(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: config = configparser.ConfigParser(interpolation = None) config.read_string(serialised) # Read the input string as config file. config.set("metadata", "type", "quality_changes") # Update metadata/type to quality_changes @@ -152,7 +152,7 @@ class VersionUpgrade22to24(VersionUpgrade): config.write(output) return [filename], [output.getvalue()] - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py index 278b660ec1..fe79333544 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/__init__.py @@ -1,11 +1,16 @@ -# Copyright (c) 2016 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade.VersionUpgrade22to24() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -26,5 +31,5 @@ def getMetaData(): } } -def register(app): +def register(app: "Application"): return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py index 6643edb765..5c9b94cca3 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py @@ -4,6 +4,7 @@ import configparser #To parse the files we need to upgrade and write the new files. import io #To serialise configparser output to a string. import os +from typing import Dict, List, Set, Tuple from urllib.parse import quote_plus from UM.Resources import Resources @@ -12,19 +13,18 @@ from UM.VersionUpgrade import VersionUpgrade _removed_settings = { #Settings that were removed in 2.5. "start_layers_at_same_position", "sub_div_rad_mult" -} +} # type: Set[str] _split_settings = { #These settings should be copied to all settings it was split into. "support_interface_line_distance": {"support_roof_line_distance", "support_bottom_line_distance"} -} +} # type: Dict[str, Set[str]] ## A collection of functions that convert the configuration of the user in Cura # 2.5 to a configuration for Cura 2.6. # # All of these methods are essentially stateless. class VersionUpgrade25to26(VersionUpgrade): - - def __init__(self): + def __init__(self) -> None: super().__init__() self._current_fdm_printer_count = 2 @@ -39,7 +39,7 @@ class VersionUpgrade25to26(VersionUpgrade): # \raises ValueError The format of the version number in the file is # incorrect. # \raises KeyError The format of the file is incorrect. - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -50,7 +50,7 @@ class VersionUpgrade25to26(VersionUpgrade): # # \param serialised The serialised form of a preferences file. # \param filename The name of the file to upgrade. - def upgradePreferences(self, serialised, filename): + def upgradePreferences(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) @@ -86,7 +86,7 @@ class VersionUpgrade25to26(VersionUpgrade): # # \param serialised The serialised form of a quality profile. # \param filename The name of the file to upgrade. - def upgradeInstanceContainer(self, serialised, filename): + def upgradeInstanceContainer(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) @@ -116,7 +116,7 @@ class VersionUpgrade25to26(VersionUpgrade): # # \param serialised The serialised form of a quality profile. # \param filename The name of the file to upgrade. - def upgradeMachineStack(self, serialised, filename): + def upgradeMachineStack(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) @@ -149,7 +149,7 @@ class VersionUpgrade25to26(VersionUpgrade): return [filename], [output.getvalue()] ## Acquires the next unique extruder stack index number for the Custom FDM Printer. - def _acquireNextUniqueCustomFdmPrinterExtruderStackIdIndex(self): + def _acquireNextUniqueCustomFdmPrinterExtruderStackIdIndex(self) -> int: extruder_stack_dir = os.path.join(Resources.getDataStoragePath(), "extruders") file_name_list = os.listdir(extruder_stack_dir) file_name_list = [os.path.basename(file_name) for file_name in file_name_list] @@ -169,7 +169,7 @@ class VersionUpgrade25to26(VersionUpgrade): return self._current_fdm_printer_count - def _checkCustomFdmPrinterHasExtruderStack(self, machine_id): + def _checkCustomFdmPrinterHasExtruderStack(self, machine_id: str) -> bool: # go through all extruders and make sure that this custom FDM printer has extruder stacks. extruder_stack_dir = os.path.join(Resources.getDataStoragePath(), "extruders") has_extruders = False @@ -197,7 +197,7 @@ class VersionUpgrade25to26(VersionUpgrade): return has_extruders - def _createCustomFdmPrinterExtruderStack(self, machine_id: str, position: int, quality_id: str, material_id: str): + def _createCustomFdmPrinterExtruderStack(self, machine_id: str, position: int, quality_id: str, material_id: str) -> None: stack_id = "custom_extruder_%s" % (position + 1) if self._current_fdm_printer_count > 1: stack_id += " #%s" % self._current_fdm_printer_count @@ -256,7 +256,7 @@ class VersionUpgrade25to26(VersionUpgrade): ## Creates a definition changes container which doesn't contain anything for the Custom FDM Printers. # The container ID will be automatically generated according to the given stack name. - def _getCustomFdmPrinterDefinitionChanges(self, stack_id: str): + def _getCustomFdmPrinterDefinitionChanges(self, stack_id: str) -> configparser.ConfigParser: # In 2.5, there is no definition_changes container for the Custom FDM printer, so it should be safe to use the # default name unless some one names the printer as something like "Custom FDM Printer_settings". definition_changes_id = stack_id + "_settings" @@ -277,7 +277,7 @@ class VersionUpgrade25to26(VersionUpgrade): ## Creates a user settings container which doesn't contain anything for the Custom FDM Printers. # The container ID will be automatically generated according to the given stack name. - def _getCustomFdmPrinterUserSettings(self, stack_id: str): + def _getCustomFdmPrinterUserSettings(self, stack_id: str) -> configparser.ConfigParser: # For the extruder stacks created in the upgrade, also create user_settings containers so the user changes # will be saved. user_settings_id = stack_id + "_user" diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py index 67aa73233f..c74b3218b6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/__init__.py @@ -1,11 +1,16 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade25to26 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade25to26.VersionUpgrade25to26() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -41,5 +46,5 @@ def getMetaData(): } } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py index dfa436e5bd..96307ca43c 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py @@ -3,6 +3,7 @@ import configparser #To parse the files we need to upgrade and write the new files. import io #To serialise configparser output to a string. +from typing import Dict, List, Tuple from UM.VersionUpgrade import VersionUpgrade @@ -61,7 +62,7 @@ _renamed_quality_profiles = { "um3_bb0.8_TPU_Not_Supported_Quality": "um3_bb0.8_TPU_Fast_print", "um3_bb0.8_TPU_Not_Supported_Superdraft_Quality": "um3_bb0.8_TPU_Superdraft_Print", -} +} # type: Dict[str, str] ## A collection of functions that convert the configuration of the user in Cura # 2.6 to a configuration for Cura 2.7. @@ -79,7 +80,7 @@ class VersionUpgrade26to27(VersionUpgrade): # \raises ValueError The format of the version number in the file is # incorrect. # \raises KeyError The format of the file is incorrect. - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -90,7 +91,7 @@ class VersionUpgrade26to27(VersionUpgrade): # # \param serialised The serialised form of a preferences file. # \param filename The name of the file to upgrade. - def upgradePreferences(self, serialised, filename): + def upgradePreferences(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation=None) parser.read_string(serialised) @@ -117,8 +118,8 @@ class VersionUpgrade26to27(VersionUpgrade): # # \param serialised The serialised form of a container file. # \param filename The name of the file to upgrade. - def upgradeOtherContainer(self, serialised, filename): - parser = configparser.ConfigParser(interpolation=None) + def upgradeOtherContainer(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: + parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) # Update version numbers @@ -139,7 +140,7 @@ class VersionUpgrade26to27(VersionUpgrade): # # \param serialised The serialised form of a container stack. # \param filename The name of the file to upgrade. - def upgradeStack(self, serialised, filename): + def upgradeStack(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py b/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py index 0e26ca8bbf..1952c9ceff 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/__init__.py @@ -1,11 +1,16 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade26to27 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade26to27.VersionUpgrade26to27() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -59,5 +64,5 @@ def getMetaData(): } } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py index 5a141f1558..c9e9e41f7e 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py @@ -1,9 +1,10 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser #To parse preference files. import io #To serialise the preference files afterwards. import os +from typing import Dict, List, Tuple import urllib.parse import re @@ -11,7 +12,7 @@ from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. _renamed_themes = { "cura": "cura-light" -} +} # type: Dict[str, str] _renamed_i18n = { "7s": "en_7S", "de": "de_DE", @@ -28,7 +29,7 @@ _renamed_i18n = { "ptbr": "pt_BR", "ru": "ru_RU", "tr": "tr_TR" -} +} # type: Dict[str, str] class VersionUpgrade27to30(VersionUpgrade): @@ -43,7 +44,7 @@ class VersionUpgrade27to30(VersionUpgrade): # \raises ValueError The format of the version number in the file is # incorrect. # \raises KeyError The format of the file is incorrect. - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -54,8 +55,8 @@ class VersionUpgrade27to30(VersionUpgrade): # # \param serialised The serialised form of a preferences file. # \param filename The name of the file to upgrade. - def upgradePreferences(self, serialised, filename): - parser = configparser.ConfigParser(interpolation=None) + def upgradePreferences(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: + parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) # Update version numbers @@ -100,8 +101,8 @@ class VersionUpgrade27to30(VersionUpgrade): # # \param serialised The serialised form of the container file. # \param filename The name of the file to upgrade. - def upgradeQualityChangesContainer(self, serialised, filename): - parser = configparser.ConfigParser(interpolation=None) + def upgradeQualityChangesContainer(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: + parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) # Update the skin pre-shrink settings: @@ -156,7 +157,7 @@ class VersionUpgrade27to30(VersionUpgrade): # # \param serialised The serialised form of the container file. # \param filename The name of the file to upgrade. - def upgradeOtherContainer(self, serialised, filename): + def upgradeOtherContainer(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation=None) parser.read_string(serialised) @@ -185,7 +186,7 @@ class VersionUpgrade27to30(VersionUpgrade): # # \param serialised The serialised form of a container stack. # \param filename The name of the file to upgrade. - def upgradeStack(self, serialised, filename): + def upgradeStack(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation=None) parser.read_string(serialised) diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/__init__.py b/plugins/VersionUpgrade/VersionUpgrade27to30/__init__.py index 4da7257b1c..bddc71a1e0 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/__init__.py @@ -1,11 +1,16 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade27to30 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade27to30.VersionUpgrade27to30() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -51,5 +56,5 @@ def getMetaData(): } } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py index 399eb18b5d..74467d67c6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py @@ -1,14 +1,15 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import configparser #To parse preference files. import io #To serialise the preference files afterwards. +from typing import Dict, List, Set, Tuple from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. # a list of all legacy "Not Supported" quality profiles -_OLD_NOT_SUPPORTED_PROFILES = [ +_OLD_NOT_SUPPORTED_PROFILES = { "um2p_pp_0.25_normal", "um2p_tpu_0.8_normal", "um3_bb0.4_ABS_Fast_Print", @@ -42,7 +43,7 @@ _OLD_NOT_SUPPORTED_PROFILES = [ "um3_bb0.8_PP_Superdraft_Print", "um3_bb0.8_TPU_Fast_print", "um3_bb0.8_TPU_Superdraft_Print", -] +} # type: Set[str] # Some containers have their specific empty containers, those need to be set correctly. @@ -51,13 +52,13 @@ _EMPTY_CONTAINER_DICT = { "2": "empty_quality", "3": "empty_material", "4": "empty_variant", -} +} # type: Dict[str, str] # Renamed definition files _RENAMED_DEFINITION_DICT = { "jellybox": "imade3d_jellybox", -} +} # type: Dict[str, str] class VersionUpgrade30to31(VersionUpgrade): @@ -72,7 +73,7 @@ class VersionUpgrade30to31(VersionUpgrade): # \raises ValueError The format of the version number in the file is # incorrect. # \raises KeyError The format of the file is incorrect. - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -83,7 +84,7 @@ class VersionUpgrade30to31(VersionUpgrade): # # \param serialised The serialised form of a preferences file. # \param filename The name of the file to upgrade. - def upgradePreferences(self, serialised, filename): + def upgradePreferences(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) @@ -104,7 +105,7 @@ class VersionUpgrade30to31(VersionUpgrade): # # \param serialised The serialised form of the container file. # \param filename The name of the file to upgrade. - def upgradeInstanceContainer(self, serialised, filename): + def upgradeInstanceContainer(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) @@ -129,7 +130,7 @@ class VersionUpgrade30to31(VersionUpgrade): # # \param serialised The serialised form of a container stack. # \param filename The name of the file to upgrade. - def upgradeStack(self, serialised, filename): + def upgradeStack(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py b/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py index 7b2c213a31..c5cc851d6a 100644 --- a/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py @@ -1,11 +1,16 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade30to31 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade30to31.VersionUpgrade30to31() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -55,5 +60,5 @@ def getMetaData(): } } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py index 18851b82c7..5be58eab3b 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py @@ -3,6 +3,7 @@ import configparser #To parse preference files. import io #To serialise the preference files afterwards. +from typing import Dict, List, Tuple from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. @@ -51,22 +52,22 @@ _EXTRUDER_TO_POSITION = { "ultimaker_original_dual_2nd": 1, "vertex_k8400_dual_1st": 0, "vertex_k8400_dual_2nd": 1 -} +} # type: Dict[str, int] _RENAMED_QUALITY_PROFILES = { "low": "fast", "um2_low": "um2_fast" -} +} # type: Dict[str, str] _RENAMED_QUALITY_TYPES = { "low": "fast" -} +} # type: Dict[str, str] ## Upgrades configurations from the state they were in at version 3.2 to the # state they should be in at version 3.3. class VersionUpgrade32to33(VersionUpgrade): - temporary_group_name_counter = 1 + ## Gets the version number from a CFG file in Uranium's 3.2 format. # # Since the format may change, this is implemented for the 3.2 format only @@ -78,7 +79,7 @@ class VersionUpgrade32to33(VersionUpgrade): # \raises ValueError The format of the version number in the file is # incorrect. # \raises KeyError The format of the file is incorrect. - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -89,7 +90,7 @@ class VersionUpgrade32to33(VersionUpgrade): # # \param serialised The serialised form of a preferences file. # \param filename The name of the file to upgrade. - def upgradePreferences(self, serialised, filename): + def upgradePreferences(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) @@ -117,7 +118,7 @@ class VersionUpgrade32to33(VersionUpgrade): # # \param serialised The serialised form of a container stack. # \param filename The name of the file to upgrade. - def upgradeStack(self, serialized, filename): + def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) @@ -141,7 +142,7 @@ class VersionUpgrade32to33(VersionUpgrade): ## Upgrades non-quality-changes instance containers to have the new version # number. - def upgradeInstanceContainer(self, serialized, filename): + def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) @@ -153,7 +154,7 @@ class VersionUpgrade32to33(VersionUpgrade): return [filename], [result.getvalue()] ## Upgrades a quality changes container to the new format. - def upgradeQualityChanges(self, serialized, filename): + def upgradeQualityChanges(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) @@ -182,7 +183,7 @@ class VersionUpgrade32to33(VersionUpgrade): return [filename], [result.getvalue()] ## Upgrades a variant container to the new format. - def upgradeVariants(self, serialized, filename): + def upgradeVariants(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py index 5073be772d..006b21bc48 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py @@ -1,11 +1,16 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade32to33 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade32to33.VersionUpgrade32to33() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -51,5 +56,5 @@ def getMetaData(): } } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } \ No newline at end of file diff --git a/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py b/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py index e2241fd195..5077dda8ad 100644 --- a/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py +++ b/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py @@ -3,17 +3,17 @@ import configparser #To parse preference files. import io #To serialise the preference files afterwards. +from typing import Dict, List, Tuple from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. _renamed_settings = { "infill_hollow": "infill_support_enabled" -} +} # type: Dict[str, str] ## Upgrades configurations from the state they were in at version 3.3 to the # state they should be in at version 3.4. class VersionUpgrade33to34(VersionUpgrade): - ## Gets the version number from a CFG file in Uranium's 3.3 format. # # Since the format may change, this is implemented for the 3.3 format only @@ -25,7 +25,7 @@ class VersionUpgrade33to34(VersionUpgrade): # \raises ValueError The format of the version number in the file is # incorrect. # \raises KeyError The format of the file is incorrect. - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -34,7 +34,7 @@ class VersionUpgrade33to34(VersionUpgrade): ## Upgrades instance containers to have the new version # number. - def upgradeInstanceContainer(self, serialized, filename): + def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) diff --git a/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py b/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py index 1130c1e9e2..5fd757f843 100644 --- a/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py @@ -1,11 +1,16 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade33to34 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade33to34.VersionUpgrade33to34() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -35,5 +40,5 @@ def getMetaData(): } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py b/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py index 9d59133036..88cc3ca420 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py @@ -3,13 +3,14 @@ import configparser import io +from typing import Dict, List, Set, Tuple from UM.VersionUpgrade import VersionUpgrade -deleted_settings = {"prime_tower_wall_thickness", "dual_pre_wipe", "prime_tower_purge_volume"} +deleted_settings = {"prime_tower_wall_thickness", "dual_pre_wipe", "prime_tower_purge_volume"} # type: Set[str] -changed_settings = {'retraction_combing': 'noskin'} -updated_settings = {'retraction_combing': 'infill'} +changed_settings = {"retraction_combing": "noskin"} # type: Dict[str, str] +updated_settings = {"retraction_combing": "infill"} # type: Dict[str, str] _RENAMED_MATERIAL_PROFILES = { "dsm_arnitel2045_175_cartesio_0.25_mm": "dsm_arnitel2045_175_cartesio_0.25mm_thermoplastic_extruder", @@ -57,12 +58,11 @@ _RENAMED_MATERIAL_PROFILES = { "ultimaker_pva_cartesio_0.25_mm": "ultimaker_pva_cartesio_0.25mm_thermoplastic_extruder", "ultimaker_pva_cartesio_0.4_mm": "ultimaker_pva_cartesio_0.4mm_thermoplastic_extruder", "ultimaker_pva_cartesio_0.8_mm": "ultimaker_pva_cartesio_0.8mm_thermoplastic_extruder" -} +} # type: Dict[str, str] ## Upgrades configurations from the state they were in at version 3.4 to the # state they should be in at version 3.5. class VersionUpgrade34to35(VersionUpgrade): - ## Gets the version number from a CFG file in Uranium's 3.3 format. # # Since the format may change, this is implemented for the 3.3 format only @@ -74,7 +74,7 @@ class VersionUpgrade34to35(VersionUpgrade): # \raises ValueError The format of the version number in the file is # incorrect. # \raises KeyError The format of the file is incorrect. - def getCfgVersion(self, serialised): + def getCfgVersion(self, serialised: str) -> int: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. @@ -82,7 +82,7 @@ class VersionUpgrade34to35(VersionUpgrade): return format_version * 1000000 + setting_version ## Upgrades Preferences to have the new version number. - def upgradePreferences(self, serialized, filename): + def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) @@ -103,7 +103,7 @@ class VersionUpgrade34to35(VersionUpgrade): return [filename], [result.getvalue()] ## Upgrades stacks to have the new version number. - def upgradeStack(self, serialized, filename): + def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) @@ -121,7 +121,7 @@ class VersionUpgrade34to35(VersionUpgrade): ## Upgrades instance containers to have the new version # number. - def upgradeInstanceContainer(self, serialized, filename): + def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) @@ -147,7 +147,7 @@ class VersionUpgrade34to35(VersionUpgrade): parser.write(result) return [filename], [result.getvalue()] - def _resetConcentric3DInfillPattern(self, parser): + def _resetConcentric3DInfillPattern(self, parser: configparser.ConfigParser) -> None: if "values" not in parser: return @@ -161,5 +161,4 @@ class VersionUpgrade34to35(VersionUpgrade): if key not in parser["values"]: continue if parser["values"][key] == "concentric_3d": - del parser["values"][key] - + del parser["values"][key] \ No newline at end of file diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py b/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py index 2ea74f6194..332bc827b9 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py @@ -1,11 +1,16 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Any, Dict, TYPE_CHECKING + from . import VersionUpgrade34to35 +if TYPE_CHECKING: + from UM.Application import Application + upgrade = VersionUpgrade34to35.VersionUpgrade34to35() -def getMetaData(): +def getMetaData() -> Dict[str, Any]: return { "version_upgrade": { # From To Upgrade function @@ -52,5 +57,5 @@ def getMetaData(): } -def register(app): +def register(app: "Application") -> Dict[str, Any]: return { "version_upgrade": upgrade } From b67d8d410343490b96357def995adb3a8f0d198f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 14 Nov 2018 13:46:13 +0100 Subject: [PATCH 0269/1039] Fix type of fallback variable These have to be strings because the configparser getter can only return strings. Contributes to issue CURA-5936. --- .../VersionUpgrade21to22/VersionUpgrade21to22.py | 2 +- plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py | 2 +- .../VersionUpgrade25to26/VersionUpgrade25to26.py | 2 +- .../VersionUpgrade26to27/VersionUpgrade26to27.py | 4 ++-- .../VersionUpgrade27to30/VersionUpgrade27to30.py | 4 ++-- .../VersionUpgrade30to31/VersionUpgrade30to31.py | 2 +- .../VersionUpgrade32to33/VersionUpgrade32to33.py | 2 +- .../VersionUpgrade33to34/VersionUpgrade33to34.py | 2 +- .../VersionUpgrade34to35/VersionUpgrade34to35.py | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 89c847e606..536385b19d 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -251,7 +251,7 @@ class VersionUpgrade21to22(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Gets the fallback quality to use for a specific machine-variant-material diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py index 48af365877..dac73683bb 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py @@ -156,5 +156,5 @@ class VersionUpgrade22to24(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py index 5c9b94cca3..6dbcfebc46 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/VersionUpgrade25to26.py @@ -43,7 +43,7 @@ class VersionUpgrade25to26(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Upgrades the preferences file from version 2.5 to 2.6. diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py index 96307ca43c..39e3dea4ed 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/VersionUpgrade26to27.py @@ -84,7 +84,7 @@ class VersionUpgrade26to27(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Upgrades a preferences file from version 2.6 to 2.7. @@ -92,7 +92,7 @@ class VersionUpgrade26to27(VersionUpgrade): # \param serialised The serialised form of a preferences file. # \param filename The name of the file to upgrade. def upgradePreferences(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: - parser = configparser.ConfigParser(interpolation=None) + parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) # Update version numbers diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py index c9e9e41f7e..b594c3c6c4 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py @@ -48,7 +48,7 @@ class VersionUpgrade27to30(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Upgrades a preferences file from version 2.7 to 3.0. @@ -158,7 +158,7 @@ class VersionUpgrade27to30(VersionUpgrade): # \param serialised The serialised form of the container file. # \param filename The name of the file to upgrade. def upgradeOtherContainer(self, serialised: str, filename: str) -> Tuple[List[str], List[str]]: - parser = configparser.ConfigParser(interpolation=None) + parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) # Update the skin pre-shrink settings: diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py index 74467d67c6..f0b2e939b9 100644 --- a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py @@ -77,7 +77,7 @@ class VersionUpgrade30to31(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Upgrades a preferences file from version 3.0 to 3.1. diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py index 5be58eab3b..83cb15c864 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py @@ -83,7 +83,7 @@ class VersionUpgrade32to33(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Upgrades a preferences file from version 3.2 to 3.3. diff --git a/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py b/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py index 5077dda8ad..704ede02d6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py +++ b/plugins/VersionUpgrade/VersionUpgrade33to34/VersionUpgrade33to34.py @@ -29,7 +29,7 @@ class VersionUpgrade33to34(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Upgrades instance containers to have the new version diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py b/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py index 88cc3ca420..d930b6e217 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py @@ -78,7 +78,7 @@ class VersionUpgrade34to35(VersionUpgrade): parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialised) format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. - setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) return format_version * 1000000 + setting_version ## Upgrades Preferences to have the new version number. From b589920f53a7192bd620e55e7d4ec87d22bbde7d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 13:55:39 +0100 Subject: [PATCH 0270/1039] Move a few hardcoded sizes to the theme CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 9 ++++----- resources/themes/cura-light/theme.json | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 78f9ced1e7..9507d786b2 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -53,9 +53,8 @@ Item { id: machineSelection z: openFileButtonBackground.z - 1 - - Layout.minimumWidth: 240 - Layout.maximumWidth: 240 + Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width + Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width Layout.fillWidth: true Layout.fillHeight: true } @@ -90,8 +89,8 @@ Item onShowTooltip: prepareMenu.showTooltip(item, location, text) onHideTooltip: prepareMenu.hideTooltip() - Layout.minimumWidth: 460 - Layout.maximumWidth: 460 + Layout.minimumWidth: UM.Theme.getSize("print_setup_widget").width + Layout.maximumWidth: UM.Theme.getSize("print_setup_widget").width Layout.fillWidth: true Layout.fillHeight: true } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index a33ff87042..a36940641e 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -374,7 +374,7 @@ "account_button": [12, 3], - "print_setup_widget": [35.0, 42.0], + "print_setup_widget": [30.0, 42.0], "print_setup_mode_toggle": [0.0, 2.0], "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], @@ -386,7 +386,7 @@ "action_panel_information_widget": [20.0, 0.0], "action_panel_button": [15.0, 3.0], - "machine_selector_widget": [28.0, 4.5], + "machine_selector_widget": [16.0, 4.5], "views_selector": [0.0, 4.0], From 8ec7d6dba3b79dc88c9496185c6e49000740018a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 14 Nov 2018 13:56:46 +0100 Subject: [PATCH 0271/1039] Fix type issues in old version upgrade plug-ins The one actual change was this: To give a KeyError when stuff can't be found in a dictionary, rather than returning None there and then getting a TypeError later. Contributes to issue CURA-5936. --- .../VersionUpgrade21to22/MachineInstance.py | 10 +++++----- .../VersionUpgrade21to22/Preferences.py | 8 ++++---- .../VersionUpgrade22to24/VersionUpgrade.py | 12 ++++++------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index a947114595..478f955e49 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -4,7 +4,7 @@ import configparser #To read config files. import io #To write config files to strings as if they were files. import os.path #To get the path to write new user profiles to. -from typing import List, Optional, Tuple +from typing import Dict, List, Optional, Set, Tuple import urllib #To serialise the user container file name properly. import UM.VersionUpgrade #To indicate that a file is of incorrect format. @@ -33,7 +33,7 @@ class MachineInstance: # \param serialised A string with the contents of a machine instance file, # without extension. # \param filename The supposed file name of this machine instance. - def __init__(self, serialised: str, filename: str) -> str: + def __init__(self, serialised: str, filename: str) -> None: self._filename = filename config = configparser.ConfigParser(interpolation = None) @@ -54,11 +54,11 @@ class MachineInstance: self._type_name = config.get("general", "type") self._variant_name = config.get("general", "variant", fallback = "empty_variant") self._name = config.get("general", "name", fallback = "") - self._key = config.get("general", "key", fallback = None) + self._key = config.get("general", "key", fallback = "") self._active_profile_name = config.get("general", "active_profile", fallback = "empty_quality") self._active_material_name = config.get("general", "material", fallback = "empty_material") - self._machine_setting_overrides = {} + self._machine_setting_overrides = {} # type: Dict[str, str] for key, value in config["machine_settings"].items(): self._machine_setting_overrides[key] = value @@ -109,7 +109,7 @@ class MachineInstance: version_upgrade_manager = UM.VersionUpgradeManager.VersionUpgradeManager.getInstance() user_version_to_paths_dict = version_upgrade_manager.getStoragePaths("user") - paths_set = set() + paths_set = set() # type: Set[str] for paths in user_version_to_paths_dict.values(): paths_set |= paths diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py index 51e4b617e8..953837b863 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/Preferences.py @@ -59,11 +59,11 @@ class Preferences: #Translate the setting names in the visible settings. if self._config.has_section("machines") and self._config.has_option("machines", "setting_visibility"): visible_settings = self._config.get("machines", "setting_visibility") - visible_settings = visible_settings.split(",") + visible_settings_list = visible_settings.split(",") import VersionUpgrade21to22 #Import here to prevent a circular dependency. - visible_settings = [VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateSettingName(setting_name) - for setting_name in visible_settings] - visible_settings = ",".join(visible_settings) + visible_settings_list = [VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateSettingName(setting_name) + for setting_name in visible_settings_list] + visible_settings = ",".join(visible_settings_list) self._config.set("machines", "setting_visibility", value = visible_settings) #Translate the active_instance key. diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py index dac73683bb..ded892d137 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/VersionUpgrade.py @@ -22,11 +22,11 @@ class VersionUpgrade22to24(VersionUpgrade): config.read_string(serialised) # Read the input string as config file. if config.get("metadata", "type") == "definition_changes": # This is not a container stack, don't upgrade it here - return + return None config.set("general", "version", "3") - container_list = [] + container_list = [] # type: List[str] if config.has_section("containers"): for index, container_id in config.items("containers"): container_list.append(container_id) @@ -37,14 +37,14 @@ class VersionUpgrade22to24(VersionUpgrade): user_variants = self.__getUserVariants() name_path_dict = {} for variant in user_variants: - name_path_dict[variant.get("name")] = variant.get("path") + name_path_dict[variant["name"]] = variant["path"] user_variant_names = set(container_list).intersection(name_path_dict.keys()) if len(user_variant_names): # One of the user defined variants appears in the list of containers in the stack. for variant_name in user_variant_names: # really there should just be one variant to convert. - config_name = self.__convertVariant(name_path_dict.get(variant_name)) + config_name = self.__convertVariant(name_path_dict[variant_name]) # Change the name of variant and insert empty_variant into the stack. new_container_list = [] @@ -64,8 +64,8 @@ class VersionUpgrade22to24(VersionUpgrade): config.remove_option("general", "containers") - for index in range(len(container_list)): - config.set("containers", str(index), container_list[index]) + for idx in range(len(container_list)): + config.set("containers", str(idx), container_list[idx]) output = io.StringIO() config.write(output) From 7ca3490097027f9cb4342a52007ee558897d8c3d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 14:00:19 +0100 Subject: [PATCH 0272/1039] Make the collapse arrows consistent with the rest of the UI CURA-5785 --- resources/qml/ExpandableComponent.qml | 2 +- resources/qml/MachineSelector.qml | 2 +- .../qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index c525d163fe..bfafa9b29e 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -109,7 +109,7 @@ Item y: headerItemLoader.height + 2 * background.padding // Make the popup right aligned with the rest. The 3x padding is due to left, right and padding between - //the button & text. + // the button & text. x: -width + collapseButton.width + headerItemLoader.width + 3 * background.padding padding: UM.Theme.getSize("default_margin").width closePolicy: Popup.CloseOnPressOutsideParent diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 87a3154338..6a33cf3a0e 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -17,7 +17,7 @@ Cura.ExpandableComponent property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" - iconSource: expanded ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") + iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") UM.I18nCatalog { diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 5565884bd8..b2213918dd 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -27,7 +27,7 @@ Cura.ExpandableComponent name: "cura" } - iconSource: expanded ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") + iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") headerItem: Item { From 429a49aa2eddc2c42c0f592181f6f77e880954c7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 14:06:55 +0100 Subject: [PATCH 0273/1039] Make the default size of the expandableComponent icon depend on the height of the element This is a way more sensible default. CURA-5785 --- resources/qml/ExpandableComponent.qml | 7 ++++--- .../Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 1 - 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index bfafa9b29e..c098443cd7 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -9,6 +9,7 @@ import UM 1.2 as UM // * The Icon; An icon that is displayed on the right of the drawer. Item { + id: base // The headerItem holds the QML item that is always displayed. property alias headerItem: headerItemLoader.sourceComponent @@ -33,7 +34,7 @@ Item property alias iconColor: collapseButton.color // The icon size (it's always drawn as a square) - property alias iconSize: collapseButton.width + property alias iconSize: collapseButton.height // Is the "drawer" open? readonly property alias expanded: popup.visible @@ -89,8 +90,8 @@ Item sourceSize.width: width sourceSize.height: height visible: source != "" - width: UM.Theme.getSize("section_icon").width - height: width + width: height + height: 0.2 * base.height color: "black" } diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index b2213918dd..e77f949661 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -28,7 +28,6 @@ Cura.ExpandableComponent } iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") - headerItem: Item { // Horizontal list that shows the extruders From 66c3cc9204fdc309c993ec4b40983cdd150dc00a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 14 Nov 2018 14:20:42 +0100 Subject: [PATCH 0274/1039] Prevent an error during start up --- cura/BuildVolume.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 547c3dae71..1589f16afc 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -489,7 +489,9 @@ class BuildVolume(SceneNode): def _updateRaftThickness(self): old_raft_thickness = self._raft_thickness - self._adhesion_type = self._global_container_stack.getProperty("adhesion_type", "value") + if self._global_container_stack.extruders: + # This might be called before the extruder stacks have initialised, in which case getting the adhesion_type fails + self._adhesion_type = self._global_container_stack.getProperty("adhesion_type", "value") self._raft_thickness = 0.0 if self._adhesion_type == "raft": self._raft_thickness = ( From b671a3153a0f7f7ab9745f73c300d34c6bf7a06b Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 14 Nov 2018 14:21:39 +0100 Subject: [PATCH 0275/1039] Catch an error getting an extruder value before extruders are added to the global stack --- cura/Settings/CuraFormulaFunctions.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cura/Settings/CuraFormulaFunctions.py b/cura/Settings/CuraFormulaFunctions.py index 1db01857f8..9ef80bd3d4 100644 --- a/cura/Settings/CuraFormulaFunctions.py +++ b/cura/Settings/CuraFormulaFunctions.py @@ -5,6 +5,7 @@ from typing import Any, List, Optional, TYPE_CHECKING from UM.Settings.PropertyEvaluationContext import PropertyEvaluationContext from UM.Settings.SettingFunction import SettingFunction +from UM.Logger import Logger if TYPE_CHECKING: from cura.CuraApplication import CuraApplication @@ -38,7 +39,11 @@ class CuraFormulaFunctions: extruder_position = int(machine_manager.defaultExtruderPosition) global_stack = machine_manager.activeMachine - extruder_stack = global_stack.extruders[str(extruder_position)] + try: + extruder_stack = global_stack.extruders[str(extruder_position)] + except KeyError: + Logger.log("w", "Value for %s of extruder %s was requested, but that extruder is not available" % (property_key, extruder_position)) + return None value = extruder_stack.getRawProperty(property_key, "value", context = context) if isinstance(value, SettingFunction): From c27f51d944b3dc84946f5f17a884723afbfd1a8f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 16:44:36 +0100 Subject: [PATCH 0276/1039] Make the view selector also use the expandableComponent CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 91 +++++++++++++++------------- resources/qml/MachineSelector.qml | 1 + 2 files changed, 51 insertions(+), 41 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 5b0ae4e9c5..bb8b992471 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -3,7 +3,7 @@ import QtQuick 2.7 -import QtQuick.Controls 1.4 +import QtQuick.Controls 2.4 import UM 1.3 as UM import Cura 1.1 as Cura @@ -43,53 +43,62 @@ Item //spacing: UM.Theme.getSize("default_margin").width height: parent.height - Item + Cura.ExpandableComponent { - width: viewModeButton.width + 2 * UM.Theme.getSize("default_margin").width + id: viewSelector + iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") height: parent.height - ComboBox + + property var viewModel: UM.ViewModel { } + + property var activeView: { - // This item contains the views selector, a combobox that is dynamically created from - // the list of available Views (packages that create different visualizations of the - // scene). - id: viewModeButton - - style: UM.Theme.styles.combobox - anchors.centerIn: parent - model: UM.ViewModel { } - textRole: "name" - - // update the model's active index - function updateItemActiveFlags() + for (var i = 0; i < viewModel.rowCount(); i++) { - currentIndex = getActiveIndex() - for (var i = 0; i < model.rowCount(); i++) + if(viewModel.getItem(i).active) { - model.getItem(i).active = (i == currentIndex) + return viewModel.getItem(i) + } + } + // Nothing was active, so just return the first one (the list is sorted by priority, so the most + // important one sshould be returned) + return viewModel.getItem(0) + } + + // Ensure that the controller is synced with whatever happend here. + onActiveViewChanged: UM.Controller.setActiveView(activeView.id) + + headerItem: Label + { + text: viewSelector.activeView.name + verticalAlignment: Text.AlignVCenter + height: parent.height + elide: Text.ElideRight + font: UM.Theme.getFont("default") + } + + popupItem: Column + { + id: column + width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width + + // For some reason the height of the column gets set to 0 if this is not set... + Component.onCompleted: height = implicitHeight + + Repeater + { + id: networkedPrinters + model: viewSelector.viewModel + RoundButton + { + text: name + radius: UM.Theme.getSize("default_radius").width + checkable: true + checked: active + onClicked: UM.Controller.setActiveView(id) } } - // get the index of the active model item on start - function getActiveIndex() - { - for (var i = 0; i < model.rowCount(); i++) - { - if (model.getItem(i).active) - { - return i; - } - } - return 0 - } - - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id != undefined) - { - UM.Controller.setActiveView(model.getItem(currentIndex).id) - } - } - currentIndex: getActiveIndex() } } @@ -106,7 +115,7 @@ Item // TODO: Make this panel collapsable and ensure it has a standardised background. id: viewPanel - property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) + //property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) height: parent.height width: childrenRect.width diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 6a33cf3a0e..b2a34e186e 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -31,6 +31,7 @@ Cura.ExpandableComponent verticalAlignment: Text.AlignVCenter height: parent.height elide: Text.ElideRight + font: UM.Theme.getFont("default") } popupItem: Item From 9aa5b6fe3f467d50796a80a43f95770e6bb080cf Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 16:47:53 +0100 Subject: [PATCH 0277/1039] Hide one spacer if there is no viewPanel CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index bb8b992471..e24d0b25b1 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -106,7 +106,10 @@ Item Rectangle { height: parent.height - width: UM.Theme.getSize("default_lining").width + // If there is no viewPanel, we only need a single spacer, so hide this one. + visible: viewPanel.source != "" + width: visible ? UM.Theme.getSize("default_lining").width : 0 + color: UM.Theme.getColor("lining") } From 20b7a925a0f9525ed6e0f1ff2cb7703b739def74 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 16:49:01 +0100 Subject: [PATCH 0278/1039] Remove unused code & outdated todo comment CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index e24d0b25b1..df04507ba4 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -115,14 +115,9 @@ Item Loader { - // TODO: Make this panel collapsable and ensure it has a standardised background. id: viewPanel - - //property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) - height: parent.height width: childrenRect.width - source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" } From 21d7619a4541b122bc480630dad18e42cfa85e6d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 14 Nov 2018 16:57:05 +0100 Subject: [PATCH 0279/1039] Added a hover effect to the expandableComponent CURA-5785 --- resources/qml/ExpandableComponent.qml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index c098443cd7..d885253173 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -19,7 +19,8 @@ Item // The background color of the popup property color popupBackgroundColor: "white" - property alias headerBackgroundColor: background.color + property color headerBackgroundColor: "white" + property color headerHoverColor: "white" // How much spacing is needed around the popupItem property alias popupPadding: popup.padding @@ -63,7 +64,7 @@ Item id: background property real padding: UM.Theme.getSize("default_margin").width - color: "white" + color: headerBackgroundColor anchors.fill: parent Loader { @@ -97,8 +98,12 @@ Item MouseArea { + id: mouseArea anchors.fill: parent onClicked: popup.visible ? popup.close() : popup.open() + hoverEnabled: true + onEntered: background.color = headerHoverColor + onExited: background.color = headerBackgroundColor } } From c08aa2205ca502580b4ba613cd9266601bfd5898 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 15 Nov 2018 09:37:54 +0100 Subject: [PATCH 0280/1039] Fix enabled checkbox for extruder selection CURA-5785 --- .../Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index e77f949661..6f4e58a326 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -150,8 +150,8 @@ Cura.ExpandableComponent OldControls.CheckBox { - checked: Cura.MachineManager.getExtruder(parent.model.index).isEnabled - onClicked: Cura.MachineManager.setExtruderEnabled(parent.model.index, checked) + checked: Cura.MachineManager.getExtruder(tabControl.model.index).isEnabled + onClicked: Cura.MachineManager.setExtruderEnabled(tabControl.model.index, checked) height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox } From 163f102dda027bf1337134e40d5db13450aae5e3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Nov 2018 09:38:14 +0100 Subject: [PATCH 0281/1039] Make extension menu items translatable If these extension plug-ins don't set their menu names, the plug-in name is used as the menu name. The plug-in names are not translated, so this appears as an untranslated string then. --- plugins/ChangeLogPlugin/ChangeLog.py | 3 ++- plugins/PostProcessingPlugin/PostProcessingPlugin.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.py b/plugins/ChangeLogPlugin/ChangeLog.py index 723c83a021..eeec5edf9b 100644 --- a/plugins/ChangeLogPlugin/ChangeLog.py +++ b/plugins/ChangeLogPlugin/ChangeLog.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.i18n import i18nCatalog @@ -29,6 +29,7 @@ class ChangeLog(Extension, QObject,): self._change_logs = None Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) Application.getInstance().getPreferences().addPreference("general/latest_version_changelog_shown", "2.0.0") #First version of CURA with uranium + self.setMenuName(catalog.i18nc("@item:inmenu", "Changelog")) self.addMenuItem(catalog.i18nc("@item:inmenu", "Show Changelog"), self.showChangelog) def getChangeLogs(self): diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.py b/plugins/PostProcessingPlugin/PostProcessingPlugin.py index 1a1ea92d10..11ee610bec 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.py +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.py @@ -32,7 +32,8 @@ class PostProcessingPlugin(QObject, Extension): def __init__(self, parent = None) -> None: QObject.__init__(self, parent) Extension.__init__(self) - self.addMenuItem(i18n_catalog.i18n("Modify G-Code"), self.showPopup) + self.setMenuName(i18n_catalog.i18nc("@item:inmenu", "Post Processing")) + self.addMenuItem(i18n_catalog.i18nc("@item:inmenu", "Modify G-Code"), self.showPopup) self._view = None # Loaded scripts are all scripts that can be used From f0b8c1e6117fc0ddb9815b09d88ea630ecc448ca Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 15 Nov 2018 09:45:46 +0100 Subject: [PATCH 0282/1039] Fix some minor display issues CURA-5785 --- resources/qml/PrintSetupSelector.qml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 7a7d438bc3..e576dddc07 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -111,19 +111,22 @@ Cura.ExpandableComponent popupItem: Item { - height: settingsModeSelection.height + sidebarContents.height + height: settingsModeSelection.height + sidebarContents.height + 2 * UM.Theme.getSize("default_margin").height width: UM.Theme.getSize("print_setup_widget").width ListView { // Settings mode selection toggle id: settingsModeSelection model: modesListModel - width: Math.round(parent.width * 0.55) height: UM.Theme.getSize("print_setup_mode_toggle").height visible: !hideSettings - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("thick_margin").width + anchors + { + right: parent.right + left: parent.left + margins: UM.Theme.getSize("thick_margin").width + } ButtonGroup { From eca9820fc4a91abd8bcc87562df1ed5289edcf42 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 15 Nov 2018 13:55:33 +0100 Subject: [PATCH 0283/1039] Add toggle function to expandable popup Also ensures that the machineSelector closes the popup on making a choice CURA-5785 --- resources/qml/ExpandableComponent.qml | 15 ++++++++++++++- resources/qml/MachineSelector.qml | 13 +++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index d885253173..129c7dc923 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -40,6 +40,19 @@ Item // Is the "drawer" open? readonly property alias expanded: popup.visible + function togglePopup() + { + if(popup.visible) + { + popup.close() + } + else + { + popup.open() + } + } + + onPopupItemChanged: { // Since we want the size of the popup to be set by the size of the content, @@ -100,7 +113,7 @@ Item { id: mouseArea anchors.fill: parent - onClicked: popup.visible ? popup.close() : popup.open() + onClicked: togglePopup() hoverEnabled: true onEntered: background.color = headerHoverColor onExited: background.color = headerBackgroundColor diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index b2a34e186e..b18f427980 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -77,8 +77,12 @@ Cura.ExpandableComponent width: parent.width checkable: true - onClicked: Cura.MachineManager.setActiveMachine(model.id) radius: UM.Theme.getSize("default_radius").width + onClicked: + { + togglePopup() + Cura.MachineManager.setActiveMachine(model.id) + } Connections { @@ -114,8 +118,13 @@ Cura.ExpandableComponent width: parent.width checked: Cura.MachineManager.activeMachineId == model.id checkable: true - onClicked: Cura.MachineManager.setActiveMachine(model.id) + radius: UM.Theme.getSize("default_radius").width + onClicked: + { + togglePopup() + Cura.MachineManager.setActiveMachine(model.id) + } } } From 3629e3b6046a0646c951c5d914f7797f8e968165 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 15 Nov 2018 14:04:52 +0100 Subject: [PATCH 0284/1039] Added highlight to ExpandableComponent CURA-5785 --- resources/qml/ExpandableComponent.qml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 129c7dc923..e110ed94be 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -40,6 +40,8 @@ Item // Is the "drawer" open? readonly property alias expanded: popup.visible + property alias expandedHighlightColor: expandedHightlight.color + function togglePopup() { if(popup.visible) @@ -52,7 +54,6 @@ Item } } - onPopupItemChanged: { // Since we want the size of the popup to be set by the size of the content, @@ -79,6 +80,7 @@ Item color: headerBackgroundColor anchors.fill: parent + Loader { id: headerItemLoader @@ -92,6 +94,17 @@ Item } } + // A highlight that is shown when the popup is expanded + Rectangle + { + id: expandedHightlight + width: parent.width + height: UM.Theme.getSize("thick_lining").height + color: UM.Theme.getColor("primary") + visible: expanded + anchors.bottom: parent.bottom + } + UM.RecolorImage { id: collapseButton From 6dd6f5ecc7ec6be44cd293b27925ad66771d18fa Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 15 Nov 2018 14:11:46 +0100 Subject: [PATCH 0285/1039] Made the hardcoded values of ExpandableComponent themable CURA-5785 --- resources/qml/ExpandableComponent.qml | 6 +++--- resources/themes/cura-light/theme.json | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index e110ed94be..9464a8f0ac 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -17,10 +17,10 @@ Item property var popupItem // The background color of the popup - property color popupBackgroundColor: "white" + property color popupBackgroundColor: UM.Theme.getColor("action_button") - property color headerBackgroundColor: "white" - property color headerHoverColor: "white" + property color headerBackgroundColor: UM.Theme.getColor("action_button") + property color headerHoverColor: UM.Theme.getColor("action_button_hovered") // How much spacing is needed around the popupItem property alias popupPadding: popup.padding diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index a36940641e..d28611529b 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -75,6 +75,7 @@ "lining": [192, 193, 194, 255], "viewport_overlay": [0, 0, 0, 192], + "primary": [50, 130, 255, 255], "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], @@ -157,7 +158,7 @@ "action_button": [255, 255, 255, 255], "action_button_text": [0, 0, 0, 255], "action_button_border": [127, 127, 127, 255], - "action_button_hovered": [255, 255, 255, 255], + "action_button_hovered": [232, 242, 252, 255], "action_button_hovered_text": [31, 36, 39, 255], "action_button_hovered_border": [50, 130, 255, 255], "action_button_active": [255, 255, 255, 255], From 78e64944307168a886a1c0ab01a4b39e4d3144c4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Nov 2018 15:13:36 +0100 Subject: [PATCH 0286/1039] Read SDK version from new semver field The sdk_version field should stay the ordinary plain number (the major version number of the semver field) so that older Cura versions don't break. Newly built packages will get built with both sdk_version_semver and the normal sdk_version, so that the packages can be read with any Cura version from 3.6 onwards. Contributes to issue CURA-5940. --- plugins/Toolbox/src/Toolbox.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 4f3722d7ba..e491a06770 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -511,7 +511,8 @@ class Toolbox(QObject, Extension): # version, we also need to check if the current one has a lower SDK version. If so, this package should also # be upgradable. elif remote_version == local_version: - can_upgrade = local_package.get("sdk_version", 0) < remote_package.get("sdk_version", 0) + # First read sdk_version_semver. If that doesn't exist, read just sdk_version (old version system). + can_upgrade = local_package.get("sdk_version_semver", local_package.get("sdk_version", 0)) < remote_package.get("sdk_version_semver", remote_package.get("sdk_version", 0)) return can_upgrade From e9216936d741acf435f260b1bd5b10baffddb594 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Nov 2018 15:20:21 +0100 Subject: [PATCH 0287/1039] Compare SDK version as Version instances This allows it to compare versions that are remote as integer and local as string, or vice-versa. Much more robust. Contributes to issue CURA-5940. --- plugins/Toolbox/src/Toolbox.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index e491a06770..562a964f01 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -512,7 +512,9 @@ class Toolbox(QObject, Extension): # be upgradable. elif remote_version == local_version: # First read sdk_version_semver. If that doesn't exist, read just sdk_version (old version system). - can_upgrade = local_package.get("sdk_version_semver", local_package.get("sdk_version", 0)) < remote_package.get("sdk_version_semver", remote_package.get("sdk_version", 0)) + remote_sdk_version = Version(remote_package.get("sdk_version_semver", remote_package.get("sdk_version", 0))) + local_sdk_version = Version(local_package.get("sdk_version_semver", local_package.get("sdk_version", 0))) + can_upgrade = local_sdk_version < remote_sdk_version return can_upgrade From 2bf4354fed244e47ab00da8528f1db7b6a906a15 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 15 Nov 2018 15:57:34 +0100 Subject: [PATCH 0288/1039] Removed minimum_value for the setting support_roof_offset and support_bottom_offset CURA-5880 --- resources/definitions/fdmprinter.def.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 325e4b6c79..7cb6720f27 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4456,7 +4456,6 @@ "description": "Amount of offset applied to the roofs of the support.", "unit": "mm", "type": "float", - "minimum_value": "0", "default_value": 0.0, "value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')", "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", @@ -4471,7 +4470,6 @@ "description": "Amount of offset applied to the floors of the support.", "unit": "mm", "type": "float", - "minimum_value": "0", "default_value": 0.0, "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')", "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", From 240ac1f06b6458d154d84ce326a3dd8e16777aa1 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 13:03:45 +0100 Subject: [PATCH 0289/1039] Clarify some setting descriptions --- resources/definitions/fdmextruder.def.json | 2 +- resources/definitions/fdmprinter.def.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index 19c9e92d18..55556f5764 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -78,7 +78,7 @@ "machine_extruder_start_code": { "label": "Extruder Start G-Code", - "description": "Start g-code to execute whenever turning the extruder on.", + "description": "Start g-code to execute whenever this extruder is switched to.", "type": "str", "default_value": "", "settable_per_mesh": false, diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 7cb6720f27..b1812ae705 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2406,7 +2406,7 @@ "switch_extruder_retraction_amount": { "label": "Nozzle Switch Retraction Distance", - "description": "The amount of retraction: Set at 0 for no retraction at all. This should generally be the same as the length of the heat zone.", + "description": "The amount of retraction when switching extruder. Set to 0 for no retraction at all. This should generally be the same as the length of the heat zone.", "type": "float", "unit": "mm", "enabled": "retraction_enable", From 93bd5fee5387e45ea880ee1fc6125790546e465a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 13:44:46 +0100 Subject: [PATCH 0290/1039] Fix wrong push free shadow for one at a time. It was applying the size twice. CURA-5822 --- cura/Scene/ConvexHullDecorator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 39124c5ba3..0c03ae615b 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -272,7 +272,7 @@ class ConvexHullDecorator(SceneNodeDecorator): head_and_fans = self._getHeadAndFans().intersectionConvexHulls(mirrored) # Min head hull is used for the push free - convex_hull = self._compute2DConvexHeadFull() + convex_hull = self._compute2DConvexHull() if convex_hull: return convex_hull.getMinkowskiHull(head_and_fans) return None From e3dd5f1c39cea14bbeefed4ae2191f19ffdf8d75 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 13:59:51 +0100 Subject: [PATCH 0291/1039] Add documentation about qml z fix Co-Authored-By: nallath --- plugins/PrepareStage/PrepareMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 9507d786b2..c464727dde 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -52,7 +52,7 @@ Item Cura.MachineSelector { id: machineSelection - z: openFileButtonBackground.z - 1 + z: openFileButtonBackground.z - 1 //Ensure that the tooltip of the open file button stays above the item row. Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width Layout.fillWidth: true @@ -117,4 +117,4 @@ Item } } } -} \ No newline at end of file +} From de020b4c758ba05dcbf374616c955b316683e883 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 14:02:00 +0100 Subject: [PATCH 0292/1039] Remove commented out code Co-Authored-By: nallath --- plugins/PreviewStage/PreviewMenu.qml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index df04507ba4..d7b5574035 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -40,7 +40,6 @@ Item Row { anchors.centerIn: parent - //spacing: UM.Theme.getSize("default_margin").width height: parent.height Cura.ExpandableComponent @@ -138,4 +137,4 @@ Item } } } -} \ No newline at end of file +} From 81b6f3ab11b0b73d6c0db10ff441bac1de7072e4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 14:03:39 +0100 Subject: [PATCH 0293/1039] Update unclear qml ID's CURA-5785 Co-Authored-By: nallath --- plugins/PreviewStage/PreviewMenu.qml | 4 ++-- resources/qml/ExpandableComponent.qml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index d7b5574035..bf162be4e3 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -78,7 +78,7 @@ Item popupItem: Column { - id: column + id: viewSelectorPopup width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width // For some reason the height of the column gets set to 0 if this is not set... @@ -86,7 +86,7 @@ Item Repeater { - id: networkedPrinters + id: viewsList model: viewSelector.viewModel RoundButton { diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 9464a8f0ac..4d54ad9611 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -97,7 +97,7 @@ Item // A highlight that is shown when the popup is expanded Rectangle { - id: expandedHightlight + id: expandedHighlight width: parent.width height: UM.Theme.getSize("thick_lining").height color: UM.Theme.getColor("primary") From 514fc130457cbb488c06168eb51dc8e0437e8c9e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 14:04:33 +0100 Subject: [PATCH 0294/1039] Remove redundant documentation CURA-5875 Co-Authored-By: nallath --- resources/qml/ExpandableComponent.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 4d54ad9611..bbba44f743 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -16,7 +16,6 @@ Item // The popupItem holds the QML item that is shown when the "open" button is pressed property var popupItem - // The background color of the popup property color popupBackgroundColor: UM.Theme.getColor("action_button") property color headerBackgroundColor: UM.Theme.getColor("action_button") @@ -31,7 +30,6 @@ Item // What icon should be displayed on the right. property alias iconSource: collapseButton.source - // What is the color of the icon? property alias iconColor: collapseButton.color // The icon size (it's always drawn as a square) From e087db7c2e0ce3857e16b14c499d5d239abc8828 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 13:26:03 +0100 Subject: [PATCH 0295/1039] Code style and fixes to comments Contributes to issue CURA-5785. --- plugins/PreviewStage/PreviewMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index bf162be4e3..a3235d7cb8 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -54,13 +54,13 @@ Item { for (var i = 0; i < viewModel.rowCount(); i++) { - if(viewModel.getItem(i).active) + if (viewModel.getItem(i).active) { return viewModel.getItem(i) } } // Nothing was active, so just return the first one (the list is sorted by priority, so the most - // important one sshould be returned) + // important one should be returned) return viewModel.getItem(0) } From 3ef6d0544a02705eba13e5e115c3e1f40694fb95 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 14:11:04 +0100 Subject: [PATCH 0296/1039] Fix spelling and indents Ant-fuckery, as they say in the low lands. Contributes to issue CURA-5785. --- resources/qml/IconWithText.qml | 2 +- resources/qml/MachineSelector.qml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index d19c7e3899..9ce2f412cc 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -10,7 +10,7 @@ import Cura 1.0 as Cura // Reusable component that holds an (re-colorable) icon on the left with some text on the right. // This component is also designed to be used with layouts. It will use the width of the text + icon as preferred width -// It sets the icon size + half of the content as it's minium width (in which case it will elide the text) +// It sets the icon size + half of the content as its minium width (in which case it will elide the text) Item { property alias iconColor: icon.color diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index b18f427980..fa680fa9a6 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -80,8 +80,8 @@ Cura.ExpandableComponent radius: UM.Theme.getSize("default_radius").width onClicked: { - togglePopup() - Cura.MachineManager.setActiveMachine(model.id) + togglePopup() + Cura.MachineManager.setActiveMachine(model.id) } Connections From e9e8c49b2d9d0c898c88dced34b8179b8bc1f0de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 16 Nov 2018 14:16:45 +0100 Subject: [PATCH 0297/1039] Added tests for SendMaterialJob and refactored SendMaterialJob for better testability. This is part of a larger project to create tests for the UM3NetworkPrinting plugin in preparation for printing from the cloud --- plugins/UM3NetworkPrinting/src/Models.py | 87 +++++ .../UM3NetworkPrinting/src/SendMaterialJob.py | 124 ++++--- .../UM3NetworkPrinting/TestSendMaterialJob.py | 327 ++++++++++++++++++ 3 files changed, 491 insertions(+), 47 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/src/Models.py create mode 100644 tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py new file mode 100644 index 0000000000..6d42b39370 --- /dev/null +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -0,0 +1,87 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. +from typing import Optional + + +class BaseModel: + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + def __eq__(self, other): + return self.__dict__ == other.__dict__ if type(self) == type(other) else False + + +## Represents an item in the cluster API response for installed materials. +class ClusterMaterial(BaseModel): + def __init__(self, **kwargs): + super().__init__(**kwargs) + self.version = int(self.version) + self.density = float(self.density) + + guid: None # type: Optional[str] + + material: None # type: Optional[str] + + brand: None # type: Optional[str] + + version = None # type: Optional[int] + + color: None # type: Optional[str] + + density: None # type: Optional[float] + + +class LocalMaterialProperties(BaseModel): + def __init__(self, **kwargs): + super().__init__(**kwargs) + self.density = float(self.density) + self.diameter = float(self.diameter) + self.weight = float(self.weight) + + density: None # type: Optional[float] + + diameter: None # type: Optional[float] + + weight: None # type: Optional[int] + + +class LocalMaterial(BaseModel): + def __init__(self, **kwargs): + super().__init__(**kwargs) + self.properties = LocalMaterialProperties(**self.properties) + self.approximate_diameter = float(self.approximate_diameter) + self.version = int(self.version) + + GUID: None # type: Optional[str] + + id: None # type: Optional[str] + + type: None # type: Optional[str] + + status: None # type: Optional[str] + + base_file: None # type: Optional[str] + + setting_version: None # type: Optional[str] + + version = None # type: Optional[int] + + name: None # type: Optional[str] + + brand: None # type: Optional[str] + + material: None # type: Optional[str] + + color_name: None # type: Optional[str] + + description: None # type: Optional[str] + + adhesion_info: None # type: Optional[str] + + approximate_diameter: None # type: Optional[float] + + properties: None # type: LocalMaterialProperties + + definition: None # type: Optional[str] + + compatible: None # type: Optional[bool] diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 8491e79c29..126ed07317 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -1,99 +1,129 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import json #To understand the list of materials from the printer reply. -import os #To walk over material files. -import os.path #To filter on material files. -from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest #To listen to the reply from the printer. -from typing import Any, Dict, Set, TYPE_CHECKING -import urllib.parse #For getting material IDs from their file names. +import json # To understand the list of materials from the printer reply. +import os # To walk over material files. +import os.path # To filter on material files. +import urllib.parse # For getting material IDs from their file names. +from typing import Dict, TYPE_CHECKING -from UM.Job import Job #The interface we're implementing. +from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest # To listen to the reply from the printer. + +from UM.Job import Job # The interface we're implementing. from UM.Logger import Logger -from UM.MimeTypeDatabase import MimeTypeDatabase #To strip the extensions of the material profile files. +from UM.MimeTypeDatabase import MimeTypeDatabase # To strip the extensions of the material profile files. from UM.Resources import Resources -from UM.Settings.ContainerRegistry import ContainerRegistry #To find the GUIDs of materials. - -from cura.CuraApplication import CuraApplication #For the resource types. +from UM.Settings.ContainerRegistry import ContainerRegistry # To find the GUIDs of materials. +from cura.CuraApplication import CuraApplication # For the resource types. +from plugins.UM3NetworkPrinting.src.Models import ClusterMaterial, LocalMaterial if TYPE_CHECKING: from .ClusterUM3OutputDevice import ClusterUM3OutputDevice + ## Asynchronous job to send material profiles to the printer. # # This way it won't freeze up the interface while sending those materials. class SendMaterialJob(Job): def __init__(self, device: "ClusterUM3OutputDevice") -> None: super().__init__() - self.device = device #type: ClusterUM3OutputDevice + self.device = device # type: ClusterUM3OutputDevice def run(self) -> None: - self.device.get("materials/", on_finished = self.sendMissingMaterials) + self.device.get("materials/", on_finished=self.sendMissingMaterials) def sendMissingMaterials(self, reply: QNetworkReply) -> None: - if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: #Got an error from the HTTP request. + if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: # Got an error from the HTTP request. Logger.log("e", "Couldn't request current material storage on printer. Not syncing materials.") return - remote_materials_list = reply.readAll().data().decode("utf-8") + # Collect materials from the printer's reply try: - remote_materials_list = json.loads(remote_materials_list) + remote_materials_by_guid = self._parseReply(reply) except json.JSONDecodeError: Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.") return - try: - remote_materials_by_guid = {material["guid"]: material for material in remote_materials_list} #Index by GUID. except KeyError: Logger.log("e", "Request material storage on printer: Printer's answer was missing GUIDs.") return - container_registry = ContainerRegistry.getInstance() - local_materials_list = filter(lambda material: ("GUID" in material and "version" in material and "id" in material), container_registry.findContainersMetadata(type = "material")) - local_materials_by_guid = {material["GUID"]: material for material in local_materials_list if material["id"] == material["base_file"]} - for material in local_materials_list: #For each GUID get the material with the highest version number. - try: - if int(material["version"]) > local_materials_by_guid[material["GUID"]]["version"]: - local_materials_by_guid[material["GUID"]] = material - except ValueError: - Logger.log("e", "Material {material_id} has invalid version number {number}.".format(material_id = material["id"], number = material["version"])) - continue + # Collect local materials + local_materials_by_guid = self._getLocalMaterials() - materials_to_send = set() #type: Set[Dict[str, Any]] - for guid, material in local_materials_by_guid.items(): - if guid not in remote_materials_by_guid: - materials_to_send.add(material["id"]) - continue - try: - if int(material["version"]) > remote_materials_by_guid[guid]["version"]: - materials_to_send.add(material["id"]) - continue - except KeyError: - Logger.log("e", "Current material storage on printer was an invalid reply (missing version).") - return + # Find out what materials are new or updated annd must be sent to the printer + materials_to_send = { + material.id + for guid, material in local_materials_by_guid.items() + if guid not in remote_materials_by_guid or + material.version > remote_materials_by_guid[guid].version + } + # Send materials to the printer + self.sendMaterialsToPrinter(materials_to_send) + + def sendMaterialsToPrinter(self, materials_to_send): for file_path in Resources.getAllResourcesOfType(CuraApplication.ResourceTypes.MaterialInstanceContainer): try: mime_type = MimeTypeDatabase.getMimeTypeForFile(file_path) except MimeTypeDatabase.MimeTypeNotFoundError: - continue #Not the sort of file we'd like to send then. + continue # Not the sort of file we'd like to send then. + _, file_name = os.path.split(file_path) material_id = urllib.parse.unquote_plus(mime_type.stripExtension(file_name)) + if material_id not in materials_to_send: continue parts = [] with open(file_path, "rb") as f: - parts.append(self.device._createFormPart("name=\"file\"; filename=\"{file_name}\"".format(file_name = file_name), f.read())) + parts.append( + self.device._createFormPart("name=\"file\"; filename=\"{file_name}\"".format(file_name=file_name), + f.read())) signature_file_path = file_path + ".sig" if os.path.exists(signature_file_path): _, signature_file_name = os.path.split(signature_file_path) with open(signature_file_path, "rb") as f: - parts.append(self.device._createFormPart("name=\"signature_file\"; filename=\"{file_name}\"".format(file_name = signature_file_name), f.read())) + parts.append(self.device._createFormPart( + "name=\"signature_file\"; filename=\"{file_name}\"".format(file_name=signature_file_name), + f.read())) - Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id = material_id)) - self.device.postFormWithParts(target = "materials/", parts = parts, on_finished = self.sendingFinished) + Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id=material_id)) + self.device.postFormWithParts(target="materials/", parts=parts, on_finished=self.sendingFinished) def sendingFinished(self, reply: QNetworkReply): if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: - Logger.log("e", "Received error code from printer when syncing material: {code}".format(code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))) - Logger.log("e", reply.readAll().data().decode("utf-8")) \ No newline at end of file + Logger.log("e", "Received error code from printer when syncing material: {code}".format( + code=reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))) + Logger.log("e", reply.readAll().data().decode("utf-8")) + + ## Parse the reply from the printer + # + # Parses the reply to a "/materials" request to the printer + # + # \return a dictionary of ClustMaterial objects by GUID + # \throw json.JSONDecodeError Raised when the reply does not contain a valid json string + # \throw KeyErrror Raised when on of the materials does not include a valid guid + @classmethod + def _parseReply(cls, reply: QNetworkReply) -> Dict[str, ClusterMaterial]: + remote_materials_list = json.loads(reply.readAll().data().decode("utf-8")) + return {material["guid"]: ClusterMaterial(**material) for material in remote_materials_list} + + ## Retrieves a list of local materials + # + # Only the new newest version of the local materials is returned + # + # \return a dictionary of LocalMaterial objects by GUID + @classmethod + def _getLocalMaterials(cls): + result = {} + for material in ContainerRegistry.getInstance().findContainersMetadata(type="material"): + try: + localMaterial = LocalMaterial(**material) + + if localMaterial.GUID not in result or localMaterial.version > result.get(localMaterial.GUID).version: + result[localMaterial.GUID] = localMaterial + except (ValueError): + Logger.log("e", "Material {material_id} has invalid version number {number}.".format( + material_id=material["id"], number=material["version"])) + + return result diff --git a/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py b/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py new file mode 100644 index 0000000000..3cdb73af22 --- /dev/null +++ b/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py @@ -0,0 +1,327 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import io +import json +from typing import Any, List +from unittest import TestCase, mock +from unittest.mock import patch, call + +from PyQt5.QtCore import QByteArray + +from UM.Logger import Logger +from UM.MimeTypeDatabase import MimeType +from UM.Settings.ContainerRegistry import ContainerInterface, ContainerRegistryInterface, \ + DefinitionContainerInterface, ContainerRegistry +from plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice import ClusterUM3OutputDevice +from plugins.UM3NetworkPrinting.src.Models import ClusterMaterial +from plugins.UM3NetworkPrinting.src.SendMaterialJob import SendMaterialJob + +# All log entries written to Log.log by the class-under-test are written to this list. It is cleared before each test +# run and check afterwards +_logentries = [] + + +def new_log(*args): + _logentries.append(args) + + +class TestContainerRegistry(ContainerRegistryInterface): + def __init__(self): + self.containersMetaData = None + + def findContainers(self, *, ignore_case: bool = False, **kwargs: Any) -> List[ContainerInterface]: + raise NotImplementedError() + + def findDefinitionContainers(self, **kwargs: Any) -> List[DefinitionContainerInterface]: + raise NotImplementedError() + + @classmethod + def getApplication(cls) -> "Application": + raise NotImplementedError() + + def getEmptyInstanceContainer(self) -> "InstanceContainer": + raise NotImplementedError() + + def isReadOnly(self, container_id: str) -> bool: + raise NotImplementedError() + + def setContainersMetadata(self, value): + self.containersMetaData = value + + def findContainersMetadata(self, type): + return self.containersMetaData + + +class FakeDevice(ClusterUM3OutputDevice): + def _createFormPart(self, content_header, data, content_type=None): + return "xxx" + + +class TestSendMaterialJob(TestCase): + _LOCALMATERIAL_WHITE = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_white', + 'base_file': 'generic_pla_white', 'setting_version': 5, 'name': 'White PLA', + 'brand': 'Generic', 'material': 'PLA', 'color_name': 'White', + 'GUID': 'badb0ee7-87c8-4f3f-9398-938587b67dce', 'version': '1', 'color_code': '#ffffff', + 'description': 'Test PLA White', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', + 'properties': {'density': '1.00', 'diameter': '2.85', 'weight': '750'}, + 'definition': 'fdmprinter', 'compatible': True} + _LOCALMATERIAL_BLACK = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_black', + 'base_file': 'generic_pla_black', 'setting_version': 5, 'name': 'Yellow CPE', + 'brand': 'Ultimaker', 'material': 'CPE', 'color_name': 'Black', + 'GUID': '5fbb362a-41f9-4818-bb43-15ea6df34aa4', 'version': '1', 'color_code': '#000000', + 'description': 'Test PLA Black', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', + 'properties': {'density': '1.01', 'diameter': '2.85', 'weight': '750'}, + 'definition': 'fdmprinter', 'compatible': True} + + _REMOTEMATERIAL_WHITE = { + "guid": "badb0ee7-87c8-4f3f-9398-938587b67dce", + "material": "PLA", + "brand": "Generic", + "version": 1, + "color": "White", + "density": 1.00 + } + _REMOTEMATERIAL_BLACK = { + "guid": "5fbb362a-41f9-4818-bb43-15ea6df34aa4", + "material": "PLA", + "brand": "Generic", + "version": 2, + "color": "Black", + "density": 1.00 + } + + def setUp(self): + # Make sure the we start with clean (log) slate + _logentries.clear() + + def tearDown(self): + # If there are still log entries that were not checked something is wrong or we must add checks for them + self.assertEqual(len(_logentries), 0) + + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + def test_run(self, device_mock): + with mock.patch.object(Logger, 'log', new=new_log): + job = SendMaterialJob(device_mock) + job.run() + + device_mock.get.assert_called_with("materials/", on_finished=job.sendMissingMaterials) + self.assertEqual(0, len(_logentries)) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendMissingMaterials_withFailedRequest(self, reply_mock): + reply_mock.attribute.return_value = 404 + + with mock.patch.object(Logger, 'log', new=new_log): + SendMaterialJob(None).sendMissingMaterials(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0)]) + self._assertLogEntries([('e', "Couldn't request current material storage on printer. Not syncing materials.")], + _logentries) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendMissingMaterials_withBadJsonAnswer(self, reply_mock): + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') + + with mock.patch.object(Logger, 'log', new=new_log): + SendMaterialJob(None).sendMissingMaterials(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + self._assertLogEntries( + [('e', "Request material storage on printer: I didn't understand the printer's answer.")], + _logentries) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendMissingMaterials_withMissingGuid(self, reply_mock): + reply_mock.attribute.return_value = 200 + remoteMaterialWithoutGuid = self._REMOTEMATERIAL_WHITE.copy() + del remoteMaterialWithoutGuid["guid"] + reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithoutGuid]).encode("ascii")) + + with mock.patch.object(Logger, 'log', new=new_log): + SendMaterialJob(None).sendMissingMaterials(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + self._assertLogEntries( + [('e', "Request material storage on printer: Printer's answer was missing GUIDs.")], + _logentries) + + @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendMissingMaterials_WithInvalidVersionInLocalMaterial(self, reply_mock): + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + + containerRegistry = TestContainerRegistry() + localMaterialWhiteWithInvalidVersion = self._LOCALMATERIAL_WHITE.copy() + localMaterialWhiteWithInvalidVersion["version"] = "one" + containerRegistry.setContainersMetadata([localMaterialWhiteWithInvalidVersion]) + + with mock.patch.object(Logger, "log", new=new_log): + with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + SendMaterialJob(None).sendMissingMaterials(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + self._assertLogEntries([('e', "Material generic_pla_white has invalid version number one.")], _logentries) + + @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendMissingMaterials_WithMultipleLocalVersionsLowFirst(self, reply_mock): + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + + containerRegistry = TestContainerRegistry() + localMaterialWhiteWithHigherVersion = self._LOCALMATERIAL_WHITE.copy() + localMaterialWhiteWithHigherVersion["version"] = "2" + containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWhiteWithHigherVersion]) + + with mock.patch.object(Logger, "log", new=new_log): + with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + SendMaterialJob(None).sendMissingMaterials(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + self._assertLogEntries([], _logentries) + + @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendMissingMaterials_MaterialMissingOnPrinter(self, reply_mock): + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray( + json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + + containerRegistry = TestContainerRegistry() + containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) + + with mock.patch.object(Logger, "log", new=new_log): + with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + SendMaterialJob(None).sendMissingMaterials(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + self._assertLogEntries([], _logentries) + + @patch("builtins.open", lambda a, b: io.StringIO("")) + @patch("UM.MimeTypeDatabase.MimeTypeDatabase.getMimeTypeForFile", + lambda _: MimeType(name="application/x-ultimaker-material-profile", comment="Ultimaker Material Profile", + suffixes=["xml.fdm_material"])) + @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + def test_sendMaterialsToPrinter(self, device): + with mock.patch.object(Logger, "log", new=new_log): + SendMaterialJob(device).sendMaterialsToPrinter({'generic_pla_white'}) + + self._assertLogEntries([("d", "Syncing material generic_pla_white with cluster.")], _logentries) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def xtest_sendMissingMaterials(self, reply_mock): + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray( + json.dumps([self._REMOTEMATERIAL_WHITE], self._REMOTEMATERIAL_BLACK).encode("ascii")) + + containerRegistry = TestContainerRegistry() + containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) + + with mock.patch.object(Logger, "log", new=new_log): + with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + SendMaterialJob(None).sendMissingMaterials(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + self._assertLogEntries([], _logentries) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendingFinished_success(self, reply_mock) -> None: + reply_mock.attribute.return_value = 200 + with mock.patch.object(Logger, 'log', new=new_log): + SendMaterialJob(None).sendingFinished(reply_mock) + + reply_mock.attribute.assert_called_once_with(0) + self.assertEqual(0, len(_logentries)) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendingFinished_failed(self, reply_mock) -> None: + reply_mock.attribute.return_value = 404 + reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') + + with mock.patch.object(Logger, 'log', new=new_log): + SendMaterialJob(None).sendingFinished(reply_mock) + + reply_mock.attribute.assert_called_with(0) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.attribute(0), call.readAll()]) + + self._assertLogEntries([ + ("e", "Received error code from printer when syncing material: 404"), + ("e", "Six sick hicks nick six slick bricks with picks and sticks.") + ], _logentries) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_parseReply(self, reply_mock): + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + + response = SendMaterialJob._parseReply(reply_mock) + + self.assertTrue(len(response) == 1) + self.assertEqual(next(iter(response.values())), ClusterMaterial(**self._REMOTEMATERIAL_WHITE)) + + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_parseReplyWithInvalidMaterial(self, reply_mock): + remoteMaterialWithInvalidVersion = self._REMOTEMATERIAL_WHITE.copy() + remoteMaterialWithInvalidVersion["version"] = "one" + reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithInvalidVersion]).encode("ascii")) + + with self.assertRaises(ValueError): + SendMaterialJob._parseReply(reply_mock) + + def test__getLocalMaterials(self): + containerRegistry = TestContainerRegistry() + containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) + + with mock.patch.object(Logger, "log", new=new_log): + with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + local_materials = SendMaterialJob(None)._getLocalMaterials() + + self.assertTrue(len(local_materials) == 2) + + def test__getLocalMaterialsWithMultipleVersions(self): + containerRegistry = TestContainerRegistry() + localMaterialWithNewerVersion = self._LOCALMATERIAL_WHITE.copy() + localMaterialWithNewerVersion["version"] = 2 + containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWithNewerVersion]) + + with mock.patch.object(Logger, "log", new=new_log): + with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + local_materials = SendMaterialJob(None)._getLocalMaterials() + + self.assertTrue(len(local_materials) == 1) + self.assertTrue(list(local_materials.values())[0].version == 2) + + containerRegistry.setContainersMetadata([localMaterialWithNewerVersion, self._LOCALMATERIAL_WHITE]) + + with mock.patch.object(Logger, "log", new=new_log): + with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + local_materials = SendMaterialJob(None)._getLocalMaterials() + + self.assertTrue(len(local_materials) == 1) + self.assertTrue(list(local_materials.values())[0].version == 2) + + def _assertLogEntries(self, first, second): + """ + Inspects the two sets of log entry tuples and fails when they are not the same + :param first: The first set of tuples + :param second: The second set of tuples + """ + self.assertEqual(len(first), len(second)) + + while len(first) > 0: + e1, m1 = first[0] + e2, m2 = second[0] + self.assertEqual(e1, e2) + self.assertEqual(m1, m2) + first.pop(0) + second.pop(0) From 421af26f87892484381d398a6cbdf05e96a26165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 16 Nov 2018 14:54:49 +0100 Subject: [PATCH 0298/1039] Extra test on test_sendMaterialsToPrinter, removed unused code --- .../UM3NetworkPrinting/TestSendMaterialJob.py | 25 +++++-------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py b/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py index 3cdb73af22..172b42cb8b 100644 --- a/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py +++ b/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py @@ -212,28 +212,15 @@ class TestSendMaterialJob(TestCase): suffixes=["xml.fdm_material"])) @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - def test_sendMaterialsToPrinter(self, device): + def test_sendMaterialsToPrinter(self, device_mock): + device_mock._createFormPart.return_value = "_xXx_" with mock.patch.object(Logger, "log", new=new_log): - SendMaterialJob(device).sendMaterialsToPrinter({'generic_pla_white'}) + job = SendMaterialJob(device_mock) + job.sendMaterialsToPrinter({'generic_pla_white'}) self._assertLogEntries([("d", "Syncing material generic_pla_white with cluster.")], _logentries) - - @patch("PyQt5.QtNetwork.QNetworkReply") - def xtest_sendMissingMaterials(self, reply_mock): - reply_mock.attribute.return_value = 200 - reply_mock.readAll.return_value = QByteArray( - json.dumps([self._REMOTEMATERIAL_WHITE], self._REMOTEMATERIAL_BLACK).encode("ascii")) - - containerRegistry = TestContainerRegistry() - containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) - - with mock.patch.object(Logger, "log", new=new_log): - with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - SendMaterialJob(None).sendMissingMaterials(reply_mock) - - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - self._assertLogEntries([], _logentries) + self.assertEqual([call._createFormPart('name="file"; filename="generic_pla_white.xml.fdm_material"', ''), + call.postFormWithParts(on_finished=job.sendingFinished, parts = ["_xXx_"], target = "materials/")], device_mock.method_calls) @patch("PyQt5.QtNetwork.QNetworkReply") def test_sendingFinished_success(self, reply_mock) -> None: From 3fd1cc0e8cec4c77d080860bccd9deb99bb2d62c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 14:58:11 +0100 Subject: [PATCH 0299/1039] Ensure that the added labels are also themable CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 2 ++ resources/qml/ExpandableComponent.qml | 2 +- resources/qml/MachineSelector.qml | 3 +++ .../Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index bf162be4e3..90c1cb7c99 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -74,6 +74,8 @@ Item height: parent.height elide: Text.ElideRight font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } popupItem: Column diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index bbba44f743..c177dc758d 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -38,7 +38,7 @@ Item // Is the "drawer" open? readonly property alias expanded: popup.visible - property alias expandedHighlightColor: expandedHightlight.color + property alias expandedHighlightColor: expandedHighlight.color function togglePopup() { diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index b18f427980..1f18e1ab2a 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -32,6 +32,7 @@ Cura.ExpandableComponent height: parent.height elide: Text.ElideRight font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") } popupItem: Item @@ -58,6 +59,7 @@ Cura.ExpandableComponent visible: networkedPrintersModel.items.length > 0 height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 font: UM.Theme.getFont("medium_bold") + color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter } @@ -99,6 +101,7 @@ Cura.ExpandableComponent visible: virtualPrintersModel.items.length > 0 height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 font: UM.Theme.getFont("medium_bold") + color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter } diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 6f4e58a326..d6b9b1c06a 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -60,6 +60,8 @@ Cura.ExpandableComponent text: model.material_brand elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") anchors { @@ -75,6 +77,8 @@ Cura.ExpandableComponent { text: model.material elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") anchors { From 5972bfaf0342d41f987ec38d1cb7c00c56dab4cb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 15:06:21 +0100 Subject: [PATCH 0300/1039] Add round to minContentWidth This prevents text from getting a weird width CURA-5785 --- resources/qml/IconWithText.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index 9ce2f412cc..dcb3ef7851 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -21,7 +21,7 @@ Item // These properties can be used in combination with layouts. readonly property real contentWidth: icon.width + margin + label.contentWidth - readonly property real minContentWidth: icon.width + margin + 0.5 * label.contentWidth + readonly property real minContentWidth: Math.round(icon.width + margin + 0.5 * label.contentWidth) Layout.minimumWidth: minContentWidth Layout.preferredWidth: contentWidth From fe15a0a5132716844afe25e2cd7dd7424667efe8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 15:09:47 +0100 Subject: [PATCH 0301/1039] Made width of machineSelector popup depend on size of the element CURA-5785 --- resources/qml/MachineSelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 256e6ec218..793f45ddcf 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -38,7 +38,7 @@ Cura.ExpandableComponent popupItem: Item { id: popup - width: 240 + width: machineSelector.width - 2 * UM.Theme.getSize("default_margin").width height: 200 ScrollView From 816d844258c2126c86f9be7b2be50580932cef4d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 15:14:08 +0100 Subject: [PATCH 0302/1039] Use textwidth instead of round CURA-5785 Co-Authored-By: nallath --- .../Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index d6b9b1c06a..b1058ce627 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -134,7 +134,7 @@ Cura.ExpandableComponent anchors.bottom: parent.bottom property var model: extrudersModel.items[tabBar.currentIndex] property real textWidth: Math.round(width * 0.3) - property real controlWidth: Math.round(width * 0.7) + property real controlWidth: width - textWidth Column { spacing: UM.Theme.getSize("default_margin").height @@ -236,4 +236,4 @@ Cura.ExpandableComponent } } -} \ No newline at end of file +} From b72f1bb31403baa2c1ee48aa473ee3bbd715c780 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 15:15:44 +0100 Subject: [PATCH 0303/1039] Add missing screenScaleFactor for implicit sizes CURA-5785 --- resources/qml/ExpandableComponent.qml | 6 +++--- resources/qml/PrintSetupSelector.qml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index c177dc758d..d4eb18f4fa 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -6,7 +6,7 @@ import UM 1.2 as UM // The expandable component has 3 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded // * The popupItem; The content that needs to be shown if the component is expanded. -// * The Icon; An icon that is displayed on the right of the drawer. +// * The icon; An icon that is displayed on the right of the drawer. Item { id: base @@ -69,8 +69,8 @@ Item onHeightChanged: popup.height = popupItem.height + 2 * popup.padding } - implicitHeight: 100 - implicitWidth: 400 + implicitHeight: 100 * screenScaleFactor + implicitWidth: 400 * screenScaleFactor Rectangle { id: background diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index e576dddc07..b843244147 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -24,7 +24,7 @@ Cura.ExpandableComponent signal showTooltip(Item item, point location, string text) signal hideTooltip() - implicitWidth: 200 + implicitWidth: 200 * screenScaleFactor height: childrenRect.height iconSource: UM.Theme.getIcon("pencil") From 42399ecb24492d2f38cc85447a6ab33a1ad28d55 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 15:17:34 +0100 Subject: [PATCH 0304/1039] Let headerItem fill entire component if no icon is set CURA-5785 --- resources/qml/ExpandableComponent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index d4eb18f4fa..8ed6dc5674 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -85,7 +85,7 @@ Item anchors { left: parent.left - right: collapseButton.left + right: collapseButton.visible ? collapseButton.left : parent.right top: parent.top bottom: parent.bottom margins: background.padding From 695d45ffbed22396035f0d32f616e610712a1923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 16 Nov 2018 15:54:07 +0100 Subject: [PATCH 0305/1039] Initialize the models with None --- plugins/UM3NetworkPrinting/src/Models.py | 48 ++++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index 6d42b39370..89bf665377 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -18,17 +18,17 @@ class ClusterMaterial(BaseModel): self.version = int(self.version) self.density = float(self.density) - guid: None # type: Optional[str] + guid = None # type: Optional[str] - material: None # type: Optional[str] + material = None # type: Optional[str] - brand: None # type: Optional[str] + brand = None # type: Optional[str] version = None # type: Optional[int] - color: None # type: Optional[str] + color = None # type: Optional[str] - density: None # type: Optional[float] + density = None # type: Optional[float] class LocalMaterialProperties(BaseModel): @@ -38,11 +38,11 @@ class LocalMaterialProperties(BaseModel): self.diameter = float(self.diameter) self.weight = float(self.weight) - density: None # type: Optional[float] + density = None # type: Optional[float] - diameter: None # type: Optional[float] + diameter = None # type: Optional[float] - weight: None # type: Optional[int] + weight = None # type: Optional[int] class LocalMaterial(BaseModel): @@ -52,36 +52,36 @@ class LocalMaterial(BaseModel): self.approximate_diameter = float(self.approximate_diameter) self.version = int(self.version) - GUID: None # type: Optional[str] + GUID = None # type: Optional[str] - id: None # type: Optional[str] + id = None # type: Optional[str] - type: None # type: Optional[str] + type = None # type: Optional[str] - status: None # type: Optional[str] + status = None # type: Optional[str] - base_file: None # type: Optional[str] + base_file = None # type: Optional[str] - setting_version: None # type: Optional[str] + setting_version = None # type: Optional[str] version = None # type: Optional[int] - name: None # type: Optional[str] + name = None # type: Optional[str] - brand: None # type: Optional[str] + brand = None # type: Optional[str] - material: None # type: Optional[str] + material = None # type: Optional[str] - color_name: None # type: Optional[str] + color_name = None # type: Optional[str] - description: None # type: Optional[str] + description = None # type: Optional[str] - adhesion_info: None # type: Optional[str] + adhesion_info = None # type: Optional[str] - approximate_diameter: None # type: Optional[float] + approximate_diameter = None # type: Optional[float] - properties: None # type: LocalMaterialProperties + properties = None # type: LocalMaterialProperties - definition: None # type: Optional[str] + definition = None # type: Optional[str] - compatible: None # type: Optional[bool] + compatible = None # type: Optional[bool] From 7f99ed1af36f5d0ef75f7087b1c1d84676e982b2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 16:04:11 +0100 Subject: [PATCH 0306/1039] ExtruderIcon will now display that it's disabled correctly CURA-5785 --- cura/Settings/ExtrudersModel.py | 5 +++-- resources/qml/ExtruderButton.qml | 1 + resources/qml/ExtruderIcon.qml | 22 +++++++++++++++---- .../QuickConfigurationSelector.qml | 2 ++ 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 9b85afa10e..14a8dadc69 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -24,8 +24,6 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): ## Human-readable name of the extruder. NameRole = Qt.UserRole + 2 - ## Is the extruder enabled? - EnabledRole = Qt.UserRole + 9 ## Colour of the material loaded in the extruder. ColorRole = Qt.UserRole + 3 @@ -50,6 +48,9 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): MaterialBrandRole = Qt.UserRole + 9 ColorNameRole = Qt.UserRole + 10 + ## Is the extruder enabled? + EnabledRole = Qt.UserRole + 11 + ## List of colours to display if there is no material or the material has no known # colour. defaultColors = ["#ffc924", "#86ec21", "#22eeee", "#245bff", "#9124ff", "#ff24c8"] diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 764e9c94cb..8a1f0af44a 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -23,6 +23,7 @@ Button { width: UM.Theme.getSize("button_icon").width materialColor: model.color + extruderEnabled: extruder.stack.isEnabled property int index: extruder.index } diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index eb4bdef0f7..87e210e75a 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -13,9 +13,9 @@ Item implicitHeight: implicitWidth property bool checked: true - property alias materialColor: mainIcon.color + property color materialColor property alias textColor: extruderNumberText.color - + property bool extruderEnabled: true UM.RecolorImage { id: mainIcon @@ -24,6 +24,7 @@ Item sourceSize.width: parent.width sourceSize.height: parent.width source: UM.Theme.getIcon("extruder_button") + color: extruderEnabled ? materialColor: "gray" } Rectangle @@ -31,9 +32,9 @@ Item id: extruderNumberCircle width: height - height: parent.height / 2 + height: Math.round(parent.height / 2) radius: Math.round(width / 2) - color: "white" + color: UM.Theme.getColor("toolbar_background") anchors { @@ -51,6 +52,19 @@ Item font: UM.Theme.getFont("default") width: contentWidth height: contentHeight + visible: extruderEnabled + } + + UM.RecolorImage + { + id: disabledIcon + anchors.fill: parent + anchors.margins: UM.Theme.getSize("thick_lining").width + sourceSize.width: width + sourceSize.height: width + source: UM.Theme.getIcon("cross1") + visible: !extruderEnabled + color: "black" } } } \ No newline at end of file diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index b1058ce627..c157b0b24f 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -49,6 +49,7 @@ Cura.ExpandableComponent { id: extruderIcon materialColor: model.color + extruderEnabled: model.enabled height: parent.height width: height } @@ -118,6 +119,7 @@ Cura.ExpandableComponent { anchors.horizontalCenter: parent.horizontalCenter materialColor: model.color + extruderEnabled: model.enabled width: parent.height height: parent.height } From 0062250238030932b15dd36511c96c4bc1e6af3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 16 Nov 2018 16:06:36 +0100 Subject: [PATCH 0307/1039] Moved the test to the plugin directory --- .../UM3NetworkPrinting/tests}/TestSendMaterialJob.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {tests/plugins/UM3NetworkPrinting => plugins/UM3NetworkPrinting/tests}/TestSendMaterialJob.py (100%) diff --git a/tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py similarity index 100% rename from tests/plugins/UM3NetworkPrinting/TestSendMaterialJob.py rename to plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py From 1000625d6947fe701a25cdff5f13c2ff045e29f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 16 Nov 2018 16:07:17 +0100 Subject: [PATCH 0308/1039] Added spaces around all = --- .../UM3NetworkPrinting/src/SendMaterialJob.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 126ed07317..baea3b9a78 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -30,7 +30,7 @@ class SendMaterialJob(Job): self.device = device # type: ClusterUM3OutputDevice def run(self) -> None: - self.device.get("materials/", on_finished=self.sendMissingMaterials) + self.device.get("materials/", on_finished = self.sendMissingMaterials) def sendMissingMaterials(self, reply: QNetworkReply) -> None: if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: # Got an error from the HTTP request. @@ -77,23 +77,23 @@ class SendMaterialJob(Job): parts = [] with open(file_path, "rb") as f: parts.append( - self.device._createFormPart("name=\"file\"; filename=\"{file_name}\"".format(file_name=file_name), + self.device._createFormPart("name=\"file\"; filename=\"{file_name}\"".format(file_name = file_name), f.read())) signature_file_path = file_path + ".sig" if os.path.exists(signature_file_path): _, signature_file_name = os.path.split(signature_file_path) with open(signature_file_path, "rb") as f: parts.append(self.device._createFormPart( - "name=\"signature_file\"; filename=\"{file_name}\"".format(file_name=signature_file_name), + "name=\"signature_file\"; filename=\"{file_name}\"".format(file_name = signature_file_name), f.read())) - Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id=material_id)) - self.device.postFormWithParts(target="materials/", parts=parts, on_finished=self.sendingFinished) + Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id = material_id)) + self.device.postFormWithParts(target = "materials/", parts = parts, on_finished = self.sendingFinished) def sendingFinished(self, reply: QNetworkReply): if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: Logger.log("e", "Received error code from printer when syncing material: {code}".format( - code=reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))) + code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))) Logger.log("e", reply.readAll().data().decode("utf-8")) ## Parse the reply from the printer @@ -116,7 +116,7 @@ class SendMaterialJob(Job): @classmethod def _getLocalMaterials(cls): result = {} - for material in ContainerRegistry.getInstance().findContainersMetadata(type="material"): + for material in ContainerRegistry.getInstance().findContainersMetadata(type = "material"): try: localMaterial = LocalMaterial(**material) @@ -124,6 +124,6 @@ class SendMaterialJob(Job): result[localMaterial.GUID] = localMaterial except (ValueError): Logger.log("e", "Material {material_id} has invalid version number {number}.".format( - material_id=material["id"], number=material["version"])) + material_id = material["id"], number = material["version"])) return result From 52b2f4579ad1620b03b0ce3f34a44af306926008 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 16:10:26 +0100 Subject: [PATCH 0309/1039] Fix a number of QML warnings CURA-5785 --- resources/qml/Cura.qml | 16 ---------------- resources/qml/MachineSelector.qml | 2 +- .../QuickConfigurationSelector.qml | 6 +++--- 3 files changed, 4 insertions(+), 20 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index cdbf1f3511..0312a636a6 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -214,22 +214,6 @@ UM.MainWindow } } - Loader - { - id: viewPanel - - anchors.bottom: viewModeButton.top - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.right: viewModeButton.right - - property var buttonTarget: Qt.point(viewModeButton.x + Math.round(viewModeButton.width / 2), viewModeButton.y + Math.round(viewModeButton.height / 2)) - - height: childrenRect.height - width: childrenRect.width - - source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : "" - } - Cura.ActionPanelWidget { anchors.right: parent.right diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 793f45ddcf..a464949192 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -45,7 +45,7 @@ Cura.ExpandableComponent { anchors.fill: parent contentHeight: column.implicitHeight - contentWidth: row.implicitWidth + contentWidth: column.implicitWidth clip: true ScrollBar.horizontal.policy: ScrollBar.AlwaysOff diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index c157b0b24f..33610135fe 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -111,7 +111,7 @@ Cura.ExpandableComponent delegate: TabButton { - width: Math.round(ListView.view.width / extrudersModel.rowCount()) + width: ListView.view != null ? Math.round(ListView.view.width / extrudersModel.rowCount()): 0 height: parent.height contentItem: Item { @@ -156,7 +156,7 @@ Cura.ExpandableComponent OldControls.CheckBox { - checked: Cura.MachineManager.getExtruder(tabControl.model.index).isEnabled + checked: tabControl.model != null ? Cura.MachineManager.getExtruder(tabControl.model.index).isEnabled: false onClicked: Cura.MachineManager.setExtruderEnabled(tabControl.model.index, checked) height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox @@ -190,7 +190,7 @@ Cura.ExpandableComponent tooltip: currentRootMaterialName visible: Cura.MachineManager.hasMaterials - enabled: !extrudersList.visible || Cura.ExtruderManager.activeExtruderIndex > -1 + enabled: Cura.ExtruderManager.activeExtruderIndex > -1 height: UM.Theme.getSize("setting_control").height width: tabControl.controlWidth From bc5a2ce5b0c52d36a837d52ee085a8e1cb897494 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 16:16:15 +0100 Subject: [PATCH 0310/1039] Make ViewSelector panel close upon selecting different view CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 31223cfa4a..0052d341fb 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -75,7 +75,6 @@ Item elide: Text.ElideRight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") - } popupItem: Column @@ -96,7 +95,11 @@ Item radius: UM.Theme.getSize("default_radius").width checkable: true checked: active - onClicked: UM.Controller.setActiveView(id) + onClicked: + { + viewSelector.togglePopup() + UM.Controller.setActiveView(id) + } } } From 6b55490af88e30caa1afa7419141057ebe855304 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 16:30:47 +0100 Subject: [PATCH 0311/1039] Fix final QML warnings CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 3 ++- plugins/SimulationView/SimulationViewMenuComponent.qml | 10 ---------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 0052d341fb..a3cd7cb76b 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -35,10 +35,11 @@ Item { id: stageMenu height: parent.height - width: childrenRect.width + UM.Theme.getSize("default_margin").width + width: stageMenuRow.width + UM.Theme.getSize("default_margin").width anchors.horizontalCenter: parent.horizontalCenter Row { + id: stageMenuRow anchors.centerIn: parent height: parent.height diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 92a4e1e317..c20e141734 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -18,16 +18,6 @@ Cura.ExpandableComponent width: UM.Theme.getSize("layerview_menu_size").width iconSource: UM.Theme.getIcon("pencil") - property var buttonTarget: - { - if(parent != null) - { - var force_binding = parent.y; // ensure this gets reevaluated when the panel moves - return base.mapFromItem(parent.parent, parent.buttonTarget.x, parent.buttonTarget.y) - } - return Qt.point(0,0) - } - Connections { target: UM.Preferences From 565f009e9b6ca4b447145b38c2aa6cb3ef8d4169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 16 Nov 2018 16:34:44 +0100 Subject: [PATCH 0312/1039] Added comments --- .../UM3NetworkPrinting/src/SendMaterialJob.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index baea3b9a78..62b98bcdbd 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -1,7 +1,7 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import json # To understand the list of materials from the printer reply. +import json # To decode the list of materials from the printer reply. import os # To walk over material files. import os.path # To filter on material files. import urllib.parse # For getting material IDs from their file names. @@ -29,9 +29,13 @@ class SendMaterialJob(Job): super().__init__() self.device = device # type: ClusterUM3OutputDevice + ## Send the request to the printer and register a callback def run(self) -> None: self.device.get("materials/", on_finished = self.sendMissingMaterials) + ## Process the reply from the printer and determine which materials should be updated and sent to the printer + # + # \param reply The reply from the printer, a json file def sendMissingMaterials(self, reply: QNetworkReply) -> None: if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: # Got an error from the HTTP request. Logger.log("e", "Couldn't request current material storage on printer. Not syncing materials.") @@ -50,7 +54,7 @@ class SendMaterialJob(Job): # Collect local materials local_materials_by_guid = self._getLocalMaterials() - # Find out what materials are new or updated annd must be sent to the printer + # Find out what materials are new or updated and must be sent to the printer materials_to_send = { material.id for guid, material in local_materials_by_guid.items() @@ -61,7 +65,13 @@ class SendMaterialJob(Job): # Send materials to the printer self.sendMaterialsToPrinter(materials_to_send) - def sendMaterialsToPrinter(self, materials_to_send): + ## Send the materials to the printer + # + # The given materials will be loaded from disk en sent to to printer. The given id's will be mathed with + # filenames of the locally stored materials + # + # \param materials_to_send A set with id's of materials that must be sent + def sendMaterialsToPrinter(self, materials_to_send) -> None: for file_path in Resources.getAllResourcesOfType(CuraApplication.ResourceTypes.MaterialInstanceContainer): try: mime_type = MimeTypeDatabase.getMimeTypeForFile(file_path) @@ -90,7 +100,8 @@ class SendMaterialJob(Job): Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id = material_id)) self.device.postFormWithParts(target = "materials/", parts = parts, on_finished = self.sendingFinished) - def sendingFinished(self, reply: QNetworkReply): + ## Check a reply from an upload to the printer and log an error when the call failed + def sendingFinished(self, reply: QNetworkReply) -> None: if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: Logger.log("e", "Received error code from printer when syncing material: {code}".format( code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))) From 22aac7b5665e6dbcda2107be8e0831b11e8d28b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 16 Nov 2018 16:35:08 +0100 Subject: [PATCH 0313/1039] Renamed TestContainerRegistry to ContainerRegistryMock --- .../UM3NetworkPrinting/tests/TestSendMaterialJob.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index 172b42cb8b..03d2a81e89 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -26,7 +26,7 @@ def new_log(*args): _logentries.append(args) -class TestContainerRegistry(ContainerRegistryInterface): +class ContainerRegistryMock(ContainerRegistryInterface): def __init__(self): self.containersMetaData = None @@ -156,7 +156,7 @@ class TestSendMaterialJob(TestCase): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - containerRegistry = TestContainerRegistry() + containerRegistry = ContainerRegistryMock() localMaterialWhiteWithInvalidVersion = self._LOCALMATERIAL_WHITE.copy() localMaterialWhiteWithInvalidVersion["version"] = "one" containerRegistry.setContainersMetadata([localMaterialWhiteWithInvalidVersion]) @@ -175,7 +175,7 @@ class TestSendMaterialJob(TestCase): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - containerRegistry = TestContainerRegistry() + containerRegistry = ContainerRegistryMock() localMaterialWhiteWithHigherVersion = self._LOCALMATERIAL_WHITE.copy() localMaterialWhiteWithHigherVersion["version"] = "2" containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWhiteWithHigherVersion]) @@ -195,7 +195,7 @@ class TestSendMaterialJob(TestCase): reply_mock.readAll.return_value = QByteArray( json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - containerRegistry = TestContainerRegistry() + containerRegistry = ContainerRegistryMock() containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) with mock.patch.object(Logger, "log", new=new_log): @@ -266,7 +266,7 @@ class TestSendMaterialJob(TestCase): SendMaterialJob._parseReply(reply_mock) def test__getLocalMaterials(self): - containerRegistry = TestContainerRegistry() + containerRegistry = ContainerRegistryMock() containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) with mock.patch.object(Logger, "log", new=new_log): @@ -276,7 +276,7 @@ class TestSendMaterialJob(TestCase): self.assertTrue(len(local_materials) == 2) def test__getLocalMaterialsWithMultipleVersions(self): - containerRegistry = TestContainerRegistry() + containerRegistry = ContainerRegistryMock() localMaterialWithNewerVersion = self._LOCALMATERIAL_WHITE.copy() localMaterialWithNewerVersion["version"] = 2 containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWithNewerVersion]) From f10bd28c4ae8084f9b8f8f343b3b8471a764a2a4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 16 Nov 2018 17:25:32 +0100 Subject: [PATCH 0314/1039] Improve grammar and do similar fix for extruder end g-code Contributes to issue CURA-5906. --- resources/definitions/fdmextruder.def.json | 4 ++-- resources/definitions/fdmprinter.def.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index 55556f5764..cb49b1e128 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -78,7 +78,7 @@ "machine_extruder_start_code": { "label": "Extruder Start G-Code", - "description": "Start g-code to execute whenever this extruder is switched to.", + "description": "Start g-code to execute when switching to this extruder.", "type": "str", "default_value": "", "settable_per_mesh": false, @@ -124,7 +124,7 @@ "machine_extruder_end_code": { "label": "Extruder End G-Code", - "description": "End g-code to execute whenever turning the extruder off.", + "description": "End g-code to execute when switching away from this extruder.", "type": "str", "default_value": "", "settable_per_mesh": false, diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b1812ae705..c015ab8ccb 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2406,7 +2406,7 @@ "switch_extruder_retraction_amount": { "label": "Nozzle Switch Retraction Distance", - "description": "The amount of retraction when switching extruder. Set to 0 for no retraction at all. This should generally be the same as the length of the heat zone.", + "description": "The amount of retraction when switching extruders. Set to 0 for no retraction at all. This should generally be the same as the length of the heat zone.", "type": "float", "unit": "mm", "enabled": "retraction_enable", From e3ebf89092333942ce6ae542c46b570d1ea22593 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 16 Nov 2018 17:26:10 +0100 Subject: [PATCH 0315/1039] Ensure that width of popup does not get set to 0 CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index a3cd7cb76b..b73c1088ae 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -83,8 +83,12 @@ Item id: viewSelectorPopup width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width - // For some reason the height of the column gets set to 0 if this is not set... - Component.onCompleted: height = implicitHeight + // For some reason the height/width of the column gets set to 0 if this is not set... + Component.onCompleted: + { + height = implicitHeight + width = viewSelector.width - 2 * UM.Theme.getSize("default_margin").width + } Repeater { From 6fe89e3d54980d403b2b42f9ace88ed813345028 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 19 Nov 2018 10:33:19 +0100 Subject: [PATCH 0316/1039] Fix width of simulationView component not being set correctly CURA-5785 --- plugins/SimulationView/SimulationViewMenuComponent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index c20e141734..89615f43a4 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -64,7 +64,7 @@ Cura.ExpandableComponent property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers") property int top_layer_count: UM.Preferences.getValue("view/top_layer_count") - width: base.width - 2 * UM.Theme.getSize("default_margin").width + width: UM.Theme.getSize("layerview_menu_size").width - 2 * UM.Theme.getSize("default_margin").width height: childrenRect.height spacing: UM.Theme.getSize("layerview_row_spacing").height From 23e957e1c5c8fdbb36368f319feb57218dd7ab92 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 10:44:24 +0100 Subject: [PATCH 0317/1039] Some more refactoring, splitting up methods --- .../NetworkedPrinterOutputDevice.py | 3 + .../UM3NetworkPrinting/src/SendMaterialJob.py | 180 +++++++++++------- 2 files changed, 115 insertions(+), 68 deletions(-) diff --git a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py index 35d2ce014a..9a3be936a2 100644 --- a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py +++ b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py @@ -147,6 +147,9 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): request.setHeader(QNetworkRequest.UserAgentHeader, self._user_agent) return request + def createFormPart(self, content_header: str, data: bytes, content_type: Optional[str] = None) -> QHttpPart: + return self._createFormPart(content_header, data, content_type) + def _createFormPart(self, content_header: str, data: bytes, content_type: Optional[str] = None) -> QHttpPart: part = QHttpPart() diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 62b98bcdbd..6763901151 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -1,21 +1,20 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import json +import os +import urllib.parse +from typing import Dict, TYPE_CHECKING, Set -import json # To decode the list of materials from the printer reply. -import os # To walk over material files. -import os.path # To filter on material files. -import urllib.parse # For getting material IDs from their file names. -from typing import Dict, TYPE_CHECKING +from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest -from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest # To listen to the reply from the printer. - -from UM.Job import Job # The interface we're implementing. +from UM.Job import Job from UM.Logger import Logger -from UM.MimeTypeDatabase import MimeTypeDatabase # To strip the extensions of the material profile files. +from UM.MimeTypeDatabase import MimeTypeDatabase from UM.Resources import Resources -from UM.Settings.ContainerRegistry import ContainerRegistry # To find the GUIDs of materials. -from cura.CuraApplication import CuraApplication # For the resource types. -from plugins.UM3NetworkPrinting.src.Models import ClusterMaterial, LocalMaterial +from cura.CuraApplication import CuraApplication + +# Absolute imports don't work in plugins +from .Models import ClusterMaterial, LocalMaterial if TYPE_CHECKING: from .ClusterUM3OutputDevice import ClusterUM3OutputDevice @@ -25,95 +24,136 @@ if TYPE_CHECKING: # # This way it won't freeze up the interface while sending those materials. class SendMaterialJob(Job): + def __init__(self, device: "ClusterUM3OutputDevice") -> None: super().__init__() self.device = device # type: ClusterUM3OutputDevice + self._application = CuraApplication.getInstance() # type: CuraApplication ## Send the request to the printer and register a callback def run(self) -> None: self.device.get("materials/", on_finished = self.sendMissingMaterials) - ## Process the reply from the printer and determine which materials should be updated and sent to the printer + ## Process the materials reply from the printer. # - # \param reply The reply from the printer, a json file - def sendMissingMaterials(self, reply: QNetworkReply) -> None: - if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: # Got an error from the HTTP request. - Logger.log("e", "Couldn't request current material storage on printer. Not syncing materials.") + # \param reply The reply from the printer, a json file. + def _onGetRemoteMaterials(self, reply: QNetworkReply) -> None: + + # Got an error from the HTTP request. If we did not receive a 200 something happened. + if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: + Logger.log("e", "Error fetching materials from printer: %s", reply.errorString()) return - # Collect materials from the printer's reply + # Collect materials from the printer's reply and send the missing ones if needed. try: remote_materials_by_guid = self._parseReply(reply) - except json.JSONDecodeError: - Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.") - return - except KeyError: - Logger.log("e", "Request material storage on printer: Printer's answer was missing GUIDs.") - return + self._sendMissingMaterials(remote_materials_by_guid) + except json.JSONDecodeError as e: + Logger.log("e", "Error parsing materials from printer: %s", e) + except KeyError as e: + Logger.log("e", "Error parsing materials from printer: %s", e) + + ## Determine which materials should be updated and send them to the printer. + # + # \param remote_materials_by_guid The remote materials by GUID. + def _sendMissingMaterials(self, remote_materials_by_guid: Dict[str, ClusterMaterial]) -> None: # Collect local materials local_materials_by_guid = self._getLocalMaterials() + if len(local_materials_by_guid) == 0: + Logger.log("d", "There are no local materials to synchronize with the printer.") + return # Find out what materials are new or updated and must be sent to the printer - materials_to_send = { - material.id - for guid, material in local_materials_by_guid.items() - if guid not in remote_materials_by_guid or - material.version > remote_materials_by_guid[guid].version - } + material_ids_to_send = self._determineMaterialsToSend(local_materials_by_guid, remote_materials_by_guid) + if len(material_ids_to_send) == 0: + Logger.log("d", "There are no remote materials to update.") + return # Send materials to the printer - self.sendMaterialsToPrinter(materials_to_send) + self._sendMaterials(material_ids_to_send) - ## Send the materials to the printer + ## From the local and remote materials, determine which ones should be synchronized. # - # The given materials will be loaded from disk en sent to to printer. The given id's will be mathed with - # filenames of the locally stored materials + # Makes a Set containing only the materials that are not on the printer yet or the ones that are newer in Cura. # - # \param materials_to_send A set with id's of materials that must be sent - def sendMaterialsToPrinter(self, materials_to_send) -> None: - for file_path in Resources.getAllResourcesOfType(CuraApplication.ResourceTypes.MaterialInstanceContainer): + # \param local_materials The local materials by GUID. + # \param remote_materials The remote materials by GUID. + @staticmethod + def _determineMaterialsToSend(local_materials: Dict[str, LocalMaterial], + remote_materials: Dict[str, ClusterMaterial]) -> Set[str]: + return { + material.id for guid, material in local_materials.items() + if guid not in remote_materials or material.version > remote_materials[guid].version + } + + ## Send the materials to the printer. + # + # The given materials will be loaded from disk en sent to to printer. + # The given id's will be matched with filenames of the locally stored materials. + # + # \param materials_to_send A set with id's of materials that must be sent. + def _sendMaterials(self, materials_to_send: Set[str]) -> None: + file_paths = Resources.getAllResourcesOfType(CuraApplication.ResourceTypes.MaterialInstanceContainer) + + # Find all local material files and send them if needed. + for file_path in file_paths: try: mime_type = MimeTypeDatabase.getMimeTypeForFile(file_path) except MimeTypeDatabase.MimeTypeNotFoundError: - continue # Not the sort of file we'd like to send then. - - _, file_name = os.path.split(file_path) - material_id = urllib.parse.unquote_plus(mime_type.stripExtension(file_name)) - - if material_id not in materials_to_send: continue + file_name = os.path.basename(file_path) + material_id = urllib.parse.unquote_plus(mime_type.stripExtension(file_name)) + if material_id not in materials_to_send: + # If the material does not have to be sent we skip it. + continue + + self._sendMaterialFile(file_path, file_name, material_id) + + ## Send a single material file to the printer. + # + # Also add the material signature file if that is available. + # + # \param file_path The path of the material file. + # \param file_name The name of the material file. + # \param material_id The ID of the material in the file. + def _sendMaterialFile(self, file_path: str, file_name: str, material_id: str) -> None: + parts = [] + + # Add the material file. with open(file_path, "rb") as f: - parts.append( - self.device._createFormPart("name=\"file\"; filename=\"{file_name}\"".format(file_name = file_name), - f.read())) - signature_file_path = file_path + ".sig" + parts.append(self.device.createFormPart("name=\"file\"; filename=\"{file_name}\"" + .format(file_name = file_name), f.read())) + + # Add the material signature file if needed. + signature_file_path = "{}.sig".format(file_path) if os.path.exists(signature_file_path): - _, signature_file_name = os.path.split(signature_file_path) + signature_file_name = os.path.basename(signature_file_path) with open(signature_file_path, "rb") as f: - parts.append(self.device._createFormPart( - "name=\"signature_file\"; filename=\"{file_name}\"".format(file_name = signature_file_name), - f.read())) + parts.append(self.device.createFormPart("name=\"signature_file\"; filename=\"{file_name}\"" + .format(file_name = signature_file_name), f.read())) Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id = material_id)) self.device.postFormWithParts(target = "materials/", parts = parts, on_finished = self.sendingFinished) ## Check a reply from an upload to the printer and log an error when the call failed - def sendingFinished(self, reply: QNetworkReply) -> None: + @staticmethod + def sendingFinished(reply: QNetworkReply) -> None: if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: - Logger.log("e", "Received error code from printer when syncing material: {code}".format( - code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute))) - Logger.log("e", reply.readAll().data().decode("utf-8")) + Logger.log("e", "Received error code from printer when syncing material: {code}, {text}".format( + code = reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), + text = reply.errorString() + )) ## Parse the reply from the printer # # Parses the reply to a "/materials" request to the printer # - # \return a dictionary of ClustMaterial objects by GUID + # \return a dictionary of ClusterMaterial objects by GUID # \throw json.JSONDecodeError Raised when the reply does not contain a valid json string - # \throw KeyErrror Raised when on of the materials does not include a valid guid + # \throw KeyError Raised when on of the materials does not include a valid guid @classmethod def _parseReply(cls, reply: QNetworkReply) -> Dict[str, ClusterMaterial]: remote_materials_list = json.loads(reply.readAll().data().decode("utf-8")) @@ -124,17 +164,21 @@ class SendMaterialJob(Job): # Only the new newest version of the local materials is returned # # \return a dictionary of LocalMaterial objects by GUID - @classmethod - def _getLocalMaterials(cls): - result = {} - for material in ContainerRegistry.getInstance().findContainersMetadata(type = "material"): - try: - localMaterial = LocalMaterial(**material) + def _getLocalMaterials(self) -> Dict[str, LocalMaterial]: + result = {} # type: Dict[str, LocalMaterial] + container_registry = self._application.getContainerRegistry() + material_containers = container_registry.findContainersMetadata(type = "material") - if localMaterial.GUID not in result or localMaterial.version > result.get(localMaterial.GUID).version: - result[localMaterial.GUID] = localMaterial - except (ValueError): - Logger.log("e", "Material {material_id} has invalid version number {number}.".format( - material_id = material["id"], number = material["version"])) + # Find the latest version of all material containers in the registry. + for m in material_containers: + try: + material = LocalMaterial(**m) + if material.GUID not in result or material.version > result.get(material.GUID).version: + result[material.GUID] = material + except ValueError as e: + Logger.log("w", "Local material {material_id} has invalid values: {e}".format( + material_id = m["id"], + e = e + )) return result From ee9210d8d1ce895d22636c74d8bf3218f39460f2 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 10:57:47 +0100 Subject: [PATCH 0318/1039] Rewrite tests --- .../UM3NetworkPrinting/src/SendMaterialJob.py | 2 +- .../tests/TestSendMaterialJob.py | 417 +++++++++--------- 2 files changed, 198 insertions(+), 221 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 6763901151..349e6929ff 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -32,7 +32,7 @@ class SendMaterialJob(Job): ## Send the request to the printer and register a callback def run(self) -> None: - self.device.get("materials/", on_finished = self.sendMissingMaterials) + self.device.get("materials/", on_finished = self._onGetRemoteMaterials) ## Process the materials reply from the printer. # diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index 03d2a81e89..bc6e1def14 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -1,6 +1,5 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. - import io import json from typing import Any, List @@ -17,16 +16,9 @@ from plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice import ClusterUM3Outp from plugins.UM3NetworkPrinting.src.Models import ClusterMaterial from plugins.UM3NetworkPrinting.src.SendMaterialJob import SendMaterialJob -# All log entries written to Log.log by the class-under-test are written to this list. It is cleared before each test -# run and check afterwards -_logentries = [] - - -def new_log(*args): - _logentries.append(args) - class ContainerRegistryMock(ContainerRegistryInterface): + def __init__(self): self.containersMetaData = None @@ -59,14 +51,16 @@ class FakeDevice(ClusterUM3OutputDevice): class TestSendMaterialJob(TestCase): - _LOCALMATERIAL_WHITE = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_white', + + _LOCAL_MATERIAL_WHITE = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_white', 'base_file': 'generic_pla_white', 'setting_version': 5, 'name': 'White PLA', 'brand': 'Generic', 'material': 'PLA', 'color_name': 'White', 'GUID': 'badb0ee7-87c8-4f3f-9398-938587b67dce', 'version': '1', 'color_code': '#ffffff', 'description': 'Test PLA White', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', 'properties': {'density': '1.00', 'diameter': '2.85', 'weight': '750'}, 'definition': 'fdmprinter', 'compatible': True} - _LOCALMATERIAL_BLACK = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_black', + + _LOCAL_MATERIAL_BLACK = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_black', 'base_file': 'generic_pla_black', 'setting_version': 5, 'name': 'Yellow CPE', 'brand': 'Ultimaker', 'material': 'CPE', 'color_name': 'Black', 'GUID': '5fbb362a-41f9-4818-bb43-15ea6df34aa4', 'version': '1', 'color_code': '#000000', @@ -74,7 +68,7 @@ class TestSendMaterialJob(TestCase): 'properties': {'density': '1.01', 'diameter': '2.85', 'weight': '750'}, 'definition': 'fdmprinter', 'compatible': True} - _REMOTEMATERIAL_WHITE = { + _REMOTE_MATERIAL_WHITE = { "guid": "badb0ee7-87c8-4f3f-9398-938587b67dce", "material": "PLA", "brand": "Generic", @@ -82,7 +76,8 @@ class TestSendMaterialJob(TestCase): "color": "White", "density": 1.00 } - _REMOTEMATERIAL_BLACK = { + + _REMOTE_MATERIAL_BLACK = { "guid": "5fbb362a-41f9-4818-bb43-15ea6df34aa4", "material": "PLA", "brand": "Generic", @@ -91,224 +86,206 @@ class TestSendMaterialJob(TestCase): "density": 1.00 } - def setUp(self): - # Make sure the we start with clean (log) slate - _logentries.clear() - - def tearDown(self): - # If there are still log entries that were not checked something is wrong or we must add checks for them - self.assertEqual(len(_logentries), 0) - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") def test_run(self, device_mock): - with mock.patch.object(Logger, 'log', new=new_log): - job = SendMaterialJob(device_mock) - job.run() - - device_mock.get.assert_called_with("materials/", on_finished=job.sendMissingMaterials) - self.assertEqual(0, len(_logentries)) + job = SendMaterialJob(device_mock) + job.run() + device_mock.get.assert_called_with("materials/", on_finished=job._onGetRemoteMaterials) + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_withFailedRequest(self, reply_mock): + def test_sendMissingMaterials_withFailedRequest(self, reply_mock, device_mock): reply_mock.attribute.return_value = 404 - - with mock.patch.object(Logger, 'log', new=new_log): - SendMaterialJob(None).sendMissingMaterials(reply_mock) - + SendMaterialJob(device_mock).run() reply_mock.attribute.assert_called_with(0) self.assertEqual(reply_mock.method_calls, [call.attribute(0)]) - self._assertLogEntries([('e', "Couldn't request current material storage on printer. Not syncing materials.")], - _logentries) + self.assertEqual(device_mock._onGetRemoteMaterials.method_calls, []) - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_withBadJsonAnswer(self, reply_mock): - reply_mock.attribute.return_value = 200 - reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') - - with mock.patch.object(Logger, 'log', new=new_log): - SendMaterialJob(None).sendMissingMaterials(reply_mock) - - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - self._assertLogEntries( - [('e', "Request material storage on printer: I didn't understand the printer's answer.")], - _logentries) - - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_withMissingGuid(self, reply_mock): - reply_mock.attribute.return_value = 200 - remoteMaterialWithoutGuid = self._REMOTEMATERIAL_WHITE.copy() - del remoteMaterialWithoutGuid["guid"] - reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithoutGuid]).encode("ascii")) - - with mock.patch.object(Logger, 'log', new=new_log): - SendMaterialJob(None).sendMissingMaterials(reply_mock) - - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - self._assertLogEntries( - [('e', "Request material storage on printer: Printer's answer was missing GUIDs.")], - _logentries) - - @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_WithInvalidVersionInLocalMaterial(self, reply_mock): - reply_mock.attribute.return_value = 200 - reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - - containerRegistry = ContainerRegistryMock() - localMaterialWhiteWithInvalidVersion = self._LOCALMATERIAL_WHITE.copy() - localMaterialWhiteWithInvalidVersion["version"] = "one" - containerRegistry.setContainersMetadata([localMaterialWhiteWithInvalidVersion]) - - with mock.patch.object(Logger, "log", new=new_log): - with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - SendMaterialJob(None).sendMissingMaterials(reply_mock) - - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - self._assertLogEntries([('e', "Material generic_pla_white has invalid version number one.")], _logentries) - - @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_WithMultipleLocalVersionsLowFirst(self, reply_mock): - reply_mock.attribute.return_value = 200 - reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - - containerRegistry = ContainerRegistryMock() - localMaterialWhiteWithHigherVersion = self._LOCALMATERIAL_WHITE.copy() - localMaterialWhiteWithHigherVersion["version"] = "2" - containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWhiteWithHigherVersion]) - - with mock.patch.object(Logger, "log", new=new_log): - with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - SendMaterialJob(None).sendMissingMaterials(reply_mock) - - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - self._assertLogEntries([], _logentries) - - @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_MaterialMissingOnPrinter(self, reply_mock): - reply_mock.attribute.return_value = 200 - reply_mock.readAll.return_value = QByteArray( - json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - - containerRegistry = ContainerRegistryMock() - containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) - - with mock.patch.object(Logger, "log", new=new_log): - with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - SendMaterialJob(None).sendMissingMaterials(reply_mock) - - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - self._assertLogEntries([], _logentries) - - @patch("builtins.open", lambda a, b: io.StringIO("")) - @patch("UM.MimeTypeDatabase.MimeTypeDatabase.getMimeTypeForFile", - lambda _: MimeType(name="application/x-ultimaker-material-profile", comment="Ultimaker Material Profile", - suffixes=["xml.fdm_material"])) - @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - def test_sendMaterialsToPrinter(self, device_mock): - device_mock._createFormPart.return_value = "_xXx_" - with mock.patch.object(Logger, "log", new=new_log): - job = SendMaterialJob(device_mock) - job.sendMaterialsToPrinter({'generic_pla_white'}) - - self._assertLogEntries([("d", "Syncing material generic_pla_white with cluster.")], _logentries) - self.assertEqual([call._createFormPart('name="file"; filename="generic_pla_white.xml.fdm_material"', ''), - call.postFormWithParts(on_finished=job.sendingFinished, parts = ["_xXx_"], target = "materials/")], device_mock.method_calls) - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendingFinished_success(self, reply_mock) -> None: + def test_sendMissingMaterials_withBadJsonAnswer(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 - with mock.patch.object(Logger, 'log', new=new_log): - SendMaterialJob(None).sendingFinished(reply_mock) - - reply_mock.attribute.assert_called_once_with(0) - self.assertEqual(0, len(_logentries)) - - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendingFinished_failed(self, reply_mock) -> None: - reply_mock.attribute.return_value = 404 reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') - - with mock.patch.object(Logger, 'log', new=new_log): - SendMaterialJob(None).sendingFinished(reply_mock) - + SendMaterialJob(device_mock).run() reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.attribute(0), call.readAll()]) + self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + self.assertEqual(device_mock._onGetRemoteMaterials.method_calls, []) - self._assertLogEntries([ - ("e", "Received error code from printer when syncing material: 404"), - ("e", "Six sick hicks nick six slick bricks with picks and sticks.") - ], _logentries) - - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_parseReply(self, reply_mock): - reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - - response = SendMaterialJob._parseReply(reply_mock) - - self.assertTrue(len(response) == 1) - self.assertEqual(next(iter(response.values())), ClusterMaterial(**self._REMOTEMATERIAL_WHITE)) - - @patch("PyQt5.QtNetwork.QNetworkReply") - def test_parseReplyWithInvalidMaterial(self, reply_mock): - remoteMaterialWithInvalidVersion = self._REMOTEMATERIAL_WHITE.copy() - remoteMaterialWithInvalidVersion["version"] = "one" - reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithInvalidVersion]).encode("ascii")) - - with self.assertRaises(ValueError): - SendMaterialJob._parseReply(reply_mock) - - def test__getLocalMaterials(self): - containerRegistry = ContainerRegistryMock() - containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) - - with mock.patch.object(Logger, "log", new=new_log): - with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - local_materials = SendMaterialJob(None)._getLocalMaterials() - - self.assertTrue(len(local_materials) == 2) - - def test__getLocalMaterialsWithMultipleVersions(self): - containerRegistry = ContainerRegistryMock() - localMaterialWithNewerVersion = self._LOCALMATERIAL_WHITE.copy() - localMaterialWithNewerVersion["version"] = 2 - containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWithNewerVersion]) - - with mock.patch.object(Logger, "log", new=new_log): - with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - local_materials = SendMaterialJob(None)._getLocalMaterials() - - self.assertTrue(len(local_materials) == 1) - self.assertTrue(list(local_materials.values())[0].version == 2) - - containerRegistry.setContainersMetadata([localMaterialWithNewerVersion, self._LOCALMATERIAL_WHITE]) - - with mock.patch.object(Logger, "log", new=new_log): - with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - local_materials = SendMaterialJob(None)._getLocalMaterials() - - self.assertTrue(len(local_materials) == 1) - self.assertTrue(list(local_materials.values())[0].version == 2) - - def _assertLogEntries(self, first, second): - """ - Inspects the two sets of log entry tuples and fails when they are not the same - :param first: The first set of tuples - :param second: The second set of tuples - """ - self.assertEqual(len(first), len(second)) - - while len(first) > 0: - e1, m1 = first[0] - e2, m2 = second[0] - self.assertEqual(e1, e2) - self.assertEqual(m1, m2) - first.pop(0) - second.pop(0) + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_sendMissingMaterials_withMissingGuid(self, reply_mock): + # reply_mock.attribute.return_value = 200 + # remoteMaterialWithoutGuid = self._REMOTEMATERIAL_WHITE.copy() + # del remoteMaterialWithoutGuid["guid"] + # reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithoutGuid]).encode("ascii")) + # + # with mock.patch.object(Logger, 'log', new=new_log): + # SendMaterialJob(None).sendMissingMaterials(reply_mock) + # + # reply_mock.attribute.assert_called_with(0) + # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + # self._assertLogEntries( + # [('e', "Request material storage on printer: Printer's answer was missing GUIDs.")], + # _logentries) + # + # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_sendMissingMaterials_WithInvalidVersionInLocalMaterial(self, reply_mock): + # reply_mock.attribute.return_value = 200 + # reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + # + # containerRegistry = ContainerRegistryMock() + # localMaterialWhiteWithInvalidVersion = self._LOCALMATERIAL_WHITE.copy() + # localMaterialWhiteWithInvalidVersion["version"] = "one" + # containerRegistry.setContainersMetadata([localMaterialWhiteWithInvalidVersion]) + # + # with mock.patch.object(Logger, "log", new=new_log): + # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + # SendMaterialJob(None).sendMissingMaterials(reply_mock) + # + # reply_mock.attribute.assert_called_with(0) + # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + # self._assertLogEntries([('e', "Material generic_pla_white has invalid version number one.")], _logentries) + # + # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_sendMissingMaterials_WithMultipleLocalVersionsLowFirst(self, reply_mock): + # reply_mock.attribute.return_value = 200 + # reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + # + # containerRegistry = ContainerRegistryMock() + # localMaterialWhiteWithHigherVersion = self._LOCALMATERIAL_WHITE.copy() + # localMaterialWhiteWithHigherVersion["version"] = "2" + # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWhiteWithHigherVersion]) + # + # with mock.patch.object(Logger, "log", new=new_log): + # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + # SendMaterialJob(None).sendMissingMaterials(reply_mock) + # + # reply_mock.attribute.assert_called_with(0) + # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + # self._assertLogEntries([], _logentries) + # + # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_sendMissingMaterials_MaterialMissingOnPrinter(self, reply_mock): + # reply_mock.attribute.return_value = 200 + # reply_mock.readAll.return_value = QByteArray( + # json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + # + # containerRegistry = ContainerRegistryMock() + # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) + # + # with mock.patch.object(Logger, "log", new=new_log): + # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + # SendMaterialJob(None).sendMissingMaterials(reply_mock) + # + # reply_mock.attribute.assert_called_with(0) + # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) + # self._assertLogEntries([], _logentries) + # + # @patch("builtins.open", lambda a, b: io.StringIO("")) + # @patch("UM.MimeTypeDatabase.MimeTypeDatabase.getMimeTypeForFile", + # lambda _: MimeType(name="application/x-ultimaker-material-profile", comment="Ultimaker Material Profile", + # suffixes=["xml.fdm_material"])) + # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) + # @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + # def test_sendMaterialsToPrinter(self, device_mock): + # device_mock._createFormPart.return_value = "_xXx_" + # with mock.patch.object(Logger, "log", new=new_log): + # job = SendMaterialJob(device_mock) + # job.sendMaterialsToPrinter({'generic_pla_white'}) + # + # self._assertLogEntries([("d", "Syncing material generic_pla_white with cluster.")], _logentries) + # self.assertEqual([call._createFormPart('name="file"; filename="generic_pla_white.xml.fdm_material"', ''), + # call.postFormWithParts(on_finished=job.sendingFinished, parts = ["_xXx_"], target = "materials/")], device_mock.method_calls) + # + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_sendingFinished_success(self, reply_mock) -> None: + # reply_mock.attribute.return_value = 200 + # with mock.patch.object(Logger, 'log', new=new_log): + # SendMaterialJob(None).sendingFinished(reply_mock) + # + # reply_mock.attribute.assert_called_once_with(0) + # self.assertEqual(0, len(_logentries)) + # + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_sendingFinished_failed(self, reply_mock) -> None: + # reply_mock.attribute.return_value = 404 + # reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') + # + # with mock.patch.object(Logger, 'log', new=new_log): + # SendMaterialJob(None).sendingFinished(reply_mock) + # + # reply_mock.attribute.assert_called_with(0) + # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.attribute(0), call.readAll()]) + # + # self._assertLogEntries([ + # ("e", "Received error code from printer when syncing material: 404"), + # ("e", "Six sick hicks nick six slick bricks with picks and sticks.") + # ], _logentries) + # + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_parseReply(self, reply_mock): + # reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) + # + # response = SendMaterialJob._parseReply(reply_mock) + # + # self.assertTrue(len(response) == 1) + # self.assertEqual(next(iter(response.values())), ClusterMaterial(**self._REMOTEMATERIAL_WHITE)) + # + # @patch("PyQt5.QtNetwork.QNetworkReply") + # def test_parseReplyWithInvalidMaterial(self, reply_mock): + # remoteMaterialWithInvalidVersion = self._REMOTEMATERIAL_WHITE.copy() + # remoteMaterialWithInvalidVersion["version"] = "one" + # reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithInvalidVersion]).encode("ascii")) + # + # with self.assertRaises(ValueError): + # SendMaterialJob._parseReply(reply_mock) + # + # def test__getLocalMaterials(self): + # containerRegistry = ContainerRegistryMock() + # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) + # + # with mock.patch.object(Logger, "log", new=new_log): + # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + # local_materials = SendMaterialJob(None)._getLocalMaterials() + # + # self.assertTrue(len(local_materials) == 2) + # + # def test__getLocalMaterialsWithMultipleVersions(self): + # containerRegistry = ContainerRegistryMock() + # localMaterialWithNewerVersion = self._LOCALMATERIAL_WHITE.copy() + # localMaterialWithNewerVersion["version"] = 2 + # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWithNewerVersion]) + # + # with mock.patch.object(Logger, "log", new=new_log): + # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + # local_materials = SendMaterialJob(None)._getLocalMaterials() + # + # self.assertTrue(len(local_materials) == 1) + # self.assertTrue(list(local_materials.values())[0].version == 2) + # + # containerRegistry.setContainersMetadata([localMaterialWithNewerVersion, self._LOCALMATERIAL_WHITE]) + # + # with mock.patch.object(Logger, "log", new=new_log): + # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): + # local_materials = SendMaterialJob(None)._getLocalMaterials() + # + # self.assertTrue(len(local_materials) == 1) + # self.assertTrue(list(local_materials.values())[0].version == 2) + # + # def _assertLogEntries(self, first, second): + # """ + # Inspects the two sets of log entry tuples and fails when they are not the same + # :param first: The first set of tuples + # :param second: The second set of tuples + # """ + # self.assertEqual(len(first), len(second)) + # + # while len(first) > 0: + # e1, m1 = first[0] + # e2, m2 = second[0] + # self.assertEqual(e1, e2) + # self.assertEqual(m1, m2) + # first.pop(0) + # second.pop(0) From a490e420f09327be74f0145fb055ab5021d315c7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 19 Nov 2018 11:42:04 +0100 Subject: [PATCH 0319/1039] Prevent the setting items from being recreated every stage switch CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 20 +++++++++----------- plugins/PreviewStage/PreviewMenu.qml | 12 +++++++----- resources/qml/Cura.qml | 11 +++++++++++ 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index c464727dde..ef01625a22 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -13,6 +13,7 @@ Item signal showTooltip(Item item, point location, string text) signal hideTooltip() + UM.I18nCatalog { id: catalog @@ -71,7 +72,7 @@ Item { Layout.fillHeight: true Layout.fillWidth: true - Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelector.width - 2 * UM.Theme.getSize("default_lining").width + Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelectorItem.width - 2 * UM.Theme.getSize("default_lining").width } // Separator line @@ -82,17 +83,14 @@ Item color: UM.Theme.getColor("lining") } - Cura.PrintSetupSelector + Item { - id: printSetupSelector - - onShowTooltip: prepareMenu.showTooltip(item, location, text) - onHideTooltip: prepareMenu.hideTooltip() - - Layout.minimumWidth: UM.Theme.getSize("print_setup_widget").width - Layout.maximumWidth: UM.Theme.getSize("print_setup_widget").width - Layout.fillWidth: true - Layout.fillHeight: true + id: printSetupSelectorItem + // This is a work around to prevent the printSetupSelector from having to be re-loaded every time + // a stage switch is done. + children: [printSetupSelector] + height: childrenRect.height + width: childrenRect.width } } } diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index b73c1088ae..b331ff69c5 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -138,12 +138,14 @@ Item color: UM.Theme.getColor("lining") } - Cura.PrintSetupSelector + Item { - width: UM.Theme.getSize("print_setup_widget").width - height: parent.height - onShowTooltip: previewMenu.showTooltip(item, location, text) - onHideTooltip: previewMenu.hideTooltip() + id: printSetupSelectorItem + // This is a work around to prevent the printSetupSelector from having to be re-loaded every time + // a stage switch is done. + children: [printSetupSelector] + height: childrenRect.height + width: childrenRect.width } } } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 0312a636a6..c239dc8d6f 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -40,6 +40,7 @@ UM.MainWindow tooltip.hide(); } + Component.onCompleted: { CuraApplication.setMinimumWindowSize(UM.Theme.getSize("window_minimum_size")) @@ -249,6 +250,16 @@ UM.MainWindow height: UM.Theme.getSize("stage_menu").height source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : "" + + // The printSetupSelector is defined here so that the setting list doesn't need to get re-instantiated + // Every time the stage is changed. + property var printSetupSelector: Cura.PrintSetupSelector + { + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + width: UM.Theme.getSize("print_setup_widget").width + height: UM.Theme.getSize("stage_menu").height + } } UM.MessageStack From 2f624cc78f18baf189e3d39c928ebc605746a6c1 Mon Sep 17 00:00:00 2001 From: Dario Minnucci Date: Mon, 19 Nov 2018 12:37:57 +0100 Subject: [PATCH 0320/1039] Add BIBO2 printer (dual and single extruder settings) --- resources/definitions/bibo2_dual.def.json | 98 +++++++++++++++++++ .../bibo2_single_extruder_0.def.json | 98 +++++++++++++++++++ .../bibo2_single_extruder_1.def.json | 98 +++++++++++++++++++ .../extruders/bibo2_dual_extruder_0.def.json | 40 ++++++++ .../extruders/bibo2_dual_extruder_1.def.json | 40 ++++++++ .../bibo2_single_extruder_0_0.def.json | 40 ++++++++ .../bibo2_single_extruder_0_1.def.json | 40 ++++++++ .../bibo2_single_extruder_1_0.def.json | 40 ++++++++ .../bibo2_single_extruder_1_1.def.json | 40 ++++++++ 9 files changed, 534 insertions(+) create mode 100644 resources/definitions/bibo2_dual.def.json create mode 100644 resources/definitions/bibo2_single_extruder_0.def.json create mode 100644 resources/definitions/bibo2_single_extruder_1.def.json create mode 100644 resources/extruders/bibo2_dual_extruder_0.def.json create mode 100644 resources/extruders/bibo2_dual_extruder_1.def.json create mode 100644 resources/extruders/bibo2_single_extruder_0_0.def.json create mode 100644 resources/extruders/bibo2_single_extruder_0_1.def.json create mode 100644 resources/extruders/bibo2_single_extruder_1_0.def.json create mode 100644 resources/extruders/bibo2_single_extruder_1_1.def.json diff --git a/resources/definitions/bibo2_dual.def.json b/resources/definitions/bibo2_dual.def.json new file mode 100644 index 0000000000..e57fb64ec0 --- /dev/null +++ b/resources/definitions/bibo2_dual.def.json @@ -0,0 +1,98 @@ +{ + "id": "BIBO2 dual", + "version": 2, + "name": "BIBO2 dual", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "na", + "manufacturer": "BIBO", + "category": "Other", + "file_formats": "text/x-gcode", + "has_materials": true, + "machine_extruder_trains": { + "0": "bibo2_dual_extruder_0", + "1": "bibo2_dual_extruder_1" + }, + "first_start_actions": [ + "MachineSettingsAction" + ] + }, + "overrides": { + "machine_name": { + "default_value": "BIBO2 dual" + }, + "machine_width": { + "default_value": 214 + }, + "machine_height": { + "default_value": 160 + }, + "machine_depth": { + "default_value": 186 + }, + "machine_center_is_zero": { + "default_value": true + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 2 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 2 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [ + -68.18, + 64.63 + ], + [ + -68.18, + -47.38 + ], + [ + 35.18, + 64.63 + ], + [ + 35.18, + -47.38 + ] + ] + }, + "material_diameter": { + "default_value": 1.75 + }, + "gantry_height": { + "default_value": 12 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z2.0 F400 ;move the platform down 15mm\nT0\nG92 E0\nG28\nG1 Y0 F1200 E0\nG92 E0\nM117 BIBO Printing..." + }, + "machine_end_gcode": { + "default_value": ";End GCode\nM104 T0 S0 ;extruder heater off\nM104 T1 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91\nG1 Z1 F100 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-2 X-20 Y-20 F300 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { + "default_value": 2 + }, + "prime_tower_position_x": { + "default_value": 50 + }, + "prime_tower_position_y": { + "default_value": 50 + } + } +} + diff --git a/resources/definitions/bibo2_single_extruder_0.def.json b/resources/definitions/bibo2_single_extruder_0.def.json new file mode 100644 index 0000000000..93c7a4e5ae --- /dev/null +++ b/resources/definitions/bibo2_single_extruder_0.def.json @@ -0,0 +1,98 @@ +{ + "id": "BIBO2 single E1", + "version": 2, + "name": "BIBO2 single E1", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "na", + "manufacturer": "BIBO", + "category": "Other", + "file_formats": "text/x-gcode", + "has_materials": true, + "machine_extruder_trains": { + "0": "bibo2_single_extruder_0_0", + "1": "bibo2_single_extruder_0_1" + }, + "first_start_actions": [ + "MachineSettingsAction" + ] + }, + "overrides": { + "machine_name": { + "default_value": "BIBO2 single Extruder 1 (right)" + }, + "machine_width": { + "default_value": 214 + }, + "machine_height": { + "default_value": 160 + }, + "machine_depth": { + "default_value": 186 + }, + "machine_center_is_zero": { + "default_value": true + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 2 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 2 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [ + -68.18, + 64.63 + ], + [ + -68.18, + -47.38 + ], + [ + 35.18, + 64.63 + ], + [ + 35.18, + -47.38 + ] + ] + }, + "material_diameter": { + "default_value": 1.75 + }, + "gantry_height": { + "default_value": 12 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": ";Startcode BIBO printers\nM109 T1 S170 ;preheat the other extruder, so it will not knock or ruin the print\nG90 ; absolute mode\nG21 ; metric values\nM82 ; Extruder in absolute mode\nM107\nG28\nG1 Z2 F400\nT0\nG90\nG92 E0\nG28\nG1 Y0 F1200 E0\nG92 E0\nG1 X-15.0 Y-92.9 Z0.3 F2400.0\t\t; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2\t\t; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4\t\t; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0\t\t; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6\t\t; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8\t\t; draw 4th line\nG1 X-16.0 Y-91.7 Z0.3 F3000.0\t\t; move to side a little\nG1 X16.0 Y-91.7 Z0.3 F1000.0 E10\t\t; draw 5th line\nG1 X16.0 Y-91.4 Z0.3 F3000.0\t\t; move to side a little\nG1 X-16.0 Y-91.4 Z0.3 F1000.0 E12\t\t; draw 5th line\nG1 E11.5 F2400\t\t\t\t; retract filament 0.5mm\nG92 E0\nM117 BIBO Printing..." + }, + "machine_end_gcode": { + "default_value": ";BIBO End GCode\nM107\nG91 ; Relative positioning\nG1 Z1 F100\nM104 T0 S0\nM104 T1 S0\nG1 X-20 Y-20 F3000\nG28 X0 Y0\nG90 ; Absolute positioning\nG92 E0 ; Reset extruder position\nM140 S0 ; Disable heated bed\nM84 ; Turn steppers off\nM117 BIBO Print complete\n " + }, + "machine_extruder_count": { + "default_value": 2 + }, + "prime_tower_position_x": { + "default_value": 50 + }, + "prime_tower_position_y": { + "default_value": 50 + } + } +} + diff --git a/resources/definitions/bibo2_single_extruder_1.def.json b/resources/definitions/bibo2_single_extruder_1.def.json new file mode 100644 index 0000000000..246add09ab --- /dev/null +++ b/resources/definitions/bibo2_single_extruder_1.def.json @@ -0,0 +1,98 @@ +{ + "id": "BIBO2 single E2", + "version": 2, + "name": "BIBO2 single E2", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "na", + "manufacturer": "BIBO", + "category": "Other", + "file_formats": "text/x-gcode", + "has_materials": true, + "machine_extruder_trains": { + "0": "bibo2_single_extruder_1_0", + "1": "bibo2_single_extruder_1_1" + }, + "first_start_actions": [ + "MachineSettingsAction" + ] + }, + "overrides": { + "machine_name": { + "default_value": "BIBO2 single Extruder 2 (left)" + }, + "machine_width": { + "default_value": 214 + }, + "machine_height": { + "default_value": 160 + }, + "machine_depth": { + "default_value": 186 + }, + "machine_center_is_zero": { + "default_value": true + }, + "machine_heated_bed": { + "default_value": true + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "machine_nozzle_heat_up_speed": { + "default_value": 2 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 2 + }, + "machine_head_with_fans_polygon": { + "default_value": [ + [ + -68.18, + 64.63 + ], + [ + -68.18, + -47.38 + ], + [ + 35.18, + 64.63 + ], + [ + 35.18, + -47.38 + ] + ] + }, + "material_diameter": { + "default_value": 1.75 + }, + "gantry_height": { + "default_value": 12 + }, + "machine_use_extruder_offset_to_offset_coords": { + "default_value": true + }, + "machine_gcode_flavor": { + "default_value": "RepRap (Marlin/Sprinter)" + }, + "machine_start_gcode": { + "default_value": ";Startcode BIBO printers\nM109 T0 S170 ;preheat the other extruder, so it will not knock or ruin the print\nG90 ; absolute mode\nG21 ; metric values\nM82 ; Extruder in absolute mode\nM107\nG28\nG1 Z2 F400\nT0\nG90\nG92 E0\nG28\nG1 Y0 F1200 E0\nG92 E0\nT1\nG92 E0\nG1 X-15.0 Y-92.9 Z0.3 F2400.0\t\t; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2\t\t; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4\t\t; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0\t\t; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6\t\t; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8\t\t; draw 4th line\nG1 X-16.0 Y-91.7 Z0.3 F3000.0\t\t; move to side a little\nG1 X16.0 Y-91.7 Z0.3 F1000.0 E10\t\t; draw 5th line\nG1 X16.0 Y-91.4 Z0.3 F3000.0\t\t; move to side a little\nG1 X-16.0 Y-91.4 Z0.3 F1000.0 E12\t\t; draw 5th line\nG1 E11.5 F2400\t\t\t\t; retract filament 0.5mm\nG92 E0\nM117 BIBO Printing..." + }, + "machine_end_gcode": { + "default_value": ";BIBO End GCode\nM107\nG91 ; Relative positioning\nG1 Z1 F100\nM104 T0 S0\nM104 T1 S0\nG1 X-20 Y-20 F3000\nG28 X0 Y0\nG90 ; Absolute positioning\nG92 E0 ; Reset extruder position\nM140 S0 ; Disable heated bed\nM84 ; Turn steppers off\nM117 BIBO Print complete\n " + }, + "machine_extruder_count": { + "default_value": 2 + }, + "prime_tower_position_x": { + "default_value": 50 + }, + "prime_tower_position_y": { + "default_value": 50 + } + } +} + diff --git a/resources/extruders/bibo2_dual_extruder_0.def.json b/resources/extruders/bibo2_dual_extruder_0.def.json new file mode 100644 index 0000000000..7cdc03d504 --- /dev/null +++ b/resources/extruders/bibo2_dual_extruder_0.def.json @@ -0,0 +1,40 @@ +{ + "id": "BIBO1", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "BIBO2 dual", + "position": "0" + }, + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { + "default_value": 0.0 + }, + "machine_nozzle_offset_y": { + "default_value": 0.0 + }, + "machine_extruder_start_pos_abs": { + "default_value": true + }, + "machine_extruder_start_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_start_pos_y": { + "value": "prime_tower_position_y" + }, + "machine_extruder_end_pos_abs": { + "default_value": true + }, + "machine_extruder_end_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_end_pos_y": { + "value": "prime_tower_position_y" + } + } +} diff --git a/resources/extruders/bibo2_dual_extruder_1.def.json b/resources/extruders/bibo2_dual_extruder_1.def.json new file mode 100644 index 0000000000..daa1504220 --- /dev/null +++ b/resources/extruders/bibo2_dual_extruder_1.def.json @@ -0,0 +1,40 @@ +{ + "id": "BIBO2", + "version": 2, + "name": "Extruder 2", + "inherits": "fdmextruder", + "metadata": { + "machine": "BIBO2 dual", + "position": "1" + }, + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { + "default_value": 0 + }, + "machine_nozzle_offset_y": { + "default_value": 0 + }, + "machine_extruder_start_pos_abs": { + "default_value": true + }, + "machine_extruder_start_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_start_pos_y": { + "value": "prime_tower_position_y" + }, + "machine_extruder_end_pos_abs": { + "default_value": true + }, + "machine_extruder_end_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_end_pos_y": { + "value": "prime_tower_position_y" + } + } +} diff --git a/resources/extruders/bibo2_single_extruder_0_0.def.json b/resources/extruders/bibo2_single_extruder_0_0.def.json new file mode 100644 index 0000000000..7d0b246131 --- /dev/null +++ b/resources/extruders/bibo2_single_extruder_0_0.def.json @@ -0,0 +1,40 @@ +{ + "id": "BIBO2 E1a", + "version": 2, + "name": "BIBO2 E1", + "inherits": "fdmextruder", + "metadata": { + "machine": "BIBO2 single E1", + "position": "0" + }, + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { + "default_value": 0.0 + }, + "machine_nozzle_offset_y": { + "default_value": 0.0 + }, + "machine_extruder_start_pos_abs": { + "default_value": true + }, + "machine_extruder_start_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_start_pos_y": { + "value": "prime_tower_position_y" + }, + "machine_extruder_end_pos_abs": { + "default_value": true + }, + "machine_extruder_end_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_end_pos_y": { + "value": "prime_tower_position_y" + } + } +} diff --git a/resources/extruders/bibo2_single_extruder_0_1.def.json b/resources/extruders/bibo2_single_extruder_0_1.def.json new file mode 100644 index 0000000000..76187696fc --- /dev/null +++ b/resources/extruders/bibo2_single_extruder_0_1.def.json @@ -0,0 +1,40 @@ +{ + "id": "BIBO2 E1b", + "version": 2, + "name": "E2 not used", + "inherits": "fdmextruder", + "metadata": { + "machine": "BIBO2 single E1", + "position": "1" + }, + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { + "default_value": 0.0 + }, + "machine_nozzle_offset_y": { + "default_value": 0.0 + }, + "machine_extruder_start_pos_abs": { + "default_value": true + }, + "machine_extruder_start_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_start_pos_y": { + "value": "prime_tower_position_y" + }, + "machine_extruder_end_pos_abs": { + "default_value": true + }, + "machine_extruder_end_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_end_pos_y": { + "value": "prime_tower_position_y" + } + } +} diff --git a/resources/extruders/bibo2_single_extruder_1_0.def.json b/resources/extruders/bibo2_single_extruder_1_0.def.json new file mode 100644 index 0000000000..3cf667de82 --- /dev/null +++ b/resources/extruders/bibo2_single_extruder_1_0.def.json @@ -0,0 +1,40 @@ +{ + "id": "BIBO2 E2a", + "version": 2, + "name": "E1 not used", + "inherits": "fdmextruder", + "metadata": { + "machine": "BIBO2 single E2", + "position": "0" + }, + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { + "default_value": 0 + }, + "machine_nozzle_offset_y": { + "default_value": 0 + }, + "machine_extruder_start_pos_abs": { + "default_value": true + }, + "machine_extruder_start_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_start_pos_y": { + "value": "prime_tower_position_y" + }, + "machine_extruder_end_pos_abs": { + "default_value": true + }, + "machine_extruder_end_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_end_pos_y": { + "value": "prime_tower_position_y" + } + } +} diff --git a/resources/extruders/bibo2_single_extruder_1_1.def.json b/resources/extruders/bibo2_single_extruder_1_1.def.json new file mode 100644 index 0000000000..e8f3ec7054 --- /dev/null +++ b/resources/extruders/bibo2_single_extruder_1_1.def.json @@ -0,0 +1,40 @@ +{ + "id": "BIBO2 E2b", + "version": 2, + "name": "BIBO2 E2", + "inherits": "fdmextruder", + "metadata": { + "machine": "BIBO2 single E2", + "position": "1" + }, + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { + "default_value": 0 + }, + "machine_nozzle_offset_y": { + "default_value": 0 + }, + "machine_extruder_start_pos_abs": { + "default_value": true + }, + "machine_extruder_start_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_start_pos_y": { + "value": "prime_tower_position_y" + }, + "machine_extruder_end_pos_abs": { + "default_value": true + }, + "machine_extruder_end_pos_x": { + "value": "prime_tower_position_x" + }, + "machine_extruder_end_pos_y": { + "value": "prime_tower_position_y" + } + } +} From b0f3fedc94354d30a8677bc93f02e67a9ec3d0f0 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 19 Nov 2018 13:42:19 +0100 Subject: [PATCH 0321/1039] Fix import QtQuick versions to suit Qt 5.10 CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 3 +-- resources/qml/MachineSelector.qml | 2 +- .../qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index b331ff69c5..1a744aeb65 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -2,8 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 - -import QtQuick.Controls 2.4 +import QtQuick.Controls 2.3 import UM 1.3 as UM import Cura 1.1 as Cura diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index a464949192..c9756d93ba 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -2,7 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 2.4 +import QtQuick.Controls 2.3 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 33610135fe..d428a05463 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -4,7 +4,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Controls.Styles 1.4 -import QtQuick.Layouts 1.11 +import QtQuick.Layouts 1.3 import QtQuick.Controls 1.1 as OldControls From f8f133d2ef92dfabb636eac70b09e681bd4b4d63 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 13:42:28 +0100 Subject: [PATCH 0322/1039] Fix running tests in plugin using pytest --- .../tests/TestLegacyProfileReader.py | 9 +++++---- .../tests/TestVersionUpgrade25to26.py | 11 ++++++++--- .../tests/TestVersionUpgrade26to27.py | 9 +++++---- .../tests/TestVersionUpgrade27to30.py | 8 ++++---- .../tests/TestVersionUpgrade34to35.py | 10 ++++++---- 5 files changed, 28 insertions(+), 19 deletions(-) diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py index 480a61f301..3c9e46b6d8 100644 --- a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -1,8 +1,7 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. - import configparser # An input for some functions we're testing. -import os.path # To find the integration test .ini files. +import os # To find the integration test .ini files. import pytest # To register tests with. import unittest.mock # To mock the application, plug-in and container registry out. @@ -11,13 +10,15 @@ import UM.PluginRegistry # To mock the plug-in registry out. import UM.Settings.ContainerRegistry # To mock the container registry out. import UM.Settings.InstanceContainer # To intercept the serialised data from the read() function. -import LegacyProfileReader as LegacyProfileReaderModule # To get the directory of the module. -from LegacyProfileReader import LegacyProfileReader # The module we're testing. +import plugins.LegacyProfileReader.LegacyProfileReader as LegacyProfileReaderModule +from plugins.LegacyProfileReader.LegacyProfileReader import LegacyProfileReader + @pytest.fixture def legacy_profile_reader(): return LegacyProfileReader() + test_prepareDefaultsData = [ { "defaults": diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py index 9d7c7646cc..588c0cb3db 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py @@ -1,16 +1,17 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import configparser +import pytest -import configparser #To check whether the appropriate exceptions are raised. -import pytest #To register tests with. +from plugins.VersionUpgrade.VersionUpgrade25to26 import VersionUpgrade25to26 -import VersionUpgrade25to26 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): return VersionUpgrade25to26.VersionUpgrade25to26() + test_cfg_version_good_data = [ { "test_name": "Simple", @@ -60,6 +61,7 @@ setting_version = -3 } ] + ## Tests the technique that gets the version number from CFG files. # # \param data The parametrised data to test with. It contains a test name @@ -116,6 +118,7 @@ version = 1.2 } ] + ## Tests whether getting a version number from bad CFG files gives an # exception. # @@ -155,6 +158,7 @@ foo = bar } ] + ## Tests whether the settings that should be removed are removed for the 2.6 # version of preferences. @pytest.mark.parametrize("data", test_upgrade_preferences_removed_settings_data) @@ -200,6 +204,7 @@ type = instance_container } ] + ## Tests whether the settings that should be removed are removed for the 2.6 # version of instance containers. @pytest.mark.parametrize("data", test_upgrade_instance_container_removed_settings_data) diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py index eebaca23c6..45d41e7a1b 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py @@ -1,15 +1,16 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import configparser +import pytest -import configparser #To check whether the appropriate exceptions are raised. -import pytest #To register tests with. +from plugins.VersionUpgrade.VersionUpgrade26to27.VersionUpgrade26to27 import VersionUpgrade26to27 -import VersionUpgrade26to27 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): - return VersionUpgrade26to27.VersionUpgrade26to27() + return VersionUpgrade26to27() + test_cfg_version_good_data = [ { diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py index cae08ebcfd..7b77b85993 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py @@ -1,15 +1,15 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import configparser +import pytest -import configparser #To parse the resulting config files. -import pytest #To register tests with. +from plugins.VersionUpgrade.VersionUpgrade27to30.VersionUpgrade27to30 import VersionUpgrade27to30 -import VersionUpgrade27to30 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): - return VersionUpgrade27to30.VersionUpgrade27to30() + return VersionUpgrade27to30() test_cfg_version_good_data = [ { diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py b/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py index b74e6f35ac..4f77fcd093 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py @@ -1,15 +1,16 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import configparser +import pytest -import configparser #To parse the resulting config files. -import pytest #To register tests with. +from plugins.VersionUpgrade.VersionUpgrade34to35.VersionUpgrade34to35 import VersionUpgrade34to35 -import VersionUpgrade34to35 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): - return VersionUpgrade34to35.VersionUpgrade34to35() + return VersionUpgrade34to35() + test_upgrade_version_nr_data = [ ("Empty config file", @@ -25,6 +26,7 @@ test_upgrade_version_nr_data = [ ) ] + ## Tests whether the version numbers are updated. @pytest.mark.parametrize("test_name, file_data", test_upgrade_version_nr_data) def test_upgradeVersionNr(test_name, file_data, upgrader): From 30b20b4aa56e6bda5cc0f7f6ae0ab7a4f2a2e905 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 19 Nov 2018 13:50:32 +0100 Subject: [PATCH 0323/1039] Add borders to expandable components This adds a lining to all of the drop-downs from the stage menus. Contributes to issue CURA-5876. --- resources/qml/ExpandableComponent.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 8ed6dc5674..0a80e020c9 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -17,6 +17,8 @@ Item property var popupItem property color popupBackgroundColor: UM.Theme.getColor("action_button") + property int popupBorderWidth: UM.Theme.getSize("default_lining").width + property color popupBorderColor: UM.Theme.getColor("lining") property color headerBackgroundColor: UM.Theme.getColor("action_button") property color headerHoverColor: UM.Theme.getColor("action_button_hovered") @@ -147,6 +149,8 @@ Item background: Rectangle { color: popupBackgroundColor + border.width: popupBorderWidth + border.color: popupBorderColor } } } From dc17bd849968d180dc061aff6ca7eaed53bfcff1 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 13:54:45 +0100 Subject: [PATCH 0324/1039] Fix the first tests --- .../UM3NetworkPrinting/src/SendMaterialJob.py | 1 + .../tests/TestSendMaterialJob.py | 23 ++++++++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 349e6929ff..572558e352 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -157,6 +157,7 @@ class SendMaterialJob(Job): @classmethod def _parseReply(cls, reply: QNetworkReply) -> Dict[str, ClusterMaterial]: remote_materials_list = json.loads(reply.readAll().data().decode("utf-8")) + print("remote_materials_list", remote_materials_list) return {material["guid"]: ClusterMaterial(**material) for material in remote_materials_list} ## Retrieves a list of local materials diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index bc6e1def14..b51d978ed2 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -90,26 +90,33 @@ class TestSendMaterialJob(TestCase): def test_run(self, device_mock): job = SendMaterialJob(device_mock) job.run() + + # We expect the materials endpoint to be called when the job runs. device_mock.get.assert_called_with("materials/", on_finished=job._onGetRemoteMaterials) @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") def test_sendMissingMaterials_withFailedRequest(self, reply_mock, device_mock): reply_mock.attribute.return_value = 404 - SendMaterialJob(device_mock).run() - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0)]) - self.assertEqual(device_mock._onGetRemoteMaterials.method_calls, []) + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + # We expect the error string to be retrieved and the device not to be called for any follow up. + self.assertEqual([call.attribute(0), call.errorString()], reply_mock.method_calls) + self.assertEqual([], device_mock.method_calls) @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") def test_sendMissingMaterials_withBadJsonAnswer(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') - SendMaterialJob(device_mock).run() - reply_mock.attribute.assert_called_with(0) - self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - self.assertEqual(device_mock._onGetRemoteMaterials.method_calls, []) + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + # We expect the reply to be called once to try to get the printers from the list (readAll()). + # Given that the parsing there fails we do no expect the device to be called for any follow up. + self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) + self.assertEqual([], device_mock.method_calls) # @patch("PyQt5.QtNetwork.QNetworkReply") # def test_sendMissingMaterials_withMissingGuid(self, reply_mock): From 7a210087ff0aa8c34ebe7438bc744136b3afab64 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 19 Nov 2018 14:35:34 +0100 Subject: [PATCH 0325/1039] Add header for configuration selector It currently always says 'Custom', but we will want to make that dynamic at some point. Contributes to issue CURA-5876. --- .../QuickConfigurationSelector.qml | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 33610135fe..d84298ee2e 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -12,6 +12,10 @@ import UM 1.2 as UM import Cura 1.0 as Cura +/** + * Menu that allows you to select the configuration of the current printer, such + * as the nozzle sizes and materials in each extruder. + */ Cura.ExpandableComponent { id: base @@ -99,10 +103,27 @@ Cura.ExpandableComponent width: base.width - 2 * UM.Theme.getSize("default_margin").width height: 200 + Label + { + id: customHeader + text: catalog.i18nc("@header", "Custom") + font: UM.Theme.getFont("large") + color: UM.Theme.getColor("text") + + anchors + { + top: parent.top + left: parent.left + right: parent.right + } + } + TabBar { id: tabBar onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) + anchors.top: customHeader.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height width: parent.width height: 50 Repeater From 00a49fff26fac675207d30b6131f2d4869474197 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 19 Nov 2018 14:39:19 +0100 Subject: [PATCH 0326/1039] Rename QuickConfigurationSelector to ConfigurationMenu This is going to function as our main item for the configuration menu. It contains the part in the top bar and the glue item for the part in the popup. Contributes to issue CURA-5876. --- plugins/PrepareStage/PrepareMenu.qml | 2 +- .../{QuickConfigurationSelector.qml => ConfigurationMenu.qml} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename resources/qml/Menus/ConfigurationMenu/{QuickConfigurationSelector.qml => ConfigurationMenu.qml} (100%) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index ef01625a22..6b241e1da2 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -68,7 +68,7 @@ Item color: UM.Theme.getColor("lining") } - Cura.QuickConfigurationSelector + Cura.ConfigurationMenu { Layout.fillHeight: true Layout.fillWidth: true diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml similarity index 100% rename from resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml rename to resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml From 0b1ac87354d53457dcfba0f927e749639a7600a0 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 15:03:43 +0100 Subject: [PATCH 0327/1039] Fix some formatting, cleanup import --- .../UM3NetworkPrinting/src/SendMaterialJob.py | 9 +++-- .../tests/TestSendMaterialJob.py | 36 ++++++++----------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 572558e352..62414763b6 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -48,10 +48,10 @@ class SendMaterialJob(Job): try: remote_materials_by_guid = self._parseReply(reply) self._sendMissingMaterials(remote_materials_by_guid) - except json.JSONDecodeError as e: - Logger.log("e", "Error parsing materials from printer: %s", e) - except KeyError as e: - Logger.log("e", "Error parsing materials from printer: %s", e) + except json.JSONDecodeError: + Logger.logException("w", "Error parsing materials from printer") + except KeyError: + Logger.logException("w", "Error parsing materials from printer") ## Determine which materials should be updated and send them to the printer. # @@ -157,7 +157,6 @@ class SendMaterialJob(Job): @classmethod def _parseReply(cls, reply: QNetworkReply) -> Dict[str, ClusterMaterial]: remote_materials_list = json.loads(reply.readAll().data().decode("utf-8")) - print("remote_materials_list", remote_materials_list) return {material["guid"]: ClusterMaterial(**material) for material in remote_materials_list} ## Retrieves a list of local materials diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index b51d978ed2..0e907f58eb 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -1,19 +1,13 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import io -import json from typing import Any, List -from unittest import TestCase, mock +from unittest import TestCase from unittest.mock import patch, call from PyQt5.QtCore import QByteArray -from UM.Logger import Logger -from UM.MimeTypeDatabase import MimeType -from UM.Settings.ContainerRegistry import ContainerInterface, ContainerRegistryInterface, \ - DefinitionContainerInterface, ContainerRegistry +from UM.Settings.ContainerRegistry import ContainerInterface, ContainerRegistryInterface, DefinitionContainerInterface from plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice import ClusterUM3OutputDevice -from plugins.UM3NetworkPrinting.src.Models import ClusterMaterial from plugins.UM3NetworkPrinting.src.SendMaterialJob import SendMaterialJob @@ -45,7 +39,7 @@ class ContainerRegistryMock(ContainerRegistryInterface): return self.containersMetaData -class FakeDevice(ClusterUM3OutputDevice): +class MockOutputDevice(ClusterUM3OutputDevice): def _createFormPart(self, content_header, data, content_type=None): return "xxx" @@ -53,20 +47,20 @@ class FakeDevice(ClusterUM3OutputDevice): class TestSendMaterialJob(TestCase): _LOCAL_MATERIAL_WHITE = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_white', - 'base_file': 'generic_pla_white', 'setting_version': 5, 'name': 'White PLA', - 'brand': 'Generic', 'material': 'PLA', 'color_name': 'White', - 'GUID': 'badb0ee7-87c8-4f3f-9398-938587b67dce', 'version': '1', 'color_code': '#ffffff', - 'description': 'Test PLA White', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', - 'properties': {'density': '1.00', 'diameter': '2.85', 'weight': '750'}, - 'definition': 'fdmprinter', 'compatible': True} + 'base_file': 'generic_pla_white', 'setting_version': 5, 'name': 'White PLA', + 'brand': 'Generic', 'material': 'PLA', 'color_name': 'White', + 'GUID': 'badb0ee7-87c8-4f3f-9398-938587b67dce', 'version': '1', 'color_code': '#ffffff', + 'description': 'Test PLA White', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', + 'properties': {'density': '1.00', 'diameter': '2.85', 'weight': '750'}, + 'definition': 'fdmprinter', 'compatible': True} _LOCAL_MATERIAL_BLACK = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_black', - 'base_file': 'generic_pla_black', 'setting_version': 5, 'name': 'Yellow CPE', - 'brand': 'Ultimaker', 'material': 'CPE', 'color_name': 'Black', - 'GUID': '5fbb362a-41f9-4818-bb43-15ea6df34aa4', 'version': '1', 'color_code': '#000000', - 'description': 'Test PLA Black', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', - 'properties': {'density': '1.01', 'diameter': '2.85', 'weight': '750'}, - 'definition': 'fdmprinter', 'compatible': True} + 'base_file': 'generic_pla_black', 'setting_version': 5, 'name': 'Yellow CPE', + 'brand': 'Ultimaker', 'material': 'CPE', 'color_name': 'Black', + 'GUID': '5fbb362a-41f9-4818-bb43-15ea6df34aa4', 'version': '1', 'color_code': '#000000', + 'description': 'Test PLA Black', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', + 'properties': {'density': '1.01', 'diameter': '2.85', 'weight': '750'}, + 'definition': 'fdmprinter', 'compatible': True} _REMOTE_MATERIAL_WHITE = { "guid": "badb0ee7-87c8-4f3f-9398-938587b67dce", From d65114bd5652398bf9b3fae91dc38b53fae0e35f Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 15:08:58 +0100 Subject: [PATCH 0328/1039] use call_count to assert device was not called --- .../tests/TestSendMaterialJob.py | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index 0e907f58eb..9b1e1066ba 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -97,7 +97,7 @@ class TestSendMaterialJob(TestCase): # We expect the error string to be retrieved and the device not to be called for any follow up. self.assertEqual([call.attribute(0), call.errorString()], reply_mock.method_calls) - self.assertEqual([], device_mock.method_calls) + self.assertEqual(0, device_mock.call_count) @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") @@ -110,7 +110,7 @@ class TestSendMaterialJob(TestCase): # We expect the reply to be called once to try to get the printers from the list (readAll()). # Given that the parsing there fails we do no expect the device to be called for any follow up. self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) - self.assertEqual([], device_mock.method_calls) + self.assertEqual(0, device_mock.call_count) # @patch("PyQt5.QtNetwork.QNetworkReply") # def test_sendMissingMaterials_withMissingGuid(self, reply_mock): @@ -274,19 +274,3 @@ class TestSendMaterialJob(TestCase): # # self.assertTrue(len(local_materials) == 1) # self.assertTrue(list(local_materials.values())[0].version == 2) - # - # def _assertLogEntries(self, first, second): - # """ - # Inspects the two sets of log entry tuples and fails when they are not the same - # :param first: The first set of tuples - # :param second: The second set of tuples - # """ - # self.assertEqual(len(first), len(second)) - # - # while len(first) > 0: - # e1, m1 = first[0] - # e2, m2 = second[0] - # self.assertEqual(e1, e2) - # self.assertEqual(m1, m2) - # first.pop(0) - # second.pop(0) From 9d8583a3b67682442d0ab4383bdf748770105af2 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 15:10:35 +0100 Subject: [PATCH 0329/1039] Revert "Fix running tests in plugin using pytest" This reverts commit f8f133d2ef92dfabb636eac70b09e681bd4b4d63. --- .../tests/TestLegacyProfileReader.py | 9 ++++----- .../tests/TestVersionUpgrade25to26.py | 11 +++-------- .../tests/TestVersionUpgrade26to27.py | 9 ++++----- .../tests/TestVersionUpgrade27to30.py | 8 ++++---- .../tests/TestVersionUpgrade34to35.py | 10 ++++------ 5 files changed, 19 insertions(+), 28 deletions(-) diff --git a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py index 3c9e46b6d8..480a61f301 100644 --- a/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py +++ b/plugins/LegacyProfileReader/tests/TestLegacyProfileReader.py @@ -1,7 +1,8 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. + import configparser # An input for some functions we're testing. -import os # To find the integration test .ini files. +import os.path # To find the integration test .ini files. import pytest # To register tests with. import unittest.mock # To mock the application, plug-in and container registry out. @@ -10,15 +11,13 @@ import UM.PluginRegistry # To mock the plug-in registry out. import UM.Settings.ContainerRegistry # To mock the container registry out. import UM.Settings.InstanceContainer # To intercept the serialised data from the read() function. -import plugins.LegacyProfileReader.LegacyProfileReader as LegacyProfileReaderModule -from plugins.LegacyProfileReader.LegacyProfileReader import LegacyProfileReader - +import LegacyProfileReader as LegacyProfileReaderModule # To get the directory of the module. +from LegacyProfileReader import LegacyProfileReader # The module we're testing. @pytest.fixture def legacy_profile_reader(): return LegacyProfileReader() - test_prepareDefaultsData = [ { "defaults": diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py b/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py index 588c0cb3db..9d7c7646cc 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/tests/TestVersionUpgrade25to26.py @@ -1,17 +1,16 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import configparser -import pytest -from plugins.VersionUpgrade.VersionUpgrade25to26 import VersionUpgrade25to26 +import configparser #To check whether the appropriate exceptions are raised. +import pytest #To register tests with. +import VersionUpgrade25to26 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): return VersionUpgrade25to26.VersionUpgrade25to26() - test_cfg_version_good_data = [ { "test_name": "Simple", @@ -61,7 +60,6 @@ setting_version = -3 } ] - ## Tests the technique that gets the version number from CFG files. # # \param data The parametrised data to test with. It contains a test name @@ -118,7 +116,6 @@ version = 1.2 } ] - ## Tests whether getting a version number from bad CFG files gives an # exception. # @@ -158,7 +155,6 @@ foo = bar } ] - ## Tests whether the settings that should be removed are removed for the 2.6 # version of preferences. @pytest.mark.parametrize("data", test_upgrade_preferences_removed_settings_data) @@ -204,7 +200,6 @@ type = instance_container } ] - ## Tests whether the settings that should be removed are removed for the 2.6 # version of instance containers. @pytest.mark.parametrize("data", test_upgrade_instance_container_removed_settings_data) diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py index 45d41e7a1b..eebaca23c6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/tests/TestVersionUpgrade26to27.py @@ -1,16 +1,15 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import configparser -import pytest -from plugins.VersionUpgrade.VersionUpgrade26to27.VersionUpgrade26to27 import VersionUpgrade26to27 +import configparser #To check whether the appropriate exceptions are raised. +import pytest #To register tests with. +import VersionUpgrade26to27 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): - return VersionUpgrade26to27() - + return VersionUpgrade26to27.VersionUpgrade26to27() test_cfg_version_good_data = [ { diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py index 7b77b85993..cae08ebcfd 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/tests/TestVersionUpgrade27to30.py @@ -1,15 +1,15 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import configparser -import pytest -from plugins.VersionUpgrade.VersionUpgrade27to30.VersionUpgrade27to30 import VersionUpgrade27to30 +import configparser #To parse the resulting config files. +import pytest #To register tests with. +import VersionUpgrade27to30 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): - return VersionUpgrade27to30() + return VersionUpgrade27to30.VersionUpgrade27to30() test_cfg_version_good_data = [ { diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py b/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py index 4f77fcd093..b74e6f35ac 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/tests/TestVersionUpgrade34to35.py @@ -1,16 +1,15 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import configparser -import pytest -from plugins.VersionUpgrade.VersionUpgrade34to35.VersionUpgrade34to35 import VersionUpgrade34to35 +import configparser #To parse the resulting config files. +import pytest #To register tests with. +import VersionUpgrade34to35 #The module we're testing. ## Creates an instance of the upgrader to test with. @pytest.fixture def upgrader(): - return VersionUpgrade34to35() - + return VersionUpgrade34to35.VersionUpgrade34to35() test_upgrade_version_nr_data = [ ("Empty config file", @@ -26,7 +25,6 @@ test_upgrade_version_nr_data = [ ) ] - ## Tests whether the version numbers are updated. @pytest.mark.parametrize("test_name, file_data", test_upgrade_version_nr_data) def test_upgradeVersionNr(test_name, file_data, upgrader): From 66fbadf2dea2a734a4055b8f866b5397303b2069 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 15:37:56 +0100 Subject: [PATCH 0330/1039] Convert all single quotes to double quotes --- .../tests/TestSendMaterialJob.py | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index 9b1e1066ba..22e96f5ed0 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -46,21 +46,21 @@ class MockOutputDevice(ClusterUM3OutputDevice): class TestSendMaterialJob(TestCase): - _LOCAL_MATERIAL_WHITE = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_white', - 'base_file': 'generic_pla_white', 'setting_version': 5, 'name': 'White PLA', - 'brand': 'Generic', 'material': 'PLA', 'color_name': 'White', - 'GUID': 'badb0ee7-87c8-4f3f-9398-938587b67dce', 'version': '1', 'color_code': '#ffffff', - 'description': 'Test PLA White', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', - 'properties': {'density': '1.00', 'diameter': '2.85', 'weight': '750'}, - 'definition': 'fdmprinter', 'compatible': True} + _LOCAL_MATERIAL_WHITE = {"type": "material", "status": "unknown", "id": "generic_pla_white", + "base_file": "generic_pla_white", "setting_version": 5, "name": "White PLA", + "brand": "Generic", "material": "PLA", "color_name": "White", + "GUID": "badb0ee7-87c8-4f3f-9398-938587b67dce", "version": "1", "color_code": "#ffffff", + "description": "Test PLA White", "adhesion_info": "Use glue.", "approximate_diameter": "3", + "properties": {"density": "1.00", "diameter": "2.85", "weight": "750"}, + "definition": "fdmprinter", "compatible": True} - _LOCAL_MATERIAL_BLACK = {'type': 'material', 'status': 'unknown', 'id': 'generic_pla_black', - 'base_file': 'generic_pla_black', 'setting_version': 5, 'name': 'Yellow CPE', - 'brand': 'Ultimaker', 'material': 'CPE', 'color_name': 'Black', - 'GUID': '5fbb362a-41f9-4818-bb43-15ea6df34aa4', 'version': '1', 'color_code': '#000000', - 'description': 'Test PLA Black', 'adhesion_info': 'Use glue.', 'approximate_diameter': '3', - 'properties': {'density': '1.01', 'diameter': '2.85', 'weight': '750'}, - 'definition': 'fdmprinter', 'compatible': True} + _LOCAL_MATERIAL_BLACK = {"type": "material", "status": "unknown", "id": "generic_pla_black", + "base_file": "generic_pla_black", "setting_version": 5, "name": "Yellow CPE", + "brand": "Ultimaker", "material": "CPE", "color_name": "Black", + "GUID": "5fbb362a-41f9-4818-bb43-15ea6df34aa4", "version": "1", "color_code": "#000000", + "description": "Test PLA Black", "adhesion_info": "Use glue.", "approximate_diameter": "3", + "properties": {"density": "1.01", "diameter": "2.85", "weight": "750"}, + "definition": "fdmprinter", "compatible": True} _REMOTE_MATERIAL_WHITE = { "guid": "badb0ee7-87c8-4f3f-9398-938587b67dce", @@ -103,7 +103,7 @@ class TestSendMaterialJob(TestCase): @patch("PyQt5.QtNetwork.QNetworkReply") def test_sendMissingMaterials_withBadJsonAnswer(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 - reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') + reply_mock.readAll.return_value = QByteArray(b"Six sick hicks nick six slick bricks with picks and sticks.") job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) @@ -119,13 +119,13 @@ class TestSendMaterialJob(TestCase): # del remoteMaterialWithoutGuid["guid"] # reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithoutGuid]).encode("ascii")) # - # with mock.patch.object(Logger, 'log', new=new_log): + # with mock.patch.object(Logger, "log", new=new_log): # SendMaterialJob(None).sendMissingMaterials(reply_mock) # # reply_mock.attribute.assert_called_with(0) # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) # self._assertLogEntries( - # [('e', "Request material storage on printer: Printer's answer was missing GUIDs.")], + # [("e", "Request material storage on printer: Printer"s answer was missing GUIDs.")], # _logentries) # # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) @@ -145,7 +145,7 @@ class TestSendMaterialJob(TestCase): # # reply_mock.attribute.assert_called_with(0) # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - # self._assertLogEntries([('e', "Material generic_pla_white has invalid version number one.")], _logentries) + # self._assertLogEntries([("e", "Material generic_pla_white has invalid version number one.")], _logentries) # # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) # @patch("PyQt5.QtNetwork.QNetworkReply") @@ -194,16 +194,16 @@ class TestSendMaterialJob(TestCase): # device_mock._createFormPart.return_value = "_xXx_" # with mock.patch.object(Logger, "log", new=new_log): # job = SendMaterialJob(device_mock) - # job.sendMaterialsToPrinter({'generic_pla_white'}) + # job.sendMaterialsToPrinter({"generic_pla_white"}) # # self._assertLogEntries([("d", "Syncing material generic_pla_white with cluster.")], _logentries) - # self.assertEqual([call._createFormPart('name="file"; filename="generic_pla_white.xml.fdm_material"', ''), + # self.assertEqual([call._createFormPart("name="file"; filename="generic_pla_white.xml.fdm_material"", ""), # call.postFormWithParts(on_finished=job.sendingFinished, parts = ["_xXx_"], target = "materials/")], device_mock.method_calls) # # @patch("PyQt5.QtNetwork.QNetworkReply") # def test_sendingFinished_success(self, reply_mock) -> None: # reply_mock.attribute.return_value = 200 - # with mock.patch.object(Logger, 'log', new=new_log): + # with mock.patch.object(Logger, "log", new=new_log): # SendMaterialJob(None).sendingFinished(reply_mock) # # reply_mock.attribute.assert_called_once_with(0) @@ -212,9 +212,9 @@ class TestSendMaterialJob(TestCase): # @patch("PyQt5.QtNetwork.QNetworkReply") # def test_sendingFinished_failed(self, reply_mock) -> None: # reply_mock.attribute.return_value = 404 - # reply_mock.readAll.return_value = QByteArray(b'Six sick hicks nick six slick bricks with picks and sticks.') + # reply_mock.readAll.return_value = QByteArray(b"Six sick hicks nick six slick bricks with picks and sticks.") # - # with mock.patch.object(Logger, 'log', new=new_log): + # with mock.patch.object(Logger, "log", new=new_log): # SendMaterialJob(None).sendingFinished(reply_mock) # # reply_mock.attribute.assert_called_with(0) From 60dd1303936a09c83a562067c9a8193c2f3d5e43 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 15:39:12 +0100 Subject: [PATCH 0331/1039] Use logException where possible --- plugins/UM3NetworkPrinting/src/SendMaterialJob.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 62414763b6..6260752f3f 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -175,10 +175,7 @@ class SendMaterialJob(Job): material = LocalMaterial(**m) if material.GUID not in result or material.version > result.get(material.GUID).version: result[material.GUID] = material - except ValueError as e: - Logger.log("w", "Local material {material_id} has invalid values: {e}".format( - material_id = m["id"], - e = e - )) + except ValueError: + Logger.logException("w", "Local material {} has invalid values.".format(m["id"])) return result From c04ce7fce8df24298c1708a044ebfa4afee8a411 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 15:44:07 +0100 Subject: [PATCH 0332/1039] Use call_count on specific method to be more precise --- plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index 22e96f5ed0..a71ded75b6 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -97,7 +97,7 @@ class TestSendMaterialJob(TestCase): # We expect the error string to be retrieved and the device not to be called for any follow up. self.assertEqual([call.attribute(0), call.errorString()], reply_mock.method_calls) - self.assertEqual(0, device_mock.call_count) + self.assertEqual(0, device_mock.createFormPart.call_count) @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") @@ -110,7 +110,7 @@ class TestSendMaterialJob(TestCase): # We expect the reply to be called once to try to get the printers from the list (readAll()). # Given that the parsing there fails we do no expect the device to be called for any follow up. self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) - self.assertEqual(0, device_mock.call_count) + self.assertEqual(0, device_mock.createFormPart.call_count) # @patch("PyQt5.QtNetwork.QNetworkReply") # def test_sendMissingMaterials_withMissingGuid(self, reply_mock): From 8683a1e07e5adc60e0be272eb4b6871d92f8c1ef Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 19 Nov 2018 16:16:41 +0100 Subject: [PATCH 0333/1039] Add previewStage to bundled cura package list CURA-5785 --- resources/bundled_packages/cura.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index ee82b17a75..678ea0a697 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -356,6 +356,23 @@ } } }, + "PreviewStage": { + "package_info": { + "package_id": "PreviewStage", + "package_type": "plugin", + "display_name": "Preview Stage", + "description": "Provides a preview stage in Cura.", + "package_version": "1.0.0", + "sdk_version": 5, + "website": "https://ultimaker.com", + "author": { + "author_id": "UltimakerPackages", + "display_name": "Ultimaker B.V.", + "email": "plugins@ultimaker.com", + "website": "https://ultimaker.com" + } + } + }, "RemovableDriveOutputDevice": { "package_info": { "package_id": "RemovableDriveOutputDevice", From 2497325d606a9246bb383fa87e2dc1707f99e321 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 19 Nov 2018 16:35:19 +0100 Subject: [PATCH 0334/1039] Test with named tuples, not working yet --- plugins/UM3NetworkPrinting/src/Models.py | 111 +++++------------- .../UM3NetworkPrinting/src/SendMaterialJob.py | 14 +-- .../tests/TestSendMaterialJob.py | 35 +++--- 3 files changed, 53 insertions(+), 107 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index 89bf665377..e8efa577f6 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -1,87 +1,32 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from typing import Optional +from collections import namedtuple +ClusterMaterial = namedtuple('ClusterMaterial', [ + 'guid', + 'material', + 'brand', + 'version', + 'color', + 'density' +]) -class BaseModel: - def __init__(self, **kwargs): - self.__dict__.update(kwargs) - - def __eq__(self, other): - return self.__dict__ == other.__dict__ if type(self) == type(other) else False - - -## Represents an item in the cluster API response for installed materials. -class ClusterMaterial(BaseModel): - def __init__(self, **kwargs): - super().__init__(**kwargs) - self.version = int(self.version) - self.density = float(self.density) - - guid = None # type: Optional[str] - - material = None # type: Optional[str] - - brand = None # type: Optional[str] - - version = None # type: Optional[int] - - color = None # type: Optional[str] - - density = None # type: Optional[float] - - -class LocalMaterialProperties(BaseModel): - def __init__(self, **kwargs): - super().__init__(**kwargs) - self.density = float(self.density) - self.diameter = float(self.diameter) - self.weight = float(self.weight) - - density = None # type: Optional[float] - - diameter = None # type: Optional[float] - - weight = None # type: Optional[int] - - -class LocalMaterial(BaseModel): - def __init__(self, **kwargs): - super().__init__(**kwargs) - self.properties = LocalMaterialProperties(**self.properties) - self.approximate_diameter = float(self.approximate_diameter) - self.version = int(self.version) - - GUID = None # type: Optional[str] - - id = None # type: Optional[str] - - type = None # type: Optional[str] - - status = None # type: Optional[str] - - base_file = None # type: Optional[str] - - setting_version = None # type: Optional[str] - - version = None # type: Optional[int] - - name = None # type: Optional[str] - - brand = None # type: Optional[str] - - material = None # type: Optional[str] - - color_name = None # type: Optional[str] - - description = None # type: Optional[str] - - adhesion_info = None # type: Optional[str] - - approximate_diameter = None # type: Optional[float] - - properties = None # type: LocalMaterialProperties - - definition = None # type: Optional[str] - - compatible = None # type: Optional[bool] +LocalMaterial = namedtuple('LocalMaterial', [ + 'GUID', + 'id', + 'type', + 'status', + 'base_file', + 'setting_version', + 'version', + 'name', + 'brand', + 'material', + 'color_name', + 'description', + 'adhesion_info', + 'approximate_diameter', + 'properties', + 'definition', + 'compatible' +]) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 6260752f3f..cbe79aef6a 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -156,8 +156,8 @@ class SendMaterialJob(Job): # \throw KeyError Raised when on of the materials does not include a valid guid @classmethod def _parseReply(cls, reply: QNetworkReply) -> Dict[str, ClusterMaterial]: - remote_materials_list = json.loads(reply.readAll().data().decode("utf-8")) - return {material["guid"]: ClusterMaterial(**material) for material in remote_materials_list} + remote_materials = json.loads(reply.readAll().data().decode("utf-8")) + return {material["id"]: ClusterMaterial(**material) for material in remote_materials} ## Retrieves a list of local materials # @@ -170,12 +170,12 @@ class SendMaterialJob(Job): material_containers = container_registry.findContainersMetadata(type = "material") # Find the latest version of all material containers in the registry. - for m in material_containers: + local_materials = {} # type: Dict[str, LocalMaterial] + for material in material_containers: try: - material = LocalMaterial(**m) + material = LocalMaterial(**material) if material.GUID not in result or material.version > result.get(material.GUID).version: - result[material.GUID] = material + local_materials[material.GUID] = material except ValueError: - Logger.logException("w", "Local material {} has invalid values.".format(m["id"])) - + Logger.logException("w", "Local material {} has invalid values.".format(material["id"])) return result diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index a71ded75b6..73bca2b0ad 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -1,5 +1,7 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import json + from typing import Any, List from unittest import TestCase from unittest.mock import patch, call @@ -108,26 +110,25 @@ class TestSendMaterialJob(TestCase): job._onGetRemoteMaterials(reply_mock) # We expect the reply to be called once to try to get the printers from the list (readAll()). - # Given that the parsing there fails we do no expect the device to be called for any follow up. + # Given that the parsing fails we do no expect the device to be called for any follow up. self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_sendMissingMaterials_withMissingGuid(self, reply_mock): - # reply_mock.attribute.return_value = 200 - # remoteMaterialWithoutGuid = self._REMOTEMATERIAL_WHITE.copy() - # del remoteMaterialWithoutGuid["guid"] - # reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithoutGuid]).encode("ascii")) - # - # with mock.patch.object(Logger, "log", new=new_log): - # SendMaterialJob(None).sendMissingMaterials(reply_mock) - # - # reply_mock.attribute.assert_called_with(0) - # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - # self._assertLogEntries( - # [("e", "Request material storage on printer: Printer"s answer was missing GUIDs.")], - # _logentries) - # + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + @patch("PyQt5.QtNetwork.QNetworkReply") + def test_sendMissingMaterials_withMissingGuid(self, reply_mock, device_mock): + reply_mock.attribute.return_value = 200 + remote_material_without_guid = self._REMOTE_MATERIAL_WHITE.copy() + del remote_material_without_guid["guid"] + reply_mock.readAll.return_value = QByteArray(json.dumps([remote_material_without_guid]).encode("ascii")) + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + # We expect the reply to be called once to try to get the printers from the list (readAll()). + # Given that parsing fails we do not expect the device to be called for any follow up. + self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) + self.assertEqual(1, device_mock.createFormPart.call_count) + # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) # @patch("PyQt5.QtNetwork.QNetworkReply") # def test_sendMissingMaterials_WithInvalidVersionInLocalMaterial(self, reply_mock): From 421a64c7b0ff712ed8c5103641bda03c257df3da Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 19 Nov 2018 16:42:36 +0100 Subject: [PATCH 0335/1039] Replace queued print job cards with new design Contributes to CL-1148 --- .../resources/qml/ClusterMonitorItem.qml | 52 +++------ .../resources/qml/ExpandableCard.qml | 81 +++++++++++++ .../resources/qml/MonitorPrintJobCard.qml | 109 ++++++++++++++++++ .../resources/qml/MonitorPrintJobPreview.qml | 67 +++++++++++ 4 files changed, 272 insertions(+), 37 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml index d210ab40f3..ff4bc72218 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml @@ -6,13 +6,15 @@ import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.3 as UM import Cura 1.0 as Cura +import QtGraphicalEffects 1.0 Component { + Rectangle { id: monitorFrame; property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight"); property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width; - color: UM.Theme.getColor("viewport_background"); + color: transparent height: maximumHeight; onVisibleChanged: { if (monitorFrame != null && !monitorFrame.visible) { @@ -21,6 +23,14 @@ Component { } width: maximumWidth; + LinearGradient { + anchors.fill: parent + gradient: Gradient { + GradientStop { position: 0.0; color: "#f6f6f6" } + GradientStop { position: 1.0; color: "#ffffff" } + } + } + UM.I18nCatalog { id: catalog; name: "cura"; @@ -60,39 +70,6 @@ Component { text: catalog.i18nc("@label", "Queued"); } - Column { - id: skeletonLoader; - anchors { - bottom: parent.bottom; - bottomMargin: UM.Theme.getSize("default_margin").height; - horizontalCenter: parent.horizontalCenter; - top: queuedLabel.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - } - visible: !queuedPrintJobs.visible; - width: Math.min(800 * screenScaleFactor, maximumWidth); - - PrintJobInfoBlock { - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - } - printJob: null; // Use as skeleton - } - - PrintJobInfoBlock { - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - } - printJob: null; // Use as skeleton - } - } - ScrollView { id: queuedPrintJobs; anchors { @@ -104,12 +81,12 @@ Component { } style: UM.Theme.styles.scrollview; visible: OutputDevice.receivedPrintJobs; - width: Math.min(800 * screenScaleFactor, maximumWidth); + width: Math.min(834 * screenScaleFactor, maximumWidth); ListView { id: printJobList; anchors.fill: parent; - delegate: PrintJobInfoBlock { + delegate: MonitorPrintJobCard { anchors { left: parent.left; leftMargin: UM.Theme.getSize("default_margin").width; @@ -119,7 +96,7 @@ Component { printJob: modelData; } model: OutputDevice.queuedPrintJobs; - spacing: UM.Theme.getSize("default_margin").height - 2 * UM.Theme.getSize("monitor_shadow_radius").width; + spacing: 6; } } @@ -129,4 +106,5 @@ Component { visible: OutputDevice.activeCameraUrl != ""; } } + } diff --git a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml new file mode 100644 index 0000000000..89d88d671a --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml @@ -0,0 +1,81 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.3 as UM +import Cura 1.0 as Cura + +// The expandable component has 3 major sub components: +// * The headerItem Always visible and should hold some info about what happens if the component is expanded +// * The popupItem The content that needs to be shown if the component is expanded. +Item +{ + id: base + + property var expanded: false + property var borderWidth: 1 + property color borderColor: "#EAEAEC" + property color headerBackgroundColor: "white" + property color headerHoverColor: "#f5f5f5" + property color drawerBackgroundColor: "white" + property alias headerItem: header.children + property alias drawerItem: drawer.children + + width: parent.width + height: childrenRect.height + + Rectangle + { + id: header + border + { + color: borderColor + width: borderWidth + } + color: headerMouseArea.containsMouse ? headerHoverColor : headerBackgroundColor + height: childrenRect.height + width: parent.width + Behavior on color + { + ColorAnimation + { + duration: 100 + } + } + } + + MouseArea + { + id: headerMouseArea + anchors.fill: header + onClicked: base.expanded = !base.expanded + hoverEnabled: true + } + + Rectangle + { + id: drawer + anchors + { + top: header.bottom + topMargin: -1 + } + border + { + color: borderColor + width: borderWidth + } + clip: true + color: headerBackgroundColor + height: base.expanded ? childrenRect.height : 0 + width: parent.width + Behavior on height + { + NumberAnimation + { + duration: 100 + } + } + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml new file mode 100644 index 0000000000..307a4f908f --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -0,0 +1,109 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.3 as UM +import Cura 1.0 as Cura + +// A Print Job Card is essentially just a filled-in Expandable Card item. +Item +{ + id: base + property var printJob: null + + width: parent.width + height: childrenRect.height + + ExpandableCard + { + headerItem: Row + { + height: 48 + anchors.left: parent.left + anchors.leftMargin: 24 + spacing: 18 + + MonitorPrintJobPreview + { + printJob: base.printJob + size: 32 + anchors.verticalCenter: parent.verticalCenter + } + + Label + { + text: printJob && printJob.name ? printJob.name : "" + color: "#374355" + elide: Text.ElideRight + font: UM.Theme.getFont("default_bold") + anchors.verticalCenter: parent.verticalCenter + width: 216 + height: 18 + } + + Label + { + text: printJob ? OutputDevice.formatDuration(printJob.timeTotal) : "" + color: "#374355" + elide: Text.ElideRight + font: UM.Theme.getFont("default_bold") + anchors.verticalCenter: parent.verticalCenter + width: 216 + height: 18 + } + + Label + { + color: "#374355" + height: 18 + elide: Text.ElideRight + font: UM.Theme.getFont("default_bold") + text: { + if (printJob !== null) { + if (printJob.assignedPrinter == null) + { + if (printJob.state == "error") + { + return catalog.i18nc("@label", "Waiting for: Unavailable printer") + } + return catalog.i18nc("@label", "Waiting for: First available") + } + else + { + return catalog.i18nc("@label", "Waiting for: ") + printJob.assignedPrinter.name + } + } + return "" + } + visible: printJob + anchors.verticalCenter: parent.verticalCenter + width: 216 + } + } + drawerItem: Row + { + height: 96 + anchors.left: parent.left + anchors.leftMargin: 74 + spacing: 18 + + Rectangle + { + id: printerConfiguration + width: 450 + height: 72 + color: "blue" + anchors.verticalCenter: parent.verticalCenter + } + Label { + height: 18 + text: printJob && printJob.owner ? printJob.owner : "" + color: "#374355" + elide: Text.ElideRight + font: UM.Theme.getFont("default_bold") + anchors.top: printerConfiguration.top + } + } + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml new file mode 100644 index 0000000000..7322193451 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -0,0 +1,67 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Dialogs 1.1 +import QtQuick.Controls 2.0 +import QtQuick.Controls.Styles 1.4 +import QtGraphicalEffects 1.0 +import QtQuick.Layouts 1.1 +import QtQuick.Dialogs 1.1 +import UM 1.3 as UM + +Item +{ + id: printJobPreview + + property var printJob: null + property var size: 256 + + width: size + height: size + + // Actual content + Image + { + id: previewImage + anchors.fill: parent + opacity: printJob && printJob.state == "error" ? 0.5 : 1.0 + source: printJob ? printJob.previewImageUrl : "" + visible: printJob + } + + UM.RecolorImage + { + id: ultiBotImage + + anchors.centerIn: printJobPreview + color: UM.Theme.getColor("monitor_placeholder_image") + height: printJobPreview.height + source: "../svg/ultibot.svg" + sourceSize + { + height: height + width: width + } + /* Since print jobs ALWAYS have an image url, we have to check if that image URL errors or + not in order to determine if we show the placeholder (ultibot) image instead. */ + visible: printJob && previewImage.status == Image.Error + width: printJobPreview.width + } + + UM.RecolorImage + { + id: statusImage + anchors.centerIn: printJobPreview + color: UM.Theme.getColor("monitor_image_overlay") + height: 0.5 * printJobPreview.height + source: printJob && printJob.state == "error" ? "../svg/aborted-icon.svg" : "" + sourceSize + { + height: height + width: width + } + visible: source != "" + width: 0.5 * printJobPreview.width + } +} \ No newline at end of file From 2b88e82a2a520761ede661ba0843a77b5269b1c1 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 19 Nov 2018 16:52:02 +0100 Subject: [PATCH 0336/1039] Add option test-verbose build option to CuraTests --- cmake/CuraTests.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmake/CuraTests.cmake b/cmake/CuraTests.cmake index f2ee92d65b..b6d04de036 100644 --- a/cmake/CuraTests.cmake +++ b/cmake/CuraTests.cmake @@ -6,6 +6,8 @@ include(CMakeParseArguments) find_package(PythonInterp 3.5.0 REQUIRED) +add_custom_target(test-verbose COMMAND ${CMAKE_CTEST_COMMAND} --verbose) + function(cura_add_test) set(_single_args NAME DIRECTORY PYTHONPATH) cmake_parse_arguments("" "" "${_single_args}" "" ${ARGN}) From 16deeb09510b4bbaa6bc2c7b4ca7b939aa904caf Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 19 Nov 2018 17:10:29 +0100 Subject: [PATCH 0337/1039] Remove old QuickConfigurationSelector It doesn't exist any more. Contributes to issue CURA-5876. --- resources/qml/qmldir | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/qmldir b/resources/qml/qmldir index d5e4106d33..878945b922 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -1,7 +1,6 @@ module Cura MachineSelector 1.0 MachineSelector.qml -QuickConfigurationSelector 1.0 QuickConfigurationSelector.qml CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml PrintSetupSelector 1.0 PrintSetupSelector.qml ActionButton 1.0 ActionButton.qml From a04db164e6a0679ca684dd65ff33c50b9355a242 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 19 Nov 2018 17:11:51 +0100 Subject: [PATCH 0338/1039] Make it possible to swap between auto and custom configuration We're going to need to make this disappear when the printer is not connected. But that is for later. Contributes to issue CURA-5876. --- .../ConfigurationMenu/AutoConfiguration.qml | 25 +++ .../ConfigurationMenu/ConfigurationMenu.qml | 207 ++++++------------ .../ConfigurationMenu/CustomConfiguration.qml | 168 ++++++++++++++ 3 files changed, 263 insertions(+), 137 deletions(-) create mode 100644 resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml create mode 100644 resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml new file mode 100644 index 0000000000..e1f0ed480e --- /dev/null +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -0,0 +1,25 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.0 + +import UM 1.3 as UM + +Item +{ + Label + { + id: header + text: catalog.i18nc("@header", "Configurations") + font: UM.Theme.getFont("large") + color: UM.Theme.getColor("text") + + anchors + { + top: parent.top + left: parent.left + right: parent.right + } + } +} \ No newline at end of file diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index d84298ee2e..10c52a7b0f 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -6,8 +6,6 @@ import QtQuick.Controls 2.0 import QtQuick.Controls.Styles 1.4 import QtQuick.Layouts 1.11 -import QtQuick.Controls 1.1 as OldControls - import UM 1.2 as UM import Cura 1.0 as Cura @@ -100,163 +98,98 @@ Cura.ExpandableComponent popupItem: Item { + id: popup width: base.width - 2 * UM.Theme.getSize("default_margin").width height: 200 - Label - { - id: customHeader - text: catalog.i18nc("@header", "Custom") - font: UM.Theme.getFont("large") - color: UM.Theme.getColor("text") + property var configuration_method: "auto" + AutoConfiguration + { + id: autoConfiguration + visible: popup.configuration_method === "auto" + anchors.top: header.bottom + height: visible ? childrenRect.height : 0 + } + + CustomConfiguration + { + id: customConfiguration + visible: popup.configuration_method === "custom" + anchors.top: header.bottom + height: visible ? childrenRect.height : 0 + } + + Rectangle + { + id: separator anchors { - top: parent.top left: parent.left right: parent.right + bottom: buttonBar.top + bottomMargin: UM.Theme.getSize("default_margin").height } + height: UM.Theme.getSize("default_lining").height + color: UM.Theme.getColor("lining") } - TabBar + Rectangle { - id: tabBar - onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) - anchors.top: customHeader.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - width: parent.width - height: 50 - Repeater + id: buttonBar + anchors { - model: extrudersModel - - delegate: TabButton - { - width: ListView.view != null ? Math.round(ListView.view.width / extrudersModel.rowCount()): 0 - height: parent.height - contentItem: Item - { - Cura.ExtruderIcon - { - anchors.horizontalCenter: parent.horizontalCenter - materialColor: model.color - extruderEnabled: model.enabled - width: parent.height - height: parent.height - } - } - } + left: parent.left + right: parent.right + bottom: parent.bottom } - } + height: childrenRect.height - Item - { - id: tabControl - width: parent.width - anchors.top: tabBar.bottom - anchors.bottom: parent.bottom - property var model: extrudersModel.items[tabBar.currentIndex] - property real textWidth: Math.round(width * 0.3) - property real controlWidth: width - textWidth - Column + Cura.ActionButton { - spacing: UM.Theme.getSize("default_margin").height - Row + id: goToCustom + visible: popup.configuration_method === "auto" + text: catalog.i18nc("@label", "Custom") + + anchors { - height: UM.Theme.getSize("print_setup_item").height - - Label - { - text: catalog.i18nc("@label", "Enabled") - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - height: parent.height - width: tabControl.textWidth - } - - OldControls.CheckBox - { - checked: tabControl.model != null ? Cura.MachineManager.getExtruder(tabControl.model.index).isEnabled: false - onClicked: Cura.MachineManager.setExtruderEnabled(tabControl.model.index, checked) - height: UM.Theme.getSize("setting_control").height - style: UM.Theme.styles.checkbox - } + right: parent.right + bottom: parent.bottom } - Row - { - height: UM.Theme.getSize("print_setup_item").height - Label - { - text: catalog.i18nc("@label", "Material") - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - height: parent.height - width: tabControl.textWidth - } + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + height: UM.Theme.getSize("action_panel_button").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width - OldControls.ToolButton - { - id: materialSelection - - property var activeExtruder: Cura.MachineManager.activeStack - property var hasActiveExtruder: activeExtruder != null - property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" - property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true - property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - - text: currentRootMaterialName - tooltip: currentRootMaterialName - visible: Cura.MachineManager.hasMaterials - - enabled: Cura.ExtruderManager.activeExtruderIndex > -1 - - height: UM.Theme.getSize("setting_control").height - width: tabControl.controlWidth - - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true - menu: Cura.MaterialMenu - { - extruderIndex: Cura.ExtruderManager.activeExtruderIndex - } - - } - } - - Row - { - height: UM.Theme.getSize("print_setup_item").height - - Label - { - text: Cura.MachineManager.activeDefinitionVariantsName - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - height: parent.height - width: tabControl.textWidth - } - - OldControls.ToolButton - { - id: variantSelection - text: Cura.MachineManager.activeVariantName - tooltip: Cura.MachineManager.activeVariantName; - visible: Cura.MachineManager.hasVariants - - height: UM.Theme.getSize("setting_control").height - width: tabControl.controlWidth - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - - menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } - } - } + onClicked: popup.configuration_method = "custom" } + Cura.ActionButton + { + id: goToAuto + visible: popup.configuration_method === "custom" + text: catalog.i18nc("@label", "Configurations") + + anchors + { + left: parent.left + bottom: parent.bottom + } + + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + height: UM.Theme.getSize("action_panel_button").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + + onClicked: popup.configuration_method = "auto" + } } } } diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml new file mode 100644 index 0000000000..953b6a48f0 --- /dev/null +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -0,0 +1,168 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.0 +import QtQuick.Controls 2.0 +import QtQuick.Controls 1.1 as OldControls + +import Cura 1.0 as Cura +import UM 1.3 as UM + +Item +{ + Label + { + id: header + text: catalog.i18nc("@header", "Custom") + font: UM.Theme.getFont("large") + color: UM.Theme.getColor("text") + + anchors + { + top: parent.top + left: parent.left + right: parent.right + } + } + + TabBar + { + id: tabBar + onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) + anchors.top: header.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + width: parent.width + height: 50 + Repeater + { + model: extrudersModel + + delegate: TabButton + { + width: ListView.view != null ? Math.round(ListView.view.width / extrudersModel.rowCount()): 0 + height: parent.height + contentItem: Item + { + Cura.ExtruderIcon + { + anchors.horizontalCenter: parent.horizontalCenter + materialColor: model.color + extruderEnabled: model.enabled + width: parent.height + height: parent.height + } + } + } + } + } + + Item + { + id: tabControl + width: parent.width + anchors.top: tabBar.bottom + anchors.bottom: parent.bottom + property var model: extrudersModel.items[tabBar.currentIndex] + property real textWidth: Math.round(width * 0.3) + property real controlWidth: width - textWidth + Column + { + spacing: UM.Theme.getSize("default_margin").height + Row + { + height: UM.Theme.getSize("print_setup_item").height + + Label + { + text: catalog.i18nc("@label", "Enabled") + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + height: parent.height + width: tabControl.textWidth + } + + OldControls.CheckBox + { + checked: tabControl.model != null ? Cura.MachineManager.getExtruder(tabControl.model.index).isEnabled: false + onClicked: Cura.MachineManager.setExtruderEnabled(tabControl.model.index, checked) + height: UM.Theme.getSize("setting_control").height + style: UM.Theme.styles.checkbox + } + } + + Row + { + height: UM.Theme.getSize("print_setup_item").height + Label + { + text: catalog.i18nc("@label", "Material") + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + height: parent.height + width: tabControl.textWidth + } + + OldControls.ToolButton + { + id: materialSelection + + property var activeExtruder: Cura.MachineManager.activeStack + property var hasActiveExtruder: activeExtruder != null + property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" + property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true + property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported + + text: currentRootMaterialName + tooltip: currentRootMaterialName + visible: Cura.MachineManager.hasMaterials + + enabled: Cura.ExtruderManager.activeExtruderIndex > -1 + + height: UM.Theme.getSize("setting_control").height + width: tabControl.controlWidth + + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true + menu: Cura.MaterialMenu + { + extruderIndex: Cura.ExtruderManager.activeExtruderIndex + } + + } + } + + Row + { + height: UM.Theme.getSize("print_setup_item").height + + Label + { + text: Cura.MachineManager.activeDefinitionVariantsName + verticalAlignment: Text.AlignVCenter + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + height: parent.height + width: tabControl.textWidth + } + + OldControls.ToolButton + { + id: variantSelection + text: Cura.MachineManager.activeVariantName + tooltip: Cura.MachineManager.activeVariantName; + visible: Cura.MachineManager.hasVariants + + height: UM.Theme.getSize("setting_control").height + width: tabControl.controlWidth + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true; + + menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } + } + } + } + + } +} \ No newline at end of file From e6d9ad31ab0e432a7357dfa702332cae25aead88 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 20 Nov 2018 09:20:45 +0100 Subject: [PATCH 0339/1039] Use generated Makefiles to run tests --- Jenkinsfile | 43 ++----------------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f9a3a9864a..a345ebbd05 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,20 +38,9 @@ parallel_nodes(['linux && cura', 'windows && cura']) { if (isUnix()) { - // For Linux to show everything - def branch = env.BRANCH_NAME - if(!fileExists("${env.CURA_ENVIRONMENT_PATH}/${branch}")) - { - branch = "master" - } - def uranium_dir = get_workspace_dir("Ultimaker/Uranium/${branch}") - + // For Linux try { - sh """ - cd .. - export PYTHONPATH=.:"${uranium_dir}" - ${env.CURA_ENVIRONMENT_PATH}/${branch}/bin/pytest -x --verbose --full-trace --capture=no ./tests - """ + sh 'make CTEST_OUTPUT_ON_FAILURE=TRUE test' } catch(e) { currentBuild.result = "UNSTABLE" @@ -70,34 +59,6 @@ parallel_nodes(['linux && cura', 'windows && cura']) } } } - - stage('Code Style') - { - if (isUnix()) - { - // For Linux to show everything. - // CMake also runs this test, but if it fails then the test just shows "failed" without details of what exactly failed. - def branch = env.BRANCH_NAME - if(!fileExists("${env.CURA_ENVIRONMENT_PATH}/${branch}")) - { - branch = "master" - } - def uranium_dir = get_workspace_dir("Ultimaker/Uranium/${branch}") - - try - { - sh """ - cd .. - export PYTHONPATH=.:"${uranium_dir}" - ${env.CURA_ENVIRONMENT_PATH}/${branch}/bin/python3 run_mypy.py - """ - } - catch(e) - { - currentBuild.result = "UNSTABLE" - } - } - } } } From 76f2aeb43c8ab19a638ade5016229a5f542664cb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 20 Nov 2018 11:27:45 +0100 Subject: [PATCH 0340/1039] Fix the title's top margin size in the add machine dialog. --- resources/qml/AddMachineDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 0df8b891d9..aa160acd4d 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -73,7 +73,7 @@ UM.Dialog { top: parent.top left: parent.left - topMargin: UM.Theme.getSize("default_margin") + topMargin: UM.Theme.getSize("default_margin").height } text: catalog.i18nc("@title:tab", "Add a printer to Cura") From fab0d5a4b7f1e3b5dd9bfc6ccecba5cc73c0a799 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 20 Nov 2018 13:25:15 +0100 Subject: [PATCH 0341/1039] Rename the color of the sidebar to main_background, since it was deleted but not updated in the usages. Contributes to CURA-5785. --- plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml | 2 +- plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index a48cb2ee3f..62e1e3ab86 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -83,7 +83,7 @@ Item model: packageData.supported_configs headerDelegate: Rectangle { - color: UM.Theme.getColor("sidebar") + color: UM.Theme.getColor("main_background") height: UM.Theme.getSize("toolbox_chart_row").height Label { diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml index 068c369a3f..94e75a6de0 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml @@ -13,7 +13,7 @@ Component { property var shadowRadius: UM.Theme.getSize("monitor_shadow_radius").width; property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width; anchors.fill: parent; - color: UM.Theme.getColor("sidebar"); + color: UM.Theme.getColor("main_background"); visible: OutputDevice != null; UM.I18nCatalog { From fb3cb67da05115779cd6964d0d24e0760180ec99 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 20 Nov 2018 13:46:41 +0100 Subject: [PATCH 0342/1039] Add printer configuration components Contributes to CL-1148 --- .../qml/MonitorBuildplateConfiguration.qml | 63 +++++++++++++++ .../qml/MonitorExtruderConfiguration.qml | 76 +++++++++++++++++++ .../resources/qml/MonitorIconExtruder.qml | 60 +++++++++++++++ .../resources/qml/MonitorPrintJobCard.qml | 74 +++++++++++------- .../resources/qml/MonitorPrintJobPreview.qml | 6 +- .../qml/MonitorPrinterConfiguration.qml | 56 ++++++++++++++ .../resources/svg/icons/buildplate.svg | 5 ++ .../resources/svg/icons/extruder.svg | 5 ++ 8 files changed, 314 insertions(+), 31 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml create mode 100644 plugins/UM3NetworkPrinting/resources/svg/icons/buildplate.svg create mode 100644 plugins/UM3NetworkPrinting/resources/svg/icons/extruder.svg diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml new file mode 100644 index 0000000000..d14277a1ff --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml @@ -0,0 +1,63 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.3 as UM + +/** + * This component comprises a buildplate icon and the buildplate name. It is + * used by the MonitorPrinterConfiguration component along with two instances + * of MonitorExtruderConfiguration. + * + * NOTE: For most labels, a fixed height with vertical alignment is used to make + * layouts more deterministic (like the fixed-size textboxes used in original + * mock-ups). This is also a stand-in for CSS's 'line-height' property. Denoted + * with '// FIXED-LINE-HEIGHT:'. + */ +Item +{ + // The buildplate name + property alias buildplate: buildplateLabel.text + + // Height is one 18px label/icon + height: 18 * screenScaleFactor // TODO: Theme! + width: childrenRect.width + + Row + { + height: parent.height + spacing: 12 * screenScaleFactor // TODO: Theme! (Should be same as extruder spacing) + + // This wrapper ensures that the buildplate icon is located centered + // below an extruder icon. + Item + { + height: parent.height + width: 32 * screenScaleFactor // TODO: Theme! (Should be same as extruder icon width) + + UM.RecolorImage + { + id: buildplateIcon + anchors.centerIn: parent + color: "#0a0850" // TODO: Theme! (Standard purple) + elide: Text.ElideRight + height: parent.height + source: "../svg/icons/buildplate.svg" + width: height + } + } + + Label + { + id: buildplateLabel + color: "#191919" // TODO: Theme! + font: UM.Theme.getFont("very_small") // 12pt, regular + text: "" + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml new file mode 100644 index 0000000000..afbd4c3641 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml @@ -0,0 +1,76 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.3 as UM + +/** + * This component comprises a colored extruder icon, the material name, and the + * print core name. It is used by the MonitorPrinterConfiguration component with + * a sibling instance as well as a MonitorBuildplateConfiguration instance. + * + * NOTE: For most labels, a fixed height with vertical alignment is used to make + * layouts more deterministic (like the fixed-size textboxes used in original + * mock-ups). This is also a stand-in for CSS's 'line-height' property. Denoted + * with '// FIXED-LINE-HEIGHT:'. + */ +Item +{ + // The material color + property alias color: extruderIcon.color + + // The extruder position; NOTE: Decent human beings count from 0 + property alias position: extruderIcon.position + + // The material name + property alias material: materialLabel.text + + // The print core name (referred to as hotendID in Python) + property alias printCore: printCoreLabel.text + + // Height is 2 x 18px labels, plus 4px spacing between them + height: 40 * screenScaleFactor // TODO: Theme! + width: childrenRect.width + + MonitorIconExtruder + { + id: extruderIcon + color: "#eeeeee" // TODO: Theme! + position: 0 + } + Label + { + id: materialLabel + anchors + { + left: extruderIcon.right + leftMargin: 12 * screenScaleFactor // TODO: Theme! + } + color: "#191919" // TODO: Theme! + elide: Text.ElideRight + font: UM.Theme.getFont("very_small") // 12pt, regular + text: "" + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + Label + { + id: printCoreLabel + anchors + { + left: materialLabel.left + bottom: parent.bottom + } + color: "#191919" // TODO: Theme! + elide: Text.ElideRight + font: UM.Theme.getFont("small") // 12pt, bold + text: "" + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml new file mode 100644 index 0000000000..971c6b2251 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorIconExtruder.qml @@ -0,0 +1,60 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.3 as UM + +/** + * This component is a sort of "super icon" which includes a colored SVG image + * as well as the extruder position number. It is used in the the + * MonitorExtruderConfiguration component. + */ +Item +{ + // The material color + property alias color: icon.color + + // The extruder position; NOTE: Decent human beings count from 0 + property int position: 0 + + // The extruder icon size; NOTE: This shouldn't need to be changed + property int size: 32 // TODO: Theme! + + // THe extruder icon source; NOTE: This shouldn't need to be changed + property string iconSource: "../svg/icons/extruder.svg" + + height: size + width: size + + UM.RecolorImage + { + id: icon + anchors.fill: parent + source: iconSource + width: size + } + + /* + * The label uses some "fancy" math to ensure that if you change the overall + * icon size, the number scales with it. That is to say, the font properties + * are linked to the icon size, NOT the theme. And that's intentional. + */ + Label + { + id: positionLabel + font + { + pointSize: Math.round(size * 0.3125) + weight: Font.Bold + } + height: Math.round(size / 2) * screenScaleFactor + horizontalAlignment: Text.AlignHCenter + text: position + 1 + verticalAlignment: Text.AlignVCenter + width: Math.round(size / 2) * screenScaleFactor + x: Math.round(size * 0.25) * screenScaleFactor + y: Math.round(size * 0.15625) * screenScaleFactor + // TODO: Once 'size' is themed, screenScaleFactor won't be needed + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index 307a4f908f..6d02c40776 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -4,12 +4,21 @@ import QtQuick 2.2 import QtQuick.Controls 2.0 import UM 1.3 as UM -import Cura 1.0 as Cura -// A Print Job Card is essentially just a filled-in Expandable Card item. +/** + * A Print Job Card is essentially just a filled-in Expandable Card item. All + * data within it is derived from being passed a printJob property. + * + * NOTE: For most labels, a fixed height with vertical alignment is used to make + * layouts more deterministic (like the fixed-size textboxes used in original + * mock-ups). This is also a stand-in for CSS's 'line-height' property. Denoted + * with '// FIXED-LINE-HEIGHT:'. + */ Item { id: base + + // The print job which all other data is derived from property var printJob: null width: parent.width @@ -19,15 +28,15 @@ Item { headerItem: Row { - height: 48 + height: 48 * screenScaleFactor // TODO: Theme! anchors.left: parent.left - anchors.leftMargin: 24 - spacing: 18 + anchors.leftMargin: 24 * screenScaleFactor // TODO: Theme! + spacing: 18 * screenScaleFactor // TODO: Theme! MonitorPrintJobPreview { printJob: base.printJob - size: 32 + size: 32 * screenScaleFactor // TODO: Theme! anchors.verticalCenter: parent.verticalCenter } @@ -36,10 +45,13 @@ Item text: printJob && printJob.name ? printJob.name : "" color: "#374355" elide: Text.ElideRight - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("medium") // 14pt, regular anchors.verticalCenter: parent.verticalCenter - width: 216 - height: 18 + width: 216 * screenScaleFactor // TODO: Theme! + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter } Label @@ -47,18 +59,20 @@ Item text: printJob ? OutputDevice.formatDuration(printJob.timeTotal) : "" color: "#374355" elide: Text.ElideRight - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("medium") // 14pt, regular anchors.verticalCenter: parent.verticalCenter - width: 216 - height: 18 + width: 216 * screenScaleFactor // TODO: Theme! + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter } Label { color: "#374355" - height: 18 elide: Text.ElideRight - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("medium") // 14pt, regular text: { if (printJob !== null) { if (printJob.assignedPrinter == null) @@ -78,31 +92,39 @@ Item } visible: printJob anchors.verticalCenter: parent.verticalCenter - width: 216 + width: 216 * screenScaleFactor // TODO: Theme! + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter } } drawerItem: Row { - height: 96 - anchors.left: parent.left - anchors.leftMargin: 74 - spacing: 18 + anchors + { + left: parent.left + leftMargin: 74 * screenScaleFactor // TODO: Theme! + } + height: 96 * screenScaleFactor // TODO: Theme! + spacing: 18 * screenScaleFactor // TODO: Theme! - Rectangle + MonitorPrinterConfiguration { id: printerConfiguration - width: 450 - height: 72 - color: "blue" anchors.verticalCenter: parent.verticalCenter + printJob: base.printJob } Label { - height: 18 text: printJob && printJob.owner ? printJob.owner : "" - color: "#374355" + color: "#374355" // TODO: Theme! elide: Text.ElideRight - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("medium") // 14pt, regular anchors.top: printerConfiguration.top + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter } } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index 7322193451..1a69d2dc12 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -2,14 +2,10 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Dialogs 1.1 import QtQuick.Controls 2.0 -import QtQuick.Controls.Styles 1.4 -import QtGraphicalEffects 1.0 -import QtQuick.Layouts 1.1 -import QtQuick.Dialogs 1.1 import UM 1.3 as UM +// TODO: Documentation! Item { id: printJobPreview diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml new file mode 100644 index 0000000000..5d4d408b8e --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml @@ -0,0 +1,56 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.3 as UM + +/** + * + */ +Item +{ + id: base + + property var printJob: null + property var config0: printJob ? printJob.configuration.extruderConfigurations[0] : null + property var config1: printJob ? printJob.configuration.extruderConfigurations[1] : null + + height: 72 * screenScaleFactor // TODO: Theme! + width: 450 * screenScaleFactor // TODO: Theme! + + Row + { + spacing: 18 * screenScaleFactor // TODO: Theme! + + MonitorExtruderConfiguration + { + color: config0 ? config0.activeMaterial.color : "#eeeeee" // TODO: Theme! + material: config0 ? config0.activeMaterial.name : "" + position: config0.position + printCore: config0 ? config0.hotendID : "" + visible: config0 + + // Keep things responsive! + width: Math.floor((base.width - parent.spacing) / 2) + } + + MonitorExtruderConfiguration + { + color: config1 ? config1.activeMaterial.color : "#eeeeee" // TODO: Theme! + material: config1 ? config1.activeMaterial.name : "" + position: config1.position + printCore: config1 ? config1.hotendID : "" + visible: config1 + + // Keep things responsive! + width: Math.floor((base.width - parent.spacing) / 2) + } + } + + MonitorBuildplateConfiguration + { + anchors.bottom: parent.bottom + buildplate: "Glass" + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/svg/icons/buildplate.svg b/plugins/UM3NetworkPrinting/resources/svg/icons/buildplate.svg new file mode 100644 index 0000000000..bcb278a8ca --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/svg/icons/buildplate.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/svg/icons/extruder.svg b/plugins/UM3NetworkPrinting/resources/svg/icons/extruder.svg new file mode 100644 index 0000000000..235cb432e9 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/svg/icons/extruder.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From cbd5238738b1656c986caf87b58957ff605d4fb3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 20 Nov 2018 13:55:28 +0100 Subject: [PATCH 0343/1039] Don't show custom/auto toggle buttons when not connected In order to prevent suddenly switching to the other side when the connection is lost or restored, we only evaluate this upon opening the popup. This way you might be surprised that closing and then opening it can show something else, but it will never surprise you while working on the popup itself as a user. Contributes to issue CURA-5876. --- .../ConfigurationMenu/ConfigurationMenu.qml | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 10c52a7b0f..fe292799a5 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -98,31 +98,37 @@ Cura.ExpandableComponent popupItem: Item { - id: popup + id: popupItem width: base.width - 2 * UM.Theme.getSize("default_margin").width height: 200 - property var configuration_method: "auto" + property var is_connected: false //If current machine is connected to a printer. Only evaluated upon making popup visible. + onVisibleChanged: + { + is_connected = Cura.MachineManager.activeMachineNetworkKey != "" && Cura.MachineManager.printerConnected //Re-evaluate. + } + + property var configuration_method: buttonBar.visible ? "auto" : "custom" //Auto if connected to a printer at start-up, or Custom if not. AutoConfiguration { id: autoConfiguration - visible: popup.configuration_method === "auto" - anchors.top: header.bottom - height: visible ? childrenRect.height : 0 + visible: popupItem.configuration_method === "auto" + anchors.top: parent.top } CustomConfiguration { id: customConfiguration - visible: popup.configuration_method === "custom" - anchors.top: header.bottom - height: visible ? childrenRect.height : 0 + visible: popupItem.configuration_method === "custom" + anchors.top: parent.top } Rectangle { id: separator + visible: buttonBar.visible + anchors { left: parent.left @@ -131,12 +137,16 @@ Cura.ExpandableComponent bottomMargin: UM.Theme.getSize("default_margin").height } height: UM.Theme.getSize("default_lining").height + color: UM.Theme.getColor("lining") } + //Allow switching between custom and auto. Rectangle { id: buttonBar + visible: popupItem.is_connected //Switching only makes sense if the "auto" part is possible. + anchors { left: parent.left @@ -148,7 +158,7 @@ Cura.ExpandableComponent Cura.ActionButton { id: goToCustom - visible: popup.configuration_method === "auto" + visible: popupItem.configuration_method === "auto" text: catalog.i18nc("@label", "Custom") anchors @@ -165,13 +175,13 @@ Cura.ExpandableComponent leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width - onClicked: popup.configuration_method = "custom" + onClicked: popupItem.configuration_method = "custom" } Cura.ActionButton { id: goToAuto - visible: popup.configuration_method === "custom" + visible: popupItem.configuration_method === "custom" text: catalog.i18nc("@label", "Configurations") anchors @@ -188,7 +198,7 @@ Cura.ExpandableComponent leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width - onClicked: popup.configuration_method = "auto" + onClicked: popupItem.configuration_method = "auto" } } } From 42d73836f400357e73d288d0a3be56848f7743f6 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 20 Nov 2018 14:19:55 +0100 Subject: [PATCH 0344/1039] Move default margin by default to Cura's action buttons So we don't have to repeat that every time you create a new button. Contributes to issue CURA-5876. --- resources/qml/ActionButton.qml | 3 +++ resources/qml/ActionPanel/OutputDevicesActionButton.qml | 2 ++ resources/qml/ActionPanel/OutputProcessWidget.qml | 2 -- resources/qml/MainWindow/MainWindowHeader.qml | 2 -- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 4 ---- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 2a8b894867..08c44fb473 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -29,6 +29,9 @@ Button // we elide the text to the right so the text will be cut off with the three dots at the end. property var fixedWidthMode: false + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + contentItem: Row { UM.RecolorImage diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index be79a1893e..a2a69ed526 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -48,6 +48,8 @@ Item right: parent.right } + leftPadding: UM.Theme.getSize("narrow_margin").width //Need more space than usual here for wide text. + rightPadding: UM.Theme.getSize("narrow_margin").width tooltip: catalog.i18nc("@info:tooltip", "Select the active output device") iconSource: popup.opened ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom") color: UM.Theme.getColor("action_panel_secondary") diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index f4e014b1ec..772c05741f 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -104,8 +104,6 @@ Column { id: previewStageShortcut - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("action_panel_button").height text: catalog.i18nc("@button", "Preview") color: UM.Theme.getColor("secondary") diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 59ec542e6b..6f3358648b 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -81,8 +81,6 @@ Rectangle rightMargin: UM.Theme.getSize("default_margin").width verticalCenter: parent.verticalCenter } - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@action:button", "Marketplace") height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) color: UM.Theme.getColor("main_window_header_secondary_button_background_active") diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index fe292799a5..cb90735250 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -172,8 +172,6 @@ Cura.ExpandableComponent textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") height: UM.Theme.getSize("action_panel_button").height - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width onClicked: popupItem.configuration_method = "custom" } @@ -195,8 +193,6 @@ Cura.ExpandableComponent textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") height: UM.Theme.getSize("action_panel_button").height - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width onClicked: popupItem.configuration_method = "auto" } From a1068a3ef27d7fa3499ae8c149a3d0da2945e2cb Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 20 Nov 2018 14:24:09 +0100 Subject: [PATCH 0345/1039] Rename action_panel_button theme entry to action_button Because it's not just used in the save panel. Contributes to issue CURA-5876. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 6 +++--- resources/qml/ActionPanel/SliceProcessWidget.qml | 2 +- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 4 ++-- resources/themes/cura-light/theme.json | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 772c05741f..61efda2f2d 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -104,7 +104,7 @@ Column { id: previewStageShortcut - height: UM.Theme.getSize("action_panel_button").height + height: UM.Theme.getSize("action_button").height text: catalog.i18nc("@button", "Preview") color: UM.Theme.getColor("secondary") hoverColor: UM.Theme.getColor("secondary") @@ -116,8 +116,8 @@ Column Cura.OutputDevicesActionButton { - width: previewStageShortcut.visible ? UM.Theme.getSize("action_panel_button").width : parent.width - height: UM.Theme.getSize("action_panel_button").height + width: previewStageShortcut.visible ? UM.Theme.getSize("action_button").width : parent.width + height: UM.Theme.getSize("action_button").height } } } \ No newline at end of file diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 2d4a7b6b89..7de1a22edb 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -85,7 +85,7 @@ Column { id: prepareButton width: parent.width - height: UM.Theme.getSize("action_panel_button").height + height: UM.Theme.getSize("action_button").height fixedWidthMode: true text: { diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index cb90735250..1015f67a2e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -171,7 +171,7 @@ Cura.ExpandableComponent hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - height: UM.Theme.getSize("action_panel_button").height + height: UM.Theme.getSize("action_button").height onClicked: popupItem.configuration_method = "custom" } @@ -192,7 +192,7 @@ Cura.ExpandableComponent hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - height: UM.Theme.getSize("action_panel_button").height + height: UM.Theme.getSize("action_button").height onClicked: popupItem.configuration_method = "auto" } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d28611529b..8b3e606094 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -385,7 +385,6 @@ "action_panel_widget": [25.0, 0.0], "action_panel_information_widget": [20.0, 0.0], - "action_panel_button": [15.0, 3.0], "machine_selector_widget": [16.0, 4.5], @@ -432,6 +431,9 @@ "button_icon": [2.5, 2.5], "button_lining": [0, 0], + "action_button": [15.0, 3.0], + "action_button_radius": [0.15, 0.15], + "small_button": [2, 2], "small_button_icon": [1.5, 1.5], @@ -520,8 +522,6 @@ "avatar_image": [6.8, 6.8], - "action_button_radius": [0.15, 0.15], - "monitor_config_override_box": [1.0, 14.0], "monitor_extruder_circle": [2.75, 2.75], "monitor_text_line": [1.16, 1.16], From 895590c3d0a445d4e114766348cdc5de676442e5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 20 Nov 2018 14:28:54 +0100 Subject: [PATCH 0346/1039] Change the size of the progress bar control. Also add the rounded rectangle. Contributes to the new Cura UI-Flow. --- resources/themes/cura-light/styles.qml | 1 + resources/themes/cura-light/theme.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 6f099bf1c5..58035ae3bd 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -515,6 +515,7 @@ QtObject implicitWidth: Theme.getSize("message").width - (Theme.getSize("default_margin").width * 2) implicitHeight: Theme.getSize("progressbar").height color: control.hasOwnProperty("backgroundColor") ? control.backgroundColor : Theme.getColor("progressbar_background") + radius: Theme.getSize("progressbar_radius").width } progress: Rectangle { diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index a33ff87042..f4d50e4c79 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -448,7 +448,7 @@ "progressbar": [26.0, 0.75], "progressbar_radius": [0.15, 0.15], - "progressbar_control": [8.0, 0.4], + "progressbar_control": [8.0, 0.75], "scrollbar": [0.75, 0.5], From dca286cea51e1f336df2a5fa2aa0f7f80dc9917e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 20 Nov 2018 14:34:06 +0100 Subject: [PATCH 0347/1039] Give action button a sane default height We don't want to give it a default width since that should just adjust to its contents by default, which is fine. Contributes to issue CURA-5876. --- resources/qml/ActionButton.qml | 1 + resources/qml/ActionPanel/OutputProcessWidget.qml | 1 - resources/qml/ActionPanel/SliceProcessWidget.qml | 1 - resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 2 -- 4 files changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 08c44fb473..0ed639db75 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -31,6 +31,7 @@ Button leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("action_button").height contentItem: Row { diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 61efda2f2d..98dbe5bd2c 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -104,7 +104,6 @@ Column { id: previewStageShortcut - height: UM.Theme.getSize("action_button").height text: catalog.i18nc("@button", "Preview") color: UM.Theme.getColor("secondary") hoverColor: UM.Theme.getColor("secondary") diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 7de1a22edb..09e0b2584a 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -85,7 +85,6 @@ Column { id: prepareButton width: parent.width - height: UM.Theme.getSize("action_button").height fixedWidthMode: true text: { diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 1015f67a2e..aa30a1236b 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -171,7 +171,6 @@ Cura.ExpandableComponent hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - height: UM.Theme.getSize("action_button").height onClicked: popupItem.configuration_method = "custom" } @@ -192,7 +191,6 @@ Cura.ExpandableComponent hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - height: UM.Theme.getSize("action_button").height onClicked: popupItem.configuration_method = "auto" } From 3b4d728d6a134237c708b0093bc6925122859056 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 20 Nov 2018 14:35:13 +0100 Subject: [PATCH 0348/1039] Fix Simulation view popup not sizing down I have no idea why implictHeight does work and childrenRect.height doesn't (eg; childrenRect.height only scales up for some reason, never down) CURA-5785 --- plugins/SimulationView/SimulationViewMenuComponent.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 89615f43a4..caf47508e3 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -65,7 +65,7 @@ Cura.ExpandableComponent property int top_layer_count: UM.Preferences.getValue("view/top_layer_count") width: UM.Theme.getSize("layerview_menu_size").width - 2 * UM.Theme.getSize("default_margin").width - height: childrenRect.height + height: implicitHeight spacing: UM.Theme.getSize("layerview_row_spacing").height From d42ddad606111ffcf3a1e764e3bc0af6c7064d79 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 20 Nov 2018 14:47:41 +0100 Subject: [PATCH 0349/1039] Add icons on left and right side of text For this I had to implement functionality in ActionButton to be able to display the icon on either side. Contributes to issue CURA-5876. --- resources/qml/ActionButton.qml | 24 +++++++++++++++---- .../ConfigurationMenu/ConfigurationMenu.qml | 5 ++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 0ed639db75..28bda7fd35 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -11,7 +11,8 @@ Button { id: button property alias cursorShape: mouseArea.cursorShape - property alias iconSource: buttonIcon.source + property alias iconSource: buttonIconLeft.source + property var iconOnRightSide: false property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.text @@ -35,16 +36,17 @@ Button contentItem: Row { + //Icon if displayed on the left side. UM.RecolorImage { - id: buttonIcon + id: buttonIconLeft source: "" height: Math.round(0.6 * parent.height) - width: height + width: visible ? height : 0 sourceSize.width: width sourceSize.height: height color: button.hovered ? button.textHoverColor : button.textColor - visible: source != "" + visible: source != "" && !button.iconOnRightSide anchors.verticalCenter: parent.verticalCenter } @@ -61,6 +63,20 @@ Button horizontalAlignment: Text.AlignHCenter elide: Text.ElideRight } + + //Icon if displayed on the right side. + UM.RecolorImage + { + id: buttonIconRight + source: buttonIconLeft.source + height: Math.round(0.6 * parent.height) + width: visible ? height : 0 + sourceSize.width: width + sourceSize.height: height + color: button.hovered ? button.textHoverColor : button.textColor + visible: source != "" && button.iconOnRightSide + anchors.verticalCenter: parent.verticalCenter + } } background: Rectangle diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index aa30a1236b..b38384ef8a 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -172,6 +172,9 @@ Cura.ExpandableComponent textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") + iconSource: UM.Theme.icons.arrow_right + iconOnRightSide: true + onClicked: popupItem.configuration_method = "custom" } @@ -192,6 +195,8 @@ Cura.ExpandableComponent textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") + iconSource: UM.Theme.icons.arrow_left + onClicked: popupItem.configuration_method = "auto" } } From 6de24250edbb5d5a86dbdea6eff79e15f7196326 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 20 Nov 2018 14:50:12 +0100 Subject: [PATCH 0350/1039] Make icon height equal to text height This seems to be about the same actually as what it was. But now the relation is in there. I also made the right icon inherit as much as possible from the left icon so that if we change something, we only have to change it in the left icon. Contributes to issue CURA-5876. --- resources/qml/ActionButton.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 28bda7fd35..7ecaeda4b0 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -41,7 +41,7 @@ Button { id: buttonIconLeft source: "" - height: Math.round(0.6 * parent.height) + height: buttonText.height width: visible ? height : 0 sourceSize.width: width sourceSize.height: height @@ -69,13 +69,13 @@ Button { id: buttonIconRight source: buttonIconLeft.source - height: Math.round(0.6 * parent.height) + height: buttonText.height width: visible ? height : 0 sourceSize.width: width sourceSize.height: height - color: button.hovered ? button.textHoverColor : button.textColor + color: buttonIconLeft.color visible: source != "" && button.iconOnRightSide - anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenter: buttonIconLeft.verticalCenter } } From 2f84339f5cb51be69098c0a9c6e33cc535f508ad Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 20 Nov 2018 15:58:09 +0100 Subject: [PATCH 0351/1039] Finalize queue Contributes to CL-1148 --- .../resources/qml/ClusterMonitorItem.qml | 269 ++++++++++++------ .../resources/qml/ExpandableCard.qml | 1 + .../qml/MonitorBuildplateConfiguration.qml | 2 +- .../resources/qml/MonitorPrintJobCard.qml | 108 +++++-- .../qml/MonitorPrinterConfiguration.qml | 30 +- .../resources/qml/MonitorPrinterPill.qml | 34 +++ .../resources/svg/icons/external_link.svg | 8 + 7 files changed, 327 insertions(+), 125 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml create mode 100644 plugins/UM3NetworkPrinting/resources/svg/icons/external_link.svg diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml index ff4bc72218..d055071521 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml @@ -8,102 +8,203 @@ import UM 1.3 as UM import Cura 1.0 as Cura import QtGraphicalEffects 1.0 -Component { - - Rectangle { - id: monitorFrame; - property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight"); - property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width; +Component +{ + Rectangle + { + id: monitorFrame + + property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight") + property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width + color: transparent - height: maximumHeight; - onVisibleChanged: { - if (monitorFrame != null && !monitorFrame.visible) { - OutputDevice.setActiveCameraUrl(""); + height: maximumHeight + onVisibleChanged: + { + if (monitorFrame != null && !monitorFrame.visible) + { + OutputDevice.setActiveCameraUrl("") } } - width: maximumWidth; + width: maximumWidth + + UM.I18nCatalog + { + id: catalog + name: "cura" + } LinearGradient { anchors.fill: parent gradient: Gradient { - GradientStop { position: 0.0; color: "#f6f6f6" } - GradientStop { position: 1.0; color: "#ffffff" } - } - } - - UM.I18nCatalog { - id: catalog; - name: "cura"; - } - - Label { - id: manageQueueLabel; - anchors { - bottom: queuedLabel.bottom; - right: queuedPrintJobs.right; - rightMargin: 3 * UM.Theme.getSize("default_margin").width; - } - color: UM.Theme.getColor("primary"); - font: UM.Theme.getFont("default"); - linkColor: UM.Theme.getColor("primary"); - text: catalog.i18nc("@label link to connect manager", "Manage queue"); - } - - MouseArea { - anchors.fill: manageQueueLabel; - hoverEnabled: true; - onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel(); - onEntered: manageQueueLabel.font.underline = true; - onExited: manageQueueLabel.font.underline = false; - } - - Label { - id: queuedLabel; - anchors { - left: queuedPrintJobs.left; - leftMargin: 3 * UM.Theme.getSize("default_margin").width + 5 * screenScaleFactor; - top: parent.top; - topMargin: 2 * UM.Theme.getSize("default_margin").height; - } - color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("large"); - text: catalog.i18nc("@label", "Queued"); - } - - ScrollView { - id: queuedPrintJobs; - anchors { - top: queuedLabel.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - horizontalCenter: parent.horizontalCenter; - bottomMargin: UM.Theme.getSize("default_margin").height; - bottom: parent.bottom; - } - style: UM.Theme.styles.scrollview; - visible: OutputDevice.receivedPrintJobs; - width: Math.min(834 * screenScaleFactor, maximumWidth); - - ListView { - id: printJobList; - anchors.fill: parent; - delegate: MonitorPrintJobCard { - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - } - printJob: modelData; + GradientStop { + position: 0.0 + color: "#f6f6f6" + } + GradientStop { + position: 1.0 + color: "#ffffff" + } + } + } + + Item + { + id: queue + + anchors.fill: parent + anchors.top: parent.top + anchors.topMargin: 400 * screenScaleFactor // TODO: Insert carousel here + + Label + { + id: queuedLabel + anchors + { + left: queuedPrintJobs.left + top: parent.top + } + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("large_nonbold") + text: catalog.i18nc("@label", "Queued") + } + + Item + { + id: manageQueueLabel + anchors + { + right: queuedPrintJobs.right + verticalCenter: queuedLabel.verticalCenter + } + height: 18 * screenScaleFactor // TODO: Theme! + width: childrenRect.width + + UM.RecolorImage + { + id: externalLinkIcon + anchors.verticalCenter: externalLinkIcon.verticalCenter + color: UM.Theme.getColor("primary") + source: "../svg/icons/external_link.svg" + width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) + height: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) + } + Label + { + anchors + { + left: externalLinkIcon.right + leftMargin: 6 * screenScaleFactor // TODO: Theme! + verticalCenter: externalLinkIcon.verticalCenter + } + color: UM.Theme.getColor("primary") + font: UM.Theme.getFont("default") + linkColor: UM.Theme.getColor("primary") + text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect") + } + } + + + MouseArea + { + anchors.fill: manageQueueLabel + hoverEnabled: true + onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel() + onEntered: manageQueueLabel.font.underline = true + onExited: manageQueueLabel.font.underline = false + } + + Row + { + id: printJobQueueHeadings + anchors + { + left: queuedPrintJobs.left + leftMargin: 6 * screenScaleFactor // TODO: Theme! + top: queuedLabel.bottom + topMargin: 24 * screenScaleFactor // TODO: Theme! + } + spacing: 18 * screenScaleFactor // TODO: Theme! + + Label + { + text: catalog.i18nc("@label", "Print jobs") + color: "#666666" + elide: Text.ElideRight + font: UM.Theme.getFont("medium") // 14pt, regular + anchors.verticalCenter: parent.verticalCenter + width: 284 * screenScaleFactor // TODO: Theme! (Should match column size) + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + + Label + { + text: catalog.i18nc("@label", "Total print time") + color: "#666666" + elide: Text.ElideRight + font: UM.Theme.getFont("medium") // 14pt, regular + anchors.verticalCenter: parent.verticalCenter + width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + + Label + { + text: catalog.i18nc("@label", "Waiting for") + color: "#666666" + elide: Text.ElideRight + font: UM.Theme.getFont("medium") // 14pt, regular + anchors.verticalCenter: parent.verticalCenter + width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + } + + ScrollView + { + id: queuedPrintJobs + anchors { + bottom: parent.bottom + horizontalCenter: parent.horizontalCenter + top: printJobQueueHeadings.bottom + topMargin: 12 * screenScaleFactor // TODO: Theme! + } + style: UM.Theme.styles.scrollview + visible: OutputDevice.receivedPrintJobs + width: Math.min(834 * screenScaleFactor, maximumWidth) + + ListView + { + id: printJobList + anchors.fill: parent + delegate: MonitorPrintJobCard + { + anchors + { + left: parent.left + right: parent.right + } + printJob: modelData + } + model: OutputDevice.queuedPrintJobs + spacing: 6 } - model: OutputDevice.queuedPrintJobs; - spacing: 6; } } PrinterVideoStream { - anchors.fill: parent; - cameraUrl: OutputDevice.activeCameraUrl; - visible: OutputDevice.activeCameraUrl != ""; + anchors.fill: parent + cameraUrl: OutputDevice.activeCameraUrl + visible: OutputDevice.activeCameraUrl != "" } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml index 89d88d671a..4922aea853 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml @@ -6,6 +6,7 @@ import QtQuick.Controls 2.0 import UM 1.3 as UM import Cura 1.0 as Cura +// TODO: Theme & documentation! // The expandable component has 3 major sub components: // * The headerItem Always visible and should hold some info about what happens if the component is expanded // * The popupItem The content that needs to be shown if the component is expanded. diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml index d14277a1ff..9ffb1eabb4 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml @@ -41,7 +41,6 @@ Item id: buildplateIcon anchors.centerIn: parent color: "#0a0850" // TODO: Theme! (Standard purple) - elide: Text.ElideRight height: parent.height source: "../svg/icons/buildplate.svg" width: height @@ -52,6 +51,7 @@ Item { id: buildplateLabel color: "#191919" // TODO: Theme! + elide: Text.ElideRight font: UM.Theme.getFont("very_small") // 12pt, regular text: "" diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index 6d02c40776..ada6f8a644 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -47,7 +47,7 @@ Item elide: Text.ElideRight font: UM.Theme.getFont("medium") // 14pt, regular anchors.verticalCenter: parent.verticalCenter - width: 216 * screenScaleFactor // TODO: Theme! + width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) // FIXED-LINE-HEIGHT: height: 18 * screenScaleFactor // TODO: Theme! @@ -61,42 +61,72 @@ Item elide: Text.ElideRight font: UM.Theme.getFont("medium") // 14pt, regular anchors.verticalCenter: parent.verticalCenter - width: 216 * screenScaleFactor // TODO: Theme! + width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) // FIXED-LINE-HEIGHT: height: 18 * screenScaleFactor // TODO: Theme! verticalAlignment: Text.AlignVCenter } - Label + Item { - color: "#374355" - elide: Text.ElideRight - font: UM.Theme.getFont("medium") // 14pt, regular - text: { - if (printJob !== null) { - if (printJob.assignedPrinter == null) - { - if (printJob.state == "error") - { - return catalog.i18nc("@label", "Waiting for: Unavailable printer") - } - return catalog.i18nc("@label", "Waiting for: First available") - } - else - { - return catalog.i18nc("@label", "Waiting for: ") + printJob.assignedPrinter.name - } - } - return "" - } - visible: printJob anchors.verticalCenter: parent.verticalCenter - width: 216 * screenScaleFactor // TODO: Theme! + height: childrenRect.height + width: childrenRect.width - // FIXED-LINE-HEIGHT: - height: 18 * screenScaleFactor // TODO: Theme! - verticalAlignment: Text.AlignVCenter + Label + { + id: printerAssignmentLabel + anchors.verticalCenter: parent.verticalCenter + color: "#374355" + elide: Text.ElideRight + font: UM.Theme.getFont("medium") // 14pt, regular + text: { + if (printJob !== null) { + if (printJob.assignedPrinter == null) + { + if (printJob.state == "error") + { + return catalog.i18nc("@label", "Unavailable printer") + } + return catalog.i18nc("@label", "First available") + } + else + { + return printJob.assignedPrinter.name + } + } + return "" + } + visible: printJob + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + + Row + { + id: printerFamilyPills + anchors + { + left: printerAssignmentLabel.right; + leftMargin: 12 // TODO: Theme! + verticalCenter: parent.verticalCenter + } + height: childrenRect.height + spacing: 6 // TODO: Theme! + + Repeater + { + id: compatiblePills + delegate: MonitorPrinterPill + { + text: modelData + } + model: printJob ? printJob.compatibleMachineFamilies : [] + } + } } } drawerItem: Row @@ -106,14 +136,17 @@ Item left: parent.left leftMargin: 74 * screenScaleFactor // TODO: Theme! } - height: 96 * screenScaleFactor // TODO: Theme! + height: 108 * screenScaleFactor // TODO: Theme! spacing: 18 * screenScaleFactor // TODO: Theme! MonitorPrinterConfiguration { id: printerConfiguration anchors.verticalCenter: parent.verticalCenter - printJob: base.printJob + buildplate: "Glass" + config0: base.printJob.configuration.extruderConfigurations[0] + config1: base.printJob.configuration.extruderConfigurations[1] + height: 72 * screenScaleFactor // TODO: Theme! } Label { text: printJob && printJob.owner ? printJob.owner : "" @@ -128,4 +161,19 @@ Item } } } + + PrintJobContextMenu + { + id: contextButton + anchors + { + right: parent.right; + rightMargin: 8 * screenScaleFactor // TODO: Theme! + top: parent.top + topMargin: 8 * screenScaleFactor // TODO: Theme! + } + printJob: base.printJob + width: 32 * screenScaleFactor // TODO: Theme! + height: 32 * screenScaleFactor // TODO: Theme! + } } \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml index 5d4d408b8e..a31c8bbd99 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml @@ -6,17 +6,26 @@ import QtQuick.Controls 2.0 import UM 1.3 as UM /** - * + * The MonitorPrinterConfiguration accepts 2 configuration objects as input and + * applies them to a MonitorBuildplateConfiguration instance and two instances + * of MonitorExtruderConfiguration. It's used in both the MonitorPrintJobCard + * component as well as the MonitorPrinterCard component. */ Item { id: base - property var printJob: null - property var config0: printJob ? printJob.configuration.extruderConfigurations[0] : null - property var config1: printJob ? printJob.configuration.extruderConfigurations[1] : null + // Extracted buildplate configuration + property alias buildplate: buildplateConfig.buildplate - height: 72 * screenScaleFactor // TODO: Theme! + // Extracted extruder configuration for position 0 + property var config0: null + + // Extracted extruder configuration for position 1 + property var config1: null + + // Default size, but should be stretched to fill parent + height: 72 * parent.height width: 450 * screenScaleFactor // TODO: Theme! Row @@ -25,8 +34,8 @@ Item MonitorExtruderConfiguration { - color: config0 ? config0.activeMaterial.color : "#eeeeee" // TODO: Theme! - material: config0 ? config0.activeMaterial.name : "" + color: config0 && config0.activeMaterial ? config0.activeMaterial.color : "#eeeeee" // TODO: Theme! + material: config0 && config0.activeMaterial ? config0.activeMaterial.name : "" position: config0.position printCore: config0 ? config0.hotendID : "" visible: config0 @@ -37,8 +46,8 @@ Item MonitorExtruderConfiguration { - color: config1 ? config1.activeMaterial.color : "#eeeeee" // TODO: Theme! - material: config1 ? config1.activeMaterial.name : "" + color: config1 && config1.activeMaterial ? config1.activeMaterial.color : "#eeeeee" // TODO: Theme! + material: config1 && config1.activeMaterial ? config1.activeMaterial.name : "" position: config1.position printCore: config1 ? config1.hotendID : "" visible: config1 @@ -50,7 +59,8 @@ Item MonitorBuildplateConfiguration { + id: buildplateConfig anchors.bottom: parent.bottom - buildplate: "Glass" + buildplate: "Glass" // 'Glass' as a default } } \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml new file mode 100644 index 0000000000..cd78f1b11f --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml @@ -0,0 +1,34 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.4 +import UM 1.2 as UM + +/** + * A MonitorPrinterPill is a blue-colored tag indicating which printers a print + * job is compatible with. It is used by the MonitorPrintJobCard component. + */ +Item +{ + // The printer name + property alias text: printerNameLabel.text; + + implicitHeight: 18 * screenScaleFactor // TODO: Theme! + implicitWidth: printerNameLabel.contentWidth + 12 // TODO: Theme! + + Rectangle { + id: background + anchors.fill: parent + color: "#e4e4f2" // TODO: Theme! + radius: 2 * screenScaleFactor // TODO: Theme! + } + + Label { + id: printerNameLabel + anchors.centerIn: parent + color: "#535369" // TODO: Theme! + text: "" + font.pointSize: 10 + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/svg/icons/external_link.svg b/plugins/UM3NetworkPrinting/resources/svg/icons/external_link.svg new file mode 100644 index 0000000000..a2130fb97b --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/svg/icons/external_link.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file From 669648d3e11a969ec75b83c5d5b763cef9705f71 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 20 Nov 2018 16:28:21 +0100 Subject: [PATCH 0352/1039] Improve the toolbar style by modifying the rectangles and the behavior to get a rounded rectangle on the right-top and right-bottom. Contributes to CURA-5962. --- resources/qml/ExtruderButton.qml | 16 ++---- resources/qml/Toolbar.qml | 36 ++++++++---- resources/themes/cura-light/styles.qml | 80 ++++++++++++++++++++------ resources/themes/cura-light/theme.json | 6 +- 4 files changed, 92 insertions(+), 46 deletions(-) diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 7923521658..cdd0386d30 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -21,6 +21,9 @@ Button checked: Cura.ExtruderManager.selectedObjectExtruders.indexOf(extruder.id) != -1 enabled: UM.Selection.hasSelection && extruder.stack.isEnabled + property bool isFirstElement: extrudersModel.getItem(0).name == model.name + property bool isLastElement: extrudersModel.getItem(extrudersModel.rowCount() - 1).name == model.name + Item { anchors.centerIn: parent @@ -32,18 +35,7 @@ Button { anchors.centerIn: parent text: index + 1 - color: - { - if (base.checked) - { - return UM.Theme.getColor("toolbar_button_text_active") - } - else if(base.hovered) - { - return UM.Theme.getColor("toolbar_button_text_hover") - } - return UM.Theme.getColor("toolbar_button_text") - } + color: UM.Theme.getColor("toolbar_button_text") font: UM.Theme.getFont("default_bold") } } diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 9955ceeba7..81896f1a75 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -28,12 +28,16 @@ Item // Used to create a rounded rectangle behind the toolButtons Rectangle { - anchors.fill: toolButtons - anchors.leftMargin: -radius + anchors + { + fill: toolButtons + leftMargin: -radius - border.width + rightMargin: -border.width + topMargin: -border.width + bottomMargin: -border.width + } radius: UM.Theme.getSize("default_radius").width - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - color: UM.Theme.getColor("toolbar_background") + color: UM.Theme.getColor("lining") } Column @@ -42,13 +46,13 @@ Item anchors.top: parent.top anchors.right: parent.right - spacing: UM.Theme.getSize("button_lining").width + spacing: UM.Theme.getSize("default_lining").height Repeater { id: repeat - model: UM.ToolModel { } + model: UM.ToolModel { id: toolsModel } width: childrenRect.width height: childrenRect.height Button @@ -60,6 +64,9 @@ Item enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled style: UM.Theme.styles.toolbar_button + property bool isFirstElement: toolsModel.getItem(0).id == model.id + property bool isLastElement: toolsModel.getItem(toolsModel.rowCount() - 1).id == model.id + onCheckedChanged: { if (checked) @@ -93,12 +100,16 @@ Item // Used to create a rounded rectangle behind the extruderButtons Rectangle { - anchors.fill: extruderButtons - anchors.leftMargin: -radius + anchors + { + fill: extruderButtons + leftMargin: -radius - border.width + rightMargin: -border.width + topMargin: -border.width + bottomMargin: -border.width + } radius: UM.Theme.getSize("default_radius").width - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - color: UM.Theme.getColor("toolbar_background") + color: UM.Theme.getColor("lining") } Column @@ -108,6 +119,7 @@ Item anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.top: toolButtons.bottom anchors.right: parent.right + spacing: UM.Theme.getSize("default_lining").height Repeater { diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 58035ae3bd..723b393efa 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -175,11 +175,68 @@ QtObject { ButtonStyle { - background: Item + background: Rectangle { - implicitWidth: Theme.getSize("button").width; - implicitHeight: Theme.getSize("button").height; + implicitWidth: Theme.getSize("button").width + implicitHeight: Theme.getSize("button").height + color: + { + if (control.checked && control.hovered) + { + return Theme.getColor("toolbar_button_active_hover") + } + else if (control.checked) + { + return Theme.getColor("toolbar_button_active") + } + else if(control.hovered) + { + return Theme.getColor("toolbar_button_hover") + } + return Theme.getColor("toolbar_background") + } + radius: UM.Theme.getSize("default_radius").width + Rectangle + { + id: topSquare + anchors + { + left: parent.left + right: parent.right + top: parent.top + } + height: parent.radius + color: control.isFirstElement ? "transparent" : parent.color + } + + Rectangle + { + id: bottomSquare + anchors + { + left: parent.left + right: parent.right + bottom: parent.bottom + } + height: parent.radius + color: control.isLastElement ? "transparent" : parent.color + } + + Rectangle + { + id: leftSquare + anchors + { + left: parent.left + top: parent.top + bottom: parent.bottom + } + width: parent.radius + color: parent.color + } + + // This is the tooltip UM.PointingRectangle { id: button_tooltip @@ -223,22 +280,7 @@ QtObject source: control.iconSource; width: Theme.getSize("button_icon").width; height: Theme.getSize("button_icon").height; - color: - { - if (control.checked && control.hovered) - { - return Theme.getColor("toolbar_button_text_active_hover"); - } - else if (control.checked) - { - return Theme.getColor("toolbar_button_text_active"); - } - else if(control.hovered) - { - return Theme.getColor("toolbar_button_text_hover"); - } - return Theme.getColor("toolbar_button_text"); - } + color: Theme.getColor("toolbar_button_text"); sourceSize: Theme.getSize("button_icon") } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index f4d50e4c79..d00e998cc8 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -123,9 +123,9 @@ "warning": [255, 190, 35, 255], "toolbar_button_text": [10, 8, 80, 255], - "toolbar_button_text_hover": [50, 130, 255, 255], - "toolbar_button_text_active": [50, 130, 255, 255], - "toolbar_button_text_active_hover": [50, 130, 255, 255], + "toolbar_button_hover": [232, 242, 252, 255], + "toolbar_button_active": [232, 242, 252, 255], + "toolbar_button_active_hover": [232, 242, 252, 255], "button": [31, 36, 39, 255], "button_hover": [68, 72, 75, 255], From 481ca8cd2f2e61ba7591695c7b318346cad4364d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Tue, 20 Nov 2018 16:33:52 +0100 Subject: [PATCH 0353/1039] Fixed some bugs and added the color_code field to the named tuple --- plugins/UM3NetworkPrinting/src/Models.py | 1 + .../UM3NetworkPrinting/src/SendMaterialJob.py | 20 +++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index e8efa577f6..a9210ac5b4 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -23,6 +23,7 @@ LocalMaterial = namedtuple('LocalMaterial', [ 'brand', 'material', 'color_name', + 'color_code', 'description', 'adhesion_info', 'approximate_diameter', diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index cbe79aef6a..0599101379 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -2,6 +2,7 @@ # Cura is released under the terms of the LGPLv3 or higher. import json import os +import re import urllib.parse from typing import Dict, TYPE_CHECKING, Set @@ -19,7 +20,6 @@ from .Models import ClusterMaterial, LocalMaterial if TYPE_CHECKING: from .ClusterUM3OutputDevice import ClusterUM3OutputDevice - ## Asynchronous job to send material profiles to the printer. # # This way it won't freeze up the interface while sending those materials. @@ -50,7 +50,7 @@ class SendMaterialJob(Job): self._sendMissingMaterials(remote_materials_by_guid) except json.JSONDecodeError: Logger.logException("w", "Error parsing materials from printer") - except KeyError: + except TypeError: Logger.logException("w", "Error parsing materials from printer") ## Determine which materials should be updated and send them to the printer. @@ -75,7 +75,8 @@ class SendMaterialJob(Job): ## From the local and remote materials, determine which ones should be synchronized. # - # Makes a Set containing only the materials that are not on the printer yet or the ones that are newer in Cura. + # Makes a Set of id's containing only the id's of the materials that are not on the printer yet or the ones that + # are newer in Cura. # # \param local_materials The local materials by GUID. # \param remote_materials The remote materials by GUID. @@ -157,7 +158,7 @@ class SendMaterialJob(Job): @classmethod def _parseReply(cls, reply: QNetworkReply) -> Dict[str, ClusterMaterial]: remote_materials = json.loads(reply.readAll().data().decode("utf-8")) - return {material["id"]: ClusterMaterial(**material) for material in remote_materials} + return {material["guid"]: ClusterMaterial(**material) for material in remote_materials} ## Retrieves a list of local materials # @@ -170,12 +171,19 @@ class SendMaterialJob(Job): material_containers = container_registry.findContainersMetadata(type = "material") # Find the latest version of all material containers in the registry. - local_materials = {} # type: Dict[str, LocalMaterial] for material in material_containers: try: material = LocalMaterial(**material) + + # material version must be an int + if not re.match("\d+", material.version): + Logger.logException("w", "Local material {} has invalid version '{}'." + .format(material["id"], material.version)) + continue + if material.GUID not in result or material.version > result.get(material.GUID).version: - local_materials[material.GUID] = material + result[material.GUID] = material except ValueError: Logger.logException("w", "Local material {} has invalid values.".format(material["id"])) + return result From ca6074429290b6ae5fa1f3ccfbfa74107ed1284a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Tue, 20 Nov 2018 16:34:11 +0100 Subject: [PATCH 0354/1039] Made the tests work with the named tuples Tests only use the _onGetRemoteMaterial --- .../tests/TestSendMaterialJob.py | 313 +++++++----------- 1 file changed, 123 insertions(+), 190 deletions(-) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index 73bca2b0ad..f4604580fe 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -1,53 +1,23 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import io import json - -from typing import Any, List -from unittest import TestCase +from unittest import TestCase, mock from unittest.mock import patch, call from PyQt5.QtCore import QByteArray -from UM.Settings.ContainerRegistry import ContainerInterface, ContainerRegistryInterface, DefinitionContainerInterface -from plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice import ClusterUM3OutputDevice +from UM.MimeTypeDatabase import MimeType +from cura.CuraApplication import CuraApplication from plugins.UM3NetworkPrinting.src.SendMaterialJob import SendMaterialJob -class ContainerRegistryMock(ContainerRegistryInterface): - - def __init__(self): - self.containersMetaData = None - - def findContainers(self, *, ignore_case: bool = False, **kwargs: Any) -> List[ContainerInterface]: - raise NotImplementedError() - - def findDefinitionContainers(self, **kwargs: Any) -> List[DefinitionContainerInterface]: - raise NotImplementedError() - - @classmethod - def getApplication(cls) -> "Application": - raise NotImplementedError() - - def getEmptyInstanceContainer(self) -> "InstanceContainer": - raise NotImplementedError() - - def isReadOnly(self, container_id: str) -> bool: - raise NotImplementedError() - - def setContainersMetadata(self, value): - self.containersMetaData = value - - def findContainersMetadata(self, type): - return self.containersMetaData - - -class MockOutputDevice(ClusterUM3OutputDevice): - def _createFormPart(self, content_header, data, content_type=None): - return "xxx" - - +@patch("builtins.open", lambda _, __: io.StringIO("")) +@patch("UM.MimeTypeDatabase.MimeTypeDatabase.getMimeTypeForFile", + lambda _: MimeType(name = "application/x-ultimaker-material-profile", comment = "Ultimaker Material Profile", + suffixes = ["xml.fdm_material"])) +@patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) class TestSendMaterialJob(TestCase): - _LOCAL_MATERIAL_WHITE = {"type": "material", "status": "unknown", "id": "generic_pla_white", "base_file": "generic_pla_white", "setting_version": 5, "name": "White PLA", "brand": "Generic", "material": "PLA", "color_name": "White", @@ -88,11 +58,11 @@ class TestSendMaterialJob(TestCase): job.run() # We expect the materials endpoint to be called when the job runs. - device_mock.get.assert_called_with("materials/", on_finished=job._onGetRemoteMaterials) + device_mock.get.assert_called_with("materials/", on_finished = job._onGetRemoteMaterials) @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_withFailedRequest(self, reply_mock, device_mock): + def test__onGetRemoteMaterials_withFailedRequest(self, reply_mock, device_mock): reply_mock.attribute.return_value = 404 job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) @@ -103,7 +73,7 @@ class TestSendMaterialJob(TestCase): @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_withBadJsonAnswer(self, reply_mock, device_mock): + def test__onGetRemoteMaterials_withBadJsonAnswer(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(b"Six sick hicks nick six slick bricks with picks and sticks.") job = SendMaterialJob(device_mock) @@ -116,7 +86,7 @@ class TestSendMaterialJob(TestCase): @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") @patch("PyQt5.QtNetwork.QNetworkReply") - def test_sendMissingMaterials_withMissingGuid(self, reply_mock, device_mock): + def test__onGetRemoteMaterials_withMissingGuidInRemoteMaterial(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 remote_material_without_guid = self._REMOTE_MATERIAL_WHITE.copy() del remote_material_without_guid["guid"] @@ -127,151 +97,114 @@ class TestSendMaterialJob(TestCase): # We expect the reply to be called once to try to get the printers from the list (readAll()). # Given that parsing fails we do not expect the device to be called for any follow up. self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) - self.assertEqual(1, device_mock.createFormPart.call_count) + self.assertEqual(0, device_mock.createFormPart.call_count) - # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_sendMissingMaterials_WithInvalidVersionInLocalMaterial(self, reply_mock): - # reply_mock.attribute.return_value = 200 - # reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - # - # containerRegistry = ContainerRegistryMock() - # localMaterialWhiteWithInvalidVersion = self._LOCALMATERIAL_WHITE.copy() - # localMaterialWhiteWithInvalidVersion["version"] = "one" - # containerRegistry.setContainersMetadata([localMaterialWhiteWithInvalidVersion]) - # - # with mock.patch.object(Logger, "log", new=new_log): - # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - # SendMaterialJob(None).sendMissingMaterials(reply_mock) - # - # reply_mock.attribute.assert_called_with(0) - # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - # self._assertLogEntries([("e", "Material generic_pla_white has invalid version number one.")], _logentries) - # - # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_sendMissingMaterials_WithMultipleLocalVersionsLowFirst(self, reply_mock): - # reply_mock.attribute.return_value = 200 - # reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - # - # containerRegistry = ContainerRegistryMock() - # localMaterialWhiteWithHigherVersion = self._LOCALMATERIAL_WHITE.copy() - # localMaterialWhiteWithHigherVersion["version"] = "2" - # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWhiteWithHigherVersion]) - # - # with mock.patch.object(Logger, "log", new=new_log): - # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - # SendMaterialJob(None).sendMissingMaterials(reply_mock) - # - # reply_mock.attribute.assert_called_with(0) - # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - # self._assertLogEntries([], _logentries) - # - # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: []) - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_sendMissingMaterials_MaterialMissingOnPrinter(self, reply_mock): - # reply_mock.attribute.return_value = 200 - # reply_mock.readAll.return_value = QByteArray( - # json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - # - # containerRegistry = ContainerRegistryMock() - # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) - # - # with mock.patch.object(Logger, "log", new=new_log): - # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - # SendMaterialJob(None).sendMissingMaterials(reply_mock) - # - # reply_mock.attribute.assert_called_with(0) - # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.readAll()]) - # self._assertLogEntries([], _logentries) - # - # @patch("builtins.open", lambda a, b: io.StringIO("")) - # @patch("UM.MimeTypeDatabase.MimeTypeDatabase.getMimeTypeForFile", - # lambda _: MimeType(name="application/x-ultimaker-material-profile", comment="Ultimaker Material Profile", - # suffixes=["xml.fdm_material"])) - # @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) - # @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - # def test_sendMaterialsToPrinter(self, device_mock): - # device_mock._createFormPart.return_value = "_xXx_" - # with mock.patch.object(Logger, "log", new=new_log): - # job = SendMaterialJob(device_mock) - # job.sendMaterialsToPrinter({"generic_pla_white"}) - # - # self._assertLogEntries([("d", "Syncing material generic_pla_white with cluster.")], _logentries) - # self.assertEqual([call._createFormPart("name="file"; filename="generic_pla_white.xml.fdm_material"", ""), - # call.postFormWithParts(on_finished=job.sendingFinished, parts = ["_xXx_"], target = "materials/")], device_mock.method_calls) - # - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_sendingFinished_success(self, reply_mock) -> None: - # reply_mock.attribute.return_value = 200 - # with mock.patch.object(Logger, "log", new=new_log): - # SendMaterialJob(None).sendingFinished(reply_mock) - # - # reply_mock.attribute.assert_called_once_with(0) - # self.assertEqual(0, len(_logentries)) - # - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_sendingFinished_failed(self, reply_mock) -> None: - # reply_mock.attribute.return_value = 404 - # reply_mock.readAll.return_value = QByteArray(b"Six sick hicks nick six slick bricks with picks and sticks.") - # - # with mock.patch.object(Logger, "log", new=new_log): - # SendMaterialJob(None).sendingFinished(reply_mock) - # - # reply_mock.attribute.assert_called_with(0) - # self.assertEqual(reply_mock.method_calls, [call.attribute(0), call.attribute(0), call.readAll()]) - # - # self._assertLogEntries([ - # ("e", "Received error code from printer when syncing material: 404"), - # ("e", "Six sick hicks nick six slick bricks with picks and sticks.") - # ], _logentries) - # - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_parseReply(self, reply_mock): - # reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTEMATERIAL_WHITE]).encode("ascii")) - # - # response = SendMaterialJob._parseReply(reply_mock) - # - # self.assertTrue(len(response) == 1) - # self.assertEqual(next(iter(response.values())), ClusterMaterial(**self._REMOTEMATERIAL_WHITE)) - # - # @patch("PyQt5.QtNetwork.QNetworkReply") - # def test_parseReplyWithInvalidMaterial(self, reply_mock): - # remoteMaterialWithInvalidVersion = self._REMOTEMATERIAL_WHITE.copy() - # remoteMaterialWithInvalidVersion["version"] = "one" - # reply_mock.readAll.return_value = QByteArray(json.dumps([remoteMaterialWithInvalidVersion]).encode("ascii")) - # - # with self.assertRaises(ValueError): - # SendMaterialJob._parseReply(reply_mock) - # - # def test__getLocalMaterials(self): - # containerRegistry = ContainerRegistryMock() - # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, self._LOCALMATERIAL_BLACK]) - # - # with mock.patch.object(Logger, "log", new=new_log): - # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - # local_materials = SendMaterialJob(None)._getLocalMaterials() - # - # self.assertTrue(len(local_materials) == 2) - # - # def test__getLocalMaterialsWithMultipleVersions(self): - # containerRegistry = ContainerRegistryMock() - # localMaterialWithNewerVersion = self._LOCALMATERIAL_WHITE.copy() - # localMaterialWithNewerVersion["version"] = 2 - # containerRegistry.setContainersMetadata([self._LOCALMATERIAL_WHITE, localMaterialWithNewerVersion]) - # - # with mock.patch.object(Logger, "log", new=new_log): - # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - # local_materials = SendMaterialJob(None)._getLocalMaterials() - # - # self.assertTrue(len(local_materials) == 1) - # self.assertTrue(list(local_materials.values())[0].version == 2) - # - # containerRegistry.setContainersMetadata([localMaterialWithNewerVersion, self._LOCALMATERIAL_WHITE]) - # - # with mock.patch.object(Logger, "log", new=new_log): - # with mock.patch.object(ContainerRegistry, "getInstance", lambda: containerRegistry): - # local_materials = SendMaterialJob(None)._getLocalMaterials() - # - # self.assertTrue(len(local_materials) == 1) - # self.assertTrue(list(local_materials.values())[0].version == 2) + @patch("cura.Settings.CuraContainerRegistry") + @patch("cura.CuraApplication") + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + @patch("PyQt5.QtNetwork.QNetworkReply") + def test__onGetRemoteMaterials_withInvalidVersionInLocalMaterial(self, reply_mock, device_mock, application_mock, + container_registry_mock): + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_WHITE]).encode("ascii")) + + localMaterialWhiteWithInvalidVersion = self._LOCAL_MATERIAL_WHITE.copy() + localMaterialWhiteWithInvalidVersion["version"] = "one" + container_registry_mock.findContainersMetadata.return_value = [localMaterialWhiteWithInvalidVersion] + + application_mock.getContainerRegistry.return_value = container_registry_mock + + with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) + self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) + self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) + self.assertEqual(0, device_mock.createFormPart.call_count) + + @patch("cura.Settings.CuraContainerRegistry") + @patch("cura.CuraApplication") + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + @patch("PyQt5.QtNetwork.QNetworkReply") + def test__onGetRemoteMaterials_withNoUpdate(self, reply_mock, device_mock, application_mock, + container_registry_mock): + application_mock.getContainerRegistry.return_value = container_registry_mock + + device_mock.createFormPart.return_value = "_xXx_" + + container_registry_mock.findContainersMetadata.return_value = [self._LOCAL_MATERIAL_WHITE] + + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_WHITE]).encode("ascii")) + + with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) + self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) + self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) + self.assertEqual(0, device_mock.createFormPart.call_count) + self.assertEqual(0, device_mock.postFormWithParts.call_count) + + @patch("cura.Settings.CuraContainerRegistry") + @patch("cura.CuraApplication") + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + @patch("PyQt5.QtNetwork.QNetworkReply") + def test__onGetRemoteMaterials_withUpdatedMaterial(self, reply_mock, device_mock, application_mock, + container_registry_mock): + application_mock.getContainerRegistry.return_value = container_registry_mock + + device_mock.createFormPart.return_value = "_xXx_" + + localMaterialWhiteWithHigherVersion = self._LOCAL_MATERIAL_WHITE.copy() + localMaterialWhiteWithHigherVersion["version"] = "2" + container_registry_mock.findContainersMetadata.return_value = [localMaterialWhiteWithHigherVersion] + + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_WHITE]).encode("ascii")) + + with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) + self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) + self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) + self.assertEqual(1, device_mock.createFormPart.call_count) + self.assertEqual(1, device_mock.postFormWithParts.call_count) + self.assertEquals( + [call.createFormPart("name=\"file\"; filename=\"generic_pla_white.xml.fdm_material\"", ""), + call.postFormWithParts(target = "materials/", parts = ["_xXx_"], on_finished = job.sendingFinished)], + device_mock.method_calls) + + @patch("cura.Settings.CuraContainerRegistry") + @patch("cura.CuraApplication") + @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") + @patch("PyQt5.QtNetwork.QNetworkReply") + def test__onGetRemoteMaterials_withNewMaterial(self, reply_mock, device_mock, application_mock, + container_registry_mock): + application_mock.getContainerRegistry.return_value = container_registry_mock + + device_mock.createFormPart.return_value = "_xXx_" + + container_registry_mock.findContainersMetadata.return_value = [self._LOCAL_MATERIAL_WHITE, + self._LOCAL_MATERIAL_BLACK] + + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_BLACK]).encode("ascii")) + + with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) + self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) + self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) + self.assertEqual(1, device_mock.createFormPart.call_count) + self.assertEqual(1, device_mock.postFormWithParts.call_count) + self.assertEquals( + [call.createFormPart("name=\"file\"; filename=\"generic_pla_white.xml.fdm_material\"", ""), + call.postFormWithParts(target = "materials/", parts = ["_xXx_"], on_finished = job.sendingFinished)], + device_mock.method_calls) From f3338aa187bfe607664d0d79d5848d7cdee5fc06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Tue, 20 Nov 2018 16:53:01 +0100 Subject: [PATCH 0355/1039] Fixed the failing tests --- plugins/UM3NetworkPrinting/src/SendMaterialJob.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 0599101379..fe0cd98964 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -84,8 +84,9 @@ class SendMaterialJob(Job): def _determineMaterialsToSend(local_materials: Dict[str, LocalMaterial], remote_materials: Dict[str, ClusterMaterial]) -> Set[str]: return { - material.id for guid, material in local_materials.items() - if guid not in remote_materials or material.version > remote_materials[guid].version + material.id + for guid, material in local_materials.items() + if guid not in remote_materials or int(material.version) > remote_materials[guid].version } ## Send the materials to the printer. From 4e8979334e0d794b2cd8cae72ce9c351890577c8 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 20 Nov 2018 19:18:48 +0100 Subject: [PATCH 0356/1039] Switch Ultimaker Account OAuth2 client The new client has access to more permissions and is labeled as "Ultimaker Cura" instead of "Cura Backups Plugin". Also removes `self._cloud_api_root` as that's not used anymore now that `self._oauth_root` is used for the redirect URLs. --- cura/API/Account.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cura/API/Account.py b/cura/API/Account.py index 397e220478..64d63c7025 100644 --- a/cura/API/Account.py +++ b/cura/API/Account.py @@ -38,13 +38,12 @@ class Account(QObject): self._callback_port = 32118 self._oauth_root = "https://account.ultimaker.com" - self._cloud_api_root = "https://api.ultimaker.com" self._oauth_settings = OAuth2Settings( OAUTH_SERVER_URL= self._oauth_root, CALLBACK_PORT=self._callback_port, CALLBACK_URL="http://localhost:{}/callback".format(self._callback_port), - CLIENT_ID="um---------------ultimaker_cura_drive_plugin", + CLIENT_ID="um----------------------------ultimaker_cura", CLIENT_SCOPES="account.user.read drive.backup.read drive.backup.write packages.download packages.rating.read packages.rating.write", AUTH_DATA_PREFERENCE_KEY="general/ultimaker_auth_data", AUTH_SUCCESS_REDIRECT="{}/app/auth-success".format(self._oauth_root), From 4bccd2b7b5b0faac7ddd6140c5bebe81c43659cf Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 20 Nov 2018 23:46:03 +0100 Subject: [PATCH 0357/1039] Restyle printer settings dropdown CURA-5941 --- plugins/PreviewStage/PreviewMenu.qml | 2 +- resources/qml/ActionButton.qml | 18 +- resources/qml/MachineSelector.qml | 2 +- .../QuickConfigurationSelector.qml | 2 +- resources/qml/PrintSetupSelector.qml | 343 ++++++++++++------ resources/themes/cura-light/theme.json | 7 +- 6 files changed, 251 insertions(+), 123 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index b331ff69c5..7b3a3af4e3 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -3,7 +3,7 @@ import QtQuick 2.7 -import QtQuick.Controls 2.4 +import QtQuick.Controls 2.3 import UM 1.3 as UM import Cura 1.1 as Cura diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 2a8b894867..08f4d9d679 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -12,6 +12,7 @@ Button id: button property alias cursorShape: mouseArea.cursorShape property alias iconSource: buttonIcon.source + property alias iconSourceRight: buttonIconRight.source property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.text @@ -29,7 +30,8 @@ Button // we elide the text to the right so the text will be cut off with the three dots at the end. property var fixedWidthMode: false - contentItem: Row + width: buttonIcon.width + buttonText.width + buttonIconRight.width + contentItem: Item { UM.RecolorImage { @@ -57,6 +59,20 @@ Button horizontalAlignment: Text.AlignHCenter elide: Text.ElideRight } + + UM.RecolorImage + { + id: buttonIconRight + source: "" + height: Math.round(0.6 * parent.height) + width: height + sourceSize.width: width + sourceSize.height: height + color: button.hovered ? button.textHoverColor : button.textColor + visible: source != "" + anchors.verticalCenter: parent.verticalCenter + anchors.right: source != "" ? parent.right : undefined + } } background: Rectangle diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index a464949192..c9756d93ba 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -2,7 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 2.4 +import QtQuick.Controls 2.3 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index 33610135fe..d428a05463 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -4,7 +4,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Controls.Styles 1.4 -import QtQuick.Layouts 1.11 +import QtQuick.Layouts 1.3 import QtQuick.Controls 1.1 as OldControls diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index b843244147..ed09238b51 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -28,8 +28,15 @@ Cura.ExpandableComponent height: childrenRect.height iconSource: UM.Theme.getIcon("pencil") + popupPadding : 0 + onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) + Component.onCompleted: + { + popupItemWrapper.width = base.width + } + UM.I18nCatalog { id: catalog @@ -109,142 +116,242 @@ Cura.ExpandableComponent } } - popupItem: Item + + Cura.ExtrudersModel { - height: settingsModeSelection.height + sidebarContents.height + 2 * UM.Theme.getSize("default_margin").height - width: UM.Theme.getSize("print_setup_widget").width - ListView - { - // Settings mode selection toggle - id: settingsModeSelection - model: modesListModel - height: UM.Theme.getSize("print_setup_mode_toggle").height - visible: !hideSettings + id: extrudersModel + } - anchors - { - right: parent.right - left: parent.left - margins: UM.Theme.getSize("thick_margin").width - } + popupItem: Rectangle + { + property var total_height: popupItemHeader.height + popupItemContent.height + 10 + separator_footer.height + id: popupItemWrapper + height: total_height - ButtonGroup - { - id: modeMenuGroup - } - - delegate: Button - { - id: control - - height: settingsModeSelection.height - width: Math.round(parent.width / 2) - - anchors.left: parent.left - anchors.leftMargin: model.index * Math.round(settingsModeSelection.width / 2) - anchors.verticalCenter: parent.verticalCenter - - ButtonGroup.group: modeMenuGroup - - checkable: true - checked: base.currentModeIndex == index - onClicked: base.currentModeIndex = index - - onHoveredChanged: - { - if (hovered) - { - tooltipDelayTimer.item = settingsModeSelection - tooltipDelayTimer.text = model.tooltipText - tooltipDelayTimer.start() - } - else - { - tooltipDelayTimer.stop() - base.hideTooltip() - } - } - - background: Rectangle - { - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") - - // For some reason, QtQuick decided to use the color of the background property as text color for the contentItem, so here it is - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - } - - contentItem: Label - { - text: model.text - font: UM.Theme.getFont("default") - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - renderType: Text.NativeRendering - elide: Text.ElideRight - color: - { - if(control.pressed) - { - return UM.Theme.getColor("action_button_active_text") - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text") - } - return UM.Theme.getColor("action_button_text") - } - } - } - } + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") Item { - id: sidebarContents - anchors.top: settingsModeSelection.bottom - anchors.topMargin: UM.Theme.getSize("thick_margin").height - anchors.left: parent.left - anchors.right: parent.right - height: UM.Theme.getSize("print_setup_widget").height + id: popupItemHeader + height: 36 - visible: !hideSettings - - // We load both of them at once (instead of using a loader) because the advanced sidebar can take - // quite some time to load. So in this case we sacrifice memory for speed. - SidebarAdvanced + anchors { - anchors.fill: parent - visible: currentModeIndex == 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() + top: parent.top + right: parent.right + left: parent.left } - SidebarSimple + Label { - anchors.fill: parent - visible: currentModeIndex != 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() + id: popupItemHeaderText + text: catalog.i18nc("@label", "Print settings"); + font: UM.Theme.getFont("default") + verticalAlignment: Text.AlignVCenter + color: UM.Theme.getColor("text") + height: parent.height + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("print_setup_selector_margin").height + } + + Rectangle + { + width: parent.width + height: UM.Theme.getSize("default_lining").height + anchors.top: popupItemHeaderText.bottom + color: UM.Theme.getColor("action_button_border") + + } } - // Setting mode: Recommended or Custom - ListModel + Rectangle { - id: modesListModel + id: popupItemContent + width: parent.width + height: tabBar.height + sidebarContents.height + anchors + { + top: popupItemHeader.bottom + topMargin: 10 + right: parent.right + left: parent.left + leftMargin: 5 + rightMargin: 5 + } + + + TabBar + { + id: tabBar + onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) + width: parent.width + height: UM.Theme.getSize("print_setup_tap_bar").width + z: 1 + Repeater + { + id: extruder_model_repeater + model: extrudersModel + + delegate: TabButton + { + z: 2 + width: ListView.view != null ? Math.round(ListView.view.width / extrudersModel.rowCount()): 0 + implicitHeight: parent.height + + contentItem: Rectangle + { + z: 2 + Cura.ExtruderIcon + { + anchors.horizontalCenter: parent.horizontalCenter + materialColor: model.color + extruderEnabled: model.enabled + width: parent.height + height: parent.height + } + + } + + background: Rectangle + { + + width: parent.width + z: 1 + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: UM.Theme.getColor("action_button_border") + + visible: + { + return index == tabBar.currentIndex + } + + // overlap bottom border + Rectangle + { + width: parent.width - 4 + height: 4 + anchors.bottom: parent.bottom + anchors.bottomMargin: -2 + anchors.leftMargin: 2 + anchors.left: parent.left + + } + } + } + } + } + + Rectangle + { + id: sidebarContents + anchors.top: tabBar.bottom + anchors.left: parent.left + anchors.right: parent.right + height: UM.Theme.getSize("print_setup_widget").height + + + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: UM.Theme.getColor("action_button_border") + + SidebarSimple + { + anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height + id: sidebar_simple_id + anchors.fill: parent + visible: currentModeIndex != 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + } + + SidebarAdvanced + { + anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height + anchors.bottomMargin: 2 //does not overlap bottom border + anchors.fill: parent + visible: currentModeIndex == 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + } + + } } + + Item + { + id: separator_footer + anchors.top: popupItemContent.bottom + anchors.topMargin: 10 + width: parent.width + height: settingControlButton.height + 4 + + Rectangle + { + width: parent.width + height: UM.Theme.getSize("default_lining").height + color: UM.Theme.getColor("action_button_border") + } + + Cura.ActionButton + { + id: settingControlButton + + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("action_panel_button").height + text: catalog.i18nc("@button", "Custom") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + iconSourceRight: UM.Theme.getIcon("arrow_right") + width: UM.Theme.getSize("print_setup_action_button").width + fixedWidthMode: true + visible: currentModeIndex == 0 + anchors + { + top: parent.top + topMargin: 10 + bottomMargin: 10 + right: parent.right + rightMargin: 5 + } + + onClicked: currentModeIndex = 1 + } + + Cura.ActionButton + { + height: UM.Theme.getSize("action_panel_button").height + text: catalog.i18nc("@button", "Recommended") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + iconSource: UM.Theme.getIcon("arrow_left") + width: UM.Theme.getSize("print_setup_action_button").width + + + fixedWidthMode: true + visible: currentModeIndex == 1 + anchors + { + top: parent.top + topMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 + bottomMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 + left: parent.left + leftMargin: UM.Theme.getSize("print_setup_selector_margin").height + } + + onClicked: currentModeIndex = 0 + } + } Component.onCompleted: { - modesListModel.append({ - text: catalog.i18nc("@title:tab", "Recommended"), - tooltipText: "%1

    %2".arg(catalog.i18nc("@tooltip:title", "Recommended Print Setup")).arg(catalog.i18nc("@tooltip", "Print with the recommended settings for the selected printer, material and quality.")) - }) - modesListModel.append({ - text: catalog.i18nc("@title:tab", "Custom"), - tooltipText: "%1

    %2".arg(catalog.i18nc("@tooltip:title", "Custom Print Setup")).arg(catalog.i18nc("@tooltip", "Print with finegrained control over every last bit of the slicing process.")) - }) - var index = Math.round(UM.Preferences.getValue("cura/active_mode")) if(index != null && !isNaN(index)) @@ -257,4 +364,4 @@ Cura.ExpandableComponent } } } -} +} \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d28611529b..fc62edc480 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -528,6 +528,11 @@ "monitor_thick_lining": [0.16, 0.16], "monitor_corner_radius": [0.3, 0.3], "monitor_shadow_radius": [0.4, 0.4], - "monitor_shadow_offset": [0.15, 0.15] + "monitor_shadow_offset": [0.15, 0.15], + + "print_setup_selector_margin": [0.5, 0.5], + "print_setup_action_button": [13, 5], + "print_setup_tap_bar": [4, 4], + "print_setup_content_top_margin": [3, 3] } } From 8b085aa877194c45a3122ccbafa5460d57f9e28d Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 20 Nov 2018 23:47:25 +0100 Subject: [PATCH 0358/1039] Revert "Switch Ultimaker Account OAuth2 client" This reverts commit 4e8979334e0d794b2cd8cae72ce9c351890577c8. --- cura/API/Account.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/API/Account.py b/cura/API/Account.py index 64d63c7025..397e220478 100644 --- a/cura/API/Account.py +++ b/cura/API/Account.py @@ -38,12 +38,13 @@ class Account(QObject): self._callback_port = 32118 self._oauth_root = "https://account.ultimaker.com" + self._cloud_api_root = "https://api.ultimaker.com" self._oauth_settings = OAuth2Settings( OAUTH_SERVER_URL= self._oauth_root, CALLBACK_PORT=self._callback_port, CALLBACK_URL="http://localhost:{}/callback".format(self._callback_port), - CLIENT_ID="um----------------------------ultimaker_cura", + CLIENT_ID="um---------------ultimaker_cura_drive_plugin", CLIENT_SCOPES="account.user.read drive.backup.read drive.backup.write packages.download packages.rating.read packages.rating.write", AUTH_DATA_PREFERENCE_KEY="general/ultimaker_auth_data", AUTH_SUCCESS_REDIRECT="{}/app/auth-success".format(self._oauth_root), From 791929d6897942e971a112a26839c0fa6f94f847 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 20 Nov 2018 23:47:46 +0100 Subject: [PATCH 0359/1039] Revert "Merge branch 'fix-oauth2-client' into CURA-5785-Restyle_stage_menu" This reverts commit 4caf770a62f07b71a646b7f09a08623485b89582, reversing changes made to 0cdcd61ff2dfe2677e636cc2f1ee993cbd9d641d. --- resources/qml/Dialogs/AddMachineDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Dialogs/AddMachineDialog.qml b/resources/qml/Dialogs/AddMachineDialog.qml index aa160acd4d..0df8b891d9 100644 --- a/resources/qml/Dialogs/AddMachineDialog.qml +++ b/resources/qml/Dialogs/AddMachineDialog.qml @@ -73,7 +73,7 @@ UM.Dialog { top: parent.top left: parent.left - topMargin: UM.Theme.getSize("default_margin").height + topMargin: UM.Theme.getSize("default_margin") } text: catalog.i18nc("@title:tab", "Add a printer to Cura") From 60ed0ddc2493f357417922529f25ce242d8daba7 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 20 Nov 2018 23:49:33 +0100 Subject: [PATCH 0360/1039] Revert "Revert "Merge branch 'fix-oauth2-client' into CURA-5785-Restyle_stage_menu"" This reverts commit 791929d6897942e971a112a26839c0fa6f94f847. --- resources/qml/Dialogs/AddMachineDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Dialogs/AddMachineDialog.qml b/resources/qml/Dialogs/AddMachineDialog.qml index 0df8b891d9..aa160acd4d 100644 --- a/resources/qml/Dialogs/AddMachineDialog.qml +++ b/resources/qml/Dialogs/AddMachineDialog.qml @@ -73,7 +73,7 @@ UM.Dialog { top: parent.top left: parent.left - topMargin: UM.Theme.getSize("default_margin") + topMargin: UM.Theme.getSize("default_margin").height } text: catalog.i18nc("@title:tab", "Add a printer to Cura") From 23744e42d1f4480fdc7f3c56f3591074b3ae8723 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 09:15:18 +0100 Subject: [PATCH 0361/1039] Remove SaveButton file, since it's not used anymore. Contributes to CURA-5942 --- resources/qml/SaveButton.qml | 478 ----------------------------------- 1 file changed, 478 deletions(-) delete mode 100644 resources/qml/SaveButton.qml diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml deleted file mode 100644 index c2d310e30c..0000000000 --- a/resources/qml/SaveButton.qml +++ /dev/null @@ -1,478 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 - -import UM 1.1 as UM -import Cura 1.0 as Cura - -// This widget does so much more than "just" being a save button, so it should be refactored at some point in time. -Item -{ - id: base; - UM.I18nCatalog { id: catalog; name: "cura"} - - property real progress: UM.Backend.progress - property int backendState: UM.Backend.state - property bool activity: CuraApplication.platformActivity - - property alias buttonRowWidth: saveRow.width - - property string fileBaseName - property string statusText: - { - if(!activity) - { - return catalog.i18nc("@label:PrintjobStatus", "Please load a 3D model"); - } - - switch(base.backendState) - { - case 1: - return catalog.i18nc("@label:PrintjobStatus", "Ready to slice"); - case 2: - return catalog.i18nc("@label:PrintjobStatus", "Slicing..."); - case 3: - return catalog.i18nc("@label:PrintjobStatus %1 is target operation", "Ready to %1").arg(UM.OutputDeviceManager.activeDeviceShortDescription); - case 4: - return catalog.i18nc("@label:PrintjobStatus", "Unable to Slice"); - case 5: - return catalog.i18nc("@label:PrintjobStatus", "Slicing unavailable"); - default: - return ""; - } - } - - function sliceOrStopSlicing() - { - try - { - if ([1, 5].indexOf(base.backendState) != -1) - { - CuraApplication.backend.forceSlice(); - } - else - { - CuraApplication.backend.stopSlicing(); - } - } - catch (e) - { - console.log("Could not start or stop slicing.", e) - } - } - - Label - { - id: statusLabel - width: parent.width - 2 * UM.Theme.getSize("thick_margin").width - anchors.top: parent.top - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("default_bold") - text: statusText; - } - - Rectangle - { - id: progressBar - width: parent.width - 2 * UM.Theme.getSize("thick_margin").width - height: UM.Theme.getSize("progressbar").height - anchors.top: statusLabel.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 4) - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - radius: UM.Theme.getSize("progressbar_radius").width - color: UM.Theme.getColor("progressbar_background") - - Rectangle - { - width: Math.max(parent.width * base.progress) - height: parent.height - color: UM.Theme.getColor("progressbar_control") - radius: UM.Theme.getSize("progressbar_radius").width - visible: base.backendState == 2 - } - } - - // Shortcut for "save as/print/..." - Action - { - shortcut: "Ctrl+P" - onTriggered: - { - // only work when the button is enabled - if (saveToButton.enabled) - { - saveToButton.clicked(); - } - // prepare button - if (prepareButton.enabled) - { - sliceOrStopSlicing(); - } - } - } - - Item - { - id: saveRow - width: { - // using childrenRect.width directly causes a binding loop, because setting the width affects the childrenRect - var children_width = UM.Theme.getSize("default_margin").width; - for (var index in children) - { - var child = children[index]; - if(child.visible) - { - children_width += child.width + child.anchors.rightMargin; - } - } - return Math.min(children_width, base.width - UM.Theme.getSize("thick_margin").width); - } - height: saveToButton.height - anchors.bottom: parent.bottom - anchors.bottomMargin: UM.Theme.getSize("thick_margin").height - anchors.right: parent.right - clip: true - - Row - { - id: additionalComponentsRow - anchors.top: parent.top - anchors.right: saveToButton.visible ? saveToButton.left : (prepareButton.visible ? prepareButton.left : parent.right) - anchors.rightMargin: UM.Theme.getSize("default_margin").width - - spacing: UM.Theme.getSize("default_margin").width - } - - Component.onCompleted: - { - saveRow.addAdditionalComponents("saveButton") - } - - Connections - { - target: CuraApplication - onAdditionalComponentsChanged: saveRow.addAdditionalComponents("saveButton") - } - - function addAdditionalComponents (areaId) - { - if(areaId == "saveButton") - { - for (var component in CuraApplication.additionalComponents["saveButton"]) - { - CuraApplication.additionalComponents["saveButton"][component].parent = additionalComponentsRow - } - } - } - - Connections - { - target: UM.Preferences - onPreferenceChanged: - { - var autoSlice = UM.Preferences.getValue("general/auto_slice"); - prepareButton.autoSlice = autoSlice; - saveToButton.autoSlice = autoSlice; - } - } - - // Prepare button, only shows if auto_slice is off - Button - { - id: prepareButton - - tooltip: [1, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@info:tooltip","Slice current printjob") : catalog.i18nc("@info:tooltip","Cancel slicing process") - // 1 = not started, 2 = Processing - enabled: ([1, 2].indexOf(base.backendState) != -1) && base.activity - visible: !autoSlice && ([1, 2, 4].indexOf(base.backendState) != -1) && base.activity - property bool autoSlice - height: UM.Theme.getSize("save_button_save_to_button").height - - anchors.top: parent.top - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - - // 1 = not started, 4 = error, 5 = disabled - text: [1, 4, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@label:Printjob", "Prepare") : catalog.i18nc("@label:Printjob", "Cancel") - onClicked: - { - sliceOrStopSlicing(); - } - - style: ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_border"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_border"); - } - else - { - return UM.Theme.getColor("action_button_border"); - } - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered"); - } - else - { - return UM.Theme.getColor("action_button"); - } - } - - Behavior on color { ColorAnimation { duration: 50; } } - - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("thick_margin").width * 2) - - Label - { - id: actualLabel - anchors.centerIn: parent - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_text"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text"); - } - else - { - return UM.Theme.getColor("action_button_text"); - } - } - font: UM.Theme.getFont("action_button") - text: control.text; - } - } - label: Item {} - } - } - - Button - { - id: saveToButton - - tooltip: UM.OutputDeviceManager.activeDeviceDescription; - // 3 = done, 5 = disabled - enabled: base.backendState != "undefined" && (base.backendState == 3 || base.backendState == 5) && base.activity == true - visible: base.backendState != "undefined" && autoSlice || ((base.backendState == 3 || base.backendState == 5) && base.activity == true) - property bool autoSlice - height: UM.Theme.getSize("save_button_save_to_button").height - - anchors.top: parent.top - anchors.right: deviceSelectionMenu.visible ? deviceSelectionMenu.left : parent.right - anchors.rightMargin: deviceSelectionMenu.visible ? -3 * UM.Theme.getSize("default_lining").width : UM.Theme.getSize("thick_margin").width - - text: UM.OutputDeviceManager.activeDeviceShortDescription - onClicked: - { - forceActiveFocus(); - UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName, - { "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats }); - } - - style: ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border"); - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed_border"); - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered_border"); - } - else - { - return UM.Theme.getColor("print_button_ready_border"); - } - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled"); - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed"); - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered"); - } - else - { - return UM.Theme.getColor("print_button_ready"); - } - } - - Behavior on color { ColorAnimation { duration: 50; } } - - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("thick_margin").width * 2) - - Label - { - id: actualLabel - anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") - font: UM.Theme.getFont("action_button") - text: control.text - } - } - label: Item { } - } - } - - Button - { - id: deviceSelectionMenu - tooltip: catalog.i18nc("@info:tooltip","Select the active output device"); - anchors.top: parent.top - anchors.right: parent.right - - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - width: UM.Theme.getSize("save_button_save_to_button").height - height: UM.Theme.getSize("save_button_save_to_button").height - - // 3 = Done, 5 = Disabled - enabled: (base.backendState == 3 || base.backendState == 5) && base.activity == true - visible: (devicesModel.deviceCount > 1) && (base.backendState == 3 || base.backendState == 5) && base.activity == true - - - style: ButtonStyle - { - background: Rectangle - { - id: deviceSelectionIcon - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border") - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed_border") - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered_border") - } - else - { - return UM.Theme.getColor("print_button_ready_border") - } - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled") - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed") - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered") - } - else - { - return UM.Theme.getColor("print_button_ready") - } - } - Behavior on color { ColorAnimation { duration: 50; } } - anchors.left: parent.left - anchors.leftMargin: Math.round(UM.Theme.getSize("save_button_text_margin").width / 2); - width: parent.height - height: parent.height - - UM.RecolorImage - { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: height - color: control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") - source: UM.Theme.getIcon("arrow_bottom") - } - } - } - - menu: Menu - { - id: devicesMenu; - Instantiator - { - model: devicesModel; - MenuItem - { - text: model.description - checkable: true; - checked: model.id == UM.OutputDeviceManager.activeDevice - exclusiveGroup: devicesMenuGroup - onTriggered: - { - UM.OutputDeviceManager.setActiveDevice(model.id); - } - } - onObjectAdded: devicesMenu.insertItem(index, object) - onObjectRemoved: devicesMenu.removeItem(object) - } - ExclusiveGroup { id: devicesMenuGroup } - } - } - UM.OutputDevicesModel { id: devicesModel } - } -} From d74393498b18805de9453e05bded2e9c09a3d928 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 21 Nov 2018 09:35:35 +0100 Subject: [PATCH 0362/1039] Fixed view selector header not updating correctly CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 1a744aeb65..fa1b6aae0f 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -54,22 +54,27 @@ Item { for (var i = 0; i < viewModel.rowCount(); i++) { - if (viewModel.getItem(i).active) + if (viewModel.items[i].active) { - return viewModel.getItem(i) + return viewModel.items[i] } } - // Nothing was active, so just return the first one (the list is sorted by priority, so the most - // important one should be returned) - return viewModel.getItem(0) + return null } - // Ensure that the controller is synced with whatever happend here. - onActiveViewChanged: UM.Controller.setActiveView(activeView.id) + Component.onCompleted: + { + // Nothing was active, so just return the first one (the list is sorted by priority, so the most + // important one should be returned) + if(activeView == null) + { + UM.Controller.setActiveView(viewModel.getItem(0).id) + } + } headerItem: Label { - text: viewSelector.activeView.name + text: viewSelector.activeView ? viewSelector.activeView.name : "" verticalAlignment: Text.AlignVCenter height: parent.height elide: Text.ElideRight @@ -98,7 +103,7 @@ Item text: name radius: UM.Theme.getSize("default_radius").width checkable: true - checked: active + checked: viewSelector.activeView != null ? viewSelector.activeView.id == id : false onClicked: { viewSelector.togglePopup() From 9e8be286af8736a97bf05db3b4bb5b0063be944b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Wed, 21 Nov 2018 10:12:53 +0100 Subject: [PATCH 0363/1039] Used NamedTuple from typing iso namedtuple from collections so we can at least give type hints --- plugins/UM3NetworkPrinting/src/Models.py | 54 +++++++++---------- .../UM3NetworkPrinting/src/SendMaterialJob.py | 51 +++++++++--------- .../tests/TestSendMaterialJob.py | 4 +- 3 files changed, 55 insertions(+), 54 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index a9210ac5b4..e84a39db5a 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -1,33 +1,33 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from collections import namedtuple +from typing import NamedTuple -ClusterMaterial = namedtuple('ClusterMaterial', [ - 'guid', - 'material', - 'brand', - 'version', - 'color', - 'density' +ClusterMaterial = NamedTuple("ClusterMaterial", [ + ("guid", str), + ("material", str), + ("brand", str), + ("version", int), + ("color", str), + ("density", str), ]) -LocalMaterial = namedtuple('LocalMaterial', [ - 'GUID', - 'id', - 'type', - 'status', - 'base_file', - 'setting_version', - 'version', - 'name', - 'brand', - 'material', - 'color_name', - 'color_code', - 'description', - 'adhesion_info', - 'approximate_diameter', - 'properties', - 'definition', - 'compatible' +LocalMaterial = NamedTuple("LocalMaterial", [ + ("GUID", str), + ("id", str), + ("type", str), + ("status", str), + ("base_file", str), + ("setting_version", int), + ("version", int), + ("name", str), + ("brand", str), + ("material", str), + ("color_name", str), + ("color_code", str), + ("description", str), + ("adhesion_info", str), + ("approximate_diameter", str), + ("properties", str), + ("definition", str), + ("compatible", str), ]) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index fe0cd98964..ee8dd8042d 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -2,7 +2,6 @@ # Cura is released under the terms of the LGPLv3 or higher. import json import os -import re import urllib.parse from typing import Dict, TYPE_CHECKING, Set @@ -13,13 +12,13 @@ from UM.Logger import Logger from UM.MimeTypeDatabase import MimeTypeDatabase from UM.Resources import Resources from cura.CuraApplication import CuraApplication - # Absolute imports don't work in plugins from .Models import ClusterMaterial, LocalMaterial if TYPE_CHECKING: from .ClusterUM3OutputDevice import ClusterUM3OutputDevice + ## Asynchronous job to send material profiles to the printer. # # This way it won't freeze up the interface while sending those materials. @@ -86,7 +85,7 @@ class SendMaterialJob(Job): return { material.id for guid, material in local_materials.items() - if guid not in remote_materials or int(material.version) > remote_materials[guid].version + if guid not in remote_materials or material.version > remote_materials[guid].version } ## Send the materials to the printer. @@ -122,23 +121,23 @@ class SendMaterialJob(Job): # \param material_id The ID of the material in the file. def _sendMaterialFile(self, file_path: str, file_name: str, material_id: str) -> None: - parts = [] + parts = [] - # Add the material file. - with open(file_path, "rb") as f: - parts.append(self.device.createFormPart("name=\"file\"; filename=\"{file_name}\"" - .format(file_name = file_name), f.read())) + # Add the material file. + with open(file_path, "rb") as f: + parts.append(self.device.createFormPart("name=\"file\"; filename=\"{file_name}\"" + .format(file_name = file_name), f.read())) - # Add the material signature file if needed. - signature_file_path = "{}.sig".format(file_path) - if os.path.exists(signature_file_path): - signature_file_name = os.path.basename(signature_file_path) - with open(signature_file_path, "rb") as f: - parts.append(self.device.createFormPart("name=\"signature_file\"; filename=\"{file_name}\"" - .format(file_name = signature_file_name), f.read())) + # Add the material signature file if needed. + signature_file_path = "{}.sig".format(file_path) + if os.path.exists(signature_file_path): + signature_file_name = os.path.basename(signature_file_path) + with open(signature_file_path, "rb") as f: + parts.append(self.device.createFormPart("name=\"signature_file\"; filename=\"{file_name}\"" + .format(file_name = signature_file_name), f.read())) - Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id = material_id)) - self.device.postFormWithParts(target = "materials/", parts = parts, on_finished = self.sendingFinished) + Logger.log("d", "Syncing material {material_id} with cluster.".format(material_id = material_id)) + self.device.postFormWithParts(target = "materials/", parts = parts, on_finished = self.sendingFinished) ## Check a reply from an upload to the printer and log an error when the call failed @staticmethod @@ -174,16 +173,18 @@ class SendMaterialJob(Job): # Find the latest version of all material containers in the registry. for material in material_containers: try: - material = LocalMaterial(**material) - # material version must be an int - if not re.match("\d+", material.version): - Logger.logException("w", "Local material {} has invalid version '{}'." - .format(material["id"], material.version)) - continue + material["version"] = int(material["version"]) - if material.GUID not in result or material.version > result.get(material.GUID).version: - result[material.GUID] = material + # Create a new local material + local_material = LocalMaterial(**material) + + if local_material.GUID not in result or \ + local_material.version > result.get(local_material.GUID).version: + result[local_material.GUID] = local_material + + except KeyError: + Logger.logException("w", "Local material {} has missing values.".format(material["id"])) except ValueError: Logger.logException("w", "Local material {} has invalid values.".format(material["id"])) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index f4604580fe..ff896683e1 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -19,7 +19,7 @@ from plugins.UM3NetworkPrinting.src.SendMaterialJob import SendMaterialJob @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) class TestSendMaterialJob(TestCase): _LOCAL_MATERIAL_WHITE = {"type": "material", "status": "unknown", "id": "generic_pla_white", - "base_file": "generic_pla_white", "setting_version": 5, "name": "White PLA", + "base_file": "generic_pla_white", "setting_version": "5", "name": "White PLA", "brand": "Generic", "material": "PLA", "color_name": "White", "GUID": "badb0ee7-87c8-4f3f-9398-938587b67dce", "version": "1", "color_code": "#ffffff", "description": "Test PLA White", "adhesion_info": "Use glue.", "approximate_diameter": "3", @@ -27,7 +27,7 @@ class TestSendMaterialJob(TestCase): "definition": "fdmprinter", "compatible": True} _LOCAL_MATERIAL_BLACK = {"type": "material", "status": "unknown", "id": "generic_pla_black", - "base_file": "generic_pla_black", "setting_version": 5, "name": "Yellow CPE", + "base_file": "generic_pla_black", "setting_version": "5", "name": "Yellow CPE", "brand": "Ultimaker", "material": "CPE", "color_name": "Black", "GUID": "5fbb362a-41f9-4818-bb43-15ea6df34aa4", "version": "1", "color_code": "#000000", "description": "Test PLA Black", "adhesion_info": "Use glue.", "approximate_diameter": "3", From 7b0f8882a2715d4beb9378646bc915e77c8f4963 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Wed, 21 Nov 2018 11:01:26 +0100 Subject: [PATCH 0364/1039] Reverted models to namedtuples from collections because NamedTuple is a Python3.6 feature --- plugins/UM3NetworkPrinting/src/Models.py | 54 ++++++++++++------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index e84a39db5a..d5e1007555 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -1,33 +1,33 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from typing import NamedTuple +from collections import namedtuple -ClusterMaterial = NamedTuple("ClusterMaterial", [ - ("guid", str), - ("material", str), - ("brand", str), - ("version", int), - ("color", str), - ("density", str), +ClusterMaterial = namedtuple('ClusterMaterial', [ + 'guid', # Type: str + 'material', # Type: str + 'brand', # Type: str + 'version', # Type: int + 'color', # Type: str + 'density' # Type: str ]) -LocalMaterial = NamedTuple("LocalMaterial", [ - ("GUID", str), - ("id", str), - ("type", str), - ("status", str), - ("base_file", str), - ("setting_version", int), - ("version", int), - ("name", str), - ("brand", str), - ("material", str), - ("color_name", str), - ("color_code", str), - ("description", str), - ("adhesion_info", str), - ("approximate_diameter", str), - ("properties", str), - ("definition", str), - ("compatible", str), +LocalMaterial = namedtuple('LocalMaterial', [ + 'GUID', # Type: str + 'id', # Type: str + 'type', # Type: str + 'status', # Type: str + 'base_file', # Type: str + 'setting_version', # Type: int + 'version', # Type: int + 'name', # Type: str + 'brand', # Type: str + 'material', # Type: str + 'color_name', # Type: str + 'color_code', # Type: str + 'description', # Type: str + 'adhesion_info', # Type: str + 'approximate_diameter', # Type: str + 'properties', # Type: str + 'definition', # Type: str + 'compatible' # Type: str ]) From 8e47d0475632296030f9e2d1f49c6d8797b93982 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 11:12:59 +0100 Subject: [PATCH 0365/1039] Adjust sizes and alignments to the print selector panel. Contributes to CURA-5942. --- plugins/PrepareStage/PrepareMenu.qml | 2 +- resources/qml/ExpandableComponent.qml | 19 +++++++++++++++--- resources/qml/MachineSelector.qml | 27 +++++++++++++------------- resources/themes/cura-light/theme.json | 9 +++++---- 4 files changed, 35 insertions(+), 22 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index ef01625a22..121928e19f 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -46,7 +46,7 @@ Item anchors.centerIn: parent - width: 0.9 * prepareMenu.width + width: Math.round(0.9 * prepareMenu.width) height: parent.height spacing: 0 diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 8ed6dc5674..c1e3bc7985 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -10,6 +10,13 @@ import UM 1.2 as UM Item { id: base + + // Enumeration with the different possible alignments of the popup with respect of the headerItem + enum PopupAlignment { + AlignLeft, + AlignRight + } + // The headerItem holds the QML item that is always displayed. property alias headerItem: headerItemLoader.sourceComponent @@ -21,6 +28,9 @@ Item property color headerBackgroundColor: UM.Theme.getColor("action_button") property color headerHoverColor: UM.Theme.getColor("action_button_hovered") + // Defines the alignment of the popup with respect of the headerItem, by default to the right + property int popupAlignment: ExpandableComponent.PopupAlignment.AlignRight + // How much spacing is needed around the popupItem property alias popupPadding: popup.padding @@ -42,6 +52,7 @@ Item function togglePopup() { +// print(popupAlignment, popupAlignment == PopupAlignment.AlignRight) if(popup.visible) { popup.close() @@ -116,8 +127,8 @@ Item sourceSize.height: height visible: source != "" width: height - height: 0.2 * base.height - color: "black" + height: Math.round(0.2 * base.height) + color: UM.Theme.getColor("text") } MouseArea @@ -140,13 +151,15 @@ Item // Make the popup right aligned with the rest. The 3x padding is due to left, right and padding between // the button & text. - x: -width + collapseButton.width + headerItemLoader.width + 3 * background.padding + x: popupAlignment == ExpandableComponent.PopupAlignment.AlignRight ? -width + collapseButton.width + headerItemLoader.width + 3 * background.padding : 0 padding: UM.Theme.getSize("default_margin").width closePolicy: Popup.CloseOnPressOutsideParent background: Rectangle { color: popupBackgroundColor + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") } } } diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index c9756d93ba..f029914884 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -17,6 +17,8 @@ Cura.ExpandableComponent property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" + popupPadding: 0 + popupAlignment: ExpandableComponent.PopupAlignment.AlignLeft iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") UM.I18nCatalog @@ -31,6 +33,7 @@ Cura.ExpandableComponent verticalAlignment: Text.AlignVCenter height: parent.height elide: Text.ElideRight + renderType: Text.NativeRendering font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") } @@ -38,26 +41,25 @@ Cura.ExpandableComponent popupItem: Item { id: popup - width: machineSelector.width - 2 * UM.Theme.getSize("default_margin").width - height: 200 + width: UM.Theme.getSize("machine_selector_widget_content").width + height: UM.Theme.getSize("machine_selector_widget_content").height ScrollView { anchors.fill: parent - contentHeight: column.implicitHeight - contentWidth: column.implicitWidth clip: true - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff Column { id: column anchors.fill: parent + Label { - text: catalog.i18nc("@label", "Networked Printers") + text: catalog.i18nc("@label", "Network connected printers") visible: networkedPrintersModel.items.length > 0 height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 + renderType: Text.NativeRendering font: UM.Theme.getFont("medium_bold") color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter @@ -73,13 +75,12 @@ Cura.ExpandableComponent filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} } - delegate: RoundButton + delegate: Button { text: name width: parent.width - checkable: true - radius: UM.Theme.getSize("default_radius").width + onClicked: { togglePopup() @@ -92,14 +93,14 @@ Cura.ExpandableComponent onActiveMachineNetworkGroupNameChanged: checked = Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] } } - } Label { - text: catalog.i18nc("@label", "Virtual Printers") + text: catalog.i18nc("@label", "Preset printers") visible: virtualPrintersModel.items.length > 0 height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 + renderType: Text.NativeRendering font: UM.Theme.getFont("medium_bold") color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter @@ -115,21 +116,19 @@ Cura.ExpandableComponent filter: {"type": "machine", "um_network_key": null} } - delegate: RoundButton + delegate: Button { text: name width: parent.width checked: Cura.MachineManager.activeMachineId == model.id checkable: true - radius: UM.Theme.getSize("default_radius").width onClicked: { togglePopup() Cura.MachineManager.setActiveMachine(model.id) } } - } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d28611529b..5f52adff14 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -367,11 +367,11 @@ "sizes": { "window_minimum_size": [106, 66], - "main_window_header": [0.0, 4.5], + "main_window_header": [0.0, 4.0], "main_window_header_button": [8, 2.35], "main_window_header_button_icon": [1.2, 1.2], - "stage_menu": [0.0, 4.5], + "stage_menu": [0.0, 4.0], "account_button": [12, 3], @@ -380,14 +380,15 @@ "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], - "configuration_selector_widget": [35.0, 4.5], + "configuration_selector_widget": [35.0, 4.0], "configuration_selector_mode_tabs": [0.0, 3.0], "action_panel_widget": [25.0, 0.0], "action_panel_information_widget": [20.0, 0.0], "action_panel_button": [15.0, 3.0], - "machine_selector_widget": [16.0, 4.5], + "machine_selector_widget": [20.0, 4.0], + "machine_selector_widget_content": [25.0, 32.0], "views_selector": [0.0, 4.0], From b826a420265051cefd6483eb228e3716182b1380 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 21 Nov 2018 11:37:58 +0100 Subject: [PATCH 0366/1039] Add the RoundedRectangle as background to the ExpandableComponent This way the expandable components can have rounded corners only on one side, thus preventing the need to do add backgrounds to the rows that they are in. CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 99 ++++++------- plugins/PreviewStage/PreviewMenu.qml | 191 ++++++++++++-------------- resources/qml/Cura.qml | 1 + resources/qml/ExpandableComponent.qml | 9 +- resources/qml/RoundedRectangle.qml | 39 ++++++ 5 files changed, 181 insertions(+), 158 deletions(-) create mode 100644 resources/qml/RoundedRectangle.qml diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index ef01625a22..22f93aa5f2 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -24,77 +24,66 @@ Item Item { anchors.horizontalCenter: parent.horizontalCenter - width: openFileButtonBackground.width + itemRowBackground.width + width: openFileButtonBackground.width + itemRow.width + UM.Theme.getSize("default_margin").width height: parent.height - Rectangle + RowLayout { - id: itemRowBackground - radius: UM.Theme.getSize("default_radius").width - - color: UM.Theme.getColor("toolbar_background") - - width: itemRow.width + UM.Theme.getSize("default_margin").width - height: parent.height + id: itemRow anchors.left: openFileButtonBackground.right anchors.leftMargin: UM.Theme.getSize("default_margin").width - RowLayout + width: 0.9 * prepareMenu.width + height: parent.height + spacing: 0 + + Cura.MachineSelector { - id: itemRow + id: machineSelection + z: openFileButtonBackground.z - 1 //Ensure that the tooltip of the open file button stays above the item row. + headerCornerSide: 2 // Show corners on the left. + Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width + Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width + Layout.fillWidth: true + Layout.fillHeight: true + } - anchors.centerIn: parent - - width: 0.9 * prepareMenu.width + // Separator line + Rectangle + { height: parent.height - spacing: 0 + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } - Cura.MachineSelector - { - id: machineSelection - z: openFileButtonBackground.z - 1 //Ensure that the tooltip of the open file button stays above the item row. - Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width - Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width - Layout.fillWidth: true - Layout.fillHeight: true - } + Cura.QuickConfigurationSelector + { + Layout.fillHeight: true + Layout.fillWidth: true + Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelectorItem.width - 2 * UM.Theme.getSize("default_lining").width + } - // Separator line - Rectangle - { - height: parent.height - width: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("lining") - } + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } - Cura.QuickConfigurationSelector - { - Layout.fillHeight: true - Layout.fillWidth: true - Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelectorItem.width - 2 * UM.Theme.getSize("default_lining").width - } - - // Separator line - Rectangle - { - height: parent.height - width: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("lining") - } - - Item - { - id: printSetupSelectorItem - // This is a work around to prevent the printSetupSelector from having to be re-loaded every time - // a stage switch is done. - children: [printSetupSelector] - height: childrenRect.height - width: childrenRect.width - } + Item + { + id: printSetupSelectorItem + // This is a work around to prevent the printSetupSelector from having to be re-loaded every time + // a stage switch is done. + children: [printSetupSelector] + height: childrenRect.height + width: childrenRect.width } } + Rectangle { id: openFileButtonBackground diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index fa1b6aae0f..d6033d6272 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -22,135 +22,122 @@ Item name: "cura" } - Rectangle - { - anchors.fill: stageMenu - anchors.leftMargin: -radius - radius: UM.Theme.getSize("default_radius").width - color: UM.Theme.getColor("toolbar_background") - } - Item + Row { - id: stageMenu + id: stageMenuRow + anchors.centerIn: parent height: parent.height - width: stageMenuRow.width + UM.Theme.getSize("default_margin").width - anchors.horizontalCenter: parent.horizontalCenter - Row + + Cura.ExpandableComponent { - id: stageMenuRow - anchors.centerIn: parent + id: viewSelector + iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") height: parent.height + headerCornerSide: 2 // Show corners on the left side - Cura.ExpandableComponent + property var viewModel: UM.ViewModel { } + + property var activeView: { - id: viewSelector - iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") - height: parent.height - - property var viewModel: UM.ViewModel { } - - property var activeView: + for (var i = 0; i < viewModel.rowCount(); i++) { - for (var i = 0; i < viewModel.rowCount(); i++) + if (viewModel.items[i].active) { - if (viewModel.items[i].active) - { - return viewModel.items[i] - } + return viewModel.items[i] } - return null } + return null + } + Component.onCompleted: + { + // Nothing was active, so just return the first one (the list is sorted by priority, so the most + // important one should be returned) + if(activeView == null) + { + UM.Controller.setActiveView(viewModel.getItem(0).id) + } + } + + headerItem: Label + { + text: viewSelector.activeView ? viewSelector.activeView.name : "" + verticalAlignment: Text.AlignVCenter + height: parent.height + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + + popupItem: Column + { + id: viewSelectorPopup + width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width + + // For some reason the height/width of the column gets set to 0 if this is not set... Component.onCompleted: { - // Nothing was active, so just return the first one (the list is sorted by priority, so the most - // important one should be returned) - if(activeView == null) - { - UM.Controller.setActiveView(viewModel.getItem(0).id) - } + height = implicitHeight + width = viewSelector.width - 2 * UM.Theme.getSize("default_margin").width } - headerItem: Label + Repeater { - text: viewSelector.activeView ? viewSelector.activeView.name : "" - verticalAlignment: Text.AlignVCenter - height: parent.height - elide: Text.ElideRight - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - - popupItem: Column - { - id: viewSelectorPopup - width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width - - // For some reason the height/width of the column gets set to 0 if this is not set... - Component.onCompleted: + id: viewsList + model: viewSelector.viewModel + RoundButton { - height = implicitHeight - width = viewSelector.width - 2 * UM.Theme.getSize("default_margin").width - } - - Repeater - { - id: viewsList - model: viewSelector.viewModel - RoundButton + text: name + radius: UM.Theme.getSize("default_radius").width + checkable: true + checked: viewSelector.activeView != null ? viewSelector.activeView.id == id : false + onClicked: { - text: name - radius: UM.Theme.getSize("default_radius").width - checkable: true - checked: viewSelector.activeView != null ? viewSelector.activeView.id == id : false - onClicked: - { - viewSelector.togglePopup() - UM.Controller.setActiveView(id) - } + viewSelector.togglePopup() + UM.Controller.setActiveView(id) } } - } - } - // Separator line - Rectangle - { - height: parent.height - // If there is no viewPanel, we only need a single spacer, so hide this one. - visible: viewPanel.source != "" - width: visible ? UM.Theme.getSize("default_lining").width : 0 - - color: UM.Theme.getColor("lining") } + } - Loader - { - id: viewPanel - height: parent.height - width: childrenRect.width - source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" - } + // Separator line + Rectangle + { + height: parent.height + // If there is no viewPanel, we only need a single spacer, so hide this one. + visible: viewPanel.source != "" + width: visible ? UM.Theme.getSize("default_lining").width : 0 - // Separator line - Rectangle - { - height: parent.height - width: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("lining") - } + color: UM.Theme.getColor("lining") + } - Item - { - id: printSetupSelectorItem - // This is a work around to prevent the printSetupSelector from having to be re-loaded every time - // a stage switch is done. - children: [printSetupSelector] - height: childrenRect.height - width: childrenRect.width - } + Loader + { + id: viewPanel + height: parent.height + width: childrenRect.width + source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" + } + + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } + + Item + { + id: printSetupSelectorItem + // This is a work around to prevent the printSetupSelector from having to be re-loaded every time + // a stage switch is done. + children: [printSetupSelector] + height: childrenRect.height + width: childrenRect.width } } } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index c239dc8d6f..711c05c64c 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -259,6 +259,7 @@ UM.MainWindow onHideTooltip: base.hideTooltip() width: UM.Theme.getSize("print_setup_widget").width height: UM.Theme.getSize("stage_menu").height + headerCornerSide: 4 // Show corners on the right side } } diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 8ed6dc5674..262c6bfd3f 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -40,6 +40,12 @@ Item property alias expandedHighlightColor: expandedHighlight.color + // What should the radius of the header be. This is also influenced by the headerCornerSide + property alias headerRadius: background.radius + + // On what side should the header corners be shown? 1 is down, 2 is left, 3 is up and 4 is right. + property alias headerCornerSide: background.cornerSide + function togglePopup() { if(popup.visible) @@ -71,7 +77,8 @@ Item implicitHeight: 100 * screenScaleFactor implicitWidth: 400 * screenScaleFactor - Rectangle + + RoundedRectangle { id: background property real padding: UM.Theme.getSize("default_margin").width diff --git a/resources/qml/RoundedRectangle.qml b/resources/qml/RoundedRectangle.qml new file mode 100644 index 0000000000..d7ba7d6d13 --- /dev/null +++ b/resources/qml/RoundedRectangle.qml @@ -0,0 +1,39 @@ +import QtQuick 2.0 + +import UM 1.2 as UM + +// The rounded rectangle works mostly like a regular rectangle, but provides the option to have rounded corners on only one side of the rectangle. +Item +{ + // As per the regular rectangle + property color color: "transparent" + + // As per regular rectangle + property int radius: UM.Theme.getSize("default_radius").width + + // On what side should the corners be shown 0 can be used if no radius is needed. + // 1 is down, 2 is left, 3 is up and 4 is right. + property int cornerSide: 0 + + Rectangle + { + id: background + anchors.fill: parent + radius: cornerSide != 0 ? parent.radius : 0 + color: parent.color + } + + // The item that covers 2 of the corners to make them not rounded. + Rectangle + { + visible: cornerSide != 0 + height: cornerSide % 2 ? parent.radius: parent.height + width: cornerSide % 2 ? parent.width : parent.radius + color: parent.color + anchors + { + right: cornerSide == 2 ? parent.right: undefined + bottom: cornerSide == 3 ? parent.bottom: undefined + } + } +} From de650300e20abf2a54baa953076bb71cf2943e1b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 11:43:20 +0100 Subject: [PATCH 0367/1039] Add the buttons to add printer and manage printers in the bottom of the print selector panel. Contributes to CURA-5942. --- resources/qml/ExpandableComponent.qml | 6 ++-- resources/qml/MachineSelector.qml | 52 +++++++++++++++++++++++++-- 2 files changed, 52 insertions(+), 6 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index c1e3bc7985..aa9e1467fa 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -52,7 +52,6 @@ Item function togglePopup() { -// print(popupAlignment, popupAlignment == PopupAlignment.AlignRight) if(popup.visible) { popup.close() @@ -149,8 +148,8 @@ Item // Ensure that the popup is located directly below the headerItem y: headerItemLoader.height + 2 * background.padding - // Make the popup right aligned with the rest. The 3x padding is due to left, right and padding between - // the button & text. + // Make the popup aligned with the rest, using the property popupAlignment to decide whether is right or left. + // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. x: popupAlignment == ExpandableComponent.PopupAlignment.AlignRight ? -width + collapseButton.width + headerItemLoader.width + 3 * background.padding : 0 padding: UM.Theme.getSize("default_margin").width closePolicy: Popup.CloseOnPressOutsideParent @@ -160,6 +159,7 @@ Item color: popupBackgroundColor border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") + radius: UM.Theme.getSize("default_radius").width } } } diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index f029914884..3e70fda299 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.7 import QtQuick.Controls 2.3 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 @@ -46,7 +46,9 @@ Cura.ExpandableComponent ScrollView { - anchors.fill: parent + width: parent.width + anchors.top: parent.top + anchors.bottom: separator.top clip: true Column @@ -80,7 +82,7 @@ Cura.ExpandableComponent text: name width: parent.width checkable: true - + onClicked: { togglePopup() @@ -132,5 +134,49 @@ Cura.ExpandableComponent } } } + + Rectangle + { + id: separator + + anchors.bottom: buttonRow.top + width: parent.width + height: UM.Theme.getSize("default_lining").height + color: UM.Theme.getColor("lining") + } + + Row + { + id: buttonRow + + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + padding: UM.Theme.getSize("default_margin").width + spacing: UM.Theme.getSize("default_margin").width + + Cura.ActionButton + { + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@button", "Add printer") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + onClicked: Cura.Actions.addMachine.trigger() + } + + Cura.ActionButton + { + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@button", "Manage printers") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + onClicked: Cura.Actions.configureMachines.trigger() + } + } } } From 64bbab9d4024df8d1be956040d81a69551922308 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 11:50:00 +0100 Subject: [PATCH 0368/1039] Use the group name to show in the printer list if it's a network connected printer. Contributes to CURA-5942. --- resources/qml/MachineSelector.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 3e70fda299..417c5722b4 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -79,8 +79,9 @@ Cura.ExpandableComponent delegate: Button { - text: name + text: model.metadata["connect_group_name"] width: parent.width + checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] checkable: true onClicked: @@ -120,7 +121,7 @@ Cura.ExpandableComponent delegate: Button { - text: name + text: model.name width: parent.width checked: Cura.MachineManager.activeMachineId == model.id checkable: true From eef6ad662d816ac8266faaa391342accab36f07d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 21 Nov 2018 11:50:39 +0100 Subject: [PATCH 0369/1039] Added enum for the roundedCorner property This makes it a whole lot easier to read what is being set. CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 2 +- plugins/PreviewStage/PreviewMenu.qml | 2 +- resources/qml/Cura.qml | 2 +- resources/qml/RoundedRectangle.qml | 24 +++++++++++++++++------- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 22f93aa5f2..bf2a0e1283 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -42,7 +42,7 @@ Item { id: machineSelection z: openFileButtonBackground.z - 1 //Ensure that the tooltip of the open file button stays above the item row. - headerCornerSide: 2 // Show corners on the left. + headerCornerSide: Cura.RoundedRectangle.Direction.Left Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width Layout.fillWidth: true diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index d6033d6272..29632e5f00 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -34,7 +34,7 @@ Item id: viewSelector iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") height: parent.height - headerCornerSide: 2 // Show corners on the left side + headerCornerSide: Cura.RoundedRectangle.Direction.Left property var viewModel: UM.ViewModel { } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 711c05c64c..2814bb9eb2 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -259,7 +259,7 @@ UM.MainWindow onHideTooltip: base.hideTooltip() width: UM.Theme.getSize("print_setup_widget").width height: UM.Theme.getSize("stage_menu").height - headerCornerSide: 4 // Show corners on the right side + headerCornerSide: RoundedRectangle.Direction.Right } } diff --git a/resources/qml/RoundedRectangle.qml b/resources/qml/RoundedRectangle.qml index d7ba7d6d13..9ad2230be5 100644 --- a/resources/qml/RoundedRectangle.qml +++ b/resources/qml/RoundedRectangle.qml @@ -1,4 +1,4 @@ -import QtQuick 2.0 +import QtQuick 2.7 import UM 1.2 as UM @@ -11,29 +11,39 @@ Item // As per regular rectangle property int radius: UM.Theme.getSize("default_radius").width - // On what side should the corners be shown 0 can be used if no radius is needed. + // On what side should the corners be shown 5 can be used if no radius is needed. // 1 is down, 2 is left, 3 is up and 4 is right. - property int cornerSide: 0 + property int cornerSide: RoundedRectangle.Direction.None + + enum Direction + { + None = 0, + Down = 1, + Left = 2, + Up = 3, + Right = 4, + All = 5 + } Rectangle { id: background anchors.fill: parent - radius: cornerSide != 0 ? parent.radius : 0 + radius: cornerSide != RoundedRectangle.Direction.None ? parent.radius : 0 color: parent.color } // The item that covers 2 of the corners to make them not rounded. Rectangle { - visible: cornerSide != 0 + visible: cornerSide != RoundedRectangle.Direction.None && cornerSide != RoundedRectangle.Direction.All height: cornerSide % 2 ? parent.radius: parent.height width: cornerSide % 2 ? parent.width : parent.radius color: parent.color anchors { - right: cornerSide == 2 ? parent.right: undefined - bottom: cornerSide == 3 ? parent.bottom: undefined + right: cornerSide == RoundedRectangle.Direction.Left ? parent.right: undefined + bottom: cornerSide == RoundedRectangle.Direction.Up ? parent.bottom: undefined } } } From bfd8e666570d636293bae9dbda0c2134de992065 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 21 Nov 2018 12:50:18 +0100 Subject: [PATCH 0370/1039] Removed margins and unused arches CURA-5941 --- resources/qml/PrintSetupSelector.qml | 46 +++++++++++++--------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index ed09238b51..61cc06b426 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -116,7 +116,6 @@ Cura.ExpandableComponent } } - Cura.ExtrudersModel { id: extrudersModel @@ -124,7 +123,7 @@ Cura.ExpandableComponent popupItem: Rectangle { - property var total_height: popupItemHeader.height + popupItemContent.height + 10 + separator_footer.height + property var total_height: popupItemHeader.height + popupItemContent.height + footerControll.height + UM.Theme.getSize("print_setup_selector_margin").height * 2 id: popupItemWrapper height: total_height @@ -176,7 +175,7 @@ Cura.ExpandableComponent anchors { top: popupItemHeader.bottom - topMargin: 10 + topMargin: UM.Theme.getSize("print_setup_selector_margin").height right: parent.right left: parent.left leftMargin: 5 @@ -213,7 +212,6 @@ Cura.ExpandableComponent width: parent.height height: parent.height } - } background: Rectangle @@ -232,11 +230,11 @@ Cura.ExpandableComponent // overlap bottom border Rectangle { - width: parent.width - 4 - height: 4 + width: parent.width - UM.Theme.getSize("default_lining").width * 4 + height: UM.Theme.getSize("default_lining").width * 4 anchors.bottom: parent.bottom - anchors.bottomMargin: -2 - anchors.leftMargin: 2 + anchors.bottomMargin: - (UM.Theme.getSize("default_lining").width * 2) + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 anchors.left: parent.left } @@ -249,18 +247,17 @@ Cura.ExpandableComponent { id: sidebarContents anchors.top: tabBar.bottom + anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right height: UM.Theme.getSize("print_setup_widget").height - border.width: UM.Theme.getSize("default_lining").width * 2 border.color: UM.Theme.getColor("action_button_border") SidebarSimple { anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height - id: sidebar_simple_id anchors.fill: parent visible: currentModeIndex != 1 onShowTooltip: base.showTooltip(item, location, text) @@ -270,25 +267,22 @@ Cura.ExpandableComponent SidebarAdvanced { anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height - anchors.bottomMargin: 2 //does not overlap bottom border + anchors.bottomMargin: 2 //don't overlap bottom border anchors.fill: parent visible: currentModeIndex == 1 onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() } - } } - Item { - id: separator_footer + id: footerControll anchors.top: popupItemContent.bottom - anchors.topMargin: 10 + anchors.topMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 width: parent.width - height: settingControlButton.height + 4 - + height: settingControlButton.height + UM.Theme.getSize("default_lining").height * 4 Rectangle { width: parent.width @@ -299,7 +293,6 @@ Cura.ExpandableComponent Cura.ActionButton { id: settingControlButton - leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("action_panel_button").height @@ -315,10 +308,10 @@ Cura.ExpandableComponent anchors { top: parent.top - topMargin: 10 - bottomMargin: 10 + topMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 + bottomMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 right: parent.right - rightMargin: 5 + rightMargin: UM.Theme.getSize("print_setup_selector_margin").height } onClicked: currentModeIndex = 1 @@ -334,8 +327,6 @@ Cura.ExpandableComponent textHoverColor: UM.Theme.getColor("text") iconSource: UM.Theme.getIcon("arrow_left") width: UM.Theme.getSize("print_setup_action_button").width - - fixedWidthMode: true visible: currentModeIndex == 1 anchors @@ -347,7 +338,14 @@ Cura.ExpandableComponent leftMargin: UM.Theme.getSize("print_setup_selector_margin").height } - onClicked: currentModeIndex = 0 +// onClicked: currentModeIndex = 0 + MouseArea { + anchors.fill: parent + onClicked: { + currentModeIndex = 0 + + } + } } } Component.onCompleted: From bd636e61a0577b8f5f7eac160fa0af05757240c6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 21 Nov 2018 13:17:36 +0100 Subject: [PATCH 0371/1039] Minor changes suggested in review CURA-5785 --- plugins/PrepareStage/PrepareMenu.qml | 2 +- plugins/PreviewStage/PreviewMenu.qml | 3 ++- plugins/SimulationView/SimulationViewMenuComponent.qml | 7 +++++-- resources/qml/ExtruderIcon.qml | 1 + resources/qml/MachineSelector.qml | 3 +++ resources/qml/PrintSetupSelector.qml | 1 + 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index bf2a0e1283..963908cea6 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -34,7 +34,7 @@ Item anchors.left: openFileButtonBackground.right anchors.leftMargin: UM.Theme.getSize("default_margin").width - width: 0.9 * prepareMenu.width + width: Math.round(0.9 * prepareMenu.width) height: parent.height spacing: 0 diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 29632e5f00..656cf185d5 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -54,7 +54,7 @@ Item { // Nothing was active, so just return the first one (the list is sorted by priority, so the most // important one should be returned) - if(activeView == null) + if (activeView == null) { UM.Controller.setActiveView(viewModel.getItem(0).id) } @@ -68,6 +68,7 @@ Item elide: Text.ElideRight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") + renderType: Text.NativeRendering } popupItem: Column diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index caf47508e3..110cd1c109 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -132,6 +132,7 @@ Cura.ExpandableComponent visible: UM.SimulationView.compatibilityMode height: UM.Theme.getSize("layerview_row").height width: parent.width + renderType: Text.NativeRendering } Item // Spacer @@ -188,7 +189,7 @@ Cura.ExpandableComponent leftMargin: UM.Theme.getSize("checkbox").width + Math.round(UM.Theme.getSize("default_margin").width / 2) rightMargin: UM.Theme.getSize("default_margin").width * 2 } - + renderType: Text.NativeRendering } } } @@ -254,6 +255,7 @@ Cura.ExpandableComponent text: label font: UM.Theme.getFont("default") elide: Text.ElideRight + renderType: Text.NativeRendering color: UM.Theme.getColor("setting_control_text") anchors.verticalCenter: parent.verticalCenter anchors.left: legendModelCheckBox.left @@ -310,7 +312,7 @@ Cura.ExpandableComponent width: parent.width color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") - + renderType: Text.NativeRendering Rectangle { anchors.verticalCenter: parent.verticalCenter @@ -357,6 +359,7 @@ Cura.ExpandableComponent anchors.left: parent.left color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") + renderType: Text.NativeRendering } Label diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 87e210e75a..79106bdd3a 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -53,6 +53,7 @@ Item width: contentWidth height: contentHeight visible: extruderEnabled + renderType: Text.NativeRendering } UM.RecolorImage diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index c9756d93ba..750ac7f620 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -33,6 +33,7 @@ Cura.ExpandableComponent elide: Text.ElideRight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") + renderType: Text.NativeRendering } popupItem: Item @@ -60,6 +61,7 @@ Cura.ExpandableComponent height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 font: UM.Theme.getFont("medium_bold") color: UM.Theme.getColor("text") + renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter } @@ -103,6 +105,7 @@ Cura.ExpandableComponent font: UM.Theme.getFont("medium_bold") color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter + renderType: Text.NativeRendering } Repeater diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index b843244147..2ecdc9e546 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -182,6 +182,7 @@ Cura.ExpandableComponent verticalAlignment: Text.AlignVCenter renderType: Text.NativeRendering elide: Text.ElideRight + color: { if(control.pressed) From c7dbaa3a001fbca621e94134e15ce0d0c5ae4fae Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 21 Nov 2018 13:22:03 +0100 Subject: [PATCH 0372/1039] Add rendertype for labels in quickConfigurationSelector CURA-5785 --- .../qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index d428a05463..ef7a425a87 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -152,6 +152,7 @@ Cura.ExpandableComponent color: UM.Theme.getColor("text") height: parent.height width: tabControl.textWidth + renderType: Text.NativeRendering } OldControls.CheckBox @@ -174,6 +175,7 @@ Cura.ExpandableComponent color: UM.Theme.getColor("text") height: parent.height width: tabControl.textWidth + renderType: Text.NativeRendering } OldControls.ToolButton @@ -217,6 +219,7 @@ Cura.ExpandableComponent color: UM.Theme.getColor("text") height: parent.height width: tabControl.textWidth + renderType: Text.NativeRendering } OldControls.ToolButton From 406fac9e605578422417cdbb7a666343a4260129 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 13:38:08 +0100 Subject: [PATCH 0373/1039] Remove duplicate entries of renderType. Contributes to CURA-5942. --- resources/qml/MachineSelector.qml | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 1796df5678..417c5722b4 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -36,7 +36,6 @@ Cura.ExpandableComponent renderType: Text.NativeRendering font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") - renderType: Text.NativeRendering } popupItem: Item @@ -65,7 +64,6 @@ Cura.ExpandableComponent renderType: Text.NativeRendering font: UM.Theme.getFont("medium_bold") color: UM.Theme.getColor("text") - renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter } @@ -109,7 +107,6 @@ Cura.ExpandableComponent font: UM.Theme.getFont("medium_bold") color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter - renderType: Text.NativeRendering } Repeater From a9672458fd31ffb7c64273b88a779a9f262b19d6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 21 Nov 2018 13:46:50 +0100 Subject: [PATCH 0374/1039] Update extruderIcon to be more in line with the design CURA-5785 --- resources/qml/ExtruderIcon.qml | 10 ++++++---- .../ConfigurationMenu/QuickConfigurationSelector.qml | 3 +-- resources/themes/cura-light/theme.json | 9 +++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 79106bdd3a..1e51835d60 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -9,8 +9,8 @@ Item { id: extruderIconItem - implicitWidth: UM.Theme.getSize("button").width - implicitHeight: implicitWidth + implicitWidth: UM.Theme.getSize("extruder_icon").width + implicitHeight: UM.Theme.getSize("extruder_icon").height property bool checked: true property color materialColor @@ -22,7 +22,7 @@ Item anchors.fill: parent sourceSize.width: parent.width - sourceSize.height: parent.width + sourceSize.height: parent.height source: UM.Theme.getIcon("extruder_button") color: extruderEnabled ? materialColor: "gray" } @@ -49,11 +49,13 @@ Item id: extruderNumberText anchors.centerIn: parent text: index + 1 - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("extruder_icon") width: contentWidth height: contentHeight visible: extruderEnabled renderType: Text.NativeRendering + horizontalAlignment: Text.alignHCenter + verticalAlignment: Text.alignVCenter } UM.RecolorImage diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index ef7a425a87..eb6800cb36 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -50,8 +50,7 @@ Cura.ExpandableComponent id: extruderIcon materialColor: model.color extruderEnabled: model.enabled - height: parent.height - width: height + anchors.verticalCenter: parent.verticalCenter } // Label for the brand of the material diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d28611529b..b09370ccdb 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -64,6 +64,12 @@ "size": 1.15, "weight": 50, "family": "Noto Sans" + }, + "extruder_icon": + { + "size": 0.7, + "weight": 50, + "family": "Noto Sans" } }, @@ -406,8 +412,7 @@ "thin_margin": [0.71, 0.71], "narrow_margin": [0.5, 0.5], - "extruder_button_material_margin": [0.70, 0.9], - "extruder_button_material": [0.75, 0.75], + "extruder_icon": [1.8, 1.8], "simple_mode_infill_caption": [0.0, 5.0], "simple_mode_infill_height": [0.0, 8.0], From a1f3ebc25b97f555362a1dead86d7cc6081f718a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 13:58:21 +0100 Subject: [PATCH 0375/1039] Fix typo. Contributes to CURA-5785. --- resources/qml/ExtruderIcon.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 1e51835d60..c103ee245c 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -54,8 +54,8 @@ Item height: contentHeight visible: extruderEnabled renderType: Text.NativeRendering - horizontalAlignment: Text.alignHCenter - verticalAlignment: Text.alignVCenter + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter } UM.RecolorImage From eb056ee17bbc7d843a83ce108e95d51bc6f499ba Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 21 Nov 2018 16:06:26 +0100 Subject: [PATCH 0376/1039] Fix display of custom configuration Since it had no width, everything was resized to 0. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 953b6a48f0..aa4cf3624b 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -10,6 +10,8 @@ import UM 1.3 as UM Item { + width: parent.width + Label { id: header From a052b8ec69e014c0ebce92ffb4fcb0067d85831c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 21 Nov 2018 16:08:29 +0100 Subject: [PATCH 0377/1039] Use Theme.getIcon instead of Theme.icons This is better for performance, according to the deprecation warning I got. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index b38384ef8a..111f42483e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -172,7 +172,7 @@ Cura.ExpandableComponent textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - iconSource: UM.Theme.icons.arrow_right + iconSource: UM.Theme.getIcon("arrow_right") iconOnRightSide: true onClicked: popupItem.configuration_method = "custom" @@ -195,7 +195,7 @@ Cura.ExpandableComponent textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - iconSource: UM.Theme.icons.arrow_left + iconSource: UM.Theme.getIcon("arrow_left") onClicked: popupItem.configuration_method = "auto" } From a826dfb156c46acfbe26533eab594aa27305040d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 21 Nov 2018 16:12:00 +0100 Subject: [PATCH 0378/1039] Fix binding loop in height of view selection bar Since these were part of the childrenRect of the bar, and attached to the bottom of the bar, the childrenRect depended on the position of the children and that depends on the childrenRect again. So just attach it to the top, it's logical. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 111f42483e..8f31d80810 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -164,7 +164,7 @@ Cura.ExpandableComponent anchors { right: parent.right - bottom: parent.bottom + top: parent.top } color: UM.Theme.getColor("secondary") @@ -187,7 +187,7 @@ Cura.ExpandableComponent anchors { left: parent.left - bottom: parent.bottom + top: parent.top } color: UM.Theme.getColor("secondary") From fe7d1825d4f124788e9fc0ec19db6528fae388c3 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 16:54:57 +0100 Subject: [PATCH 0379/1039] Add styling to the buttons in the printer list. Contributes to CURA-5942. --- plugins/PrepareStage/PrepareMenu.qml | 2 +- resources/qml/MachineSelector.qml | 34 +++++++++++++++---- .../cura-light/images/header_pattern.svg | 1 + resources/themes/cura-light/theme.json | 1 + 4 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 resources/themes/cura-light/images/header_pattern.svg diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index fd296144c7..eed1da0ad8 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -91,7 +91,7 @@ Item radius: UM.Theme.getSize("default_radius").width color: UM.Theme.getColor("toolbar_background") - + Button { id: openFileButton diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index 417c5722b4..a6339e2621 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -46,6 +46,7 @@ Cura.ExpandableComponent ScrollView { + id: scroll width: parent.width anchors.top: parent.top anchors.bottom: separator.top @@ -54,16 +55,20 @@ Cura.ExpandableComponent Column { id: column - anchors.fill: parent + + // Can't use parent.width since the parent is the flickable component and not the ScrollView + width: scroll.width - 2 * UM.Theme.getSize("default_lining").width + x: UM.Theme.getSize("default_lining").width Label { text: catalog.i18nc("@label", "Network connected printers") visible: networkedPrintersModel.items.length > 0 + leftPadding: UM.Theme.getSize("default_margin").width height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 renderType: Text.NativeRendering - font: UM.Theme.getFont("medium_bold") - color: UM.Theme.getColor("text") + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text_medium") verticalAlignment: Text.AlignVCenter } @@ -77,13 +82,20 @@ Cura.ExpandableComponent filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} } - delegate: Button + delegate: Cura.ActionButton { text: model.metadata["connect_group_name"] width: parent.width + height: UM.Theme.getSize("action_button").height checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] checkable: true + color: "transparent" + hoverColor: UM.Theme.getColor("action_button_hovered") + textColor: UM.Theme.getColor("text") + textHoverColor: UM.Theme.getColor("text") + outlineColor: checked ? UM.Theme.getColor("primary") : "transparent" + onClicked: { togglePopup() @@ -102,10 +114,11 @@ Cura.ExpandableComponent { text: catalog.i18nc("@label", "Preset printers") visible: virtualPrintersModel.items.length > 0 + leftPadding: UM.Theme.getSize("default_margin").width height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 renderType: Text.NativeRendering - font: UM.Theme.getFont("medium_bold") - color: UM.Theme.getColor("text") + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text_medium") verticalAlignment: Text.AlignVCenter } @@ -119,13 +132,20 @@ Cura.ExpandableComponent filter: {"type": "machine", "um_network_key": null} } - delegate: Button + delegate: Cura.ActionButton { text: model.name width: parent.width + height: UM.Theme.getSize("action_button").height checked: Cura.MachineManager.activeMachineId == model.id checkable: true + color: "transparent" + hoverColor: UM.Theme.getColor("action_button_hovered") + textColor: UM.Theme.getColor("text") + textHoverColor: UM.Theme.getColor("text") + outlineColor: checked ? UM.Theme.getColor("primary") : "transparent" + onClicked: { togglePopup() diff --git a/resources/themes/cura-light/images/header_pattern.svg b/resources/themes/cura-light/images/header_pattern.svg new file mode 100644 index 0000000000..2a9de2f3e9 --- /dev/null +++ b/resources/themes/cura-light/images/header_pattern.svg @@ -0,0 +1 @@ +Pattern \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 5f52adff14..4e6fe0776a 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -521,6 +521,7 @@ "avatar_image": [6.8, 6.8], + "action_button": [15.0, 3.0], "action_button_radius": [0.15, 0.15], "monitor_config_override_box": [1.0, 14.0], From f866390c7bb0cc9ac4af65d78a30c6b7995f6201 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 21 Nov 2018 16:56:25 +0100 Subject: [PATCH 0380/1039] Fix an issue in the action panel. When the panel is created while the user is in the preview stage, the row has no width. Contributes to CURA-5786. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index f4e014b1ec..3c4386f079 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -99,6 +99,7 @@ Column { id: buttonRow spacing: UM.Theme.getSize("default_margin").width + width: parent.width Cura.ActionButton { From a9f0402f636b652585c23c5ea7299f0256ba195d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Nov 2018 09:37:36 +0100 Subject: [PATCH 0381/1039] Made size of viewselector themable CURA-5785 --- plugins/PreviewStage/PreviewMenu.qml | 1 + resources/themes/cura-light/theme.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 656cf185d5..d660db549b 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -34,6 +34,7 @@ Item id: viewSelector iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") height: parent.height + width: UM.Theme.getSize("views_selector").width headerCornerSide: Cura.RoundedRectangle.Direction.Left property var viewModel: UM.ViewModel { } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index b09370ccdb..0df1c8eb31 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -395,7 +395,7 @@ "machine_selector_widget": [16.0, 4.5], - "views_selector": [0.0, 4.0], + "views_selector": [16.0, 4.5], "default_radius": [0.25, 0.25], From 7e3f86f0913b7432c46b20507e33be57b7a1d514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Thu, 22 Nov 2018 09:37:47 +0100 Subject: [PATCH 0382/1039] Moved some of the mocks to class level because they are used in every test method --- .../tests/TestSendMaterialJob.py | 35 ++++++------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index ff896683e1..548704fd33 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -17,6 +17,8 @@ from plugins.UM3NetworkPrinting.src.SendMaterialJob import SendMaterialJob lambda _: MimeType(name = "application/x-ultimaker-material-profile", comment = "Ultimaker Material Profile", suffixes = ["xml.fdm_material"])) @patch("UM.Resources.Resources.getAllResourcesOfType", lambda _: ["/materials/generic_pla_white.xml.fdm_material"]) +@patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") +@patch("PyQt5.QtNetwork.QNetworkReply") class TestSendMaterialJob(TestCase): _LOCAL_MATERIAL_WHITE = {"type": "material", "status": "unknown", "id": "generic_pla_white", "base_file": "generic_pla_white", "setting_version": "5", "name": "White PLA", @@ -52,16 +54,13 @@ class TestSendMaterialJob(TestCase): "density": 1.00 } - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - def test_run(self, device_mock): + def test_run(self, device_mock, reply_mock): job = SendMaterialJob(device_mock) job.run() # We expect the materials endpoint to be called when the job runs. device_mock.get.assert_called_with("materials/", on_finished = job._onGetRemoteMaterials) - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - @patch("PyQt5.QtNetwork.QNetworkReply") def test__onGetRemoteMaterials_withFailedRequest(self, reply_mock, device_mock): reply_mock.attribute.return_value = 404 job = SendMaterialJob(device_mock) @@ -71,8 +70,6 @@ class TestSendMaterialJob(TestCase): self.assertEqual([call.attribute(0), call.errorString()], reply_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - @patch("PyQt5.QtNetwork.QNetworkReply") def test__onGetRemoteMaterials_withBadJsonAnswer(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(b"Six sick hicks nick six slick bricks with picks and sticks.") @@ -84,8 +81,6 @@ class TestSendMaterialJob(TestCase): self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - @patch("PyQt5.QtNetwork.QNetworkReply") def test__onGetRemoteMaterials_withMissingGuidInRemoteMaterial(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 remote_material_without_guid = self._REMOTE_MATERIAL_WHITE.copy() @@ -101,10 +96,8 @@ class TestSendMaterialJob(TestCase): @patch("cura.Settings.CuraContainerRegistry") @patch("cura.CuraApplication") - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - @patch("PyQt5.QtNetwork.QNetworkReply") - def test__onGetRemoteMaterials_withInvalidVersionInLocalMaterial(self, reply_mock, device_mock, application_mock, - container_registry_mock): + def test__onGetRemoteMaterials_withInvalidVersionInLocalMaterial(self, application_mock, container_registry_mock, + reply_mock, device_mock): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_WHITE]).encode("ascii")) @@ -125,10 +118,8 @@ class TestSendMaterialJob(TestCase): @patch("cura.Settings.CuraContainerRegistry") @patch("cura.CuraApplication") - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - @patch("PyQt5.QtNetwork.QNetworkReply") - def test__onGetRemoteMaterials_withNoUpdate(self, reply_mock, device_mock, application_mock, - container_registry_mock): + def test__onGetRemoteMaterials_withNoUpdate(self, application_mock, container_registry_mock, reply_mock, + device_mock): application_mock.getContainerRegistry.return_value = container_registry_mock device_mock.createFormPart.return_value = "_xXx_" @@ -150,10 +141,8 @@ class TestSendMaterialJob(TestCase): @patch("cura.Settings.CuraContainerRegistry") @patch("cura.CuraApplication") - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - @patch("PyQt5.QtNetwork.QNetworkReply") - def test__onGetRemoteMaterials_withUpdatedMaterial(self, reply_mock, device_mock, application_mock, - container_registry_mock): + def test__onGetRemoteMaterials_withUpdatedMaterial(self, application_mock, container_registry_mock, reply_mock, + device_mock): application_mock.getContainerRegistry.return_value = container_registry_mock device_mock.createFormPart.return_value = "_xXx_" @@ -181,10 +170,8 @@ class TestSendMaterialJob(TestCase): @patch("cura.Settings.CuraContainerRegistry") @patch("cura.CuraApplication") - @patch("plugins.UM3NetworkPrinting.src.ClusterUM3OutputDevice") - @patch("PyQt5.QtNetwork.QNetworkReply") - def test__onGetRemoteMaterials_withNewMaterial(self, reply_mock, device_mock, application_mock, - container_registry_mock): + def test__onGetRemoteMaterials_withNewMaterial(self, application_mock, container_registry_mock, reply_mock, + device_mock): application_mock.getContainerRegistry.return_value = container_registry_mock device_mock.createFormPart.return_value = "_xXx_" From 352427e4601204851daba848599153ebab3f8c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Thu, 22 Nov 2018 10:01:15 +0100 Subject: [PATCH 0383/1039] Moved exception handling closer to the cause of error --- plugins/UM3NetworkPrinting/src/SendMaterialJob.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index ee8dd8042d..72269040e7 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -46,9 +46,8 @@ class SendMaterialJob(Job): # Collect materials from the printer's reply and send the missing ones if needed. try: remote_materials_by_guid = self._parseReply(reply) - self._sendMissingMaterials(remote_materials_by_guid) - except json.JSONDecodeError: - Logger.logException("w", "Error parsing materials from printer") + if remote_materials_by_guid: + self._sendMissingMaterials(remote_materials_by_guid) except TypeError: Logger.logException("w", "Error parsing materials from printer") @@ -153,12 +152,14 @@ class SendMaterialJob(Job): # Parses the reply to a "/materials" request to the printer # # \return a dictionary of ClusterMaterial objects by GUID - # \throw json.JSONDecodeError Raised when the reply does not contain a valid json string # \throw KeyError Raised when on of the materials does not include a valid guid @classmethod def _parseReply(cls, reply: QNetworkReply) -> Dict[str, ClusterMaterial]: - remote_materials = json.loads(reply.readAll().data().decode("utf-8")) - return {material["guid"]: ClusterMaterial(**material) for material in remote_materials} + try: + remote_materials = json.loads(reply.readAll().data().decode("utf-8")) + return {material["guid"]: ClusterMaterial(**material) for material in remote_materials} + except json.JSONDecodeError: + Logger.logException("w", "Error parsing materials from printer") ## Retrieves a list of local materials # From b890e40e81f62da2eade839ad48d7168cdcde7ff Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 22 Nov 2018 10:54:25 +0100 Subject: [PATCH 0384/1039] Close the popup panel when the user clicks in some of the buttons in the printer selector. Contributes to CURA-5942. --- resources/qml/ExtruderIcon.qml | 1 + resources/qml/MachineSelector.qml | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index c103ee245c..8f312adb85 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -16,6 +16,7 @@ Item property color materialColor property alias textColor: extruderNumberText.color property bool extruderEnabled: true + UM.RecolorImage { id: mainIcon diff --git a/resources/qml/MachineSelector.qml b/resources/qml/MachineSelector.qml index a6339e2621..14e1ebb48e 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/MachineSelector.qml @@ -184,7 +184,11 @@ Cura.ExpandableComponent hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - onClicked: Cura.Actions.addMachine.trigger() + onClicked: + { + togglePopup() + Cura.Actions.addMachine.trigger() + } } Cura.ActionButton @@ -196,7 +200,11 @@ Cura.ExpandableComponent hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - onClicked: Cura.Actions.configureMachines.trigger() + onClicked: + { + togglePopup() + Cura.Actions.configureMachines.trigger() + } } } } From d4e4e507411dbc6e63c26737c0ae6931847ceba3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Nov 2018 10:55:53 +0100 Subject: [PATCH 0385/1039] Fix typo --- resources/definitions/fdmextruder.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmextruder.def.json b/resources/definitions/fdmextruder.def.json index cb49b1e128..0af1e68075 100644 --- a/resources/definitions/fdmextruder.def.json +++ b/resources/definitions/fdmextruder.def.json @@ -189,7 +189,7 @@ "settable_per_mesh": false, "settable_per_extruder": true, "settable_per_meshgroup": false, - "setttable_globally": false + "settable_globally": false } } }, From bf8a04fa4049b4a7bf99c4903b437109ec415b73 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Nov 2018 11:08:46 +0100 Subject: [PATCH 0386/1039] Fix some minor display issues for simulation view CURA-5785 --- plugins/SimulationView/SimulationViewMenuComponent.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 110cd1c109..53b64afb47 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -40,7 +40,6 @@ Cura.ExpandableComponent id: layerViewTypesLabel text: catalog.i18nc("@label", "Color scheme") font: UM.Theme.getFont("default") - visible: !UM.SimulationView.compatibilityMode color: UM.Theme.getColor("setting_control_text") height: base.height verticalAlignment: Text.AlignVCenter @@ -273,6 +272,7 @@ Cura.ExpandableComponent text: catalog.i18nc("@label", "Only Show Top Layers") visible: UM.SimulationView.compatibilityMode style: UM.Theme.styles.checkbox + width: parent.width } CheckBox @@ -280,6 +280,7 @@ Cura.ExpandableComponent checked: viewSettings.top_layer_count == 5 onClicked: UM.Preferences.setValue("view/top_layer_count", checked ? 5 : 1) text: catalog.i18nc("@label", "Show 5 Detailed Layers On Top") + width: parent.width visible: UM.SimulationView.compatibilityMode style: UM.Theme.styles.checkbox } From ba7863c9d9640ce30f01cf47fff8d1ec9564d06f Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 22 Nov 2018 11:09:35 +0100 Subject: [PATCH 0387/1039] Fix type error for hovering manage queue link Contributes to CL-1148 --- .../resources/qml/ClusterMonitorItem.qml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml index d055071521..328f82dec5 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml @@ -91,6 +91,7 @@ Component } Label { + id: manageQueueText anchors { left: externalLinkIcon.right @@ -110,8 +111,14 @@ Component anchors.fill: manageQueueLabel hoverEnabled: true onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel() - onEntered: manageQueueLabel.font.underline = true - onExited: manageQueueLabel.font.underline = false + onEntered: + { + manageQueueText.font.underline = true + } + onExited: + { + manageQueueText.font.underline = false + } } Row From 088b2f6f2808d3aca074e68e47e05d0d0b46808c Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 22 Nov 2018 11:36:32 +0100 Subject: [PATCH 0388/1039] Added an extra import module, did not pass coding style test CURA-5936 --- plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index 478f955e49..ff5c33517d 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -6,6 +6,7 @@ import io #To write config files to strings as if they were files. import os.path #To get the path to write new user profiles to. from typing import Dict, List, Optional, Set, Tuple import urllib #To serialise the user container file name properly. +import urllib.parse import UM.VersionUpgrade #To indicate that a file is of incorrect format. import UM.VersionUpgradeManager #To schedule more files to be upgraded. From 3c3343a4073f7cf574ee3aa45eaeb17a0d25f166 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 22 Nov 2018 13:11:59 +0100 Subject: [PATCH 0389/1039] Use bool for expanded or collapsed state Contributes to CL-1148 --- plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml index 4922aea853..0877a15f00 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml @@ -14,7 +14,7 @@ Item { id: base - property var expanded: false + property bool expanded: false property var borderWidth: 1 property color borderColor: "#EAEAEC" property color headerBackgroundColor: "white" From 1de21c1d94a5be627c125694118edf39ea5a2f9b Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 22 Nov 2018 13:13:06 +0100 Subject: [PATCH 0390/1039] Remove unnecessary "else" Contributes to CL-1148 --- .../UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index ada6f8a644..913e684827 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -91,10 +91,7 @@ Item } return catalog.i18nc("@label", "First available") } - else - { - return printJob.assignedPrinter.name - } + return printJob.assignedPrinter.name } return "" } From a1613c7f816c0d9c10659972f32bbed3a1995ea1 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Nov 2018 13:53:27 +0100 Subject: [PATCH 0391/1039] Set the variable types of the Action button to the right kind. Because of boyscouting; these must be colors (and not generic vars) --- resources/qml/ActionButton.qml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 2a8b894867..69d65e1c3f 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -15,15 +15,17 @@ Button property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.text - property var color: UM.Theme.getColor("primary") - property var hoverColor: UM.Theme.getColor("primary_hover") - property var disabledColor: color - property var textColor: UM.Theme.getColor("button_text") - property var textHoverColor: UM.Theme.getColor("button_text_hover") - property var textDisabledColor: textColor - property var outlineColor: color - property var outlineHoverColor: hoverColor - property var outlineDisabledColor: outlineColor + + property color color: UM.Theme.getColor("primary") + property color hoverColor: UM.Theme.getColor("primary_hover") + property color disabledColor: color + property color textColor: UM.Theme.getColor("button_text") + property color textHoverColor: UM.Theme.getColor("button_text_hover") + property color textDisabledColor: textColor + property color outlineColor: color + property color outlineHoverColor: hoverColor + property color outlineDisabledColor: outlineColor + // This property is used to indicate whether the button has a fixed width or the width would depend on the contents // Be careful when using fixedWidthMode, the translated texts can be too long that they won't fit. In any case, // we elide the text to the right so the text will be cut off with the three dots at the end. @@ -80,6 +82,7 @@ Button { id: mouseArea anchors.fill: parent + // Ensure that the button will still accept the clicks on it's own. onPressed: mouse.accepted = false hoverEnabled: true } From 9720512f50d87de2b6149f1d2475704309f3c07d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 22 Nov 2018 13:54:10 +0100 Subject: [PATCH 0392/1039] Add a new printer selector button that is connected to the output devices and shows labels containing the type of printers that are in the same group. Contributes to CURA-5942. --- cura/PrinterOutputDevice.py | 5 + .../ConfigurationListView.qml | 2 +- .../{ => PrinterSelector}/MachineSelector.qml | 38 +----- .../PrinterSelector/MachineSelectorButton.qml | 110 ++++++++++++++++++ resources/qml/qmldir | 3 +- 5 files changed, 121 insertions(+), 37 deletions(-) rename resources/qml/{ => PrinterSelector}/MachineSelector.qml (79%) create mode 100644 resources/qml/PrinterSelector/MachineSelectorButton.qml diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 969aa3c460..f8a663f0e4 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -211,6 +211,11 @@ class PrinterOutputDevice(QObject, OutputDevice): self._unique_configurations.sort(key = lambda k: k.printerType) self.uniqueConfigurationsChanged.emit() + # Returns the unique configurations of the printers within this output device + @pyqtProperty("QVariantList", notify = uniqueConfigurationsChanged) + def uniquePrinterTypes(self) -> List[str]: + return list(set([configuration.printerType for configuration in self._unique_configurations])) + def _onPrintersChanged(self) -> None: for printer in self._printers: printer.configurationChanged.connect(self._updateUniqueConfigurations) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 7aaf87b4df..210ff6057f 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -21,7 +21,7 @@ Column { // FIXME For now the model should be removed and then created again, otherwise changes in the printer don't automatically update the UI configurationList.model = [] - if(outputDevice) + if (outputDevice) { configurationList.model = outputDevice.uniqueConfigurations } diff --git a/resources/qml/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml similarity index 79% rename from resources/qml/MachineSelector.qml rename to resources/qml/PrinterSelector/MachineSelector.qml index 14e1ebb48e..9280c45cf4 100644 --- a/resources/qml/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -8,8 +8,6 @@ import QtQuick.Layouts 1.1 import UM 1.2 as UM import Cura 1.0 as Cura -import "Menus" - Cura.ExpandableComponent { @@ -18,7 +16,7 @@ Cura.ExpandableComponent property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" popupPadding: 0 - popupAlignment: ExpandableComponent.PopupAlignment.AlignLeft + popupAlignment: Cura.ExpandableComponent.PopupAlignment.AlignLeft iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") UM.I18nCatalog @@ -82,25 +80,10 @@ Cura.ExpandableComponent filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} } - delegate: Cura.ActionButton + delegate: MachineSelectorButton { text: model.metadata["connect_group_name"] - width: parent.width - height: UM.Theme.getSize("action_button").height checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] - checkable: true - - color: "transparent" - hoverColor: UM.Theme.getColor("action_button_hovered") - textColor: UM.Theme.getColor("text") - textHoverColor: UM.Theme.getColor("text") - outlineColor: checked ? UM.Theme.getColor("primary") : "transparent" - - onClicked: - { - togglePopup() - Cura.MachineManager.setActiveMachine(model.id) - } Connections { @@ -132,25 +115,10 @@ Cura.ExpandableComponent filter: {"type": "machine", "um_network_key": null} } - delegate: Cura.ActionButton + delegate: MachineSelectorButton { text: model.name - width: parent.width - height: UM.Theme.getSize("action_button").height checked: Cura.MachineManager.activeMachineId == model.id - checkable: true - - color: "transparent" - hoverColor: UM.Theme.getColor("action_button_hovered") - textColor: UM.Theme.getColor("text") - textHoverColor: UM.Theme.getColor("text") - outlineColor: checked ? UM.Theme.getColor("primary") : "transparent" - - onClicked: - { - togglePopup() - Cura.MachineManager.setActiveMachine(model.id) - } } } } diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml new file mode 100644 index 0000000000..5ba229c31c --- /dev/null +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -0,0 +1,110 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 +import QtQuick.Layouts 1.3 + +import UM 1.1 as UM +import Cura 1.0 as Cura + +Button +{ + id: machineSelectorButton + + width: parent.width + height: UM.Theme.getSize("action_button").height + leftPadding: Math.round(1.5 * UM.Theme.getSize("default_margin").width) + checkable: true + + property var outputDevice: Cura.MachineManager.printerOutputDevices[0] + property var printerTypesList: [] + + function setPrinterTypesList() + { + printerTypesList = (checked && (outputDevice != null)) ? outputDevice.uniquePrinterTypes : [] + } + + contentItem: Item + { + width: machineSelectorButton.width - machineSelectorButton.leftPadding + height: UM.Theme.getSize("action_button").height + + Label + { + id: buttonText + anchors + { + left: parent.left + right: printerTypes.left + verticalCenter: parent.verticalCenter + } + text: machineSelectorButton.text + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("action_button") + visible: text != "" + renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + Row + { + id: printerTypes + width: childrenRect.width + + anchors + { + right: parent.right + verticalCenter: parent.verticalCenter + } + spacing: UM.Theme.getSize("narrow_margin").width + + Repeater + { + model: printerTypesList + delegate: Label + { + text: modelData + } + } + } + } + + background: Rectangle + { + id: backgroundRect + color: machineSelectorButton.hovered ? UM.Theme.getColor("action_button_hovered") : "transparent" + radius: UM.Theme.getSize("action_button_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: machineSelectorButton.checked ? UM.Theme.getColor("primary") : "transparent" + } + + onClicked: + { + togglePopup() + Cura.MachineManager.setActiveMachine(model.id) + } + + MouseArea + { + id: mouseArea + anchors.fill: parent + onPressed: mouse.accepted = false + hoverEnabled: true + } + + Connections + { + target: outputDevice + onUniqueConfigurationsChanged: setPrinterTypesList() + } + + Connections + { + target: Cura.MachineManager + onOutputDevicesChanged: setPrinterTypesList() + } + + Component.onCompleted: setPrinterTypesList() +} diff --git a/resources/qml/qmldir b/resources/qml/qmldir index d5e4106d33..458338c78a 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -9,4 +9,5 @@ MaterialMenu 1.0 MaterialMenu.qml NozzleMenu 1.0 NozzleMenu.qml ActionPanelWidget 1.0 ActionPanelWidget.qml IconLabel 1.0 IconLabel.qml -OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml \ No newline at end of file +OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml +ExpandableComponent 1.0 ExpandableComponent.qml \ No newline at end of file From da834d6a1fdf4ef7123e737015acdc10b555bece Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 22 Nov 2018 13:55:22 +0100 Subject: [PATCH 0393/1039] Silence binding loop Contributes to CL-1148 --- .../UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index 913e684827..0f2ae67442 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -71,7 +71,7 @@ Item Item { anchors.verticalCenter: parent.verticalCenter - height: childrenRect.height + height: 18 * screenScaleFactor // TODO: This should be childrenRect.height but QML throws warnings width: childrenRect.width Label From 55554c62a9a4d8995ae6358b9d29cb2a4b6861d3 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 22 Nov 2018 13:55:43 +0100 Subject: [PATCH 0394/1039] Use array for extruder configurations Contributes to CL-1148 --- .../resources/qml/MonitorPrintJobCard.qml | 7 +++- .../qml/MonitorPrinterConfiguration.qml | 38 ++++++++----------- 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index 0f2ae67442..8231870c21 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -141,8 +141,11 @@ Item id: printerConfiguration anchors.verticalCenter: parent.verticalCenter buildplate: "Glass" - config0: base.printJob.configuration.extruderConfigurations[0] - config1: base.printJob.configuration.extruderConfigurations[1] + configurations: + [ + base.printJob.configuration.extruderConfigurations[0], + base.printJob.configuration.extruderConfigurations[1] + ] height: 72 * screenScaleFactor // TODO: Theme! } Label { diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml index a31c8bbd99..6aa11528de 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterConfiguration.qml @@ -18,11 +18,8 @@ Item // Extracted buildplate configuration property alias buildplate: buildplateConfig.buildplate - // Extracted extruder configuration for position 0 - property var config0: null - - // Extracted extruder configuration for position 1 - property var config1: null + // Array of extracted extruder configurations + property var configurations: null // Default size, but should be stretched to fill parent height: 72 * parent.height @@ -30,30 +27,25 @@ Item Row { + id: extruderConfigurationRow spacing: 18 * screenScaleFactor // TODO: Theme! - MonitorExtruderConfiguration + Repeater { - color: config0 && config0.activeMaterial ? config0.activeMaterial.color : "#eeeeee" // TODO: Theme! - material: config0 && config0.activeMaterial ? config0.activeMaterial.name : "" - position: config0.position - printCore: config0 ? config0.hotendID : "" - visible: config0 + id: extruderConfigurationRepeater + model: configurations - // Keep things responsive! - width: Math.floor((base.width - parent.spacing) / 2) - } + MonitorExtruderConfiguration + { + color: modelData.activeMaterial ? modelData.activeMaterial.color : "#eeeeee" // TODO: Theme! + material: modelData.activeMaterial ? modelData.activeMaterial.name : "" + position: modelData.position + printCore: modelData.hotendID - MonitorExtruderConfiguration - { - color: config1 && config1.activeMaterial ? config1.activeMaterial.color : "#eeeeee" // TODO: Theme! - material: config1 && config1.activeMaterial ? config1.activeMaterial.name : "" - position: config1.position - printCore: config1 ? config1.hotendID : "" - visible: config1 + // Keep things responsive! + width: Math.floor((base.width - (configurations.length - 1) * extruderConfigurationRow.spacing) / configurations.length) + } - // Keep things responsive! - width: Math.floor((base.width - parent.spacing) / 2) } } From 963b8aa97487bc839ec051473eb79f1839767316 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Thu, 22 Nov 2018 13:56:01 +0100 Subject: [PATCH 0395/1039] Fix QML warnings Contributes to CL-1148 --- .../UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml index 328f82dec5..19a152e6eb 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml @@ -17,7 +17,7 @@ Component property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight") property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width - color: transparent + color: "transparent" height: maximumHeight onVisibleChanged: { @@ -83,7 +83,7 @@ Component UM.RecolorImage { id: externalLinkIcon - anchors.verticalCenter: externalLinkIcon.verticalCenter + anchors.verticalCenter: manageQueueLabel.verticalCenter color: UM.Theme.getColor("primary") source: "../svg/icons/external_link.svg" width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) From 698409803d6c3717dea8312741e0f188aee9a7b5 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 09:07:22 +0100 Subject: [PATCH 0396/1039] Fix null warning in QML CURA-5943 --- .../qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index 97b5bee745..73fc342d66 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -70,7 +70,7 @@ Column Label { id: materialLabel - text: printCoreConfiguration.material.name + text: printCoreConfiguration.material == null ? "" : printCoreConfiguration.material.name renderType: Text.NativeRendering elide: Text.ElideRight width: parent.width From 45d4f2ad3d4ba05d42757a4b0aef7433b22589b7 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 13:48:50 +0100 Subject: [PATCH 0397/1039] Update MonitorSection CURA-5943 --- resources/qml/PrinterOutput/MonitorSection.qml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/resources/qml/PrinterOutput/MonitorSection.qml b/resources/qml/PrinterOutput/MonitorSection.qml index 6ed762362d..7ef89dabf7 100644 --- a/resources/qml/PrinterOutput/MonitorSection.qml +++ b/resources/qml/PrinterOutput/MonitorSection.qml @@ -1,10 +1,10 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 +import QtQuick 2.10 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.0 as Cura @@ -13,7 +13,8 @@ Item { id: base property string label - height: childrenRect.height; + height: childrenRect.height + Rectangle { color: UM.Theme.getColor("setting_category") @@ -30,4 +31,4 @@ Item color: UM.Theme.getColor("setting_category_text") } } -} \ No newline at end of file +} From cf0994037c962a35adbf26ace560fc0e749e239d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 13:56:03 +0100 Subject: [PATCH 0398/1039] Move MonitorButtonSytle to a separate QML file CURA-5943 --- .../PrinterOutput/ManualPrinterControl.qml | 84 ++---------------- .../qml/PrinterOutput/MonitorButtonStyle.qml | 88 +++++++++++++++++++ 2 files changed, 93 insertions(+), 79 deletions(-) create mode 100644 resources/qml/PrinterOutput/MonitorButtonStyle.qml diff --git a/resources/qml/PrinterOutput/ManualPrinterControl.qml b/resources/qml/PrinterOutput/ManualPrinterControl.qml index 70961a2eb2..3219dc5792 100644 --- a/resources/qml/PrinterOutput/ManualPrinterControl.qml +++ b/resources/qml/PrinterOutput/ManualPrinterControl.qml @@ -9,6 +9,9 @@ import QtQuick.Layouts 1.1 import UM 1.2 as UM import Cura 1.0 as Cura +import "." + + Item { property var printerModel @@ -16,86 +19,9 @@ Item implicitWidth: parent.width implicitHeight: childrenRect.height - Component + MonitorButtonStyle { id: monitorButtonStyle - - ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_border"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_border"); - } - return UM.Theme.getColor("action_button_border"); - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered"); - } - return UM.Theme.getColor("action_button"); - } - Behavior on color - { - ColorAnimation - { - duration: 50 - } - } - } - - label: Item - { - UM.RecolorImage - { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - width: Math.floor(control.width / 2) - height: Math.floor(control.height / 2) - sourceSize.width: width - sourceSize.height: width - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_text"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text"); - } - return UM.Theme.getColor("action_button_text"); - } - source: control.iconSource - } - } - } } Column @@ -551,4 +477,4 @@ Item } ExclusiveGroup { id: distanceGroup } } -} \ No newline at end of file +} diff --git a/resources/qml/PrinterOutput/MonitorButtonStyle.qml b/resources/qml/PrinterOutput/MonitorButtonStyle.qml new file mode 100644 index 0000000000..7bb1b91e55 --- /dev/null +++ b/resources/qml/PrinterOutput/MonitorButtonStyle.qml @@ -0,0 +1,88 @@ +import QtQuick 2.10 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + + +Component +{ + ButtonStyle + { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_border"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border"); + } + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered"); + } + return UM.Theme.getColor("action_button"); + } + Behavior on color + { + ColorAnimation + { + duration: 50 + } + } + } + + label: Item + { + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + width: Math.floor(control.width / 2) + height: Math.floor(control.height / 2) + sourceSize.width: width + sourceSize.height: width + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_text"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } + source: control.iconSource + } + } + } +} From 5a1691839169ba0ee3f4ca6be15514d5714f062a Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 13:58:18 +0100 Subject: [PATCH 0399/1039] Update ManualPrinterControl CURA-5943 --- .../qml/PrinterOutput/ManualPrinterControl.qml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/resources/qml/PrinterOutput/ManualPrinterControl.qml b/resources/qml/PrinterOutput/ManualPrinterControl.qml index 3219dc5792..1a719c379e 100644 --- a/resources/qml/PrinterOutput/ManualPrinterControl.qml +++ b/resources/qml/PrinterOutput/ManualPrinterControl.qml @@ -1,12 +1,12 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 +import QtQuick 2.10 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.3 -import UM 1.2 as UM +import UM 1.3 as UM import Cura 1.0 as Cura import "." @@ -14,8 +14,10 @@ import "." Item { - property var printerModel + property var printerModel: null property var activePrintJob: printerModel != null ? printerModel.activePrintJob : null + property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null + implicitWidth: parent.width implicitHeight: childrenRect.height @@ -388,7 +390,7 @@ Item if (printerModel == null) { return false // Can't send custom commands if not connected. } - if (!connectedPrinter.acceptsCommands) { + if (connectedPrinter == null || !connectedPrinter.acceptsCommands) { return false // Not allowed to do anything } if (connectedPrinter.jobState == "printing" || connectedPrinter.jobState == "pre_print" || connectedPrinter.jobState == "resuming" || connectedPrinter.jobState == "pausing" || connectedPrinter.jobState == "paused" || connectedPrinter.jobState == "error" || connectedPrinter.jobState == "offline") { From e65f2d66a631d43dfa0c3da716ac332db7767a9f Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 14:02:17 +0100 Subject: [PATCH 0400/1039] Add connectedPrinter to MonitorItem CURA-5943 --- resources/qml/PrinterOutput/MonitorItem.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/PrinterOutput/MonitorItem.qml b/resources/qml/PrinterOutput/MonitorItem.qml index cad8d2f7f3..a26ec20f64 100644 --- a/resources/qml/PrinterOutput/MonitorItem.qml +++ b/resources/qml/PrinterOutput/MonitorItem.qml @@ -15,6 +15,8 @@ Item property string value: "" height: childrenRect.height; + property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null + Row { height: UM.Theme.getSize("setting_control").height From 75661d9bba0079df9dfe3288c38282ca8e857c35 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 14:04:08 +0100 Subject: [PATCH 0401/1039] Fix MonitorSidebar due to widget renaming CURA-5943 --- resources/qml/MonitorSidebar.qml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/resources/qml/MonitorSidebar.qml b/resources/qml/MonitorSidebar.qml index 2282034739..50416e34ab 100644 --- a/resources/qml/MonitorSidebar.qml +++ b/resources/qml/MonitorSidebar.qml @@ -1,15 +1,17 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.0 as Cura + import "Menus" import "Menus/ConfigurationMenu" + Rectangle { id: base @@ -85,7 +87,7 @@ Rectangle } } - MachineSelection + MachineSelector { id: machineSelection width: base.width - configSelection.width - separator.width @@ -104,7 +106,7 @@ Rectangle anchors.left: machineSelection.right } - ConfigurationSelection + CustomConfigurationSelector { id: configSelection visible: isNetworkPrinter && printerConnected @@ -112,7 +114,6 @@ Rectangle height: UM.Theme.getSize("stage_menu").height anchors.top: base.top anchors.right: parent.right - panelWidth: base.width } Loader From 8eb0f66df384a50f5f9afb12d8747737c20c4deb Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 14:05:23 +0100 Subject: [PATCH 0402/1039] Add connectedPrinter to ExtruderBox CURA-5943 --- resources/qml/PrinterOutput/ExtruderBox.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/PrinterOutput/ExtruderBox.qml b/resources/qml/PrinterOutput/ExtruderBox.qml index 510a44f9da..f5a1bd75c4 100644 --- a/resources/qml/PrinterOutput/ExtruderBox.qml +++ b/resources/qml/PrinterOutput/ExtruderBox.qml @@ -12,6 +12,8 @@ Item property alias color: background.color property var extruderModel property var position: index + property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null + implicitWidth: parent.width implicitHeight: UM.Theme.getSize("print_setup_extruder_box").height From d8c3078d78fc176fc764ee54bd12264850076b3e Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 14:10:04 +0100 Subject: [PATCH 0403/1039] Add connectedPrinter to HeatedBedBox CURA-5943 --- resources/qml/PrinterOutput/HeatedBedBox.qml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/resources/qml/PrinterOutput/HeatedBedBox.qml b/resources/qml/PrinterOutput/HeatedBedBox.qml index 962ffa9b01..8c99814e02 100644 --- a/resources/qml/PrinterOutput/HeatedBedBox.qml +++ b/resources/qml/PrinterOutput/HeatedBedBox.qml @@ -1,10 +1,10 @@ // Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 +import QtQuick 2.10 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.0 as Cura @@ -14,6 +14,7 @@ Item implicitWidth: parent.width height: visible ? UM.Theme.getSize("print_setup_extruder_box").height : 0 property var printerModel + property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null Rectangle { @@ -114,7 +115,7 @@ Item { return false; //Can't preheat if not connected. } - if (!connectedPrinter.acceptsCommands) + if (connectedPrinter == null || !connectedPrinter.acceptsCommands) { return false; //Not allowed to do anything. } From 0211122b1209d55db109cb00d8a442d30b4c970b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 22 Nov 2018 14:46:13 +0100 Subject: [PATCH 0404/1039] Add a proper component with a label and a rectangle in the background that shows the type of printer. Contributes to CURA-5942. --- .../qml/PrinterSelector/MachineSelector.qml | 1 + .../PrinterSelector/MachineSelectorButton.qml | 24 ++++++++++++++++--- resources/qml/ViewOrientationControls.qml | 2 +- resources/themes/cura-light/theme.json | 5 +++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 9280c45cf4..66ed4d4a2c 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -84,6 +84,7 @@ Cura.ExpandableComponent { text: model.metadata["connect_group_name"] checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] + outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null Connections { diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index 5ba229c31c..44b162d00d 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -17,7 +17,7 @@ Button leftPadding: Math.round(1.5 * UM.Theme.getSize("default_margin").width) checkable: true - property var outputDevice: Cura.MachineManager.printerOutputDevices[0] + property var outputDevice: null property var printerTypesList: [] function setPrinterTypesList() @@ -63,9 +63,27 @@ Button Repeater { model: printerTypesList - delegate: Label + delegate: Item { - text: modelData + width: UM.Theme.getSize("printer_type_label").width + height: UM.Theme.getSize("printer_type_label").height + + Rectangle + { + anchors.fill: parent + color: UM.Theme.getColor("printer_type_label_background") + } + + Label + { + id: printerTypeLabel + text: modelData + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + renderType: Text.NativeRendering + font: UM.Theme.getFont("very_small") + color: UM.Theme.getColor("text") + } } } } diff --git a/resources/qml/ViewOrientationControls.qml b/resources/qml/ViewOrientationControls.qml index acf75b1b48..fa5a51181d 100644 --- a/resources/qml/ViewOrientationControls.qml +++ b/resources/qml/ViewOrientationControls.qml @@ -21,7 +21,7 @@ Row { iconSource: UM.Theme.getIcon("view_3d") style: UM.Theme.styles.small_tool_button - onClicked:UM.Controller.rotateView("3d", 0) + onClicked: UM.Controller.rotateView("3d", 0) } // #2 Front view diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 2f86829f11..94a89342e7 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -81,7 +81,6 @@ "lining": [192, 193, 194, 255], "viewport_overlay": [0, 0, 0, 192], - "primary": [50, 130, 255, 255], "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], @@ -114,6 +113,8 @@ "toolbar_background": [255, 255, 255, 255], + "printer_type_label_background": [171, 171, 191, 255], + "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], "text_link": [50, 130, 255, 255], @@ -398,6 +399,8 @@ "views_selector": [0.0, 4.0], + "printer_type_label": [3.5, 1.5], + "default_radius": [0.25, 0.25], "wide_lining": [0.5, 0.5], From 7f11142d5086b40164b490d90617a31bf41f63d8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Nov 2018 14:57:55 +0100 Subject: [PATCH 0405/1039] Fix height and vertical layout of popup Many things were made simpler. This took some time to fix... Contributes to issue CURA-5876. --- .../ConfigurationMenu/AutoConfiguration.qml | 4 ++ .../ConfigurationMenu/ConfigurationMenu.qml | 49 ++++++++----------- .../ConfigurationMenu/CustomConfiguration.qml | 6 ++- 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index e1f0ed480e..cde18ab488 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -8,12 +8,16 @@ import UM 1.3 as UM Item { + width: parent.width + height: visible ? childrenRect.height : 0 + Label { id: header text: catalog.i18nc("@header", "Configurations") font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") + height: contentHeight anchors { diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 8f31d80810..4aa8d66caa 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -96,32 +96,36 @@ Cura.ExpandableComponent } } - popupItem: Item + popupItem: Column { id: popupItem width: base.width - 2 * UM.Theme.getSize("default_margin").width - height: 200 + height: implicitHeight //Required because ExpandableComponent will try to use this to determine the size of the background of the pop-up. + spacing: UM.Theme.getSize("default_margin").height property var is_connected: false //If current machine is connected to a printer. Only evaluated upon making popup visible. onVisibleChanged: { - is_connected = Cura.MachineManager.activeMachineNetworkKey != "" && Cura.MachineManager.printerConnected //Re-evaluate. + is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected //Re-evaluate. } - property var configuration_method: buttonBar.visible ? "auto" : "custom" //Auto if connected to a printer at start-up, or Custom if not. + property var configuration_method: is_connected ? "auto" : "custom" //Auto if connected to a printer at start-up, or Custom if not. - AutoConfiguration + Item { - id: autoConfiguration - visible: popupItem.configuration_method === "auto" - anchors.top: parent.top - } + width: parent.width + height: childrenRect.height + AutoConfiguration + { + id: autoConfiguration + visible: popupItem.configuration_method === "auto" + } - CustomConfiguration - { - id: customConfiguration - visible: popupItem.configuration_method === "custom" - anchors.top: parent.top + CustomConfiguration + { + id: customConfiguration + visible: popupItem.configuration_method === "custom" + } } Rectangle @@ -129,30 +133,19 @@ Cura.ExpandableComponent id: separator visible: buttonBar.visible - anchors - { - left: parent.left - right: parent.right - bottom: buttonBar.top - bottomMargin: UM.Theme.getSize("default_margin").height - } + width: parent.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") } //Allow switching between custom and auto. - Rectangle + Item { id: buttonBar visible: popupItem.is_connected //Switching only makes sense if the "auto" part is possible. - anchors - { - left: parent.left - right: parent.right - bottom: parent.bottom - } + width: parent.width height: childrenRect.height Cura.ActionButton diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index aa4cf3624b..d424f35ebe 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -11,6 +11,7 @@ import UM 1.3 as UM Item { width: parent.width + height: visible ? childrenRect.height : 0 Label { @@ -18,6 +19,7 @@ Item text: catalog.i18nc("@header", "Custom") font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") + height: contentHeight anchors { @@ -62,14 +64,15 @@ Item { id: tabControl width: parent.width + height: childrenRect.height anchors.top: tabBar.bottom - anchors.bottom: parent.bottom property var model: extrudersModel.items[tabBar.currentIndex] property real textWidth: Math.round(width * 0.3) property real controlWidth: width - textWidth Column { spacing: UM.Theme.getSize("default_margin").height + Row { height: UM.Theme.getSize("print_setup_item").height @@ -165,6 +168,5 @@ Item } } } - } } \ No newline at end of file From 5c30df2a688d858fb5b23e6ccc4250acae1dc9b6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 22 Nov 2018 15:00:35 +0100 Subject: [PATCH 0406/1039] Create a reusable component for the printer type label. Other parts of the UI can just reuse it. Contributes to CURA-5942. --- resources/qml/ActionButton.qml | 1 - .../PrinterSelector/MachineSelectorButton.qml | 24 ++----------- .../qml/PrinterSelector/PrinterTypeLabel.qml | 34 +++++++++++++++++++ resources/qml/qmldir | 3 +- 4 files changed, 39 insertions(+), 23 deletions(-) create mode 100644 resources/qml/PrinterSelector/PrinterTypeLabel.qml diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 2a8b894867..ff8ee4b149 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -3,7 +3,6 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 -import QtQuick.Layouts 1.3 import UM 1.1 as UM diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index 44b162d00d..e98036dbc8 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -3,7 +3,6 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 -import QtQuick.Layouts 1.3 import UM 1.1 as UM import Cura 1.0 as Cura @@ -15,6 +14,7 @@ Button width: parent.width height: UM.Theme.getSize("action_button").height leftPadding: Math.round(1.5 * UM.Theme.getSize("default_margin").width) + rightPadding: Math.round(1.5 * UM.Theme.getSize("default_margin").width) checkable: true property var outputDevice: null @@ -63,27 +63,9 @@ Button Repeater { model: printerTypesList - delegate: Item + delegate: Cura.PrinterTypeLabel { - width: UM.Theme.getSize("printer_type_label").width - height: UM.Theme.getSize("printer_type_label").height - - Rectangle - { - anchors.fill: parent - color: UM.Theme.getColor("printer_type_label_background") - } - - Label - { - id: printerTypeLabel - text: modelData - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - renderType: Text.NativeRendering - font: UM.Theme.getFont("very_small") - color: UM.Theme.getColor("text") - } + text: modelData } } } diff --git a/resources/qml/PrinterSelector/PrinterTypeLabel.qml b/resources/qml/PrinterSelector/PrinterTypeLabel.qml new file mode 100644 index 0000000000..cd9f3b9743 --- /dev/null +++ b/resources/qml/PrinterSelector/PrinterTypeLabel.qml @@ -0,0 +1,34 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.1 + +import UM 1.1 as UM + +// This component creates a label with the abbreviated name of a printer, with a rectangle surrounding the label. +// It is created in a separated place in order to be reused whenever needed. +Item +{ + property alias text: printerTypeLabel.text + + width: UM.Theme.getSize("printer_type_label").width + height: UM.Theme.getSize("printer_type_label").height + + Rectangle + { + anchors.fill: parent + color: UM.Theme.getColor("printer_type_label_background") + } + + Label + { + id: printerTypeLabel + text: "CFFFP" // As an abbreviated name of the Custom FFF Printer + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + renderType: Text.NativeRendering + font: UM.Theme.getFont("very_small") + color: UM.Theme.getColor("text") + } +} \ No newline at end of file diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 458338c78a..67388100ca 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -10,4 +10,5 @@ NozzleMenu 1.0 NozzleMenu.qml ActionPanelWidget 1.0 ActionPanelWidget.qml IconLabel 1.0 IconLabel.qml OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml -ExpandableComponent 1.0 ExpandableComponent.qml \ No newline at end of file +ExpandableComponent 1.0 ExpandableComponent.qml +PrinterTypeLabel 1.0 PrinterTypeLabel.qml \ No newline at end of file From 2d2f24251dcaac15bed5bba3e0ec782161743181 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 15:07:49 +0100 Subject: [PATCH 0407/1039] Fix MonitorMainView for USB printing CURA-5943 --- plugins/MonitorStage/MonitorMainView.qml | 106 +++++++++++++---------- 1 file changed, 61 insertions(+), 45 deletions(-) diff --git a/plugins/MonitorStage/MonitorMainView.qml b/plugins/MonitorStage/MonitorMainView.qml index c48f6d0aab..57dd033792 100644 --- a/plugins/MonitorStage/MonitorMainView.qml +++ b/plugins/MonitorStage/MonitorMainView.qml @@ -1,45 +1,61 @@ -// Copyright (c) 2017 Ultimaker B.V. - -import QtQuick 2.2 -import QtQuick.Controls 1.1 - -import UM 1.3 as UM -import Cura 1.0 as Cura - -Item -{ - // parent could be undefined as this component is not visible at all times - width: parent ? parent.width : 0 - height: parent ? parent.height : 0 - - // We show a nice overlay on the 3D viewer when the current output device has no monitor view - Rectangle - { - id: viewportOverlay - - color: UM.Theme.getColor("viewport_overlay") - width: parent.width - height: parent.height - - MouseArea - { - anchors.fill: parent - acceptedButtons: Qt.AllButtons - onWheel: wheel.accepted = true - } - } - - Loader - { - id: monitorViewComponent - - width: parent.width - height: parent.height - - property real maximumWidth: parent.width - property real maximumHeight: parent.height - - sourceComponent: Cura.MachineManager.printerOutputDevices.length > 0 ? Cura.MachineManager.printerOutputDevices[0].monitorItem: null - visible: sourceComponent != null - } -} +// Copyright (c) 2017 Ultimaker B.V. + +import QtQuick 2.10 +import QtQuick.Controls 1.4 + +import UM 1.3 as UM +import Cura 1.0 as Cura + + +Item +{ + // parent could be undefined as this component is not visible at all times + width: parent ? parent.width : 0 + height: parent ? parent.height : 0 + + // We show a nice overlay on the 3D viewer when the current output device has no monitor view + Rectangle + { + id: viewportOverlay + + color: UM.Theme.getColor("viewport_overlay") + width: parent.width + height: parent.height + + MouseArea + { + anchors.fill: parent + acceptedButtons: Qt.AllButtons + onWheel: wheel.accepted = true + } + } + + Loader + { + id: monitorViewComponent + + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.left: parent.left + + width: parent.width * 0.7 + height: parent.height + + property real maximumWidth: parent.width + property real maximumHeight: parent.height + + sourceComponent: Cura.MachineManager.printerOutputDevices.length > 0 ? Cura.MachineManager.printerOutputDevices[0].monitorItem: null + } + + Loader + { + id: monitorSidebarComponent + + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.left: monitorViewComponent.right + anchors.right: parent.right + + source: UM.Controller.activeStage.sidebarComponent != null ? UM.Controller.activeStage.sidebarComponent : "" + } +} From 3f4d379908add0ec7054eb65e87ae91587ffaebd Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 22 Nov 2018 15:35:40 +0100 Subject: [PATCH 0408/1039] Added shadow to slice button CURA-5959 --- resources/qml/ActionButton.qml | 18 +++++++++++ .../qml/ActionPanel/SliceProcessWidget.qml | 31 +++++++++---------- resources/themes/cura-light/theme.json | 2 ++ 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 69d65e1c3f..8cd53b5d7e 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -5,6 +5,8 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 import QtQuick.Layouts 1.3 +import QtGraphicalEffects 1.0 // For the dropshadow + import UM 1.1 as UM Button @@ -26,6 +28,9 @@ Button property color outlineHoverColor: hoverColor property color outlineDisabledColor: outlineColor + property alias shadowColor: shadow.color + property alias shadowEnabled: shadow.visible + // This property is used to indicate whether the button has a fixed width or the width would depend on the contents // Be careful when using fixedWidthMode, the translated texts can be too long that they won't fit. In any case, // we elide the text to the right so the text will be cut off with the three dots at the end. @@ -70,6 +75,19 @@ Button border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor } + DropShadow + { + id: shadow + // Don't blur the shadow + radius: 0 + anchors.fill: backgroundRect + source: backgroundRect + verticalOffset: 2 + visible: false + // Should always be drawn behind the background. + z: backgroundRect.z - 1 + } + ToolTip { id: tooltip diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 2d4a7b6b89..4f10e6879b 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -87,28 +87,27 @@ Column width: parent.width height: UM.Theme.getSize("action_panel_button").height fixedWidthMode: true - text: - { - if ([UM.Backend.NotStarted, UM.Backend.Error].indexOf(widget.backendState) != -1) - { - return catalog.i18nc("@button", "Slice") - } - if (autoSlice) - { - return catalog.i18nc("@button", "Auto slicing...") - } - return catalog.i18nc("@button", "Cancel") - } - enabled: !autoSlice && !disabledSlice // Get the current value from the preferences property bool autoSlice: UM.Preferences.getValue("general/auto_slice") // Disable the slice process when property bool disabledSlice: [UM.Backend.Done, UM.Backend.Error].indexOf(widget.backendState) != -1 - disabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled") : "transparent" - textDisabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled_text") : UM.Theme.getColor("primary") - outlineDisabledColor: disabledSlice ? UM.Theme.getColor("action_button_disabled_border") : "transparent" + text: + { + if ([UM.Backend.NotStarted, UM.Backend.Error].indexOf(widget.backendState) != -1) + { + return catalog.i18nc("@button", "Slice") + } + return catalog.i18nc("@button", "Cancel") + } + enabled: !autoSlice && !disabledSlice + visible: !autoSlice + + disabledColor: UM.Theme.getColor("action_button_disabled") + textDisabledColor: UM.Theme.getColor("action_button_disabled_text") + shadowEnabled: true + shadowColor: enabled ? UM.Theme.getColor("action_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") onClicked: sliceOrStopSlicing() } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index fefc4adc14..748a4e2643 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -173,6 +173,8 @@ "action_button_disabled": [245, 245, 245, 255], "action_button_disabled_text": [127, 127, 127, 255], "action_button_disabled_border": [245, 245, 245, 255], + "action_button_shadow": [64, 47, 205, 255], + "action_button_disabled_shadow": [228, 228, 228, 255], "print_button_ready": [50, 130, 255, 255], "print_button_ready_border": [50, 130, 255, 255], From 692868a0b4f25ba4aa8f2a1fedfe05fe36c9f0c9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 22 Nov 2018 15:45:38 +0100 Subject: [PATCH 0409/1039] Create a function that given a printer type name, it will return and abbreviated name. Contributes to CURA-5942. --- cura/PrintInformation.py | 16 +------------- cura/Settings/MachineManager.py | 21 +++++++++++++++++++ .../PrinterSelector/MachineSelectorButton.qml | 2 +- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index e11f70a54c..f1d8e81b3a 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -395,21 +395,7 @@ class PrintInformation(QObject): return active_machine_type_name = global_container_stack.definition.getName() - abbr_machine = "" - for word in re.findall(r"[\w']+", active_machine_type_name): - if word.lower() == "ultimaker": - abbr_machine += "UM" - elif word.isdigit(): - abbr_machine += word - else: - stripped_word = self._stripAccents(word.upper()) - # - use only the first character if the word is too long (> 3 characters) - # - use the whole word if it's not too long (<= 3 characters) - if len(stripped_word) > 3: - stripped_word = stripped_word[0] - abbr_machine += stripped_word - - self._abbr_machine = abbr_machine + self._abbr_machine = self._application.getMachineManager().getAbbreviatedMachineName(active_machine_type_name) ## Utility method that strips accents from characters (eg: â -> a) def _stripAccents(self, to_strip: str) -> str: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index f321ce94a6..a65d2ed302 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -3,6 +3,8 @@ import collections import time +import re +import unicodedata from typing import Any, Callable, List, Dict, TYPE_CHECKING, Optional, cast from UM.ConfigurationErrorMessage import ConfigurationErrorMessage @@ -1537,3 +1539,22 @@ class MachineManager(QObject): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): self.updateMaterialWithVariant(None) self._updateQualityWithMaterial() + + ## This function will translate any printer type name to an abbreviated printer type name + @pyqtSlot(str, result = str) + def getAbbreviatedMachineName(self, machine_type_name: str) -> str: + abbr_machine = "" + for word in re.findall(r"[\w']+", machine_type_name): + if word.lower() == "ultimaker": + abbr_machine += "UM" + elif word.isdigit(): + abbr_machine += word + else: + stripped_word = ''.join(char for char in unicodedata.normalize('NFD', word.upper()) if unicodedata.category(char) != 'Mn') + # - use only the first character if the word is too long (> 3 characters) + # - use the whole word if it's not too long (<= 3 characters) + if len(stripped_word) > 3: + stripped_word = stripped_word[0] + abbr_machine += stripped_word + + return abbr_machine diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index e98036dbc8..e7b44a4447 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -65,7 +65,7 @@ Button model: printerTypesList delegate: Cura.PrinterTypeLabel { - text: modelData + text: Cura.MachineManager.getAbbreviatedMachineName(modelData) } } } From 06cb628699bf23e04c5ab6e06b462582053f64c3 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 22 Nov 2018 15:46:56 +0100 Subject: [PATCH 0410/1039] Update desktop and mimeinfo to add gcode mime type CURA-5878 --- cura.desktop.in | 2 +- cura.sharedmimeinfo | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cura.desktop.in b/cura.desktop.in index fbe8b30fed..b0195015a5 100644 --- a/cura.desktop.in +++ b/cura.desktop.in @@ -13,6 +13,6 @@ TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura Icon=cura-icon Terminal=false Type=Application -MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;model/x3d+xml; +MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;model/x3d+xml;text/x-gcode; Categories=Graphics; Keywords=3D;Printing;Slicer; diff --git a/cura.sharedmimeinfo b/cura.sharedmimeinfo index 23d38795eb..ed9099d425 100644 --- a/cura.sharedmimeinfo +++ b/cura.sharedmimeinfo @@ -19,4 +19,12 @@ + + + Gcode file + + + + + \ No newline at end of file From 4c26262054877c502e9244d06df9c2dce138c365 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 22 Nov 2018 17:06:56 +0100 Subject: [PATCH 0411/1039] Use re-usable TabRow component Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/CustomConfiguration.qml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index d424f35ebe..50ff108431 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -29,22 +29,19 @@ Item } } - TabBar + UM.TabRow { id: tabBar - onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) anchors.top: header.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height - width: parent.width - height: 50 + + onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) + Repeater { model: extrudersModel - - delegate: TabButton + delegate: UM.TabRowButton { - width: ListView.view != null ? Math.round(ListView.view.width / extrudersModel.rowCount()): 0 - height: parent.height contentItem: Item { Cura.ExtruderIcon From 1d84bd735660cc8c8b98157854fc15b46d5cd55e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 22 Nov 2018 17:37:10 +0100 Subject: [PATCH 0412/1039] Improve the machine selector header to show an icon in case it is a network printer. Contributes to CURA-5942. --- .../qml/ActionPanel/OutputProcessWidget.qml | 2 ++ .../qml/ActionPanel/SliceProcessWidget.qml | 1 + resources/qml/IconLabel.qml | 13 ++++++----- .../qml/PrinterSelector/MachineSelector.qml | 22 ++++++++++++++----- ...us_connected.svg => printer_connected.svg} | 0 .../themes/cura-light/icons/printer_group.svg | 22 +++++++++++++------ .../cura-light/icons/printer_single.svg | 15 ++++++------- .../cura-light/icons/tab_status_busy.svg | 13 ----------- .../cura-light/icons/tab_status_finished.svg | 13 ----------- .../cura-light/icons/tab_status_paused.svg | 13 ----------- .../cura-light/icons/tab_status_stopped.svg | 13 ----------- .../cura-light/icons/tab_status_unknown.svg | 13 ----------- resources/themes/cura-light/theme.json | 1 + 13 files changed, 50 insertions(+), 91 deletions(-) rename resources/themes/cura-light/icons/{tab_status_connected.svg => printer_connected.svg} (100%) delete mode 100644 resources/themes/cura-light/icons/tab_status_busy.svg delete mode 100644 resources/themes/cura-light/icons/tab_status_finished.svg delete mode 100644 resources/themes/cura-light/icons/tab_status_paused.svg delete mode 100644 resources/themes/cura-light/icons/tab_status_stopped.svg delete mode 100644 resources/themes/cura-light/icons/tab_status_unknown.svg diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 3c4386f079..87f9d2015d 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -47,6 +47,7 @@ Column { id: estimatedTime width: parent.width + height: childrenRect.height text: PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") @@ -57,6 +58,7 @@ Column { id: estimatedCosts width: parent.width + height: childrenRect.height property var printMaterialLengths: PrintInformation.materialLengths property var printMaterialWeights: PrintInformation.materialWeights diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 2d4a7b6b89..9c46539220 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -44,6 +44,7 @@ Column { id: message width: parent.width + height: childrenRect.height visible: widget.backendState == UM.Backend.Error text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml index 7c90382892..90930e91c7 100644 --- a/resources/qml/IconLabel.qml +++ b/resources/qml/IconLabel.qml @@ -16,32 +16,35 @@ Item property alias source: icon.source property alias color: label.color property alias font: label.font - - height: childrenRect.height + property alias iconSize: icon.width UM.RecolorImage { id: icon anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter - source: UM.Theme.getIcon("dot") + source: "" width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height + height: width sourceSize.width: width sourceSize.height: height color: label.color + visible: source != "" } Label { id: label - anchors.left: icon.right + anchors.left: icon.visible ? icon.right : parent.left + anchors.right: parent.right anchors.leftMargin: UM.Theme.getSize("thin_margin").width anchors.verticalCenter: icon.verticalCenter text: "Empty label" + elide: Text.ElideRight color: UM.Theme.getColor("text") font: UM.Theme.getFont("very_small") renderType: Text.NativeRendering diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 66ed4d4a2c..d10478227a 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -14,6 +14,7 @@ Cura.ExpandableComponent id: machineSelector property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" + property var outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null popupPadding: 0 popupAlignment: Cura.ExpandableComponent.PopupAlignment.AlignLeft @@ -25,15 +26,24 @@ Cura.ExpandableComponent name: "cura" } - headerItem: Label + headerItem: Cura.IconLabel { text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName - verticalAlignment: Text.AlignVCenter - height: parent.height - elide: Text.ElideRight - renderType: Text.NativeRendering - font: UM.Theme.getFont("default") + source: + { + if (isNetworkPrinter && machineSelector.outputDevice != null) + { + if (machineSelector.outputDevice.clusterSize > 1) + { + return UM.Theme.getIcon("printer_group") + } + return UM.Theme.getIcon("printer_single") + } + return "" + } + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") + iconSize: UM.Theme.getSize("machine_selector_icon").width } popupItem: Item diff --git a/resources/themes/cura-light/icons/tab_status_connected.svg b/resources/themes/cura-light/icons/printer_connected.svg similarity index 100% rename from resources/themes/cura-light/icons/tab_status_connected.svg rename to resources/themes/cura-light/icons/printer_connected.svg diff --git a/resources/themes/cura-light/icons/printer_group.svg b/resources/themes/cura-light/icons/printer_group.svg index 614bea90b8..5e439faca4 100644 --- a/resources/themes/cura-light/icons/printer_group.svg +++ b/resources/themes/cura-light/icons/printer_group.svg @@ -1,12 +1,20 @@ - - - icn_groupPrinters + + + Icon/ group printer/ disconnected Created with Sketch. - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/printer_single.svg b/resources/themes/cura-light/icons/printer_single.svg index f7dc83987d..69c4e212bc 100644 --- a/resources/themes/cura-light/icons/printer_single.svg +++ b/resources/themes/cura-light/icons/printer_single.svg @@ -1,13 +1,12 @@ - - - icn_singlePrinter + + + Icon/ single printer/ disconnected Created with Sketch. - - - - - + + + + diff --git a/resources/themes/cura-light/icons/tab_status_busy.svg b/resources/themes/cura-light/icons/tab_status_busy.svg deleted file mode 100644 index debe4f6360..0000000000 --- a/resources/themes/cura-light/icons/tab_status_busy.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Busy - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_finished.svg b/resources/themes/cura-light/icons/tab_status_finished.svg deleted file mode 100644 index 2519f2f862..0000000000 --- a/resources/themes/cura-light/icons/tab_status_finished.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Wait cleanup - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_paused.svg b/resources/themes/cura-light/icons/tab_status_paused.svg deleted file mode 100644 index bab6c9ca6b..0000000000 --- a/resources/themes/cura-light/icons/tab_status_paused.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - paused - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_stopped.svg b/resources/themes/cura-light/icons/tab_status_stopped.svg deleted file mode 100644 index c9b150db3a..0000000000 --- a/resources/themes/cura-light/icons/tab_status_stopped.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Aborted - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/resources/themes/cura-light/icons/tab_status_unknown.svg b/resources/themes/cura-light/icons/tab_status_unknown.svg deleted file mode 100644 index 9f413baffc..0000000000 --- a/resources/themes/cura-light/icons/tab_status_unknown.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Unknown - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 61b7600384..8f110db65d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -396,6 +396,7 @@ "machine_selector_widget": [20.0, 4.0], "machine_selector_widget_content": [25.0, 32.0], + "machine_selector_icon": [2.66, 2.66], "views_selector": [16.0, 4.5], From 5be8b2810dbcde6274513f71abaadf9e792b5fa6 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 22 Nov 2018 22:10:54 +0100 Subject: [PATCH 0413/1039] Fix: if load a model and scale it up to 0.1mm and then load another model then Cura will crash. It happens because the model 1 does not have any points for arranging it on the build plate CURA-5867 --- cura/Arranging/Arrange.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cura/Arranging/Arrange.py b/cura/Arranging/Arrange.py index 5657ee991a..32796005c8 100644 --- a/cura/Arranging/Arrange.py +++ b/cura/Arranging/Arrange.py @@ -66,6 +66,11 @@ class Arrange: continue vertices = vertices.getMinkowskiHull(Polygon.approximatedCircle(min_offset)) points = copy.deepcopy(vertices._points) + + # After scaling (like up to 0.1 mm) the node might not have points + if len(points) == 0: + continue + shape_arr = ShapeArray.fromPolygon(points, scale = scale) arranger.place(0, 0, shape_arr) From fa59a6a7dba646b18ab543dbf58c4e349e6eda4e Mon Sep 17 00:00:00 2001 From: THeijmans Date: Fri, 23 Nov 2018 09:17:32 +0100 Subject: [PATCH 0414/1039] UM3 ABS first layer temperature Fixed the first layer temperature for ABS Fine and Extra Fine profiles on the UM3 (ST-2281). --- resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg | 1 + .../quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg | 1 + 2 files changed, 2 insertions(+) diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 9ceab110e9..4e79728945 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -17,6 +17,7 @@ machine_nozzle_cool_down_speed = 0.8 machine_nozzle_heat_up_speed = 1.5 material_standby_temperature = 100 material_print_temperature = =default_material_print_temperature - 5 +material_print_temperature_layer_0 = =material_print_temperature + 15 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 prime_tower_enable = False diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index e5b699c35f..3bded3b97c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -14,6 +14,7 @@ variant = AA 0.4 [values] machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 +material_print_temperature_layer_0 = =material_print_temperature + 10 material_initial_print_temperature = =material_print_temperature - 5 material_final_print_temperature = =material_print_temperature - 10 material_standby_temperature = 100 From bb5c0326de589ee09b2398b74a542f838d6ea8e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 23 Nov 2018 09:20:19 +0100 Subject: [PATCH 0415/1039] Used duoble quotes iso single quotes --- plugins/UM3NetworkPrinting/src/Models.py | 52 ++++++++++++------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index d5e1007555..bcdeb8299c 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -2,32 +2,32 @@ # Cura is released under the terms of the LGPLv3 or higher. from collections import namedtuple -ClusterMaterial = namedtuple('ClusterMaterial', [ - 'guid', # Type: str - 'material', # Type: str - 'brand', # Type: str - 'version', # Type: int - 'color', # Type: str - 'density' # Type: str +ClusterMaterial = namedtuple("ClusterMaterial", [ + "guid", # Type: str + "material", # Type: str + "brand", # Type: str + "version", # Type: int + "color", # Type: str + "density" # Type: str ]) -LocalMaterial = namedtuple('LocalMaterial', [ - 'GUID', # Type: str - 'id', # Type: str - 'type', # Type: str - 'status', # Type: str - 'base_file', # Type: str - 'setting_version', # Type: int - 'version', # Type: int - 'name', # Type: str - 'brand', # Type: str - 'material', # Type: str - 'color_name', # Type: str - 'color_code', # Type: str - 'description', # Type: str - 'adhesion_info', # Type: str - 'approximate_diameter', # Type: str - 'properties', # Type: str - 'definition', # Type: str - 'compatible' # Type: str +LocalMaterial = namedtuple("LocalMaterial", [ + "GUID", # Type: str + "id", # Type: str + "type", # Type: str + "status", # Type: str + "base_file", # Type: str + "setting_version", # Type: int + "version", # Type: int + "name", # Type: str + "brand", # Type: str + "material", # Type: str + "color_name", # Type: str + "color_code", # Type: str + "description", # Type: str + "adhesion_info", # Type: str + "approximate_diameter", # Type: str + "properties", # Type: str + "definition", # Type: str + "compatible" # Type: str ]) From 294527f7febf96d81f4bcdf62b142a552d58fbbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 23 Nov 2018 09:21:09 +0100 Subject: [PATCH 0416/1039] Review changes --- .../UM3NetworkPrinting/src/SendMaterialJob.py | 19 ++++++------ .../tests/TestSendMaterialJob.py | 29 +++++++++++++------ 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 72269040e7..48760af28e 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -7,6 +7,7 @@ from typing import Dict, TYPE_CHECKING, Set from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest +from UM.Application import Application from UM.Job import Job from UM.Logger import Logger from UM.MimeTypeDatabase import MimeTypeDatabase @@ -27,7 +28,6 @@ class SendMaterialJob(Job): def __init__(self, device: "ClusterUM3OutputDevice") -> None: super().__init__() self.device = device # type: ClusterUM3OutputDevice - self._application = CuraApplication.getInstance() # type: CuraApplication ## Send the request to the printer and register a callback def run(self) -> None: @@ -44,12 +44,9 @@ class SendMaterialJob(Job): return # Collect materials from the printer's reply and send the missing ones if needed. - try: - remote_materials_by_guid = self._parseReply(reply) - if remote_materials_by_guid: - self._sendMissingMaterials(remote_materials_by_guid) - except TypeError: - Logger.logException("w", "Error parsing materials from printer") + remote_materials_by_guid = self._parseReply(reply) + if remote_materials_by_guid: + self._sendMissingMaterials(remote_materials_by_guid) ## Determine which materials should be updated and send them to the printer. # @@ -158,8 +155,12 @@ class SendMaterialJob(Job): try: remote_materials = json.loads(reply.readAll().data().decode("utf-8")) return {material["guid"]: ClusterMaterial(**material) for material in remote_materials} + except UnicodeDecodeError: + Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.") except json.JSONDecodeError: - Logger.logException("w", "Error parsing materials from printer") + Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.") + except TypeError: + Logger.log("e", "Request material storage on printer: Printer's answer was missing GUIDs.") ## Retrieves a list of local materials # @@ -168,7 +169,7 @@ class SendMaterialJob(Job): # \return a dictionary of LocalMaterial objects by GUID def _getLocalMaterials(self) -> Dict[str, LocalMaterial]: result = {} # type: Dict[str, LocalMaterial] - container_registry = self._application.getContainerRegistry() + container_registry = Application.getInstance().getContainerRegistry() material_containers = container_registry.findContainersMetadata(type = "material") # Find the latest version of all material containers in the registry. diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index 548704fd33..f5a475b3ab 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -8,7 +8,7 @@ from unittest.mock import patch, call from PyQt5.QtCore import QByteArray from UM.MimeTypeDatabase import MimeType -from cura.CuraApplication import CuraApplication +from UM.Application import Application from plugins.UM3NetworkPrinting.src.SendMaterialJob import SendMaterialJob @@ -70,6 +70,17 @@ class TestSendMaterialJob(TestCase): self.assertEqual([call.attribute(0), call.errorString()], reply_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) + def test__onGetRemoteMaterials_withWrongEncoding(self, reply_mock, device_mock): + reply_mock.attribute.return_value = 200 + reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_WHITE]).encode("cp500")) + job = SendMaterialJob(device_mock) + job._onGetRemoteMaterials(reply_mock) + + # We expect the reply to be called once to try to get the printers from the list (readAll()). + # Given that the parsing fails we do no expect the device to be called for any follow up. + self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) + self.assertEqual(0, device_mock.createFormPart.call_count) + def test__onGetRemoteMaterials_withBadJsonAnswer(self, reply_mock, device_mock): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(b"Six sick hicks nick six slick bricks with picks and sticks.") @@ -95,7 +106,7 @@ class TestSendMaterialJob(TestCase): self.assertEqual(0, device_mock.createFormPart.call_count) @patch("cura.Settings.CuraContainerRegistry") - @patch("cura.CuraApplication") + @patch("UM.Application") def test__onGetRemoteMaterials_withInvalidVersionInLocalMaterial(self, application_mock, container_registry_mock, reply_mock, device_mock): reply_mock.attribute.return_value = 200 @@ -107,7 +118,7 @@ class TestSendMaterialJob(TestCase): application_mock.getContainerRegistry.return_value = container_registry_mock - with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + with mock.patch.object(Application, "getInstance", new = lambda: application_mock): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) @@ -117,7 +128,7 @@ class TestSendMaterialJob(TestCase): self.assertEqual(0, device_mock.createFormPart.call_count) @patch("cura.Settings.CuraContainerRegistry") - @patch("cura.CuraApplication") + @patch("UM.Application") def test__onGetRemoteMaterials_withNoUpdate(self, application_mock, container_registry_mock, reply_mock, device_mock): application_mock.getContainerRegistry.return_value = container_registry_mock @@ -129,7 +140,7 @@ class TestSendMaterialJob(TestCase): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_WHITE]).encode("ascii")) - with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + with mock.patch.object(Application, "getInstance", new = lambda: application_mock): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) @@ -140,7 +151,7 @@ class TestSendMaterialJob(TestCase): self.assertEqual(0, device_mock.postFormWithParts.call_count) @patch("cura.Settings.CuraContainerRegistry") - @patch("cura.CuraApplication") + @patch("UM.Application") def test__onGetRemoteMaterials_withUpdatedMaterial(self, application_mock, container_registry_mock, reply_mock, device_mock): application_mock.getContainerRegistry.return_value = container_registry_mock @@ -154,7 +165,7 @@ class TestSendMaterialJob(TestCase): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_WHITE]).encode("ascii")) - with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + with mock.patch.object(Application, "getInstance", new = lambda: application_mock): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) @@ -169,7 +180,7 @@ class TestSendMaterialJob(TestCase): device_mock.method_calls) @patch("cura.Settings.CuraContainerRegistry") - @patch("cura.CuraApplication") + @patch("UM.Application") def test__onGetRemoteMaterials_withNewMaterial(self, application_mock, container_registry_mock, reply_mock, device_mock): application_mock.getContainerRegistry.return_value = container_registry_mock @@ -182,7 +193,7 @@ class TestSendMaterialJob(TestCase): reply_mock.attribute.return_value = 200 reply_mock.readAll.return_value = QByteArray(json.dumps([self._REMOTE_MATERIAL_BLACK]).encode("ascii")) - with mock.patch.object(CuraApplication, "getInstance", new = lambda: application_mock): + with mock.patch.object(Application, "getInstance", new = lambda: application_mock): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) From 9f1ce72b9e428cab43a35b84cbc7f3ae76698069 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 23 Nov 2018 10:03:08 +0100 Subject: [PATCH 0417/1039] Add Cura 4.0 printer cards Contributes to CL-1150 --- .../resources/qml/ClusterMonitorItem.qml | 40 ++- .../qml/MonitorPrintJobProgressBar.qml | 112 +++++++++ .../resources/qml/MonitorPrinterCard.qml | 228 ++++++++++++++++++ 3 files changed, 375 insertions(+), 5 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml index 19a152e6eb..6bbc338c17 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml @@ -10,14 +10,13 @@ import QtGraphicalEffects 1.0 Component { - Rectangle + Item { id: monitorFrame property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight") property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width - color: "transparent" height: maximumHeight onVisibleChanged: { @@ -48,13 +47,44 @@ Component } } + ScrollView + { + id: printers + anchors + { + left: parent.left + right: parent.right + top: parent.top + topMargin: 48 * screenScaleFactor // TODO: Theme! + } + height: 264 * screenScaleFactor // TODO: Theme! + Row + { + spacing: 60 * screenScaleFactor // TODO: Theme! + + Repeater + { + model: OutputDevice.printers + + MonitorPrinterCard + { + printer: modelData + } + } + } + } + Item { id: queue - anchors.fill: parent - anchors.top: parent.top - anchors.topMargin: 400 * screenScaleFactor // TODO: Insert carousel here + anchors { + bottom: parent.bottom + left: parent.left + right: parent.right + top: printers.bottom + topMargin: 48 + } Label { diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml new file mode 100644 index 0000000000..e7f9799310 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -0,0 +1,112 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.3 +import QtQuick.Controls.Styles 1.3 +import QtQuick.Controls 1.4 +import UM 1.3 as UM + +ProgressBar +{ + property var printJob: null + property var progress: { + if (!printJob) { + return 0; + } + var result = printJob.timeElapsed / printJob.timeTotal; + if (result > 1.0) { + result = 1.0; + } + return result; + } + width: 180 * screenScaleFactor // TODO: Theme! + value: progress; + style: ProgressBarStyle { + property var remainingTime: { + if (!printJob) { + return 0; + } + /* Sometimes total minus elapsed is less than 0. Use Math.max() to prevent remaining + time from ever being less than 0. Negative durations cause strange behavior such + as displaying "-1h -1m". */ + return Math.max(printer.activePrintJob.timeTotal - printer.activePrintJob.timeElapsed, 0); + } + property var progressText: { + if (!printJob) { + return ""; + } + switch (printJob.state) { + case "wait_cleanup": + if (printJob.timeTotal > printJob.timeElapsed) { + return catalog.i18nc("@label:status", "Aborted"); + } + return catalog.i18nc("@label:status", "Finished"); + case "pre_print": + case "sent_to_printer": + return catalog.i18nc("@label:status", "Preparing"); + case "aborted": + return catalog.i18nc("@label:status", "Aborted"); + case "wait_user_action": + return catalog.i18nc("@label:status", "Aborted"); + case "pausing": + return catalog.i18nc("@label:status", "Pausing"); + case "paused": + return OutputDevice.formatDuration( remainingTime ); + case "resuming": + return catalog.i18nc("@label:status", "Resuming"); + case "queued": + return catalog.i18nc("@label:status", "Action required"); + default: + return OutputDevice.formatDuration( remainingTime ); + } + } + background: Rectangle { + color: "#e4e4f2" // TODO: Theme! + implicitHeight: visible ? 8 : 0; + implicitWidth: 180; + radius: 4 + } + progress: Rectangle { + id: progressItem; + color: { + if (!printJob) { + return "black"; + } + var state = printJob.state + var inactiveStates = [ + "pausing", + "paused", + "resuming", + "wait_cleanup" + ]; + if (inactiveStates.indexOf(state) > -1 && remainingTime > 0) { + return UM.Theme.getColor("monitor_progress_fill_inactive"); + } else { + return "#0a0850" // TODO: Theme! + } + } + radius: 4 + + Label { + id: progressLabel; + anchors { + left: parent.left; + leftMargin: getTextOffset(); + } + text: progressText; + anchors.verticalCenter: parent.verticalCenter; + color: progressItem.width + progressLabel.width < control.width ? UM.Theme.getColor("text") : UM.Theme.getColor("monitor_progress_fill_text"); + width: contentWidth; + font: UM.Theme.getFont("default"); + } + + function getTextOffset() { + if (progressItem.width + progressLabel.width + 16 < control.width) { + return progressItem.width + UM.Theme.getSize("default_margin").width; + } else { + return progressItem.width - progressLabel.width - UM.Theme.getSize("default_margin").width; + } + } + } + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml new file mode 100644 index 0000000000..2fd3f2ead2 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -0,0 +1,228 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.3 as UM + +/** + * A Printer Card is has two main components: the printer portion and the print + * job portion, the latter being paired in the UI when a print job is paired + * a printer in-cluster. + * + * NOTE: For most labels, a fixed height with vertical alignment is used to make + * layouts more deterministic (like the fixed-size textboxes used in original + * mock-ups). This is also a stand-in for CSS's 'line-height' property. Denoted + * with '// FIXED-LINE-HEIGHT:'. + */ +Item +{ + id: base + + // The printer which all printer data is derived from + property var printer: null + + property var borderSize: 1 * screenScaleFactor // TODO: Theme, and remove from here + + width: 834 * screenScaleFactor // TODO: Theme! + height: 216 * screenScaleFactor // TODO: Theme! + + // Printer portion + Rectangle + { + id: printerInfo + border + { + color: "#EAEAEC" // TODO: Theme! + width: borderSize // TODO: Remove once themed + } + color: "white" // TODO: Theme! + width: parent.width + height: 144 * screenScaleFactor // TODO: Theme! + + Row + { + anchors + { + left: parent.left + leftMargin: 36 * screenScaleFactor // TODO: Theme! + verticalCenter: parent.verticalCenter + } + spacing: 18 * screenScaleFactor // TODO: Theme! + + Rectangle + { + id: printerImage + color: "#eeeeee" + width: 108 + height: 108 + } + + Item + { + anchors + { + verticalCenter: parent.verticalCenter + } + width: 216 * screenScaleFactor // TODO: Theme! + height: printerNameLabel.height + printerFamilyPill.height + 6 * screenScaleFactor // TODO: Theme! + + Label + { + id: printerNameLabel + text: printer && printer.name ? printer.name : "" + color: "#414054" // TODO: Theme! + elide: Text.ElideRight + font: UM.Theme.getFont("large") // 16pt, bold + width: parent.width + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + + MonitorPrinterPill + { + id: printerFamilyPill + anchors + { + top: printerNameLabel.bottom + topMargin: 6 * screenScaleFactor // TODO: Theme! + left: printerNameLabel.left + } + text: printer.type + } + } + + MonitorPrinterConfiguration + { + id: printerConfiguration + anchors.verticalCenter: parent.verticalCenter + buildplate: "Glass" + configurations: + [ + base.printer.printerConfiguration.extruderConfigurations[0], + base.printer.printerConfiguration.extruderConfigurations[1] + ] + height: 72 * screenScaleFactor // TODO: Theme! + } + } + + PrintJobContextMenu + { + id: contextButton + // anchors + // { + // right: parent.right + // rightMargin: 8 * screenScaleFactor // TODO: Theme! + // top: parent.top + // topMargin: 8 * screenScaleFactor // TODO: Theme! + // } + printJob: base.printJob + width: 32 * screenScaleFactor // TODO: Theme! + height: 32 * screenScaleFactor // TODO: Theme! + } + } + + + // Print job portion + Rectangle + { + id: printJobInfo + anchors + { + top: printerInfo.bottom + topMargin: -borderSize * screenScaleFactor // TODO: Theme! + } + border + { + color: "#EAEAEC" // TODO: Theme! + width: borderSize // TODO: Remove once themed + } + color: "white" // TODO: Theme! + height: 84 * screenScaleFactor + borderSize // TODO: Remove once themed + width: parent.width + + Row + { + anchors + { + fill: parent + topMargin: 12 * screenScaleFactor + borderSize // TODO: Theme! + bottomMargin: 12 * screenScaleFactor // TODO: Theme! + leftMargin: 36 * screenScaleFactor // TODO: Theme! + } + height: childrenRect.height + spacing: 18 * screenScaleFactor // TODO: Theme! + + Item + { + anchors + { + verticalCenter: parent.verticalCenter + } + width: printerImage.width + height: childrenRect.height + MonitorPrintJobPreview + { + anchors.centerIn: parent + printJob: base.printer.activePrintJob + size: 60 * screenScaleFactor // TODO: Theme! + } + } + + Item + { + anchors + { + verticalCenter: parent.verticalCenter + } + width: 216 * screenScaleFactor // TODO: Theme! + height: printerNameLabel.height + printerFamilyPill.height + 6 * screenScaleFactor // TODO: Theme! + + Label + { + id: printerJobNameLabel + text: base.printer.activePrintJob ? base.printer.activePrintJob.name : "Untitled" // TODO: I18N + color: "#414054" // TODO: Theme! + elide: Text.ElideRight + font: UM.Theme.getFont("large") // 16pt, bold + width: parent.width + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + + Label + { + id: printerJobOwnerLabel + anchors + { + top: printerJobNameLabel.bottom + topMargin: 6 * screenScaleFactor // TODO: Theme! + left: printerJobNameLabel.left + } + text: printer.activePrintJob ? printer.activePrintJob.owner : "Anonymous" // TODO: I18N + color: "#53657d" // TODO: Theme! + elide: Text.ElideRight + font: UM.Theme.getFont("very_small") // 12pt, regular + width: parent.width + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + } + + MonitorPrintJobProgressBar + { + anchors + { + verticalCenter: parent.verticalCenter + } + printJob: printer.activePrintJob + } + } + } +} \ No newline at end of file From 76542a82d5a19b3dd9ea2a3f2c785d8fd956fc57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Fri, 23 Nov 2018 10:33:57 +0100 Subject: [PATCH 0418/1039] Removed the asserts on internals --- .../tests/TestSendMaterialJob.py | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py index f5a475b3ab..b669eb192a 100644 --- a/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/tests/TestSendMaterialJob.py @@ -1,4 +1,5 @@ # Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import io import json @@ -66,8 +67,7 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - # We expect the error string to be retrieved and the device not to be called for any follow up. - self.assertEqual([call.attribute(0), call.errorString()], reply_mock.method_calls) + # We expect the device not to be called for any follow up. self.assertEqual(0, device_mock.createFormPart.call_count) def test__onGetRemoteMaterials_withWrongEncoding(self, reply_mock, device_mock): @@ -76,9 +76,7 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - # We expect the reply to be called once to try to get the printers from the list (readAll()). # Given that the parsing fails we do no expect the device to be called for any follow up. - self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) def test__onGetRemoteMaterials_withBadJsonAnswer(self, reply_mock, device_mock): @@ -87,9 +85,7 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - # We expect the reply to be called once to try to get the printers from the list (readAll()). # Given that the parsing fails we do no expect the device to be called for any follow up. - self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) def test__onGetRemoteMaterials_withMissingGuidInRemoteMaterial(self, reply_mock, device_mock): @@ -100,9 +96,7 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - # We expect the reply to be called once to try to get the printers from the list (readAll()). # Given that parsing fails we do not expect the device to be called for any follow up. - self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) @patch("cura.Settings.CuraContainerRegistry") @@ -122,9 +116,6 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) - self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) - self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) @patch("cura.Settings.CuraContainerRegistry") @@ -144,9 +135,6 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) - self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) - self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) self.assertEqual(0, device_mock.createFormPart.call_count) self.assertEqual(0, device_mock.postFormWithParts.call_count) @@ -169,9 +157,6 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) - self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) - self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) self.assertEqual(1, device_mock.createFormPart.call_count) self.assertEqual(1, device_mock.postFormWithParts.call_count) self.assertEquals( @@ -197,9 +182,6 @@ class TestSendMaterialJob(TestCase): job = SendMaterialJob(device_mock) job._onGetRemoteMaterials(reply_mock) - self.assertEqual([call.attribute(0), call.readAll()], reply_mock.method_calls) - self.assertEqual([call.getContainerRegistry()], application_mock.method_calls) - self.assertEqual([call.findContainersMetadata(type = "material")], container_registry_mock.method_calls) self.assertEqual(1, device_mock.createFormPart.call_count) self.assertEqual(1, device_mock.postFormWithParts.call_count) self.assertEquals( From 67dc415b58eec45b497b3cd29eedee538514ec0a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 23 Nov 2018 10:46:55 +0100 Subject: [PATCH 0419/1039] Add the connected icon to the printer selector that shows a blue icon when the printer is connected. If not connected then there is no icon. Contributes to CURA-5942. --- .../qml/PrinterSelector/MachineSelector.qml | 36 +++++++++++++++++-- .../themes/cura-light/icons/connected.svg | 5 --- .../themes/cura-light/icons/disconnected.svg | 6 ---- resources/themes/cura-light/theme.json | 2 +- 4 files changed, 35 insertions(+), 14 deletions(-) delete mode 100644 resources/themes/cura-light/icons/connected.svg delete mode 100644 resources/themes/cura-light/icons/disconnected.svg diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index d10478227a..a33c54ed88 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -14,6 +14,7 @@ Cura.ExpandableComponent id: machineSelector property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" + property bool isPrinterConnected: Cura.MachineManager.printerConnected property var outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null popupPadding: 0 @@ -31,9 +32,9 @@ Cura.ExpandableComponent text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName source: { - if (isNetworkPrinter && machineSelector.outputDevice != null) + if (isNetworkPrinter) { - if (machineSelector.outputDevice.clusterSize > 1) + if (machineSelector.outputDevice != null && machineSelector.outputDevice.clusterSize > 1) { return UM.Theme.getIcon("printer_group") } @@ -44,6 +45,37 @@ Cura.ExpandableComponent font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") iconSize: UM.Theme.getSize("machine_selector_icon").width + + UM.RecolorImage + { + id: icon + + anchors.bottom: parent.bottom + x: UM.Theme.getSize("thick_margin").width + + source: UM.Theme.getIcon("printer_connected") + width: UM.Theme.getSize("printer_status_icon").width + height: UM.Theme.getSize("printer_status_icon").height + + sourceSize.width: width + sourceSize.height: height + + color: UM.Theme.getColor("primary") + visible: isNetworkPrinter && isPrinterConnected + + // Make a themable circle in the background so we can change it in other themes + Rectangle + { + id: iconBackground + anchors.centerIn: parent + // Make it a bit bigger so there is an outline + width: parent.width + 2 + height: parent.height + 2 + radius: Math.round(width / 2) + color: UM.Theme.getColor("main_background") + z: parent.z - 1 + } + } } popupItem: Item diff --git a/resources/themes/cura-light/icons/connected.svg b/resources/themes/cura-light/icons/connected.svg deleted file mode 100644 index 18423bb6c4..0000000000 --- a/resources/themes/cura-light/icons/connected.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/resources/themes/cura-light/icons/disconnected.svg b/resources/themes/cura-light/icons/disconnected.svg deleted file mode 100644 index 019dff117e..0000000000 --- a/resources/themes/cura-light/icons/disconnected.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 8f110db65d..23b1ffcada 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -449,7 +449,7 @@ "favorites_button": [2, 2], "favorites_button_icon": [1.2, 1.2], - "printer_status_icon": [1.8, 1.8], + "printer_status_icon": [1.0, 1.0], "printer_sync_icon": [1.2, 1.2], "button_tooltip": [1.0, 1.3], From 48c24b103484ddf40a1e3da13ac480a983a4f493 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 23 Nov 2018 10:49:50 +0100 Subject: [PATCH 0420/1039] Remove log entry for bonjour services added For most networks that would not be a problematic log entry. But for our own debugging on Ultimaker's network this is a very spammy log entry and doesn't add much value anyway. --- plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py index 9c070f2de2..daea696cd1 100644 --- a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin @@ -325,13 +325,12 @@ class UM3OutputDevicePlugin(OutputDevicePlugin): ## Handler for zeroConf detection. # Return True or False indicating if the process succeeded. - # Note that this function can take over 3 seconds to complete. Be carefull calling it from the main thread. + # Note that this function can take over 3 seconds to complete. Be careful + # calling it from the main thread. def _onServiceChanged(self, zero_conf, service_type, name, state_change): if state_change == ServiceStateChange.Added: - Logger.log("d", "Bonjour service added: %s" % name) - # First try getting info from zero-conf cache - info = ServiceInfo(service_type, name, properties={}) + info = ServiceInfo(service_type, name, properties = {}) for record in zero_conf.cache.entries_with_name(name.lower()): info.update_record(zero_conf, time(), record) From 3ba4b9fd81ac3b38aa393d71697f9e1514ecb6d7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Nov 2018 11:20:53 +0100 Subject: [PATCH 0421/1039] Add shadows to various used actionbuttons CURA-5959 --- .../ActionPanel/OutputDevicesActionButton.qml | 6 +++++- .../qml/ActionPanel/OutputProcessWidget.qml | 3 +++ .../qml/ActionPanel/SliceProcessWidget.qml | 17 ++++++++--------- resources/themes/cura-light/theme.json | 2 ++ 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index be79a1893e..9682dddf14 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -17,7 +17,8 @@ Item id: saveToButton height: parent.height fixedWidthMode: true - + shadowEnabled: true + shadowColor: UM.Theme.getColor("primary_shadow") anchors { top: parent.top @@ -42,6 +43,9 @@ Item id: deviceSelectionMenu height: parent.height + shadowEnabled: true + shadowColor: UM.Theme.getColor("primary_shadow") + anchors { top: parent.top diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 3c4386f079..79b9898e49 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -115,6 +115,9 @@ Column textHoverColor: UM.Theme.getColor("text") onClicked: UM.Controller.setActiveStage("PreviewStage") visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage" + + shadowEnabled: true + shadowColor: UM.Theme.getColor("action_button_disabled_shadow") } Cura.OutputDevicesActionButton diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 4f10e6879b..7cce323905 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -93,21 +93,20 @@ Column // Disable the slice process when property bool disabledSlice: [UM.Backend.Done, UM.Backend.Error].indexOf(widget.backendState) != -1 - text: - { - if ([UM.Backend.NotStarted, UM.Backend.Error].indexOf(widget.backendState) != -1) - { - return catalog.i18nc("@button", "Slice") - } - return catalog.i18nc("@button", "Cancel") - } + property bool isSlicing: [UM.Backend.NotStarted, UM.Backend.Error].indexOf(widget.backendState) == -1 + + text: isSlicing ? catalog.i18nc("@button", "Cancel") : catalog.i18nc("@button", "Slice") + enabled: !autoSlice && !disabledSlice visible: !autoSlice + color: isSlicing ? UM.Theme.getColor("secondary"): UM.Theme.getColor("primary") + textColor: isSlicing ? UM.Theme.getColor("primary"): UM.Theme.getColor("button_text") + disabledColor: UM.Theme.getColor("action_button_disabled") textDisabledColor: UM.Theme.getColor("action_button_disabled_text") shadowEnabled: true - shadowColor: enabled ? UM.Theme.getColor("action_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") + shadowColor: isSlicing ? UM.Theme.getColor("secondary_shadow") : enabled ? UM.Theme.getColor("action_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") onClicked: sliceOrStopSlicing() } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 748a4e2643..c5802b6a7e 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -83,10 +83,12 @@ "primary": [50, 130, 255, 255], + "primary_shadow": [64, 47, 205, 255], "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], "border": [127, 127, 127, 255], "secondary": [245, 245, 245, 255], + "secondary_shadow": [228, 228, 228, 255], "main_window_header_background": [10, 8, 80, 255], "main_window_header_button_text_active": [10, 8, 80, 255], From 666ed595e5ed91cf4140b164abb745a021da03e7 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 23 Nov 2018 11:36:31 +0100 Subject: [PATCH 0422/1039] Added space --- resources/qml/PrintSetupSelector.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 61cc06b426..7cb47002a7 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -348,6 +348,7 @@ Cura.ExpandableComponent } } } + Component.onCompleted: { var index = Math.round(UM.Preferences.getValue("cura/active_mode")) From 1a8df9e10ecff985d8ae70ff960b4337e294f721 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Nov 2018 11:46:38 +0100 Subject: [PATCH 0423/1039] Removed blue border if slicing is not possible CURA-5959 --- resources/qml/ActionPanel/SliceProcessWidget.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 7cce323905..9a9f40ffac 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -102,7 +102,7 @@ Column color: isSlicing ? UM.Theme.getColor("secondary"): UM.Theme.getColor("primary") textColor: isSlicing ? UM.Theme.getColor("primary"): UM.Theme.getColor("button_text") - + outlineColor: "transparent" disabledColor: UM.Theme.getColor("action_button_disabled") textDisabledColor: UM.Theme.getColor("action_button_disabled_text") shadowEnabled: true From c4d0207cc13abfb75da88a8c50c3a9c19147b964 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 23 Nov 2018 13:10:48 +0100 Subject: [PATCH 0424/1039] Added close button in right top corner CURA-5941 --- resources/qml/PrintSetupSelector.qml | 33 +++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 7cb47002a7..8271484e6a 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -151,7 +151,7 @@ Cura.ExpandableComponent color: UM.Theme.getColor("text") height: parent.height anchors.topMargin: UM.Theme.getSize("sidebar_margin").height - anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height +// anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("print_setup_selector_margin").height } @@ -165,6 +165,37 @@ Cura.ExpandableComponent } + + Button + { + id: closeButton; + width: UM.Theme.getSize("message_close").width; + height: UM.Theme.getSize("message_close").height; + + anchors + { + right: parent.right; + rightMargin: UM.Theme.getSize("default_margin").width; + top: parent.top; + topMargin: 10 + } + + UM.RecolorImage + { + anchors.fill: parent; + sourceSize.width: width + sourceSize.height: width + color: UM.Theme.getColor("message_text") + source: UM.Theme.getIcon("cross1") + } + + onClicked: base.model.hideMessage(model.id) + + background: Rectangle + { + color: UM.Theme.getColor("message_background") + } + } } Rectangle From a3bcdaf3b625087204a04867e8a9a374c9bfa857 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 23 Nov 2018 16:58:57 +0100 Subject: [PATCH 0425/1039] Make the popup in the printer selector resizable depending on the contents. Also there is a maximum height that will fit 9 printers. Contributes to CURA-5942. --- plugins/PrepareStage/PrepareMenu.qml | 3 + .../qml/PrinterSelector/MachineSelector.qml | 78 ++----------------- .../PrinterSelector/MachineSelectorList.qml | 78 +++++++++++++++++++ 3 files changed, 89 insertions(+), 70 deletions(-) create mode 100644 resources/qml/PrinterSelector/MachineSelectorList.qml diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index eed1da0ad8..a99426acd8 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -1,3 +1,6 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.7 import QtQuick.Layouts 1.1 import QtQuick.Controls 1.4 diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index a33c54ed88..c73836ad6a 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -82,87 +82,24 @@ Cura.ExpandableComponent { id: popup width: UM.Theme.getSize("machine_selector_widget_content").width - height: UM.Theme.getSize("machine_selector_widget_content").height ScrollView { id: scroll width: parent.width - anchors.top: parent.top - anchors.bottom: separator.top clip: true - Column + MachineSelectorList { - id: column - // Can't use parent.width since the parent is the flickable component and not the ScrollView width: scroll.width - 2 * UM.Theme.getSize("default_lining").width x: UM.Theme.getSize("default_lining").width + property real maximumHeight: UM.Theme.getSize("machine_selector_widget_content").height - buttonRow.height - Label + onHeightChanged: { - text: catalog.i18nc("@label", "Network connected printers") - visible: networkedPrintersModel.items.length > 0 - leftPadding: UM.Theme.getSize("default_margin").width - height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 - renderType: Text.NativeRendering - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("text_medium") - verticalAlignment: Text.AlignVCenter - } - - Repeater - { - id: networkedPrinters - - model: UM.ContainerStacksModel - { - id: networkedPrintersModel - filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} - } - - delegate: MachineSelectorButton - { - text: model.metadata["connect_group_name"] - checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] - outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - - Connections - { - target: Cura.MachineManager - onActiveMachineNetworkGroupNameChanged: checked = Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] - } - } - } - - Label - { - text: catalog.i18nc("@label", "Preset printers") - visible: virtualPrintersModel.items.length > 0 - leftPadding: UM.Theme.getSize("default_margin").width - height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 - renderType: Text.NativeRendering - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("text_medium") - verticalAlignment: Text.AlignVCenter - } - - Repeater - { - id: virtualPrinters - - model: UM.ContainerStacksModel - { - id: virtualPrintersModel - filter: {"type": "machine", "um_network_key": null} - } - - delegate: MachineSelectorButton - { - text: model.name - checked: Cura.MachineManager.activeMachineId == model.id - } + scroll.height = Math.min(height, maximumHeight) + popup.height = scroll.height + buttonRow.height } } } @@ -171,7 +108,7 @@ Cura.ExpandableComponent { id: separator - anchors.bottom: buttonRow.top + anchors.top: scroll.bottom width: parent.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") @@ -181,7 +118,8 @@ Cura.ExpandableComponent { id: buttonRow - anchors.bottom: parent.bottom + // The separator is inside the buttonRow. This is to avoid some weird behaviours with the scroll bar. + anchors.top: separator.top anchors.horizontalCenter: parent.horizontalCenter padding: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml new file mode 100644 index 0000000000..11a61194b7 --- /dev/null +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -0,0 +1,78 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +Column +{ + id: machineSelectorList + + Label + { + text: catalog.i18nc("@label", "Network connected printers") + visible: networkedPrintersModel.items.length > 0 + leftPadding: UM.Theme.getSize("default_margin").width + height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 + renderType: Text.NativeRendering + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text_medium") + verticalAlignment: Text.AlignVCenter + } + + Repeater + { + id: networkedPrinters + + model: UM.ContainerStacksModel + { + id: networkedPrintersModel + filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} + } + + delegate: MachineSelectorButton + { + text: model.metadata["connect_group_name"] + checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] + outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null + + Connections + { + target: Cura.MachineManager + onActiveMachineNetworkGroupNameChanged: checked = Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] + } + } + } + + Label + { + text: catalog.i18nc("@label", "Preset printers") + visible: virtualPrintersModel.items.length > 0 + leftPadding: UM.Theme.getSize("default_margin").width + height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 + renderType: Text.NativeRendering + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text_medium") + verticalAlignment: Text.AlignVCenter + } + + Repeater + { + id: virtualPrinters + + model: UM.ContainerStacksModel + { + id: virtualPrintersModel + filter: {"type": "machine", "um_network_key": null} + } + + delegate: MachineSelectorButton + { + text: model.name + checked: Cura.MachineManager.activeMachineId == model.id + } + } +} \ No newline at end of file From e1f3e07f049376240293cc2956c0afce4fd18432 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Nov 2018 17:11:20 +0100 Subject: [PATCH 0426/1039] Changed Marketplace button to no longer use the action button The actionButton is weirdly named and overly used. That being said, the marketplace button is unique, so there is little sense in re-using it --- resources/qml/MainWindow/MainWindowHeader.qml | 35 ++++++++++++------- resources/themes/cura-light/theme.json | 7 ---- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 59ec542e6b..ceb27dd726 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -2,6 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 +import QtQuick.Controls 2.0 as Controls2 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.1 @@ -73,25 +74,35 @@ Rectangle } // Shortcut button to quick access the Toolbox - Cura.ActionButton + Controls2.Button { + id: marketplaceButton + text: catalog.i18nc("@action:button", "Marketplace") + height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) + onClicked: Cura.Actions.browsePackages.trigger() + + background: Rectangle + { + radius: UM.Theme.getSize("action_button_radius").width + color: "transparent" + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("primary_text") + } + + contentItem: Label + { + id: label + text: marketplaceButton.text + color: UM.Theme.getColor("primary_text") + width: contentWidth + } + anchors { right: accountWidget.left rightMargin: UM.Theme.getSize("default_margin").width verticalCenter: parent.verticalCenter } - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@action:button", "Marketplace") - height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) - color: UM.Theme.getColor("main_window_header_secondary_button_background_active") - hoverColor: UM.Theme.getColor("main_window_header_secondary_button_background_hovered") - outlineColor: UM.Theme.getColor("main_window_header_secondary_button_outline_active") - outlineHoverColor: UM.Theme.getColor("main_window_header_secondary_button_outline_hovered") - textColor: UM.Theme.getColor("main_window_header_secondary_button_text_active") - textHoverColor: UM.Theme.getColor("main_window_header_secondary_button_text_hovered") - onClicked: Cura.Actions.browsePackages.trigger() } AccountWidget diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index c5802b6a7e..888bc9bfa6 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -98,13 +98,6 @@ "main_window_header_button_background_inactive": [255, 255, 255, 0], "main_window_header_button_background_hovered": [255, 255, 255, 102], - "main_window_header_secondary_button_text_active": [255, 255, 255, 255], - "main_window_header_secondary_button_text_hovered": [10, 8, 80, 255], - "main_window_header_secondary_button_background_active": [255, 255, 255, 0], - "main_window_header_secondary_button_background_hovered": [255, 255, 255, 255], - "main_window_header_secondary_button_outline_active": [255, 255, 255, 255], - "main_window_header_secondary_button_outline_hovered": [255, 255, 255, 255], - "account_widget_outline_active": [70, 66, 126, 255], "machine_selector_bar": [31, 36, 39, 255], From 2e262dd9d22add74f7ee5b638a64c1b9bc63ff27 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 23 Nov 2018 17:35:55 +0100 Subject: [PATCH 0427/1039] Added Icons to SidebarSimple --- resources/qml/SidebarSimple.qml | 58 ++++++++++++++++----------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 5e723a3d70..52fc9320f2 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -187,12 +187,11 @@ Item } } - Label + IconWithText { id: qualityRowTitle + source: UM.Theme.getIcon("category_layer_height") text: catalog.i18nc("@label", "Layer Height") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") } // Show titles for the each quality slider ticks @@ -532,17 +531,19 @@ Item width: Math.round(UM.Theme.getSize("print_setup_widget").width * .45) - UM.Theme.getSize("thick_margin").width - Label + IconWithText { id: infillLabel - text: catalog.i18nc("@label", "Infill") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") + source: UM.Theme.getIcon("category_infill") + text: catalog.i18nc("@label", "Infill") + " (%)" - anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7) - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width + anchors + { + top: parent.top + topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7) + left: parent.left + leftMargin: UM.Theme.getSize("thick_margin").width + } } } @@ -855,23 +856,23 @@ Item // // Enable support // - Label + IconWithText { id: enableSupportLabel visible: enableSupportCheckBox.visible + source: UM.Theme.getIcon("category_support") + text: catalog.i18nc("@label", "Support") - anchors.top: infillCellRight.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5) - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - anchors.right: infillCellLeft.right - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - anchors.verticalCenter: enableSupportCheckBox.verticalCenter - - text: catalog.i18nc("@label", "Generate Support") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - elide: Text.ElideRight + anchors + { + top: infillCellRight.bottom + topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5) + left: parent.left + leftMargin: UM.Theme.getSize("thick_margin").width + right: infillCellLeft.right + rightMargin: UM.Theme.getSize("thick_margin").width + verticalCenter: enableSupportCheckBox.verticalCenter + } } CheckBox @@ -980,15 +981,12 @@ Item } - Label + IconWithText { id: adhesionHelperLabel visible: adhesionCheckBox.visible - - text: catalog.i18nc("@label", "Build Plate Adhesion") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - elide: Text.ElideRight + source: UM.Theme.getIcon("category_adhesion") + text: catalog.i18nc("@label", "Adhesion") anchors { From af1ee535788b4d64945ef578bde3764551297ab4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Nov 2018 17:41:58 +0100 Subject: [PATCH 0428/1039] Fix the hover effect of action button CURA-5959 --- resources/qml/ActionButton.qml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 8cd53b5d7e..6dd5839bb9 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -12,7 +12,6 @@ import UM 1.1 as UM Button { id: button - property alias cursorShape: mouseArea.cursorShape property alias iconSource: buttonIcon.source property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius @@ -22,12 +21,14 @@ Button property color hoverColor: UM.Theme.getColor("primary_hover") property color disabledColor: color property color textColor: UM.Theme.getColor("button_text") - property color textHoverColor: UM.Theme.getColor("button_text_hover") + property color textHoverColor: textColor property color textDisabledColor: textColor property color outlineColor: color property color outlineHoverColor: hoverColor property color outlineDisabledColor: outlineColor + hoverEnabled: true + property alias shadowColor: shadow.color property alias shadowEnabled: shadow.visible @@ -95,13 +96,4 @@ Button delay: 500 visible: text != "" && button.hovered } - - MouseArea - { - id: mouseArea - anchors.fill: parent - // Ensure that the button will still accept the clicks on it's own. - onPressed: mouse.accepted = false - hoverEnabled: true - } } From b82ea58bc815b28815cd6991230d5a3b4d8ca78d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 23 Nov 2018 18:07:50 +0100 Subject: [PATCH 0429/1039] Changed all the action buttons to either use primary or secondary button CURA-5959 --- resources/qml/Account/GeneralOperations.qml | 8 +-- resources/qml/Account/UserOperations.qml | 8 +-- .../ActionPanel/OutputDevicesActionButton.qml | 5 +- .../qml/ActionPanel/OutputProcessWidget.qml | 9 +--- .../qml/ActionPanel/SliceProcessWidget.qml | 49 ++++++++++--------- resources/qml/PrimaryButton.qml | 18 +++++++ resources/qml/SecondaryButton.qml | 18 +++++++ resources/themes/cura-light/theme.json | 10 ++++ 8 files changed, 81 insertions(+), 44 deletions(-) create mode 100644 resources/qml/PrimaryButton.qml create mode 100644 resources/qml/SecondaryButton.qml diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml index 4614c4ba88..b9f1025d5e 100644 --- a/resources/qml/Account/GeneralOperations.qml +++ b/resources/qml/Account/GeneralOperations.qml @@ -11,20 +11,16 @@ Row { spacing: UM.Theme.getSize("default_margin").width - Cura.ActionButton + Cura.SecondaryButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height text: catalog.i18nc("@button", "Create account") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("main_window_header_button_text_active") - textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") onClicked: Qt.openUrlExternally("https://account.ultimaker.com/app/create") fixedWidthMode: true } - Cura.ActionButton + Cura.PrimaryButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index c167813425..b9ffa395d6 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -11,20 +11,16 @@ Row { spacing: UM.Theme.getSize("default_margin").width - Cura.ActionButton + Cura.SecondaryButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height text: catalog.i18nc("@button", "Manage account") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("main_window_header_button_text_active") - textHoverColor: UM.Theme.getColor("main_window_header_button_text_active") onClicked: Qt.openUrlExternally("https://account.ultimaker.com") fixedWidthMode: true } - Cura.ActionButton + Cura.PrimaryButton { width: UM.Theme.getSize("account_button").width height: UM.Theme.getSize("account_button").height diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 9682dddf14..d24d440241 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -12,13 +12,12 @@ Item { id: widget - Cura.ActionButton + Cura.PrimaryButton { id: saveToButton height: parent.height fixedWidthMode: true - shadowEnabled: true - shadowColor: UM.Theme.getColor("primary_shadow") + anchors { top: parent.top diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 79b9898e49..ddbe709a84 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -101,18 +101,13 @@ Column spacing: UM.Theme.getSize("default_margin").width width: parent.width - Cura.ActionButton + Cura.SecondaryButton { id: previewStageShortcut - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("action_panel_button").height text: catalog.i18nc("@button", "Preview") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") + onClicked: UM.Controller.setActiveStage("PreviewStage") visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage" diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 9a9f40ffac..199b94ab33 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -81,36 +81,41 @@ Column } } - Cura.ActionButton - { - id: prepareButton - width: parent.width - height: UM.Theme.getSize("action_panel_button").height - fixedWidthMode: true + Item + { + id: prepareButtons // Get the current value from the preferences property bool autoSlice: UM.Preferences.getValue("general/auto_slice") // Disable the slice process when - property bool disabledSlice: [UM.Backend.Done, UM.Backend.Error].indexOf(widget.backendState) != -1 - property bool isSlicing: [UM.Backend.NotStarted, UM.Backend.Error].indexOf(widget.backendState) == -1 - - text: isSlicing ? catalog.i18nc("@button", "Cancel") : catalog.i18nc("@button", "Slice") - - enabled: !autoSlice && !disabledSlice + width: parent.width + height: UM.Theme.getSize("action_panel_button").height visible: !autoSlice + Cura.PrimaryButton + { + id: sliceButton + fixedWidthMode: true + anchors.fill: parent + text: catalog.i18nc("@button", "Slice") + enabled: !autoSlice && widget.backendState != UM.Backend.Error + visible: widget.backendState == UM.Backend.NotStarted || widget.backendState == UM.Backend.Error + onClicked: sliceOrStopSlicing() + } - color: isSlicing ? UM.Theme.getColor("secondary"): UM.Theme.getColor("primary") - textColor: isSlicing ? UM.Theme.getColor("primary"): UM.Theme.getColor("button_text") - outlineColor: "transparent" - disabledColor: UM.Theme.getColor("action_button_disabled") - textDisabledColor: UM.Theme.getColor("action_button_disabled_text") - shadowEnabled: true - shadowColor: isSlicing ? UM.Theme.getColor("secondary_shadow") : enabled ? UM.Theme.getColor("action_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") - - onClicked: sliceOrStopSlicing() + Cura.SecondaryButton + { + id: cancelButton + fixedWidthMode: true + anchors.fill: parent + text: catalog.i18nc("@button", "Cancel") + enabled: sliceButton.enabled + visible: !sliceButton.visible + onClicked: sliceOrStopSlicing() + } } + // React when the user changes the preference of having the auto slice enabled Connections { @@ -118,7 +123,7 @@ Column onPreferenceChanged: { var autoSlice = UM.Preferences.getValue("general/auto_slice") - prepareButton.autoSlice = autoSlice + prepareButtons.autoSlice = autoSlice } } diff --git a/resources/qml/PrimaryButton.qml b/resources/qml/PrimaryButton.qml new file mode 100644 index 0000000000..8450e524e2 --- /dev/null +++ b/resources/qml/PrimaryButton.qml @@ -0,0 +1,18 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.4 as UM +import Cura 1.1 as Cura + + +Cura.ActionButton +{ + shadowEnabled: true + shadowColor: enabled ? UM.Theme.getColor("primary_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") + color: UM.Theme.getColor("primary_button") + textColor: UM.Theme.getColor("primary_button_text") + outlineColor: "transparent" + disabledColor: UM.Theme.getColor("action_button_disabled") + textDisabledColor: UM.Theme.getColor("action_button_disabled_text") + hoverColor: UM.Theme.getColor("primary_button_hover") +} \ No newline at end of file diff --git a/resources/qml/SecondaryButton.qml b/resources/qml/SecondaryButton.qml new file mode 100644 index 0000000000..0e6b79b3a7 --- /dev/null +++ b/resources/qml/SecondaryButton.qml @@ -0,0 +1,18 @@ +import QtQuick 2.2 +import QtQuick.Controls 1.1 + +import UM 1.4 as UM +import Cura 1.1 as Cura + + +Cura.ActionButton +{ + shadowEnabled: true + shadowColor: enabled ? UM.Theme.getColor("secondary_button_shadow"): UM.Theme.getColor("action_button_disabled_shadow") + color: UM.Theme.getColor("secondary_button") + textColor: UM.Theme.getColor("secondary_button_text") + outlineColor: "transparent" + disabledColor: UM.Theme.getColor("action_button_disabled") + textDisabledColor: UM.Theme.getColor("action_button_disabled_text") + hoverColor: UM.Theme.getColor("secondary_button_hover") +} \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 888bc9bfa6..cbdc37caa1 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -90,6 +90,16 @@ "secondary": [245, 245, 245, 255], "secondary_shadow": [228, 228, 228, 255], + "primary_button": [38,113,231,255], + "primary_button_shadow": [27,95,202, 255], + "primary_button_hover": [81,145,247, 255], + "primary_button_text": [255, 255, 255, 255], + + "secondary_button": [240,240,240, 255], + "secondary_button_shadow": [228, 228, 228, 255], + "secondary_button_hover": [228,228,228, 255], + "secondary_button_text": [30,102,215, 255], + "main_window_header_background": [10, 8, 80, 255], "main_window_header_button_text_active": [10, 8, 80, 255], "main_window_header_button_text_inactive": [255, 255, 255, 255], From 9e92542eeec397440f2f383d68650c291e30c8d7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 25 Nov 2018 18:14:01 +0100 Subject: [PATCH 0430/1039] Fix the height of the IconLabel to avoid getting binding loops. Contributes to CURA-5942. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 2 -- resources/qml/ActionPanel/SliceProcessWidget.qml | 1 - resources/qml/IconLabel.qml | 2 ++ 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 87f9d2015d..3c4386f079 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -47,7 +47,6 @@ Column { id: estimatedTime width: parent.width - height: childrenRect.height text: PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") @@ -58,7 +57,6 @@ Column { id: estimatedCosts width: parent.width - height: childrenRect.height property var printMaterialLengths: PrintInformation.materialLengths property var printMaterialWeights: PrintInformation.materialWeights diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 9c46539220..2d4a7b6b89 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -44,7 +44,6 @@ Column { id: message width: parent.width - height: childrenRect.height visible: widget.backendState == UM.Backend.Error text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml index 90930e91c7..0941254e7b 100644 --- a/resources/qml/IconLabel.qml +++ b/resources/qml/IconLabel.qml @@ -18,6 +18,8 @@ Item property alias font: label.font property alias iconSize: icon.width + implicitHeight: icon.height + UM.RecolorImage { id: icon From f3bf20ca1b8f17a9b63aa14f57df56a2e17b95f4 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 25 Nov 2018 18:24:21 +0100 Subject: [PATCH 0431/1039] Separate the view selector into a different file. --- plugins/PreviewStage/PreviewMenu.qml | 72 +--------------- .../qml/PrinterSelector/MachineSelector.qml | 2 - resources/qml/ViewsSelector.qml | 82 +++++++++++++++++++ resources/qml/qmldir | 3 +- 4 files changed, 86 insertions(+), 73 deletions(-) create mode 100644 resources/qml/ViewsSelector.qml diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index d660db549b..a1f59cd4ca 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -29,80 +29,12 @@ Item anchors.centerIn: parent height: parent.height - Cura.ExpandableComponent + Cura.ViewsSelector { - id: viewSelector - iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") + id: viewsSelector height: parent.height width: UM.Theme.getSize("views_selector").width headerCornerSide: Cura.RoundedRectangle.Direction.Left - - property var viewModel: UM.ViewModel { } - - property var activeView: - { - for (var i = 0; i < viewModel.rowCount(); i++) - { - if (viewModel.items[i].active) - { - return viewModel.items[i] - } - } - return null - } - - Component.onCompleted: - { - // Nothing was active, so just return the first one (the list is sorted by priority, so the most - // important one should be returned) - if (activeView == null) - { - UM.Controller.setActiveView(viewModel.getItem(0).id) - } - } - - headerItem: Label - { - text: viewSelector.activeView ? viewSelector.activeView.name : "" - verticalAlignment: Text.AlignVCenter - height: parent.height - elide: Text.ElideRight - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - renderType: Text.NativeRendering - } - - popupItem: Column - { - id: viewSelectorPopup - width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width - - // For some reason the height/width of the column gets set to 0 if this is not set... - Component.onCompleted: - { - height = implicitHeight - width = viewSelector.width - 2 * UM.Theme.getSize("default_margin").width - } - - Repeater - { - id: viewsList - model: viewSelector.viewModel - RoundButton - { - text: name - radius: UM.Theme.getSize("default_radius").width - checkable: true - checked: viewSelector.activeView != null ? viewSelector.activeView.id == id : false - onClicked: - { - viewSelector.togglePopup() - UM.Controller.setActiveView(id) - } - } - } - - } } // Separator line diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index c73836ad6a..b14734dfb1 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -3,8 +3,6 @@ import QtQuick 2.7 import QtQuick.Controls 2.3 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 import UM 1.2 as UM import Cura 1.0 as Cura diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml new file mode 100644 index 0000000000..0e11cccc5a --- /dev/null +++ b/resources/qml/ViewsSelector.qml @@ -0,0 +1,82 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +Cura.ExpandableComponent +{ + id: viewSelector + + iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") + + property var viewModel: UM.ViewModel { } + + property var activeView: + { + for (var i = 0; i < viewModel.rowCount(); i++) + { + if (viewModel.items[i].active) + { + return viewModel.items[i] + } + } + return null + } + + Component.onCompleted: + { + // Nothing was active, so just return the first one (the list is sorted by priority, so the most + // important one should be returned) + if (activeView == null) + { + UM.Controller.setActiveView(viewModel.getItem(0).id) + } + } + + headerItem: Label + { + text: viewSelector.activeView ? viewSelector.activeView.name : "" + verticalAlignment: Text.AlignVCenter + height: parent.height + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering + } + + popupItem: Column + { + id: viewSelectorPopup + width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width + + // For some reason the height/width of the column gets set to 0 if this is not set... + Component.onCompleted: + { + height = implicitHeight + width = viewSelector.width - 2 * UM.Theme.getSize("default_margin").width + } + + Repeater + { + id: viewsList + model: viewSelector.viewModel + RoundButton + { + text: name + radius: UM.Theme.getSize("default_radius").width + checkable: true + checked: viewSelector.activeView != null ? viewSelector.activeView.id == id : false + onClicked: + { + viewSelector.togglePopup() + UM.Controller.setActiveView(id) + } + } + } + + } +} \ No newline at end of file diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 67388100ca..43ae4411af 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -11,4 +11,5 @@ ActionPanelWidget 1.0 ActionPanelWidget.qml IconLabel 1.0 IconLabel.qml OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml ExpandableComponent 1.0 ExpandableComponent.qml -PrinterTypeLabel 1.0 PrinterTypeLabel.qml \ No newline at end of file +PrinterTypeLabel 1.0 PrinterTypeLabel.qml +ViewsSelector 1.0 ViewsSelector.qml \ No newline at end of file From 68c96a25775c6be13bdcdba64544e68837cc41c2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 25 Nov 2018 19:42:00 +0100 Subject: [PATCH 0432/1039] Modify the header item of the view selector. --- resources/qml/ViewsSelector.qml | 36 +++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index 0e11cccc5a..b9048803a2 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -37,15 +37,35 @@ Cura.ExpandableComponent } } - headerItem: Label + headerItem: Item { - text: viewSelector.activeView ? viewSelector.activeView.name : "" - verticalAlignment: Text.AlignVCenter - height: parent.height - elide: Text.ElideRight - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - renderType: Text.NativeRendering + Label + { + id: title + text: catalog.i18nc("@button", "View types") + verticalAlignment: Text.AlignVCenter + height: parent.height + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering + } + + Label + { + text: viewSelector.activeView ? viewSelector.activeView.name : "" + verticalAlignment: Text.AlignVCenter + anchors + { + left: title.right + leftMargin: UM.Theme.getSize("default_margin").width + } + height: parent.height + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering + } } popupItem: Column From c5d0ed26513e12045b2fb84d6408a79f729a81df Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 25 Nov 2018 20:13:56 +0100 Subject: [PATCH 0433/1039] Define the look and feel of the view selector button. Adjust the sizes. --- .../qml/PrinterSelector/MachineSelector.qml | 5 +-- resources/qml/ViewsSelector.qml | 39 ++++++++++++++++--- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index b14734dfb1..b6657f112e 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -15,7 +15,7 @@ Cura.ExpandableComponent property bool isPrinterConnected: Cura.MachineManager.printerConnected property var outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - popupPadding: 0 + popupPadding: UM.Theme.getSize("default_lining").width popupAlignment: Cura.ExpandableComponent.PopupAlignment.AlignLeft iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") @@ -90,8 +90,7 @@ Cura.ExpandableComponent MachineSelectorList { // Can't use parent.width since the parent is the flickable component and not the ScrollView - width: scroll.width - 2 * UM.Theme.getSize("default_lining").width - x: UM.Theme.getSize("default_lining").width + width: scroll.width property real maximumHeight: UM.Theme.getSize("machine_selector_widget_content").height - buttonRow.height onHeightChanged: diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index b9048803a2..e9fdd57177 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -11,6 +11,8 @@ Cura.ExpandableComponent { id: viewSelector + popupPadding: UM.Theme.getSize("default_lining").width + popupAlignment: Cura.ExpandableComponent.PopupAlignment.AlignLeft iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") property var viewModel: UM.ViewModel { } @@ -71,25 +73,51 @@ Cura.ExpandableComponent popupItem: Column { id: viewSelectorPopup - width: viewSelector.width - 2 * UM.Theme.getSize("default_margin").width + width: viewSelector.width - 2 * viewSelector.popupPadding // For some reason the height/width of the column gets set to 0 if this is not set... Component.onCompleted: { height = implicitHeight - width = viewSelector.width - 2 * UM.Theme.getSize("default_margin").width + width = viewSelector.width - 2 * viewSelector.popupPadding } Repeater { id: viewsList model: viewSelector.viewModel - RoundButton + + delegate: Button { - text: name - radius: UM.Theme.getSize("default_radius").width + id: viewsSelectorButton + text: model.name + width: parent.width + height: UM.Theme.getSize("action_button").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width checkable: true checked: viewSelector.activeView != null ? viewSelector.activeView.id == id : false + + contentItem: Label + { + id: buttonText + text: viewsSelectorButton.text + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("action_button") + renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + + background: Rectangle + { + id: backgroundRect + color: viewsSelectorButton.hovered ? UM.Theme.getColor("action_button_hovered") : "transparent" + radius: UM.Theme.getSize("action_button_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: viewsSelectorButton.checked ? UM.Theme.getColor("primary") : "transparent" + } + onClicked: { viewSelector.togglePopup() @@ -97,6 +125,5 @@ Cura.ExpandableComponent } } } - } } \ No newline at end of file From 8f9d6bee6243f32c9d966202e1f9a4ea5086b611 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 08:30:24 +0100 Subject: [PATCH 0434/1039] Document dependency on fdm_materials Without it, Cura simply won't start if you had a printer loaded with material profiles. Fixes #4460. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 70466e9c22..93abcc0c61 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,9 @@ Dependencies ------------ * [Uranium](https://github.com/Ultimaker/Uranium) Cura is built on top of the Uranium framework. * [CuraEngine](https://github.com/Ultimaker/CuraEngine) This will be needed at runtime to perform the actual slicing. +* [fdm_materials](https://github.com/Ultimaker/fdm_materials) Required to load a printer that has swappable material profiles. * [PySerial](https://github.com/pyserial/pyserial) Only required for USB printing support. -* [python-zeroconf](https://github.com/jstasiak/python-zeroconf) Only required to detect mDNS-enabled printers +* [python-zeroconf](https://github.com/jstasiak/python-zeroconf) Only required to detect mDNS-enabled printers. Build scripts ------------- From c9eb57ceade38f567fc49f5e5ad0f6f1c8913d79 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 09:32:59 +0100 Subject: [PATCH 0435/1039] Don't copy preference file to the same location This crashes Cura on start-up for some people. --- cura/Backups/Backup.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cura/Backups/Backup.py b/cura/Backups/Backup.py index 897d5fa979..80681acb4f 100644 --- a/cura/Backups/Backup.py +++ b/cura/Backups/Backup.py @@ -46,12 +46,13 @@ class Backup: # We copy the preferences file to the user data directory in Linux as it's in a different location there. # When restoring a backup on Linux, we move it back. - if Platform.isLinux(): + if Platform.isLinux(): #TODO: This should check for the config directory not being the same as the data directory, rather than hard-coding that to Linux systems. preferences_file_name = self._application.getApplicationName() preferences_file = Resources.getPath(Resources.Preferences, "{}.cfg".format(preferences_file_name)) backup_preferences_file = os.path.join(version_data_dir, "{}.cfg".format(preferences_file_name)) - Logger.log("d", "Copying preferences file from %s to %s", preferences_file, backup_preferences_file) - shutil.copyfile(preferences_file, backup_preferences_file) + if not os.path.samefile(preferences_file, backup_preferences_file): + Logger.log("d", "Copying preferences file from %s to %s", preferences_file, backup_preferences_file) + shutil.copyfile(preferences_file, backup_preferences_file) # Create an empty buffer and write the archive to it. buffer = io.BytesIO() From 09af7a9435178bc9a6e811c7ade4889880a745f9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 09:34:27 +0100 Subject: [PATCH 0436/1039] Slice button will now be disabled on error CURA-5959 --- resources/qml/ActionPanel/SliceProcessWidget.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 199b94ab33..05a9345585 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -42,7 +42,7 @@ Column Cura.IconLabel { - id: message + id: unableToSliceMessage width: parent.width visible: widget.backendState == UM.Backend.Error @@ -98,7 +98,7 @@ Column fixedWidthMode: true anchors.fill: parent text: catalog.i18nc("@button", "Slice") - enabled: !autoSlice && widget.backendState != UM.Backend.Error + enabled: widget.backendState != UM.Backend.Error visible: widget.backendState == UM.Backend.NotStarted || widget.backendState == UM.Backend.Error onClicked: sliceOrStopSlicing() } From 5469613c17c0caa34b58750a1aeeb664333886ca Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 09:40:14 +0100 Subject: [PATCH 0437/1039] Don't fail the samefile check if second file didn't exist If the backup file didn't exist but the original did, then apparently they are not the same file so the copy should be allowed. --- cura/Backups/Backup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Backups/Backup.py b/cura/Backups/Backup.py index 80681acb4f..714d6527fe 100644 --- a/cura/Backups/Backup.py +++ b/cura/Backups/Backup.py @@ -50,7 +50,7 @@ class Backup: preferences_file_name = self._application.getApplicationName() preferences_file = Resources.getPath(Resources.Preferences, "{}.cfg".format(preferences_file_name)) backup_preferences_file = os.path.join(version_data_dir, "{}.cfg".format(preferences_file_name)) - if not os.path.samefile(preferences_file, backup_preferences_file): + if os.path.exists(preferences_file) and (not os.path.exists(backup_preferences_file) or not os.path.samefile(preferences_file, backup_preferences_file)): Logger.log("d", "Copying preferences file from %s to %s", preferences_file, backup_preferences_file) shutil.copyfile(preferences_file, backup_preferences_file) From c8e065d7a78f3d62b26cded3cd0063e5a05fead4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 10:21:15 +0100 Subject: [PATCH 0438/1039] Fix code-style Contributes to CURA-5942. Co-Authored-By: diegopradogesto --- resources/qml/ExpandableComponent.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 80c65f12a7..ccfb9c6da2 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -12,7 +12,8 @@ Item id: base // Enumeration with the different possible alignments of the popup with respect of the headerItem - enum PopupAlignment { + enum PopupAlignment + { AlignLeft, AlignRight } From 5b940b524204ca56b5fafe05bad28d5e477b8ea7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 10:28:36 +0100 Subject: [PATCH 0439/1039] Use thick margin and change some anchors. Contributes to CURA-5942. --- resources/qml/PrinterSelector/MachineSelector.qml | 8 ++++++-- resources/qml/PrinterSelector/MachineSelectorButton.qml | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index b6657f112e..d721ed5b83 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -48,8 +48,12 @@ Cura.ExpandableComponent { id: icon - anchors.bottom: parent.bottom - x: UM.Theme.getSize("thick_margin").width + anchors + { + bottom: parent.bottom + left: parent.left + leftMargin: UM.Theme.getSize("thick_margin").width + } source: UM.Theme.getIcon("printer_connected") width: UM.Theme.getSize("printer_status_icon").width diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index e7b44a4447..fef6867e35 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -13,8 +13,8 @@ Button width: parent.width height: UM.Theme.getSize("action_button").height - leftPadding: Math.round(1.5 * UM.Theme.getSize("default_margin").width) - rightPadding: Math.round(1.5 * UM.Theme.getSize("default_margin").width) + leftPadding: UM.Theme.getSize("thick_margin").width + rightPadding: UM.Theme.getSize("thick_margin").width checkable: true property var outputDevice: null From 63fab9f038e8615432a8c592138e915351131386 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 10:49:43 +0100 Subject: [PATCH 0440/1039] Use theme sizes. Contributes to CURA-5942. --- resources/qml/PrinterSelector/MachineSelector.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index d721ed5b83..120ce02edd 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -71,8 +71,8 @@ Cura.ExpandableComponent id: iconBackground anchors.centerIn: parent // Make it a bit bigger so there is an outline - width: parent.width + 2 - height: parent.height + 2 + width: parent.width + 2 * UM.Theme.getSize("default_lining").width + height: parent.height + 2 * UM.Theme.getSize("default_lining").height radius: Math.round(width / 2) color: UM.Theme.getColor("main_background") z: parent.z - 1 From fa1ef5c45c70ebdebaef3d9d19b026e6586523b2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 10:51:08 +0100 Subject: [PATCH 0441/1039] Rename function name to be more clear to what it does. Contributes to CURA-5942. --- resources/qml/PrinterSelector/MachineSelectorButton.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index fef6867e35..992ea55b1d 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -20,7 +20,7 @@ Button property var outputDevice: null property var printerTypesList: [] - function setPrinterTypesList() + function updatePrinterTypesList() { printerTypesList = (checked && (outputDevice != null)) ? outputDevice.uniquePrinterTypes : [] } @@ -97,14 +97,14 @@ Button Connections { target: outputDevice - onUniqueConfigurationsChanged: setPrinterTypesList() + onUniqueConfigurationsChanged: updatePrinterTypesList() } Connections { target: Cura.MachineManager - onOutputDevicesChanged: setPrinterTypesList() + onOutputDevicesChanged: updatePrinterTypesList() } - Component.onCompleted: setPrinterTypesList() + Component.onCompleted: updatePrinterTypesList() } From 4990f205662aeba91bce43c57fe41a94abd1d545 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 10:55:32 +0100 Subject: [PATCH 0442/1039] Use QStringList instead of QVariantList since the return value is a list of strings. Co-Authored-By: diegopradogesto --- cura/PrinterOutputDevice.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index f8a663f0e4..99c48189cc 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -212,7 +212,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self.uniqueConfigurationsChanged.emit() # Returns the unique configurations of the printers within this output device - @pyqtProperty("QVariantList", notify = uniqueConfigurationsChanged) + @pyqtProperty("QStringList", notify = uniqueConfigurationsChanged) def uniquePrinterTypes(self) -> List[str]: return list(set([configuration.printerType for configuration in self._unique_configurations])) @@ -243,4 +243,4 @@ class PrinterOutputDevice(QObject, OutputDevice): if not self._firmware_updater: return - self._firmware_updater.updateFirmware(firmware_file) \ No newline at end of file + self._firmware_updater.updateFirmware(firmware_file) From 21bfa6e4c20819e09b8cb2f27f62427dc71c8476 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 10:58:38 +0100 Subject: [PATCH 0443/1039] Fix code style. Add brackets in new line. Contributes to CURA-5942. --- resources/qml/PrinterSelector/MachineSelectorList.qml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 11a61194b7..5ef04b7351 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -30,7 +30,10 @@ Column model: UM.ContainerStacksModel { id: networkedPrintersModel - filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} + filter: + { + "type": "machine", "um_network_key": "*", "hidden": "False" + } } delegate: MachineSelectorButton @@ -66,7 +69,10 @@ Column model: UM.ContainerStacksModel { id: virtualPrintersModel - filter: {"type": "machine", "um_network_key": null} + filter: + { + "type": "machine", "um_network_key": null + } } delegate: MachineSelectorButton From 72d972c8b428e8ad8d6bf0b831b67d6301058049 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 11:03:58 +0100 Subject: [PATCH 0444/1039] Remove PrinterStatusIcon that is not used anymore. Contributes to CURA-5942. --- resources/qml/Menus/PrinterStatusIcon.qml | 27 ----------------------- 1 file changed, 27 deletions(-) delete mode 100644 resources/qml/Menus/PrinterStatusIcon.qml diff --git a/resources/qml/Menus/PrinterStatusIcon.qml b/resources/qml/Menus/PrinterStatusIcon.qml deleted file mode 100644 index 6ff6b07af8..0000000000 --- a/resources/qml/Menus/PrinterStatusIcon.qml +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -Item -{ - property var status: "disconnected" - width: childrenRect.width - height: childrenRect.height - UM.RecolorImage - { - id: statusIcon - width: UM.Theme.getSize("printer_status_icon").width - height: UM.Theme.getSize("printer_status_icon").height - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("tab_status_" + parent.status) - source: UM.Theme.getIcon(parent.status) - } -} - - - From 5397cda2b4d3077a76ca5a3d9444e09cf386a318 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 12:00:06 +0100 Subject: [PATCH 0445/1039] Add a label to the action panel when auto slice is ON, indicating that the process runs automatically. Contributes to CURA-5942. --- resources/qml/ActionPanel/SliceProcessWidget.qml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 05a9345585..3329ac4b23 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -40,6 +40,18 @@ Column } } + Label + { + id: autoSlicingLabel + width: parent.width + visible: prepareButtons.autoSlice && widget.backendState == UM.Backend.Processing + + text: catalog.i18nc("@label:PrintjobStatus", "Auto slicing...") + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("very_small") + renderType: Text.NativeRendering + } + Cura.IconLabel { id: unableToSliceMessage From 845b3209819f8e7b1449c15118c6c995b2c548c3 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 26 Nov 2018 13:08:30 +0100 Subject: [PATCH 0446/1039] Fix adjustable monitor component width CURA-5943 - Add rounding - If there's no sidebar, use full width --- plugins/MonitorStage/MonitorMainView.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/MonitorStage/MonitorMainView.qml b/plugins/MonitorStage/MonitorMainView.qml index 57dd033792..f5696bbf54 100644 --- a/plugins/MonitorStage/MonitorMainView.qml +++ b/plugins/MonitorStage/MonitorMainView.qml @@ -38,7 +38,10 @@ Item anchors.bottom: parent.bottom anchors.left: parent.left - width: parent.width * 0.7 + // If the sidebar is not set, the view should take the complete space. + property var widthFactor: monitorSidebarComponent.source == "" ? 1.0 : 0.7 + + width: Math.round(parent.width * widthFactor) height: parent.height property real maximumWidth: parent.width From 6bb010e74a09a95c68bc9010cfcf8ea9dfffb454 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 26 Nov 2018 13:14:24 +0100 Subject: [PATCH 0447/1039] Move MonitorButtonStyle to styles.qml CURA-5943 --- .../PrinterOutput/ManualPrinterControl.qml | 21 ++--- .../qml/PrinterOutput/MonitorButtonStyle.qml | 88 ------------------- resources/themes/cura-light/styles.qml | 80 +++++++++++++++++ 3 files changed, 88 insertions(+), 101 deletions(-) delete mode 100644 resources/qml/PrinterOutput/MonitorButtonStyle.qml diff --git a/resources/qml/PrinterOutput/ManualPrinterControl.qml b/resources/qml/PrinterOutput/ManualPrinterControl.qml index 1a719c379e..5d07bd5fc8 100644 --- a/resources/qml/PrinterOutput/ManualPrinterControl.qml +++ b/resources/qml/PrinterOutput/ManualPrinterControl.qml @@ -21,11 +21,6 @@ Item implicitWidth: parent.width implicitHeight: childrenRect.height - MonitorButtonStyle - { - id: monitorButtonStyle - } - Column { enabled: @@ -108,7 +103,7 @@ Item Layout.preferredWidth: width Layout.preferredHeight: height iconSource: UM.Theme.getIcon("arrow_top"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height @@ -125,7 +120,7 @@ Item Layout.preferredWidth: width Layout.preferredHeight: height iconSource: UM.Theme.getIcon("arrow_left"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height @@ -142,7 +137,7 @@ Item Layout.preferredWidth: width Layout.preferredHeight: height iconSource: UM.Theme.getIcon("arrow_right"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height @@ -159,7 +154,7 @@ Item Layout.preferredWidth: width Layout.preferredHeight: height iconSource: UM.Theme.getIcon("arrow_bottom"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height @@ -176,7 +171,7 @@ Item Layout.preferredWidth: width Layout.preferredHeight: height iconSource: UM.Theme.getIcon("home"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height @@ -206,7 +201,7 @@ Item Button { iconSource: UM.Theme.getIcon("arrow_top"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height @@ -219,7 +214,7 @@ Item Button { iconSource: UM.Theme.getIcon("home"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height @@ -232,7 +227,7 @@ Item Button { iconSource: UM.Theme.getIcon("arrow_bottom"); - style: monitorButtonStyle + style: UM.Theme.styles.monitor_button_style width: height height: UM.Theme.getSize("setting_control").height diff --git a/resources/qml/PrinterOutput/MonitorButtonStyle.qml b/resources/qml/PrinterOutput/MonitorButtonStyle.qml deleted file mode 100644 index 7bb1b91e55..0000000000 --- a/resources/qml/PrinterOutput/MonitorButtonStyle.qml +++ /dev/null @@ -1,88 +0,0 @@ -import QtQuick 2.10 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 -import QtQuick.Layouts 1.3 - -import UM 1.2 as UM -import Cura 1.0 as Cura - - -Component -{ - ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_border"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_border"); - } - return UM.Theme.getColor("action_button_border"); - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered"); - } - return UM.Theme.getColor("action_button"); - } - Behavior on color - { - ColorAnimation - { - duration: 50 - } - } - } - - label: Item - { - UM.RecolorImage - { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - width: Math.floor(control.width / 2) - height: Math.floor(control.height / 2) - sourceSize.width: width - sourceSize.height: width - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_text"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text"); - } - return UM.Theme.getColor("action_button_text"); - } - source: control.iconSource - } - } - } -} diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 723b393efa..ee9c530d9b 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -1200,4 +1200,84 @@ QtObject } } } + + property Component monitor_button_style: Component + { + ButtonStyle + { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_border"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border"); + } + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered"); + } + return UM.Theme.getColor("action_button"); + } + Behavior on color + { + ColorAnimation + { + duration: 50 + } + } + } + + label: Item + { + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + width: Math.floor(control.width / 2) + height: Math.floor(control.height / 2) + sourceSize.width: width + sourceSize.height: width + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_text"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } + source: control.iconSource + } + } + } + } } From d6614941dc1b63aca417e0b27d9cc45c2e9477fe Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 26 Nov 2018 13:15:23 +0100 Subject: [PATCH 0448/1039] Update QtQuick import versions in styles.qml CURA-5943 --- resources/themes/cura-light/styles.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index ee9c530d9b..010e5564f1 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -1,9 +1,9 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 +import QtQuick 2.10 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM From 6bed1c1390b33720621ae781668a93135f1a7fba Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 26 Nov 2018 13:21:52 +0100 Subject: [PATCH 0449/1039] Move monitor_checkable_button_style out to styles.qml CURA-5943 --- .../PrinterOutput/ManualPrinterControl.qml | 67 +----------------- resources/themes/cura-light/styles.qml | 70 +++++++++++++++++++ 2 files changed, 71 insertions(+), 66 deletions(-) diff --git a/resources/qml/PrinterOutput/ManualPrinterControl.qml b/resources/qml/PrinterOutput/ManualPrinterControl.qml index 5d07bd5fc8..106ae7db03 100644 --- a/resources/qml/PrinterOutput/ManualPrinterControl.qml +++ b/resources/qml/PrinterOutput/ManualPrinterControl.qml @@ -279,72 +279,7 @@ Item checked: distancesRow.currentDistance == model.value onClicked: distancesRow.currentDistance = model.value - style: ButtonStyle { - background: Rectangle { - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border"); - } - else if (control.checked || control.pressed) - { - return UM.Theme.getColor("action_button_active_border"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_border"); - } - return UM.Theme.getColor("action_button_border"); - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled"); - } - else if (control.checked || control.pressed) - { - return UM.Theme.getColor("action_button_active"); - } - else if (control.hovered) - { - return UM.Theme.getColor("action_button_hovered"); - } - return UM.Theme.getColor("action_button"); - } - Behavior on color { ColorAnimation { duration: 50; } } - Label { - anchors.left: parent.left - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 - anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_text"); - } - else if (control.checked || control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if (control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text"); - } - return UM.Theme.getColor("action_button_text"); - } - font: UM.Theme.getFont("default") - text: control.text - horizontalAlignment: Text.AlignHCenter - elide: Text.ElideMiddle - } - } - label: Item { } - } + style: UM.Theme.styles.monitor_checkable_button_style } } } diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 010e5564f1..f982b1eac8 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -1280,4 +1280,74 @@ QtObject } } } + + property Component monitor_checkable_button_style: Component + { + ButtonStyle { + background: Rectangle { + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_border"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border"); + } + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } + else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered"); + } + return UM.Theme.getColor("action_button"); + } + Behavior on color { ColorAnimation { duration: 50; } } + Label { + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 + anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_text"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } + font: UM.Theme.getFont("default") + text: control.text + horizontalAlignment: Text.AlignHCenter + elide: Text.ElideMiddle + } + } + label: Item { } + } + } } From eea6490e75cea6cd30555edc674bd58969fcd72b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 13:27:26 +0100 Subject: [PATCH 0450/1039] Hover of output device now spans the popup CURA-5959 --- resources/qml/ActionPanel/OutputDevicesActionButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index d24d440241..e4b4884794 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -68,7 +68,7 @@ Item closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent - contentItem: Column + contentItem: ColumnLayout { Repeater { @@ -80,7 +80,7 @@ Item color: "transparent" cornerRadius: 0 hoverColor: UM.Theme.getColor("primary") - + Layout.fillWidth: true onClicked: { UM.OutputDeviceManager.setActiveDevice(model.id) From 098714254d8a5d366f22d1894083fba4fee4aaad Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 13:35:02 +0100 Subject: [PATCH 0451/1039] Remove unused code CURA-5959 --- resources/qml/SaveButton.qml | 478 ----------------------------------- 1 file changed, 478 deletions(-) delete mode 100644 resources/qml/SaveButton.qml diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml deleted file mode 100644 index c2d310e30c..0000000000 --- a/resources/qml/SaveButton.qml +++ /dev/null @@ -1,478 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 - -import UM 1.1 as UM -import Cura 1.0 as Cura - -// This widget does so much more than "just" being a save button, so it should be refactored at some point in time. -Item -{ - id: base; - UM.I18nCatalog { id: catalog; name: "cura"} - - property real progress: UM.Backend.progress - property int backendState: UM.Backend.state - property bool activity: CuraApplication.platformActivity - - property alias buttonRowWidth: saveRow.width - - property string fileBaseName - property string statusText: - { - if(!activity) - { - return catalog.i18nc("@label:PrintjobStatus", "Please load a 3D model"); - } - - switch(base.backendState) - { - case 1: - return catalog.i18nc("@label:PrintjobStatus", "Ready to slice"); - case 2: - return catalog.i18nc("@label:PrintjobStatus", "Slicing..."); - case 3: - return catalog.i18nc("@label:PrintjobStatus %1 is target operation", "Ready to %1").arg(UM.OutputDeviceManager.activeDeviceShortDescription); - case 4: - return catalog.i18nc("@label:PrintjobStatus", "Unable to Slice"); - case 5: - return catalog.i18nc("@label:PrintjobStatus", "Slicing unavailable"); - default: - return ""; - } - } - - function sliceOrStopSlicing() - { - try - { - if ([1, 5].indexOf(base.backendState) != -1) - { - CuraApplication.backend.forceSlice(); - } - else - { - CuraApplication.backend.stopSlicing(); - } - } - catch (e) - { - console.log("Could not start or stop slicing.", e) - } - } - - Label - { - id: statusLabel - width: parent.width - 2 * UM.Theme.getSize("thick_margin").width - anchors.top: parent.top - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("default_bold") - text: statusText; - } - - Rectangle - { - id: progressBar - width: parent.width - 2 * UM.Theme.getSize("thick_margin").width - height: UM.Theme.getSize("progressbar").height - anchors.top: statusLabel.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 4) - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - radius: UM.Theme.getSize("progressbar_radius").width - color: UM.Theme.getColor("progressbar_background") - - Rectangle - { - width: Math.max(parent.width * base.progress) - height: parent.height - color: UM.Theme.getColor("progressbar_control") - radius: UM.Theme.getSize("progressbar_radius").width - visible: base.backendState == 2 - } - } - - // Shortcut for "save as/print/..." - Action - { - shortcut: "Ctrl+P" - onTriggered: - { - // only work when the button is enabled - if (saveToButton.enabled) - { - saveToButton.clicked(); - } - // prepare button - if (prepareButton.enabled) - { - sliceOrStopSlicing(); - } - } - } - - Item - { - id: saveRow - width: { - // using childrenRect.width directly causes a binding loop, because setting the width affects the childrenRect - var children_width = UM.Theme.getSize("default_margin").width; - for (var index in children) - { - var child = children[index]; - if(child.visible) - { - children_width += child.width + child.anchors.rightMargin; - } - } - return Math.min(children_width, base.width - UM.Theme.getSize("thick_margin").width); - } - height: saveToButton.height - anchors.bottom: parent.bottom - anchors.bottomMargin: UM.Theme.getSize("thick_margin").height - anchors.right: parent.right - clip: true - - Row - { - id: additionalComponentsRow - anchors.top: parent.top - anchors.right: saveToButton.visible ? saveToButton.left : (prepareButton.visible ? prepareButton.left : parent.right) - anchors.rightMargin: UM.Theme.getSize("default_margin").width - - spacing: UM.Theme.getSize("default_margin").width - } - - Component.onCompleted: - { - saveRow.addAdditionalComponents("saveButton") - } - - Connections - { - target: CuraApplication - onAdditionalComponentsChanged: saveRow.addAdditionalComponents("saveButton") - } - - function addAdditionalComponents (areaId) - { - if(areaId == "saveButton") - { - for (var component in CuraApplication.additionalComponents["saveButton"]) - { - CuraApplication.additionalComponents["saveButton"][component].parent = additionalComponentsRow - } - } - } - - Connections - { - target: UM.Preferences - onPreferenceChanged: - { - var autoSlice = UM.Preferences.getValue("general/auto_slice"); - prepareButton.autoSlice = autoSlice; - saveToButton.autoSlice = autoSlice; - } - } - - // Prepare button, only shows if auto_slice is off - Button - { - id: prepareButton - - tooltip: [1, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@info:tooltip","Slice current printjob") : catalog.i18nc("@info:tooltip","Cancel slicing process") - // 1 = not started, 2 = Processing - enabled: ([1, 2].indexOf(base.backendState) != -1) && base.activity - visible: !autoSlice && ([1, 2, 4].indexOf(base.backendState) != -1) && base.activity - property bool autoSlice - height: UM.Theme.getSize("save_button_save_to_button").height - - anchors.top: parent.top - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - - // 1 = not started, 4 = error, 5 = disabled - text: [1, 4, 5].indexOf(base.backendState) != -1 ? catalog.i18nc("@label:Printjob", "Prepare") : catalog.i18nc("@label:Printjob", "Cancel") - onClicked: - { - sliceOrStopSlicing(); - } - - style: ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_border"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_border"); - } - else - { - return UM.Theme.getColor("action_button_border"); - } - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered"); - } - else - { - return UM.Theme.getColor("action_button"); - } - } - - Behavior on color { ColorAnimation { duration: 50; } } - - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("thick_margin").width * 2) - - Label - { - id: actualLabel - anchors.centerIn: parent - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_text"); - } - else if(control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if(control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text"); - } - else - { - return UM.Theme.getColor("action_button_text"); - } - } - font: UM.Theme.getFont("action_button") - text: control.text; - } - } - label: Item {} - } - } - - Button - { - id: saveToButton - - tooltip: UM.OutputDeviceManager.activeDeviceDescription; - // 3 = done, 5 = disabled - enabled: base.backendState != "undefined" && (base.backendState == 3 || base.backendState == 5) && base.activity == true - visible: base.backendState != "undefined" && autoSlice || ((base.backendState == 3 || base.backendState == 5) && base.activity == true) - property bool autoSlice - height: UM.Theme.getSize("save_button_save_to_button").height - - anchors.top: parent.top - anchors.right: deviceSelectionMenu.visible ? deviceSelectionMenu.left : parent.right - anchors.rightMargin: deviceSelectionMenu.visible ? -3 * UM.Theme.getSize("default_lining").width : UM.Theme.getSize("thick_margin").width - - text: UM.OutputDeviceManager.activeDeviceShortDescription - onClicked: - { - forceActiveFocus(); - UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName, - { "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats }); - } - - style: ButtonStyle - { - background: Rectangle - { - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border"); - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed_border"); - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered_border"); - } - else - { - return UM.Theme.getColor("print_button_ready_border"); - } - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled"); - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed"); - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered"); - } - else - { - return UM.Theme.getColor("print_button_ready"); - } - } - - Behavior on color { ColorAnimation { duration: 50; } } - - implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("thick_margin").width * 2) - - Label - { - id: actualLabel - anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") - font: UM.Theme.getFont("action_button") - text: control.text - } - } - label: Item { } - } - } - - Button - { - id: deviceSelectionMenu - tooltip: catalog.i18nc("@info:tooltip","Select the active output device"); - anchors.top: parent.top - anchors.right: parent.right - - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - width: UM.Theme.getSize("save_button_save_to_button").height - height: UM.Theme.getSize("save_button_save_to_button").height - - // 3 = Done, 5 = Disabled - enabled: (base.backendState == 3 || base.backendState == 5) && base.activity == true - visible: (devicesModel.deviceCount > 1) && (base.backendState == 3 || base.backendState == 5) && base.activity == true - - - style: ButtonStyle - { - background: Rectangle - { - id: deviceSelectionIcon - border.width: UM.Theme.getSize("default_lining").width - border.color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled_border") - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed_border") - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered_border") - } - else - { - return UM.Theme.getColor("print_button_ready_border") - } - } - color: - { - if(!control.enabled) - { - return UM.Theme.getColor("action_button_disabled") - } - else if(control.pressed) - { - return UM.Theme.getColor("print_button_ready_pressed") - } - else if(control.hovered) - { - return UM.Theme.getColor("print_button_ready_hovered") - } - else - { - return UM.Theme.getColor("print_button_ready") - } - } - Behavior on color { ColorAnimation { duration: 50; } } - anchors.left: parent.left - anchors.leftMargin: Math.round(UM.Theme.getSize("save_button_text_margin").width / 2); - width: parent.height - height: parent.height - - UM.RecolorImage - { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: height - color: control.enabled ? UM.Theme.getColor("print_button_ready_text") : UM.Theme.getColor("action_button_disabled_text") - source: UM.Theme.getIcon("arrow_bottom") - } - } - } - - menu: Menu - { - id: devicesMenu; - Instantiator - { - model: devicesModel; - MenuItem - { - text: model.description - checkable: true; - checked: model.id == UM.OutputDeviceManager.activeDevice - exclusiveGroup: devicesMenuGroup - onTriggered: - { - UM.OutputDeviceManager.setActiveDevice(model.id); - } - } - onObjectAdded: devicesMenu.insertItem(index, object) - onObjectRemoved: devicesMenu.removeItem(object) - } - ExclusiveGroup { id: devicesMenuGroup } - } - } - UM.OutputDevicesModel { id: devicesModel } - } -} From 1fe65013584b6bb1130a8fc4a7bac3e3ddff618c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 13:35:41 +0100 Subject: [PATCH 0452/1039] Removed unused entries from theme --- resources/themes/cura-light/theme.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index cbdc37caa1..59927da663 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -181,14 +181,6 @@ "action_button_shadow": [64, 47, 205, 255], "action_button_disabled_shadow": [228, 228, 228, 255], - "print_button_ready": [50, 130, 255, 255], - "print_button_ready_border": [50, 130, 255, 255], - "print_button_ready_text": [255, 255, 255, 255], - "print_button_ready_hovered": [30, 186, 245, 243], - "print_button_ready_hovered_border": [30, 186, 245, 243], - "print_button_ready_pressed": [30, 186, 245, 243], - "print_button_ready_pressed_border": [30, 186, 245, 243], - "scrollbar_background": [255, 255, 255, 255], "scrollbar_handle": [31, 36, 39, 255], "scrollbar_handle_hover": [12, 159, 227, 255], From 3c86c0ae6c691c4eb1be17f0fe15b1ff1cc5919f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 13:36:45 +0100 Subject: [PATCH 0453/1039] Fix spacing CURA-5959 --- resources/themes/cura-light/theme.json | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 59927da663..001818c2f8 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -80,8 +80,7 @@ "thick_lining": [127, 127, 127, 255], "lining": [192, 193, 194, 255], "viewport_overlay": [0, 0, 0, 192], - - + "primary": [50, 130, 255, 255], "primary_shadow": [64, 47, 205, 255], "primary_hover": [48, 182, 231, 255], @@ -90,15 +89,15 @@ "secondary": [245, 245, 245, 255], "secondary_shadow": [228, 228, 228, 255], - "primary_button": [38,113,231,255], - "primary_button_shadow": [27,95,202, 255], - "primary_button_hover": [81,145,247, 255], + "primary_button": [38, 113, 231, 255], + "primary_button_shadow": [27, 95, 202, 255], + "primary_button_hover": [81, 145, 247, 255], "primary_button_text": [255, 255, 255, 255], - "secondary_button": [240,240,240, 255], - "secondary_button_shadow": [228, 228, 228, 255], - "secondary_button_hover": [228,228,228, 255], - "secondary_button_text": [30,102,215, 255], + "secondary_button": [240, 240, 240, 255], + "secondary_button_shadow": [228, 228, 228, 255], + "secondary_button_hover": [228, 228, 228, 255], + "secondary_button_text": [30, 102, 215, 255], "main_window_header_background": [10, 8, 80, 255], "main_window_header_button_text_active": [10, 8, 80, 255], From ebae4347a841e90f257d3296b24ca3e8531e6852 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 13:44:32 +0100 Subject: [PATCH 0454/1039] Fix unit tests that were failing after adding the getAbbreviatedMachineName to the machine manager. Contributes to CURA-5942. --- tests/TestPrintInformation.py | 52 ++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/tests/TestPrintInformation.py b/tests/TestPrintInformation.py index a226a437c6..baa36fb338 100644 --- a/tests/TestPrintInformation.py +++ b/tests/TestPrintInformation.py @@ -1,5 +1,7 @@ +import functools from cura import PrintInformation +from cura.Settings.MachineManager import MachineManager from unittest.mock import MagicMock, patch from UM.Application import Application @@ -11,14 +13,20 @@ def getPrintInformation(printer_name) -> PrintInformation: mock_application = MagicMock() global_container_stack = MagicMock() - global_container_stack.definition.getName = MagicMock(return_value=printer_name) - mock_application.getGlobalContainerStack = MagicMock(return_value=global_container_stack) + global_container_stack.definition.getName = MagicMock(return_value = printer_name) + mock_application.getGlobalContainerStack = MagicMock(return_value = global_container_stack) - multiBuildPlateModel = MagicMock() - multiBuildPlateModel.maxBuildPlate = 0 - mock_application.getMultiBuildPlateModel = MagicMock(return_value=multiBuildPlateModel) + multi_build_plate_model = MagicMock() + multi_build_plate_model.maxBuildPlate = 0 + mock_application.getMultiBuildPlateModel = MagicMock(return_value = multi_build_plate_model) - Application.getInstance = MagicMock(return_type=mock_application) + # Mock-up the entire machine manager except the function that needs to be tested: getAbbreviatedMachineName + original_get_abbreviated_name = MachineManager.getAbbreviatedMachineName + mock_machine_manager = MagicMock() + mock_machine_manager.getAbbreviatedMachineName = functools.partial(original_get_abbreviated_name, mock_machine_manager) + mock_application.getMachineManager = MagicMock(return_value = mock_machine_manager) + + Application.getInstance = MagicMock(return_type = mock_application) with patch("json.loads", lambda x: {}): print_information = PrintInformation.PrintInformation(mock_application) @@ -28,17 +36,17 @@ def getPrintInformation(printer_name) -> PrintInformation: def setup_module(): MimeTypeDatabase.addMimeType( MimeType( - name="application/vnd.ms-package.3dmanufacturing-3dmodel+xml", - comment="3MF", - suffixes=["3mf"] + name = "application/vnd.ms-package.3dmanufacturing-3dmodel+xml", + comment = "3MF", + suffixes = ["3mf"] ) ) MimeTypeDatabase.addMimeType( MimeType( - name="application/x-cura-gcode-file", - comment="Cura GCode File", - suffixes=["gcode"] + name = "application/x-cura-gcode-file", + comment = "Cura GCode File", + suffixes = ["gcode"] ) ) @@ -49,42 +57,42 @@ def test_setProjectName(): print_information = getPrintInformation("ultimaker") # Test simple name - project_name = ["HelloWorld",".3mf"] + project_name = ["HelloWorld", ".3mf"] print_information.setProjectName(project_name[0] + project_name[1]) assert "UM_" + project_name[0] == print_information._job_name # Test the name with one dot - project_name = ["Hello.World",".3mf"] + project_name = ["Hello.World", ".3mf"] print_information.setProjectName(project_name[0] + project_name[1]) assert "UM_" + project_name[0] == print_information._job_name # Test the name with two dot - project_name = ["Hello.World.World",".3mf"] + project_name = ["Hello.World.World", ".3mf"] print_information.setProjectName(project_name[0] + project_name[1]) assert "UM_" + project_name[0] == print_information._job_name # Test the name with dot at the beginning - project_name = [".Hello.World",".3mf"] + project_name = [".Hello.World", ".3mf"] print_information.setProjectName(project_name[0] + project_name[1]) assert "UM_" + project_name[0] == print_information._job_name # Test the name with underline - project_name = ["Hello_World",".3mf"] + project_name = ["Hello_World", ".3mf"] print_information.setProjectName(project_name[0] + project_name[1]) assert "UM_" + project_name[0] == print_information._job_name # Test gcode extension - project_name = ["Hello_World",".gcode"] + project_name = ["Hello_World", ".gcode"] print_information.setProjectName(project_name[0] + project_name[1]) assert "UM_" + project_name[0] == print_information._job_name # Test empty project name - project_name = ["",""] + project_name = ["", ""] print_information.setProjectName(project_name[0] + project_name[1]) assert print_information.UNTITLED_JOB_NAME == print_information._job_name # Test wrong file extension - project_name = ["Hello_World",".test"] + project_name = ["Hello_World", ".test"] print_information.setProjectName(project_name[0] + project_name[1]) assert "UM_" + project_name[0] != print_information._job_name @@ -93,7 +101,7 @@ def test_setJobName(): print_information = getPrintInformation("ultimaker") print_information._abbr_machine = "UM" - print_information.setJobName("UM_HelloWorld", is_user_specified_job_name=False) + print_information.setJobName("UM_HelloWorld", is_user_specified_job_name = False) def test_defineAbbreviatedMachineName(): @@ -102,6 +110,6 @@ def test_defineAbbreviatedMachineName(): print_information = getPrintInformation(printer_name) # Test not ultimaker printer, name suffix should have first letter from the printer name - project_name = ["HelloWorld",".3mf"] + project_name = ["HelloWorld", ".3mf"] print_information.setProjectName(project_name[0] + project_name[1]) assert printer_name[0] + "_" + project_name[0] == print_information._job_name \ No newline at end of file From a6544997525f0a066429223da1bd432eb3653ec5 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 13:47:22 +0100 Subject: [PATCH 0455/1039] Re-enable hover for marketplace button CURA-5959 --- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 2 +- resources/qml/MainWindow/MainWindowHeader.qml | 6 ++++-- resources/themes/cura-light/theme.json | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 437a2ef351..0c04dc2bab 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -37,7 +37,7 @@ Item leftMargin: UM.Theme.getSize("wide_margin").width topMargin: UM.Theme.getSize("wide_margin").height } - color: white //Always a white background for image (regardless of theme). + color: "white" //Always a white background for image (regardless of theme). Image { anchors.fill: parent diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index ceb27dd726..a24af7ee45 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -81,10 +81,12 @@ Rectangle height: Math.round(0.5 * UM.Theme.getSize("main_window_header").height) onClicked: Cura.Actions.browsePackages.trigger() + hoverEnabled: true + background: Rectangle { radius: UM.Theme.getSize("action_button_radius").width - color: "transparent" + color: marketplaceButton.hovered ? UM.Theme.getColor("primary_text") : UM.Theme.getColor("main_window_header_background") border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("primary_text") } @@ -93,7 +95,7 @@ Rectangle { id: label text: marketplaceButton.text - color: UM.Theme.getColor("primary_text") + color: marketplaceButton.hovered ? UM.Theme.getColor("main_window_header_background") : UM.Theme.getColor("primary_text") width: contentWidth } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 001818c2f8..2343cd3f2a 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -80,7 +80,7 @@ "thick_lining": [127, 127, 127, 255], "lining": [192, 193, 194, 255], "viewport_overlay": [0, 0, 0, 192], - + "primary": [50, 130, 255, 255], "primary_shadow": [64, 47, 205, 255], "primary_hover": [48, 182, 231, 255], From b63c4f7a74a06f6b167f6c48d3538b9566fc2e9f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 14:06:34 +0100 Subject: [PATCH 0456/1039] Add header in new files. Remove unused imports. Contributes to CURA-5959. --- resources/qml/ActionButton.qml | 1 - resources/qml/PrimaryButton.qml | 4 +++- resources/qml/SecondaryButton.qml | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 6dd5839bb9..b9a04f3b46 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -3,7 +3,6 @@ import QtQuick 2.7 import QtQuick.Controls 2.1 -import QtQuick.Layouts 1.3 import QtGraphicalEffects 1.0 // For the dropshadow diff --git a/resources/qml/PrimaryButton.qml b/resources/qml/PrimaryButton.qml index 8450e524e2..fca63d2cdb 100644 --- a/resources/qml/PrimaryButton.qml +++ b/resources/qml/PrimaryButton.qml @@ -1,5 +1,7 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.2 -import QtQuick.Controls 1.1 import UM 1.4 as UM import Cura 1.1 as Cura diff --git a/resources/qml/SecondaryButton.qml b/resources/qml/SecondaryButton.qml index 0e6b79b3a7..f03d8acdfa 100644 --- a/resources/qml/SecondaryButton.qml +++ b/resources/qml/SecondaryButton.qml @@ -1,5 +1,7 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.2 -import QtQuick.Controls 1.1 import UM 1.4 as UM import Cura 1.1 as Cura From 68a90ec510b15d41ba585f013c7d9c5fe52fb94f Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 26 Nov 2018 14:08:21 +0100 Subject: [PATCH 0457/1039] Use simple models instead of namedtuples Named tuples would throw a TypeError if an unknown attribute was set, but we just want to ignore those --- plugins/UM3NetworkPrinting/src/Models.py | 67 ++++++++++++++---------- 1 file changed, 38 insertions(+), 29 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index bcdeb8299c..e2ad411e90 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -1,33 +1,42 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from collections import namedtuple -ClusterMaterial = namedtuple("ClusterMaterial", [ - "guid", # Type: str - "material", # Type: str - "brand", # Type: str - "version", # Type: int - "color", # Type: str - "density" # Type: str -]) -LocalMaterial = namedtuple("LocalMaterial", [ - "GUID", # Type: str - "id", # Type: str - "type", # Type: str - "status", # Type: str - "base_file", # Type: str - "setting_version", # Type: int - "version", # Type: int - "name", # Type: str - "brand", # Type: str - "material", # Type: str - "color_name", # Type: str - "color_code", # Type: str - "description", # Type: str - "adhesion_info", # Type: str - "approximate_diameter", # Type: str - "properties", # Type: str - "definition", # Type: str - "compatible" # Type: str -]) +## Base model that maps kwargs to instance attributes. +class BaseModel: + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + +## Class representing a material that was fetched from the cluster API. +class ClusterMaterial(BaseModel): + def __init__(self, **kwargs): + self.guid = None # type: str + self.material = None # type: str + self.brand = None # type: str + self.version = None # type: int + self.color = None # type: str + self.density = None # type: str + super().__init__(**kwargs) + + +## Class representing a local material that was fetched from the container registry. +class LocalMaterial(BaseModel): + def __init__(self, **kwargs): + self.GUID = None # type: str + self.id = None # type: str + self.type = None # type: str + self.status = None # type: str + self.base_file = None # type: str + self.setting_version = None # type: int + self.version = None # type: int + self.brand = None # type: str + self.material = None # type: str + self.color_name = None # type: str + self.color_code = None # type: str + self.description = None # type: str + self.adhesion_info = None # type: str + self.approximate_diameter = None # type: str + self.definition = None # type: str + self.compatible = None # type: bool + super().__init__(**kwargs) From 90a73f351da7bfa695ab5fcb6e9e9361e6200a44 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 14:12:34 +0100 Subject: [PATCH 0458/1039] Fix positioning of tabs in custom menu The label's bottom side is at its top, so we must add its height so that it gets positioned correctly. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 50ff108431..25111a9365 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -33,7 +33,7 @@ Item { id: tabBar anchors.top: header.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.topMargin: UM.Theme.getSize("default_margin").height + header.height onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) @@ -114,7 +114,7 @@ Item property var hasActiveExtruder: activeExtruder != null property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true - property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported + property var valueWarning: !Cura.MachineManager.isActiveQualitySupported text: currentRootMaterialName tooltip: currentRootMaterialName @@ -131,7 +131,6 @@ Item { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } - } } From 12f78fa21ad022d9f1f278fb5f3d56ced7e65f60 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 14:29:42 +0100 Subject: [PATCH 0459/1039] Remove border of the popup selector for the output devices. Contributes to CURA-5959. --- resources/qml/ActionPanel/OutputDevicesActionButton.qml | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index e4b4884794..2111038cfc 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -94,10 +94,7 @@ Item { opacity: visible ? 1 : 0 Behavior on opacity { NumberAnimation { duration: 100 } } - radius: UM.Theme.getSize("default_radius").width color: UM.Theme.getColor("action_panel_secondary") - border.color: UM.Theme.getColor("lining") - border.width: UM.Theme.getSize("default_lining").width } } } From a382b77eaa81998d5a413a019701137117b45eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marijn=20De=C3=A9?= Date: Mon, 26 Nov 2018 14:30:17 +0100 Subject: [PATCH 0460/1039] Added validation to the models --- plugins/UM3NetworkPrinting/src/Models.py | 14 ++++++++++++++ plugins/UM3NetworkPrinting/src/SendMaterialJob.py | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index e2ad411e90..d0708c8127 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -6,6 +6,10 @@ class BaseModel: def __init__(self, **kwargs): self.__dict__.update(kwargs) + self.validate() + + def validate(self): + pass ## Class representing a material that was fetched from the cluster API. @@ -19,6 +23,10 @@ class ClusterMaterial(BaseModel): self.density = None # type: str super().__init__(**kwargs) + def validate(self): + if not self.guid: + raise ValueError("guid is required on ClusterMaterial") + ## Class representing a local material that was fetched from the container registry. class LocalMaterial(BaseModel): @@ -40,3 +48,9 @@ class LocalMaterial(BaseModel): self.definition = None # type: str self.compatible = None # type: bool super().__init__(**kwargs) + + def validate(self): + if not self.GUID: + raise ValueError("guid is required on LocalMaterial") + if not self.id: + raise ValueError("id is required on LocalMaterial") diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 48760af28e..6f33e75ee1 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -159,8 +159,8 @@ class SendMaterialJob(Job): Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.") except json.JSONDecodeError: Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.") - except TypeError: - Logger.log("e", "Request material storage on printer: Printer's answer was missing GUIDs.") + except ValueError: + Logger.log("e", "Request material storage on printer: Printer's answer was missing a value.") ## Retrieves a list of local materials # From 0a1c0e18d1bca499168b062f1e0538665768cd85 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 14:38:43 +0100 Subject: [PATCH 0461/1039] Reuse the component SecondaryButton in the printer selector. Contributes to CURA-5942. --- resources/qml/PrinterSelector/MachineSelector.qml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 120ce02edd..93e5103aa8 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -125,15 +125,11 @@ Cura.ExpandableComponent padding: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width - Cura.ActionButton + Cura.SecondaryButton { leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Add printer") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") onClicked: { togglePopup() @@ -141,15 +137,11 @@ Cura.ExpandableComponent } } - Cura.ActionButton + Cura.SecondaryButton { leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Manage printers") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") onClicked: { togglePopup() From 84f263f1111a58d46817c2d9d6572e7676a8dcf3 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 15:08:33 +0100 Subject: [PATCH 0462/1039] Fix style for the open file button in the prepare menu. Contributes to CURA-5942. --- plugins/PrepareStage/PrepareMenu.qml | 41 ++++++++++++++++------------ 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index a99426acd8..a953c2b5d1 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -3,7 +3,7 @@ import QtQuick 2.7 import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.4 +import QtQuick.Controls 2.3 import UM 1.3 as UM import Cura 1.1 as Cura @@ -27,14 +27,14 @@ Item Item { anchors.horizontalCenter: parent.horizontalCenter - width: openFileButtonBackground.width + itemRow.width + UM.Theme.getSize("default_margin").width + width: openFileButton.width + itemRow.width + UM.Theme.getSize("default_margin").width height: parent.height RowLayout { id: itemRow - anchors.left: openFileButtonBackground.right + anchors.left: openFileButton.right anchors.leftMargin: UM.Theme.getSize("default_margin").width width: Math.round(0.9 * prepareMenu.width) @@ -44,7 +44,7 @@ Item Cura.MachineSelector { id: machineSelection - z: openFileButtonBackground.z - 1 //Ensure that the tooltip of the open file button stays above the item row. + z: openFileButton.z - 1 //Ensure that the tooltip of the open file button stays above the item row. headerCornerSide: Cura.RoundedRectangle.Direction.Left Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width @@ -86,24 +86,31 @@ Item } } - Rectangle + Button { - id: openFileButtonBackground + id: openFileButton height: UM.Theme.getSize("stage_menu").height width: UM.Theme.getSize("stage_menu").height + onClicked: Cura.Actions.open.trigger() - radius: UM.Theme.getSize("default_radius").width - color: UM.Theme.getColor("toolbar_background") - - Button + contentItem: UM.RecolorImage { - id: openFileButton - text: catalog.i18nc("@action:button", "Open File") - iconSource: UM.Theme.getIcon("load") - style: UM.Theme.styles.toolbar_button - tooltip: "" - action: Cura.Actions.open - anchors.centerIn: parent + id: buttonIcon + source: UM.Theme.getIcon("load") + width: UM.Theme.getSize("button_icon").width + height: UM.Theme.getSize("button_icon").height + color: UM.Theme.getColor("toolbar_button_text") + + sourceSize: UM.Theme.getSize("button_icon") + } + + background: Rectangle + { + height: UM.Theme.getSize("stage_menu").height + width: UM.Theme.getSize("stage_menu").height + + radius: UM.Theme.getSize("default_radius").width + color: openFileButton.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") } } } From 9732099250f9085137883907293f5dbd1080691a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 15:14:32 +0100 Subject: [PATCH 0463/1039] Add border to rounded rectangle. It's designed so that it works in exactly the same way as rectangle. --- resources/qml/BorderGroup.qml | 7 +++++++ resources/qml/RoundedRectangle.qml | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 resources/qml/BorderGroup.qml diff --git a/resources/qml/BorderGroup.qml b/resources/qml/BorderGroup.qml new file mode 100644 index 0000000000..94d0d68594 --- /dev/null +++ b/resources/qml/BorderGroup.qml @@ -0,0 +1,7 @@ +import QtQuick 2.0 + +QtObject +{ + property real width: 0 + property color color: "black" +} diff --git a/resources/qml/RoundedRectangle.qml b/resources/qml/RoundedRectangle.qml index 9ad2230be5..3ca05e2125 100644 --- a/resources/qml/RoundedRectangle.qml +++ b/resources/qml/RoundedRectangle.qml @@ -5,6 +5,7 @@ import UM 1.2 as UM // The rounded rectangle works mostly like a regular rectangle, but provides the option to have rounded corners on only one side of the rectangle. Item { + id: roundedRectangle // As per the regular rectangle property color color: "transparent" @@ -15,6 +16,9 @@ Item // 1 is down, 2 is left, 3 is up and 4 is right. property int cornerSide: RoundedRectangle.Direction.None + // Simple object to ensure that border.width and border.color work + property BorderGroup border: BorderGroup {} + enum Direction { None = 0, @@ -31,6 +35,8 @@ Item anchors.fill: parent radius: cornerSide != RoundedRectangle.Direction.None ? parent.radius : 0 color: parent.color + border.width: parent.border.width + border.color: parent.border.color } // The item that covers 2 of the corners to make them not rounded. @@ -45,5 +51,22 @@ Item right: cornerSide == RoundedRectangle.Direction.Left ? parent.right: undefined bottom: cornerSide == RoundedRectangle.Direction.Up ? parent.bottom: undefined } + + border.width: parent.border.width + border.color: parent.border.color + + Rectangle + { + color: roundedRectangle.color + height: cornerSide % 2 ? roundedRectangle.border.width: roundedRectangle.height - 2 * roundedRectangle.border.width + width: cornerSide % 2 ? roundedRectangle.width - 2 * roundedRectangle.border.width: roundedRectangle.border.width + anchors + { + right: cornerSide == RoundedRectangle.Direction.Right ? parent.right : undefined + bottom: cornerSide == RoundedRectangle.Direction.Down ? parent.bottom: undefined + horizontalCenter: cornerSide % 2 ? parent.horizontalCenter: undefined + verticalCenter: cornerSide % 2 ? undefined: parent.verticalCenter + } + } } } From da5683c876682019fe2360cf56fd27afe9f39844 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 26 Nov 2018 15:30:30 +0100 Subject: [PATCH 0464/1039] add typing to models --- plugins/UM3NetworkPrinting/src/Models.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index d0708c8127..2a34e41f86 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -4,17 +4,17 @@ ## Base model that maps kwargs to instance attributes. class BaseModel: - def __init__(self, **kwargs): + def __init__(self, **kwargs) -> None: self.__dict__.update(kwargs) self.validate() - def validate(self): + def validate(self) -> None: pass ## Class representing a material that was fetched from the cluster API. class ClusterMaterial(BaseModel): - def __init__(self, **kwargs): + def __init__(self, **kwargs) -> None: self.guid = None # type: str self.material = None # type: str self.brand = None # type: str @@ -23,14 +23,14 @@ class ClusterMaterial(BaseModel): self.density = None # type: str super().__init__(**kwargs) - def validate(self): + def validate(self) -> None: if not self.guid: raise ValueError("guid is required on ClusterMaterial") ## Class representing a local material that was fetched from the container registry. class LocalMaterial(BaseModel): - def __init__(self, **kwargs): + def __init__(self, **kwargs) -> None: self.GUID = None # type: str self.id = None # type: str self.type = None # type: str @@ -49,7 +49,7 @@ class LocalMaterial(BaseModel): self.compatible = None # type: bool super().__init__(**kwargs) - def validate(self): + def validate(self) -> None: if not self.GUID: raise ValueError("guid is required on LocalMaterial") if not self.id: From 9afc5748a8ec1eb7bbbdb8ba7395f7b3d2554a49 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 15:39:34 +0100 Subject: [PATCH 0465/1039] Add copyright header. --- resources/qml/BorderGroup.qml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/qml/BorderGroup.qml b/resources/qml/BorderGroup.qml index 94d0d68594..38ad9fadff 100644 --- a/resources/qml/BorderGroup.qml +++ b/resources/qml/BorderGroup.qml @@ -1,3 +1,6 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.0 QtObject From ac5f79ba2ced74cb13fe1fc00fe328f0b7d5a8a0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 15:47:32 +0100 Subject: [PATCH 0466/1039] Add tab style to tabbed content It now gets a proper background colour, lining and radius. Contributes to issue CURA-5876. --- .../ConfigurationMenu/CustomConfiguration.qml | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 25111a9365..1f7673cd0a 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.0 +import QtQuick 2.6 import QtQuick.Controls 2.0 import QtQuick.Controls 1.1 as OldControls @@ -33,7 +33,7 @@ Item { id: tabBar anchors.top: header.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height + header.height + anchors.topMargin: UM.Theme.getSize("default_margin").height onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) @@ -57,17 +57,46 @@ Item } } - Item + Rectangle { id: tabControl width: parent.width height: childrenRect.height anchors.top: tabBar.bottom + + radius: UM.Theme.getSize("default_radius").width + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: UM.Theme.getColor("secondary") + + //Remove rounding and lining at the top. + Rectangle + { + width: parent.width + height: parent.radius + anchors.top: parent.top + color: UM.Theme.getColor("lining") + Rectangle + { + anchors + { + left: parent.left + leftMargin: parent.parent.border.width + right: parent.right + rightMargin: parent.parent.border.width + top: parent.top + } + height: parent.parent.radius + color: parent.parent.color + } + } + property var model: extrudersModel.items[tabBar.currentIndex] property real textWidth: Math.round(width * 0.3) property real controlWidth: width - textWidth Column { + padding: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").height Row From 3d1157522a4d9c318a2c2d3f068c3326e3e3b81c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 15:51:36 +0100 Subject: [PATCH 0467/1039] Reuse the RoundedRectangle component and indicate that only the bottom part of the popup should be rounded. Contributes to CURA-5942. --- resources/qml/ExpandableComponent.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index ccfb9c6da2..9b2826daed 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -2,6 +2,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.3 import UM 1.2 as UM +import Cura 1.0 as Cura // The expandable component has 3 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded @@ -162,8 +163,9 @@ Item padding: UM.Theme.getSize("default_margin").width closePolicy: Popup.CloseOnPressOutsideParent - background: Rectangle + background: Cura.RoundedRectangle { + cornerSide: Cura.RoundedRectangle.Direction.Down color: popupBackgroundColor border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") From e4d8fb36abccd5e1a5f7f68bef086ae82ec3b9a4 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 26 Nov 2018 15:53:04 +0100 Subject: [PATCH 0468/1039] Add more typing as per request from @sedwards2009 --- plugins/UM3NetworkPrinting/src/Models.py | 35 ++++++++---------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index 2a34e41f86..5ef44bc006 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -14,43 +14,30 @@ class BaseModel: ## Class representing a material that was fetched from the cluster API. class ClusterMaterial(BaseModel): - def __init__(self, **kwargs) -> None: - self.guid = None # type: str - self.material = None # type: str - self.brand = None # type: str - self.version = None # type: int - self.color = None # type: str - self.density = None # type: str + def __init__(self, guid = str, version = str, **kwargs) -> None: + self.guid = guid # type: str + self.version = version # type: int super().__init__(**kwargs) def validate(self) -> None: if not self.guid: raise ValueError("guid is required on ClusterMaterial") + if not self.version: + raise ValueError("version is required on ClusterMaterial") ## Class representing a local material that was fetched from the container registry. class LocalMaterial(BaseModel): - def __init__(self, **kwargs) -> None: - self.GUID = None # type: str - self.id = None # type: str - self.type = None # type: str - self.status = None # type: str - self.base_file = None # type: str - self.setting_version = None # type: int - self.version = None # type: int - self.brand = None # type: str - self.material = None # type: str - self.color_name = None # type: str - self.color_code = None # type: str - self.description = None # type: str - self.adhesion_info = None # type: str - self.approximate_diameter = None # type: str - self.definition = None # type: str - self.compatible = None # type: bool + def __init__(self, GUID = str, id = str, version = str, **kwargs) -> None: + self.GUID = GUID # type: str + self.id = id # type: str + self.version = version # type: int super().__init__(**kwargs) def validate(self) -> None: if not self.GUID: raise ValueError("guid is required on LocalMaterial") + if not self.version: + raise ValueError("version is required on LocalMaterial") if not self.id: raise ValueError("id is required on LocalMaterial") From 4b897ffd67a5572f305a981cba79ace625d086d9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 16:03:40 +0100 Subject: [PATCH 0469/1039] Fix width of content in tabbed content Contributes to issue CURA-5876. --- .../ConfigurationMenu/CustomConfiguration.qml | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 1f7673cd0a..78448d5be5 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -59,7 +59,6 @@ Item Rectangle { - id: tabControl width: parent.width height: childrenRect.height anchors.top: tabBar.bottom @@ -91,14 +90,18 @@ Item } } - property var model: extrudersModel.items[tabBar.currentIndex] - property real textWidth: Math.round(width * 0.3) - property real controlWidth: width - textWidth Column { + id: selectors padding: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").height + property var model: extrudersModel.items[tabBar.currentIndex] + + readonly property real paddedWidth: parent.width - padding * 2 + property real textWidth: Math.round(paddedWidth * 0.3) + property real controlWidth: paddedWidth - textWidth + Row { height: UM.Theme.getSize("print_setup_item").height @@ -110,13 +113,13 @@ Item font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") height: parent.height - width: tabControl.textWidth + width: selectors.textWidth } OldControls.CheckBox { - checked: tabControl.model != null ? Cura.MachineManager.getExtruder(tabControl.model.index).isEnabled: false - onClicked: Cura.MachineManager.setExtruderEnabled(tabControl.model.index, checked) + checked: selectors.model != null ? Cura.MachineManager.getExtruder(selectors.model.index).isEnabled: false + onClicked: Cura.MachineManager.setExtruderEnabled(selectors.model.index, checked) height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox } @@ -132,7 +135,7 @@ Item font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") height: parent.height - width: tabControl.textWidth + width: selectors.textWidth } OldControls.ToolButton @@ -152,7 +155,7 @@ Item enabled: Cura.ExtruderManager.activeExtruderIndex > -1 height: UM.Theme.getSize("setting_control").height - width: tabControl.controlWidth + width: selectors.controlWidth style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true @@ -174,7 +177,7 @@ Item font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") height: parent.height - width: tabControl.textWidth + width: selectors.textWidth } OldControls.ToolButton @@ -185,7 +188,7 @@ Item visible: Cura.MachineManager.hasVariants height: UM.Theme.getSize("setting_control").height - width: tabControl.controlWidth + width: selectors.controlWidth style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; From 6506596eceeb241decdc8456f8d2d3d21a9b140e Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 26 Nov 2018 16:19:01 +0100 Subject: [PATCH 0470/1039] Fix typing syntax --- plugins/UM3NetworkPrinting/src/Models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Models.py b/plugins/UM3NetworkPrinting/src/Models.py index 5ef44bc006..2bcac70766 100644 --- a/plugins/UM3NetworkPrinting/src/Models.py +++ b/plugins/UM3NetworkPrinting/src/Models.py @@ -14,7 +14,7 @@ class BaseModel: ## Class representing a material that was fetched from the cluster API. class ClusterMaterial(BaseModel): - def __init__(self, guid = str, version = str, **kwargs) -> None: + def __init__(self, guid: str, version: int, **kwargs) -> None: self.guid = guid # type: str self.version = version # type: int super().__init__(**kwargs) @@ -28,7 +28,7 @@ class ClusterMaterial(BaseModel): ## Class representing a local material that was fetched from the container registry. class LocalMaterial(BaseModel): - def __init__(self, GUID = str, id = str, version = str, **kwargs) -> None: + def __init__(self, GUID: str, id: str, version: int, **kwargs) -> None: self.GUID = GUID # type: str self.id = id # type: str self.version = version # type: int From efd5f3799bdb1c156722046bc2056b961d217f4d Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 26 Nov 2018 16:31:32 +0100 Subject: [PATCH 0471/1039] Also catch TypeError now that we have explicit arguments --- plugins/UM3NetworkPrinting/src/SendMaterialJob.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py index 6f33e75ee1..f536fad49a 100644 --- a/plugins/UM3NetworkPrinting/src/SendMaterialJob.py +++ b/plugins/UM3NetworkPrinting/src/SendMaterialJob.py @@ -160,7 +160,9 @@ class SendMaterialJob(Job): except json.JSONDecodeError: Logger.log("e", "Request material storage on printer: I didn't understand the printer's answer.") except ValueError: - Logger.log("e", "Request material storage on printer: Printer's answer was missing a value.") + Logger.log("e", "Request material storage on printer: Printer's answer had an incorrect value.") + except TypeError: + Logger.log("e", "Request material storage on printer: Printer's answer was missing a required value.") ## Retrieves a list of local materials # @@ -189,5 +191,7 @@ class SendMaterialJob(Job): Logger.logException("w", "Local material {} has missing values.".format(material["id"])) except ValueError: Logger.logException("w", "Local material {} has invalid values.".format(material["id"])) + except TypeError: + Logger.logException("w", "Local material {} has invalid values.".format(material["id"])) return result From d85aee1c53cb27983f73d153685a1681efa78b58 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 16:40:29 +0100 Subject: [PATCH 0472/1039] Ensure that no weird data is set in the printSetupSelector on first start CURA-5961 --- resources/qml/PrintSetupSelector.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 2ecdc9e546..9b90d8589f 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -54,12 +54,12 @@ Cura.ExpandableComponent IconWithText { source: UM.Theme.getIcon("category_layer_height") - text: Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" + text: Cura.MachineManager.activeStack ? Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" : "" UM.SettingPropertyProvider { id: layerHeight - containerStackId: Cura.MachineManager.activeStackId + containerStack: Cura.MachineManager.activeStack key: "layer_height" watchedProperties: ["value"] } @@ -68,12 +68,12 @@ Cura.ExpandableComponent IconWithText { source: UM.Theme.getIcon("category_infill") - text: parseInt(infillDensity.properties.value) + "%" + text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%" UM.SettingPropertyProvider { id: infillDensity - containerStackId: Cura.MachineManager.activeStackId + containerStack: Cura.MachineManager.activeStack key: "infill_sparse_density" watchedProperties: ["value"] } From 87a0dc65e17742760fe7b551e2b8b5c4db0035a2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 17:09:36 +0100 Subject: [PATCH 0473/1039] Add list of available configurations to AutoConfiguration This is the main item it needs to display. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/AutoConfiguration.qml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index cde18ab488..8e86549e17 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -5,6 +5,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 import UM 1.3 as UM +import Cura 1.0 as Cura Item { @@ -26,4 +27,13 @@ Item right: parent.right } } + + ConfigurationListView + { + anchors.top: header.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").width + width: parent.width + + outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null + } } \ No newline at end of file From a825daea9565cdb5cfe405a1bb58750a76cdf988 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 17:10:48 +0100 Subject: [PATCH 0474/1039] Cleanup the Theme.json There were a lot of sizes that weren't used --- resources/qml/Dialogs/AddMachineDialog.qml | 1 - resources/themes/cura-dark/theme.json | 4 - resources/themes/cura-light/styles.qml | 248 --------------------- resources/themes/cura-light/theme.json | 20 -- 4 files changed, 273 deletions(-) diff --git a/resources/qml/Dialogs/AddMachineDialog.qml b/resources/qml/Dialogs/AddMachineDialog.qml index aa160acd4d..8b2b9d1868 100644 --- a/resources/qml/Dialogs/AddMachineDialog.qml +++ b/resources/qml/Dialogs/AddMachineDialog.qml @@ -298,7 +298,6 @@ UM.Dialog id: machineName text: getMachineName() width: Math.floor(parent.width * 0.75) - implicitWidth: UM.Theme.getSize("standard_list_input").width maximumLength: 40 //validator: Cura.MachineNameValidator { } //TODO: Gives a segfault in PyQt5.6. For now, we must use a signal on text changed. validator: RegExpValidator diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 62b1dbfa0f..34b944b25b 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -133,7 +133,6 @@ "slider_groove_border": [127, 127, 127, 255], "slider_groove_fill": [245, 245, 245, 255], "slider_handle": [255, 255, 255, 255], - "slider_handle_hover": [77, 182, 226, 255], "slider_handle_active": [68, 192, 255, 255], "slider_text_background": [255, 255, 255, 255], @@ -209,9 +208,6 @@ "quality_slider_unavailable": [179, 179, 179, 255], "quality_slider_available": [255, 255, 255, 255], - "quality_slider_handle": [255, 255, 255, 255], - "quality_slider_handle_hover": [127, 127, 127, 255], - "quality_slider_text": [255, 255, 255, 255], "toolbox_header_button_text_active": [255, 255, 255, 255], "toolbox_header_button_text_inactive": [128, 128, 128, 255], diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 723b393efa..f4aeb95bb3 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -599,198 +599,6 @@ QtObject } } - property Component sidebar_category: Component - { - ButtonStyle - { - background: Rectangle - { - anchors.fill: parent - anchors.left: parent.left - anchors.leftMargin: Theme.getSize("thick_margin").width - anchors.right: parent.right - anchors.rightMargin: Theme.getSize("thick_margin").width - implicitHeight: Theme.getSize("section").height - color: - { - if(control.color) - { - return control.color; - } - else if(!control.enabled) - { - return Theme.getColor("setting_category_disabled"); - } - else if(control.hovered && control.checkable && control.checked) - { - return Theme.getColor("setting_category_active_hover"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("setting_category_active"); - } - else if(control.hovered) - { - return Theme.getColor("setting_category_hover"); - } - else - { - return Theme.getColor("setting_category"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - Rectangle - { - height: Theme.getSize("default_lining").height - width: parent.width - anchors.bottom: parent.bottom - color: - { - if(!control.enabled) - { - return Theme.getColor("setting_category_disabled_border"); - } - else if((control.hovered || control.activeFocus) && control.checkable && control.checked) - { - return Theme.getColor("setting_category_active_hover_border"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("setting_category_active_border"); - } - else if(control.hovered || control.activeFocus) - { - return Theme.getColor("setting_category_hover_border"); - } - else - { - return Theme.getColor("setting_category_border"); - } - } - } - } - label: Item - { - anchors.fill: parent - anchors.left: parent.left - Item - { - id: icon - anchors.left: parent.left - height: parent.height - width: Theme.getSize("section_icon_column").width - UM.RecolorImage - { - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: Theme.getSize("thick_margin").width - color: - { - if(!control.enabled) - { - return Theme.getColor("setting_category_disabled_text"); - } - else if((control.hovered || control.activeFocus) && control.checkable && control.checked) - { - return Theme.getColor("setting_category_active_hover_text"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("setting_category_active_text"); - } - else if(control.hovered || control.activeFocus) - { - return Theme.getColor("setting_category_hover_text"); - } - else - { - return Theme.getColor("setting_category_text"); - } - } - source: control.iconSource; - width: Theme.getSize("section_icon").width; - height: Theme.getSize("section_icon").height; - sourceSize.width: width + 15 * screenScaleFactor - sourceSize.height: width + 15 * screenScaleFactor - } - } - - Label - { - anchors - { - left: icon.right - leftMargin: Theme.getSize("default_margin").width - right: parent.right - verticalCenter: parent.verticalCenter - } - text: control.text - font: Theme.getFont("setting_category") - color: - { - if(!control.enabled) - { - return Theme.getColor("setting_category_disabled_text"); - } - else if((control.hovered || control.activeFocus) && control.checkable && control.checked) - { - return Theme.getColor("setting_category_active_hover_text"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("setting_category_active_text"); - } - else if(control.hovered || control.activeFocus) - { - return Theme.getColor("setting_category_hover_text"); - } - else - { - return Theme.getColor("setting_category_text"); - } - } - fontSizeMode: Text.HorizontalFit - minimumPointSize: 8 - } - UM.RecolorImage - { - id: category_arrow - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: Theme.getSize("default_margin").width * 3 - Math.round(width / 2) - width: Theme.getSize("standard_arrow").width - height: Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: width - color: - { - if(!control.enabled) - { - return Theme.getColor("setting_category_disabled_text"); - } - else if((control.hovered || control.activeFocus) && control.checkable && control.checked) - { - return Theme.getColor("setting_category_active_hover_text"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("setting_category_active_text"); - } - else if(control.hovered || control.activeFocus) - { - return Theme.getColor("setting_category_hover_text"); - } - else - { - return Theme.getColor("setting_category_text"); - } - } - source: control.checked ? Theme.getIcon("arrow_bottom") : Theme.getIcon("arrow_left") - } - } - } - } - property Component scrollview: Component { ScrollViewStyle @@ -1144,60 +952,4 @@ QtObject label: Item { } } } - - property Component toolbox_action_button: Component - { - ButtonStyle - { - background: Rectangle - { - implicitWidth: UM.Theme.getSize("toolbox_action_button").width - implicitHeight: UM.Theme.getSize("toolbox_action_button").height - color: - { - if (control.installed) - { - return UM.Theme.getColor("action_button_disabled"); - } - else - { - if (control.hovered) - { - return UM.Theme.getColor("primary_hover"); - } - else - { - return UM.Theme.getColor("primary"); - } - } - - } - } - label: Label - { - text: control.text - color: - { - if (control.installed) - { - return UM.Theme.getColor("action_button_disabled_text"); - } - else - { - if (control.hovered) - { - return UM.Theme.getColor("button_text_hover"); - } - else - { - return UM.Theme.getColor("button_text"); - } - } - } - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font: UM.Theme.getFont("default_bold") - } - } - } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 2343cd3f2a..67e0c701c2 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -122,7 +122,6 @@ "text_detail": [174, 174, 174, 128], "text_link": [50, 130, 255, 255], "text_inactive": [174, 174, 174, 255], - "text_hover": [70, 84, 113, 255], "text_pressed": [50, 130, 255, 255], "text_subtext": [0, 0, 0, 255], "text_medium": [128, 128, 128, 255], @@ -228,15 +227,11 @@ "slider_groove": [223, 223, 223, 255], "slider_groove_fill": [10, 8, 80, 255], "slider_handle": [10, 8, 80, 255], - "slider_handle_hover": [77, 182, 226, 255], "slider_handle_active": [50, 130, 255, 255], "slider_text_background": [255, 255, 255, 255], "quality_slider_unavailable": [179, 179, 179, 255], "quality_slider_available": [0, 0, 0, 255], - "quality_slider_handle": [0, 0, 0, 255], - "quality_slider_handle_hover": [127, 127, 127, 255], - "quality_slider_text": [0, 0, 0, 255], "checkbox": [255, 255, 255, 255], "checkbox_hover": [255, 255, 255, 255], @@ -245,15 +240,6 @@ "checkbox_mark": [119, 122, 124, 255], "checkbox_text": [27, 27, 27, 255], - "mode_switch": [255, 255, 255, 255], - "mode_switch_hover": [255, 255, 255, 255], - "mode_switch_border": [127, 127, 127, 255], - "mode_switch_border_hover": [50, 130, 255, 255], - "mode_switch_handle": [31, 36, 39, 255], - "mode_switch_text": [31, 36, 39, 255], - "mode_switch_text_hover": [31, 36, 39, 255], - "mode_switch_text_checked": [50, 130, 255, 255], - "tooltip": [68, 192, 255, 255], "tooltip_text": [255, 255, 255, 255], @@ -384,7 +370,6 @@ "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], - "configuration_selector_widget": [35.0, 4.5], "configuration_selector_mode_tabs": [0.0, 3.0], "action_panel_widget": [25.0, 0.0], @@ -412,9 +397,6 @@ "extruder_icon": [1.8, 1.8], - "simple_mode_infill_caption": [0.0, 5.0], - "simple_mode_infill_height": [0.0, 8.0], - "section": [0.0, 2.2], "section_icon": [1.6, 1.6], "section_icon_column": [2.8, 0.0], @@ -428,7 +410,6 @@ "setting_text_maxwidth": [40.0, 0.0], "standard_list_lineheight": [1.5, 1.5], - "standard_list_input": [20.0, 25.0], "standard_arrow": [0.8, 0.8], "button": [4, 4], @@ -482,7 +463,6 @@ "modal_window_minimum": [60.0, 45], "license_window_minimum": [45, 45], - "wizard_progress": [10.0, 0.0], "message": [30.0, 5.0], "message_close": [1, 1], From a268c95559fcfda0e90048c666a1c9e3ed62f002 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 17:10:56 +0100 Subject: [PATCH 0475/1039] Remove double header This header is no longer necessary since the AutoConfiguration item provides its own header that doesn't scroll along. Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/ConfigurationListView.qml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 7aaf87b4df..ef967dfa35 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -12,7 +12,6 @@ Column { id: base property var outputDevice: null - property var computedHeight: container.height + configurationListHeading.height + 3 * padding height: childrenRect.height + 2 * padding padding: UM.Theme.getSize("default_margin").width spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) @@ -27,15 +26,6 @@ Column } } - Label - { - id: configurationListHeading - text: catalog.i18nc("@label:header configurations", "Available configurations") - font: UM.Theme.getFont("large") - width: parent.width - 2 * parent.padding - color: UM.Theme.getColor("configuration_item_text") - } - Component { id: sectionHeading From 3b219e3ac331e3404867433e1f968d2a29be4fa6 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 17:13:25 +0100 Subject: [PATCH 0476/1039] Remove padding The padding is already done by the enveloping Column and its parent popupItem. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index ef967dfa35..be9aad6d04 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -13,7 +13,6 @@ Column id: base property var outputDevice: null height: childrenRect.height + 2 * padding - padding: UM.Theme.getSize("default_margin").width spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) function forceModelUpdate() From a03e1be6011362cb044cc589373640e60aab1e5a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 17:19:32 +0100 Subject: [PATCH 0477/1039] Simplify sectionHeading element No need to define that component in a higher location, just define it where you need it. Also, no need to use a Rectangle for this if it has no colour, just use an Item, but the Item itself is also not necessary if you just need the padding. Contributes to issue CURA-5876. --- .../ConfigurationListView.qml | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index be9aad6d04..25dc3fac11 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -25,21 +25,6 @@ Column } } - Component - { - id: sectionHeading - Rectangle - { - height: childrenRect.height + UM.Theme.getSize("default_margin").height - Label - { - text: section - font: UM.Theme.getFont("default_bold") - color: UM.Theme.getColor("configuration_item_text") - } - } - } - ScrollView { id: container @@ -58,7 +43,13 @@ Column section.property: "modelData.printerType" section.criteria: ViewSection.FullString - section.delegate: sectionHeading + section.delegate: Label + { + text: section + font: UM.Theme.getFont("default_bold") + color: UM.Theme.getColor("configuration_item_text") + bottomPadding: UM.Theme.getSize("default_margin").height + } model: (outputDevice != null) ? outputDevice.uniqueConfigurations : [] delegate: ConfigurationItem From a3fe9839baafe17c2c221a50c16f590d5b1acd39 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 17:33:37 +0100 Subject: [PATCH 0478/1039] Change all uses of 'small' and 'very small' fonts to default These two fonts are exactly the same, but I want to use the 'small' font to be something a bit smaller. I'm 'removing' the superfluous font but will be re-using it immediately to look a bit smaller. Contributes to issue CURA-5876. --- .../Toolbox/resources/qml/ToolboxAuthorPage.qml | 8 ++++---- .../resources/qml/ToolboxCompatibilityChart.qml | 2 +- .../Toolbox/resources/qml/ToolboxDetailPage.qml | 16 ++++++++-------- .../resources/qml/ToolboxDownloadsGridTile.qml | 2 +- .../qml/MonitorBuildplateConfiguration.qml | 2 +- .../qml/MonitorExtruderConfiguration.qml | 4 ++-- .../qml/ActionPanel/OutputProcessWidget.qml | 4 ++-- .../qml/ActionPanel/PrintJobInformation.qml | 8 ++++---- resources/qml/ActionPanel/SliceProcessWidget.qml | 2 +- resources/qml/IconLabel.qml | 2 +- resources/qml/JobSpecs.qml | 2 +- .../ConfigurationMenu/ConfigurationListView.qml | 2 +- resources/qml/PrinterOutput/ExtruderBox.qml | 2 +- resources/qml/PrinterOutput/HeatedBedBox.qml | 2 +- .../qml/PrinterOutput/OutputDeviceHeader.qml | 4 ++-- 15 files changed, 31 insertions(+), 31 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml b/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml index 4aaea20813..9c1df0c49e 100644 --- a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml @@ -86,13 +86,13 @@ Item Label { text: catalog.i18nc("@label", "Website") + ":" - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } Label { text: catalog.i18nc("@label", "Email") + ":" - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } } @@ -118,7 +118,7 @@ Item } return "" } - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) @@ -134,7 +134,7 @@ Item } return "" } - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index 62e1e3ab86..6a01d7ff2f 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -210,7 +210,7 @@ Item } return result } - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 437a2ef351..90f372cf87 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -82,25 +82,25 @@ Item Label { text: catalog.i18nc("@label", "Version") + ":" - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } Label { text: catalog.i18nc("@label", "Last updated") + ":" - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } Label { text: catalog.i18nc("@label", "Author") + ":" - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } Label { text: catalog.i18nc("@label", "Downloads") + ":" - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } } @@ -119,7 +119,7 @@ Item Label { text: details === null ? "" : (details.version || catalog.i18nc("@label", "Unknown")) - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") } Label @@ -133,7 +133,7 @@ Item var date = new Date(details.last_updated) return date.toLocaleString(UM.Preferences.getValue("general/language")) } - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") } Label @@ -153,7 +153,7 @@ Item return "" + details.author_name + "" } } - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) @@ -161,7 +161,7 @@ Item Label { text: details === null ? "" : (details.download_count || catalog.i18nc("@label", "Unknown")) - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 887140bbfa..be44c0f374 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -81,7 +81,7 @@ Item width: parent.width wrapMode: Text.WordWrap color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") } } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml index 9ffb1eabb4..7edeb81a96 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml @@ -52,7 +52,7 @@ Item id: buildplateLabel color: "#191919" // TODO: Theme! elide: Text.ElideRight - font: UM.Theme.getFont("very_small") // 12pt, regular + font: UM.Theme.getFont("default") // 12pt, regular text: "" // FIXED-LINE-HEIGHT: diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml index afbd4c3641..1e53191d8c 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorExtruderConfiguration.qml @@ -49,7 +49,7 @@ Item } color: "#191919" // TODO: Theme! elide: Text.ElideRight - font: UM.Theme.getFont("very_small") // 12pt, regular + font: UM.Theme.getFont("default") // 12pt, regular text: "" // FIXED-LINE-HEIGHT: @@ -66,7 +66,7 @@ Item } color: "#191919" // TODO: Theme! elide: Text.ElideRight - font: UM.Theme.getFont("small") // 12pt, bold + font: UM.Theme.getFont("default_bold") // 12pt, bold text: "" // FIXED-LINE-HEIGHT: diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 6f9e6a02c3..296ee2fc16 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -50,7 +50,7 @@ Column text: PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default_bold") } Cura.IconLabel @@ -79,7 +79,7 @@ Column return totalWeights + "g · " + totalLengths.toFixed(2) + "m" } source: UM.Theme.getIcon("spool") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") } } diff --git a/resources/qml/ActionPanel/PrintJobInformation.qml b/resources/qml/ActionPanel/PrintJobInformation.qml index e53a92a994..b1172a91e0 100644 --- a/resources/qml/ActionPanel/PrintJobInformation.qml +++ b/resources/qml/ActionPanel/PrintJobInformation.qml @@ -31,7 +31,7 @@ Column { text: catalog.i18nc("@label", "Time specification").toUpperCase() color: UM.Theme.getColor("primary") - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default_bold") renderType: Text.NativeRendering } @@ -62,7 +62,7 @@ Column } width: parent.width - 2 * UM.Theme.getSize("default_margin").width color: UM.Theme.getColor("text") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") renderType: Text.NativeRendering textFormat: Text.RichText } @@ -81,7 +81,7 @@ Column { text: catalog.i18nc("@label", "Material specification").toUpperCase() color: UM.Theme.getColor("primary") - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default_bold") renderType: Text.NativeRendering } @@ -153,7 +153,7 @@ Column } width: parent.width - 2 * UM.Theme.getSize("default_margin").width color: UM.Theme.getColor("text") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") renderType: Text.NativeRendering textFormat: Text.RichText } diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 09e0b2584a..9ce86463f8 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -49,7 +49,7 @@ Column text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") source: UM.Theme.getIcon("warning") color: UM.Theme.getColor("warning") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") } // Progress bar, only visible when the backend is in the process of slice the printjob diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml index 7c90382892..1f15e0823f 100644 --- a/resources/qml/IconLabel.qml +++ b/resources/qml/IconLabel.qml @@ -43,7 +43,7 @@ Item anchors.verticalCenter: icon.verticalCenter text: "Empty label" color: UM.Theme.getColor("text") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") renderType: Text.NativeRendering } } \ No newline at end of file diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 45111992c1..717d6e925b 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -124,7 +124,7 @@ Item { } height: UM.Theme.getSize("jobspecs_line").height verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default_bold") color: UM.Theme.getColor("text_scene") text: CuraApplication.getSceneBoundingBoxString } diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 25dc3fac11..8a7094497e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -46,7 +46,7 @@ Column section.delegate: Label { text: section - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("configuration_item_text") bottomPadding: UM.Theme.getSize("default_margin").height } diff --git a/resources/qml/PrinterOutput/ExtruderBox.qml b/resources/qml/PrinterOutput/ExtruderBox.qml index 510a44f9da..d72f9ba0b2 100644 --- a/resources/qml/PrinterOutput/ExtruderBox.qml +++ b/resources/qml/PrinterOutput/ExtruderBox.qml @@ -45,7 +45,7 @@ Item { id: extruderTargetTemperature text: Math.round(extruderModel.targetHotendTemperature) + "°C" - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default_bold") color: UM.Theme.getColor("text_inactive") anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_margin").width diff --git a/resources/qml/PrinterOutput/HeatedBedBox.qml b/resources/qml/PrinterOutput/HeatedBedBox.qml index 962ffa9b01..59f7fa7bc6 100644 --- a/resources/qml/PrinterOutput/HeatedBedBox.qml +++ b/resources/qml/PrinterOutput/HeatedBedBox.qml @@ -34,7 +34,7 @@ Item { id: bedTargetTemperature text: printerModel != null ? printerModel.targetBedTemperature + "°C" : "" - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default_bold") color: UM.Theme.getColor("text_inactive") anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_margin").width diff --git a/resources/qml/PrinterOutput/OutputDeviceHeader.qml b/resources/qml/PrinterOutput/OutputDeviceHeader.qml index b5ed1b7b4e..4e81d852bb 100644 --- a/resources/qml/PrinterOutput/OutputDeviceHeader.qml +++ b/resources/qml/PrinterOutput/OutputDeviceHeader.qml @@ -43,7 +43,7 @@ Item { id: outputDeviceAddressLabel text: (outputDevice != null && outputDevice.address != null) ? outputDevice.address : "" - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default_bold") color: UM.Theme.getColor("text_inactive") anchors.top: parent.top anchors.right: parent.right @@ -54,7 +54,7 @@ Item { text: outputDevice != null ? "" : catalog.i18nc("@info:status", "The printer is not connected.") color: outputDevice != null && outputDevice.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") wrapMode: Text.WordWrap anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width From a3b45ff2039c22981643ff501780ee016f9a2bef Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 17:35:23 +0100 Subject: [PATCH 0479/1039] Simplify the viewOrientation controls --- resources/qml/ViewOrientationButton.qml | 16 +++++++++++++++ resources/qml/ViewOrientationControls.qml | 24 +++++++---------------- 2 files changed, 23 insertions(+), 17 deletions(-) create mode 100644 resources/qml/ViewOrientationButton.qml diff --git a/resources/qml/ViewOrientationButton.qml b/resources/qml/ViewOrientationButton.qml new file mode 100644 index 0000000000..682fd71b4e --- /dev/null +++ b/resources/qml/ViewOrientationButton.qml @@ -0,0 +1,16 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 + +import UM 1.4 as UM + +UM.SimpleButton +{ + width: UM.Theme.getSize("small_button").width + height: UM.Theme.getSize("small_button").height + hoverBackgroundColor: UM.Theme.getColor("small_button_hover") + hoverColor: UM.Theme.getColor("small_button_text_hover") + color: UM.Theme.getColor("small_button_text") + iconMargin: 0.5 * UM.Theme.getSize("wide_lining").width +} \ No newline at end of file diff --git a/resources/qml/ViewOrientationControls.qml b/resources/qml/ViewOrientationControls.qml index acf75b1b48..51ed6e3dcb 100644 --- a/resources/qml/ViewOrientationControls.qml +++ b/resources/qml/ViewOrientationControls.qml @@ -7,7 +7,7 @@ import QtQuick.Controls.Styles 1.1 import UM 1.4 as UM -// View orientation Item +// A row of buttons that control the view direction Row { id: viewOrientationControl @@ -16,43 +16,33 @@ Row height: childrenRect.height width: childrenRect.width - // #1 3d view - Button + ViewOrientationButton { iconSource: UM.Theme.getIcon("view_3d") - style: UM.Theme.styles.small_tool_button - onClicked:UM.Controller.rotateView("3d", 0) + onClicked: UM.Controller.rotateView("3d", 0) } - // #2 Front view - Button + ViewOrientationButton { iconSource: UM.Theme.getIcon("view_front") - style: UM.Theme.styles.small_tool_button onClicked: UM.Controller.rotateView("home", 0) } - // #3 Top view - Button + ViewOrientationButton { iconSource: UM.Theme.getIcon("view_top") - style: UM.Theme.styles.small_tool_button onClicked: UM.Controller.rotateView("y", 90) } - // #4 Left view - Button + ViewOrientationButton { iconSource: UM.Theme.getIcon("view_left") - style: UM.Theme.styles.small_tool_button onClicked: UM.Controller.rotateView("x", 90) } - // #5 Right view - Button + ViewOrientationButton { iconSource: UM.Theme.getIcon("view_right") - style: UM.Theme.styles.small_tool_button onClicked: UM.Controller.rotateView("x", -90) } } From 7f2f2090da66caa3686de27c3f5d6474aeeab8fe Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Nov 2018 17:35:58 +0100 Subject: [PATCH 0480/1039] Make small and very_small fonts actually smaller Rather than the same as default_bold and default. This also makes the extruder_icon font obsolete. Turns out it's actually just a very small font. Contributes to issue CURA-5876. --- resources/qml/ExtruderIcon.qml | 2 +- resources/themes/cura-light/theme.json | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index c103ee245c..7151719fb9 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -49,7 +49,7 @@ Item id: extruderNumberText anchors.centerIn: parent text: index + 1 - font: UM.Theme.getFont("extruder_icon") + font: UM.Theme.getFont("very_small") width: contentWidth height: contentHeight visible: extruderEnabled diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 57007827a8..a51b397262 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -41,12 +41,12 @@ "family": "Noto Sans" }, "small": { - "size": 1.0, - "weight": 63, + "size": 0.85, + "weight": 50, "family": "Noto Sans" }, "very_small": { - "size": 1.0, + "size": 0.7, "weight": 50, "family": "Noto Sans" }, @@ -64,12 +64,6 @@ "size": 1.15, "weight": 50, "family": "Noto Sans" - }, - "extruder_icon": - { - "size": 0.7, - "weight": 50, - "family": "Noto Sans" } }, From 5ddb3ff90994bd5e5579fc6a8f8ecaeac81a6859 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 26 Nov 2018 17:40:34 +0100 Subject: [PATCH 0481/1039] Factor out superfluous use of small_tool_button style The style was overly complicated for what it should do --- .../SimulationViewMainComponent.qml | 11 +- resources/themes/cura-light/styles.qml | 112 ------------------ 2 files changed, 8 insertions(+), 115 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index 4e038a1cf1..16b9aeaae6 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -6,7 +6,7 @@ import QtQuick.Controls 1.2 import QtQuick.Layouts 1.1 import QtQuick.Controls.Styles 1.1 -import UM 1.0 as UM +import UM 1.4 as UM import Cura 1.0 as Cura Item @@ -55,11 +55,16 @@ Item } - Button + UM.SimpleButton { id: playButton iconSource: !is_simulation_playing ? "./resources/simulation_resume.svg": "./resources/simulation_pause.svg" - style: UM.Theme.styles.small_tool_button + width: UM.Theme.getSize("small_button").width + height: UM.Theme.getSize("small_button").height + hoverBackgroundColor: UM.Theme.getColor("small_button_hover") + hoverColor: UM.Theme.getColor("small_button_text_hover") + color: UM.Theme.getColor("small_button_text") + iconMargin: 0.5 * UM.Theme.getSize("wide_lining").width visible: !UM.SimulationView.compatibilityMode Connections diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index f4aeb95bb3..f00aab44c0 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -436,118 +436,6 @@ QtObject } } - property Component small_tool_button: Component - { - ButtonStyle - { - background: Item - { - implicitWidth: Theme.getSize("small_button").width; - implicitHeight: Theme.getSize("small_button").height; - - Rectangle - { - id: smallButtonFace; - - anchors.fill: parent; - property bool down: control.pressed || (control.checkable && control.checked); - - color: - { - if(control.customColor !== undefined && control.customColor !== null) - { - return control.customColor - } - else if(control.checkable && control.checked && control.hovered) - { - return Theme.getColor("small_button_active_hover"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("small_button_active"); - } - else if(control.hovered) - { - return Theme.getColor("small_button_hover"); - } - else - { - return Theme.getColor("small_button"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - - border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? 2 * screenScaleFactor : 0 - border.color: Theme.getColor("tool_button_border") - - UM.RecolorImage - { - id: smallToolButtonArrow - - width: 5 - height: 5 - sourceSize.width: 5 - sourceSize.height: 5 - visible: control.menu != null; - color: - { - if(control.checkable && control.checked && control.hovered) - { - return Theme.getColor("small_button_text_active_hover"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("small_button_text_active"); - } - else if(control.hovered) - { - return Theme.getColor("small_button_text_hover"); - } - else - { - return Theme.getColor("small_button_text"); - } - } - source: Theme.getIcon("arrow_bottom") - } - } - } - - label: Item - { - UM.RecolorImage - { - anchors.centerIn: parent - opacity: !control.enabled ? 0.2 : 1.0 - source: control.iconSource; - width: Theme.getSize("small_button_icon").width - height: Theme.getSize("small_button_icon").height - color: - { - if(control.checkable && control.checked && control.hovered) - { - return Theme.getColor("small_button_text_active_hover"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("small_button_text_active"); - } - else if(control.hovered) - { - return Theme.getColor("small_button_text_hover"); - } - else - { - return Theme.getColor("small_button_text"); - } - } - - sourceSize: Theme.getSize("small_button_icon") - } - } - } - } - property Component progressbar: Component { ProgressBarStyle From ad3fa9548a2c78f484fef42336670be822335e8f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 17:53:38 +0100 Subject: [PATCH 0482/1039] Add sourceSize to the open file button. Contributes to CURA-5942. --- plugins/PrepareStage/PrepareMenu.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index a953c2b5d1..81799206a0 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -101,7 +101,8 @@ Item height: UM.Theme.getSize("button_icon").height color: UM.Theme.getColor("toolbar_button_text") - sourceSize: UM.Theme.getSize("button_icon") + sourceSize.width: width + sourceSize.height: height } background: Rectangle From fcc6af68af76db114875479066a63c8660785670 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 26 Nov 2018 17:55:25 +0100 Subject: [PATCH 0483/1039] Don't show the current checked version of the firmware if the version number we gather is ZERO. That means that there was a problem getting the right value. Contributes to CURA-5980. --- plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 4c60b95824..9efd3e956a 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -93,6 +93,11 @@ class FirmwareUpdateCheckerJob(Job): current_version = self.getCurrentVersion() + # This case indicates that was an error checking the version. + # It happens for instance when not connected to internet. + if current_version == self.ZERO_VERSION: + return + # If it is the first time the version is checked, the checked_version is "" setting_key_str = getSettingsKeyForMachine(machine_id) checked_version = Version(Application.getInstance().getPreferences().getValue(setting_key_str)) From 519e2a3399b69e41af048212c45eda6492d7d773 Mon Sep 17 00:00:00 2001 From: pinchies Date: Tue, 27 Nov 2018 15:06:54 +1100 Subject: [PATCH 0484/1039] uploaded wrong file... oops --- .../extruders/alfawise_u20_extruder_0.def.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 resources/extruders/alfawise_u20_extruder_0.def.json diff --git a/resources/extruders/alfawise_u20_extruder_0.def.json b/resources/extruders/alfawise_u20_extruder_0.def.json new file mode 100644 index 0000000000..2fbe3f1772 --- /dev/null +++ b/resources/extruders/alfawise_u20_extruder_0.def.json @@ -0,0 +1,16 @@ +{ + "id": "alfawise_u20_extruder_0", + "version": 2, + "name": "Extruder 1", + "inherits": "fdmextruder", + "metadata": { + "machine": "alfawise_u20", + "position": "0" + }, + + "overrides": { + "extruder_nr": { "default_value": 0 }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file From 47ed9e3f5db99114f30c884cea413dc4949544ec Mon Sep 17 00:00:00 2001 From: pinchies Date: Tue, 27 Nov 2018 15:09:36 +1100 Subject: [PATCH 0485/1039] deleting the old wrong file.... --- resources/extruders/alfawise_u20.def.json | 96 ----------------------- 1 file changed, 96 deletions(-) delete mode 100644 resources/extruders/alfawise_u20.def.json diff --git a/resources/extruders/alfawise_u20.def.json b/resources/extruders/alfawise_u20.def.json deleted file mode 100644 index f6dccce3ee..0000000000 --- a/resources/extruders/alfawise_u20.def.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "Alfawise U20", - "version": 2, - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "Samuel Pinches", - "manufacturer": "Alfawise", - "file_formats": "text/x-gcode", - "preferred_quality_type": "fine", - "machine_extruder_trains": - { - "0": "alfawise_u20_extruder_0" - } - }, - "overrides": { - "machine_name": { - "default_value": "Alfawise U20" - }, - "machine_start_gcode": { - "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 X0 Y0 ;move to the X/Y origin (Home)\nG28 Z0 ;move to the Z origin (Home)\nG1 Z15.0 F6000 ;move Z to position 15.0 mm as fast as possible\nG92 E0 ;zero the extruded length\nG1 X0.0 Y0.0 F1000.0 ;go to edge of print area\nG1 X60.0 E9.0 F1000.0 ;intro line\nG1 X100.0 E21.5 F1000.0 ;intro line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" - }, - "machine_end_gcode": { - "default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --" - }, - "machine_width": { - "default_value": 300 - }, - "machine_height": { - "default_value": 400 - }, - "machine_depth": { - "default_value": 300 - }, - "machine_heated_bed": { - "default_value": true - }, - "machine_center_is_zero": { - "default_value": false - }, - "gantry_height": { - "default_value": 10 - }, - "machine_gcode_flavor": { - "default_value": "RepRap (Marlin/Sprinter)" - }, - "material_diameter": { - "default_value": 1.75 - }, - "material_print_temperature": { - "default_value": 210 - }, - "material_bed_temperature": { - "default_value": 50 - }, - "layer_height": { - "default_value": 0.15 - }, - "layer_height_0": { - "default_value": 0.2 - }, - "wall_thickness": { - "default_value": 1.2 - }, - "speed_print": { - "default_value": 40 - }, - "speed_infill": { - "default_value": 40 - }, - "speed_wall": { - "default_value": 35 - }, - "speed_topbottom": { - "default_value": 35 - }, - "speed_travel": { - "default_value": 120 - }, - "speed_layer_0": { - "default_value": 20 - }, - "support_enable": { - "default_value": true - }, - "retraction_enable": { - "default_value": true - }, - "retraction_amount": { - "default_value": 5 - }, - "retraction_speed": { - "default_value": 45 - } - } -} \ No newline at end of file From 2e81b97623d542c23f7f0243871269e238e8fae9 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 27 Nov 2018 08:45:42 +0100 Subject: [PATCH 0486/1039] Use global_stack.extruders to find extruders CURA-5978 --- cura/Settings/MachineManager.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index f321ce94a6..f7ad108ad4 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -909,20 +909,14 @@ class MachineManager(QObject): # After CURA-4482 this should not be the case anymore, but we still want to support older project files. global_user_container = self._global_container_stack.userChanges - # Make sure extruder_stacks exists - extruder_stacks = [] #type: List[ExtruderStack] - - if previous_extruder_count == 1: - extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() - global_user_container = self._global_container_stack.userChanges - for setting_instance in global_user_container.findInstances(): setting_key = setting_instance.definition.key settable_per_extruder = self._global_container_stack.getProperty(setting_key, "settable_per_extruder") if settable_per_extruder: limit_to_extruder = int(self._global_container_stack.getProperty(setting_key, "limit_to_extruder")) - extruder_stack = extruder_stacks[max(0, limit_to_extruder)] + extruder_position = str(max(0, limit_to_extruder)) + extruder_stack = self._global_container_stack.extruders[extruder_position] extruder_stack.userChanges.setProperty(setting_key, "value", global_user_container.getProperty(setting_key, "value")) global_user_container.removeInstance(setting_key) From ec63e6c13066d307238a7e176f04adee8df1dbf3 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 27 Nov 2018 09:27:25 +0100 Subject: [PATCH 0487/1039] Added icons CURA-5941 --- resources/qml/SidebarSimple.qml | 53 ++++++--------------------------- 1 file changed, 9 insertions(+), 44 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 52fc9320f2..2e0f0d6c4c 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -192,13 +192,15 @@ Item id: qualityRowTitle source: UM.Theme.getIcon("category_layer_height") text: catalog.i18nc("@label", "Layer Height") + anchors.bottom: speedSlider.bottom + } // Show titles for the each quality slider ticks Item { - y: -5; anchors.left: speedSlider.left + anchors.top: speedSlider.bottom Repeater { model: qualityModel @@ -206,8 +208,7 @@ Item Label { anchors.verticalCenter: parent.verticalCenter - anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) + anchors.top: parent.bottom color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") text: { @@ -258,7 +259,7 @@ Item } //Print speed slider - Item + Rectangle { id: speedSlider width: Math.round(base.width * 0.55) @@ -367,12 +368,12 @@ Item Rectangle { - anchors.verticalCenter: parent.verticalCenter color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - width: 1 * screenScaleFactor - height: 6 * screenScaleFactor - y: 0 + implicitWidth: 5 * screenScaleFactor + implicitHeight: implicitWidth + anchors.verticalCenter: qualitySlider.verticalCenter x: Math.round(qualityModel.qualitySliderStepWidth * index) + radius: Math.round(implicitWidth / 2) } } @@ -453,42 +454,6 @@ Item } } - Label - { - id: speedLabel - anchors.top: speedSlider.bottom - - anchors.left: parent.left - - text: catalog.i18nc("@label", "Print Speed") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - width: Math.round(UM.Theme.getSize("print_setup_widget").width * 0.35) - elide: Text.ElideRight - } - - Label - { - anchors.bottom: speedLabel.bottom - anchors.left: speedSlider.left - - text: catalog.i18nc("@label", "Slower") - font: UM.Theme.getFont("default") - color: (qualityModel.availableTotalTicks > 1) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - horizontalAlignment: Text.AlignLeft - } - - Label - { - anchors.bottom: speedLabel.bottom - anchors.right: speedSlider.right - - text: catalog.i18nc("@label", "Faster") - font: UM.Theme.getFont("default") - color: (qualityModel.availableTotalTicks > 1) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - horizontalAlignment: Text.AlignRight - } - UM.SimpleButton { id: customisedSettings From 4be8af7cb278fc8f1a7118d1cfbc9ba02d47cd80 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 09:38:32 +0100 Subject: [PATCH 0488/1039] Restyle printer type headers It's now a grey box with the printer type name inside and some padding and such. Contributes to issue CURA-5876. --- .../ConfigurationListView.qml | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 8a7094497e..2f5bf0b1a2 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -43,12 +43,24 @@ Column section.property: "modelData.printerType" section.criteria: ViewSection.FullString - section.delegate: Label + section.delegate: Item { - text: section - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("configuration_item_text") - bottomPadding: UM.Theme.getSize("default_margin").height + height: printerTypeLabelBox.height + UM.Theme.getSize("default_margin").height + Rectangle + { + id: printerTypeLabelBox + color: UM.Theme.getColor("text_detail") + width: childrenRect.width + height: childrenRect.height + + Label + { + text: section + font: UM.Theme.getFont("small") + color: UM.Theme.getColor("configuration_item_text") + padding: UM.Theme.getSize("narrow_margin").width + } + } } model: (outputDevice != null) ? outputDevice.uniqueConfigurations : [] From 8e7e8354e7196b1e449f43f89c7aa521b9d43931 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 09:41:45 +0100 Subject: [PATCH 0489/1039] Set colors to the correct ones --- resources/themes/cura-light/theme.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 67e0c701c2..fdc5b2a2de 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -86,8 +86,8 @@ "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], "border": [127, 127, 127, 255], - "secondary": [245, 245, 245, 255], - "secondary_shadow": [228, 228, 228, 255], + "secondary": [240, 240, 240, 255], + "secondary_shadow": [216, 216, 216, 255], "primary_button": [38, 113, 231, 255], "primary_button_shadow": [27, 95, 202, 255], @@ -95,7 +95,7 @@ "primary_button_text": [255, 255, 255, 255], "secondary_button": [240, 240, 240, 255], - "secondary_button_shadow": [228, 228, 228, 255], + "secondary_button_shadow": [216, 216, 216, 255], "secondary_button_hover": [228, 228, 228, 255], "secondary_button_text": [30, 102, 215, 255], From bd42136712e63abc8043a41ce1004275f4f94d5f Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 27 Nov 2018 09:49:35 +0100 Subject: [PATCH 0490/1039] Fix GcodeStartEndFormatter to use fallback values CURA-5901 Use values from the global stack (if exist) as fallback values. --- plugins/CuraEngineBackend/StartSliceJob.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 79b1e5249c..273dc0b6f6 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -66,11 +66,19 @@ class GcodeStartEndFormatter(Formatter): return "{" + key + "}" key = key_fragments[0] - try: - return kwargs[str(extruder_nr)][key] - except KeyError: + + default_value_str = "{" + key + "}" + value = default_value_str + # "-1" is global stack, and if the setting value exists in the global stack, use it as the fallback value. + if key in kwargs["-1"]: + value = kwargs["-1"] + if key in kwargs[str(extruder_nr)]: + value = kwargs[str(extruder_nr)][key] + + if value == default_value_str: Logger.log("w", "Unable to replace '%s' placeholder in start/end g-code", key) - return "{" + key + "}" + + return value ## Job class that builds up the message of scene data to send to CuraEngine. From 39e1cfd6bc080cb193191a1d8472a30b3fb21274 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 09:50:01 +0100 Subject: [PATCH 0491/1039] Fix indentation. Contributes to CURA-5902. --- resources/definitions/alfawise_u20.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/alfawise_u20.def.json b/resources/definitions/alfawise_u20.def.json index abc206c4d2..87726fec3d 100644 --- a/resources/definitions/alfawise_u20.def.json +++ b/resources/definitions/alfawise_u20.def.json @@ -83,7 +83,7 @@ "support_enable": { "default_value": true }, - "retraction_enable": { + "retraction_enable": { "default_value": true }, "retraction_amount": { From edf8460619d9228a00154632abb76a88c2793ab3 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 27 Nov 2018 10:35:19 +0100 Subject: [PATCH 0492/1039] Return empty material model for empty material CURA-5982 --- plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 8314b0f089..f8726a5441 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -593,6 +593,15 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): def _createMaterialOutputModel(self, material_data: Dict[str, Any]) -> "MaterialOutputModel": material_manager = CuraApplication.getInstance().getMaterialManager() material_group_list = material_manager.getMaterialGroupListByGUID(material_data["guid"]) + # This can happen if the connected machine has no material in one or more extruders, so we should return an + # "empty" material model. + if material_group_list is None: + return MaterialOutputModel(guid = material_data["guid"], + type = material_data.get("type", ""), + color = material_data.get("color", ""), + brand = material_data.get("brand", ""), + name = material_data.get("name", "Empty") + ) # Sort the material groups by "is_read_only = True" first, and then the name alphabetically. read_only_material_group_list = list(filter(lambda x: x.is_read_only, material_group_list)) From 0cd9c8e0870e1ace2bb6add479b5fb5f83863d37 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 27 Nov 2018 10:52:49 +0100 Subject: [PATCH 0493/1039] Add machine images Contributes to CL-1150 --- .../resources/png/ultimaker_3.png | Bin 0 -> 792765 bytes .../resources/png/ultimaker_3_ext.png | Bin 0 -> 1038742 bytes .../resources/png/ultimaker_s5.png | Bin 0 -> 1476464 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/resources/png/ultimaker_3.png create mode 100644 plugins/UM3NetworkPrinting/resources/png/ultimaker_3_ext.png create mode 100644 plugins/UM3NetworkPrinting/resources/png/ultimaker_s5.png diff --git a/plugins/UM3NetworkPrinting/resources/png/ultimaker_3.png b/plugins/UM3NetworkPrinting/resources/png/ultimaker_3.png new file mode 100644 index 0000000000000000000000000000000000000000..4639cb3fde2c32574ce6743fd3515a7c38aa1290 GIT binary patch literal 792765 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 z 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
    CR>N#?IyF`X67lk6IzNjTH0*R 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%0DMp8deP+WM}2{3AU5;g7JDLtc347PoHQ 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

    eS+UQq<;XpOwFGW10rl=Xs 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�D;Sj6wQ<8NnKz;?yZyt9m{SH!lOu!x$lBm= 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

  • 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%0APM<8$|%uEW& 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

    O(?^|d9>Hhj!TjE=&niL)kHD~}J>A6sh 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

    wtIQ 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

    S^ZE_;q_Nu;qA9BGhZy|W;0f+HQ)dK-?G1d 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 xi_seE(G%m;54WXd9Oso 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�-H8DkEOevpK@-KcPnKJ71P+HI=F3Y=^MWtk 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 literal 0 HcmV?d00001 diff --git a/plugins/UM3NetworkPrinting/resources/png/ultimaker_s5.png b/plugins/UM3NetworkPrinting/resources/png/ultimaker_s5.png new file mode 100644 index 0000000000000000000000000000000000000000..29ba428e38a90b74072823c941e10a173ae7171f GIT binary patch literal 1476464 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 N_a*4HE(SsGEo$F;M*APO*f5|nw( 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ⅆyW=&FjU1IDC-=Pv&(m{Uy@xHRq)jr`1cU{ckSk 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�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

    lDe^P-*N94 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�MU=&1+&9XO05` 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

    ZE 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�rPoBcO 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%0D7pp! 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�U%TvjZe|T5 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�? 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�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%0AC&4LrD+4A0q>Q?55JQ)hvf^~r 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∾lkZE)zY(1oY;2!! z;*Kdix8ya-?D{@{5YW_qYu^m}G~D<5Qg4)F+-1-$_hU)_`@SFZ)P3GJ3`4uDeq&?I*m~#m6gn#4Fyn$t zZRI#}XCWb)x4`!1pr2+C9Vo0caOK^$AaaV$m0SgSu|2KCmN`tR8z~^ln<<@qC2V7Y z2U~MB+@K012OHg9VrwEGMRR<^@B)t%wsM@_oFiF8SL6t|2iE(K@ot#o? zId_+o*FsS;B|?$4G3q27mF~p|Ag71YmdQ~alcVIN5Y<3}5%{swT8V>J4+3EDFGs?b z1Sa`Nzy{5uwyl-b5*4U|P%uW)ygC^$DJWqD`34}^6hLIfn#?RBt#2D$w=M0%WPZbO zh_a{384rO}hE}O*rCxnjzb*U$^w}~*O{lZ@hyae)rp;*h`)kXpXdEX9!@62(d?9*Z7Mc z`~YwhJbm^8VBlLn_%nRtoww1o8w53;RRC_@dL74CAL0Ds63$7P%z1Ty_rLLNeB-_M zuwGsy8OpH;vkWaxW**nxegz;x>|0Q5!G#De6?|&Q5&pLei`N#0}4B!9$ zH*x3IZS?Ir)3`1G7wwckOZt|n*8D7>flP5AvjM76$0c5%+#k+a_>CFur4V>t92=TB>3~5R-1m4IjuhH9F*^a2t~HDojX$bBywwcXmQ3p-)-NmRuT0p~L`O zWDRjsKAYsSHotwlMta6?A>bMddG6vfF0CyeUgwo5L*Z4v%6U20Yo6eoLI4 z=d`>SMnl8TOa5qok1@;m{<77Qgk(xe>|&U0TS+jUpZRufpB0G8AfI zrh+N#8EZ3R;&KkfU)c^9tlyLj;Azbhy^th!XW1u7zNT@yG;XKHn4R>6j8jVElh)bO zS+v8&jAs(hu!93aQW%pb4GE_q)eizld4kM$R3oXRHL$pH#WqRW7J0H%P8(~oKI@7C z6fmi493P(`#)x~5o}mu`uidxCwLM;3T%xW#P7aT8xomO&@nc-Sc^g#~ zu)Ms$w3&c|_`)ui&vATm6%iHgKY4;Xw{GEZegrV%;`|I(POjq7lTXmD7kKxrH*x2+ zH?df)QPmYrU%bFccYy2HPVnT(GfbKpLLaeMT;lj}hNq_&m`*1kBAj0=aOLC>t91)U zgz2O~3;}gjBWyN6q0bujWYV=|<3%=E!z(S2k9U!iG=D}d6ML|K7gdv3(rKI7G zg&Z$xNdQLFFLNO-7i*s-Z)}jUNlgI1xOW#bw2f67UCL|ATDGH|!T4Abx`q(sRGLVV zMY6ECMBu8TDWXiomd7>j2Xy|w+`5_Oo}lF>Eu@LmFI?xW1QkSDWg#oM2|EJnB4>cE zoInv`27XH+H;jd}jS<1z!x(-6YIQF4>?+4>Ac%+%`T*~MrmDbPqpE6sE5lc&x#%2dpCuzbRJrAp08ri`b8pZ! z0Zf91v^X(%!i+az0JI9<0HqydkT2Sh=8s1T_b~4PM^?dz^z@WrrXHkL^N@(dy&W0@ z%+5|S?ftACEC6fLR>zr+Ggx9+6&MB~IyGczlDGk35t6_!^AF@0XaPsYU_C<&1zHUR zT23{Al)_j6<^ib7Yqwhvi4G@*I@3Q4+(9cjNg_MTfKL*d07?MG-0bCqnN+E?aS*a9 zW&1noyi!tj%Kb%T9#$9tXH!tjxWcxth}FnIsbUqYF%LxW+HV1GoIJ2(%W+z1)4s-K zpdCe_H?|~y1s{eQG?+B3r}SVF^(Rsx3N4IeAn1`9ojwHxk5JDVOVH{7G1h2*d{SXr zGd7zgD(8!A*YXBYZiVLtCd77)8z*!8r@#7hoLw$aRSs7VX7Dkf>jGE}3T?Z_?W-sF z&;R}>SgbYxIRuWFHxnGr8ccn!mG)dxY`nQT6YIF8WHdny%h0@RRvp8D5(wR9jpIp$ zzxm7WlyRK^r1ny6K&X$FQ+N>A%-QDJn34Vw?cw(JHr`8Fi!9g)-x(J` z2WwVnLbf3hA;f^7JlIzis;YwbPIGZ(5u9L^%8N7(gDa4~y?5}nLs<8?dgTOeUlGd3KJI<70gB=ph&$*RP$R4;^mbzJ=4XOPrmbqSAb(&L5(#6f?AWKb17ihGW@{~qRANHD~E%ltLWAn#28Rj^-i9U zNpHB%%4@7wzU+w0B(0`=D1= zK}X{3$uizMNVNuba>55T$)&<40_2sNjH!*n!I)9G3IPu1m#1hZ6=t&KX+Gh!~zZ(Gs(G6|jOeS0-wXmP;c8NOL)6 z%iEv^Bm>``EeWtMkgdi|I)aZr(OD#D@QRvfNWcwiduB}Gbb{Px6=|fEDyxDe@flB<(OGff#}&EhPe&;5aJ%%D014Peu-b zVc8H;M%clT2XikV7@BA}iUE?ya&suSH9)RR&ubqz_Lz9!#$lCs9y<#UGP(wWl}%Ov zl|X90BQNQCM>ZNWGnB5U@%hlB=71Xql7!F2jpT%KNXR$F0OAfO6T+40OxjVSLgbB1 zqLaXosNOHpJhr3-WTUu4P-C2N;i0l5UpTZls0i~LC!*AZ79qM~-8s#N(=cTNjip?S zvbpovH8+&x70~J{kTT~CrN0 zY!~8v$jmsXJPxY50NMeFy(n}^OA-1CK@1?Sa-eAKDS8|n>_|8qE3`6iE@^1!JAH;llnHwZdKlov@WOIREAwpQk$oQ^ zil!LhC7+HI_%@!Z(kp60Q9JZ7@h*#$_MC9Rh)61pq6)awQ!yU(2=H9#914H3cEvbo zxq(c65F&Asza@`OUKl*w2l=wYngYWiqE{y8RaRSOyW}|##h6b-iI=8TE^#DDXt3j4 zs@zU%lcHN-F)I3(X?|=#vDfInFlCNSPQ~=R-Iw}fJRr?ymVd)5dv6CCq zhGWL{Yd3Iyae>YKFK~P`!_jOeiETp<=W8t1YyAEXAA-pvv==~#n9i>uZ~$V9y76$W zgR3XPZMr2U&2^k!T%f8dy!+OBIK4Q>>G^Zqx_KMF{lg!ySS<18>#xF94(E#nj!%y8 z;PDeQ)dbEttk+B2ym<@HU!0-uI9bxfXQ@+zG%7_ z<-Mh;&S4=$hP#*)-v_00T?6Fg&4^`~xa~IOdzPC|@vpBah0kY?BnF3w$^%tp`?~Z# zEA~>_moymHK4XaKx%S!ExLV5HUApj>>8N(?avm7IcmFea9C9cse7EH3idafM)|_qT{ZKMLdB@m2hZ*R*US7JR>{BlHB!nngwkuW8 z_j{Ds;_h2;`&T}@ivS4QGr47nE}kF1W7qYv@5*+o%AuK5YK$otR!<>K78UI#fsy8n z5_3z@96ahnF`n}CaS|mk=VZss>S|00s3b)pX64I-r~sPms;DcX{dBO3Dk#>}n1en7 zBw{ZC8Ue1T5uFANcjdxP-T{jN%DOJJ*kcm!$Kq=x~%w;?KPP5TTBUhneulzc0u=NGGgcCiLCrY1XvM< zN5&#_9!M61E!POSl*7i8tdW(;w7HP^vlBK;G|mIQVsyd)dWgqd0FqbCkhPO~2si`~ zdZ%h0k&atI6U5LMR5=~K4SE`< zz7co6XFhu`cjJTEXYOmAeQs7pX$NkcbM{_)Eg#IyKASC_kE9}TGMrwLrF(Q~k4Y2@ z_dE{SKt4OIk?)vNX7$AEJh>drz+%Y8yL?TvN3?J|b4qaznOn|(JrC_Y)dj4x1VD@N zmqC!7P)(l@S8UrlYs^X9uw#*6J=auM=!>xvNFi8cdJNAjC4vO|v#~}@1*ndYcKBlP z$n3R)SU}dmZ}v59$}PX+yKDx%l&l!9RFe@hLQ(~UMPEA}DGl35O2`V^BT)?8Lznyg z`g6^hCMs2-#VUPF6uVhMdej221vR?#zbnM(ON^G1h^Ogt{@z7JtB26jL*5ka8fIRL zY8}FqoscyJhDbu1ZoGnNSmZ&fu$mQO>uS6TkydEWYtf^sK+@5;l@~*9Sb;QQN@(42 zN+D*@Fn*9>UB)yb7kgwaVh264$k6Z`&jNopMFh?RJOZf#BU7CSX?#Y__`-X%Ge0UY zR>i0lV?>rWjBDL6+gK`^qF<-XZSv|d^W=Sa{TS(@Eavs}Cim&_cG-c6r*cywa@$vo za!~}(=9uO9+n>%C{a4B?ViSR#-BxF)ty5+Je6gsP0;V{71dMG}r#rZVOX%n`xz74W z?8+z*3`wxajpkb;30K^F&NM=#NJF2l4XM|jPq_|^kT8;}7NaNPJ+X)=g+*{yFAD(? zNa~P}&pje-`M#P%FEx=2NOrpMZhiiNB*V*;F*#?XoLq)9I;pVeJsMwndh2x$Rba>& zi{%=x&M$DVe~5?2Cm0q3F0Ko{e|3hZ&tBv0`3(vZzW(k9eEa5xBU#!pXrt4%SN~Q9OVCJ;plX`1k}bU!7uanep={@8kUP3UANP@ZozOV7c1I zch7&oVlkkWg3Zkq_wL=t#r2h84$07QgU>#Gh>PnBoL*kz_30&Ey?%p(!+oR-Y;HDK z3>h~!BQ9^oTXjiW%{?@n4?E+kETG)UaHL58BJoQcmhNv?^n!wTtu&5DxvKz1b@L$i zVcZ)1Px#L500N!t+1-x(aJF>;61(c7_Sa7wA>A|P&+T6#aw`bq?_;=`8_ap$r##9H zFrvz^DztdN-JI+5`|faD-so@vQ){{9gOl7Bi(ZN$)Ym zxe4=Kg20|LeSa6>?7C)ZvAliFd~6U8`Q;?HJ##d5RNa&lF-XE(EIpo}CT1Mqf#GLmNKQ4T;9$-}nA z3*HXG$SXg%FiUh^z}vFZMBpLNTxY*F(mV*(mC+6vs)K``43Qyb7a+Sf!xvPME27XL z+fgT&@qy_*+~1l^ctR{JuFEWrwM!bl)1Ws4=I#-OdfHL-lqMQBZA{{{nPHu3s9+$# z7SVvI2qCySlAG-1~*C!i>(R!pP>vk>3&&-EFMf2%Jt* z`+hqTZX~nkSAVRfn-QS4+s0bO*IhtF1dh{oEs$EB1vA`QLLso)JzhYMX>D3S&IVUyMI`|pa)d$6L20VpcfL#DBzHS^hz%&DnN4m2wLA&brkpPTy*_x8L(V(wb zR8YG@wR{;LX!H-4lL9d#wzB1Y+h<9}0|U$W+9i)#gNPf^gN))#)45QcP^d(TAkrk0 z=^GIDumMTyy_V-p86*xV+!2bR|?j0TB(ftQ_ z@8Kgne*6fl)quBWZ}FSoeTgxxu*eD5mm7@v2*Y}bl>qhT3Ibqtun!2JGT_zg3w-w0gdDBfA9HCU*2PW*7^6m zOY!{LT{3ZQ@VV=I{o3_^?;6LhS9@P?-4CGA$azK=85!@zeQxvAAN%@oHDG{w$a04i8^jzxU9xzo3fk14j-(UFbr~Qp?59#?ZMrCZ`b!G3~#ov?|RKE zLYsL0`x%CAKOd+?QATY{i^8Cv&&<1Z%c$hxX@<`T!s+F8;R!`}GhG?%@4@l(W1awn z)Sewg8Q>K$29raW9Z?dO)Rk7=mDp&&~)?PTL>Yp`_WSk|-O>_G2wNw@}ZH7i@Cp2leNA~U% zP7{fg+|Kbt5s5JxUy|bc7W_$k␢RJF8qeZkNI8f|_Z((|r&l%){P7gyDsYRnC zVC{-0bPk<#)8I?cDJ4RKW&&f0ldq4)J~!n9LG#@hlB<$T!zEpjjtH*f3`|r*Kw1?j zTe4O^$ytdRcaglSmN?)ScL4OTA02ZyI$>IkM_s!DM6-mYNwVwC?GRw6hoF%bL95;d zm4@!<&N2f|yd!CYZLi}#+7b}@bq4R}?*&YAP}D!8=UY_dxpqa=(`bz@X?*9o<-M)N ztJ4%Dh9E4eF9_MCkme!p*S#CJLcqFMHWuSMHB}^J3<{K_VDP*ZjBf@S0Z^*OegTN| zC`Lt?Ofn;DMJF@tAjcU_$?5{O^>0IkQxDTYcn$G~x_krqkur&_#moe*NqMp_#uqfs z1r=^piAcl@LDZ${YTR@!3Z{c4RVjaxo_#Es@_~>?xa~2vudsfi(Qpz|xZABW^6V zy=XGsA`4SQIGYaA66sPmwqAK_e;bx)`|oE)yrz-B>Z1Aj)&x_m+3pz$!4*0=TeTo^ zdt(>oFX>3dM$9@pRuJFE?&mxs0F;!i03a}07-DQ+2ZT(zQ_K-F;)x3_U0NVk3Pa`v4U>Su-ROr$`b2?L*q;17JGa9 z5XpG<`~~u2z`^Pm-~R9d%OT_7;27UOdycbdx;mXU*d3oAHV&>*ZB04 zpWyL>_wf4k6bHxmadWeUK(Jmcu^n%4a&(Nh-@S&`jC&`CI6FVbYIT71dWBLpUfjO# zW-GDA0koV~vS1(O6lD})h4H+Onr5`6s%|juqDWkxCJ_vSSKIXcHD?5nhis7^3d13@ zR?zb^)Bl{mb{S^*{k|6JgwO1_&-}A@J?}1K@4Q9!{C@rSZ`%VBR7cS8;%wE=kzsc~ zSuoBafKDS&f6VJojexPi8ghm)qzv)Aw(vGg<&j5aw*tC$5It~r%c|D@{;qrTUU5wq^M4ls%)J~vA><(=XS0Q+$+)QqXm|M9b9&;E zuucNTWEptfd+NLIKz6T7FwyQ1^1yct7Jzxk6)rd%d4ddwfK4$8;qnDAMU5oW11}f! zVUYw2@v6_OQ$Aq%d_3zk7O=AvBUi+QU&_`t`r`5u`+En-S)dr9T2KmuNO}uxMRb!A zcC2zx?!vpOd&QHbP7Lm0vdOR*8fig;`Ds-PBkjRd_9IzMkty_4N*CQC3S}-bs&!Ct zkR~ui&{DBnpgPF3KNV69XtOAzz#>v|g&P1|SrGTCB?@SQYV{}@14UV_^N8Ku>KaHj zP@zH(xb4HJi24Ku8f<+t6k5dqu!E`+7AS2k6;&|;ru4z;$y5*bFK*jVxSk(h|JV!IqIHO=LJzkZ9tI6~zVB4h2|%5% zj{bYn4xEPMhliH?_+3`ggGAcwTLVMYqDbfg6U6&-wLqa51+cc;;`ib{vsOq#g{5Q_ zg%@Y7o^r_{uwXfW$tuZul4CpHQ|i@;T$ ze}l(WLam84wKSPxXVisqQU>b7c~&z}*qptljM{qjyI&=>2nqnbQCh-U5fB&^#vfan z$`rgeOp`FGSlW^wwZZqI3g>S)z*vD}Xobl1DHiFNhzFdf)#|+7 z1s&In7>;W$-C~jJ=G3}B9UUBCv0UJbufM|YzW5TKfB6;u?(;w3?CKi80>A(KON>Ra zf3Sx)r*E*g9`N}75wvV^vn{yX6dWENW0f+bT;uBE90$iIIM`bQ5Zqi}(VxA@s7PjGp4g*T^HSRdWPoAXNyS#ff701?6Q(E+~s{%gEB zJHv8eMwU-L{S@nZ7)z7e0P<46cMgR+M zLddtCrq%G6diTfBMUkKt7P;#3w^YN5P(>NHD5YW?TbHJ}&f4q6yUtSo+NJN#b=_Ux z-^Dxn$e4+4E8>xd+RtBGJs>n z9z3==vS6%=HjkV(;S;x~f{~iH#c$%z^*roEM(sc@tS|jsy2Il@R=qIbwBj`9*IQ=| z*kwOZCcK-HXwYN8+2uJ(0`~Uyu-%SEZvqo!YVj+zQ=uvD|a9fA)*7?3g-oGGfRfr?PsrA}I)uWZAE2N3W z8Ji`FGOa{F4`J)dB$Io!8Yk81#F>&qxY22YOh#(87O1ec!MP$lyHr9sR})G!{<$GT z%mdX-f}Fn@@)C<0cSb$)etOi8uN?uV`MmnICeSgSHag0;bgvo}3gv50FSPPyzy_ z5kx$w!;CQMAhihV5SgKZ%D0WdR6O2Py?{V-k%PDU|%4k`TZ3yxwRbFeHJ3rieUqJ;<)6VH6GAGBntV$x0Zp zlhchiqG<*ju7{b96Gz%D(VOi~9|(nYrU`lO@*h9>}Urj#=TzktzJ9?c@H={=lg zwOgaMa_HE$@y)Ew_{M9hrypjKNVQA8_4IBR0w8pIrqk|3JunK~K)RG58F-ydJM+F) zw*aI6bpjOi7V31u zW9s#DPH1Zl%4o+XId=k^w49=@i3m_N#rpNiuJU*SV9KMw(_>62$0}2!r>(=7j6*M3OfUaOO?g@Vv(ybT0_t~q{jR+k!>>T5?>_%i^(*p5`N~fpM zpFw__JZg_bL;5uXMxzCFM}Tw%+KuCS)G>_yi5mgZv9GPvsF#y!OdoySh6cUbez35) zox3h2P@Ez(IsN&)r5PRtmVRx9Xs`K2yazR`l5HK$*r5Omz|PJ?^Tuc6iM0Y^#$g^5 z;R3={%+9veXhlIiBg%mbqbod;N;J}wj4!nH=2)f*7|*f9){uW!3z|mma9Q=S4j%o- z=&~4S{AmW%IAK17el88ya~xfS06gL+c&kEFR~5_mJW`@e(mQVQ!t9(YkB&49tBj6u z%%}nk-hq?!q@jm-gnts~2-Ip3z1bDt<#ILIhgty1l(h=fx`Q6be@&LD|D6Rm+B?MQ za0Zoxy}cFI2M5@03jX_F{~F(Y{|p~|^a-}(24`pIc>jZskOwPdesQtEA`iHCe2CSM z@a*L&(y+$i!9HHUc!8gM_EU`85pUkU#^Xm1aB}}1zW(khZZ;dNmJ9s$4__iLR`|)2 zPx1Wa8>|)!9PADF%^!Y?#}A(%A)^%F@uMd=zc|Ouc7xNiE3Ef!@ZjVGFJC=JMZ&@1 z0nRTku)khm$jR1GdK^KT?9Yif^pPMZ1=*cl-?%luE|W9T6Ch={_*oZNI$3pHFTrus zFd#3Ntv1r^)$5Ub&6~)~o&S?zcKBp|ZU5TUMY#V?|4daHJ^f79+tD_6>Adsv-(NQk zOn~ciGWqU&Tv4Mb_U-l>{wc2?6#>(pDRE$fsf2W#di06{SJzjtNCvmqCRZ?KmTRC* zy3aeyImhPAH;cc|jV|+7zwmci#1xG&@x5Kw0k^Gh^Jm@lz5aJ`;n6xmY0QhYNJ8P} z*gJ#GoEZD(_O)|(A0G6()}{JC8W~!1Pzg|X_Zpf)M04q8#3Rb$jbOIsnRMjaTb~?QDI;@W#ulbz;$)JU~+ggHFR6BeOA!dtRV`CJP4_cu_%H`+=YU?nPnY$=aea6#iW8 z7uWW;g?dZt{s1(uWf%u+y^|z!+Jq1*5eb#FB5Kt5I#J1CXO83{^Y+hqlCTa3Z3*fi zRw40wQ$7;CJJNf+0dX&X)Er1{ZdDDC*!6w}lC42yp0^9xifY|;+|o&zK{`*;D|Y5l zCJpxI49fHo*Ef_(R0m+)T38?v=TCvaa(F;GlFMZ4IC77v`B@V3sK0cW;us-6x2 zEArgBt~3xmp%BVPkn8(;x$@XY>@YfyJRLsQ7Jb%?-SHgCECAvWqUdN{oG00Srx`uD z&nk(Z|0z%l?Tm2%7%54sgcZvc zuP?;sG#TaECu2%rhI<0qYBkHWMY<3}Qs#4MnL;;+L^@_kjdyTQYz=bTOR++!rC1DQ zcHUKCa&c6JS?nst0NFj?obJAK3N%wHf#hCkfW}Mi0Razdfz8jbbSYJ4FkvknyFZP& z)iG6&5P6=OOiCWvI0sm*28ClH1*D=yFjX490)&{HbEDWGEEZei*1MFH{%14rbq3#9 zK~Bw8a;GB&=`R3Z+gGN(5y4bUX@q=uhg@j8*9_r3_6u_D2iLuFf~Q8cC=XTMkKdKx z<@T8dj^f<=6;RbqpCNbkI7`P7ZM9mIdl)F)Ddm+yyA|$_p53!}6>ov38TY%O+Wqk8 zJjdfmQ~gY&Imv_Nkp|KDEayiC=akX-f>dZJSS}WL`0ydl&(HAfH(%r1Z@xVgE)$-PH7+}p#eH?Oco#`_9fxu5Us&n(K1AoDRG6 z-$pi5V+()IjUN5`cNu4P>BiweNVmV+U)$ROg6?Mbxof=qz1E6aM*q7jaUo64O?38m ztjpi`_2VO8c<|7G&;++@6E*=MC8KJ^kj%1Qm{&OiM!Y9Ojj~(b?=pz=*0cat@3?0E znp?%1_p5>UZo2RMZa;>*UK65FdcT_zsk#jUm{{!r)G}SC$r!tNzcVt(4Fy^eIfN-o zMA{_x0FXy0;Q8k6b?D|9V+koZT_^&DejRVE0Zees>6yx?eNQ^T6L*ct3Tch8lFaCdD0FcQm1@*OYkIC(?sFSRAF6~;NI^HR2^e4lPhct zb&k}p+I0+3AbWiuq~sn&g!fRqs((regYO#w3E@yqf?QkI7x?(0f`!k^&IHMb9c=_i z39Ne&hLxTNpn2|T6wJxOz%{X!fVI2xpnC8Ci5PPp1rRT2oVpNq=9Gnks|45*-v{U! zwy#9$0M9KL$s+-B*&0#Ql}2T&XFCVJLQ&tu_RnabxCcFX{V#H#slws>-4$c)Jow3@ zqg1u)%EAK0o_?j$oR{1OU+*wL`ipe*iRTgsMd0s*ohX$i%WX?+|A2hQi%8Kozmpxo%o*oj0}nxq<(W8?QuVjUfwZu(dAKu2Nr{!@JORfG46TV!JfXNp*%zpiZNh zv&@ibmCAr3=$rfD4??3zUoBOOf`LRNfV!eu!|2e?DWe(G*Tf0S=(92sC5UTklyjLw zK5RuY?aU8;kCNQ;>%|-68XI9-qtxxUG^%QJVWS4=(Z?gG<~4UY7{DFPvBBq6KZ-2e zTKFvD7^%(|Jc`HVK5M`z6eE?nkZU|UG#GMe?3_m-XI~|R{9!UD>!)#VxwXC?lDt(s zVr^4u25b*^f>%BO>oi$Zu~Ag=bynwR!jM#tY7>`-19LFZl>fhIU`q0EIqjWnw4NLQlqUf;bIb%`&e3@`CTYX>a zQVNnRAW2b6%RGqngzHq|1;@$5L2_#Iv!~VIogu4L96Kvcj*jue{yzTsfBm=63LM|N zj}M+a!NJ}FFMs$RV@Y`O-p5$xC0@LIffp}d;{EqO#{GLII6uEYO8fXnzj%UsCu=Mu zp=!m|^$p&hpJBbX!mDR5aDBDKgNG+LI{rC+^Z6fe@7{g9ckcxM@?ZUHeDcYsxOZ}b z*Jr1A@BTw9bH>x>KVZ3B;`<-I!OuVYbKJl82&ZSKI5|1Q>G>7T&M&ZBt}t%5*gIHZ zZ+{<~?TCZ*%IivUjU8_Y>+|(RZUHLK6fHVMqmEmNI|)X`i|QKPTN)kpaCZiDcqj}8 zYR7mx(!JHm5#3SuiF^1*blQI3=eqZ<`^{-&*EMseNXW21^4(pp{<_;nA^*P82=03z z35@cKqS&fn(QVoBoImyTqYW^|FfA)GJlFwvdF0&-QLQ!V;lTm6n=8};)H=H5cWS(t zTdMk&)c__&g`I|g?lTh8yNoaW^%LUJUN+q(s`>lxvg++(O!2q>tHmM;{7b%;c0d!u z`zFtGzo}SZ+UkgE*H|SEBtaPB_o&*fE8;SJkhu;{ z57m{1G*MjV>kUa59F%b#`a)?*nsJk%vqlfqjRJ1`L#H@P6B3ebA5*7-B&Q#7&>uC4 z9At}F>PDgB!#s8Z^CUoJ9g4;rlahjbMZGmQ0a&ATwa&3>XM*W%IjF!D1fNHOD~VN+ zJbI^=;xy(4NJFR|ZDw3;$ZmY#v(-~790peq7cyGG(ylB7l$qcOgx{I>Rz;~m$_$q` zz>|YtSm-z5RT9>0Y5P2>PedgF7J0!4gaCs=&>5&G6rUk`?VM^k0vRyf#tpEwR`UjO zXs%39X`x<18fHWoyXh42E~n|7tlTB}3BlqZ8KYWF8QXI)qb2}RdJQ$sD7~`~YlEIs z0!?I1$uoInXS#;t(6b3`4(t|q{f#f0hITd}@At_85P(aW!0NWpSP`6>>zVT;3a_P5z!fJknb*mAQMH<|urtMOLpcE@d(|nCFkUpP z1-uZj^B$LZ5q3}6u<`0cLE6o%XtgjkPDCe z^Zj5KC`OwkKbuu7DkXW15fNM4QWOku%VPY}Jf!e64>Mm>wVGhb4ariai)8f{s!p>^29xz>m7$TH$U%y1T z6N*eiX2gsu{BUOlqTsXbVFud$x@ZbB^imPBvyovK6|CK6%i!y%F0;kkY&*6{jOJq9 zBkww-Xx?Wh9vWAo^C0O%+HCEy)uVDvzNeI(-kiUyrNYplJxFr^RE>iS8q}MT$GImr zMkPr0=qKX0N`=CVRdJ4#SlZXn`BkZu_dskk9Y-vn>$J`DKlF~$L~KZB0MATwWMlwo z$esxiEY%y4g22MU;!*t}9^9?;CGy*vlMBX5daV zc#}W*88=<1GjuzpQ=ZcR%Tz%cJLfOSF+ooy5|<@nZROGSy%i)zTO%P#Ax@2{8#Z^t zfzhGqZP{tCIZ6`P^~l|II~8FC!T}}7=D>5FOazpY8bK+f&>>c?1~}zWnw}y#L-4?5_`Saejftdynv!|M;)*{P}ap*%>acF7WpCOZ?>1 z&v3YZgzZ?czkd&J&rY$ow}(7rKr7aJD?I)Fdptb3kM(MaSFc~;-tm2N=sMk)5liFz z+xtd`;RGedMDnw!ZO`KD8n2dGT$ghv6nPa51k&^@)dDTGJ^$a#Ul&Q$zD zzH8`2^T3E7`}%PP80EpUKWtv984zHfrx30{Yp3Om)B#sZyO}QHJd&f|=;=bst%biG zU2&T*?t1kW^ZvWL3@f|7cWbHUOld~60wCuF(y%}&WM{@mt1^uQruY|h>uLYf5ad+G zZjYyVog83l1E8vUE5|Qnp&*>?5jAsb&aQAcLB=yd<^UhGdZ;snorY3psWc3a<=VT? zyQ8&Q)l&yRoFBJBH?mf{#+9+ENO{2d#nQIW zCn(uLsu^|DU=(M%3yn3VsH-;P67NHvT3O81Ry(|n)r+m_q$5xDdL|ZOqA-AKYLm^K zMwW%w!zpUtO<_>9bhyOI9lyaN`sW`RQ~o@ab@M0JB`_NW|F zsw@{iBIG2Q0a2*Uxydr+kY^k_l|d6c8KqP=)=4|>)s(QLG|KTSsoy{(MwN&lX93FS zkzi!mHg~3HnzqRZsf3hjM4*&fy>^w&7b%0rEK8SkW2qZID$^@F>;Z8eWhc|31c?y< z40-U#6^l%=Gu?Q^ATUE-sZP@pIKgI+g5icyT^pnP9t57s)r>g_O#k$==54Vpy|vvWrIubr&}jCV&N1RYl?&G4 zYf&>E8tH!nvhBb)0Tmqe-<70~`{a8Fqj+8P%)27=2^txh&R7H0@FGMjO|GyHm_ z2%8BoE{ettc0!6mphDw(FPB{a!CGKftz@6p1y3DQtD@F|zGyB$$BpBk&Y4}^0GHkQ zWIT27Lf09hR)8I#vk9oBqKsZ|B$1XH-X+$ktR1F+8Td%^qeXJG(Y8jEzp3z#l!MGXSVZl8pxPNkjFTVZ;VSiAH4Sn-+uobDXox` z;ES)mz~jg7Lr`(BUg6V^KgRQyFK{z%P)fm@({tQA+Q(|ShConyuW(0OG(1z8?=d6g zlQ><|fdZEsn#6Ed(QtCMNBF$Gdz#V!50_bf_G>99UbvaHOyQpgpQ5D|EC=hYkM9QWkqM<*Y0`#h6!PfQ14L-pvgTJ?8K38jg7!xleZi6f?}7~ z*SNaA!NdC}lR67FUI~F`!c-usq81;g1D}8dM9dDv)IokqJPg?hcqJ~>3DD@6|N{zA)+y_+lr>Rgo2=xeGP9iOo5Hsw8m9C1r3LU6-JtZ+~f%~t{L8B_;QO}vIwf$6|$6w2qGOO82GDzMb1=2 z1XQE9#=mM5$wcE|?HC}ssEDl<=@~G? zNFoRe(9JFyjZXyq)oPu!7-l{o=#wK5F&LxLtgk<(1j+RerNNuVpRu+`7#91@jA_z}lm=`)eR;_CS>qoWL-y#ZTCpAy*2{%O z@;Fbkw9X-l6-F`Ru4OfRO-;EfLE}*GC{Y#2Iq-0Gxg`VlDn(ehP!>2-Hacs@)KUvl zUc_1$zwwA&Un8SOb^wwH&?v=Zg^-W<%2sVS3BESdVvr4h+9NDoEiuB&cHH@Z85cCW z5mZpctXEi$*|INwQ;3KL_|A)c>Lzi%`AS}LFMd7In3GmXx%5X_AR+O7a> zM@{}>Msll>v8@GKD;C275aUrPiPIyoLIR|^b3?qjq+|SOi6%a;L~vm5i5Yq0Y$^ar zLCdDhx&t71kN_ROqJe{kY@nKPIAshX7|UpmxDE>|;By%w&5X1hhHX?xPS9e{9nuiI zRKYZ5;|JN#FhE~{&48GUbEsO8vp|ZaM^oM@)YJRyn>JpbX--j-v*{S>ysi2=I2LEr zT1Y-y4>r~)#W2AlC9GHGp#13ZW7N7qE!A)a6nVWysshz5#_KC6tV^Fchb*qxoK!a7 zR7Wf%;pF55H#gTfKR?G$fBG|=onGL}FTcW*Pd>r<(w5Xt0m4Z z&QWW@{(3!$VCsVb;ygNyJNEWF(tuR;J;h+%e+@Oqg`101(}hPo`EN6^xI&`hsV5FNr4bV& zQw(=8bePJFfWSeut*4PfQ$R%l84^w}&aoJlSTEKsssRRKd?5?~6@aa?AtRtH{^;{V zQ-~mdRz=PhWfOwb*U4cPDjS_@fvBZ#APE+du*}Kl?8#q;->-x~WVaj(!5)vhb<(WWs;RU@Rj`IR-iPYUrOu&$V(U9YthTp0mqMEp+l zmh!&B{o!fN=(Y>%x7{F$pu02bA5t|oGHK9~9#z3gpd*sQS##QaU{-)|+b(9TN zVT?5+_?f+eHhip=ohqu;yWs3R&%q2Kj8qc<3*YPZo;XlYrB_WRkEVgnlr-*j0R$LF zr)g>7(^1z&3>e$$duT{^?t9=+-7sdJ3j=V;6^!6#KAzTMxG84l<IQ`lAU3|CjuF~5x^U$ljfQw`f|qnW6#Om+M+W3)A_=@EPA7g{X4^hH z)0EudIeShiwqJ>O&&SWDqx_awXYv3)uh5_+OKWi}4%7`{jzXNig>qla10QX;)p1eM zZjUWupc#8pOt7!B0+CSkEFDr}9;`vevzVk}7!o9z;SgG|t{FKE$TDEmisewOaDRoT zk9Yg&>(6vfL@H%FQ}fPN-HrfgDb}Zpb}300%*ra2M{1k_zEMvd>u-6)&%M)y3Q9IyYQr`R-_CphXG>&w#CzA+<{?s z6t8*Gi@EOjwv=Fn4y~3^(3eLb26kg@p8zxH_M=6OGeQg6qK#^?XwKyKtcI+x5Hl{Q zD(WIfDHe{U?QL#nADzoct;?rsMOp}V-bN%Edt?ry#y{-n%H=&7QuvQ!3Y9{;e_maT!Qxz@1?3ZI6T0!XV38F%>w)D z6|T1%Bu_i9qb2pSb>857OR_Pp(T!43{9er@v0N-sp*TA`#qr@jKKuA1ynXW;KfHK} z_a8jOVzt6I-~WKay#uV*d$`(M;`sO;-ke|I{QMFR?j7O9%jY;ee1Lkcc=75Sqi%6I zzQKo&A7OcXj5lYeI5^k`#sP0nFOl;Ct07r*AooZcrU;(goqe9gC}q%g*Q2kx6XSau zGKWN}E_+lXG83_<#^XwH=Yiwn`D?BV&kZVbLq>m1|9+3n`VPT!ef}<8dY9hZ|2;R_ z-0qxo`#bj2*08UWYKG4iQQP>N8Cz_dDktlKAGg=;PksI92pDS!$QWty!Fi5kRWKm0 zLmM8_xakgF=MA4N{4Q(Q+&V|)KgjY9;&|6*^NreNkm;}46(RG-?sXS2D+Lt+cnzo$ z;Iw+Nw1W0IfiS_G9V0~xN$Red5qCd7$|nx**7^c{eaPv0CPYi+$^CkqfyP7_1rqs+ zoKJ+}n%B#g*G5Jo5s;krd60RS%k6b`6ypWofi&Rk>I!42czALz)-{v>7IAeCivhS2 zYa*#y9R#$RCz8wyq>!e-c4v{hm{g$I0MC%Kna6xj2o_WU7FVrabHg{j1A?3~8LY2S zGKEWg{PxunV8PBM0)!I!2E*50I5hfStz>vVd*qjXwy0fjmgP zs|f3=1R;x`Z3U8h`#Nw_3owXS4m(52g?y8c+_M-2RwJrAR~EUTjn{O_crftjWA6Od zBTeiYThEHNrQ+u!lv*BDpA8bJI{%TA#a;axr1(tl2}N+DvNG5mfPc?EXnuZj4?e#inB6_ zQ0wKC%iaLR!3pB~($U%AL=dvgG}{n@jl8=1D%Xxi{uqGEMVIEq&u@pH!lB>_HWy0U zlY$;6U^5KG&7c>xKz#r6(2WNgMnoEgV~>4psQeBdSz${-dT=^-{zN0Jpx+My?*vIU z=LL=XfJOCH;(*4pjTSO03etkcNdcojhE-heXJaf{hiS>*oG+oBjW#bDVB5HQ1Eyg= z@u;B2uFV`0VP8h$&UD9ZF~f?dKN=R2keM2L?FPC&b;q}bb^d5jQvk&c;yL$`&5TA1 zleNodL|S?9pYD8<$K7l;V9u@xBj7Y>%k0jcDy|8cj^7|3ZzMo|LH@5Efx~)#lt$Gf zV_`M$(g3duTCiR$aIk-Xx94YAtyjn?gIU)C^$wkO-Ycw5QW3ZlTK#-FCab`5wL*P+ zidS#XaCCf#FTeU4AAC^p)6af_%d1O#{`=qKFaPqdadB~uU;W*0@Mk~&1=i~&uCCAV z)1UqXUw-)&p1pXD>+2i5e0`2z{PZ)NEe2d(U*PcY2rphe$8uO;xmcoXx7b@Bpw>%l z$AZ-&!y;SA|GS)GRH*g_7^ihcN~i4g|NJxy%%Cz1R=Pmx;CAenDpFEFGh|G-y1oXW zSgjJaH(q;3YM8fcY3Z=&3?Y2&(wG03;iWgU@b6tlin%dn{=E6UCyur5v)&*y;n%Zk zZqEY%n!#mqy`A*QS@acwhvfNlGgQZLwEo!Fk2b)V1+=ql3P5XqEP*QxNmvnHCY#9x zo8-!2>H+AZVER;~{^xvwdm{orzsm^H|IPR2hKv5Si%|N{{yz7a{O#9_+Yx)~{xgZ< zfr^5h6Nk0rXnA$9! z7UquHEABDuNltxADT*ovsJ5?qDu4CX&~{d`uYXmw)^#v&ZP_POwq3zhTDu$sK_T!w z(AY;BS9~rWMi;cw(P9szO($@V4FQkKiNyAZ((X>>-QG6Z+tAFQo&CrKH>sjU!8jec zMlQWFQL@HFOzHP#sP@4N)b!HfuKy%q}0<8Y{Mq)>bvJr(JC}%1z2(Lrnk=y zT=<0`6hw4QQ;-PWJ-53e7AX0A2oR0zQy3VkUvFod_d>T01?<=XQH&jpjsYx5tI2a) z16>-WiYxWv_6)T(vs5!ro#|>iut0Dv4jhw#rdZF8)*u4$niL8II25i?zs>*%>Zt(q z9XAXUrZz~xWX<%bMV$cNH!`S5n?6KI31hK0Oi>{ZX-bF)EGny`JAejZo~O2!&UyVe zMT?K{aBrB`PasiPGs1(Fq4Ef$2Lf`(48i~tYX{8I;F`CewHP#Lp^ewh?-cO!iOo3I zLddDKsXGcJXtDSV1>;yyRWS@6>7`btyYU!>YH7v~JJ?P<>k23TX zp3yi*Q))#i1v%2~NP9K*hcp+FO6tbp*jj$C_t4pgwNl|^S3C_q9-s~lbL^D;sw8jX zUwgK8n87`l{ddUoni1A(R^x({Cun> z)`4dssFe{j3J9!IN|ZF>_#4sL{<||zVTN+4W?YfDr}0NWHUNMT5_9Njn`w2T><(x9 z)MTYSlLd$=RV|gQw)0=N+%@}#s5^~J*<BGjsgX~4M{m(`AE_GV0R#J~Ch>@Ui zPY8|GzE&b;bRca;%WsZ6^u{>G*OHa)MW2G%b_JezY*oh%!;F;xM_l*x^W8G^A| zZJ4BrqSh>6NZtU%`Fl>O(U>%2sF1%m!GnhO47&iZ^W(Dc>Ljs zJiztM2DOejIXT33v%xr)h(;xmI1Bgp8YYXTDrlQtJv|g^^<+Ny@DUD{g3V10o>0ev z&344u)dn{=6^o(b`esC_f>&?OP_NH%e7MGXeSp)84aU+6_qX$QTR)x~H<}!j$?v@` z-5XZsI(Yv+f1iKG*RK2Tx_*KsFqOG~9|O{Kd|gQt?07kwZqF&*2S5JxqYW@dNF0?* zg(#E-05$CWEUHGZ4z$Tn!Yy@b$?A*#+-if?{RFVn`qe*&uXk-~|J_{%jQ$>XUH>kF z%REHNK12ZMu<-dIZ9uLAX;ixG#^|T;F3V*9`P@)MR5S6A?|4n_$vvOU)5kvfTjN@S zZWB7vF68_|X|Nmh>oy+;l?_zN(AsLdz}t-Gj5lW&sI}tgU=LM`fu1A~HS2Wqd`vq9 z*^6l>(-xX+i7N0;D*{MPV5I*-tlN(PJj+|ApdM=h4Uyt=E5!>Kq7`5(!Zm7!6*Ec@ z6qDHi5tBh-j@Eg`zUL7w@Xjbbvymngwoac`P;Xv^zbSC)3CO(%K4{1Hl_9VmC~sq6 z9<@*b5TwLbl@jAJP^btWpTNiE`y8_@F$M~?)~cK`h6LH}RkeVrKLkHbC~ADyJQ30W zZwRU$$f@rULJ4UKYHgo!eJa<|=BFTrb)y=UJpr_q;ImW!SYDL)poZ(x1~j*(Q65XjMgT+)HW}`jGes##{J^TX(-v8N1F@jYGO!~_Ds@plEz1P zUK^}&SqYc2Xf2%=Z1nfmmS#g_h@+FJpvQBj9{^6{tjQWQq90ytF^}-tH}|{iSVLJ zGhnoHI|GK&_;c^5X!4H^B}B?Z97)xn>^Nht;ITH*+=q@Qc6jRgCjdy#^tHg?Qeoqe}V=@1xNYG&8bRsRX zWE}ln)-mYz#LA#lPw_Lw@MauCnPg$vsv7dg2|U=k@hW$Q`IxF?lrjPkEW&D3!tj)O z-lG6J#8Ix5*c)k)*&*u`tXoDoBb6MhGfqg5gc$}yJ^>J~c~a=8VRVa~c-Cf1!4nYs zrvS!ICK}(Vjph`f!8G_9crK)i2IW3f-%qZm$rNX^cGgGYqFyREO^5(moGb82h%=%P z=tzE^prr(#1gyRhM1Uk%Cdws~{mC0iv<3l|TGaDM7Cui|LXTrpf{LD(wvIqH{DReD zg}wa)oL^q!@ZiWI8GWC7hZ(=r>cFvSiQ^1O*p4?iJlMy>2M_S{*$;T~!AIC%F7d11 z{0f&>TYUQQ#~AAdzx(2M_~he1!{zZcPS4JfmwULn9C7b(gHJwsh|mA#fVqq^j)BkOyf9nDWnznr>3Ecy z469JQ_ud2i;n)8f|Jncb|AO)I8r!6}+6or?_i+5tXL$dkPjUajBh#WaRHDi3?RxH$I8c^=z)1-#)eFqoP9!zNe5NC6bE#IUEALTJgNXYA0$N%iMkk&s$45 z;|vLSoPq+VNUTG5h8S8-@Q0R)B;A}f{^Ga<=)o^X%XnRpD4rNbF47(MTsj)+6h@is z6G3&O5E_sO7`Rq;9iu*&a@PZnb}w2Tr7INJ;H&gx0;U=Cgu&1HmvrB)-Ck;MGzO1C zJ9G9M`B4XowEf=ll-+9_Yt?{d1CYieRNQl0ZEw6@qJ`md4lEq%{GygPC9Y5rw9!kM z8bk3KE;Z;Gah|G=GxkT@ny_1wbp>#T0w2Y_l-@|_N@PSc_?h$cfTHS(j-NwFtg#tn z?Ox5;YHOP~XJvc{L4-Z0FrpC6tE2XS*zHm~19bc9genq&Z6{wt1_P*LbtS?~t+iG+ zm|0CS)h1h$zzsGv3TKM6_UAPG_VcLK(#W`9zTCDaFas|;2t(BhHdaJ|;C4Rjde+jW zqFuFlog2*{l*UlFYV)eM#kA-VboAD0skBIsxZIr_eerqjd@YoV?V~wXs52$4->3G{ zzz(Dpa!}S=Rp+loot~3S=#7aE)5}lL+@ye%?hQB?Th}xSRs_H2ajrQ-2!PwWuRo z0}Z*`%d8lSn&G65V|%|#M`>%*?J6T~Chu7RR`@fTWb^xLA!wM&lwPMTrkiMK2ddC!HgH4A92yuK^q8`Y&Ex{qVW_|rQ8;{K^(&Yq^ zCT9_+#G8)6#Epc27t^m83sVi6oUcR%fumfmbuzM6^K$2ugFlQOscc2&P2ROAIzXj* z&5gE7>XBlt4i}X-H;nXI0lxpqb3;ofxkxD}5oC$56?APxLtQ>2kF0kz`f;1JKQuW^2P zj^l$pY)1`8rPaO5rVpvDgJzd!VlpAC8A*`@wQh0$_y}*$FYxB|OMLL?G5+G0e}k{S z{tD;ce2FJdp5Uu*zQ@&Oz+e3NXSjEIhOfW-77rdh#J4{@#d6rg!Tuq}a)tNbe;-xf z;PsnR9PBS}asC$f?|*>3{XJ|q8$dEHuQpJvI62ryO>N%6+qF5>ck(QtvChKO3UY8e|1%=Yds{rE0DdY40C*FERPkzIQK{Qfl5?7Bz)th@B| z`5floZF)M3qBofhv{PfJ(*U8#e%c-`|%Zd#1c35c$+uPGOZ?VW32m1$6%+z5x*a|rm zOzD7$BT7ll!@83$V4arO2_?48=bF8)3_*GF_N%Ao=UA@>?620*cG>`b1#&AuN)K+z z9@byI%MDsyaiZ7D$IR;a6zTjexmU3&>>gt4Z6L207 zfGEt@fD_PrWr5_%8I1?_{B{nVUW6N6UFHu>EOlPP<~0#8H{G6>!&_6kvlhw%6sieu zKo{OYRZu|>Z;E?RgU%_`VTvN={KG+hoGCXXC=_gY+O|c^D9J*?09pY`8^2Z>Rmd+m zRe`tx#y}LhNSFqW1B_SgXqyA&P&)p`r#Tq5L&;X@&68#%U~6U_YI5woh#f-KALs#E z;Wf^%8rUX)?Z##VHW_!V3K?|DLpYB~y@kFQBYB$bd*kN>K$y^1mJAjwjY6GHV>HO| zIhG#Fvj;>0J@P0>oUPtVXWp*_79WnBflzJ*%&SKguzjhLMf>{8O8E7V^s5vReR8 zRbGZ6Cv}h^xwp~g>7H3>dj;*zkn-N{DW2hqUZD)R<+&78W^8YLPiVO9=+V}?r7J-h zxxq+Ymv>;nWJc3;DVTO6qd`@V2x$DB2I&Ba+VF=0lVZ#wO|J0%83OIkt^%wt0&(NA z|G_m3x&qTOd=1=))0{F*>9T1MCpKey6vd7a+x>Im`zk^gu(BjYgT)%E@)u-FSiRHR)6wyKFWaOF?5^mybJ()r%_tGVvnQl{>z`7Y*DB zu95v!oGyr&jpkb_ld5G(EEa;j^&01w*VtdJgU?hLG#ms@V+kV!xj3%%d)f+Cpk`>T z*jp}exVMIi;@f9W@&5Zy@Mk~!8UD?G`~So1H|O~5r+)?!!EgTV*ZAoD53pJ;akJfE z|L`7OJ$r@YlZ3@0IMa`@bLaUEQXBJ(=!|#?qhRvg*T^X zcyMwO>);F1VQ9*FI)QCp<1D-PXSG`4+poUD)9+s5gP;C0JozX83;f6b`~L%e`OA+X zP@F7AJlIP(+)KDwtnl{o2BlV1k1k{M-OXl$89xzQk0;Zd}>wUhoBlLG|a)14<_nVR7 zZeqC0AhYYa{kZ(g02mEW14NiSZ1Eu(mg`%(Fy*4VH~&s+VB-EzWHjZ-N9fPL>%P;u zPYqHE7ES9gXMj6s+p`#sAq@0hy4e#urC@FZ5zh-Yp>1>Vapa8a%?9UJS9oymA#zG6 zb@b=i{iJ3f~ z_p!fP`x>_5q%3^ORMv2w_z%(q4GmG8ne+E$Ds>ti#yN(tt_{?;`Wk|5DJZpo5e+8m z6!79-q>h|Zc(KL3Hr2!4$5O((T8eqT*s7c0h2;gJa}-*aB+`Qbu|CE)5(K5CDmX}0 zAUvc7cnvhsdulwT0X|+=wR--s0&3y4P_G?hqjB8ZHi5>joSBa1Z7)G3ggMw9d-nOk zX~DwnO`)B3{IPiz|0Zi$glCp%Cy51U{RC7*o;+B411&;~hnMvLsIU~z31;hJ0=PH> zO2x%#9%3zYU6E8M>bRYp&*cyOardOgE%6Jf~? zjJX~;A=L)(Z#nvfMggCHMYk4qof!_8vfxFk-O$})Pwd(Ah{m}Qfa|KTx)-%3SC;)e zDUF~K%M|jZQy~2i25&XlXUfGeNUUY`2%VfV^02^WEbuaD!Gn!2RBSNdYO^sAm5eVj z8be}@B@98?4P0h$mXKBb+;b1!Kso^;l``f9upVA@+7%IGu&YAjqiz0NlIB3M7QLUqUl_YZrk9r>ihd`@XeDQU+=8RDMzX%(070_eqBkY@XrJ;k`ShP9atp-OmIg zGI+L~yT>>ntao5erYOcN!l|@wF64da3|?^-NK0+XzEW{+1&q+}dCk{I5k{n-`yof9 z7MGVi&}y1xS8k|Y`u_#C4>f~l8Y0N-SjWh5?hMyehj5g*_HARQWC4$^Evo@JGqR_^s$>RMm>n+vY{Q6I;B~~v4+gd@hC3se zRuY)Ww?XZ>N{+>L=u!XAoNg&4EWBf+g6V6HL(q)LlG&ZBdseh-uRhUcT+hxsj5ns1 zuGmfiXh@HgX{SFZphe6YEQ*CY&JtvT!&JT9cW#aX)@dTBNFF1DqTk;@R^TIJ>^W@!kR8?Z=T^_bduzb-jis z(3yqv#i|M^1;>X6IQ!k_kSpul`1;Mi#V>yPQ~c9^@;CVEoA2<$v+wa&fALrN@{8Z& z<(muq;%7g>=4OL~^%9SM@iG4GZ-0yJ_8xwC_5-fAicdfN2rr+%!FIdFAQ>-y_yPAH z+{a?Ez_=NaWx!^8jhpQTd&{Mzdqqir-Y{V6r*7~J13&9uRX|I{W-M4d{u%!A=l>)8 zhyT%kjQ{n&_Yu+vynKC*i_3Go+N_Y%Jrv!dmMyXvk4`YYP~nB40W5}u!BfL%0GK#C zIvzOxz5lt(=yuoVyLCp~`Q7<<=AZ2v-(3clyX*jbj|NR~vT14P2&%IGcYNp__xw{{ zKQ09+8M6%!g##rLPhY&R2iJ?m0^=+NN!7!4CpmF42~oCdY7p(M@yr%s7a`2AofFo4 zH|g4!ySOr*FnaE8O7yJ4L*i}yQZ`SJIC!e=!AR^u=>*ZZ_Ck4hYX>N~i)Xh6NTmW2^;rELMyyC2UK@wv1Th zgymx42GHN-%)X@Xh%`Q&Yls{28-4>oH=P(}d z4(*h1FFTM$kSx6z5KPyd}V$&Z}w^VT>{n{dZ%JG~|y0lL!)2Z>yW! za}1*$D7=GKjid@sR)}YqN3vT#RUqY1mJ}@h*$mDWUFZAC`Kz^z6&U|$3V}zmvCdnh z4Z_b(Ga_xa8*H{)Xd3Y1^%*YSzOkssELbj=$az4@1K!>gZ0iPJeDeiT8n9aLS%jgA zrI?60c4!E$UNzgE-%|Br-X3`*=nVE^>KgYGXe`CZnQf67A%QTki68DTVnhMbAO_E5 zaoTfP8skwa!!j8sjS4}_Xfo3XCv_y@il!IT4rQ`a`c1}ljup)C5f#9W)*^Dmc}$#g zzfa!=nDi95%W0wp{Wl|#bV>^y6Fi?84N$P?JLd&ZW^%n)K)TywaaXSTjE3XB>0}P>!*V9r?J+K)_oe z``#qy^&SD3q@`bS%Y)DN{D_V^u~a~#UHiKzJF3|Ju$x|txzf1fxA5~^wIVb6r*o=I zBIKOmRfapndf0u2yfFOX4u^~07f5&N1E~s8<|L8 zG&mlsTD-Y{T1TvkI5)(PDdmnX8$LJ3U|Tn0<-rX&RjFf{iP^BZtsf)IT0JbsI^h%& zV7sxgbEYC-8|-EjR@`j1IKRHe`PDT{1u^^;HHv)$#A$XE+jmh3EQaokSmZHjx{LU5 z{zs!>2omlGql;mw?W;w`{{B9$Z*Fk7-bbw_<1@sfX_H{^wJiRA;3f5lcqmc<7CGVJ z{RjB%mtW)KkDp+a3}$II&rJb(2D5AL7f=K2czdn?>K zIYB8Fg~A2~z20P7KqHztkdlZQUBudvn?a!9YE$s<{rmqB{+Iu&e;*$mS6sch#%i&E zmV!lIqiDru9I;vsSPY}#Yx2Rwv!~dWEymG5=Z?*ELEDSQd){Saxa&K+?lBKQXwFKx zb-(`lU7x+{y}R`O`TFr)Gg70(VL%7X~_|C6a2%f0LU=l z>iQa2HyfOI+v!rq@EUbG=45|VS=XT%E!=YAV{G8G-+Ki;{scP->i2<%t%q?*VBxp0 z&#DS^R4`?V@~A>Av{@c4VEN(-jbfPrjm54lV+})5 zDZp5Ox91y-+by;_0CfupFboT*2o|MawM@9a*S z78O;uSdU8_9h;}p!h~xG%WWOQ@FIo4OvCd=#Zsh?*3iy-Z8YJ;=%CWx7ZfD#N!u5$ ztdZkA1&^XFM3$Z@Dg*?3iJy5`cJ*k$&1lgfNfM-5_%^aY3ZsKGKnV92s)jRZtOL=D zIFR)`a)=A&1SuZzLIsM&2YqkVQ@wzS?1qGGSJXF{bpU<=mBv_KRV$!g)mvL9jM|&p zOH*KKiT1w$qPtCw+8s@BnX*s=7?W2BteX>4R8TDxU6b*^%(O8t`cY`;N{nV8r)Xj0 zE%nDE3qnTOxsC`mj|K~1C=Sr8gK*I(2N9{5K!kaVJ0YrH#F&%TX+=WO3B5$kW0{iI z+o%pw6I1GHC<#`7qISwmOJ6mTA-HYy4^`xBpOHDc(&e(vUfI)tVLet7l*4<9~;6yWsY5;<8Ng4PKv2W`fg zcIB#e5p$7J7O8=*q^UOJ2oO7MU$NG`RQ3WFMGYB*45fk=Ks#tcA_I^w6ICsx$*@y% z3UCxW+hd_&xJA(>j~*}@9z)*p%(G(&YiaZjq@0@prHR63gtF@Z79g*jtB;k%imSGQ z_LC@PMPP%$Q?Y3X7jb7oZpIipKQ8OkI@obfq9awD2XW<`W90;qo}WmuX9AFf{r$$A4}~t z8Z5PVw98h{a>}^bZt>>L8%sU% z$fCutfOsvKaU4C}T9Af};@#hJ&QTw1+-^-ab^5_Lj##huaPQSs8T)UiM-03 zhT(j1S!__$ji-KAYh_(EB^B%4_jf@O~Pdr}cHEw&NBbeefQ>eEKb3yn2p*^ozfQmV*E8H^0V5AAN*h{^HN@ z;>9z(tRsH@+0XH-U%kcY`3-c~!}C|K@xkKH*m|E*-fXcv~d9O4I(uFZ27R!Xclm<%d#dd2sa>|21Qo=9{6G1)C z<(eB>_K!MDr^C0@aW!&&P1T(;N%qIKWz2bhtFgF7m{djo)36@l}LbGY= zX>CRrSNxO;2t6;!My2gJBJBy)6^!%CD=b$_?61s13^d?@P@)ND>7nCb{eU64P|vZ< z1S!)AnYdthCK*%J8buD()u)umh)qxyK^S04ws}+8frxvl+xiqo8Cr{bwVakq#ikgL zFMfv9l|IwM1-c!PX+#4RCWC$BcC_f@3~YoRbsx^wP6s#!L3BX&VSWOG38~1Q0Pb;zdGX{R`Iu>~@vEI$_*A%SD z`RLA6iR)~P6!=;dm7Z0nE#3A?3p{+?YX?d5N{gpdsaDGy=YAV1kMX2Lu+tS66ifSJ zA#WCmP05WWqXF?y6nH;B7rh~qJVe{nF{(uVxpkUx2-wwnFngdQVR0{%cTo~QUr89f zXL}WCPQKLDjV_4*k7ojAz~UL?xlWR-P&qY8(5S1yY(!HlzS?`Lr%+T#fLnKvuPQL-`)-{b$LR5q(o6HDDeqe@#0*UM; z8ex({a0|#v7=vz%j%pk>SF~(%z%Ft+;rmR}Bi$4;+9#7s7U`Oy%C1?I{VrSleiDj5 z&A;OF@bAdf0F}UcWff_WupKLIHdefJe}4}rClB%Bn*AswwD`EuVAJsLz&ij&|FTni)}=2K;Pq+~5I zfQ4I;AMotC0gAPwDmwlHfhGk!JtE~sW9AX|wXJ4^G36B=0l;XrO2`+o9ezGjU)=$bi99{>XE=)^t<=8b!u+w0kIkaa3Sa0I8@tf(AaVKpqBM zUT^Tj>r<0wuolvL>wQ25lnUHzZcxU8oPgzWjqNx>QLXC@D#q;=R7wjCnyR?Ey2jCA z!rmdHlZ+3f43yE*Ly){vP-%sgQ}Rd#=Jh+xS%!cjX|+h202oebG9c;{h2A9I?VFx{ zuZ1W)f8GVEmrY9S>ncZuN1fREve3DBWR!;PQ71K|8kpdjp##|+@$fpB>PB&=pOgiQ z)f#74m)PH50mvAgHV3Cx2r#IPwYWi5)Fl}swzdVUVZaBE-^0r{r+EA36^;%M@fW}R zC;07ee}}WPGdz6o5MTWM3#`_M_{)F%OMLt74|wzX4Gxd?@WofZ#lw5=VYxiO&CNAF z{P+o;{_qMfUOdO%Y6+m?!}mYHnJ6xW$$FKDkf z6|2<}k4~0Iy21V9LtI|pV6)xBau{%Zvq8#6yVsi$i(x>{L-1+Dlguz*{oYzDTEXqx zhJ<$+M*5$3>EiQicj?-<>WJ?6{#?JG8-4og!gzhhcXt_>n$8R3iF{wjkU{>A)2@q{ z+4}yN*N<#N-2k0)cbhELWd&&A6!$z4&|$U!rV!a&no@SV?KHpB8)D|hg9}N z2s8=xB;oG-Xiz{+_T{X5oKr5*9se7?qpqlYrG2O`udif1J z8Bj2QmQadf7#29Yy1~uO77rgh45h~rR;*Q{A1ZWV_e!szWYm_Z>)r*KLf87nfk@N~TnEFwcCqv{rY8^;FzGPV&8 zpSlosYDi*WL_9ndim?`K#x3^O3*>BjofoYeLaO4eh;7c>af_?#Eyk)?r2*MflvD(o z5;SED%ROky;VDr`o7-o#;hsQ51}|u_IaIyY_r)PaUmy`(%bG zHzc8@TB$2V_B<<8XLHct1AWVNc9TeH2%u)qXBQhp8U_4UtFO>H*s<1 zji?{siYLKy+zg@1K*Z~RD4MB7y&z;)=cOYoPgiTLl?zPCf~4Tp0oq_5V5mg;N&$lQ zs}s=;WyVZqX_Xb4v!w;{YUpOZmv;^qNV|&UfW8o)>V%)lA7|GvYmlajUOkbOgO!S5zyt9 z6)*P!ke&Q)4x{Te_AYtEuDxwua@@p8B+FUe@&5VAscIk>F zt=8XId3KT;uv_Gb83s%#PHxmUc2WGC+lAX=^v5|F?`4fZkMMBCLT7SNyufiY@{%XI zVG%@P;@_e1zjn$>OUVhtmNecv*L^xeV0)IPwP-st9^#S_>mhD1_8!Wad~x(G%PI@yo?xiz%W?4@!PXAWLZIU z#JT`Q1hs4}{XQj(rQrJdI{3#HqNzQI`4JDY9^B%wu-G$Suuo_RE8azkN- zIoVju8KTHpq6okFwP}zw+9}vN21w9xY*8uVbj|ej0xk8Ih5JW`I6FVbShslj>KQ(M@^k#;FMf;t{SiO^#V>Js zc80UJFY)1rpI~!+4S`_2zK<7gPjPZ|jLXYw3<>z;$@}>ByKix|*`k&aFW)(;EsKbnpZtvMV!amuU!ELyNn&X zbmqJC@?8d%`S*4ie|p`&H@fuK_Xd~wcjuoakCLO~Or+SarH#$*(T`)UqyFiyAK8Z5 ze}drJGaf=V_Z!87HzhJosFV^5W1)wxAau&p+<3wFfVnV6yw_j%t_|#e-(~FCWs!TA zp=Vc4+byGuGu31g7Uo?A=tUx<1Pmk9YLOroDdP&CE&g;q1UzU!Nu2Sq{Tx4^GJ$UH zb714jRJ%u;Q-1)vRRBPRMmti_1`@*5LPZVnY?G;E)os1VsM;Lp74(BJSXKOst1GPc z_pn?J6J|#MJKbw~l-jrhH1ZJy)lSy}14O(B70;AdU%^&Nk{6kVhENElPt4vwNGkx_ zQYGAzVq7_;PjN5|E=-zV8$g;q8yG2=4PqXpJksh>hiEKMP z5`oIFtt$hjS!`8RCdEw|-W;B37Ad3xkSvPATCJvzc0K(;70@0WO!-9cmEZxUKq;Cx zr)dfiL(=Xc29P~QEtomtd4le7U@9RM@&HIdi+#aP(hu)J;okGgDQ{{oQ|71uwJt2i zw~Y;W)JyQG8qW%T;4`M;$2FWh$+3kN<$}1=x<7vz%q=HN>b(#XZ46964)oKd6__n{)1b4!~c zUYMRbryW=N{D0lE+CAe>)woYXtqNrXOk*65E1m8ggUqoA=h&}T9l6#VQfiTYz~rom ze?RUK=gRj0FvCnJNxsfX*zI_RMhQV&V;_6kq#M5#YH8nU)Pooc&t;8yP!_~F?s%yB zp|Yc%V*e}Cq~;T|Q3)Q^?H!32q26J9@w7oGF_L)572GlIjw#R(uP(P}2!YEJkI1FS2BLtlh+!u| z>ntkjDXq5XcAxN1Ns|ZCP7>uRcq&MDRk0j04iArTaej)U{rxCvU8QqT@%N4~_SnxX zsRa*?kMM7Q^J|X`OZdYdKF53SJ;ML&-~FHBzy90*2323-m%scA{8#_qe}S{hf{#9Y zjO(jwoE+cBVL8Cl@4vwD(L;Rw{ZoAUso*D{{RH2A_X2s?!#E~<_0?B+|GoEcw72h3 zCW6b$Yn&Vx45`(p>P}Gml`=}*!RtI^5W#ofeT)6&0v|j)!f=%^q>9aUW1kNRi^0zR zxZR?zR-R_)^xHj)oEy#ydc0;sXotH$d%JXZ%)U3*ndiooU3&Ptj6S=bvrFfk8-6CM ztGA6o{qKENjir6YQUyLYNlGH_Wfj7(|6^Zs?fFl5sc)~HB~zGqoE($|>Lpk~wDg-B zP-wj9+eG(Pv7L&LzvkEUzxNwA0YAHD)ZO?VYYfn;7ZnS| z53MGN<*_zzdoY&@u-d&=LCWyz@(HL$EF#GRKx+K!6^1r%A9EE49wuomiliz2l58D& z!ZvTnG@R^~wUKEbR7ZsWq}5*FxIloLy0vZw1HeIvCMYa~G7SSxFU~QRisPdLK#Px) z=|--wlHTAT)SnX`Vxt-&&944Gis)237-WvB?1c>wMuA6x;~ zqTyXO(8Z_&BZ5K@%_{S*hYKySQfy7DV03|M2A$d&?|`JeM@j+TLq=)P%UD$dpsOT6 zJRiGgC__VDU>GcNtwJy?R@h%IG0-co)e2*ZH`IefkkSBpx=4dLC!}mC8MOjwFc8q>wS~J{ccE-`ab(UO?b%c$ z30%zpP=X%p-)$>=t&JB14NFI#QDBLd_%=4%qc~i?UwnQx#Sh(@h@T>1)RuaL3D=CY z&vVNt7$71}w4jOT=Bcvd(4>&@ful6HS{-BKJ-&vvv(IPRsi z`OF;vJn!fPJ@>7xgLdo90-@R8CQl>nF}kpZr+m7OG`1N1g^@CNaaR{jJ!(LSI3z;9 z8=0C%yvaG|Z`D$mOc7xsl6UkIn9`EG?PIkyH2Sjppt*~4SNU0zV12$XW*{ipB zb#{tp&!6GN^JlocxPWBiYbS?C_~8AAST7gY-fSVrrmSi!TrOT0CJFqXObSjqM@AIE z>||!jA)vw3*ywO(T1Q9cyqyGH$G@%)ME{w+qfUeD&|;Ay4Hrdj(TrYt#Y5t=<}_(W z3L1BX9#?gvUE=-P8H1k@bpwMq-)V+hi=eO@m5y%vmk=HLxKc}5t2A;*OW9My2DXj~ ziM&_gzqfJou3WRmV`)r?1IUdGS>G^QGn7FSDw=^mvmpd#`xHh6M-b|CBi?b2XII&5 z!epYQ|5^lCkeu`NoQ6=8$e;T?4KFN+Z*0iXq0twGd)_)XR)lgJ=N|#atbQO3kqXM$ zXp%9bC0lEDcH-`8@Z;E(ppVAO#CcuA<&9_Ay({Q|pgbX#vnQpf!NxTVc>u#MtXoox z2EEq;po(E;R7key51v!vp0SMBZmc42Re0oKLa7NCSC`ln!x5X!h?}jo#a0!JMNzzq z({@ykLQtrVjt_0^qrn2K?q2n|RPr2EjJ29$t5#3TLpzt1WYu&A@@irutroFqE?$66 zCW|mFQL~ZQGfs!pwl}`6DQBddo8AJA+K1wTARI6Ph%{Pb>U|SIo<1cK9D(WRL7zb2 zQ=s7JXdeZ@+4&ikt5r~2$6(=bJ1|V|02ayEj$0h<@8kaQJ-mMT7JGXKkTl@w58vVZ z;x#_}@G%y{5_R0-um9;k!_8RnyWjm5H#ax<=G!l@$V)uB{{&SP4<0?n<<$+I|L_b4 z>ormW_V?G=D)7UL*BI-F%kxtl>>uF4gNIg(w~Nf0>zeVNDo_l+ms&BFieb6HtLNY1 z_g{UDVbA8cSPYO_aJAVW4TD7|Y4xJJI$wN;Dm&SS`DU$!I z-r$yYQbes#vF~>!koP+#g?ZR~KL-(@3Pu_$R6}u4nRn`H0-HvfoHCZffW5sXR;z_A zMW>uX2dJ7cLlwwLu*_a?xSH2Ub4Fe+kg|na=OKF+FV?ki>wXfOn*i0Lg{)3)J0}(y zk&P*)>QP0VQ6n+(h#eeEA>ilq%rQI{RghD{kcWsavg>LC&%*OWNY59Q23L_g?>T_* z8uv!Rp1s=pY)dMny5QmMd9J+A(p#uZ36d)Z&T}~;ait9nq?!`lX(&kOYfv=fLf3K2 zfmgrQoO@1;D55B07&w)#wx-6Pn(;!NClMgELg5{N0$??HXgpOAkhL}N6RQTm?EVAb z^;uF*p+u(Sh0Xo^vTb_K9LL~>HaAX5>WpyBD;Gv7XzXK?9c^Ey``@ZPxJF|X5oZvw z*6p%h_VsenO#z9+u&BKkL3)(4bQ3j%=h2D?8dvCuBArWK&$1|#>{8L*t=R)&0yrK=Fv}_GnGCT z*yRd#2oyvYyq~HdEfU}byP4S&q8|;whjAvgGny04*A8dg(E^#_7UBsJsE4VCLBrQv z01V0Hq*PSYX0Voa&YWon58!xAF0&A{MY#rk4g*I+gRD8kh`&&L#T^&^y|(^-&J*Qd zql-k;k{BUs*K!Y2YQ~e+3SJzyBuol%cf2QPEnaQRIjJntEDwXzq@@p~4hK*UB#75d^LjT`X_-MCiNCwZQfai)^etFw zT|{rSz9hZ!>(&eZiVquA%qb?t=_(m+Sf=cFjnVl{Hjqw}kmr%NQfb#1k2WS5 zdri5|v&zEV>-8R9yn2ILJq4>jnK3W&78);`A-NVaZ#{VM2vrqtPT%6>}8*{}>1RhbUvg(eVMEe*YA2 z&R%1GZ;6|m3p{@BeXREP@%+_Glv?rT>(1?&!*Kv9slTKfS848s;&#*+j zxx&Bsm;VCSBd}bpP*iZW+2ZQ@+Ji8&XH+OQu&*rN&|1la$H0;K?s6ehzsc{bT z^wEFv>rXMj#7Jr37chL&&X9CwBkjHr%DPg?PPZ1lH=@j=C(z$Vri^<2oqqBA%?^cZ z_RL+@ySBN~JP48^l0geIzA&3QmW=+e`nR54j20%n-WDdX+= z1tbF}M|(h}wV4W(hi^;shBF*jt3`a&%DMV_E4z0Xa8QiC?j{gSFxdCXI9j@nYFFS& zy~ve?5~>9ixN>3!ndIvYD9UJn)`W1f{Zi?S0_~h3QjQRNV`t2cb9RMB)9!uorEfGB z`)YF@w_Dt7x3T8%oL>k~VMXUG%E~&CNCs}|h>aH0O zOk<@NLkLi9(NWFlMa9&OZIfpSlD3d%Rr4q|{xbFO1I-I>d(b@crm)-dhMZf}inK_E zmXg$z!$u#y&}F0yobH@Sb%v;>=ps@9+SodUhB9%^`#W$+u+!5M72UXIA}?~>*V2hn zcTJONmm}}{DnSBQ8e)~+lypTnJJrsJ4iyR zYX4M_s_}-by@B1s?O}y*D}d{pYg}z_AZdY{s~e0rZ}Gu{J$&-PdwBBEM|k}BeLQ~f z9uD@_7|RxCmshynCTy$Ci7A{;o+d|h8ciU{0GD-0aRtqdGf;N|dRf|lA>}|vJN@aAW;kdOVzyoh?fX-V!Sha9CqE$YY_!{sgYz4}1l1&R zRJwaLzGP7^^VG)ndy8)9$H{T+ivFW~wv>SuSq-me)tpW#&H?At)f)7ljgI3s!FLi6 zN(dY{_+)g2ukB;pGR`0OSAi(RO{@}Q2_9rO$k8PS zp|p_)#eUBCxwx^9v=Pw@(qSF30`exQjIL8s;To(4&kz=Lo zZs#y((t3va&lEK8<7KodQYad#3X)2#qo*U2XDc9-U&IgXxjl`PQcw#cwTZcWtf?7L ztHNq^phg6Et)oXqnt`Z{1!XJ~dB<)_MVpI}5nn(-b_18mcaJ!$#y?Zi;PovXNiaF@ zzD`!J%y^ygD-yLEyxf^;^@+x4r=DD9(m0ew+!*g^SAjJYV;MmsAo$OAT;E38)sc>LbS_|5M=$M3)R63hJ~eEr4OxH>z--~9DoW5@$?UP2Z4-EV(| zQVWJ*1dA-5a%?*}|1%}0dQb%mJ+llcq zmOdpgMsbl^y}eu5uhVIF1ujg_{q6U6>C|@_Q0DsjyI#BW?YTkc?y>GR2(^2l*$0GK z48(2reE^*ti0{68(0}ChSYvVJ&w7;GJTe4L z&(q1Ad&5ktDRFz=x3AYfI*(Ydz-1I{iU9dS6`O0@)}D;{mesX8Co}-DIAIS_1;8?A zTx~Zvy|}{3@rem;Y(r2suxCP1CwcJ*R5l036kMv-zAY#71Tu^`!MgE40D*x7yFWc) z_Egq+HDiF)aWNnxE{qwLZ-T7flhiLKOg{<$P%DtKrxw`-C9ovNCAa8PUCA+H3PDP; zjuJ_rqqnDqAm@eA78>2>+=@bSFv-2zn{kVS^$O5}GLE1^t)(DRd&IqhN}yoiFJ%LD z<{eaDVFy0GCxCy{fo4ew@bqa?Y&UXvALEeN9%}^+ASv}NUVA`J10=n`4fOOh zb6Wt=0NCiv_L31KZ8#*u%<$eSF~{Bjz%$hhXBPQGkW1jwKy}C0)Rg_gBz|qjmgAUo znVTpM+yQoO;%5YYEe&D%YCJt9dOH1YuR$S`dkI7q@i*5R0EU4zowV^lj!obNHRr(I zhB^%G+}ipXh%}rmV01u$bI`*mU>5}z3MX@l%tYUZHuc6gNvf28_Pl09B!97eY>^dH zStnCE@j0eMT5kqH(m=bfKabaTsas4#F)-YKY6%{3`_;O+c!Z)GCt{pvUdxo-!{>Ym ziU5THhGQ4i03{NJEKuZAB!t;#;YZHAytL(*{Y$# z*%5CG)q4_s;rW5%peda<<7e;SXo}$UGa74Y81_3!yC3h}XsJ&FY1gqXN24!B$7nn+ z3Z-}IK~t28Pb@m9l!{U;l1X)JQ5@Y`s5ahK9V3t@2bOfYV3Ae}s;vmQE$)o)QC0OW zC;hsGytAmuTNtogJrVQ1ix1G++~3BFl+8UZn{YX83Ul078G&Qto#4uDZDKYd&opqK zBNhle<&AR=LmZ%*p(tIQCq5wtGsR0HVRTY;B%}(~Xc6Hd?NZv%3dh^nQdg^JTA;Fe z6s)~kp<#aBa6b7O)AX7lhWxV4guHq{iwtjk-_{V_9(2Y^HH_9}NkNI*0Eh}K6WJ8g zoU<9X5|F%JkK_f?V9(AeAuk5+B%{#0umZuTMzav4A)#zD3JM^K#d3k-_>oaSCaRM0 zA;(Atd2A1oM+hb;AOp-XL*D68A%*F+CV!*L9_^DUnRi|~d88=}wr$N?H#Go|+-iZP zoT0^1$88P7PlSIzwN8_5eN7e<2ctVN;xyc3ZFK`#)3qAbX*@DXMoN|?u--qwcQ0Py z;e!X(CD&7GYT#Z8tkLKU!4o%|YrOaH9v+<>3mFSO z{n?-4yBE*#^5yq<`0z1azRg%J_aWHB^XD({@Zlr8eDw@T5#q}1;lSN?5S`}m2hF)xEE=8nj?e1%i-Nq&6IQB06c&=05 z_5NIs?(eh9@T1yNpXblp_38~f^KtI_&Mt$`^x1OjdKx%Y6;kQsG*ecZf8kGj{V5SJ zvzMU|JH%7Ztbghtln2&Q2n@8|Hh}C(MY_wX)i3&8mbJU?b=Q6DXPeuu&Ae-a=Z2uW z?=L&YY3)6kH*NnYr0r0S%mhJ$to}^6qNr10c>AYLp1%|0~ zy0#}hfdK9)GD7Z+E(*Ig357J3jixnH;nSS(=Iji47_h%uqin~C0@=ElSgL{v8_z%O z{MFB=%o0MDR2^CcB=VYh{H8n^pZu9`dG?OU-EWQTunmz%}sQfvo z7MXZ?!e9gXW$BHDEBl;h$5i7(4%42UbH;)SuNz33f-QhrIOS%u!OeDyo6QEI6^jI* zT19xtHm@;Kv*5K8{0uqYN;$hiBvD@k4hALJb4zLG0@}|d$6Bbs^B#N!xE2I|;5s(? zA+=ek=QMoVHm&&IEp>;ldBHfYad(C9C+pe>toBHDK)}=u0y8soRlrgt2$(1LZuHYw z4c7uliKzqq8nv{kD0VB_)mHHJn)6#Uu*d5pd-@KjthIl_(CP%RevU<;SUsKUW47ol zQ?_j^DV~U~Mu(+O8A#)^$W2<|Z2zhB+)40ITLTA~5s~AHb`)ps(^?g(V;hTmR~_g3 z_!_^re^WVT`_g1U?^(Ick6WZ;GsyJcr=iG0(X|u_PSPbUfJ2*JNy?YRRyf)ft|>dV%l0e~M?{e}|i^OANz+<&c1K?vlrh z!&NNeVUZFBNywf8B?(A_MZ_`6)JU>|t)aunQ{UT9(#IUP@a!|4&{E6PquS^(cMd`_uzOb4n4%2J zMyEAJvCT;uIL8mfxo4Cb$Cne3BQlIBNX9SVYm!qkTvWRj&tg}#`Ae)Jztf7FN;G^h z+}f)kn8;10idZeDCbuSh(N{U=rsPPBpu0w7_Rk|e#6Qc@Qd#}G)#<0Yyf%JDyjiVH zIw<4Yxo%>eGxN2g@lgbW8yvDQJ%@A%B*#c$Ao4}FUt5G@&+k$OS~oeaGi8F&R+D+{ zeHtcODkmfUoaVaFdddvtIGHLXXvWc;fy5dyjsG$-j|Mg4JvHj5k=GWF>WcPcc8oEO zz_vC+0cyo^NLVd~7#o#oGvHdQ?3`0zG)a~Uo5KKZ_yW0=a|oL-V7Yya%{Jn#k$(-GZTWAB>r5b=#!gzw_6BiKkD$!ui=7y#L-KeD(BueDlL|tXB(MT%Y2> z<40Jp5AfZ0-=M1E`|p3ic6*J_KKT%393gp)O-cCf*;AyP%}69hN@r(RmO7qT9J!6r zjNTbQc1rh%ttdVQtd@KDPyf^Z8-D%t3WrB4ECDPR1Gc4L9F70xVZdhGVq1zwbGE1r z)QZ9NshhF|IV;z!8ju2Yj$OeH{cG;rjq};P_xI7^`|HS;cfEFfzn5iyEa+jE(WuE@ z@@tO{>-0UO9xHmyJ(#g;xm+&r4|x431B`(%hL$3jv1o>%TB}Dt^u|dHv@k@_l&TW< z+qKcXaYp2Jf!=;BeD78yMfYC+dob(BcRr)7+jM=W2WCFjTf;ZN7x~(9=iwxXq#|dAxEl9t!cL&6 zDI;XG5%*vOHp$P2dSna)mp4~9zq-M_qhk->?ALI&5DQj(IXS~Yq)z8Vz9|5jd?6}cZlL@MroTd1k#-=ce*ea6NC3)Q%Z35F- z0I2+{^F9a#qe3uryr|8^=xS<=0?409!=A@3MkC~1HX^6LSXYfTx9xN9r|+*llXAw- za-_QSYur42)3(<9*U74Y1~90p{u3Q-bp=uT{nm+WXvRD{W26Dlj1%XfU#FHP)qx%= z#*(~!v!81HAK+)7eT;{X z9%KLDK8j|1|Lg_MudgvIR(SjN6rcb83!I)`SmYE}GgT`FAA4K90PPfP_GgBwa6~q$ zDGCZjof%MUIr}ITuYm+A5CZ0%(m+Y0Y`fl#mnnlOezuQ|hllOFs{v#+IJ$zU!u9R3 z6ze^SpW6W~3ZeZiv0}z2?A)+^nr&QFYjbQy1V#s%Qip8vtFH}0`l4}wN><&ki#&+Asd~kr@*sbGuvl-jB`eyW~E#@(OR1X3Rtzmq8WJ<5pS!E}Vq2pr!deR|PxafhC2w%t*t*bu?Txh!{NAS*hy@Ttp@JIuwLlP#+ zS>3d;TB^;E7hoiV|yhkyR5$H+WXsA0bhHE%YFP)hVLF%=Jz{%C47nc$R#O zakS^>e}Mb<@8Rv+w^*)@uv+co z+i$+Y^Y6dM&;RTnVX<7G-fZ#9U;YiwF0b*`H(z1gjClF-DNgPk&N%i*pnmaeaM>Xn2!B)Uilw98J&F+m2 zbE5(yYv%9GUu`3S01{zbniAQr&An@b=Mf{j2$!pwvlTdX78pYD}KMJnM#oZQb#`RJ5*S5?Fu!5!YN$YYUZpwIQ#H3AgR%1qjwFD7ge6p zDT&ll%!wcXQsg(cuy;V`Y1B_}@_@^g-+7&70 zRr_6Q_hX^lP#OYUIi2Z%RwSFsTmw~cF4Rl-ieTb(=l$G3tvtj2J(_Krp|~j{cFxU% zV|(icv8W}%6&JI&wY4 zHljy5+60XrJ{R)_w%Qb`rK_RU_Ngya+W0>WC!Fup`@{WVr#LhGwi*r7?kK(do94c^ zI8=Hx838~=lF>Kl){(S4HG=iDl%yGlsDQEKiqQBV5{dx0_CfO&nUmGqyata}WN)h( zshtX>G~nXu60cr8N2&$)kM{7<`w#HhPkw@rKm81Qd;1v629h&Q?mxz2wKOA3tr$E7 z()f>o(&^f{@l)IUCf+z{%7f8X^FBAy(COvi*>`2fz0EYh_iNeHL@%#;BV?p?IJGfC zr7G#Zok^Zi-nMlPYsSEaM=*I-qt)u?*yKRW4Ypo60$1$pB=-=h(vi^8Ywf=ljTf_Z z!U`HeFRvQqst;5!#ZfLIK_%2h3{08rIvP@ub~>EkfjU+Eqjh>J8=cp=Vws|31(#8W$2gSGu%+ChtWlph)3wAG?h8suFh$( zkJjOu5wpkpzJ5ICfTes+i_%XqNl$AuLQ)0gi;j?pDB@YQk+ld)pwnWgXxEmWm!{6Y zfTt;;3j4VBx{E2hf&mc!G*SQ+Lo%Z3u8Je6ki8+%u(YVy)l$m+5uZ5z=7A?~D=;#nPT&8$AZ1}0-t^QF*Y|h*lsqsckez{t2KWA<(Ig+IK!idC;0uBpX1H*XZVX> z`~t_v_fR%lTwQMP_Vg7VJ$iuc<{IO;!NLALeD}jM)LL^=ny#S*i^UQ{xyG;l_1~hvit#4N*lr4L#to1Z zi(vsMu)n{;;r_}Dykaqun{k9DSRvkR-yO2U4zX5un-*^AdfjWM;Y0OS1bYA6`91%b zQAXr;)>tsr&DY2~8C;R`$>swa^q z-26H7XR<9=%1rs_t_N_ize39J@Mta;+;B1-dnjmK6o@z@H|E>}uPF%Q`RKtI!Kl4V zNsDeQF5ntNZS&f>21>=TpT8-CmP(^BXWp-NVcziw2Q-VtfQ!p3Tx~|2936Wt8D4E6 z+0%XGJxxI{FOU}ot?-=4f?Bs;{I@f34~a6>SqhKt`ht0UbM9L}9dKDN<=jkR;gF z5kR$cplT5VwIt*;V6|F+t)pu)prL@Zd25zajR)n_l+NVG!>{#|;2bmKOqz}J;w z-5gIsc=14(vm>fSg0>t5fWFT@yz)aW%uDn}pb)M$jX*DDyeWeW{*J>Q z1V6lZjqjelz^gZJaDIM@?ac)q-8;hJ!5+3Z*Ld&Y1N`i>PjRr`!*(3QOG__!qPN!# zcu8ouWW?N5uD4oWZ3j7agsg+fvI&lel@5F|1zatnjqB1@G^&-vnh-Ejai0Rn<}hkx z!Sm6IJvYTq?&m2W8 z`rU9R`DAp2oQa~$G`bDY1$(3+PNh!Esj6fg(toPV2D&8y9ZO+ zQam@o9CKrn;iX`EvjIXW6G&Rb-oVdEoJzHtQ^~zbCYKFY^hTvASq7IULdE8Cm(-;-+%F2eE|v}4U;h4g zI5^zLa4b_xADM{OA97{CB^8f%VY}>*WH=#enmx8;oPYYO%B^mz=O%m~)%8 zGdJ6Wwh-d-eOiOTV5QW2W?T`+4sg$9zn^-Jl=m zq@I?V0l3b_Vb>YYtF!n2)Yp%SfC<42f{zYxxiB=#ksu?xfN~gEOWTW3{*!xs`}a{x1Hnc2-jt5RmA~)qq~I z$b~Sx=lc`W|2g+OYDF_7QH=C0MIxo-MH~T@>NNm-?Ir-3 z=~p|1qsQP!$1d&mRHSv5;d_wDeA!8emV8E)VX~*ajA~=(l^YwYPWQ-xTR0Wq013@7 z1L29}JdKy9s*<fueNw|eu-x!Ed89u0AX6>I$^)w?tWc<@xK50+&A3pNwOVNK;8|5b3Pg&pE$d3O z9gTZY3UvF>@Q(9hZF?*<-21^aUg#;6LCAcDHd+fhYD%ueIM~I-4Bd>Ljk5{_pJAbS zb+4gzYa6&v`%XhMa1S?R_GE^JzZB@|hc!tKG~+PoGz@#)7-+;15ywqF-z3i08z!OB z%WF~ldMJKQ1)=cvHN5(9aZJQo;?FStYceI2dOuf|p4rCJ?lm>+a}An-#T0XNpSM@H zZ#zDpJ2ZPkN$;eSEEB%3e*K(AePkf7X=eeA$0r(~a-2;Ydx~-NFFRVcFLa_j%p8Pw`YEtXFE6-hG20t~|fhwC*Ks{whLBSk$Wc!A=AGJ1oI zBw>JFx zUxNVq>pd*@j_~IE!f|vv{dBS-qA(qcDS4aX=IR;`PL8p^UgGr4E0pbs^V2sN@_=9d z)jz{xy@xliUgPlxAK?$*eudxu?l*Yy;V0NXTw@rPsK|Kx_6#Wj&tH6ttE&qd|bPp-;a0Kc>4GI&y9B)4lJHR7dWM#e>~4^A9{Oi zf9mT;bwQ%Ah=GWQb4Qef;V!Le1Qp@E1gZ{xxEZREW2!nW$osAd-t}3(aevI3Hz$A) z>N|`k^Lwg*og4q?7f z4Ml-jpHoUGqk*3xH!myzx2g(K8lnYVqc3fptLzOV$rEH_1_n8U$K<&exfE;92NethM{G1QxJW2)XLKqS)tJS-P6+dIWk#H9+TD<|=>731|kcTC5UK(93 z)}CXNaB#3hsR^5H1u!BntX1?dWGn{r$}Lt)q-{l!jB&GZKss1Tl2oLeA;PTU6t#10 ziq=BgV1Py!mDYvEB8gaFj3yh)17|0r4!j2wZAvcyivmIW8|b1Gl8sZ{BPQAQppR7W zV-i5OzmvegI9Z6aT{nfJ1IfK`>R(j)C!J?H{@5!N{Jbd`V!04(MuDfmXaPBtw{Y!BK+6D7~Hr; zT6T6og+f~AK<#8|tH01IvBG3pZu4I$!9|$}B=P#%@Z2igM~+UxmgC zg%(p3RB9X^drk)2AT2tL;2RQ9#|_4@psFC1g2(p{aCEf9+p{ZN-E6VF+2Z=@64%#P zI5>HX*Kf}7^37Y^yLS&KM+Yd?La!?K>rhnP$-y)23U_L1j1`J(N=(!} zNC<-!jqS}?EdDq7Qy<|%1F?30$0`TkYQ-=+W!hzG5^>&XKTSTd9)o+WyM$EZn*xZf zeL_JTm#D+yJSaJFsd@9O_PqqDaZf=mqt}ezC9fypw5-I8Q*4&oq~r5OkIiWlJc)o? zx`>VLIjU`x;)YS)o2JO=OC}w2ps>hJ+vJcnaJiCmvNd-6WzWsd4=hbuRU>@^5JYXS zpa-BuD#3ZO%O9Vcb%5)Drl>1r?1b4zFd^2II4sV$%d57wejjOT5&Ta`*ETkG6>Rub zQ0i#3BZEJe(QYkD#poVFf-d(J< zqZ`$#8(p*-ttWRvF+DIZJgv1BNXj00XX`Nx1JYnbvdGrOvep|whHwt$yg(j&75q7L z^tJR@F=Y=xc4wX@U~pxyD7DyD> zKR&^yPd>u8Prrm>z|H0cWwXKI!2xczTRSVm0@vFO4(mEVTS97k<@9S213=C-1qNuucZ~YRe2FRDo z1*&?hMnnDBjC${yuLOfp0zApEfnGS#VX53I%F?c0D`e; zq>~wpwR;q_DO^;r_#Q86Odhj+?9Mh|WnGm@nWq-|`uECN4}ANdT1qGuK^Xy#O{ovF zqcjDHf71ZO@6aG(`{@hQ)f1pVz0120hMI1UfE!w9RJwJaYSC)7wRvr-sDriGji&HX zL7=k3E+q-nAZ-7w{p2(X%t!3u@wFKhc>iur90TX8{TkwSWC=s9t5W85-tgHo;yqWa zJJIMbGY{ULIl>4;v=*?=OBDc{mZ94(+XwFeSgbI)1%$SBUM#Ey^>P^S_Ual>zxfiY^%9G` z!h_=@Q%CeZR(l5+Z#FnMIK=V&6Regil(D+u&zuueZ@SY_ZpVj_Y>krK00D_w7u?@Q zH_ZTc+kwis{w0dDtXcQ^u z=`-U}My(P&x1kfKR_6iL=`Lw^jnl5^)TmjUF9_^;IriJvjWo~eW*D!R1APhuoQ$M1 za)&b4T|=jly5a{+?{gccHHC#wX%VufAZ1_Ws&tx|vjD<6VB(5SGp@8MWmE9aXf_UG zigo!t#J2y> zW;8$&FW}$yw>RhjjKrV};P^;s?qKnCP!W^@XJVOk*^w$HUH;UKRe)k!M#H({4k4!* zmllQys(=x@rI?&lsgPWe1~bfWOTkJ9H?9~DP;E+^@H|$5!i*H9j^-@%HEXo0kZj7B za|=7a?wpH`NeZyAbE`Mo%W2XAFV11q9P9r;+@JSIlVxX~*zeqX&CJ~+;@xwp%q-Tz zB8#jho84;lOi!z4dIk`n1sKfyAz&c=Cw&2Z41EfH2tkkl38TjJ0ycZ5XS&&JE>&c) z*4#7SEf#mPyBz&-&NcUlj5od(U~!^E{{XEm&Dz4PAYlv>H&; z=S%Op)NUQafsnp81R*B#Yr;(sZAND4g39pPrrE1u)Uy`N@L;B0!<=+ z{KFsf`o(iOYv=0VKv3pfc=GIRzVp4`;NkfNXtiKHsF`umgR^_8`BK+wxBKG~jV>qAljOcv zr97xgG4kNSIbVGKAwT(xKVvyulZJ^}&E-6$k(kCcNLL9og%p#Ugtaw@8pn~8l8se0 zN_q@t4rZ}YB*sLHK8IT1(X+SNo;_gBJ>lf`BGrwG#h*zJW}~m;l^@l_DC>KB@Y(;i2GgG09Vf7^*K#DY`*HiYo;bJLd9r%?+)7qY zKdm;l9iUyWv0u@hwWbHJ>L0#K%RfENDR|M=WZLf2kssvee(Tu%zMmvC_pD#1z5{(d z=)XUGZ@*uHSLHY+fv1}q!U+&`JKgDtTn~oVyy{k!EZiF0yC6#cqFX`zF;calyr0j> zaZZoNo$|M<6lZFZ{m&Xt*Ty1(=w+wc9FN{O6Q@B8WKSMJlP_V_Mfs@kaZTBhGC zy&bT0VB~bqItJ&*3i$ErkN@sKf^X8ZKujBch?(u?B*6#}8 zI9?LEf0htaVi*Rms0OZX7OwZ1aX7HgnX}D?-F9L-4jgLc@#7uuz55Ph8d&BVdI!DJ zBFT}Vb-UYHzw5^&%AavL&RNvJKjo|YyG^k!BU(Q}Pr&R)ai z4T>18!mrmr61&dhIh_?WwI*UuD9r?>#Qjf=Hi(y&%xf zqkryrKeTTsT^@vd1(5D1)t8lZPMlnXO--A>29N|Fe`op~@7C>g?)3lb-JRk#pe_D? zO|+w6M&9cl7hT@t=Xh+b+#jl57+x>xc-+4BsiCyBC{-#kLakO@vo4+%JBe5q*j5V? z5{MF`8TZC0t3OO+{~4 zB1mtdaL(?n_s}}C-(T^kKl~GZ@3;O_reUCz#&wxFESbDCrkDuP)}-E;BbUbI z;lNLS@k{2pFr>uk+6%YW>eD^`^lzs*^67u?{{D9CaeM8!3yR$R`Ay)<>F4jBZ-1S} zn0LSDzTfv_hH&yb`cl>x^L1vf-eCW~c>T%%%z7c(sepQCAblfOf6xPj7(Ix`-y_so zZ{6r)Fm^ws=xz|#U-tzIrwe+!r+RfC&~kSIoPOumA$MO%u5N9nw6N`<+KD3#0_EXZZbp^CRAR_8#B**7v#DXQme`>Sg>T)q(1#7 zC{@ioRea-aO;O(nBbGp9DO_f&7 zpt)B-v>DJ~Yzo^@OP-Nn%#vF3>ZMR?rBx+}x1HYKpt~IpF3yaeUcJH@`r`q}9m6r; zl;V1f)oxdfReKU3thITUwVa(l;Lm^jXZ-#@{cky3UC~;lmWs81u56|qo6WgNrDAZ9 z$uz+RPS}Rhni&W~wN{?ZHrpZEwV0R2fOe3mRaz-LczD6z`n&%TXAj?IUNSw1GKRN- zk!x*9Y#fS$HUm^t?ReaImIU9BUDw+?Ux{mjV~hlBQc19?qDY{$LT!b}z>r4Tl70Ma zqp7Zg4$^^A3!<9GNC83OF_^Mg)`721$#o#^SlK-W<#&N3IAL}W*Mw7jzOQXS*I>GG z1aB=7>vFHVfo2b4;Fze``B_wSYvJzi_29Fq&85=>*%FNtN__v$K0$-5CSRw3ONWM< zM`Nep**eDlTwAbqoa<{qy#_a@;8b5fkLlmKo}VVno>=vbsbA-MKl@|Y-@1-LN;|SEdeYj_NI3#5{Th$+q~CQPzfLFi>%GmoIK7t+ zFZLicl1v1rx!Jd5LbFe4E$F=161+^bXuw=3I0N?Ln>-RsLkQb~H98_%` z6ibxyQYbky=Y`#N!*BfhcX|Hu6^EseOX2fRf64XhFZtGQe4lT8=eN0e@ex11dCm`h z>+e`g&?WoxXte)zY*u!Xja%q@7~P~-Pv%fVL-e^~)$(Jqo!05o6Ts63 z4wl^7+F+8EBU9pZ4zfNc$2g_7W3u1J@AQ7JYipl3(ksXvs6Jl56{b(YsM~Rtt!1!E z7f!EEjh)&%!Pu5=_wP9OPTuUVrbouZ8-a*hKY4PZR%|gAiYLx${1nT()~9wYcpcX^ zzYps%kKZ3ck3m`YpmkmJeL=f~h1)L+LDb^`lQi3--GdI3Odg8^r=RWjygy^cl5OqO z2h5o`eQgPHa+i*Kd7mGraqICqmCknSvEcETw{E$Qoq=A~R{l<^ApQQG!YIAdPzOBm z{mS!$lMSx}eCxke*RFe~bJku*DEzpdALoqt!K9o29v51AfmpGMb&3N@qt@zjJ?*1w zcZh+a&Eq`$ z`GDf{QdNl(Nx|Yi)IgwN2&7;>e-9o#;qCXnNeGdfn}hE|es8q1$of9kWp5`>_c~XP ztf$-go=KLfTG9IaY{w7;#to02JmSNj|B@fQe8Cup;{qG3V`WMMF$CYg`~If}TBXFk z7GJ|M%b}4%mzOt`(s=mz8Ot*B>Bm3g$+K_p;suQ37Fy)_%g=f8_%ZXWv;yZ3 z9`f1eAMxbDTWq%@H`g~jeDKgfl6;`n#?{p|56-uUDnI+_XCP()a3nBT9@4OTr0o?i z<}LsEfBk=AJU?T;x#kx?{vm((hyRBE)}XF8K1ZPxD~DIbPc}`pt<|{N)hkQciji(oWB1}44HKV z@9ZUa|J~!w)AjYM=HVx6Xn&u3q^&Kfx&Qk9y02dmfYG%Tt|di1xaf(jCG(w<3dewt zb+Ng!fr}@>-~q6YLRSN7Pe0|W|rlPQfZAbxdxJBwP`hNJ4xEA zZ|GJb@C7okR`i2|AzkvJt02_TSvTSA_o{1a#TVzMYCbi=j@BI1u)xA1^KOD0Jou@t z&j~wEld&skpivoyiI2Ycf)}q}AvloK&1KpN=(bo zmN*dDZYTE3!ax1z|2_Mw#?!ZcjZ&4IGqo(XNsCau`%4pBAX=!j7@UIXo;yQiuZ_|Q zF$BhGq?Al)o&vlU$S1Ox5+lpYhXJ_h|geXiO>u=k#xe;;){ zGC58Jgnk=suAEX|m17WUjF!$8>33XCl9IlMa$J*pK(4nLGN%DbKYpOMJ$3nqOW67? z?>DHO01ExS*^(K2plrPqF=nQ$`?ash4np<)GGKmUm3=kV;E zchM%)Fd<=NJ8cn!o5O7D=2{SGpq(Om1ZrY8p6!ez`gB<@gd@AfllN6NcAIt70h{%n z_q|H7^)8$yDScF{&sQ_w452fUdc4)=j{4j@O1E!?A#$vEufc4eaCC6gzDHD#^W5)w z)!q_V`eWt$ngI_n^e3f99X5|ZPCEbfHO8K{cKq$}oP8aY<{;NP!2)Jg*N#g}~*U60qt*@0JIYYlL? z1B}87QuTGSLmKOzu+FXiynC0PlVj;B>p6M{oq{m-9vefS3a2Aa2+3P<170NRV`WD_ z7PO@A&0@C5s?|@^3PAn&FxvhJ$nuq#e1#>rwf3&p>Rs;G zfoa?7W%Z9+$1wEqwBk~5KN%6$xorE76-pw_d^3WWydD7wNK;zQFbHyifzp3?$t_QS!hs&2= z^2-lD;&*@J1DAtE4u=DW{hs%pJzxlsi&C2z@GgfNzWt5w^7gZ*eD>kbc)icYSiT4J zI6kL+EtgyWJ$>CRrrrIyf6v{|9?kZ@`nUUX=)VeZIsMFO-rkS#rgQ7RJ8i6Sj8E#C zqnM1>S0b?l;}lf>RbIcU39m=(Yo_8S3&(A*zkIRwCsTB7N`E?WG^w@XL>DKYZm=C+%4ncVR>eAnXOL-!@X~Wg^ zHHZCvm8ob`D3y{=d{2UKC_P|P*67;hDY{k~Z3C#%O~8&7F59FmX}d+`>YMk;&VO31 z<0Kh?6Ls;r*q(X^_~zoBmAaXQ-ZEl4X)7euCJU!U6PAe7&T7D8~ zJs=XVO|3gv@4^x&^<-g15Uf%lYQUSQdHxJ3nL~fFU`t$69|$Cg=J61sfr4^$$X5)I zNWrdCFbUT*MXN+eT!Y5d<3u_W!2>3V$MZJ_HE{i|=L{CYyO%+0iZr~nqppvDx$w7D zUSyHEx_{1z@wZs=(SxtfZjs}`Y!P-4ARx4QMDn|tbDwvzj=lKtPM*`g*_~AEgq{@R ziL!#axwS9&t1k`yTw_6Q2P&;=fkJP$C<3h;_BzdZT?2Zx{kRSt6Z7NwTezxpyBy=4EU$@w-^TKxjBM3w&B z_4UXN;YCh`K{f|!^@_6g*vBqN`^{X(p>NWi*>eiG9RutYSnPm|&!^Q0^iCjf8_Lji z4eC|f70~nVL^`l}T;h%R)a9oq$MU&)WPZsy-;EvCTaa^nMmPrk-8g?;R{cKp&BD|< ze$L_*c6tj`OCYN@2Uw$-3A!9J(B)gQ&W}=UZUzCVjTV)090@5g4v|+^ule}n&mbkv zN9FJQ#<%(IH@{7-g%^j+$GMT08JYKd_!mE9|HWrKdi;=<23}<0brz=GBi?@N{gvfn zlyrX{tAW64S2|?9_x&Cnz3coMJNvSUn;pZkLVuD#N^m9^ZXAF7PQZ?RoB`{CathRG zYbVd1tr1-$*Qxf{hr*o})>hxtu{ef-W z6A*hIT9X?qlUV6AfJb#b4uZ2JZjVd9KWoJui=p&{wPdlu@#(+4w+SKW zy8d^tw8vTM^No{dy0?Yy|31F@Grfie4v_RUsC92s?y^_bE<`K4%D=zM)%$wK$+7#~ z?b08=_vezML3at^h*^SJs)bUWc}0?5VB!xWt+ROzd>mr_)bZtO1Jy|St? zI>h$9WB6|IUvJ@9;an^#kT* zrq$|zYTt!?-dS+6&icMa-fAPQ9gOjLM+dJ1!#J+bb}f}@hNn1qM54V1=i$X;zVq$hLPUA|=qaVl zeDdL+^W^CV)B+ILJ$yzOBWJSZ_3KN=E3=65Me(roNXo!`@I{5tzQ0Z_HSXrgck}JL-|;3EOn>j2 zK%b5W9NCRuJ-@rhyqm9|en*Va_X!8peEqt;qMa09d_Q}$1)#?=?m&~LXJz&u_NwQOJ27ag;+e%xh zy?t|!AyP`^;d$b}{NMaTa%l`9u-Wb`EcZfhOm^(UAroX^97Z$Vs)b=lXqnkB2SQA2 zHW#E6*_$8;m29OeO-&}`LI1(S8o*wE=SSi-I#h85@*8TU0o#NhkijHZRxG4y;K>4e0b{W-V8 zJLuqMrLDNho&y!EfAdsI4bTyE)!v^PI`?bt$-LkFRd?T$D+|Ut3&qzMwXqUzGb4L7 zP!N}T^);qC@F8oUZmx#KzrWw#Cb3HjzrK+G>u&Ux{tclh*nISX+Lp4_A5Nupj%@EV* z{grB59*~B##%9_u4T;B(9`NC3U-0QCAM@>B`=$l@=ZsN;q| z|LHFvjy!wkd*pGXPCK@n9kD3f>>*C1569Yv4&yMSJw- zfoZ>|;^vJjTgUIYUuSRaYxlQ<9JUs(k|J;!7yfK=^pEnjHN=rtj&cJA@$u;Lir{Oh zfrR~e0(CicAjW~(3LO+(WyZd?#XiP;AJpF6(VmUyY|d`v-N#Xacad~?jqR%rO!w{u z>V+S{*45T!_%<(^CsN6!k$sO-mtso@mLID6ns009Q7YSwSRMZBpoEW+Eosge_Yn^# z%q!#wKJ|swK={7FsIBq7A=qBzNsX||AyjbixbL36_SEX zysR?Yo}rFeEcEr zyz>sFJf*0R^9?O4&)$8P&1T>){^Z{fH;=fydV$t0Z$Eq2*xN%yYvuClB{5E@Dy1wi zP1ZVkirx~sKTF<5TP<$ueqkX(Zk5e;v~Htg;`z&$>=#IJU^BwUpWiTyiHBzsecKR$ z*RNlr0_P8&^4S-!IV=m)v@`Fhll=NFE9EY0yI`T7ySIwFIY-uyD`K$^q~6I>6|2J_>y-j6Yt5E^gvKN z=)O(QT7z-=;^}Eazy407VzTg3V`_r9vaew6eq&8 z<)8e)|D7NH=ui3ncfZRtM$AkX5AN-nQkN9D27Qd)2}wYr1(yNSHuvORTs~z0&5?E* zg0S7}`1lte@@N0{f8xP*pp}^r6Wi?uZH-*LiaZ#okaHys1Dk1BeG8^>A}^VeXW}rB zrY%Tde|1F+f!%J$yv!c38v0!nwnJi!!XamV`Nl-+{}9(Z6+?SUzk?j^iEiSYzcO+mTkt-0S_}8jNny# zL1Pb9Y>us()L_z?&}0qnnvX|tUl5boMOrCNxjnK0=z$|W$#P?AH?NB))b?=F)k|B$ z-Na39PiBAtAg9L9E*iYYH{MLGW%2ClvFZSGePy#GdGj156hD_H`x&XbuK+ZX7{ZUt@1?tz#3ny_{mqPGRKd)(AJv3XDxLSRS(InT6KNgjJ-3&Bgm^j=|EjOvMgDpSv`?<87GbHF!AZ)wLyT_2*VX2ZQXhvL@~hxcYGfPoTB1vOH?{8uLKj%~X3r+fI_37y?zz+|mGM zo6QoFRk52r1D~y^b=q-;$uSnT`A}*lx|FB+_=I+h;g0Sh9*_Ec>1%XVipSx;T zDFxL;DN0C*VTfzopgv#66d1<=k;qc4kYMe_?OYBuQ%kkEpAt)H#8!R20d#g_WsHHV zt7{I|pYZJ6573q!$UEi`q81}m2kopVY;#fEI9RoJqYCRBLm&;2v)u)|vvY(-&V|ip zVmnQgy6}QauCEpzoj)+(LX}+V3R0%zxd_IJHXk=(Su)!V{Mt9)v`tl@lzu3%g;aM$&;ttT)hH4`5W8+YIc+GiUGV3QF3(+8o3)l|qzA?JWJ)c=GrOpMCNf zKl#}&`Tn=xr_snonZ^yfX%+P%!0VT<*^V2&`>l8R^7F`NpMC1--&b?)(|@1-{3i0l z*8wkIm*b!2$M?PGzH_;I%)bA<>Addd+WmKH>*-SovhAe)=3_hqeH0P{wro9OWx({jlIu!5p)vtYhpD5eyh8HhhFdz18wp+4y$a!$KA*I00VbA&Yj9x7e z?SZyhfW_^}y++&q|JQS*Z?ulYbLS!C^xFD3ux`K|4TsJ$=oc0Gf#}sB_4|PKs-FiZ zsw;pK6hr34mK;?G-4IZPv$G5S;?pnrgFpUbu5K>*?2rDC+A6Nba>FWx+RU6UScN9} zb+%Gy0wG1Ho|N`L%f~Ny4aFtF)Mg3eIBlud2VVT;UyzoWv$K&_;jk>!l8M8_wAmo; ze=?+Gn|-lhR^=#HieiEid4MBZJ%=}BG-x%X%eY5Gxfk*>^njTt2 zXsrw>p;}B%C1!GNhjvznL>kSKC?CJhYUs=(vsJgMCG^U4->(cXt;GTX)7@tS2>m_} zF*3x!Trwib631rpkb>IN6@=u>jq38F4j_wn;?O8ijCrCV*fEoJXR9?6(}0$;?iV4N z2UQdI1<*#5V4ne`Wdk63*3gucqWcU*kYL_e*0zSynoA}7x*t)h%@j9>?_LE_g3lRa zHl%SN=R!l64}0Evbito~^b0i4RI&9n4FeJbEzVq_$aKapU%lcNUwq0SmX>MFHXoX@ zN$&H}inR(=^EDW~sL&i#Q-vWVtGv&9-0Ss4Aq0 zgG~ln1PN5157GAu8>6}ggfZBAt%{pCGMIuV(YDs~qLu+<1|-$iXtj}o*mLDctbf25 zmnaEn5-jm<1++3mdv;4Rvr<8AeeL($=V$Olx;cmwJO;?6c-2v%+H=riT7luF&Ey%? z85hAiuB2phua-jZRwL4@?~NF2A6K>W57HQ-C9I_dgh~wNKesZ>g2`#MDa2?M{W7yG zGp#fvCYO0QFzKFhwG_gb))*(cQD$|Zm1f^xYIPqtHwKozCm3iS186CvA+DfE&edg` z&X7@%bYw!*TG49bVO?fye~GA@$6}sZYH?RUi9sn2K#xB5H4H4J5>!bsxU5@N=5&mS z-X%uWnTmQLRK236bK@d!X;Hwl>BfRAu#(iYd{6 zR%|XI${^T12DDX@cbHUZW>#I5CN|gelEK$!ZHhY6L$G;RRft10zm{g_(+!t<5w?^{ zNQqJk*ULihqS^AomOINzR;YvT|8+y5K? z*Z<3(5rzpZCbdVbu|nTJVzBO%9hi_1X#vJKc>Dk{!JMm)Yoz9kBE&RUEKg_P+FH=D zzpI-oKKQNQ=6iqlKVn&CTi3e0Fxay)blR&58BmEtM;^46A%(E5c?f@q}Cp{$| zoaV5-$bC1*y^p-`bwq{J_nhYMcUdl92g-CpKu1Boj#cv&g25YrBx7i`6@0`&ypCxj zdQ?z|T5;@e`1+Mic>8~kRNF>(dN7HeVtD1yXVp?rnMB#&d>PdlaF}u;!ED&{hC#EYGpGd zcAE`1*E8+WNyjPFH%ok?bVQ-&XJ4gl-TLhM{`=n7@9*&%1PeZzU=z^)*qI9s&aUWS zunDjNH+?d%piVDo`E?v6wAQi|kK7<0CEf78Tv z7z_mpfk6b-;$xQlcKH4GM7=ddL!@=tOEbE53V}2Xv=EI|p+bnl{`G5ynmJF2aW}C| zk+~=(2#00i@@mgP0Rj>dmL{fmLg<5Az z`n-J}SVbv^0f|^Op&I+65NY21NJMB+=%%ejeD1`+p$6(SFvymo5T*?!SWr5;Jf z)si!bgE1e(k`ieqJCmM#6VRBDW&vg#MgzG}ZosRmktJsXl9CddGQ?z{U{s3Fi8M|I z`e2>Gv{f`Fo6wCDz;{G zT9lg2k0hwBA{j59(+;z<424Q{K*!EmL!#CL0Z7AObG*(77v9uZa{4w5CU^+l-h{WSstJ*6W#Bj_#QYod!*G$uFaCl zC{PMhwC4bY8WV`^HNBHc@eX>{XRPKIb~om`LaYFZ2#s#Q{oCS^!mH^zoi^2Gqtn1ahfJ3{Z*}T9UB>qOm+f2uMogd4XC< z&QzB~x9_MkAPWaB3mBh|_gY?T07h#0%|kQc5qJiK_!2k(4? zi|qwLMpBEQiM(W=Boy%4m!`Z zn%re<1T_F5mxWpigG->Q$F6~9b^yhII33UV(+@xAPhR|YD-*j_+gH^K1J(sqNW+GC zS%Ajm1s+wbP}iS3f5w&MvLf|(+S+-S=Gatyy%#aIX8hHBf8S`vF@OHf5YQJZhuldF| z-sAd836i+HyyVfNCj^0gDZKmM`;=UG{`?CbKYGf1*b}!K(lAnL<9ynZ^TN%%u-y#y zT&U$Hy#tkJUrrcLXzh$)E0*of&bXduZZgE$(2{w4evUY(7zyN(d3AZo_kZKJ0Lb%| zvu(QK;A`?;)>GirQ}Vu?_f2{C>36;3i=Q0DtwGze;DiZ<5`I0Nyv*PJb3(%(v4936bY7U-Hho z@7p8@!Vuu$*^XacT~VASfBX2y>nNpbqVJe&-a65*&X!ZA58&PmVXf@p0F2Mflke#) znjTmI(FhjAFq=t9I-vg9W#xk?>8~gRayHp;bfz^Srp<1E4})GVL%!GVmmqOv%}d zBjX5K5v*Nmt;#q}gpjCe_E@n?LMj|;A*IBy-Jr$g3na7~(R|qt*>gy^I0EU<-8YtD0A<;&R14N}3tLCIQ5Lz)Widw9i7>p2( zHnbY0UxFLusRvnzF;c{Q5Hu#L2ZS_Bs5Jy~DYRzQo8oefB%pQi&CgglV{1gMlxo2t zYQPH3+O1}wWea8{1ZvJCsYGoQ4UFSNsg05k3?ZV)+T!kWhSo?3ts1)`h+4u`D-x6E z2sQ^Y_FVMJxJaZeGYDRp6jUpzHA~)0Bd1_vU8|*lS{$%2;G}9{i1u7HvE;C-S4C@e z34|qTHOM;7gIHQAwJ~@CT1us;F@OeO6ewPC!~vd2wIJO;Pe?YeS|O>hcvrHZT>{~i zj^MQU(oB9O!)h!%5S-Oz*P1cFP*f@Iv6EsTs*>Vh0Efa50@5686C;if?!lk|BqR%9 zRmkGcr5a;KQ47Mv=2DeLRETNxU{XOFld~Bl8i+>h^0NwIunVY-kOEOzC8E{6AJRC0 zSY=Xc_SHK;NLH8#fx#s!pbWzRw3V$8ilXB{Xpz!jZiNI40SGo91R!l$nz2r{?xCdM zt(OgetlC_PSV>~+Dp`#EacG5txN3W4$Lf}+N*ETyh{2`C!PpuC3U zprG1184{W%Tcczq43SN<>U=3>m6n8Pj45N&D8ai*B1*ylm8fd0q+u{{O&xr6L-(f2 z7!w5dCknxU#-;C_f#%G>AtXfY8Y;p3d?XSRNHcJw1z?hm8y*+zA z{euLXgQziM6-bHFssYD?&4bVAp~#+s9;jzFj%ZsqZPDTOfE08{b=+g zI;KP`#_-WrkX9j@Z%In#HE6PVR{5$bG>;t&L=-5-SgDEuT*-K%wv;-sBOI1O+MS~%BO#DdFeX$S%qK)Et(kYz7$Z`YTr>L|_{|^u zJ^uE$zr~|ijfqtnhkZsg6Gh3IkZ~l2!1?((=Z_y-Ox>*vnvJ*R2_|DRSx#^UsQ9zl zj144i6;YL33TJX|plz}Byg9ou1)=1HGG{m652W1%*F$6}nUuU;x36t|{Y8Yh*$_+h zI6x?#XP}kXY!0sgf9y=5gvJPJc~EIeL`VT-yJcQxe)_YY@apgVC(hogW=G(2CAsW* zb<1!mzKC7hH^1>NKmOS-IPCYFpI>lun0a+|Nuu)X*;86mzI^c+Z@v8%(~!tHb9H^q z+1UkezxzI|6kfgff@$}NtE*R>Z8wbLImEy;CYF*}mdv!-5S^V|>q2WAi!F-9oMT8{ zcySrESmBLoEREUUxgR_yQu;j`#O}u*jg86XZ?RVY=AkTZt z=T398uX)|gSx>=~Q^w5cd;dDGzlu0YxPMNdEhI96{wtJb4l+`tCcNjGo3SdU%_aC>0h1bW;j zLF%9Rt0Y5j0#n|^U|BEuWUTLFv)nz8H~sDI=fUW%o3ky$F!JS>&j~S*)R6TQm4_E+ z{On`paF{teJ7ZaTuq+_Awcw}6=o6$lG9g|O5znnfPs}7w&i7Q7)v?mmnVUXVE-mt7 z_24T2p$S#IBGA9r(Zux_!2?!>?moJrvh>#0-hNV*5UpKcN`X=`+Kg$TD#(yrYu`+d z3${>crME;Du?oKH=MYJxBuL9vy$sO|&9I7KQ)Qr;-$f9l3FA1f44?ks8j=q4)eWsK z#55vRX?ag*1+B%rNQTk;KcZDpnlGfL1s+I)F)m6r5UmN+>`A-?4)e@DKexatM5HxK zypk}#e$MiXKj$}p>+f^;w24$>PX;JANl>#k@i-#~S zYO;V|9SO#R;vlv$m^8(L-(CT#;)y`ZSUPD-O+YBQQiBrZ*tSulOMTR&EI}%{c%mN7 z!zbR;*ijsxwK0W8AuxOO%c>fd04pX>N(ix-M6ETf z673*`y4Oq13xWmdv_j5pWrKyC`E#SY0?bbQ@_?$ z(OQX;C?YI5Thbl`Y9TZsro^mxQtj)huOUjawM}eY2oe~ENNCN#Bulrc!9b^=l^9Kq z&_rDJL)Gw{OapJv;~j2{z7qG<4W-S_a^XaOtS zc)}yKlGWDMp#@{X;c`8(ac@$Im<+>qY)?#a@HmJumDCJun*$buSMC-ES3??5nn^~Z zOD#)9Lm{XcvbSm=NcCeU6@pZ1uE&=rW-w#>%V?AjGJaP)1`s z8E}C~FT!^>P_s)zgC&AZj17~TLapRQAq?m;TWo^BVxD$~<>19hTW5tnt~Qx# zwSD61=7#sb`F(!xn;-D794I$4i!(J%-q_gBGqn}AAm;m@~8j4PhxcUcW>%yY(sM!GdLwsbmGQ+ z605tfTNWnZ>%vj_v1Y?QAMJa2fX_va4k^s%z<5$Q?3FLK%wS{q|o$JY@cSx?(P6W5K<2vq8uDCT}o zD1kyZ zHWf=4oOT?d1)1ugq97E6w&bJ4M3s47P_0C*ez_3|7GN6~<>q6~m`H9RBoQlS@X%(a>HAENVMi?2A?iBz5|p3_kYm z7Xw!PbY@Of0jEhfqOnz)I&c?V%4Hy!ZL9WN3wHjYA5*P5-ROV>;O(dby;AODsgYPK z17iLRDukwt!77EhVc-LupQUc{?43$n0x8u3!$s{llbE@jc4KDu0g>8hK|LYC6H##) zoG}lqLL&%?NMoTfU~MM54n72<5l0jjVzL#1HcPS>T zs?9q>1sJqZLh?Xfd%43qJs1;AFgb>?TV(aANn&0ztrVl+c1kv~uJuV0RV!7j3!0)x zH9*zYTa%5Tc5WdwCJ$7yGw)QaWw3c#7*oMy2sRO#1jk5wyI1V}$>NLFD$+0?hEkxp z^Z@U67lMcGfi#YkL$&dVgC(xP46uVjQIn5E4aSn|L6yr#Iy<8%sF^sCVx-n?d)eF* z2QDu!ZKHFkVQIEUh?>E0#GZrJ;`%ICaieFuvjmi)k);$yr}Rs&(7Q~rsrh?|I-^B| zrFr)gRdCsZNp6HnBbEhm51(UFYRnOwAz@f!wEZ>Nv6p6TZC8H`zdwi|&7`RzI-rEu ze(PHJ0cAj`B!c)et>!}#Fi)l=I3Uf+L=bJp2n@!`Dcui6j3q&j6KxkkB)QZ>L5$s3 zRhZSJ3*y&D^?RT~ReN5N0%bljfU51wF-BhltF7lavr60)*FmSM(1=jGiFz|XE02+a zR#0Pb1)NP}S5FLTvQ{%SvDgP;QK4!ufX>-*4V-P_%qg*X(poUNtzfb)6{=Q9(GuL6 z8A5-48?6d+gD4F&B9zsmCSt59+i%=l8H=B+O>$Z#BccWxh*oM<+bgjLMYMypjoO41 z)WB~wMyYws7^_tY^4_ACXs)N}c=OSvXQ;)ZUK<{khTwhYK zpR1UQ?WtcSV%Ewk0a_-y9Jl& z+%zGVw)#@hnRTkD6hy7?pdpxSx)u(HnQ4MeS@_ob@AKmy{}gGByzFVfZ~W#D2x;Ii zfAq&J2j!bjpYr0x=bZ0$y!+03q%@M38*cVD#34E0QV=5h`M~4H52?#SBkMrJbULI1UOt@vtJ4!jkj{Y{=fUW0^O(PIQ?9Io#w*#fhPC8_rAZK{_Z}|_tTZfWxVYfz>a|rt`}MEqV*fft2G?uB znI&s*(`mr>k5NC*Dz+huFP42e_UUXkAMQ5qsqp$oH+kw{O+UvjSvnp$LKDn8$Z2Kk z`vS%?P~Ls^7D(cH&em4C1tccZ*#~I7JAqS`iv%*>38GYrdo6T9TpSWo%)qmSfw7NO z9MIBe(ip}G#42~Tk(!}uEoMAArh!rlZCNbzOva3`&N)uU74ryat-z27(JBi`jK0~z z#uHI%+gcPP*aoMr3lG6sl-H(QU0svnNG-iT11xzagpstn;MLV@mi?Zv-H=)%4vF9( zPH;<_7KAZGuQmi^Fr!sMuL!zwK`nV2)aOoc8m?xN7%)%?6fn)R%UP_#ZULYR{SBCC z)n#2>c4aqP)&CZ)1+96gi21Grp)?`k2|#NIiK>AClW8>Yz|$UxDBdPmy0+6>h^kkq z+|Q*s&_ala214^|_5``ua%;yyoo0_!cYP-1<}=@uBDb6KtRQ9rk`}ZnSu80Ou?MRmWDinP2n1<1@32H@h~8rB5r;qM0OSOJIp+z!|Cs5AOYgx>rwdX@cM5(|ck2RPZhiK4+Sm z3=At4R3JKa+d~p4mf)b)l?9j21pi+LqI-H}Mw2i&xL(yj-c}Zf!db9@I~So)NM58c z#fX7YAt<9%W-K6&>OCAvERV&NHi!Yd4oxOPs}?k=z=gS#TRgtvz-wM&TFt zZ5c)ginL5pGg>V*lbbz{f+h3@lt+lRo(39Pk4b;7g&1&y+r{K35=kE56d#`sz6e0F zsxv6DskPv4nI^(q%?qhY0OnK zb!JchT%CoXN~^_LAZrwB>x?^TU~BONGi)=ebV;yyJdwM@yR zNJT4S2Y#A?NDV8LfDoz$Iu$d9-N;N;GXV~s{FUYm5rh)FD5SP$g`mULRX~faSZZ=ciRKHV&dzF7uJ_kGdhj-5iY#-cRHa1= z3~lW;c{BbjTK)&yopmO?y1wMm#RcE^#=BhZ_gtK9nXj)2JLP2UTWtLM9O zzWDMB8p5}J?OU`ub2v0|DLf!hb7h!D9zA}_k`KIk^@7KbpRg=5!*)X&660Y1T}oyt zl{mUl`ALSVGvi#8^gfW9eLJ(>UiXiIdNS!J7?D9r;@XIccYmdE>RF3z6t(eqE3LP0R2umYlu? zMa_#~lENsEE9{#EDoLzjpHgy<3VR?oVu_O(Llz_^mSU!U%p`MXv_gd04k3tIU|Qz5PAc!cwf;j~Qu-x$Fo~ax(xZ1jxD&Br>A3P?<|5i7>@L z6QirMGl2n;`(3%oj)GL}s)9uSsYTluu-y>|(?B;f=SoIl4eEgm_5u{dz7%cHn zTQ4j*YrtX#b2WQK%R=r-TXmU10&%dU(#&ox;i#g7V0M*4qh6OasI01MYtIz1fLMeZ ztyHhs_v8kJ6da69BPC}B?D=U$eI4wTU`u$TV%0(dp%nv-JlG9_8TwVFXoWNw^FqX> z6Kc#NG1@wqY$gR^t`(K!Af_@Bs2pV>crfE7Ns3EBx_^L4m5LkunlFy|R9F?boK%ov zN@P`9X+&w5Z>Y1)B$@AtRuuOLYK={_l(aa@r-&yAYSqD2$|zoi^l_=Gq}H5$Av7`1 zhQ2wP^uw5TA*i2oq-tY9+=$rNSWfOH;6XmFvse7yDxqbQr>HX?ssV;w0_DpRL4xVz zg8^~PC1oktTvzwg=+Cx+LDr3fVPLGriW_`B7f-xG@XBjlAetAzfK{C(jn2Zd`A)0m zmlJGV-UfT#51vR2PV-i+w%>;CC((>4zyWb7#>;F{7A=LcxRI$E+e1P#7EcgoV%Qc? znn|N#TnM#N)w(Hh!U7$ceo zf66x=Z29R=f5Z?0@ora`l^dJMvFpT3beu|*}7b5 zNHoSws|~JisLjV%8%dY$qq_PcpoJ#peG!=e|3Co0Ic?<}N~N`Gojuf&Mx_v<8aUIz zX2roawS5drpw*KiS|t`;tKCq&=ups{Atsh)-QR+WC1KH4h3Ip%IG8+$&5MeFn6DKg zYhoS5SfY|F3G1B$34uc?M6m=ayPQQ3nnZu1AYG! z;!Q0iU1%}U$VLvtK=ejNXj~hNVv-K`BS|PFH?kxai3TQxLh^*ZsKp{fGNwl^CZP+p zxL=bo%jEh7!eG7;Wu`3F8Dto&z|!NCic7SsQUne(mS*=cgy@N%m8DWhsBve>&SY?| zm@^(Kqv?GuVDMyG#K6%KB4Y@IWwF>TL_{J%%y4~CTLZ@?)b59+-s)X2;-NNV9L*;$ zK$OM2id5Z<)LAYe8L(9|O|4*2flW##PmMP3TJb`KGfIjVE>dfxaik#(O$nM&iDZx0 zw%%!Q&dVyv6lrdHYEs=SCQ~Vh&kx&wTQdj=ZRA?K^N7m?2Z5rrGJEV&S(-q!w#eCI zm%eu)-W|?@T>~*ZGs)E$j>+SX=7oqGXN{wkJyBUgj+16fpB)-;d4L$$X_G1WGG?lf^pi+500(fz>}QRFKe!DL9)p zQfuS-`oO#IyibzAAmDS zaoQ4NB8I^A{ssxwkyEqD_)5#DB*10M-IK)kxFA+I?o7s#XK!V_fn@!}w#ThSOzVz-ThFnXlJbQQ!apd{SOFnq#EwV4zef&DL>Xh|jRq}w; zE`>N9w>Mv_0ezOxbcq(HbJWk9b!_fT<~w6#Xr?W@1}KUHL?$;dS+P|N?c>1`97)_9 z4ro5`pZ~poz{f9N@#6I>=91A6nYI(>XIn-$1&lGFaUhpMLcJZanBk=aBtprVS_-5Q zB#}HltIgW7hBzQGF)uR;^n{me^A;?95zVJl*5e$M{#sLxGh@6gYe!tNYs7~ z!(`Xr8fg?X3blB^1omAa5St*;+_@DX1X37?gH?xXt1O2DV+;)AK*^afUNDz}#7th4 zZ-4u@`K|B#CO6sj&(U01DwWbq?vkXj9isye1}0F<8zMXHcQPXZcm5B?grK=IeIz%d zNDsq6u2w+|;@zJ5VyH&r?}>bN#$K;_6*UqsF5hYtGYwQdw!aiZ$FeFzO3rYps5?D3 zr}m5yO0Cpdh%%UQ8(uY2t6GON0A?^~2F-nv2KrN@4(25>v)^VsD^#1A2RDUa8@ASt z))>&H7`Udzy)1%(LjfBr#1f6%noGhgpb5c%$foLDIb2Q`OukXgaK{1$45X0OY<-Pp zde~dKPGVqG*1onFIA~peOuHJSud%_pG|{}zvTe^P${I8_0o16>oivnuejAC&R-s%y zX{W9<L>W^gtF>~rl-QD)B*w(D@9?(I+E6jGW7N_bn^(=+(F@dh zrnO4iY%Q5nd#1-Upw0M9Ay}JaFaXkSq7Y)BmAq0@b9K3z2d*OKQ6rwPfSU22vdU|l z8~)*QT4JKMYNoyoYxx{H2hTbt)!ay9Bn3107O4j0s5k>E*_=Q)8%#D-NEFR0>q&Sekj?q~NBi&00LiC?>1u z`>+a2t7HO0GO(qUVpUE*_fA+{nljN1+{NTJqDV~SYU@OmhSI!CSzX(|Mq!mUlw7H5 zT|Q8yE;BJGLmJ2pE+jIDvgAw+fo%xPxj+nTqOmcuniN3|+a(2f)GT8#;LhY7hn$Ht zCbj26YVq}|OUN4IkQj$8dA{+u(!hWwW_BIK7)wnn8-$G-Al4a*t-++$MQ(I2l}VkE z7XnN31U*L3Y5;dIQ`=#(qKCw=8h}P|u%MZ|MhV0i*ua^DkFdwrjcHY%nZg&t3SUXo~HTG{N z(3*8j3YcWd7*88oHP5sZCPH=dW^L?CqjyvalF(fE&9^tCpya$*98)VI%FXpPxGcC4 z8HdSbP0`?GLz|2d=G~Qw`@HmLLcG902oCZZQ@k_LqXdh!EFB;W$y#o!nhYpfTjU^S z{ySe?@mhsz+3~6@e!qh!4#AobI2$a6gr<>Fi+QfuARrpZ6&5c{jS>hYGmZn}Fq+A_ zHd;PVTcIt+uB=3!KK(X-`!|1=HZSDGSUac-0z*K9#gQVoBC1n zd+>n2`1vpS;9K9}Y#L~#@rzGC9H*Q9ZB=Fn}jLqFc#*3kF;{H9#*O=O8T5gh(1xzK&D zuY1qefiI_@J;en&E5E}fj$EwyfO)7v7s4twNBcYeCa+&jg5>C#*S6_KsE|O+#LZ5$ z52{tAV=&XFyEpYN`gIDP#2D9s`s>`#yVRyrB<{ZNdDG`ke|LJG_nq^bC{J&qblv*9 zn|cN{bXTa=SZ#`pPY?Hd!3_N=HfY&ddBk!ogboeIV=VS*sX`kgg zM7V?Sy#dWU{ay6U-0(GBHyR^8nK_)IG^f0u61ct&DYaiTmzr4NQ$oYqn0xDJZDz6? zEWz3h1HbdZyZpWH{RWrI%%X64^_tH<{+KU5{{n3bL&yZI!oQW~K@m&=cDo&TRSF5r zIg=zX3?r>oZstrYjZtULr;Sz3TcL);r!PL@c|FjgnN_xCCRia2G$P`Ohqd&x_Jg%G zXXdEWLGi@ZK!dszDpqmpFukfJH__?PqKz~pPvEWN%l=@2`I57-Zek>c5ye_k&xbv~ z`@vIw?*|{S-`}w0LL;y&i(dB5RHbNLYDvE>{sAaJLWtgmudK0Uv1PEcEcn21(m0HcnH-v#0qa|Jb zNNO+-qE;avlr&oB7;m1@aZ{o-*#YdnlnTpi3;_wo?23lVIH+fztKbz*Z!atMe(!#3 z>sLFTN5}1L%>^iiA%C?Oe$R@oi zWar=1msmf?TVsOT1#tW>C;6_*wNALbmZG|1duuglm8}R2$xPf!wx2_A z`yU_I_2+iHm(lD{aHhW*TQ<9=Vq3y`t$q7gDl8eEJc8f<7yp`bD*xN>f18XfFL?dSpYVVF-~TrZTVdWGuLBIsOEI{}#^<5nt$ppwykJeOuy^T=N%|mH^YgJ{ zf~^@#t>oS@568Tz~T5O#fDCSYD>s#eaX z$s{=17=n2P8Iv;+#X)s3iB8kRoC`v837=3zxH&8Y5q6u2-qpnJ|FMHmkYKDqHII_o ztVoc6=BCt1+%L#0$2MW@=7y-$yimQxX!A8SCdfIXH5f3V#h!hQUgaageZfX*B+oppr;xP0f!;bJQB_Bv)#Q>}G2>ba!3xR3c8at&Fs#XrmYyz}kt8tk#X&BKUv{K3Y8=yH*Y5zSm zW9wSO0Ao80Ltq#-gfucbNT?Nl@o#>g%hxX%pFFkWip`apD=$9(97H&K{M6)2t&v7E zVVyS7yUby8UrcVC7r>>f4F^K>Xn0*Ime;uVTT}HW0r;ALd0C~=_PPk7E~S>ngWUzc z{=0vN>EaQB$%#uXl$sf$5YlA9Mp*!1pEH%fl%mO-;z*0#qr`%YniuvrH!O!euV20* zY%U0Cpk|X0K6>zwCy$=+^uamroNu`~>@DqS#wfORvT-Pjbs8N87|hBcG-C!C(MZv% z%!fVCo<8B{AAbg|ahMlkOnmn{zsWcb{OJ$>h_myjgpjzoxgy5K!v_!Dh5&AEE`ekQ z-Yrl{qDZBd!ZH`mb~}b4u;iJljoq*z*UI&NPu!iEVgzS{C7W9*jZD+P?rdc6ZfHX^ z*;HASw;o;4)Ve5bH-W2t=Ce<~6R{@OPeQ*dVc0u!inw6Uw5qD^!n8# zNFKOoj}SQmAy&PzDAXQ&S%b3Hst32X*(~=-jo>(_ca3(wLLEAJ-Mw-5QJ(tG_ub^v zbNQ=eNneNF-S@qBugyQSB5s0Gmcsej897%z{OFgw_0BUJOCW{DH{W^0zy0EKUSD2v zasI$4o}9GS!sdrnO&u)zn(Mgt+SC^6#?h;%0|>{r9I-z+0etS>hx;EqPbfSocPQ3^ zb#>~fA49ytS94~!o!F#83a~%S6g`mVYkvIWA93~N=j>$RPz%prykra@L0Jx&%`{P~ zRlI`xxP%Z`@LJ%%s!23t*ZyOjERuC#@03(KjK}U0YCIsTB)A)H~Bi z@C+>w5TZmR2Je((5)v)d&&TJH2xT!t(h!V^Ltdz@aySUDFK?{!wlt8&I7O>UySDbh zg9rTa|M0K)pZ?jupjK;5+%!H)G`F2On)*%5gYf}kAiplP~8g#fMzpLy_7;J#Th-enhYtD2J^mXtr}ZK6?3LA zFjG}&bs-G~mckXTBk)#3@fwGaKXfBz>u|M?T@>*rj*x?Ecjqsq8D z<3~UJkmp~%;D>+s2TVz*H9MGNRl&SuHbY{2z9V2DxFj<%zTWT6cS8)UD6Mfb&ls!H zSPrPL-E2rHIvY?Kr;)+C@}*%Sgvh5id-FO#7?UuK1G&O{I1mS;e=phOZbORJjx-nI zFcKsgL!ugBo02#fC{P-?DdRMO8e^n03u|-lCrpNrQew`tc`2!Nxf#cam@FY(x~xzV zOPfh?fH06tWu6bj2zgmZ!^kvldGX>)mSrKNL~fPO7iW2jS%+3tYBjUuVG2ych}L5F zyu0F5^Mq*4#%;5iIF!QWVP;H$oEPThXdc;`QflRFyQQjij%j6KnTvHJ8%7WV)y84t zD%MD;#rNYzDcM+8!8~W8h|7a*)f&bLfZ7Vvb~JyjTv=`o%z1Gp%YhgZ!#Hp_T(iHq zar0@5Ri^D02;^e1SW2UTBf<8H)@*$b;&D(_rg4NMT;Cix91h0T+3ctl=DaYDks(;e zrc$ipuM(IxI}V3ESC=nIl8D2=yeyoZ?QCxu2F7v2&8t^z$B8&@C{?K?qnP)OR%N^0 zusfTKIY%VVH!RgUIqmlgd8sUAVP0lynd>ae?G$MR_RC^xRWWvz$@#6AqiO(ONCVe7 z6I&ysxJu3UOSbzsC1Y3zAr9v4QEK!!*t+eMd9iliVvLa14CuQ)EKI}5RmlV!1IKL)D+u$bgInD<*P)mgqUL?Nkl7Rt4<8O*OK&TTA_`c)bOhF>c zJoDbWZ}aIFFM09$lC$$24amzi+vy?iz5g8)rR=X6QsVim7pO+I=M!bgjN=(0M3(&( zmp2PfpS{H}3j3=|mZft3;LIiF)`hU)2KCiImvM-`hZqnxjU(T9_brAY+1^zfIcJ8b zyqpVRBX)&~H*e)WPmH?{)~)T>8sxAW$|3WT|jTyXmO zI`HFe&fS04|NC{h>em59cU3QUyCmIruD5|2^NL#k+|+TGV-9?a03vwz=KntcFg{#% z^Bhe!^vI}j+LLOa(HPuOe92|)VgcM5sMFt_{`@AC?)2yXAQY;XD}{9v{%c?N9pvt> zgRtHG{8!FZ?f><6wpN)o1H0{pPd@pC`7m3{+-B6nw;pWRZg+hC{F29y9+S&g#|PgG z)q$H{)eUz5lCPY1uRh}56{s79aV$yp_j)SXD_!d2$vtCqe5k_8mgx+O<9p=RgJ|Dj z5Ezd6FBF2Q4C?k(8pF_f3S0 zGw+HJ$;A?%izL)#L1IEBu@sXB4%WXLLSm_A@@i6_X3`0tryI+{P#GwP8-klHhLAXv zMp+ipW(zLG3Bwi{&ydgvR5s&8NCPrGG{8a4K<%c%?))L!apLlNPbmu*=UYl`)X|tE z*Vos4vHt|EBM%-wr45mCIMAwXUMXIXOC_|x*@FvShmo88Ya~_1abnruFl{!B!`3c! zYnt(!{SC`P4@Z2N2Fzj=b7#9j3Jn0 zjc99tHua=<<}e@Fh`3I@A~LS#tRY3lX|$?!vTgy(%{8dd%EGi6I6pfhq=|j5Ivg{eh4Ki(*&UOTZF(k%m;;_uj^Fnd&rrmbK zl4lSD9y|Sd+-zudCWV2ko0(cF=ev=-?8zF~o?j4EIqa_}r4iGF)B=;S%<8gd8b?$c zInNZVz5JAlwf7}*lMB5Eo~(eF)Vw>v|mQF1mP z6q*BBjXBR&-K^%9B_Tpg=7mukhtk+xTrdrTcXl(6f>I7>i%iqRyc}3sW4GBD)2^6o zVzb*)TzYhNw&UvZC6_N>5uz{-1Jicr33-L8)DYQhHf+a%T9uo*FpeXGDA!j9-g@gD z_Oj*o|M16bQnLN67RGTyu9ws}^5EU?^8frN|BUNbS4_Jz(qLU_%97db&d3LA{~Kds zSzMx-5=tfKj1Z{=FJd&3Oh_x#b|9sV8Pa0r#9E7Y(5d9=UI@W_M}~2-#4yij&1P;L zI%81H$Q`^}nI%XX23oZi?IDcLPRL}n{dN!`O_PslW;1T7c_F)Rf?|N^7$ZYUR4tys z7ne;AW^^7SwOD7n&1UCah+vr)uCFdF@$wexo86hQB3(|oltL>Nkx0ha9kF3df@nTN zl1$ziLL8VzXv=||D=|&%uU|7C z_T*AI%rl#5@^KW>xFyEGvcEO}xnXRTVA5cT0_xB6G$Juk7W1Tt1X46wSQ9HCq%<&& z1A)RJXNGA<8V9s0Et{0$=CG&C3%lLU*bB9A$b}FS(~!`*m|u&tq_&%pS{ln-I6pr_ zsVwu1s>wH7IUrF8DRQ`;Q34MhKS7&vbF+7VNjS{20e8S4%K7;Nt`B>bQV0^*j5go) z8Rq#wlEyGZN>)nAoSkp2Q`J()`%7bfMgzZx5ZO)>1Y>s0MW9*Sl|mvni!xIT?$Z-V z(*_BNoDb#|mqzpI5o2zavVdBWJq*_2Y)BiF#xgG^S=??YHS_A#3m!dsi?YAsuq+Hg zsE3)W!!@uFS|iUH)O?O=U0l+Qv9^l=76gmyl9;@(5LQ!jiK7*fl7oHuz-HQ-F|`9g zH#d96A(Gv~9uC1+HX;wJZtR`*K@#39mJX3jGjCrY+1Oyg!l z#sr1G{P+cb`O{B`V$TxNrBNpNs(Cg)nv@uaf%$M_G)e@CjqTeEH>PeCIpA&a0O%smp<9Z+(M+^77?#l)$sM z-)0jNUw-~M&5Ps9Jd@lD5@!Z2C9~OVK#kp3OW}|gHsjWc7-9t@)y9L}#56>5$>a(t z4(#`PN>Sc<`w802vusR}*5DVv_>gB$p7P*g1KPN}eoaW@?fh>ge0&v9In62WHg~!E zdXp;TE}-&t>X-X+`!`9N?t9OD9h~mI|L!>)KX)wft$8S&8(?{@<*SV#VywHr8TJDF z$`T~2l8f|zS@7JAvetoAU6~DF6i`Ev+gAqRE&|sFv-_Hy-o#S|&0mFZ^#NVwN66Y` z=Pvki-)HaseE0otV!hnw;QS^xX+8OGt(CDg9zA-%#~*#l7oUH@`yaedohz*hyCLxY zJ8$u4Kl%yRH#bbvWRB?FA(9irQMIaUAJcWl+&Kl+-b&H_)cicGT_X;v+(t`}z?=9d z?nhBi$H};;+x<44*&cQ{w4q8AN)Rp7WT`YoBf`WGi{mK z?++|BlTv_YT>{RwXEsq?GBdYIj%vwFHpAoEGQ*Ha55hm7V;OpC4wXwYhUTLNv))=siDiW(n)7%h>i znXuXM`Ky<_{_+c?7H+;gkcWY{zVRLxPv7DE!Ip7%K{`L@i(meXFMjeT#5gjHMw_OZ z`J%d!W*kOiBD98TCdA}g?7|=xOqEv5r-X#I?10K>!KOq~HG{_D)slp@2OV@~6exLS zck$Q(szPmnHdmHf8HO9ew4)7YXiRLkJI>Fa5@TQ(FOV2W!2)`1!aOewdcJ5fQTBX z5u(Y4Byh-uX)`d!k^SXMLJ+2LLR<6BGu9=b8y41TbFHDyzNt*Z!1>uZH#d7!mCa_$ zet*qUGSlE48BjLk$YyiK<0qL`3ol8Y>b`#%{9XinWimGl`$D* z_0{ETVhT)YV8368DR90uKceyM86Rvn47)AQpT8ghnuuw1_Lxz=Yg0?qtNG+u4+zuzCkHK~2)pgp zJRhn(L;Gc6`y?>Nk>zm1G>weTD2T-je24RQIP9+&h7kqEVZ(#7GplrMt_TEDJ}@tZ z?e>iA*#@Oh=fY+f*qxsv^UUNej%%6OZbr^9kFGfv>xMLrjA=ycOpFt{y+M8z>T0TIuM6TtTFj`U^XX~UhO#`(Yd_6W@{AL;*jJEY77e(8`STdvy zqcboz(;2NT91b@$jf`^GH4T;n$GFQfE27B|8VV((|93qg0M5~Rn2M<7cBD)llJp77GW)g!9fSr#@^XlDGm%5Gtw-$`uk*o}Me+KY+?35^=d13`G7J-?EGBaf zW*WRKHphl(G&56_Gz&jGHa<&7LI}Dv>h(!5C*a+bM_|P`5S-FxEnfwkOX^wy}+ZQk_LN zuD)xfR7%dqQWNvJXo|%e!D6g#bX!YdHw?rCuMZ|+eQgIWu9#ws1ou5#r(>e+S(FRvhG2c0es1OG$v9Qt=pX1dZ;xUXspePA%Ww-R{r>?sc(jHLXUo9DkkuRrD$4O->LKl%}0TMfw#Z@ssvS99R|^5@gvzv=s1YhO9meXskz=aePW z|7%TxZYxQSFL4}WZ98MRa0q{64CYttf^=jsoLrWPr_~Z?MNsb&p`O5-kyHhDp6)mF z6s$PC@u%QRf1S3ce$!35b*6VFz%8BF*IeQ0%{`?y-IX2P2dcbjV%&$^-I^Fq#xFVZ z_|ap2`O&BR{AWMqz4zZU)J+x9!Z)5h;4gnZ^4S;9`PK*T*>~Fk?7RK@qRQ&ptelLO zLn)^SUsE+br1Zqgj77z%SWOJL>Yd{ZP`8SAbYnF{R?tLU2j0)7_RcU4-WaObDPDJP zno-`>k8_xB_~3(Y@crNU2mHVPeVZ1ZM2fnvd~)Pl^ShQ z1C(Vk*-|dF+AP^0h7}~V%^Zek!K-zkH3K!##`S(N{jC<1KyN47{PUqTZz*hK5((la z)rPc-I~n)uH#5$5oX4%1{$CACYkh7=GgGpqaJac%yDo?bzx>Oe@Z|Ah-hSt8-uu=! z3DX%r{G&hN!yo@C+iAxz+9qTRhSO1lH>s>H@6x*7dkF!->6u#n8FcWiw{yhWQ`%-- z(I&lcVfVdQtH9hMB~Ebm2+rSv^T#}R_d7g&>s{V|@RWDndzWW#y~UHKPx#>dcR4?w z*bae<%|uq~%rOLEjFFT;lFNoGELB;SJt7eiGc}tR>%tN}@KdQ4=ntdIBF(sW$)Z(}vQlMYlCv#;Qi8 zdgrDjpORNG7XI}4a~U_hd>DK|DmSS?`_lrR_zrnjKkm>b7O|3F`-!dVj8q!zBefi z=4(j4VF=tDW~OP&ZaZ>)b?I`yfJ7@m1guj{@0?Nz%y}lX#&+5Okr!8&CKaPG z4ih65EP^_tq4Dzd3)hivXf-2J330=|RD%0r1R^P!56Co}nJfcnrL7$mN&^*R(pl?e z(7L$SMnFj>#dLFQC7E1P8fmm-W;DW=M@u*_%W{Fg8|*)@>$u zw~!PK=m=`TZ*F3q5URAcaIsB%_=}(L_JfIk{P*AE^ToPW55eI7bKuWDx#ExhyZ@2@ z-GBXG5w>S6OJSKaXQP>rFSRjkHc&IUfkyXFVO%>sMGCddobS$oz>*Jc+KNlW%r~RB zL3R`~v~8F#1qij7&p^cY)nEx~s}-|rE(YN2&Y%|NQcWrr)f0G|FN!fFQy2`muaz_o z1PLrI6RM2lTG$R=jFQA5XJhlkffyUHEhLFlgxA*xVj4N$Z5am$YSLL$2<|m-eW;Wc z2?5S0*e1x;e5ks~^f(M_p$A|o)qwILG7O2bn1ry_il}n7-7$=TIa{I5x|4|;6T|D9 z*OXd0-)u<=AqAFFDejH4+fJNs0yp!*oK3E%RDvWMb1f`~8L)(Ziq^TMXoOm5dC#JW zu-Wl&XJ(++H-*D~PaFnF-c=3Axw73%Y$t0~zhv`DD#hm7Ho5nbD{!}ySF2JFKK`JB-@f* z`C-59?&n10aOZp9ee(rSI9`h_yBNgCEoI5^(J|B`u3Wi7Nf~ovJ#Uy}{Ts~L ztWTJmF)a333`GnwSNm_BC-xVK)q2IFlNl%iB9nA@Hq!?4%JItC|JCVg^r{jb%2=5uZ04oopBuOH#10i&ZWhUI-0>#N)?DEcXr>mIoXkJzy+_ z^(3}s-E6|8X{NTBTRBBbtzk((?_#mU%7WGUm^K{n%4cu$?6Wu6Y>pJSHsv)v=OMHp zrI{z@S~eHsBn8M2EjsJfiWi=}$-{?_x9z*`mF04uG8C>{zAn+|%58i4jEZGPs?Z7yB8&bq1c zb$KuG;&adN`kQa_%=Ht7VN^9j7t}EYJjKI=lB*7)bT&&01V-d44}izOMYHPeGZ+~0 zH?t534Oa;Z>pdr^jy>I%i;Ju`pL`hHdqN*{$S0814({nZ-JL{cvzmBt=WX76^9OwJ zmZ*eojW#znlXL`5R+ZL_k_TFoj)bq*Y)(!@Jr^wq<~5`$N2502tzj8GY%SWaQV1A_ z#y}%)nLt7tf-98L7BN442Dj3f{Z0crYM@Wfikq@tfAEaw=^?B?QzsQT9{yd-f_{aI#&wYlQ&tB#Fl?&XsyvN>PY#tvmJ-*M$ zfF@p?XoPd z^>jYh))_h<_<+NMC1%d5!8nf0 z^UQh^mDpNodBO3#VQw3S{R1910hO|pS7ppyYkNz^xICoR4L-RXh*Be!1-I`%CNDcSoE~fSUr4npQ#y_F5JZ1hP!v(#g_Z*A713>{$mag_Smm(Jb+;Km7x~`{m4spZ^Sx9^GSDETCz9JJ`F(x4!>6Z#{U#jc1-A-QR@f zj`N^S0zp$@qY?*=#CkJpeV{Qem&{XRzYNs%F~|FR42zLs&i*Jt$VW%Vtf!gf-bf;| zUQb*&SYVcTe00nz=7UjLZ#FFU_sQdedk-Ga>crvxzHE}41ZVGCB8N@*roje13#~~T zX?=VwTh=_X-c<0Jz5RU-_V!4w@0iJKrkNp&5%T!aL#C#x{A#`8!r=i!tW(F+%*ix! zuz!f}A5b?(TQJhiSPohCv=p)DjvjHlL9)i)-af-($l94R8qnQ5A&Su~m$t0dO5T1A$Nk;;M(Z@$2?rkjJYt_Oe+h>1B)b(gEVme z&Ih#CSnglscoKzwTAeVIk;8)nR_hI|xpav(YZA_K5L0VvMw{0xhJnr8$l+M`@aTvk z7qzGrwQaPN^t&b|#yp9MwHV~EH+y5AV^0dexYjkRlNF1lT5jekw9u-A@ZAOyvT9z8 zhgdz4&fBnLo=!p-wbAMt$YLD1Y@+jGA+rn*1A+Op8k~z-uv<7A8WMA#Yl{-0bZPeX z4)9hvK0d~Vk!;R#TuS7Bu?If0UOl2L4kN*xC5G&#wvRfqn$}9BJ#oBQvsmntNUT;z zWNR$rIm=btz)YOw&rj?xk?` zndf-n`Dgj~s~_W)mtW;)Uj7Wf`5V8;{l_PK_lK|Z!#CdJz3;!y_rLW`KKTAO;H_^1 zwvEPdGHm{W&?pxKRaaT;@+ASrnJ@X8g zZal;NyZ5Q{EOF{u!5Z!v^1#92J{K=vWqI*X|6PpugM#hf;M$EB)YeMehY+;xLJ!h( zv&b*>wq8iqt;)SJ%{*mw4fYmoc2T-~JKHy+bZux=5|g$!4v&P^2%m*;E$Gg@n3;S#i8ti2;g4 z`74?CZ{Nj%mtT6GM-Lxh1~;!?Wl`W@sTgs+sl4;{JG}J5%amgHyyn5fhg-d?o==>Y zyPnr-RJ)5_IUg?gC>G0k%$kpSo%g=8$KU<=X`;Pn-GyRV;QGrjws-QS%R z-939#p2mAQ4;(rB@24?W&K_qMMf|9V_rx(Qj^7AiV&>-c>)gF}o44P2hs)P)#BsGS zzVOT?-hBIAZr!`jOV2$^nWJ~{bO#WFMPIISFyD?rZ%NwXeo4r84Qgu1h3so z8%ph9S)hZCG#qy6eP$+9-1^+u1rnn6YfrY3SrW+O0Sfi8-dpVP)_WiF=U@LiuYU2@ zS&So(9z5je(F2YiJ)j;xB>BWM*AFJ9gV(w}hk@DMLcL}gVEb@PU`Zm->0 zLX}SK^llU46>A-F-MNpkC2tW}!6osmX){@GPM^U#smcno%4|Nz=hJrl>4>j4EHCgh z!e)ii0N;79-d~$zRaHfuk3xn)K1~HCxs(vc-7w@qItBAg0u=H}_oSu7Jk1!g2nS~zQuJ%K)0QJ3hE{7VhjBZW z$uu`Sn*@+slXYy^t=6h>^lp{uu?!8FoU(*Pllst;MR6b{F}|9Ui|F;)oiRX@X;#AA zf`MaUW8IouJ{-A=V1~Di+C3&!b}LQ>h9p78)+D@F#(ip?WWi~foE^NfnZZh-B&W{C z++3{#(R)050SgOklZ#IEN}JV^CfBH$u@o%JZ6&!%Ba_dRvXt=etR!Tf1SsaDc~e^> zFP5|>ZKz>fFmGno>l4Z_P|C>3>X@x}Knq*UG|0v~06&4&0-Q=Jlv0@I%~q6mD2Y^- zYK3TPk|pxEWV2pNs5cjlWwxlk4_vr(fr|%w{FndiHf1oH1+y|hP#X`}B;!B*C;uBf zL~V6%1)_UcGqqrA*1ku33)Uaf5usv%bXtO9X=^{NX_!d1kt19lMG>FH3M}J7pyWJL zLX)IL5}T8S6O43Y3?;j*Nx;_Y49PKNWJudch>o>V`Bf zwdaIxLq_1`Bf-F!!s zTSD_ST#1@Xw@+IDuu+S2%Eq)=(?tEmUH0v%$5z2k6$?~s z!MQ;m7t-)+RW|LGw>d|fo5rYuTgEEf`rh~X?zg|m_}`9Pyl|1rm#^^r^EbJ6{W8zJ z^hv((+rP@<-})WyZ{UaT-seyL@Xz?#m%qyGZ~hVU555f3ZMAjhM$3@M+mN?Kr0EVe zt5w*RBP~hvxL-#z59mg&NEK+-bnf2B)o7cE`wveb6;dg&hni|$fU5PqY-d=`cxf`7 zz%b9-A}JQ#3w_>2;mz6{g?<%T&Bc(j6w(b%fRLOTYk(>_0GLX4!&BjCRcThmTylrC z0Q4Lnm4ueHmeeK(xL$aLi4WfYfXAB&tGd@}6BJleQezk@>*E!7H@8W5?(+WYKg6u? zc&hxyzy6PS<)xcU4{w8u?@HI}FsNY@#)X9Kgf~vcy$qMU~U_V85j01Q1+IzR=2IZdr2*o?gDt7 z%CwmomJ8OC;hrg@OfSqkkY(Ju_kdjO4NM||ej{{{db zzWWXjRujwpahnUmkAoSzzuRTAMi+F=JvRE#H z1=HCPyKP8ksZeKMXDL!odp)iH>!-cpPg7Pt?>x_IUwYbgY|kkcKQox7HHUlqT)B9K zAH4P>UU~IZ4h}9bt=CZD%E8Es&)?+rH{apvmCG!LrTW;nI4|m5HQkNb8>w}gawO{R z+l?Amz+nl>ID*4OD2T^mKL>!ei(x4-J_VVykOnXSyg)<0;|l7{I0Y4~lSZ0?kv`#3 zkmV38nt&UM`d43g`2~LI*Z&^h{^S222X@5uXAU^IU_3rqaP;_qI&VVTKmwhtPq@6u z9NfG?BXe~BE}P?r_-4ITude;!N-eA#b%M!D05A$xt<_)%g@tL07L_a}h=s~=3tLdC z#OY*X>sT(BDZw&JY+YS6LBhV!B-GZFFnav0&8|vDmN1w%7jWbPWo$dFk?4m_W(<0O zaE@6HV5`4Zl?TVLae*xsw7_4i^&knbVDdOnH~KdPhG*duU*hI3e2HKB*M5`F|H9Al z;?)Bd4{x!#_a5*4;qUV2Kl~ma-nzs6J9k-6qJz81YLz^)Tn>~Amnq>0(`sdJxlc;6 zJ8iCDKBKiFzbP8>9`mf>dZ7ddnGGSHBnV9O8{DoCbnXc7_=(8%aTfr zpDI&xo1^ztqn48res4rD;kpNw@mSwltKkwQFw}xV3S#~>hy4nR_DJh3*QiqZ|aHUCc&mbR z@9TmYE$O~k59+*;5Ie3;8{Co-P?z%xwKB~T@XTRZsd8g5AES3ykDx5QMNikdQ6kwW zNxBhMXMtR?o&YQ?F`L$fWs=zJw3(n7gSmhg>m>jIHDd4qVcDBYR)4!I5VSU9DKojV zCCizkbIY$@SYbH_|VsR>nWz*+XiyE!Q%pHtU(iVIkEJvkk|WoD8?3_LXuF&M&a_-&@-c>nM+LuxGd7F;^G7+ME4w2&Z|k(0?;uh!Uj35wxi z^KJ-Cw{X=exx~3ibUe8;)GFYL##^rj9(fCT*HJ(JC4z4{ecUW0|02i#AMS9K=XiPa9I$#tO%u z>G+3x-Oi7MEQ?!40-veSkdsZ0f|HyHGi`P%RZcA_MTIfgi%Hhb?hR7Yni+wE+MKjk zxfL-WP^CMC=zb%SQVr+7tmk;zNF&XCn|w77@W^7P3*!KH3DY-JcxfgJ>|_IbK(?m$ z_V!%UT3zvFn5vBwZJ)t)F>o?wT1#4U zT1$9#Jxea}S{pJRT5Q@oQ|v1i_bTq432@gM0jUM(+JQ&JG;dKvO$eB)mhq%mq1FI$ zOy?uX0NI0AGZJzP?eo$sTvO46wdUkt(t9?li%C(E1mv4JHR3z7tb)o=@ckFqTzHo8 zV8QtCZI18XW5C$Ibcsv*OBN+@bh5(Al1n$9=i-%XEcW+9DBc*xiMgKe{EIJg_x3HO z&BSKC5lh>|$V<6lQIPD+2eq)73R2#4Q5B;$)6BtgSn|KrAxGFX4Rad&6+Fw2OOWs?)>mzpH?^Ad%WTL^=m3tO;g0^ zn!D2sw7@H-D1?Ucb!3G{>jfXjFdqgYR?m+I22plF0bO z`*$R+eM;OJ?S<@62ue-?!oRl8@dU%$$CzH^5+ z-*}VH|J>)iHJzL#grw1)niK$bA;iQ1G%M!I#app+Cgw9Hqywce>UC7x?l}zo$&M=Pb zFZUT1a^k@%4<3KOC$3EV-fLgytsnd)&p!V$X}M&*+0bTZIyqu>^oTZ}ked3c^Zq_{ zb{>5AF4NMl zb*n{nLD%NykQ%9}ve%N50SU)AHWbx|+@WOhLies!k2VqC28?FlvuMOFS_9ji*tF*9Hl4cIGyb@)$Jbro@(D{$K%2n%bG> zjhQM_268eswcoGAh{Q3QH$BfLNGuHlcw)xMsW1*= zE|jeMXGz;C5Y&%{O+#ko)|5k47^#4O4wW2r^rr^E^~$}lPku!4D}l!T=*D7Je$g`KCHR6;-wD@H&5_?WYX21u{ zjVvjP(8{sct7e=MES^m9wq2LAK{7eUkfkeS4U);KUd^lmcPdRfP$f$*uQ^@>F1OG= zfg1Z~W*9*1SS7M0FGv>PYspflX(o0Y($E>RvmA>=&;tM94Akw%9( z2{<&l=A@L#xoryx6(xvrh^kxQWXlL`6GK4>W-uyx+qHKFw%3^RL#)v?s^MD4!KH;^ zNtOIq-KRQ>4Nxbr0OY;KnjN}nQ6V)K^Q_exEQk(_M=aDVfU00AL|cR+Wlk%v9_*Rg z*Z*E<(chemGYibGM3NQSbaNl4wq+@#kOQF20tO(esbW27Zo7&R&8R-b-@Pk*(5AJ* zff9Qva@Xmt{VCeATNQwlvW2tE9L%23IEm|MDDg?wV-D~doL@^J#_URxgQ=!b7O>E& zic>W}d8;){2T~M8<|qayFfn6f&)#TLq%tlysEb#w;dXf*Od*&Lie)>~9|MAcA@Bf`I@ppgg*ZJyq-{H^y;17B25B>}M2VbU6k0mIbGnRX6 ze&NM5KO)W|(K;G1uC`K`(C8xQOwG0Kgqp=jzPl@F` zOE<}AYCXb3uOtPa+`-Kp?Q$sq)+nx~q!wmo3Tc}&q&_EOt@AiX^G5ZIyKDb(g6S^i zpT!1K=>a&S->7mfAF zdwlr4x48HCnBTi}m0$anUm-6B_V+GucyN(v);_SAqAi*zB82#A4g-cRjnVZSJ?7(j zp16GZ0ta`O+`s>j%a^X;R@rQhxp(`0E*xGYmyzR>W5#hw+pElV&Aq$#xpD0V&)$57 zI#=%8xySVzH`rSaJU)IbKq6~zYqR#xsa8^LYIB@t(x7v@c<~aKAD=L7HY}Hiyz+Qxw!i5YR8%kDtb0 z>-AFsFtygHx5IQ4TYyATG8q3SBwZW67U#I09Ux*?%{T>W-CyScF}ttx*e_2Eynb=+ zHJryvc^Z@Di5rh?Sta(g_nf);XRrC(31|JLp1#x*eaQ7^uJirxf1ekhe}Rjaudv>% zp;fLP41DaRoBZ&HZ*cwcBhq4w;7!^bmPDOafO49OoAuVOIJfP2Xz|y^*#VKA)1yz; zNN%HY?dkO1Zh=Er%Yw(4ZKe(5u-Iz8lrlszAO--)5n#C(nbs$~`_60Jx_ghe-+YZX zzx|iI``){pl#ASbwBpg@6P6Djb734A_72#r*4%mb7LVS06Xs2v#{w>2C0nLGK7wfU zaLd~Yp%AJ7DqQzQROGg$UAJge=!00RK&2s)_S&L#M5(5<3v$L{d<@$HP#SktHEQd@ zP!rw}0f_s&1*NcF<%_@d%5e;JHG?tO3N4aZS1^)57MAlYa3=shmAs+?XNE;`oo$Zl zUB#*d^|oU)-h|Kp2A}-3zr&Y)>$mvC%Qv}je4BUw@?Y@h-~CJ8ee*pY-oHmKiRHyB zO0+?mVu_-(%h(FTS;}G>MABld>K2S6UNgB> zl1qTllK>)7<(-9PHci(xBjChbHqJQP{m49HRlung@NBvt9iW=kDpt}cpcPq`;$f2< zRQX{@YTYy^c~WAYjMk>8Rtl&XEJe$cK^j!K_atCtb_*6k&I>Gun@%n?5)C;) zSpaCsd@FotDJ!vb2~?*9HfugNhg1f#SE|XGXk zvh04nMbOr1?=9B(_#RJ6$kb~u5G2JO)k2q~I%*$CDGC=!dJ(m0|LqMAS=Du=bOLX* zwu-sgw5_l(!x#m8Q?Z(uFz}|9r6R^z2QLW5i92}MUY9&*|3@ujZ4|4*yirPHLK;=2 zlwiNj*f5A)lM)#fE*eD^&LPCz_sVgxpw`|JE7n)eaujOT+0Vgr%+Nf=Rwq_sDT(TG zC`?Vv1B(_>?_h|d=PBZ$)Ph-(q=lh%FOfTA*QM#w0R$!Z+7C|SgxH~bH8q`bUR7-9 zv8lAH#4;gtHPlk*M3PF{y0lnSU6fGws5|0i7ntfe+3F5x5&&1$y)%n#D(RjId+ESX zfc5V9EXJu}!RB&m>_4gvDXI4ATfkg#g)Duunf9C}wnZwP^{6%$g84c3akLU_UXS-^ z7t#Dw+@xosKmI*P3f6S&u{8kZY-0F!^8m55lNcdp5?z*jD(-Sq1AG8q~HHTu3x*si?6)GCqD6ce(it!k9h6h{G0sQzx;Fl{P%y4`i+0d z=J*y&m7KH|B&yiH(?o3(sc5SpxFhZXjHd9w$VKg40qP|SVQ!aRNpcih`YeDa<}1;1 z>^M{BrA#f_kHFg|iu-DrZwM%{C~yf#lqfk>V4~Wjw5LjncGj*NA*I$NXC?(h3rIv^ zDFB*ng0Ed6?XYl|CcHKtzy5W~gV$mIDo3job#=sgb;R*q4g95|Mq{*zxco1;F%X*=B3Ykk&l1sbKJObQw~Z82W-}B=^0tt z?oFr63}+bRD7V?jnW&2wmy~$*<(K)3Z+}NFiU&(lb4nh`YCRt{6e5^gX42t9C6+;?iK(bnc50qROOXg=@eVGq$ z-{!%i6P~?tkqe7VPR_j1ocX~IzR$tIB`#gPNZYJ<^S!t6ES<8jp?%_Y9%ynF7}>t8 zv#!tn`usflEI9Kt;>C7R*?I5TW1ROok7@H!?>+D5v!IX)t2^M3sk1>Kq~gvv;fVJ> z`g?!U>!;L!*-h993_K8UHE9Ul_m1qlDCnhZ(ev}DME%%5X;9A_G~eznJHO+v29kW# z?|ys|ZvV3V;k@%ak4kmkzfV8VwqTKmYl}C>>%_IIm-*&6Zi8a*8!x zx_*Us-@C&*AKu{;ufB}WmDMKv=A*o1n0g3Jm9u^!eG%SXP3+E{&ty;Bm#Dn9{@DnC z9NHWpk9CAlpjkrVS(Y=|G}Tg40OOHlW6-GVUpU}oz2<9w`2)W4m9O!GAAXy+U;9gL zz4a!y-}w>0@|%B~U;o>Ghvmha99+D_>gbV#3D-w#rita{n_PPCQygBsN!dRj@9lAN z|2FUb@SCg;FOn+MlZVvfBYdh@04LJ1(d<=#*@C9ot6(uYR-vgE(@a$r>lKHdL`J{0 zs?~m~0TT4tHus-9Tfk_u`oOi3xf0VXcL-+D%vHI{VO<^bEhln-DZL*smmC!8aKLE| z8%(k;HFRkDChdJPH|lDI&y89WOyDF)SK!9S+55RK@oT^JxA^=o{~XWkCmz1_J-+>) z{h#^K_kYO4$H(MhV6nf?-i_z*H0XTHw?Ii3f3w_zO=8s0P_bg_YpqIx3n?@*T&+9J zLOVrO0*PU1uxbDoCBQ$An_vkESGoeN<};Y6=t?dU!>}ZqF|QSzS8t@I;H(A6QbLrj z2ZzlBytOvTw$%z|(mGM_bh?o=ObJ$?k;w&~CCky?)t9OkZEYFLy<^;HZ4>7p2PR!h zp)tiW(btZsf~BVPYZmjWS;AtD2OK3a*^DU(ILwiLRPzYH5gR3ftgMNoz`O*=lfLQRc|TFgpIOfGk|)A#29 z@q@YGdKR|~#a{hRYJqcivgd73mknAqN*YQ1`9@BCV;Q&lSh8*R0IpiFG=|V~3hdvy z4vt*cbYG#RhUY|g-_R&(J|@f3%D|KiRu2#mX;isdxT=Xw;;uF<2dYmokJLikwI4FU z6w(C7T8Zknp1(GoYD2WFUq#Wz9s`A_M$pOl^V>X9Ql*PE7K7T#- z(D4Pxc?cp~6k%|=ra9q|=ZYz{PAP_)TO_L9Tc$b?44*H}h{-_p|W6$g@0j6i)rGez$@DfY_ z*BB?V08tl+D{Y>b%TeHQ9CFNoRvAp}#7c?$KXqq(r;SPLd@o9=m?HLa zfKR5_wslm;Qm~M;Zq@*M6-%2Kc^VBmgS~5c)hHHf=g=C^EoXBQjNuH7!^m*us)|N+ z;?}*#y#K*h$Y1>$H=n!CCqMl;{_)@a8~ny^{|?{y=6Ct_SO0`}zWgWD_g;ge_nD^& zEC6~-3^|8vK$^z}d1^AeQuy@LbFrON^xj*hwi-~sK?n&Z~^rN8qJ zxcA|^y!J2tKfHIVGQ8(}hUZxwzQnr^)?9k`13vfZPjLP671rw`L_Y07gi(t209nR2 z#&L{zNI8v{!sSbsc=hF%c=NpvIXOC}3?rAWT<7p$j}PB}i-UthGR|f*v0lqT@6pi_ zYJD>(5=y7RrOQ{LRgR7xlTza9wd-QcwZ_IL1{*O;Y^F*nGY1P5Y#u#6=H}I_T)j9_ zinCcylySlP@4m;K+jse$-}!qS?C#l%YKZ_;oCo)K4|ebqir=1o(8OJZLiKl$aemHE}GT9-aGhmI#6)_4ca~Tv%t?& znJRh%+j#mZuXB;Lr~Iw|&ik?B#yhZDuefsIkQ>iD!}ni*jgP(h2`*i}!g?JnnEioI zef%Z9@|WM`-krNVbL|@Qpw+Z_JG}?-zu7$k0+cvdqC?gm3%O~ZI|XHoZPMIPVr}k1 z?djSl?DPsoz>|UoE;oSFF=(6y63e}PZr!=ZUwq@6ymR{@N8@D{FZ}{{-+9EH!Du%w z@fSb5$NlyHi_6!paPh`-l#5qcojm68g9n_rQw|TgeDgW3T)D&;o9&yoH>_G_9uMSv z^k9P3n%*wrC~#6kg8~h0=3Q_q+LX)`w6vgOMg>_>l%Y&j6*|1hsmKFyP6{>^m|HNM zXT7&ZVBW{h1clnPT@0O^)r2cL(1ONta2L?Eb7afj%`Y zsLLy`e+@2OWAXB~V}+dk)~mFGEJ(LAWsQf$v=N^ZPcdiO{`Nn8r5t{5Nc!Ix@(k+re6Ehy2v zsoy!i(*Ua)yPUIZVOvzTsdRS>i@uhvhCvLQx_(*+(4HPs6~kbedFpT_y1JmfM`YBk z?pjjfpZ)ZGIjU58PV<(QOClEj7(=$4LjC^+U7$CI2yAuP$P&+0!f5lPRtHPcVYaBY z6093nQjpR}^@)U$%OKqVS8GTL7M9m4{eVG2a3Ua8hNPA`N>ZCuGHE$@Xs>v;!xW&C zk|>_liYV|E3cbZFDd|fo1QfLpwJuH3E-)*&L-62X3eOE zD%Qw$-UAS6^GsR{RF|6x!I(0nGZL|-k}Azgwbj!1s|6|Ur$@!MIg!wNuo5$KRlj`7 z8hcgaCH9#KrB) zyiH0nd&QUpA=+ELVX1`Ou0!Z4m<_mBS*v6CTq(2=ARn}*&5e?a#FZ0d2DNb{$7W{; zZLc~D;LAIpR0>eF)&?mOT65-k!hCP5B{8IeTwh&Q&(p;5!^cd~BCGiuaY(CLf5u3_ zJwz)bk+nW>S` z_N1`Qv#f(l-!o8~Ys*;4w6V(7aMy5z`!P2MJr&O-hP$6sV#|rE&3X%qeXX3*DExWn&0K zh&`YF9L8Fod<)*{u!fpZV!hiYkZS2o&4IGj7->-$kfu?@ZZSuz3#b?9RHAKMj1{*b zRycwDibs>~lTevx1#)`v3J;c{!R*G2kyC7>9zc}aR$r;NgGUpSz>ie0C@et-LA2kr zCf1(C1J*n-o3z;Sw(z9CDJBpI>TTY(etD0PyoW~tyhO~`ZD+;A$pHj~{-4QmA(@lL zkzp7RX79ZF-aT%;`@4MW&;E#4Kl5|^`p^C%fAdTK9uNM*e}`{=?>%1o#$R&(!2=%L zzsKhO9oVb{U^HM@LK$E_fxLvpsG>y6z#0|{>gojQBxY8fsWw1eLryeC*c`)r#CYum z*uTi;_M6z^5~+;Thqv*A3$WOOyB|PW!g7gEM;eDJ!FU$?@=F7GvFAZDZbGnqhC`(Q0OOT&Wj68S%A( zvqvWU{zW7<{)sHb=xWWrByv)a+xy+RV7_)Ko;67jf z_ILQ@FMNTE2ZwB?lfc7mo6|KrofF9{q!^R~P4fm$oR^-v$??gGH{N}p7oLBXTq;M$ z#~iJli?)>w``drX;og$xZ>Zhq z@$oTcBZT%@2b<2zMR$Kb+lqAF@1F*2?1CP<@6)q(J`mDkP3mIsPtA|d!43YZzx%8F zUEjL{#DMm}C}3zk=9HM=Ie_w?{`FIe@OB(V38Qt2PEd65E-~tK*9Wg{>!ErUdF!vU zH}$-m@lm3?yEJ`H=i5^Oo!y_$yV*}e;m-E9oo9u$9jP-D@jL)1-mpd0EGUPdN`kxd z(hD!~^>2Nh?|$!l{K~KVsw%#%k$vXbtB2gUdX@J+xXY!B7Z}UHG*3_Tr|I8KRhTWh z;@hCtA}Q40ilWEdYZEX>@UvA6kI$zZ)&I~6$y>kzC1lu^5!3IB?v)akVH|mMwB`@~ z^vm3Re8S~x*SWU0&&zqAS3dO_9m8 zeI7o#%l!|ISg&WiHXh9*%U6GugTsqVCr2z6`;5arsSKQ~PvSZ<(>&qHlnl)?HESCm zandj{L#X!~V^;DpyR-I*0VkIQ8#Q1vEcQqi&Ij|Xpf0s=s?oLY4FmH$ON`O0Xu>9R zyUmkms?{MX@yTng9`EJG{WvvGTziU+1-d_AmI}x4*^x+xHn4OO{uzFkHAscUDSf z5tNCo(oAhA?n;1r3yme&HV2*;phE$gXxJpyO~6VCP$Lz!Ax*BJxKqv(sw9i1T_MXA zMhU!jg*+t2 zAyd~;l_ik|iAN_ZjJYt?HL1;0BYChz#vHl_ zA#~VghC%Fxsm@Aa%;MTx1X?auQbJBiLy2f+iVi@O(k@7WNn?Z1X(=|>@5eT?u-?4NWzvD;@-xTbfrUfTInub zMG0Dnn3^|+JTjYrlI#_#;e)pRVhcUH!K!I3;j`nY_Z+mRFUx=xIW~-0%pyw$b7fAM zJdRYaq)8%!c`*Ws$)%q~Z4w>MnW-pIF6Oi$N$)qA))eQojbT*dMoPwNvthZ|=hEdX zNEfNb8rTHrm~6!NuU}_AddT|dh>MplYki_yudB$Rc_nbh(nv!saV3Z7bhFs!D&sIf zE=<$JB9C}dD~eer`z$~(8_g5BWQL(or!`hXpgGAUXGj(Ra+Q#1>tf4>e9@hhf)Uyj zse^6GLD7XOlx?Zs8w!LB@4`GDN#a0WS)t{(#d%NxXcNXT9kAS zG6QZ+K!1wy?Xg&k7BuoGc9=^58jF@=v#oxXMEBW(ub4PSDO-eHodqS=xfVCyB92Yl z-G3xW~E zGNJ%+TB)`G*`$3X1g??8K@iX3G}ZGI-KHTx#chHadneJd=3b&8pmQ8bFu0JWO2#<6 zd=0#@S|9NjU;T5w`jtQ9`4?{T%fI?-{9C{D^Q7PY74{DotQs7jtnr$dys)m7d7fA- z_VDVgRwo=DEEtB&@o}T14c9I&xO@MI`$ucWy?sh@rrFr6R%G8W<^^?jj@QRrzjld| zjYr38rgi0Txxj5=N{L~yM?Kk4%93V{qvMC{?O&j6)*P=-D2qKY*6AdNqFbM16H-+bK~Ur2&1r`XExJ@;xlcAlhrX^C&pZ8WY%>Z_Vi$z z6;pL41`aP?=5YUjhj(vrxPO5wSFiK%=tyZpF0Ag~W_7aW;L6Kbb`CEVZeD*zx=bez zxOlkF-~aFYZB9-eQ<&I1yvKTV3}nXT!2LT9c;|!nxc)Og%Un07`C2d7xd&it^rGfA zcXY+{b)I?g`DeLx_a5ujihOWDtBvbduad`+AHDX7aqj{bN)p3;I$^Qcr?r{35hy;6 z3s$QW%qz8Jnmc#z-{D~I0(;9nF^D!B6~2<(z3$w<%bf=g`P?Ty$&E`ntl8n>#epAu z?=>Dge8eYSdXDdW`x_iCWL;mvETYGG+oIkXV5DE?S!T?xBuIaqWzFpVe)kw>O>54} z>#gq}XO90-Aj(sT5obR8wEVpnMV>qllvBi7U84%?IGx@n(n97V(6CLtcF0WnO#jb)J9z1zvpdMK6RLrn#}VH*)Rj zHBwkto}4^pnj6ntf1ZuQJ0Ct~VUM`Hza*!D3kL@@jN`enKdQ2Gyq?H;V2om2c95uc>blTH_Sv(SKX6>=)4{rE;m16d+B1^hLHB zq67`PwT7ocHfguG+19o_F>Zt2W{Ghz$jG(uXIh@*VN zaT6iDl!4^47#7H8HY1SEiZeU-JTYz>vrkMeCQAZ_QWy$MwXvC1(Hu%vvEXDTWwon- z1e9^u%oDZ|uq!tx@K)7!<-ynT4VI)0CFaH~T6_gk#eBn<1da&4RM6@;IakbQtVkoH zu1?stOvHNX!8)J`NF`^cd1lo*Q?CH)pqIz}qe)As3}A&iuP_GMW-Y;3Qi!QLx#)@Y zxiNV#YKRJao=L$VkX%XuYfRJ3>`fpxP!eovqZI2?IQF#4Fcg7t(=2=9VbJsi5oUYc}(Tr)9 zmPKoF!pi~fx+RTAa~35rW@j@`Vp-M3uowhLuh!&TXxZ>IGfgvzLT+MmwH)n(-itQj ze3JyKNXsZQ6gfq;CiX`=UdK}sMXk+5^|hEgsj^%Q?3F=#NHT$^&7-wbZBdrfRzpOr zK*cH9WAn7WKlHdxmdDLBhRHi97a)Bv%2^1+2B>x#7mFq%wqx1q$e2Mhttr#%|SEX3}kV9+|Y5;=xN3o5mW z6_qmGnMxRz{#(#9ChZ1`zj@dvt1Xi_uE+0MbLpv+EXEk=)F~^3Xgj0Qx0KnuZLdj- zea3O0I?ufO!9)J@|NDQzh5diV)vK3z>G_*nxqgZL!$U4!xXR@V*Ezg+$Z9_3=>9SL z2bV}Rjz4(7No{=k`m?m7`#idJ%*zLtxjCP3|Gi_D3khGZHwHd&>0n7-T;%{I&L@h!UHd#ok4T$|oD1vY$1ur93CFBe{g~O_dewErE47QUEtw^hm7NbwGSNT1@~@!$l-+x z49g{r%!lv4&!wwZxqkgB>-CBUkB-^jQ!KJst>m6L_2O;iz4zbe#pj;o6E9qWT3M|p z_V<=-RufWk=uZz1aRZyz;TeiAKe`@8=6 zEhzQl$2m{%Xcu|x$!u$tX>-D}*DrJD*86<(8{go@wd)Lvk!hOAb>{kofseoREZ_gp z+uVI{pUW37Q>Pj5)7GxoH1rh_Aa5sj?DrA481b_!xijN*!|4E1@B4JMk9b0xX#CDv z4@!1`n?BFuP}Skl@tV0AtK%bT%1q;u`S=c=6Z_*H%l&<-I|pNCxxZjFZFsysVKENu zjU)S)E^_JeCF)>|2Lon_ciw-G&3et7Kl~AIeEn;z*T=j*t?)Lp7zQOCz+4-L`wM|8 z&9n&DiS=g1OP~HMuYB%{eDKY0^4530!NGE57)CB$x}x!{mF3|9$rAIl1{bK)!m(x? z1|>f^vss_erisP4V49i)?JUVw+#7k^kD&Xps@%hX<;?MFVl!=I!&{wA3%WYSVlk4b z%ymNz;BHYe7xot9l$hp8AV?tk*}zg_Js zQ5vdjG9}ruJK@rkQZQTO_|t`f+gw#Ki)X*8pFwPx_YL@RI2$w?NkHTTxU zMyf_L1^Z%>Bqa@P78}Eos^_7>lTv1$1qvBXi-^~f>`d1L69H)*2q}oR0xb@tlo%X2 z#F&yrZ;d)dt5wM%HmiGHJ6P7@UK`u>W=2d8Gh?$lQR_t>D6>PWOs%n5tyxbKK3-t& z@Cq09FR*{GWU*Yb7-YTKk|}|&m7x^1ptSfdvh*9WN#~=fr#dIu;nKRZk_5GL9@$JA z%$#h6d79`gleIPK>>)QEno`X{ts}z;m8kBKso%tXzF~@ytO+wx|B{uUERrW-kTd)`-qQqqH zZgRayG_VFa(>AmA@vSXm*lednsugdIp(OUQ0M(PQIv&bEit}-Eyh=Pchrn%{E6cq@ z>D)+Ugw`5E2TM(Z*xVV*C0_Z|3w-KhALG}5{!`q3`*pr|?;d3sAv^9HhC!hGW}2B! zj%at^=fD5kzsVOq`Dy<0JFoH1dml(I#d{*D`?Ccm9f`#Piz2&d2Q0%Fw)D-!7_`1W zTeMLm+wPscbtIX_#ywnRI>?Lw>70gOY3NvU#7biVCmb-M&9_#qkC@sOlVu_37`3iR z78*;Yc8)n*e#FpHYt|6f@U2$TkhLGBeA*V}zEgzJoH3;FK?s+cw_pgswB9flxmnGX zZA)tn@Ftt7YHLQ$qg;!;F=jodA#OvRW)ji>^CT9On4?|LoM2Q&lGo>-L#wd{M#8RG zBFQ4VR@R$|hes>!J-Ww(`ycT5=pl7lk*%@J#@=FpaF$C9^zPtJf&|nKOV><`I5XOH za3|H7W|{7cg(GH6)wAbBD{|MK2~an=$1^KU2JIgcwK+aeyDy|-GaMb}&`q-`7;MICkGdH}q#d#+Q(dTX4et;1%;qeV|+ zuVpL6eCe@bi|0)PJXfP+xp>xSiL$PpgvQDp*|KjFodhW}lLG+r({*J{KXDP>4vLPg)IfTGx2yGx@X*5%^j zNaG@_)rQyJ`HM#{!KZ8WZf_H4CO3iNJ`?X%Yi=Bz{W0#r(CTDP)cvtmwcAbBN?58){w4b!yyWIqp%$gbhKtY&+HcgFuk~CvF@a85iuMYlR)(@YmsoK&6;PfUFE|MKH%N=-{;`M zKAX*&_3Z3l*yq9B+kANYE}#4S=XvSn3p}`gj|UGQv47zb7cXDp=;3`<>til+nN};S z&5X~9lhp~+yk;y*(jfNs?3KH>9&q8{5+8f+S?cP9X-F&=3zh@?;h+Bn3D_Sq@4fdf z*RI{*_~d9O4(~DKlR4(@zdwpCvitfdz~;Qqo_E~cym$A#AJwXK9OK zm+8}b?6^BFdNag5?_l`$J+AoXU-k9V05GPL=xm7{M2aU*sQ<0SCZ8?Kg7VDY&kpYH ztAht0HEDJyz)u2E&VKKC?|m9#wgn!}pm9(8cMM9$Ud}}ZcR%wqIu}XIfVoXvx^k6w z-+7PkeDB-*;xGIHwQ6I})_CRS6&@TP^Y#aK8HYWV%S9v?JLsM}3Kk>T-A>?MVe!~Z zyInO(KurDkI!tVqv6)LpM(4kEMDf%1C5)(gq*GwY!&}{rlx4T($H%0cm>)gD=85IF zU{j9BMBq+>96h{?&oiBgv%eh3Lt+>gY}S=K_wF#yjd@1jn=+Q=-0*m< z;3oJBJUBkVKR9Bp+MLR;ggWtqH~$+B{_syQPaLf`qH?#yYW*6uo-h=#0<6w>1c4F` zMVr4>RqUH6twRE7bTt^wxtABTNcHY^`=FV z;P|{2*cpMbs$r3+23yGtfkh|?EQ>wz@*?{euR~eteI6o+b;fLv&I1x+GY<>hs2cCG zs|*G5H7XokN5>_Iq1`U}`{fD}463a2Qj1TPi;>TarI2ihF$yQBNHDObKJ%DsK5fvl zR>(Q#b?9fvsX`UNh5#w~Ml@)Nnlsg50F8AD(d9O4tdoUgPZxPqVB64nG_NX)nyIRa z5_Yvg5CXqDE*uV(8kPr%sjev|hS%hcoQ6nfLO;iPb+s^ueYxd=Pdaw<6k0zDPR)sg zP5dJ_mkqBuo+2Tl3v`C~vC<;wpljc#QZx~mSWP*LCO!u%BAWvFiju$7+pj3h%&O#@ z^kU{VG1p2Smt=?a@na^-49iO#UOM1o&s^c9S3bc@&wqkvuU_Wje!;xbXkmF9Np4?X zB0(YxoNKd~1cs=+0!CW2UuZM+&;lwc<4LVy(z@yMN^^0pVM!nJG$EHM1!!U0Z8DEd z$(RH5?t#2nlF)Am_MWmp^<2TJm0@QgP{lG!Ic!xWxIuLRc?rY3GS^dTad)S(7UJ6` z=Ga_M-7ko>SFRdud(P&r>UYeU-p-=DQRk$!Ugz3c6*%QiNrqKtHEklHhn#Z&Fk+4< zS95CkIU62{YYJ*WfDuuZ&q*yv&p-P-AAjj4xt{QiKmSwy8>eIW0lEN3;Tv1gE`w)yS5W+B_l*|TRdAz-ct$?1BErYWJ)gN zRG17ty#J6Nz4110y!AHU|G^J=|NVDZuQx0bSSjRjAt$d^v7)t?R>OHGz(B-4qqX>6 zXJE#%#hxOU69+sBU2~jwvE8^>S0!uZF*0O1&80=5nv{}gb?YvKITnsZvy0Us@GgoQ z!;&`Zc^CYVXwkwaEY&FCM1-NWK$BDJdH{z6JFqnvMisG|%>u}_?C5xQQYJO0rM3nC znj-)tXCUMTFfj`QWb`a2Bmoo}hZe%1rC6*zzSUh(?5r4}^zk#pLu5In)BO!1R%woh zc(=r@1Gq{O)5mj&mRpw<(OQ|bmurs~OD3goW{TLqQAutLS^jYXWlr1Sa^6-MrrFHPB(x!=ZHMzMlbJCo7++!FLV=|^`!iq7ZX!kNBFCzwNg0-^A8K~6_ z%L4%=^SmLKAwbVrZN*W9XtmNz`(haejDcELSgTMLVr(8iW~`2l3w&BLZzh=t#9CQ$ zQG0PP$x0cB2SjT@8knawxdoUXY^j`_gJ`?MO}cN%NO{1@z#?5{S{-xm{v#gU|2EU+ zgpx9QhX<@yC#+VJwC?i2I3!ZOM;aF-GfG)d=BmQ%UQ)3pRTely9`NSTRuUSQroy(& zLgKmX@qu-4t?0Q)Gww6ZjZ6`6RcG?N;nk0SjHC66yZ7&L`NCzcT)BoN#9#fn1!t)md5;o`F z-Mf^s$ERO?h5hWTr-|l?3x^Bdc9FV@mF~LR16p`NcvxMi{w+`aD^vO#1@vT0hm*3Wf)G+xntV9$Ns1r2B)CR z+4n!~#+?Uv?EY=n{`%~DpFrIrL{Ur{VZKQN}^ckP5jZRd3>%>n>OxAVb&p@LBF5!zin} z&Aeu?M2Xd)wh(X*Mn-QD5xYs+0O3F$zXz!lxte)n=#wZ!CX-q8^{Z->Lor`Wu64}t@bG$sBi?n%L;QmwgCQ-ZYE zCM^bPE3!mMF`tmVI8ALZmXw6llptKn%*AqW*d`8g#&QPJv0FUHDSpaP-PX9pIJaoI zN(J{B23b$1s>)K!noGs?9O9a%-TB2;e#3H!JWtv+K5Zm?n=`A`nyDr(Tz;PCpS#J6 z&%emeyz()gzp{t%n9a#;IJw7E_em%Lu5OGuF)T_rVCcMC)!622JR%HF^3@3?Sg6RkbOV((QURcUlM%Zn}A2io{-Es3o8_<~phB=pJLM>ze18xlX|{(7g7!G0!U;*{8ZYtx8X!hO>foXR^>g z(D_wT(^}D7?I3Q!;ECs<#j(aRkg_qgIRF&fCPKC-+r(}r<^%>qj=5lXTVjI(U$s&S zFwzdvU5gY;48zENh1=hIop;}Tj}LC&=VPDvg0zCFGaYYO&$Ad3%Km6WV^b!+|HeZe z9Q`quE?*>(w&JlVK;RmB6^%x%l@fO5DT~2T=f*V4{VJ!#9E_u(4DnsT-i@{&f;}M1 zbC0!0KyPhgdgwlN&5sn$K;Ac7h&Ier!c7Oq!?np$VjPEPql)*Ls_`i_PD+-j`8?0e zbKO4QB->tF3Nh>y+ANDj(YhK;lbjOcpaf&RUNKMMxDrgCl=60NEf)ieK^k5jpim2Y z>RM-7^SC#P_i`zW*I{ZDn!APc{tUDb$3j8H`7|#>Aof%v8~YLcI_Z^!is>j&{fMcvHUuK z75B0jY7uQfDv>8Dku9O0;-OuVtVN6DX{*n!FnQ{1sYpg~55{xo$#^)ubx=Mu*J`Yh zsU(t1TPcMRK(&c23p9ZxxfYtA>en<6O`-sSA?&%^>9a4OP#}Rh(q{6;w3!4xWHBK- zv!>MsIZ?9a3oWTF*?Ze_#8h1sLt zF={=mrL%eZ7kHJ6qBW;j0BA!detxBJ3PRK5Y4aJ z_j57EQW%y8Dg+IK_M}`ejP)+?_;w4^q=@qVAs=W914`~%%xO|;w zuI}-{J3nBxnW#-}pLJf7Qs&{K2kb4E)VZ;lW`5=qFR-7h#Nkt792eZVf5cb*;wwCR z^M-()#geO6F0)ymkh}XZ@PtGJPX||?N<298yWOA9f-;>fu?wV}mv^7-Tsiw4KSpFY zbFNQ&on^_K_dRFd)7^X_$R5PKZ>M`R$*{JA3+N=VPGkQmU;hdkFnyCur)?#4!N`8& z*#aD9l{!yba6$>b0#)@^`V*kTdFa{h>q+2c=gdB0l05CEo}D01`@6eum732xmyepP zXRqt*v47I>9N9tU(6Gn`-~7fm`1}_V*Ka(-RJF)oKV0xLAAga*{Nayy|HC`HaPu18 zl6*rtis!UXE-X{mjl4KyE)(Q|(iP!dvu?3i>b$%Q!D;h$OUzaM;$;})fr}u- zEZ89lh902m{8M&vT2ht=>RSdSak(&z5<5(7$uulj9~?4I6Z14v>%`nv6zl!w@wBvw z+VovswJ5slUY3-oE_$q4P;zIr@U%KhbTk>ch+^#O>yenFD~)wS2IonH?__5#G^S>3-*MELyQ@; zM&-29prnNmG@In~GKTxZ)G(WIZ*sNBqbi6&cb&JQrp|08Fe@r(0#0KlM}L2dz)H5E zCZM6JO~*|^Zb?~sNrnQP+T^TYMU^d|7;=$5jZ3>C)9o%(2=Pt=Z&D@=7S-xmJ?N=W zk#A2SEI*00(HrW|x3G9k%rQPGWd+balhY8vuR=rfhP8_0BpO3Xav+IEHL#>;O@b1^ zs)GNdO0oroGAYW)Q3a@xP-Qo{Aq^q?TU`||JH7YTptxxD6}f6;Z*+$!PmWt7H$yWn zQ88A>#~hth_OD#$=fCjteBra7=jy(5bpL&h?|h%vK7b1cmwDmFRm!4~%7(?@)b)|t zlQ8BJxj{$-SAdGl$BZ-#0WdV`l*JB;R+=f7*lVf;lXur@7n8!RyLh#&J`o-*Tcv|_ zk(8RVYNu`_Q>-s4KClIw9RXK{*fcYd$O9#q292;xsY=f z%dEgOYfZ^1s@j&wLy4+zBpu%OXSF{~bB*f|6KbB6JO_Rn)o88NdwWZUp|IXeVh@!Z ztVx(Bxy}s3K#N4c;~sdl8T1xK(At%wokQzL+X6}@sd2!qQR_ahyz&xPt{kwxmjxO+ ztR`5=a6@d2VE4@tTWmIKxqz9@LDu57jWq-q2zVg$Ml67m7CIW)lw34-wK3XGYqUPL zol6SvEv`x8po(?oh~Ml~|H)lr7nmGL(x}O-6X<9)j_YDE3`5zrYj&_O_jNCwu6?x$ zEUO;LrLnElV{Gq0NhvhoB1r9Ng^BqwO~y3OPXwwGw$*r+R1qgG*j#-aNLzqJ&ldEm zv-G!2Yo0qkw@Ao4P+93MKdl1_p_>D~1^6u54|4zp&9!eWhRou^B@PewSx=33-@DEC ze)uN8_j`XrY8yWJnUC`;pZ*MAeDybZ>%%YdcJbL;MHE*$K!w?Bxu;Yzrh zORyJQdN4=;T*XI_y|vD5t^(aLCD{TNI~&-TEi)Jx+8foXC=ff*@LB_Gl1p3jQxW^- zQKSF?3>eaRigstz#w0_IfHPBp08Lad70@Dv6~TV%@Q&7oYFfKg!0`acdP1Uy&0;@u z1Ug~TAo2hQBu1{dkeyi938DEM^D&Ah{b{PTG865VE@n{_IdmqWL#i_lAuyzenRR%@}B}y-M6@K@e&6I z7n!Dsd-oo&+S_0aKJ~FzxqflU;|KTHTa4^4mz0wD@}GVMuQPi?;qCX{fLCj-*S1m^)QPa`Ot_d1UqvwN;*&*$vl&-?do zXH5rGykiq4lusB&j<}(-m)XYfKc4yi^lUBva8>V{UU7w zwMJ-j4OBOPnzR2t_at_1o&c!R8}d=W$Jw7hif+~42W;6aJ^AZ@Yfs#)Cy#sHggARH zyYK1WaUMvd;1#?%8=rai)`v{%V@er$<414s?9JzJS7lGGNc$YEpX0SR-sOXGmz&qF z!90r=%W1-*cqVq0Xgd&?5{O`mz&x6DdS>U_@!okzH7R!f7Mp%tUx|gfUz%D0JbK4d zIKx=b{6!(oL#EC%b8U=!BWW?PT5qT;wJLRSRnKgb1cD0OC`!6B)un@A^itzYqt%&`Q)ox@Ah4abZXkyW^Qg`iRee(x*wURr zRB=gIhN{?5Ykca( zYkdFPU*#KL{~nhPF7nb#&vE(60gG{9%p-N4n2$EpK{`H*V0@ZED&v-=LIm4XXT8~M zlfqTqD5*p(E-m&at$*6idO~ifg-GpVu}zUS!+092kqME zr3W!%v4IoE_kR8<7$9zx6f7d5HN@gAX|olW+${#2YJkiErbK&`g%e1u$=xN;dy*Eq z5Mn8cZd;P!Nv>1Pa=_=2*t8X^69wf%hBi;pR;TwQQ@4q`+N4s-kpzXvA-)wu^#BUQ z3P5Z?OIQU9eU*{~4*TXYM|ba&5BAyHTVg43u_P`IT9b8ejLkgr=m%x`rhko6J>903qp1<3unu?iwIJ)J3vLvHMU^XSr^CFTVt|V zZFAW7d56zpA8Nrckh7xwSo~r;EzMouifCI(>GZy(u;We<_jzCIQ^Y5|$heLBr0q54 zzUHa5WvZ3U>Vyv--XoWp7oNMq$6op(o9Rn@{rhk5hkx|@{I|dNhy2W^KE~&N`Ahu! z|KPXz%`g2b|Ll+dly7|bkC`4Earxp!0S`V?TaPVb?2_h9vVvu4fVDP@k(i3Wa?4ty z)w`->s0GlN74P5z7d#neC3Kc7_O`gsR%I#eaV6q-SX1dRoc?ytC*IwO%*^(l* zi@Dapn9u_0{bSY>Wu(uP6L<{fo8P1%qp_ zwmSP$VTU7huS8o@Xud?jBqgFNPS93T^}BQNPbg+FcR15W0-Dp5DLpv|+v3P)ZT-7kgK4Ik9N3 zbyusDS_h%GL8el~d|j=%arq)Y^Qlkr7vKIa_wL-~>J^yU%;jgF<a`*0ge0b|a%HBT9{X<4i-1*=waw+WXA22NTXh+99essjoeBxDJdiFZ&M|a67 zv0AM;JlN;;*S^Pxx8CPdue{9LZ@$fqXKpeMus*3z1yg8& zUM_zYB-zcMf6{CBTF!zoyL;Jr*L2>sKbfb;T!JmEvIU{Ul1&6W7Ff_ca!RdE!%_`ZQnt>Q^~FddP>~_|Esf!>2#}8CCq7Gv>z2H!ic@ zOuX~{`;0^3^2N){lfVHbAO>4I)C+2?@lh=Q`ohA6)cY3~X6EDYK>NVqFweNn9#PZ46#ROe!M{6>a=9 z>7+DA4m#*sytZux+sv4{tBd7$PW8-M1Qa=v_~w-vwNaRhNnt6GYNK03H&?4dDXP+Y zjU+#24>n^(Lb%ib{&LcBQ4{u*-Wh(9paPyv79{=tZdYB5Om^JCrGk~PECMSvMfEH zR;4#%3J`o;uoZ0ds{Z=WEpqqh_wKUhr;IEmLjg90qJPRz${@h8%^0fC_cksiloAz9 zJ+UwWOU1-esV3c_?p)E#v6RV*h4nrQ<;+yJJ;!+~78%t%8fCGd)yjj%M?CY~C-_JI z_#g5&e(@9BdF?g+tN-l($hsO|{Dm)Z{mMR>8Ji)k*DMZ=%gu%3)wV_wGx}5 zvt22DXTfP(Ok)RVj&a*LJLQ7(z&t{7-+i|ZY5hAxZ)02aZ!I)t(i89Bo}R@s8iA^g zefoI?#Vvx|9RXUlFt*Mq&dmcHunvp(4lo}1c1-py0Nyu}J`Smm)i#J=3s8hGNi5A4 z!y7Eea7FQ;{hNDSQ=F&SR?h)W3l>kT|8d;y{W|lq*mv{_5ZR$?R2WKJTB~fPx($St zZ|HpX7fY7IGS25T*&^=ER%AB@=k$C|Z(g5DW;;40+dB-WtmD%$?1@ek(sjMIJ3n{d zuR??6XccTVz_HV!R_6GI*wzoUkDTBh|{I=H@=b0>R$4X0qT6Q*d zX1&_*=ylC(R;L1`Sizc@VU?YhkWHPzQw=zZ+@4*{Qhfv;q#y2*MIZ3`A`0% ze}g~x;urYO{-6I3-h1nN+`N2=yjSELU}d1S>2yxSI0+1LLO~W9m}i_S5mN8&OaiRjD=E1c z0jN+>K>N+iwp~p^%teeOn*+QkBxVWW#^PC(v5M8(#Dq~&F7fl6wWrqrC8Z%4b2X`` zHKUdsRihK$W*nD|b?71G03|wuOpHXeNu?wZs#f0~BWng(APPsD z+F}Wz^S;*lycNH$F3lP&3&22NVr!;W!Q9#6a@0y*B(`pqoU+)@mN8mfSGZ)EONf|L zvHY&z)xmk|%%q+57ZTo*+_L)fkqekfNZysF+^)A3vwN~Ttqwq6-2!$_Sslrjp?0@a~HFHqAp zVg*y%b`3V8_8TMRS&v;yJU+V5vp25ttIJ>DkN)HjdFP#Xc;@*RD8s<*_wVxDv(It+ z!?(F`VV`lam9q?#KB>;4Wgqp~kNS=+ z(q-qrf46$n0f^meIq&sR6R!1R1x0&zlFaK37cX4mlb`w&-~8HFd3mwm2S4~ehX)sU z>7^GqSxwZraxfHLeeOD|&CG|l?~rrh@Zf;WG{yII=FsUR+hSnBFv!FPfau_&=K3~3 zQ+yQ^=Iv$LwikN$*k_qRz3zus#>Eh{YQu_p?(tcoZjsDef-w&yJ7L&gQs&*u8O2;QOeZ(b}pd)HKS(Fs#P^mO#JX!~$q9et;pydN3=4q08y3f$UeWZ*E7V8w$ zeJ#l5m1>QaAiFV^gnOa-={!zJLa!vpOyaAWSiuG}*)hAzna43{5X=@aZGt5GVo_(+ zx0;JlS`J7@mYTV5aMY-p<*1UYN=J6gPQ~|(%2;x2##I%OY#0KJJbHzj=U@yec$&?q z9%6Bh0)-Yo2TN>-z;iYPd<1(#i8@qswFHqV$S~LuJE*x)%%DyR%o*q|COVB4G~oDt zw2{)PG+XlcqO8nRrBOzlo3Y<8=J26GSQb7n{ixN2{;i)2F1PKjX{ zSRXy&Xtn0EU-(7-hyULHfETVOe)qrnFZh!`_!B<=bHBph`qD3Q^5`C`hxd5)`Xyd^ z^#!h8x}di8sPZ>=EKNJWuAQ>hBE;4>c+87P4R_Y#CllwsIuQw6yr+v)c5r`p%{J6R zk)pzx^h}wF&b>|MaS;l8+PEV;e|kVwUM=aom1s7#ZS}2m`+@$U&cf23+t*u&J+Ab$ z)_0fo-BrHNAhv*0?AxvZ+9vpHlYSzBPZ7lD9pI;*Lhf1kc5ksHFzJbF4t8REna<@j zv)=w*dqoGW;>tY|O+P)H+v&M_0AVTgoUDT%cKZFD4dC8s`hDNpy~{l*Xs6?``+YlO z9u0*3&cuqDdN&-$9!c z+7hR8pvM`$bCIV2OPum{@@%i>$$8GsJc*IC*mwGTJDr24_j@Y}d^$=ybD(a=U07ko zJX-W(zxFn7pZ_k$oelO9?C%w>99-k&=dQDwDj(c_$Qy6I!@boz{QS?n!Y4oRKjNSM z^WWvq{^Fbb=#3xo3t#*azw>whK419k|Ahb5KlwlLoxk`aZd^VfFP0L5w+2-aQKQjp zjxiEL$dgAKYue7eWJ>fW2==4yeM-{JA;j_Zya)3M#abo79Bh>uzjLI0l;}kmrv$@o zss^=@P0vkj0)KJ>Y6tMEn0;-=vowInT1Q$77G0LZR@-dwq!vb66>Ap21sYcG>@~$8 zo2va;?L#p$v)pwIC9gIwVwq#NY7l!xNmjlT&`FtV{}u4{_v#$o`4$6wBEwr zJVY}k)Gv)7v4|~f=-oRjNUhpA8FjN_z1lD=iq>?`7=;#$#S}#+yr{LSiPhn*ShKp? zWlHW~Y`D!0BU;6^H%p5xLw5p7iYvW#!FoND9_yxc^NRrH1&*YhHcGW^rX;|jMZ8OI zA8!JUQdtP_#nl?uz*2YkiF@t>7HbXNyC_bX4Vr&VOf^S#^cH3jsm&xSxYy8{8r7!P zdU1RbNacnlv5~#@*d^A6-961DSP+QoxRn!%m2?)-y{`5i#p{bNavQ9mZkv3;%$ltqnn+q2%@@v2RD}3c! z-{QTu-{k7$YutS1Dx13DM{nF>@+%zdUE<*I5)W?OW-$!hx%DBJu3X{qG;?&kV%~hf z&;9Jr@H4Nz%!hA&pY`!0Hmem^uU=!hEd0e+zsB{;*VvpKbLYW*e)h9J%VvE7+hXaD z11V1f9iE6E{tEeW|NB|6<*Y7i|J!cvclH>)AmF{ga!ww<``Po@HM{xtdBDq0!VPx+ z*F){T8EgKs9iwfW;KW+rUEY5B*G~t)Y%j`oPEbLw7KadUiiOf0Xf;sCT?T|691VVt zMa~CA&ZAT1oSzu*vp43W5V^D8^HD4n1=JRc%F~a1_Po!ci@UGg-=DI8ViLz-*mjKi zXzS;bqer~>>@z%k@JT*+`*ohZd4q3!^Do%j-{b0)s}gmpGZzAQ!83Hn>0mg?SgRHxV1>Gwb+_i6(vir zpa;fVc0_Ho*`t>?>wMhR7L}tC;bM46&mkBFmYBR^WcBJg3?-4h;(qF+(?uEuLMaKa zv%<(+LcnvIJZU3T>qnmhdd3_j-@-jLXWTQ@l)WXOi_o+tn){Gck(6 zx(GFuErpn3G}I1buAr|g$IorXld4qGMQNnTaf6%-vpZ9r7zP0_)ES@U+F>m;Nrr;e zjR1+{%pqLa(dOO{j1RF`XL26E=V&`hcrt3$oVBdr)!Z0J0!A9!mNlYMMuTp%>#bs0 z_ofBtBAe!}UDMkbRK-b_w-kG^$}`!D+Vw(2*iyl*P^Zc`7Ap1B8oZQXn}rI06^Pv} zWPO?`mUTUmIH~2!H1E1rMGfIFH%MX|NeiS(1Tkl<1;~{eq+zQ;lyX!Ss|VAlF*VV} zO9x4FIu*`C>xE~eQ-TsZO)-}ak)I}fsbp3sCp>uYn7{Fxe~bUC3gT6k($U7ytMZ-YqP$u6 zr}m_LXZ<;?qDKX}udlo5WT(JK^4?kYea%x6Xms1{Fm)1Py9$W1K?MYoY^R%b_^!j(NJ-*R$d{ciP(T#T65=*R78l_%+ z?fY97Ptu1iG_+3ly3Ug6>p$D~?*bcJu)?2Yr)=*~ABWnt5MoTW;JFT7=lJZ-wG#8V zg9*}0aRGazQvfH?!VFv)(0U!E3?)UWc z*HLx%o`l;r9_1U(cc@i?|+w?9_@?@;Eb1rdBVsG_8bO-3%PGGsB z_4C)CqVTZ|+=KBL075_I&S~*Dc1n3Ww>xN9Q`$Litz(+^r=ds61J-6*bq04{x_OzG zp1a0d@7?12ul)dQwcS~_^cqF*3R!TT}S?R5IVzEgRNW;+u-pwUEy>YqFjX5*V6`{sr z9eA`pTSD4omS9?AR)LY(8aAW=FvLih(LAh8tRdMK%ay75hVEw7HL7yh5*syQbg?=t zE8+J!TGYCjW)su3v*wH(AV(t&8K2d9!>G2BHqWH2BEwuIJe^Rij%iO!mZ)u`LPh93 z;T}%cnIY$`EqR+8ZBVl!k_d5QEV0MAM{%XH7)QDowoC&!Ww31*KHKiQ zc*Hhn)5^K;n_3wAvb{Q~+`fH>8_(S2SAOw}eB)c+;oW!N=JM6c)Y^FFxtF+m=R+Pm zTye8ip1EKXZhc;UefGF#Su0O_?J`Je z=vbzB2G8d5XJ2Q5nB8lC8t8NWctl(sdOsGiMBBLzt$W+dcN@6$xZq#q_0zi`?Vicb z%Oa8OTdBJclV+x_yXVf##i~$ zFaIk02ZyXz8)}`ovX=$Iyji(@`#v|WU1o28$uv!hws%kI%*5~QA_@XegHr3sK@a5p zv?xuXfdJA}sL|Wn z=c`EjC7-%3xETdw-X>;*7_kBs%X!Q48HORKy)z|iOO~#j?sDU_{e;lRP_mNAqlMzU z*fwPtm@&Kwm@V09B}CRdQ7kj21+!N+HF}&=CN)_P>vD`C4`B-|&57C!a;6Lms@Kp) zR8`uNK%-uJSr{O!NTfAsJE+Z=uH2LG4;!~Y&n3;vyd?>}a=$K3tk4Sws_zr;&7 zFLAQoFrQ3eH9d2(I%2b#*=#mjp;O$qRl*b{i|x9-O$<|PqV0)w{*+13_m|Y=Z{l;Y z?soA#J7xE!UP-VBbhmg!Uo$mFJDAWR1lVbp@SWwhgY4UVBKESBx0!E$mbZ))>*Bzt zfqn}&ldhfNJCyJ(h|q@xw%Qvyq(uT7rxVwsaXk$&`{(A{i9Tq2j z&0q@#nDOyNqsL?@Vq^*xJmuq$A|~` z(~rA7_0v7ky9j>7GkqFp=rB74yEMM+yp+`7JxM!lz3ywACYzGCF7gY~k(lFNZ*NxL zgDvK3>vOEf3Xv=)%?thcG|=3xQ-JwdHcc-wv{;ucTHMeTZ^5VCcq(*{O!K0}A3U^7 zY^y!fw$qPCAx28Lv`x}nbS%FU}h zd*fI5)^}gy{U3dczxC_C$kmIN`GY_CL*9J<9{=Q@{HOez|K>mBKlzXUA^!_DeEAQ5 zkHxr@3t%#=D%nhyXj$zUUAIXYtf}?Yv_E<|)oF6KaD&lAX=d9sKDmc8q5%6wBSj1D zFfMVNd2W;}O*==fO*NA4G0WPxp#qN9^qHIrwMY=V&sWQtVipWV0m;&9Z1_AgKjst+C3G4cjfqcVYDbY$e=EXIXQm6() zG4cSOV^QmCWY-f#z@%J;3Z)EMKZ;~9ltZ58TK)QZS0;V^a|6qyOtem+?}`lCn{jY( z$jR!62M_MBzqij9KKp4dTsY*1KYX1{Z5$pPaOv&Qxq6*jAKYQw zTkBIFMN`F@4n9Wzx{2lT)9Rb2VQ*Tcbn&uc&U0k3@Q<6OOb z$jRf!iW}Gk4Nmv1-T$7=Q_m6!J_@{fT8?|(u|5g}Iqx$mWu|FEN^D({ch7zIyU(&; zo_6lL=W*WOTWHhmzIv?C)BUa)h<ODBzG%TXu&Qd-MfIR zZ3Cv>Z`YY0yF#{BPU&?$KsgJ#oJHWy13I2gMe+!W;wjttTfZT@$J`#rk!aRVFt&Rh zPeTKr_WP&3=Lxoqb*6-1kS8V_#xytB9P#tN@Oi%cXMf6ryZ5Nm%%6Yd%lz7}{|3WY z*lc8Rdi9|2*;k(DdvCnUoqPAVmaecIm&|k92|DB2cE&{rzBZg5p!Q&Riw?(U6H4&i zPXpQA2cX4<(1j=GrqDG{nZ4!6VjMW$9D{p^v_{P@8Fdyda&Nh0v)OSm)r#d5eg zh1NyVrZfzrlF=5|krU(*s|{L>-swbFp|7EYUyz_l<${8NW(p*SK|;8-IxQ#Mw4sO~G9yvqU`PZTBqb!uR-OLXrf8Xpj%2ky znPyE5JK3IO zrQrDFLF@`s)j3zSvlvbxL5A50IC}q82yHW`IjUnxqPkAoR$70l7^4z2EvR4)!yv;}eX=wApZc ze9UIEVcJYoSLJUQ3&Sv|Eh$!`6dEh;eN#Ra6U`~nTwq48UiFntjyaJ;hnVOV2ncWo zb6Tgzo2i)ZEo^jm+>v6l#!tmdQ-FGv5Tm8i!B$IhgD{g5jrLHFIUTJ6L~$WXYspXP zu`Lpo&L~h=pgnbV39!@L7OitM+) z4;`VcLtLztdVaM|cT5I5y^|f7paV($a<^@8x}Re21#>9p?LO8Yp>0Ewu}!#o(WJF1 zEtVMH4vh4PWT%;!o~vzQ*cn48dD^0XnkUkq8UjF{x95v{?AL7zq?yY~*(3IHn&KW{ z$ST_8aRE8UUN~*jw=J?|q#weD3F%r!{}} zl|Lhu%zycx|CjvMqsRQa|LEV~@%=lz_PuX$>GD+_U*;%!?#xwnj~IgnWf-O%T7*^$niX+017SE zh<@*5y$#16Lr#*-9h%nRYL)D#NiZ1R1@_UNSc7!DYx;Xc&4FS!Chv^tL0B9W~F@egkdmuB5i{u920}K(@*}tu@!n zfaN0gbz9R?!^w0jWKyOk-Pbx-<|<+I0mauCq)A$Rme~RTkhY9WwHD7&s8oDsy&WtB zd}kEHXIWbq5eP&2N8lm~tCDbrI4`^-9DTjT#)9Q@53XE1EEixr1dQ~6~DV+HN)NeC6 z3UOM#6u(-p$n4~x+a1t52p{d)39U~qK&`f!Tnh8lc<;Rr7={Hu_vugb%+;&B{?2>6 z^X_}pd18I?7;@(R!y}SO@?d#zkzf7gU*>bKKF1Hf@nznA;|=!q5BSkLZ}aNMK0|VN zaOZtK_UsMbcXuPFR%0&;R@v`O`o8 zBPoBU%vZnsWq#>PUlQ|R5>@fa!N@0Hd5#~x^**<6-{6XydOzjdb+d(r^B5es$QIDwU;VP!!w|S>=XN);cE7M&~%Fw+i(1x9j$yFiB z-YbcddS4?^&9PaL5?-|#4B3FpRAbYus@Rn>2Fptp)iqTK4~MnjT>t;P{aLJSS(cuM zePhnK);`VcB5pJp*=JT&R-08Sl2s%NYA73mU_TkKU>h(5Js9wlMFO@T4cHI1Y{S-r zVA+6QYzvlT(tu!5He?xsD1kIZvREXmimWaxE8FP%+ni>vHRl|D_{Us($H{XdQdx#J z5SjO$yU*Th%{7}b{_+3+Xf)516rLx^NH#^GU2ChEDl|lO)RHPHQ%W>Ci+6S@Gfzf! zV{M6)TwQBSV2^bn8zn)>lcXJk>Yfx-uC0>-d{BkVu%vzmJq+m*V09%YRR|sV-}I(L zum#Q4;yDZx-)3N4%%_wyX$xQ=dw{U!K^e^$k~Xwx&1hzn&Ce%8A8nw;vg!2AdkRYe zQqWmkqSMx#4e}1jDAZcfd#7ZzFlKZB=pCCh=1O3)zGE{)R%KHXGQbL{#C&WA8OLtg zG1_aF5+=-UVX)XSU+Fd~N|E+O$D6#Z`Nrr|>phyBri}MhRlzdhvG=LAvxK@zb8q8M5~gB<&4L7rsV9>gm+_grv~_A4wqL~y!6`V`161M z*Z9uw{{#NP|Mzc_%6 zZ-HNTq5~0_+6o0wd0^QOmW9sG^?Vei%n#l(HDu4)%LWrg3ZDVUuU*gc|d7zweU%kbk|d2cQSMD-U;{b zKj7t;zrf3%{}Qi!?kk+!dy!`so&A2#Znxv~%APAUnj8uv7wXUMO;$GMb>_JA?h9WhU%MmHJ_ScADtR1#h* z$!o})!W`9|(fQ1}1yfQjCy4puuxG8O2+e}>$X$)7pfyy{)eJl`E{u>SX)2Xr0Xl?DN6*7Rl`bKP! zrit7gAE3x!dwL2`4=-vgAP5nyW-6Wd4mwr}SgQKVr2wE-SGDkS;< zL`Pl{?cWFM%v~KUQwqrlooN~d$?{b3Fm^VFo_zCmYz~d2SbXGqLUF>MW_?*!$(F+fkf>R1aTW(#FlSPM-RT+gG;#6lBVK%P#)Ajn;L(GJJbChzkDff?{f|E6 z^7$pp)t(0rAMhK0;n(?8cj z|8ZF_pEk)p`!f`a?k_JnKYze4|LULNcYfy|aXO#y;Ro;Xn}6@`@oT^K>&$auT`TmJ z7tbgBi=X4WZ@j~YPoMID``kaJ76tyogK zUmUXOTCFEqGc0=qyhh10!;C8%Od)l0#GatbaJAP(2V+RVq+|_`1VeHm>PC5VH$0?0 zc(8li*}Jp$&ZOv!?o}0I%eX1frQ0@_TLkwxsWno|jno?13NWk(V3}zXG%Q-L=G%IHeMEv8ZZWyJMlU>z2Y%ziJQ3 zs!}!gZT_X+sYbNnMggC7%51n9wF!8V&@E(ZCZJJ3hZ3UJ#41TNJUgi;YK5Lv-HSq6 zFaaI!ivX(lN@b)*ZH;8|0}#6>%$u!mmASzV$Z3koP*-iw0dJzphQCt}7E5-6GJ^cU z2-HDhM>_VAv|HDny(QsYDtl6)o7%9dJ44xMu=GmG#!vmiFYx@`H~Ev_{YNbQgunRb z{~{;ll83YL8-MoCQs}JL*IZp(@a)+I%ep`*Jb3hw^PThd55L9V`K`alw|?&r_>=E^ zk2l_Whv&~PBm)fJA}fiK3saKjJDeU#sgqi#RcJ14x&__a97-xOct$Ok6FQKaZ~O!{ zxw}_+GNi=XD(WMaX}w3=QP30@+vXrE37{+zZ8yVNnJm*iv+oP@G?5%y9nT_IR2beM z50mKTtli0Z0C&bn$2O;Z+N)g|%mT|kf8Kx=N)!Qk@&U@91| zwNlJzIL*|dHIbNhCozXBtyO9ZR$4Z^$Gy03tehTZs%k$B#GDliz_bqxNo9aeN}T%P ze2RJ5O+bg(Vgg%oNIyC*|0?`YX|-S+wN(WmBjkGFoe?INk_zhI($GYBB+XkeCa^~Z zg%RM50!+vlkVK_fq!i&pCAOcE&XJrp_w5|fbMXNBED8|>=fLSLm^sZ)`MtV{Qm zIds%odnczv$;R5&4ICPVr|Jfy;N6nUPl53L=+tS! z%*~CE_(YuRwn-IOF-KkUigo5nClVWNr2+R>BssjF+O%9PJ-W43p$4E)F{Yiz24GZ|t^yRP5~C zHWo^O%)WPs5ZRAIs(v>JYI$eeKUc2#m5RX<|#!H(nF?Y zjOGkF1P8M>@*7XI+5|eL9CAF(6PYVlycc!6LR~XcnBn%W!eTDk|3_ZZt61ZflZpo= zGfgv|OB78rm5L!oc?vMIbpf`P3)2))T=(s)*$mW;O?EOoxy+FPc35L{?_%Gi6iqF( zPZxqwl`}Q==(Ts&t4ne+zVPxxe)g+h;(A&6==pP=JblLdAAHD{zwmi}_RF7xt0$aK znZNjJzsma`J*AVmcba(XhkwW`4`1NJ_ugaQ;OBqg8?^O0&Zt8Sza?cO_BhH*;ge*6 z;p;>?GvAM7kS|>#?H-ay^REM8_Q-esJD?k z`gpSg3nnmP{K!M;Cw={-3>e#PYOp?tt_4WO0Brsn43sHlN-oErqvY}^kQuMzE=G4D zc{f3fn~2ztOQ9OCn@p6uzUTP;BSF6T=bN8-^UoV{&5usno3EQ7)1k|f-oF5+Kv=)O ze8S5wKH?XC;hX%)w|<{jUw)al-hP{Z@DG2JU;DLRr{uy?SLiD*oloq(@_GK`&G-4> z!;h)UDGwi>g=|H@bh05fioln&fgR%>d+O9+bC?e;UW`c}Mtqu}t&1`^s;R_hjSe!? zlsTEh=VYLcy+e;GPDzkwE-$Y|Gt3h?7qLdXGN&T*+Xx6%AxJv(T$FgVuTv|+-baO1 zU3^3h7PYW%_bzmOGMU8IrP6CBmx*SgQs*T0NcE1PphjA86MG{i8P4JxL&O5;5Q1MA zZTsZUVWifn?m^QvFi|HhXKYGaGA3=Z*fS}-I}#~c;tr$W=(>}_fYc(HiwbBzzDI*z zS3Re^!^pG|G`kY3E~h?nndsNoP>ek7R4vYBlS=ida^@WExb@ZKtV7*8blZ`Nv91eF zv<^2%S+6MkwZ#~uU^)4L+FxD!Oz%37v#FwyvIik49p{E7m6P;YZepZK|BWT9FS zco!^7>gA!waEB%K{gNQND*OBWC13o~Px0vFlsCWkJ+3c1zxeY%$LC%-C+(l{Yk%f1 zvYTPKzUJApXIwtNVC|jx^o*BZyvJML`$PWvfA}BppZv%FDc}0mcX{%B&z=-gEP15*bWPv9+g>l4Cf{oS}Emh$Ym#Y95APgW(}Pka?g$#OPiX zd)t(QO`=RAp8t?rh@F@O5RI=s0|H?xtKhOhS|YK$w+kTTc?QK5kVF=iYExysyE9p|fwquq1h^`*)i6PIC!_PMqohT1zex@rSxgH5 zsE*hQ1+A0n9$m9W@o5BY@>(LssgCO-VcjDk*S!tjneJks)jEJEojWo#k8#`>PaW%y z*%VAer`aq(WmN7w&LkTK)oYA-2^=_*?&h(Vsq0S~#gLq-0gk1kC_!<9Bq+prtCiRx zIclC8;9S-iD^D7Q76eDd_&XlBmIbp_;F#PtoJ!{Ey76>ryz$|i{G&g5o&V@>{9XRs zul`5;H~*#o7Junq{BQ8|-Z>wA@DaXWlqlE6&O2ZK+84OIzT)+FKICV9<{SLu-~Y#) zKA1VNN4)v%Z}X+szQpUVyu#BDKHzNk0!wX5oWtM5J@!i%195HYyq7mAMzlz_@U;lw zTf1%e)KLT23QwGJc&{gQ=CR(xgRN_wB*Q53Hp9lTLr;aCBwI00EM5M1DUaQOLmXDb z(lVdG6UnMtM<)}|7tB+Qf0z)P3DmD13{G{u6ZAHK2jY239KH4qX>?BPSe`K^dVrnT z1Yq|R&%W!ky-f1P=~X@B$_!REpr&Mj8qHUoK_1P#ONJOPcjy7ySr)h}N}gj(jE*-s zE+Pj5u)BQTT3Z>ufcsVRb#k%IQc?F#OeVUm2ZNYI>M5EbM1JHR`>=0gngeX=K<(O# zQwqSw41C2sSd&@onw-QC?k?7Hj)FoTtc{Y8LB5AHImFO40KcHT<}ARsdB>=Djl3lp zCA^v{GK0=3K@`wi#F%5R8l4)A7KI#rflL0N{Au&O3dwl@LnX~I{?URvhZ-UoloKq@ zye7I9lY%4YdiE)=0V-Pf?1&wjlJ*|4DV&@%z0AA98kj%1aM+Oupv}FMXBAj~wVkMCl9+`NbJx(UAA zmVe$wa5x@|yT}B$<>0sG$OhU&aFSq>nHVq5pOvtgEq#Xa762n;Q`iEPu^>`v3kA;vri*asTJ%7UIUU>xm zvwZ6h|B#noe#~2MzQf=7&;N6N?a%!McDo(d`vq^6`*Y@Jzw|Ocm33=)Vsdd<*7NbIC`NTXc{)B>&!>GO5K}8?>-s zxRg>L+6LCPiXz(@!{l$b+fm9)-CqJQ&8H-w%!PWj;C01aT2Imx`e)GuiR5bForWq3 z1fstN#XqMEwW;lMPOJ#Fp2 zj66*gcb2uvysS*r^}v#7tGK3OTL`R~iczLn(jFi37^9S(^x0YMjg@%j2*d=~%tgWW zvaT3CfP^O6y%lzo4%D?*8Q4ZIp*&BzMN^_aydcabJT<1I>faLd{*o-@7h$NHc9`jK zV#;xtw+)QSR=|6B^+bS%f;!xxwJ=;1fZJM?R3>1NR0?aa3S5)gK_39&09axp)d3uU z+%#!gGf2i6YmJhj6iJnO2eW+eNywSe_S2%$R`QNzT@(amNv6n&W#3tQCFe;gOH$Rn zxj~L#M;m|u&YacFVQWV@D=9QxgHTK*e+vErOt4^hblqzX9lLpBbZ}~2!9MQbb@SnA zG%U%a&a$ec!>1yUCsoAJ|F3IRf|fJamyMJ8j4!?RDwprQ$#S*l#g|^;%U}Ege({Vy z^DDo|gL^aA7nfW-f6DXc7t~rgyLZlmdozFYKl*?0Z~veEEq?2F{)mfem`yC^thM25 z1xEo{$YkgvXA4?&Qg^6j-y(rjYv&yDK(naEni7{5$!?+HRqTj9KtmVY$6#$(lgB`} zc!v`6)vFTTFz4%A(wOMYSyCf4?J~^`^NJvX#D2L{8{4Z@`)D6$YJ7h+2t!D71(Y73 z9dQ=)4ok56RPpXiu^(B020hM{99+8YNgDVTbo(e8dy?69YQ|L$7-KSB$D>6DWZ9t7k&uD0=PF+Wp?XPT`w|Zbl*T4 zu`HbK1#1CtXCpRxMzw0lDYGB;eud&`1(se2O z>jLMZ`aA$MI$}KF8|ai>O_+y~y=`%&#T@nXi9^kDq?bV?XDMufE1R@4my?gNM|0;rgR@ z`TXa<$i+t=VZF&aZ-8mh!nZXig)B#fq2TTe5Po28334gHyc9#MMFrhM#$0-^CR}WT z$qY<$P14sEEYcFmymq3w5a4f-oC5iWh-KBOrp`7wCuos{yCi1W4Yw-hT9Sco3Xn19 z2}=m@4z`WtQ!r&4#0?rbigicrT$SmQ!v6ywel-(eAR{(GAwUeVQa4KrQw%8rXp^CR zZ&bu)@Bq9eQ4a4bOY#OAbIX;`CtTg5y3WR&f_)p)GN%;mF99yrCHEWNP+*iv^&xrX zNV1qij??0rvK7VaR+)!vF(*OEK`~>pgjN2c{6)IJ%-$Q%E}rq^#b05{on^l;d|z&|SU!#Iar1RozWQnGmE-TbE#E!{IBw?GcYXG-khqI9 z@oCp{*XNHv-v-d!1dG&p_y`l|1ItK^$>b61jo%tyyLB%7319i>&vwgyDgMjxUjg#} z;9vbK|Loc6$u~Vt6-f$u+(e3G>~N*S6XfG3AJbZ8$};=f+9BUS;>KVd57Yo(jvxAM ztd!f{bMxQsnsA@?x{Jkf7v1T$d$<)WilpWy5Oho}y9rWlpQ(5yz#F42*F1XR5ozA> z_FHfB=)prSF0Xj^y|;Po)z5KqauO6;XU@i>d*|e7;-e?ed473KDT$Ml9quxQBC6Yg zcaFRIk^6NI%6GJDOlgdj#et~mSWd>22mLmxW+~w*^PSh<;JuGOqD%#^AvH@Ozv-h> z$4IzzfX&kkTjfFDJ58CoRBD%L9VOFK3cdW6T4AQ7UylCqFWoku3o985wpQ(3eg@&R zo=vSFYwt1!Ein!VAjl@OQv#HbFNE$`>;YYC8eSi$d?`RN(-{>}u{p#VOVDIU*mIc5 zdHD6f$x;M?b|f!|pn_=G4O=j&vv3kn;5C9A1DEzX1@*g>Br2&XxJsA|^iouB zlg3-mTERlfnNl?NIZI-al98qYT~(cuM~4Shcq5(w2Ixt&n2x!fkl8ODRM{{j&62G2 zqaaReTtG?AS!Q;zhI2eq9|=Yzmy(Et|CJGb14@!|F7a@*1sJL(4VFvyNWc)#KFOO*T2YebR3M~4;5-4NX!XFAwDaJ+PG$NBj#mdPZ^K}+@szhP^fY6YSR3)&F{-o$TCQW`AVkNNC33E#NPJFIUM}6 z0QbW1cgRr^n?wsnjHG=@EJLl?gi+(#H9m^Rl4tUOINY`|Bi4pDB~N_}ydhKdU^~dO zMdLV3`ITJiUflx*ir-%uth+6688cJ&+qG_50GTP~zt*42V?n5%zA54h@2Y1D8%~-t zWTxGHo<6_k@BF>L$9r%73IFu3|2bZK`3rpX{CUiIz&ocWCzNUCqmMoyrycKo^s$aN z%hYw@{=S(nts0*nF0 zAC^Y53dc6ECMh{iNoT;A-wt^Srev2{Zu3s79m>qKo3YkZF-@kJ$i_J{z)q)H1rv|S zV+|w=b8rT;A(8@%ZjHTRD7I-thdxu8Cj~pGA-S;ps3M+pb^LMflFKErTzZSuFT8=? zR@@|~$wz>wS%Fbd=wjz4Oa->hTS+^qr0kM@Oa3e7p)fnG*AY|5FkgG9`W19?o?^EP zc55op`g`mNv0%%{PxN2T(GANL$0xR9mmZ*yCztFehqT8+3D6>Tu}qqZo`01ow+bH} zY*JflOL69S#CH}MnURW~gZ9H&h80d?Cnwa=kbFgy|> zc{u`KZvOe^M7j&`xb5$s^}6|>k3o{VCid~)KW$=~jpX~Vz(4IX?*yEV{_5_uw(|J# zV|FL!y#4lDoS&U?ae2k-Z@kXSFF)q~y?a~dlw!_<`)8b=o$}Xm!tSD&#pF zsr!#k-rG!uaUtrTFiVb~Z}V@XUykuq;*-nF58r&3_uhSvG6lF`#CNNrZMfJeZODIA z&8c;vR_Tm$5$MyaGby`P^$b<`awN$$s&xrfWEy=-l=BoF6#(x76DnT*XS-A)u}0-z0G(*f z!;DikxQv-Ra=J&%8P8?RQ;YA_4+Jh5Myr+kXA_@$>1F2Lu-eF_@bcq_y!P?~zWMXt zAiHyQb;0wC3zoIA+nsR#Ug6*ScmL1)8~@w?J@0;W#cG9%MTU8b`;6X4BCWBgu0XMv zj23$UBO3^o4+(=cC9Pv_>2y4*yl-bEk(ip;7aYE;r=$ey$U9>&#XOSb;R!UDW*Q%X z#R@q6aJbshzNi~u(6_q}Hd)%tB|RiE7*U}K-vsyY5Fi*Mk+i#q#}mO!G;%Nmnk$(- z4h`Z_Zp^TnJlGYHJfy?f*HV|aM-wn!3E8o>MujRpD7+hjWdX*-7kLW5CI2Lo$%afU z&c+Ud@a~94PQ(exf^881{a{^;@>KUQOf{3K3z51zGNX*~@$vo0G*;DmXXVHbYD?HX zm>{Cl5A)N8_CO0TBru5JxA^A$y6^1@6#1ZTn~I zqr*qvN)0O7MzU>(?;0Qxac&6o()w~YT0dORm`^I)y8tB@z&AjbWI4vMed6~9h}H3} zjkYm{Q^1XNNrJ^nYw?^T8N)ZvxDB|mcqCg|Nl1LP?mT3GWt#DnxL!N|=pX(b@BQH0 z{8#?j-{6H;UgP5@Psa=+nepi1BR+cal&2S0wBEV6xP&~BEOR=~EDj%j^sW-(JTYLi z7D?b}YwRvoDshG>Sx-?!(Aa9;Mu43LFyY%-O5Q1P96&N7sk1GS7pqY*a?Zm$%>|AW zNt@Ln5X_xC&8Xe6ktV1M)riM~^%5+# zsVF(m!BVuir)=7%yUX9qisXql=7~vilYHzm8B!4lm(;n@dOLu-Lz&?#@%+W!q zxz5g<SYYoG@xV92k7(csH6V!thY{*n-Al7u#RO(H@gnqh1lJkU^l^yPkVhD zt!e!GUDtct&yPRz=H$BzEV_#>b=zzE-eh<;uAe>QmB$ZA>8JSix4*@M^Lwnz%HR51 zf15x1XMdH?fBuW?7wP?rRbG8?!r4!Kp6|bX!Vlhhi>DV?JbvLJ56EE+*#?dbD(H|0c<-c~LBc*OH}OmFz)5)~F=qA`r-Hr<9DPSrs#qD8g%v zV6~7;T4R~qDa5vvp-(`=GK_YP7EG7!kkd&}mJ{AhrpTkR)WW;K!q5?uXG(IlsthTL znvNLs5uitP$xY_SK2mbA5Y(|HZ}`)$*aifql2|P|E&;uykV?f~7&>_+0qSm|=bR2; zOhU$}Rw4+DZWuiSby&A(PPpjJmQ(otNS=`A9j!XGOAeKb)?JSMb^{SC(X+bjOg%{- zUJ7+xNjWp;#M&BbB%o6+O4>M2pSAI*~cnP|FBO zP~tim1ueRjSO8r%XdQ(&;y;{j4-k^ z=weTJQ?Ht2k+7No=`ltt2d2vK`f%jOGCDpvzA1_a@S%<`O~#6Gwso^D;h<-#>0B&H zoj|%LtOf*{nvx<07@!1futczfOm#@zx{rO6jh(SEc1-M?F;Tn^kSHqR&bAiR=}tO* zg0Z3@G^`8Ib<3;{-X)*(IJf8)Or-%lh^aDK>GoiW$S_wU)?FS|VuC7&voKPXnXpV* z9Yt$&i+xq)g4&0c(JA8{zj*^ZoxY7=u`ukiW%lzbC*cOwc42DysXh0R)(pE@wGH!gdXPK zMo&7gMio6$;W!uL;5Ch{n~FeMlg{<^h1P$O*Tlc`*Z*Ty`ycUd{O|q`y!^^5y!Yr0E+cty5+mA-T;wT*%`lY!7L6$#ybpWK zgmY96VT%DYDX#(%mtTmWAP8Z0eF)`!`A~{#XLQ^+gm%*h!adPiFal)%`(+HQ-(S1*oT)$o@5Q*yV`b_-HsHWH0Q#h|8x(J7D%*^ zzmN4{m=(op$?#g`!DnLN8WyI!qq|=%{)(=$KIjnf5=sRoH;1ZIpmf)Pd1>lX^%XX&x~`+UF^1;)nWGP zYN4);2M_P@_`yAjceqxAi~aSUX`Xm+e$My5{~h+1&-n7IFZ1?WZ?QUj^P9iKY{u2q za}||tr1GByi`*tZx=ALu`QDpg#?ANN^_jQ5ZvO6VdG5`;{Wi1UyWW5N@3&pUF*a~h zX>;@Uns3gV;~nwbx4%K;Y=aT}nGfJIUOy27<}d%{zw(z(Pfxx%0%JQm`psL%Xw^;H5|B z+&h23^Xrwj-~Et_t4mH!3nz04NfM;cJr6^{@y&g!S_t)Rv0;hOiGrkU(-ZwXnGzjx z=JoeJ;`?vB!8A>hg_to+Qgg^Idaty;s-sPeW2-$pX^=X#O9Ifs{4}A@a?7M?!pcN4 z8KL5;7^i6#MOJsH3Qj2-h>^;qjX!0&B~r=Kmi8VMsdO0skRj;cmos~kW(7-!s$w#u zloAY^k;t2Z8iUkbNxB66qH3BS0zR}Mbcd;^3ycvo`Chlf2S$>UNakXw1Y-jmOokS1 zmTi*?++p#xN14+x_=Cl}aFs&dr;cTyScwUyG((-e|QRbF!FrzI=OkuXM8 zJDVudWBvBZh;J=|sZN&m9zw#PYMSKzVxk*}b zmZ^Ej4th|>4Y}}3K15V%42q;lC53Fs6i8S~8`EY~)-iR_DM8{G?6A3%gJ+1Lj$YP- z-IUms%quTE;^FBDtvRi(y!Ogte(FoF^0Qz2A{n^2c+T^SOB{Il<;VQ?-}#&Tum9)& zOWt_<30K`@*k~5rtq8DXB-2q5^r*?2I;$PFKaUO@nzvi6$Oeuxqzmy2P6VNX#;#L?p21T z`Fso{B0!FakB6LV!#6yD02BKo+mWQxBc*o^ z-zzhjV6W)8n9%A7VY*tbBM@Y)?eU#DUxM{9jye}W){%4}%B#qj+cudJ46x7`9$ns{ zr@mE~Qwj!IjF0Y9XJ?L^t}f}s27L4`VA;@G2DP${Mb})+%wafbJ*xR|qxaL@j{Uy!@y8!h=AEv2o2N03G4=-zmoXF0KV5rOM0&yMaRIk+&&PX+ zeCD+O^)%@6VU!*TF+eH;PNWR(hx-qP+E#pteIc7+WsIHtIGPLi?I@V8&LKD8G>Dt$~Frb9UL*kvtp9gwD;vCc2q8zO00E4+BKx}CV#>{7>$TMl1v_2 zX)t%m+dgCgB#iEvW{D|x8kLo_Nmm`kpQ#5>70-UsN>%4KLx5m96q1@-06+S)Iyocd%zC|$(j=KwFiv_?7t5S7Qm!)8}4YJ>%Z_J%8kekAHu|6AaGJ?s0OmqxGizFmh1L2jMf&Tge9BeCv(B@z?(9 zU;Qsvg7jDZ%3t|Qr>Cdi)UOR%&LM~z@}uz&W(ta*KYLDZl64$9`4EWV5xplS(QSas z=+}L$-@5BT-zJs0ZKB=v88;EKPea;1Z8F@POgB-*Py77aC|kEqw21H(Oa#DHS58k) zc=Y09o?Sf0+rqv35BT2qf57`6yw6LIU*P=g9CwR~S?9s&j+b6|#O~yjk1w9{{)bPw zxVR!G=lt}H)>X|Ifms`J3saC|5m*EXKLP^7=*1(VB-JiM%$zqMaY6Dv}wI zKt*t8(FJFCKo|-J({RJr4UeFqh3`n7WSA$mrIMwD$uq+g6qTlcqK9uxvT$_I3bido zQqj8BN>a**Lo&6Gq{@lDAqk0@<89Spmr_)*Qv{3x3@i&s2%HBHOQM8CWesh5Ns=5{ zc-LSu`yEryyZoHO3RTqM7!ylyXqzdTv1p&M7euu$-1t!2#}o|C2ohSL&Y^!zqRrqy z?G>mow&BC!(K*UO;xopvtHX&O0k=5<1AV8qK4Y{Y)^oQ2Pr7?_Um!rX5gd-hLLC@H z@mCvelF_QxO}0czQ+OeS7{N7<4WdG*b)BNSjyI*_7LvMvor2cf<2lFvnTD(=DCM;s zK&@_gQ+sq;Q(NLxpleQbk8!d@$r-gr2ZBPM4A!;Md%|5%gvEGZ#{H9-FTC^$$s4UL zob7hJ`uHK=`0{JK`pV1f_t(LGS$Xi_Ay3|ai+}BZ_CMu!|H&Uw$_bZCjpWnC_-NW^ zIvzow5>Jb{I>3K{F&5j)AyAPD$*FGJT#=85+KP^6EO{RTWr>6+I@E-xQpYxGyc5AD z0i1b?^%&b?8gz3dxlQHktwMI-;KbSh28Z5#n4`LCgps7jx5alKF)ibN`Zx>5(GZx4 zQpjL_jYHbw3__r;hJ3IT?I@}CL#KfFc`_vvgQC09#qH<|Y2Z=eG!Fyeab%1{-9vQ~ zlCVCQEy0q(sljK!+0^EwU*v7IQ$eC}6oe`$CJ^~hnIUY}Iuu2jK zsnZDPL7R{D3AXJ@v zl;CDF%w@puxyRZXYX&SG=0DrG>sj^jOgxOJW90iV;2~J3F0i`?VmMj|dyMCZE(c(3 zW>Lt={PyqsLw@GVukmMpUv=}oo#ZHlk;=ldG}p9 zi8RleV_86#_H`x2kZ7)RQZiB7q-WY~($?g_EKy2{h69~iYk>UP|12azDQEh+;=nY| zSW>%T#tb%f>X8w*+6Y^;q9497$;4VygmH)|od8~P4q2v;V=#PY*v?Q!{F1bn9((oQS=Zn z;M&WhP(hdHOAfFhWhM6|iWcN7Hf7vHN{J~ut#wMCVx9)up(r&fOn?1iKU_OOhawXr9SYxY}gdW(=cGtyuvNo{Xi5ou*=0?42oCAHfFCqlit2 zAuW?l%(UDMwN2O9Gxp@ztUcnP(Q-XcJH^x<(y>nXNy_hJtySxPn(0GwjWLzMrV~S2 zK8XQZ7^6rzfCb~I@B~D>lfw>RoE_N`Qz;u*>%HT(a&~&o&wTxB zOy0yq4j}X5@-o&z#EBeouVH*omO(JE<*TEssGg60-g;wyy=Pq;5AL7y(hK)Fn-i%n z&>OusO3s{}op5>egzx{K>cfg!B84`Nq%vG<|=m{UF`QC;8;xKkIcf zU%X2ubQ`E~TaJ30n&jsDZW0VWEyvx~>mAo{^E2;Km)xaX+4AizHuCNB#%D^-oj5%` z{{hAIG#DJF-rw&T40*4uyMum08lk|jvvBAmm4zkx4X^>7RV=z#m=gN_f`{+v?! z1Sm6JcRi3#L&V0vZ`WdZ}a4%54nHu5$}BPA^*vL@}Kgn|J1MWm9Kq`T47yR z5-azn%s0OHh*uw<^Cxe7$eV9{z_Ncv?}>Z&PMNY%TZ-U34kJZtj03s{oi*#UjG%X@ zUlj1v-og-40YFI;bILMjw!v&rHN2tZU@AMVmrJ$QzS@(f%<1Vli(Tn($TGM~HY!W1 zW^Npn&HE#XHc6n?Nr%3rsNz*67(-=Va-!8Hntps(p5{nWbz^f>Lt67Kn8rKSB1ldG zfkwhHQ3&%5mbL_-q}Cd?bt?!*e-}ugvFTgoduV`b(2`41*Bm!j6{*Y{11(u*sg+y` zc|HJSsu0VV)*^wi?j-Lz#E@hnS&2YJ!7nKoK-gAcvo5sQUBKB?CTg#=bzz!z#0f9M zJhM0eH4n<5{jQE>W6o0;JXTuHk!pt=s_WW%&a9nHudG(BGq?bcBn_1qP4i4&mZ%`3 zAi@gfGN#TZ+0SaD+rx_W=)i&~-b%dWzmik10FpXEb$3?R=PFUn0T4K;#P>zzI~#~b z>`W&)4sWfWVum`ssHI}JBEO7C>U3?gwb%lfiI8~qE%@nOCdTTdq#$Ie>R7NVGi8?H z?7CcQyyufh>I`$JeJ5E!lGZ#qoRwKXju}qlbaz6cvR+;B@cfKv%CvPMnQ?kD@#y|3 zFTL;r)*IK?mt0-RL~ge;{;&V{f0w`go4-Zngu1Vhutaj}0T3|6L#E_?J5RPtO?$LTPo$#r$O2(^6DT&MQ-hT#u+hnskkY9&H)x&=e-Dp&lq^7)-el|< zOHuQu(n463f8*c$Kk^s;+5ajpz4S%id-q+|6|S$YdHIEhy!_%r-u>uf@D=a7 zV1z8(KRe}x2M>7v>2v0@Git~~avpMNw(~r7txMd4mFvtYZ!Aw$+4Y`zDzqkf_cZPB zBty|=eM?5YI#!BykyvYGH*IU8N1Q+xAW?GGGY+OhP8RE4dy{*^O}<*OV?-->!jQEv zMVyj?Jz{3+(A66`NophMMaDd9UoZjq38+3yb`!%)*z%XBxYo z!|-`ZW?}cwnKiDmh1+ z^yp0H4p|*1i2^|>MJ$n~PIxJgPHvrS(ys*KN4mJV+_J?+tL-4lEtzCnNDrVL-0^ zvh^NpVZ~gnHhRPkZFDbdTC*qf#Qn1~&UX{Lth2OwV|C~LgZoUydE2flF(KHLN{2EE$sc)&;C=G*Tc10=@-eB2G__;oDfIi46dUq0AkQ87CH{m-H- zjeEH5cW!&gp9P-W1Zi&m{&?SQlkK+m-@KM&hq{u+O~J}~eND=R&%gFEyLslx(~o%N z#TU6+R{s8P{R7^7^DTbmo4?Gx2M^dUD{HM->O9WR0NCH93W{r$|B~dD;Rc9qy4%MOD7Dt_x?oiOFPEHIj2tqviL~TcxjJ zcwp+3P)<+jZNYG+(^KlQuzEWzv@S6~vP`i=ZL8`4L7|X@=y~s&7}cwo6g?=T^AriUm?}*t3+sLn zFpvZoX&sGL)9O64UsizuQ|N8IQc{LIg?Zbd0934yQ?#lKMu$g*%le>wtJS6F6sB}2 zs0_c1;rTQwNXd-4u0sCts|;zULUyRj0=Y1i%+j3NDxD^Ogb3oZ z9Wn7trpeu9{MteSkqmN4vf!u(`n&ePNc;jAQya<94M*Z*k>ob-^00{@xSLTuky}%M zFzukLg?ULR!A(&yG_8r<$&TJu2oIlbnP&3F=}qm}@1M-nrUa&#Q9Ln~b4t?KENfMz zp2D1p(nxRWFh$VGL;v1eVmBvfg-+$c=?S<~o8#+B@`)Gk-{ax^b81~#mp!dj9=-Si zzyFW_G5`L*_aAU|-RU_zAR_B+?%|tYNP-}6x4YAid^PYPbqxT+mHZR`?~O1_L;<*a z1gNUiV@XoU0FpiAEMmwhDb^ke5YmhYh_w%eG$Mj}NRjC4dPqvlBM*yfjbcR{Oov0? zV?K@V2!`39)j0SD@VIpIXpika%rM0iN+W2D|J^!D^n;8mnT6L#g!I9$?Oie-3kj$8 za53(z2U9gbr>%QL?8hT6(A1Aj!)#mgJ;u$3+{AK7n!>BXqMGiS52;%){}3C<24QzF zc=|RK5{fZ~Uzn2hjwOMZE*qa1r4-VazA+@mS=*b=)Sg`6O$1sZXdHoo2w;<^OUMp< z#6Q7I5mvJWc*83>=fSRGi=-vAsan?-En|I4-!vyIo0$=B-i-Xs3uKm0xZ?SJe4 z!vFAp^1tBYd8V!l%YM)O-5D=DdJs=KQGL-fXqmZoUViaKK6?5@XK^m1*3=T))S_GD zP$ws`9eXVNjmaDB;k$X9HL$iWHcQf8JwRJ|MQQxKuS`Yet4nQ=g544^m!%|d9b+mv z)`39C?oMA_YdFrEAw99NCjm9aZki-(8WL7Kd|~j7Y23qmD@7uZyl8m}PoVcTngu9M zO(}2eDLm=S?vj6HdN5g1NZ7{yqC$mRB89YAh3c3y6p}@Jk^06e>eV$qNyUuZs{m@3 zygiS^WyH^|#@y6BW>=E#W6iHC$()u#mhN%yfgrl6NI`&zX@EE(rN_Wq(|RfitB&Vj zv-U>m^1;DnsNUnVM+YZ*$9vjrUpfMR)Mcy30Tms~{IJ)FkQmQzz@TmHd0!fTHobNT#&XZwYp`uf*7JDIq;daiwNFv7N+@c<2cg6+zW=BeXn zcjcSMuTKLqK8;9l{5pQ$O?Auh^&RK*Hwg=$c6~SR=hNPQCl+wycaL-OJepE;vFDFI zE!O)ug^tD_Nck2z(0_r~PXxexVm|mM2N!PsU7M4NLn9&o`QuD7P=Gcjg$4NXBi9$S;od6r%BwFw z;?bjXKKS56&UQ2BufEC;-*|&J-+7CF>X&|*uYT=ooSvMpUl!V0DcShk!yS+AeSr_2 zzR2ruzt4vsKjp)ZpL74-Irr|Jv)h#|!H_AWZ~D@~#RA7ur$iO91@%3}(Qq=)U-OBn6Jm zfFZwd1z1Jr5le*>(w$^7s!d4Wtqu;V-1TgbwV=%_EhpAs4D2Sc2l}$Af`nKP*>nJQ zgTB@PdL}BJG|lP~(N;X?tqm`hu%dwc^kj!6`Ndetw7OUD<%jhqwuV5b-X%Xts7-P= zwG#B!upGvtmT9?AQUo9=M{s3yORT+-y;Fvt%vhhhiBe{0*Ghy@Ri#XmSW)pj%q5YN zWIzDI(xO_4=;CS0EGg65DgdLeq*9nmVd|Ov+NlOpk`bhe>j|S_X_8hv&D7R|iYu@p zPgAhv)fJ$ak;)wUUQ>|bRhx1us&4egG)+(nyJ^R|UueCN(!r3pyQEjXB{CH#8*pVk zQ?kb2Q-QV!1hY)es(O}Ww7$~QM4J;6tLACS)UFncyHeEoD+Kp7j55TaE_juuyhp3a zDbK8Hr6eP##){+78O!OEc?YXH`kc-?%qwOyv7(V2AedN#W#dhirUq@bb&~a2UGl*R+|t7Upc*imDGHb znuNBAVC_`Mj@I7bxRrOiOtl9(X4lk!n;3OI>c ziMF?nFr>J4uedjX9j3K3*j|Pt4Qt4TlY8_pKY&Cnq)_CMsAw-srcNz}Gi>NBOf*;b z02)U+p8`+@UECNGJ^$9BTV=8^QQx=$2CgoI+A}?h9x-Pv;>Ku;JA7$Wbstkn-Vwx_ z&M6~aW$a)83cRGE6ugxTUA2VT>~U2 zr9f5jB9)j2CZIZn$Didy?ZNodVo?#RS9;3o6xkZJH*%TCqd;Ma&08z3RbfVt0!A=( zbJAy251Dde$}?7y{B@#hriGETx;-}S2{~g~@p5Z}xfdXQFkb-DG|ocX;#?c-kKQOr zroC>8Z5<#{?b})Cu>hy!p zsH+%ya(2pGGRrbz<0$Ne5H2>CxVA*fhulvs$(`DonquTcDT*DYT)203!lQdTPGlPt z%sGLJ4<6jZ+rsz$iF-sO{%SGc?Ur9U*zXMN`*Sy z*DxnO*3*3gIdmlq7P{1%i^*>+V1RXhMYhDtFFoejvn!rFd&1{F{{^03?)lB%`Uiaf z2jAlte&H8+^>eSmY%EJ-U03Fucb*)g;tHDt>Al$-S6xRI;2G^HYQTbGW zU2>tshFMdGRH8jz*xv>9v$sLZ?93%&t^kpgn0Gr(nzqp0C}H?JrMiI=DMj_hMftYw zP-dB1CTCgpk++V+PY2>WCE8l?DKpKxNKT@<+A8h^o00STlsK_OwwZNVX;pF~auPVw zRbiV$v)oN4V`fI06YBuoKq9}gDoC1@$c^^09+cwg^ps@Ae!s_E60o*w(N!S@KvFSZ z$!BLu_)T4&I^b0)aWR9EIh}WL5T;=9oQcVh^c>f^lF~#DL*v;;qET3vYe>eNvh>TX z;!CCMPS~NYJH?z@jA?g5Cb29Fc@8#Em4ROKPFq*zvr{^@8LIAbW}el`dS7J%e)jM_ zy>@zSq+BFtBBTIBrx7!}b*5<+c#$);t$43YQ)Xwg4Ed6vM4zLQ-=nOYcho8`8fsM~ z%Nx77gg?!F>begvmn40Ba!T5fNvsiMC_~FQvpPO?XPW0oaywI&?5eeul%SSO?dk$F zPlnWNMP13PfQkN`icFF-9YXsIvKLfCYUGzg!q=u?t0dM&R2NleuHM+4p0YbVC9R8O zW2JDiJK@3odn8Y+b*1&j>AeU1@CQHSZ~x7|6&?;stj$zm>QOD<$R9~TQi>pplvv}r zrsR>ZG{r0CA^Ri1fdEp*`Gjr%-oi98xlyAwZRS)T_KE{giA@%Z3VcxU&9?c1=NQ{K zp1XFq0RpKt@u+ByLp-i68Io2R-j3QGMmI1K48+utl*JFhZC8>t1;xMFp>mDOSkWRu zb{D{#iT$o3Lq!|R0-cfFP`m9U5G%Prtz&Nhww`ec0&Sc{1OOEYvVz$mA7um7s|x^2 zu4JtbF10)KLjW|Gl_McA>jIj4-*ovhI1aby%$B{ndw5>RFcQ>_#=7EODNVY|IWl8?^k@ zkA?6tIWU=qLo0)nr6O!2`%h)iw!IE=GQ|u*{sDw1g0t7a7;p!o~6mT!lBPYc?#N4o41oX6~ zd!3Ekv^SQV>7E3pm|8fyWtvj`XdW;+`-CBV7qcsy3*3vuhlmaH6n3z+sxX$4l5z(b zzzfLA)2!l-9eg5<#7dJ?+{HHOm|AQnSLd**_YWYZOj+J&-NRs412{aZa?TM0jShB- zyF5q1FKO(sEU+_+-RkIf+v@5}*cBH$Mh{7>xtM9KNy3Lg?~RjbrkRV8ZCPtO$s5J! z^aktF)F>gAcFKk|N#1hO9!yBrX~+b<}(jHW%iMFl+(NfYp$phq-7gfs8)5O}vTPfT6PPsT%>A=drjn>hbK6PKy1J*OB*4jx)+(0On87!rYyrTM z!0VY+@7zB<<AnKF2#H?;&mxpzWJEAPDdI^X%ucS+uP?bR2#dVayx#dBVJ z_47uFkD7pE&$A2HJmQVA48GpWM0(@KEJ^uXT zuypQX&)h}SxH(35jo~L*J2CH#Sif=IcKE#B1zv`3ogwo6)4YB{3DQk4KunevV>WQR($0CC5x64t*SkCN{Jc>zLH~OE;+gc9CWqG6=0X$6jiNo^UvT@!GU6R)9lXE zjJM9d?J)``(FU`1!hkKSa%0ZC+tI5kU?nBIby8|fKwXiICTJB#;DnRGA1v`)97Ihsll zgQ+(KDirxQBktD9^d=+cOblSyc=r^ zSx@YTc^GjxY%&7`#t2M|N@I*gGK&f(fIhQD!Xw5HklbGmLVTdq*;3 zVz5XeGvJ3fe$BUzMU$(0SaT0grX0VY*uK$6vZ%wnqE0@oYF?^ErnCA;L+cXVcm;@2%YrsNb=NmYEaM|*J}m7u0BKr$NIf)kxf^2U;c zA(C_RAZ7@38C^Ua0!7d~R&r?ZOpg+D7vKdRz8~O`utq+ucE?@G%rKd?H2goJ_lyO@ zt~Y7^-6#xJk!y2_I{*QE!vNSgdPq^c*o;ocQR`xu0Fo4V+vEenk70KfDEar~SKmr*#3RM8J>2e!7SEXZ)TG8Q4+5Dp^v+nvmm0u`362OV7o(YZLy{ zq3VntnBA+O)Oev95W?f;LPdUGTkB^_dLq0vHXTw@2yNWvyT_Qggnf#A7?qgB4uK0u$G9<4I z+i_6xSn`B-C7@+0m>aFBee_rkC8;%f4e-ZeH**AJ<^pRYfERS{uG!bjaO-$mS-OQE zoeEwuNh~A*SmEy$+Ptgi7w8p}C8pg(#mUi0t0N|Dq6;us7O`l{r026MTFb4|liFSzoxWCz7i@xb zeqVb@c)Vd?r!w|!t+Cd|`RO@k&h>sT`O(?Am@uu&tIiT<4^A|n+sd??qlJ4944tKF%Zj&F~^^kA=+ieV%yO=OH!IIz>>%VOxeqtQrfH<3r&}!>U8NTx6FHrke_|~`ni0{AtHb3>%FY&dneVG?t zdYP0mYwh@|PC_r=n|bNp%Y5x~FY>|DE8c(djAzd;dGhp1!9|YBWN~ty4z%N}?hzvN z>5!c#Ih!xn3z;3>7Ev7!7!!3_Nolx}H}0LE(9GChJJ}~%78@(oPD%y$Do`b=Fln%G zOgg_(O2`BnwaO7ab&XH$y4sQwIqN$yQRXGzG5Nfh)7pZ!sz9e1Da~?a&ur*pE+yDA zFzpJ)mE=fGk}7pjKmbX~GW}iEPP~+ax!yA*EVVV}`IKJkHdd)C9nxm0!(=K7u=W>Ow{XJW71rKF z$2J*1DzTGMacYFVIx|g~b%}t^@^&D$y6E?iaom&;@V1+2O&%a18gO^VGt6byS~iVQ znq-*g?yNyywJfl&uc~6Iy=P@|0(5ewGJ$1U8{j}A7s;*ilm!a7#&ar}Tn-^}w>c6m zBEUXCglST3M2@Ej?(lzeS7*dJw zsOfP*c(8a{038}%eZ~ve!GqviZC%e9cu%5-!1au7(Lz#Oya z*g^Pgj2JBitBQ~T_3&5#YRolZg2vFtL?5XL0pq)39XT>-9o^UlK$?@De?=Zv+R9?> zna)5-@lI1wNdfCmH2@c>7`y@r2>ZP#cfW=BdPH%!Lv^n~B}?ce6j z*I(!U3$Ji>c|olU(|p3cvlH?JFp}MdS)nB3-q{&*NpUE;n7QG#BH2r4%9&l!+Vn)o zj13Rdd0cZdQ|Ku?NGM=RB)bROAlT$&fuXINJllMwAYjNX(d#O(EvrB{B?}3R;+$Gn zt^X2c&8Sg+w+9=;#8o1e%ZHRik!DyPcSG7NBZtc+TWL6~>}d*oip3G%#C(WF-9DeG(w_LL*vwb z^U|GSlGsxUby=BOVxD%2(R?LYqoj$e%S+rcIqSTiPEKJ}+%e~*uC=JB)!kY4jb5F3 zcM?XyiM9r3G-Z66F^A$}7F(W`YqULcp4BGXLW*m{6c^}5T~ibrAg97K6(&<>q+KcW z`5vt`8Q~@a)L@`wu~xq zxPQ(&Z@tAUFTKW#j~}wE*P92|UCfm2Jh&tGJ7$F3m22Mi89xr$;P^9d%U6Gr*KGuZ zoBw{>wIBbR*4QT%9(R4l&3hcLo4}JLqc4Mj7iYI0pj;h*63lXpR~ zak#-Jh9Pn-U9e2x>=QryQFQMnBWC;z*yy7-AKG0&#_{joeD7To>MmN-@n?-c-!?&R zL;G(2`A5gjKk@hD*D>?wE;R7d7Qv@2j)C}%mjc?L>{;jZ^o;JA-}no^4r%6he*1U% z!Rx=ptFOGk*S`8iUU~Hu=J}Lbomv-g=QJn2^!SX=KR)MbsXV`0xwzbOy)3NjO0Avl z+5jyjQqEjouhg}2y)0ZVd-l~i*`4y>#g|atp} zs)J%_q>?z<&GhE1Yh_nvuuAVM#gqgn4p-3GF;(_^->P`tI^@J|mI0pil@YC{r$U)_x=!n47f6*$&{1>7cg|8P(3nhGYR5^b z&~wo|m_+5IC5mTSuj=@Nle5#4-2Kz2HkPDBHD~52TE*g#kQ=Fm`Cc}>$KmMUOqc~N z*OVAanIQlmS)p5_FBR)h=1KI9)&jgBykdp~Kwd1ZYrN z?tnK&$EReOx+;;$*_ft@>J@7+g+5tpM1Tczlq^?NjEfNM-8%yF^e1KvCQLGF~ zGV+fK^V9|05h~HE#(6iZ736*|6U01aKK$TAzWbf;(X+r# zd9;Y7B@Yu3`iTTHkCpGk6C$d=Da19w01#_Sl|*Q?pwp)S4G8Jh@J!MEsn2qQrAL=3 z7kgvm*~u(CGJ-icWF4-Aw+%oi$=hLdeb){pzC%he%oux%Lmngd@H)U5EtESg_TrG* z5R9r|^H~pxmN{!*$#z)70*Pb<++0a-kQDTD>j6RpKh<@0aXaz*y1v#TSybk_ty>Ea z#c@_os<4LaB86_uO$;Q-Qk3jgz?z+?c zU)!0M`WDRU4|*Qv0)vwoq!yLn=zbQS3?wxPPQkp;z7}jpIFkAp;c_hLk%!7zxdYy0 zIc676$hm7cmif*xYX&Z@zt>aC`@e>b^JQ2W-1>ds>9+T7u>jmwXu0l&H%R zjE5;$p^Z`|Es>_~X{Crcl)KopxlC9vC+M9yrOm9?M#9=VttK&V>&iS$xS3ccQOxSS zV^d~#I@8t_dc(Z2n=-9cS|3tYpjF!1sYy){YG3fG@90TP)>aqAYq_wrwlyg5+E`no zOet~+u(qf7#BR#;Wlwi!E^~OrIH?eF6(WwEw>jd#Y0S}OQKJZ(1ni`i+0Ca==GZSg z(^NLHB_#5sJ$CU`J~Yc-aeYZN-{Y$!R7u6A6x}z0QgrUN23AOYm7K_S)Y>G! zNkFey>(o^xifNv(GI4!7_jbK?-zP^PUjQJ$`-|rOYLMDC7TL*UCf|m-3y?lbGp;Hb=?-sjDo39<4G)P z=}jq5ozMe3O}S z*Xy?T+@|)pE8qTX1F9;_!28K|i)FAk0B=tuAA)aXKHfU~V!%#_Kjz@c8GqA%?e2 zq?^Bgm+#75j2ReGm;*3!Tbr%hKI7)=HdfEgN&jiTfAjnAdhczYe-p&|#JvH#oN4=O z)^+8lzx;XbJ$%R)UVVx6df|8f@Vor(Klv`xAAXnDUVWJ_eCajrJ$yhib=p~$1;aQi zSrowsJ6dy=wQ;pp*4k)I8*wL5EVIvzlqbr3O6{FTzx)DLX4a*$U&M5{yu9YSum6A# zKmLI1#y6{AWbxvxZ`9J&9=KU znG!)as2G+eu0DL1y1!)36QxWv>)`{_w|PAR)>3wHO#)wRE_Pj zx$actGXv{Vam!dKa`RsW*12`sYE)mDdft-%wO3>+2yI{K{Tbam>*WR47ti_1&wi8B z-6_}4pNJuoJAL0pM~@b!y?1tJr@Z^_JG}Mgo7#iMzQjl}M{PZA6^CwPYy=DpsSpv$ zHI&rmje0-)L537ZEq`+)<{s6<-UIY7NWsSHW~$D|Gw#+lUyS3#*exjDUL_&e7zrVT zBE=eu7Rw~DpR9%dsV0Hj(HS!idJPC|baNxvPHuP;DBZEmXk6E>F;Gj;IFI8D)+Ypt z8i58T6Hb@&spN@6JL8fqbs|9y8BjzV0wO_vGmVhNs4A3DlHNlOkz!%W@JdaRi={j?KD@b(2{b1W?|spS|tA3n>45N z?1mgD;`bo4XpVLtOen%ovLN%)3f4lJqrf%Uq4We!@9|tBNk2Z%O-@XhB}p^8#>-61 zi5{(JM>j_ShY9Z?hznNdcIpe+)S8cT$rB;}Qa7aG3pRQ@44|!>(UQid_>g!>`V>Bw z;cF%!?!a)2jzyLwoycIQP!P8(&?e5=(Wy~@m*hJsSU}A~D&dC?Wj1I^;RjWF4+GCQ zlDh7(nc54FpS2kOl!|b$i4=SyGzCGNd=8go!mQ!yPC8|35xTB}-Krh>PXwysR`PCj$2cyG+} z8S8ot1|^qZE2)xS<^rCfN%G;Y!qPCwoo9gnbPH2$0g~O+zPcEZT!yr|B!Q3a8q++< zN5$oVk|(hc+S*vw%34E?;44#+*{zJxS3qD-k2&CdJj9F@?LgTkTCZI1FPQQ~&MAs6 z`rMq2RvoffxwT$vzK1Mtnr0Ht)%BIU%n)<8loTvp#aSix_=LRLTI=-c*i^KR>dLa; za>;GiOU0jJ92$9= zIX%C}X*v_zVwF@#G1ba66|zlWiTx^e(mdz*Of_~`m&!bqSnrj(E|BN&)r&oFnA)BX zDO-m$$$Kd4Ii!@;$;X`iKDv1(F=ytT>;l@llB|+}>n7vwDLIuLB?@sfjeGY_Ws07h zhb1xZW~_@@yRIwK?v%5852G!&bGA6^BWNtxlTRW@@cKWu9g=I_QlW z@(>VXyZ6Mjn-vdqXDTyhqpO?RfR}k@H=S@cpD|BamI%qnxpVI%Q<5>Co@uS8#FP^B z6P7B5(&;>Ly4!JjGBHnyDamKey;EDIu8=6v>9q0D$4~f!AHK;)?|;a%%ctz7nXi2L zr+9FG$CHmf!pbS<=R4ZEk26Ty*lkLWV-mtm0>OBFmMY>lCd={f-u&6k&%6s*x%vJd z_dPeS5Qu`2P3*m-{hB?eD(Hx4-*CzW@3^RBxAJ8{mS)z z50PZ$6vk!|VAm@7NhyieR0oVUSx5j)Ro+w8bN)|k{7Mjx!$j&Nj@c_ z;HpbP*-fOLxV*YxtqQbLU+KQb3{r-a%f=v?^2F}+oax>JS~qZ`*2>50`!q6FR}1P0 z1oO00CAG{%ULljQY%-X_~mWxY#OoQ;x1LbUayfbqbab0`QtI zc#BkM19T+IaM%1NWv;ImaxU!Vnch45s=xQzC9L7ot?v*c3v=;J3`JbNB<*I2t`X$m}v!|t$u zwE!DOn_+VoZ~%i}pf%9D_JjZ=Mn@Rp+iO&tk}w)Q%b?%8hqpxFKFI>U@Fc@n3l>c~ z7zR6iKnE;Hx|GTEKD;kN>K7dU<|<6&B!HsUO7^_T`pm?f^I$!skenDMlR|oY#sDP3 zpt&y^g8>5hNW_(-3oy{;J6e&BE>T#p$GWPgqf?QXfnw&R!N%AmFbYOS;$317cNhD~ zhp$@}LjfoD{-&fJC@!z5=8dhhk;OTL+M4DhW78he6Wo;FZ=G;7_ANlVL_ACrkf_)q zIz8c=H;cJspB9WO%r+*9s$A-9c8GF_`?c_$=_I$U`Px($kdi%NUblH*F+LuZRe|r2X?m1sOyzr} z`7H17U|Zlr!3H*%T6!gqdDP`;VX<#{0Al0SUC^%)EE_ZEac>YHjN@ch7nrB+eOd<% zoyUgS6`P9*J)Vqb%|Uf5^Ns1};RUgEMl#!EjUI8R)5t0F{OX$b-+f=>o8=cW#>>o^ z19&EYRqKYgJwN?3KZTv$XHVu=e)*fc@bL7|!76!3umuvVi$L-rrNg2^-<)X*1MO&m zlWd|^`JUyXV$HgWWhSsmiL+UR*S&A(rdmWNB@fvT{~kQTIV%RbS}JClJmszPTQ(pz9=0dBD?kzl8 zni>ftv2*IWhBPLzh6!)UiKSK6MMaZZ7ly>IM`26gspeTRoq=nGYR+00d|9~O@43ES zX?5kao^iEYb9Hq|?($D_gEG&&^0}A!+Lyk<$t-rvx?b_lyYKSBhaYos@tpl$lEAe} z(&@?YlsHQ}m=X`~pK^Y3sx!(3fLTuLc8YCkcd!)Q0S#QNX(vTtuW@y8!M(FHcDqSQ zVJf6lSl7Ln#3okx)2C1P<3Ii*mPK;p>OBCAtoGMv58a1cEtkxG{~U9uwNckq(!-Gl zI_zVzyg{PdT;sAq(%)9pKb$j%eD%|SjoU~Hcm3OKpZ!^%dHlNTvv2$N zALn=OB1rtWdF@@Ff7j1Gi;OXT7C()c5{R=%e;*A8*su+iXxRSuCw=|I5+vP+HaZ2t z7QvovfwU5PB}k(UHE~D_wagpv0*67l31kegWlY$+%y)HNKRVHFL&b)%(9M6pZIa%` zS{a{l8w2OZVe{PfU7xn_ZZc!;Vzb=5=g&evx6gw^kZOsG>xK3D1J3dv@Zu|9pqxM8 zWM}-+&wYVk`nfOg&U?@K&iCKsdvCnYcYg3D=Vv=!c=V7L9>2i-2lpw{j4BlJ%eVeo)LkCq(^SXJfFs4D7|%7*F18WaZCrXsip5U73$h~>HMK|*~M_r)avS- z)0}nkDQjwqY+B*U*1_tPvff0tpaVB0 zY`a<2sq5=KOKa2`5|YsICo6FnN=kKpdKwP=My;aOLgMP)Ob4#k6*D*~lY-P_Sdl5} zT#5|T>Pne+k|Q|u@Q_Gh7)b<1z1PUS6r`7_;9b?0-k_Q>7wNGj|6;3>j_w929QfRo z*eiGsi9xglFQP&KnSGVHt}1v9Ptnx?RouEM(Mu^ux<6P)nG_~^v_N11Me-Wk%H z*0GE{Tsrg@U%*{5lHqZXCv{Cx1v8VfMZ(KLx9|19I&j|-=-RsE7^Z5Lp(=6LAmd|= z=84w!z-U=s5h|bn<^JjCINR;GzPP4$XYxJE@)S@tieB+%^i?ge4ek2|q*D0!$upL{ zx?YKqGkjRaGd=8yb?E!uw^r?k_P>1tQ{6cnoIMx=8*?@SN0)4e_%poJfnO6cADsz31#8bi?Q8qBds9D@;)NE-u1V|FmfCIFzGj#*qiK(vW* z$O`xv34V%T&bJOWwJouK3N&Mz2RkvY&AU8ZB4!-( zceJd)pDb2P|_+A6v1 zSgRyCDJ-)3(#X3#f9~hM&b4k8IMCN``0DoM>$SXz%Z z*5P-DSXI3>wVTF6`ZD~N#JCvGM_q!%AJsk~Ppj6|s#y{)(|YX@Bc#k)R~5R(dPs@Z zS1}e$o+f5#dzRhXRt)Le`c*fZ=2cS7aSutLo_AQA_736*&QsyxE`@Y_W?xU>;fqS@ zOCiyqRkANUdFQ*lyWh)KF70R}&ZffIqZcJb?g4!E#=fqQm8f4mf6Ds&Iam8@?RhTG zqHKxF0N#hhn=l#9NnUO8*;7}ux-?3y_$;>boKNW~)9M~i6D1hoxi(&T;U!v4%qKIo zSN8j=XJ|&sg&rWeVsQbE$&$QmOcJEp#RMu@UTae>lG`+O$poWbU6G0yS0x+M=}h** zet*fu2OkEDx>7f96*?3BzQwt=y@#@12oWdXMs|iCHt1 z#ImkDefErx-v5B-PoHt|{DN9n=Cb2A{`{ZgbDw*-eby_dnGfbd?M*W4qtxt>w~cM= zM{~{bzE8^)$ItEp9`1VYvH$69BvKqV;khmE{c%VKH`zls z-+z-har3p^-*)ye4(W)b;y$+j9cNbjxi{PX`6qb&WB|;7e@4Q-5uYO%j@)HbK9lLq z@+SBshyiz_bH_}WEtvQW^lyM7cY!K5C*NH_#ivo4j^BSgdG103KMOg$3EJG8RG+n2 z?qUTUzvt#PkN+RQ*73NwJ99aq_sVzQd7ro6|Cq;*9`NYJ$DBWY8OXf)@;zRC`5QRj z;DZk?`N13S^6vW|@$P%yWh%zJD?EDih3>gQhL zJKy^uAAEF4o-{pk7TqtKQT-ZR0ep3}betX9vukbG?(}8lbaw{HNglMyWyNV?MKm3z zsdsj%$gnFVSg+`s z-VC#jM{D6+!owmLuC6Zd=InMeOI=7gbF$mfTVua0;NhgdE+{e%=X*=sKRcn)>1`pU z&e@~;hoJ*|d zEQydio{hR+;i@y|%rrJujQc>D3+ZIXT3034y)mB_x;OThD}H^&6rMG}y$#|17UrFi^)Ouqs6MoUb2mpXu7jjk|x%+5sn%Fn7kWvJ` zDQB4-0x3CoX3hn#74MCl6N``a(%I$AQai0Kq-iFTsOuiflj!;gxDw+^!CEHEIMnrh zI9RQuBnq*SnexoKj?PxdSKvZihuu7ZA&of3knrS4NQOzN-3GLd$ZghoE!DmsiaQef+$ieAhj?mjvjEt2^L z^tP4CT5pHq1`)J`RBD_ADU#+feq!(pz(LZv18@*55}C0u;03nxfw(_)ax%-bWhG~e z?pKlQd-z2ql-w|wHONp~*j_vrHb#Zhq$jepF^e`*OS9NR1t`%sfm$Rh9;S&A#Med? zkr}4GDbBKDsI|N4x`vNziUi$5HZ{huGrV{N%5^h}Zg=wz@&Ie{08q!d*mt2INgW+Zjx^U#^?-%w*x!M+W~xwgdu1+jP4&g>Z29&CZX(* zC9fQ_$71|DI-@i<0vJVWxCekXK2u_1-9t~>&w5AlyOsMxN#3I8L!$6_swimz?!akvH(Q}r5qOta$Dy^B4AuzE|fM= zO5ytYnrYs}dpax&mrvhd_{R0#X)Xpq$>Cvmt^H8S6R<9nn#yo4V&&$aT$FHjqtSm}+a_3uP)S-2`$?MRRv; zVk9I<6m?!qP?G!vdu6xVQDRRX83?_Q*3Q-vyJ;UYGur-wk_%_M6ZTad15b*)eV$!j zGIi(Sy&cur0OvC8sJ*dVI_5jF!DKVV5@-2DEDzN2GG#IAvI*d*-r?+A@kA#;DB_-s zwk+hb(>hMN{*uB(zdM#P%d)2=WA``;hEZs;Zpf1C35=V#PXjUAelvgtNRtel51;%|jcU|($@5JnrT@@nGPnNLhjJ7NVv{n^Rbx{#p?@XsN)0A04m%G*lyoHuHV#&Uc!${WqDji{l+E!IvY$7G2v(POV zBS|fKElXRiKt17J$+W0<6= zT$WYfLCTSw`IbPG2(H)Oum?j%<046$HaW3q6bwtltbzA1?na7!H<%4 z1x4;-{oIekJyUDd_01FWG}D{>XN=BN;=av7Uewr4Gi|LbZK0G|$&M>=u%w{UY*1$* zaWb-4h6JE@XDSL_dspD=Nr_d;hPSGYIHn*?)xDW)iIVmCYh59dF(Qe!PRz|l>s9n= zSCTL^vMHJ9@S|F1yA3p`)gev#3|GbG{QR6+D_7TxIx!gZ8tcv@NzDqF2*$=VPb~ZE zNc@~9Nm4Iw&Y_T_iRf=Z@^o%Kle z;-Zd?>D>c(LFSsxCEIYY7Jy8*U^Zy}d&p-}xU6mg!N`|=bhq+AJ_L$%56K46@xg;p zs#UHj?fOp5k2qU0Ay4WYsVGQYEGiK_M(_kO?2QyXzTbhdsLhnvd8`k!=%5DCQKU!m zYmcH+vTeVVY_{v%HnB!ZfJ@!7B);BgtGqmNQs=>C6+oPFVlHCj)pfxv zlahSaJUWEQP&m)p|h?vd~*`LR&q(~7sV@i%8a0PDw!S~YjPH#;~w3p z`YKkC6YLkops$)W_8DEy>TAKyzT>j(5bH4t{tGxR1i=3SYn=xMX;t8++;0GAa{(9y4eorfEr9O7~L!$npfP>D` z9|bm!UpIl0+dzfm_uhORgA})Y|83tjKIb+is- zA2f7arrl^=0Sc>Y5LqKI8fGE7oP@$;Z!G*M)ssSob=FOBM^Jx+?Vd=N-vA zeXX>0p%#alzO6OpdFDF7 zvMzLStVt=eXHRXCmejT)Uy3YkV2XJg6zycAHLMcvoU(#!nyOe`)$pY?GKslNEXkrp zaCA%w=gJg%krw)98!ZD}RQg)0zzxNvArne*?VWu>wC9}F(yw>5n@2V6`^UToxS94kug*c@|T@+;JlEdKCSz3UD88I(vRcq!X zc93!~0f4F;bXrp&BUZ&sL>x*OHeVmdyB=mv3DyYuV;=Wp^wqJ}DBaa1X`1x=En196 zU%=5qwIri2mn4UoPG9!{xM=)aRVI)p`KY)%r0@^Iw#3U&fM%vHM`IjEl1J+s+ry%I z3u60_rE}heC}gX&2Nm7-`b-(7t{d3V!h{h7>P)3bU%pjOouX`!dL<*moC~#G&{}6U z=*t2QyEJKnApo(*JU=}@VRw2GMu-ooZN*#S?QQ~RY7^%0C8+#nXWHcrD zTzD77c*vRJJn?P_J{+@G?T}^KtIE8``ZbR zl?kB3d%{t7C{GPXZL9OBB#mS&WJE)m<%s1V8H=bh+FvYyZB@A$vLmZXh+{^LL{gqD zN&>nZXk%VLPa$&|9Z{k>nQW{rkMYxUD`u>{(R+$E%0mnkqmok0X^Z*Ug4q>o93?68 zK8j95fsMJPFfY~l;;wy?Bu@!z!Op=cE#X$M)I-i8Ing$7@oas}z-VaiVW8mG#b9hoW8ZH@o0*ja#4Yyn-~rj4#rXuI!+dQx62fH+Y1u{ zxx!?BGH4giC1H+)E{;#k61$w_n**k|#&*~m-BdJK*1Z}UWHmzw7ZCZ8 z#QCs{LZex9Mhk{T6dJlqYMX*(f{jAsCoK$c#ZW8PA+HuVauMdtt@V&ZMQlER$b9gV zYP|uSoHAFg`7CB3o4oPkx@wK(DA+`9B<~}(YgSH_xypithc$zTH%V^?fJxI!~e(NNWIPIYcW0KA9wbn|tWQsK7OU96a!K+dOuI5+?8E@sH5$&QZS zdowS+?RxI|oV%|3|Hs~+hugMgb%Ee-%(?bC_ultjv;+_l7$_njDmH+KVoIslAShBP zeko>ZB~@msnSN=LmYMdHmQ87Drdrv2X_Gdorl|;Ni4>-Q4V@qcgdv0hK>$V&MECl8 z@7ZgPQGfi#m}{=N=UnH!8}(1s$ATC4?7i2TYc^w!ZjSLAZT~h$+4fssc6&I!w8`aB zMo8S>jfgr87Y=|qeKupP8j$a)`EuR)x~l_b_o`C#EMX-2rZ;DX)fXckiW?Hw84v~w z5)3c|Ve7!@7jYI15`VYf_kSNnx{R*7I8$!B`gccrqY_`Ez8{TocA3#f-`+XfblXGi zv+cXWV58D=b#)Jb;jtCG=ff}JeII@f_pjfFSKYslS3UC-?mhJkuJ1nsc)0HU2MPBd zJitf2{=x2b=d)3XxuLguJ+HV~&kPR*QvuFvaY08QuLL(Dl^*_O@e-`A)D&YRh#K)( z@*-H*4d*99m$Q4&ITt==-6Duo6?vhMb{!SOt)W6$Txn+>EtLv0!?K(l%*)HuI`#!% zNDFg|%UV#p`WHZ@Ygs%`)(Rrb+E#j7mxb)S6!mBjmfFqX@ThHB(|_NWzLvy2A@;}3 z%?%{c>7)KEfn6!oPkC{J$QpY(u!O2Rf~-Xy+eK`PE(=~-BP@_y`8U9L!k;tw zOYv$-Xq-~X?NFfqL$X-*o%|Bj;S(5J$xkckz~l*b4p7I!^4>XTTwgO{toYtoi$ROx z-c{a&na`PoK^dp=1w1`Io$&I@H(1XvV^ufO{ZwJe9{rV5eRqr%@UrI>E5R7y;m(DK zBoa$C(lX3R#R~PZ$*UQ*dV9g%7)1i}>N=q)hm3Nysh*C65HDVhNEj(5P)K&8poH>F zCD_c3Ujg=K_N49NYnxJXCjpgDF{V5g(K_BRmKYvRZL|bkx?x!?Oxq~6?Z%W__TtW4 zE9#XiNE53T6oa2c3J4+M)s6r}`RL?)jbhuQw!&)wa|Z|=pCPN^P7E`l!xLbt40um* z{#p%Y1b_8;uS#pkUUo^<0P&*a=7x~a&=2EB0ag!64oD31$VTp~j7aGqwhF`Gokv?8 zl`CQD4m3CZg+3N_ter?331^&%Az4J5kb4xzp%DKnrKRdbQFfe$5M>mj)CfYGWy7(M z#M5K3LLuiA6;V+&nhIX39iX9~wsfm{rYGWb9O{_3MgFt7T@@xzG2 z6b=zB#hoV#LxE^S283=H@AdY4zh;jD2;3?Nux0NlvM`DXn(9JH_JbBkt-fRM6eIIk z5^hUKaYs^a3prR-N!8_;_`ZGl;X{1P>t2tK|JaYig9pSn%OE&(Sqs)u@Zw7k@zTpr z7Io^>JVj7h>OC){gOG9VcsWND zs>|!(l~7|e>(y0t#EI(^RVNnmRz_er##AY6#~rL{rLh;x^-2w+XR}v?x~RAlxajIB zamkH2AktIf*>HeeovwM07cMaWeL0?FahYwLC;d)sZHRgPt_&kYi3)2809D@jhFRxCF;LakrzPiE#uXMCrEx5YR z3Yz1~u)g#nUVi>VI6r=b7hZaZ7au;x5zPp?A9wry z?YmG`s6fXFVn)VtMNrZg&jl~tynr8h_C+l6Be;LP;Hd}qaD9Ek)%7*5?>~*J>!%>s z_v(92C&B4-1w7RzQU2)lqt}mK|G$0tetz{m0I$OHFT6-6s4L)1wV^^>gyF-w8c&c! zz!aX~KMC-Zf&w}$vO7xXKxIk_3k|WdgBYX#Rv1na2fQ?tiGu=IR)}WkDlFHU1>&L1 zn~_MT!(uMZ5Kb|5XCMGg9{tAZL0ZjJAba`;#PLcXtn^}FH6Jsu&P${&d5V&S-1F0F zF^|-ygCUHba6qNXx+B8C!$`n##$nLL0ZCE^6!tNu7%U>y#81HkOT@uDLUu=lhD5&u z*caipXWu!lh@uogGs_@LI1HFW&9iQg9&y7Z(utCUQ#N5`Yz49_Ln$S9yemXb?l>uE zPpYDFL6!_LIt9#~HZ;Ed6gJU0M(Ifq+X~Vg*f|y_?f#5J^b@}$@N%Sc!DH2EFpC<} z!U#h%ryKYBl%k$y>v$OoUj@?60s@yp6_N#5l)9A~Qh?AJ9Ipd7OE|FToXqafVs$R7 zMj+g{gbCBV%#f2~&qx^cVK{SSr2_SM`k3nxs>Rb;98_E2ZDfe7D8{I;C1C@|4s4uo z*r}p;+Orcf``~-nd@dV;Mm;SFAXc!S3`D{c%(%L$Sf zNTOp{5b3?m0lS4f#MIvE59LP=iS|0O7e@#5y$w2YxQqf3j@kq+GcVd_`f<+MkIyrw zQrkuZE5uko0iq z>JT&3P)LtdFa#|Sr-P|3%Z`px$~;{m(qO#C!FIzqVKhLnR-P>Q8s?LqHf})ERD3y} z6l*Agnwf95UssQ~4?tLR1r!z$O@?}6>(6gQqLI*1!;OoTEmu22{Vl@zt&R_s;ck78 zld)}n;>6dsaBP?>*ZJ- zvdvGkl%$z(;=<~f_k3Y90wa2<3dqFB4OoQK$AWEpE!MX>mAk#4+^CDERSP!$pfIHY zlu|?pah#E|30S4iFk(^r*gBW7^{eh*p+QW`b2s)4jh@Z~L^K23;Md|&OtQ6S=K0zL z_sl8dtcr3z1A4~en@5ne;QCdstIn4sz~h_8Zpgt;5`fs?hT_;3K+42>eLV{AbHhLdLD zJPQB{VCrRa4Ml)t4D%Ow*tyeLfw7dkJ7J=Fkx1<8RvfcbjUE5XAZrbPzW zF`aCVNh0tl1JXbi0EHEC492J=S6Yi1{W^(G5wTRUV%$RqiGw9^eNw<^1tEPgg(tbp z0Mw+)SIH3_M>;bV8cLFCCJ6D9oVLVZ=4qQwZ`arN@k8%^C$4S9GY{?&yDKr2N!)pN zzB%LZ!4`eJi^PJ*Nzuv4(!S$c0MCj z8=#&_(N<-ZghN#w)5~=@EgSAa(KAFc6ymATt=`9W=v4HGJdaR?2&+NDST)g{Kc?st zqjWb6DA!}q>b_ckk2Q>x(@lriqzl{F7to;0h-XT*mldT;F4V zUATw-?^PGY4Pvc0qXzdFdo`>WFW0IR_9y0ZQ<1IW4RU|1(6T~T78h8x;H8I;@%Zr> z3gXMGMNyPs>?vpDdr#qHy6NqqYw7lmElR^(*bQFkC}O3qMq{wuB|u>2uo*>~j8ckb zcJauz9(^7?)3(?4Zxj%56o4@MJND|fooqL!HM+6VC$AA^Z0l!;66A2*8`W}Ybb4%U zirWW{dv`f0ui$zj2TU+dai!68GfJu4v+H!sn1jDgmPBGs04o&NIv38A-Rn9YR& zRnawPpppMiyKn(KyttU+MOE0%iWeWBsrVYfLj$-hl&9@6wJA5ipf(#iWWE8V=hTI4joY)T^gxk(nhFJ8IMw^*=vSW3b(-Mjr!F%f*d-Q@=$*SXWI>?poTS0DhT-6a5&(s#Eyub~mP*wyCJ!eIW zHjFrUiSsvaLtWWnIIyptcp5rf*-3)6DAuw9YIyO*7x3EGy&j+Vx;NAg83~MZAzn34 zil+&HprQ#C0Mx<=5zbYNQJvPpouG{}EI4Q$5u5|Ku^djy#56`Xfpt8Ahg=>})ogmyZsLyeE#OJ-Z zY#_cC8b!4LfO(1w9B5G@G9e5Vk0CNTFjuEfI+K8;0FnblhO;<{J1$s}gzY9Q!W1n! zcHkkyBs38~9fnsbaFC#Y{DM_b5>!}qgqwd87J*6ajI;^SsTyWpjgOT6~*?Cu_ z4N2&k#Ap)Tj06EI^>JR|*lplGFy|%7bp&%Bjm98@)F`-3_i$48w2$C#p$o`PHy%#_i?% zl9~QTvUBVrj}8ki9P_(5WB_q~rJ+bvHQB1}6YuBvt(ga@?VE2i!=_Wg$FuQ6IH!V- z!`lx`H0SX_yL;Orbb0>_sfRu(C8o6@>?dr_+E{1PE&baGYSX>QU$am~FikN|*u((qDpIISxI(Olkzt{fZjOgO1*!L*wcq#N#P;u**RG%Z9+;;m(iu_QWx_{} zjagqu?T%`hx7Uc!!ywx`tKtD?5E4v$&Im?xS3Qs2MvYC;dKYV7LYO;Y=d?8Gk(I5w z0%6ff61l()c>z!2{j4#$=e)7xOSM&-@upM7K;a3v)0^YP_~={-0Ci9`Ke#1E2dc7> zt8jo2B-12Qu|zni0$n}~WEaYQ%4a|Y&l6-sYPwYsQ#C(Sh9aS8ZP6^Tf20D=ZB7H1 z>Dwu_OLuVqwGvGN)yzT$&i;wum<%B|(Hb>m7L3wdH*mpK(-A<$(4A!F9g6W;T`$|y zk57DHsUUC4Npf6}V2D6Oik!Cj!8Sh@LJ^4}>=1}6jHod|UamB-4_qEgFjsewi5Wbw z!dHi5W88XFx7mufy0u&9g*r=&lQ{v>;0v&-aiYPXLCR8xM0$%8FyW%frb8go3w)1= zi5m`#j;O-QPlf}y7GN1~3wrVSg7+Iir`6N~1W`gg(mw^Ow;8~F$xjeg-}90dA76o- zu8>Yk)lVhp!Ra>oOL}r)X5!${G&aH^vQ;bciAV-kUSN*6i6U76{8{p?f>Lf^pY|UE z_dgZ(9e*6f-iMs8Awp~fCZ(twhH%G?ue~Jqr@8@{1QGQqAYIe22gE^{6&yo0(#@L9 z(;ebO*NroSr|1A;H^^B4$&fW7D%>fX=&ZA}z>H4iBnnCD2DL#fAxc>XFUanG!a~}0 z#40MX$@#9|XYR1hWKu8~Qr-?mQWApnf~h>*Q5(=T4H1JydE|;Y;e02t?h;F+ha$Cb zoz2|oo{>zTUSdfB$a2DB#9R<0&S43oyEs@mX*e&7M?2C4XCPF;6=;BKHUuV$$rX|b zuCNlr0Oq0OxxtoN$XAS*0;V+bseic8NI<|X)3w7Cp<<{soJBU@3xLI`%QW~o9Tj1u zhdeQlY^tE{?3G8|xJ*<=iKPe&L!9`VJ3hE?7RSvIOR(f1xuC5t9ton}XAvNlFr|ej z?2^EzyskLJ9cRv?Jdz;i1x0uemv(x@hSNrR@{?^f{6-+vm{PrnXpS#gu^K}8^G zsRpb8SWfJ-iaWHOZ{Jj%!Rc2~_epN(UQA$T^=RA#TRHy;UIJdoM?ycz;!%j6!e!zW zfYw4>jw<{12bltKY;M<+sw1tLt1yUR4ge2W34M?9m^zXh;UV{;FNk&Ky_BtdPf9d1 zqOe0uj+nUa;ihZ^*1{uUd_Ow5RoW16>?LH2AHKoIR~o%e9LH~K8!kW%Hvnw$LtZT? zB_f_ZRLZnEom@-hUQejs)x({77~;{2DWZW4aWbjaR-Mxt`Bh!6jlSL5A?G@023fY> z1MJt#Dkj`6+F_^ahd$;Y#mO;$EaokoC)l)rTJkPv$0d2#aDeasaCW3R2gxI`AgI_g zRhPx4@^T7%o$Fo=eK{OiTZB?^oGD-Ut-sbfnl^pa9F)Fd@0gQ=NVP4Jg&c4AgO4SN zFzOmxB!!dDM#-Ji0=_=pbCz3QOV1ubBg8)@uEpgld%m zI&0fDr^ObcUaYH^z-*iZA(TfB7m;m~UUZ@%?0CL+w8VYw-!l(id+(8h0>IP(G$MlD zfi!FXws+p!&F3T5j6BpA&e5Pd(ogND2&`ZB3(+0Sv4_P#J*>d>EBFQ2C~^!&CIS=*c4_ z01xZk=ys!lxZMqo+MfR=G3I7`KogPCIB4KC4(eECQ~1I%bg3QRXD`(UVZ{j2wF9p; zbehnBal6vLDVKaF?c+>?#(W)RTf0RvHfKiT;kG#OmAVG)7$AUV1JM{{Qyk)d+WjR! z;D`i26l&C*I*oBJ_4!I)K6V;EshLAS#jD>KwzY{X$Mc+ryd>=Sg|`tvxx0PpL}lLp za2$o9Y1Jrf_M8EyWlul3f_QSi%oQey6S25&VHDWe(}QYAmx+fkDIm1LrpbZ~ZGM zAe@hCTtS#B1u)$Ltbn2bmRvllh>n0H?sSNC3H}8toJq6-IT~cgn{vunO>tHlAt&d1 z^ldZxONcw#zXr!ZNRt1(Gt(wxWpQ$`&9QiWp$UcX6iULIgNb z2GP5dfTUF(G2%j5;VET5C}Y%wqF{lz14d!e@S^OMi=cF}xRDzvJ8?>{#>2O$Or%0* zqaeXbX4!IezqQNs9DZvNm%Zj0M`74Y#eZ4NQ?atA61wBLn0mwzxNhz^r@(e+QskYw z(U=6twNlf<2#h3LH<&wfWOGaafUW#5o==hPWX`*}zvDz4)~2aha9ltLI!@!$SPs}7 z6icc}Y~({O!?Mf%C7n=DO5<4452UeA zIK6S$mUsGHlID=c9q6=Cw9-MfPhd6T2-xU&^!LaCF>(s@cG}E&)7rN)r$&3t93$=D zN0o0!S6}kEb?VOS<(B4Vm&ICJr*C(-HO7l0=^Ugj|j%_`L3N~(`JPEUc$iP$fKG)B~ZVSDGx%(2oE z^2lM*FV4tF?fcpGwXZYYk6}dkcX75HdGmrON8@Vyephd3&p1X5p&HFDa7JNXqw!z7 zLu>pz8KZ}vd-C;`nnTVBvk+?0kiP@2I3U)}e{@FLZlEdz!_Y)4aP}9+9(mFsV8W1X z-`8jn+XU^5S`n$`Z+CNFjpfvR+xEd?G&=?nf+3WO`g9G)j5gTgC|4=|cQCLEhVS?E zw7`G2@mi@4INsV-3Ob+h zoVITosiCsA<@)ybw~bWv1gKvD7Vb>5d_Pzewdun@69utIQxAOZJY1$=A<-VY!pq>>=WC>T)9ENnt7yv(b13q6dHLzMiD?0jkT14#SCZV zi9HQiUt>`qEf5VbQaZulifsl96)O@Wt5QP1h%Ta7ka?<^q*g4Flv#$_R##RzPsy=D zJcisOwKmIzP98d=v$&e-cpnC)j?|ND5Hp0v5&#v)I1q@PxTc=E#S};AD;+ zC59z~M!wQfUaLC^Bao6T{#>bc=}El&Y5@wU{3m22Q#v!!6>`#`Z~%q{0iG*J?&yU@ zd1>xN^C-7S8K`?99Ja-21&PT@Nl|1)u?$Js0}%@rOAsvXIA5zQima@LwQ4~|!jip&uh1A32-iE9vv&48XPYFwz5mHu+MU{kUD2$e{8ZjYY1+BAg zGMns9tNgv>yHY#(P^MF?6-|3T>j| zMOOLGKh0R>ucnoEGOp?pjows8E!edcvfWjXfn37)v&)KB{)gPN%A49gZ4Ynjz&#vM zDe!OV0agVJ@7ie$@b6J7S#sb>7c-a--kS=-V+#F}j$q&}*x1+v)F}q1x)Q z+bdo7!s2qbY`Q9YkD$$345hA5&~4~c(&!zi`oUhmY;{SiI@b0`=z5`qch89IXv3Oz z+c~e8kj;&Cjx2PzOWmjKL)Bvqh;&zxP|LQpv1WY)Q50ZoUyU3w?eC-C+P?MQwf7y_ zp(AI_sI7huM)%J8F>+M&V`_E6-kzK}rZ&AXUCiHTUM{K}RX%jN2BT+Z&Z3!f%FpyX zO2*&l&!|T@0urtcK99?Hzmn^TL3jnI#tnkFEeFf-FEngl)KK=;V8{Yn71jXav?(}@ zXo#?{yxX7-rqxRdyo;gx_hsSKp{rG22 zrCEP!8Q;Nt_2Y?(6c?8>_!@rfMvA#2QvtUSr!I4+*=~$LWxD-lZ|69iHzAyl=CEI< zk<-iqaM#9tqrhnd{D9H)W89^jT_`L2^=sE)L>n!bbr{*giLVAizh6S2Z$@$#B{88r zziAVI0@se^viQmyx9@xY+WtG*AN+u-c(saV z?9WZ9s?rK5id2}6aZZM^IzVj#pa!+%*fOpVN^zF}4I@oL1J0NVVQ@f0V+ee~4Wq*% z#PObrFtKg11VzG)&{@1dkfE%)V**XYvmx#e zBZ4#sZUUWc2^o+Kb>xKxro7x-{rt-a6n&GB@iG@XGX|m$HEato}Azy)FfuO zMF&7w`6%!_M5=gBIl}^fWa0N}V2(Wu3lednG@>HtykXXXKvdl5_S6+sXcFYih%K>% zlmlBUBjqqi=x~7>M~v=CJhe1Bc zRkjjSQJ~o!Ra<4I)j;Z4Ji-%-tF+Mxu}l`GaaduQRbxdW$pR5#y%2MO8!kDxs^SXS z;&j}{gbY;&m38O!mC|vz%_8YlOo_K6Oa%%@6Qg0cauC4@zzK@g6j@F@^-h3ct?3R> zI$9D0n)BvFF-BoU1vE{-2`sU^x}mwAS3o#tWH_7~N!;V=#%E3fXsM}@s-$P}C_!!u zkCGFnU8*XI7CL)u;fZ4Qy;}R|JZjn0<*EE{czMgKH-5b7I_D`h<*XMyP zF*1hRwIRyeH=n%g59ob9XI?95qvNAuC{v9`@y*Xf|2qw6+(yyq8{-wKd(ay??RH@1dJl$+CT zaL+5eK7uMpAds9el$MD8QZYBkT8x5TNX=R(z;j~#cMD^&O-tG_RK6$-!!3``>UY4N zU}nsrWvU}1qb2^nJa*)ZjoO}FtufqxchruVIVkB^AoRkizh-UUCJ6ez^+w!?$?p0h z&53&37xcn2yy9pNd4}U?-#ZFv8*Qxq`_USW4E%nhmQv6<{@Uku#<7`);7euby#SB) zM>H{Fpgld0ejknRf;qMfU$ALfxTN`hzWb}+Up+n63Gp=_^>b6!8Y6K)0HZP8rj$(u ziNE4VfveNw*g^x>Pcz0rRs)WTe`xZFqm-y{As6ZkX5r=OFNpzg2Pp6Kt{ zeQ&XwBWk8e4T~dapjM+2;VE>$=)!26dZ0lyw!>IrNowDN4!#G3Gr{8*l}tfhio9#3Mvf5-ba&I?AeyJdr|hW;epK(csp^N>3FB zrf|%b5+pJIgjhHRm6PMVgu+6=%ffR;pBuvBB4q#xYQU9;q8H0pL8n5JNEst$3=wA3 zF?|SFtVRdhz2v1UEg|KE)l(2)z{%4-3<6}2jFAK@OfSkgRb||Af(mdQSVT!+mSKgd zaHPKlFb6re1k0pv6;IKy6P6@kw805pK!!lxMlefT95YE6^-(0jvLLI2%YtYuqMnwS z;Go?G$y!r##PM+=N-X$a!WCASV;UG8d}>HZYuLYe8W52zvPTATz6?y4S{ZzTlSY&( z_Y4idf&~h}31`c6K#AaLxnk8cV=A8}xWmgMdwfo%I5>P}-vZcKf_I64kvd!>H3f=# zv?=j%pym-mtQ2NR{qP~xs6&8hc3$+Up7=-goV663&*yqD2w}ugq|M%@3--Kr#9v$E z|1QQ++|x!u_qxKU{Ug4A(O*xsf^k2@ZzJ7vCx5WX%3hY;rc<=?7TvuwJ*{uE*BM5K zcr$s~8??aS5Ch{i9N8Vco-oqgs2qu)_qM)$UM z+P-f#q=}Ip*}i$CB93(Cqdv~`$-CGKqxJ3k&_C1LQkQ`O99d6yqjqNN(Ch7eUvIlE z=6s-MkKQM;Gb8FVGu?Q!PW@gunv+p~+wTLnD|saI$ey_y5A*|t_I-_R8@7w9t=0A$ zY=>8LJy{A;@J*p23S-wx@>3hnW$tR^NQc%nVA7JBh>gj z3Wpjwc18?&#-Lk5A(&dac;?V(Yv$mt2ItXcI=XMR;YQE4-|vVrJm@@(8}?%-H2ogK z`sI9?Teva*TGw*do{*=tSTb#U zwF=opko0pLe~+BKw<)l<36-|p*>`>Wx9x|Eb@h3ZZcK6Fs?Hza&z6cy5}?LH$Gyt} z5mZ%P1a45HfZiK+ZLMU`O!w{9+fGc;fsvGKyBotxf&dH-}Lh-7gw@6HP z5+GwC_Kz5l>0k;ofk3DWG$|tOAv;coh#?CrkF6%2&P6AQf?%*&2;95c+Ps(1QCS3M zPeKb!pkx3RpeR5b80UkM=|lp;tKjp)G@-y) zw)*#uWWtf2+&??giFcRCmNwhzR$u7*exV~y=CW<49Ye3j_gBAW z{ef=#++E~h|DL0DJNn%BdnW5gW9ZwO>4%|L9Yy>1`ea)g-XJfbk1AeVGEvm<76(9VRwW%OpYfK_qh1`oY$oHhs7)G~as zGSt?6aD^w83iAjS0xf_8h5_!ePul|a3w9Tx>Y0Ch*FQHRpw?I%ZJhad$3!}c66v2| z6^Kjb)(dD=^?YV$C;{0&>C0%GBLX}c=SV=7Qfi-i1~6k}l?mR$PI{jarB)2LTDM# zi@Dj}88NqAU-wgV!Q^&cCgem|nAQ6DbG38~6!Pa{WT+FdolJO1ZV2%Gma`52Cv zx{7(E{B{C;bdC1x?)QUtj;@gc9{)-xHQjz5@rGHx?(T13J7sqsLIXKo!PE8lq7-0} z1!qyL#g!~GgmaEdz!O*zU)zXv2)~#sF~mZt9blA921HrCr-B6fJ0uM2l-;ocK#8TX zq>Q2h#fl_`6QZ(FBHqWMTR)K@D!5WWvv?W~9S#dJk`yrEgY#0H-jl%{28Jl#DWF3@ zKttOgj=Q2B9^~M=QO?{kAXGWu$&We!rdXLqH7w3oPRjTR6V55vrX|XlY)s8jO-KQB zzPPg)Oo1u>y`kU+MqCjyPbI;2a_+#kf109wdnQbJNjwTL_8veTy*JI9h3DaF>*l{BvLQn4IJ zhi7gEg3}5B@n{cskccu(?S`i zlALZN1GSbI*MZ^O4yG)w|8cQk;=ID2NkR~0u|j8*I|qZysJap?V5*|gVOsgVFd9j< zaKGmSEunup;pFVALKK{JEp>lxVpI#Kvvy|BjrKIZ3qiBD0owldV?TDH z#AlZaKKz-ke>o3KW$vc!*7a-q!2dckNg_QDTR(-M@BsX9<|DtJJOv2=T*w!rfDY4GI3WTEO|}rNo>+QA^oV(163C@PVsvl(-hO|?RObYF*+zR`j6Mvp{@$UG zYOL51)2SQJ6_c4Dn)UB!d@VM~NVr}IzhE3{b)DP3w{yK?bU>p?qn-?n-VMyd@kUC? zT{dq&ukClEYxsU=^1UGJ=X|DI%oMr4f9<^^8oh0Q+{S#vc8N6@wKr1g+CJCckH*;T zf$H?}fBF*avv>9P7_6y;^8{D4W#*+ZQMvK1FBabRV?~8SB2z~*h9hOL|J=`;hiOc& z8Lyl1nqV=#qWVhtZBM7|Jt>^ee*Vrwcdyoxk~>67#a2oiBoy5w2Bad6^C9kh@%LzA zbcC!fcTz1aFHyZ?$&k}EOW3Evvc8fX(}d9|W-DNfq_C9m@Udcjcm>!!01F@r`852%}AXt5xOSSaa`z#$V-Mfy(t(~ zQ^c^QjHR%e+^W=v2(TRQ$qp@=M=aDTPy; zu8#!4*_{iL3ygKC5e`4TL%ot8b+lj#8daqr4peN6tO>^@+!5t~#t_c2xe~j?J&9$! zBN{6?UeTr=L>x=MrWN^%OetlON5cSs zl@+!SldveGx#}~<^?>cu(6=a?OJ~MNKkBcZ-|l{EjFSHM7SCm*uk>xi_jfToj(+RG z@NaAHF7Gk3;FOT=zP)@3xf0{NJZ$Ur&{=<4`PAySBiTFEX_|K*8K|Q%?__Q_PcxZ) zWQQE-tE0IY-8Y(>nGG@eyMM=#K6}*n(eJZ&UEmvb_o=GyFY>lzmxoNFamVM`+TNvq z{nfX7+x+t()IB%T$!0V-v!mnLmiA|RXmqvTZ}!hv*K6DDqri`NV*rQ?;u*M}J$G=DXk zA05yGk;Of6#rL-vGA*&y#W1UzadfKNw>J`om-8^++`In3sGx*G(~LLzTc7vHm)ise z0G=r3x#4ugBuC>rV(ufM)<#VnF`B;raZlv(U$i@6K5aWA=F>kndVk9#+J3ir)fZ#v z)@?SnU0_x~YLlR;x>7WQOcOF8x z;UCdOUP`(eI521du2RMV;KmGCZ(w!@2E z^b7p^eIIxp@BFTB$D{B17Cd_4ZFuUzW1LQgVob%+Od~p#wk$o`)UFPeCz{yjl{YIu-$ndD&z`#RXBJ zL7p5tWijzI5U=wh0=QE{3zgd?Es&F-tT!G>aEcixEqU8a%K?&0`7 z20%l{Aw5{mFpmT>=W$VhEZ4Eqsgx`+T_|Ud-Z2O=k`{<$q?`#}46tgLc*+ho+ENwA z?gL;Gho6c)ra(xy`@^#*q{wy|SP0KK-Yqo!j0y z`mMDmMs`O(_P#&056+M3vjaUS{vJiX9QCpNem3``c^v6W@mrGQDU-*vGt#~K{XOCp zM|@`Y9@opI(=RXkLMdVP%A)gUbFkglw1I8^kNVxW)zil8x4uuiwM-rz-08o2`rG7! zcuI6*89mYU5k9%!Pn!wF-Dm6#q4;gq z*3m}0%f{NxQFzZV-U$6h=?UQ2nDY4^ynnY@yZ2wVGaiRwJQtf{G2a-Y_w4%T3faXw z&4y7heSb%IA)~b&jk90p*|YqDGn~5bqY7A@O!sZqEHcB607ooIJq95#s7Z#UF!Jz+E$SKwiMi_mmcw5#}tIX`CriyRuY% z<+}jp5loBY0j;_j_C*}1*H~(NK?3ZILP~_0JHR{wO;zcX6aaw_wza*`v7#@wKQcVh_4{>d=XW!^UGDl=MzlH7 z<&NGR`p@j1QF|jBWP5;otA5|D>xJ!dhdn*hi;k|{{7w41^|5JJq^7yY^X+wH+w^oi zqS3aU-d@`DDyehW-rK)_H0IG>0>)4smu)qUG1pd7*XBsiY<1|~7916BY2VrIubA~J zmxI_7Ra4n=j5j{1z>=3!-~8~Un+dgBlqbZ1+1fH!7{pedF!(8&S)l-QKwdt_$NFk8 zIp>`drd_O&XS!$HqsBzGxb1KK)jx9^09eIFiFKU{>+QRlBW2$(Dnp+U zr- zMh0(x|Blhc=Z=OfZ3dSA|K?Ms1FM+bMGnVu^$K+$q{3bY?Y}R7ZTV{VydNL|RV@0^b5m z2~lO5iU?MhCt?CgQ5xDH;xtrJU0ad`jo+jOM#*?--~?D0dU*lz6`(HwG?5|3h>~J7 zJYRVEWt^9{;8*{FKZ8H`TRsyXT7j?rU%nFWe%o7-)`xidHLt~u6lmrI{X4M`>F&H$_>|WJa z9Z3uY1pzphPyoxwNLbYqNRr1NiNDtp)B@yGVM=@(^+TBqI-ZIWXNP(Yok%pygEtA( z&L~1)*cE3$7T8)?ayw@fD6ABqDDw3ckktXb6H8*7da6=HNpXB-y@BKt=e?Lm7a5%$ zmF@sm%~7mkIGI3j24J4fwL1S66eK{1&O*jW%ojz1$^uIXW@pNYC<`s>@IIa<#+)b^ z3?+FK2$F+Pubv*}jzeYYoqBn6w#WI6)FM#~Dn8H3J|zguSVlTnhzU@X4j`teG0jkom7L5cG6|h} znn3=e;(X92+ThqTY`p3rTEJ>rE)&F4w@d&@P%j;SauKthSLcJ9gcAoe4siKC61nBw z!)VpSNGNk)@%~i#!l*EF+#~YAC|0pO07mdNhYD>UdilANL(zWw?ig*{H*om0<87~z z0X4dBWH25%64Yfu=v&)!z7}qn)heMLJ~%ZNU02$)%l-S>fBW?u;SL_j>i*u*cjiW2 zt4p`~+YBgowibQgcJCLd?;4G}U61yCyE)|4Z8{t_y>E22y84m*GMgg<>Oq;z!Ty zp6?jbY=gD!_USD<1`G^|svTP&e%hk7&zRY$e|4PHk1rWOclFQGaY43gcIl}Ora4^` z*{{K9UfcJINX3L1-PhjV_VtMAkLD!CHfyJjtrtdZA1s917A8AVhPDU%y{;I9V%+w3 zmKs<8ZiK5C>M8PQ{B3{QF~>MZ_l$&dT&)rs!x6~k#58TyQ*LP;EMvtdk*VzV58@q7 z8zW}g(q1TNkj*(L;*K<*bE|D*+W*;m+VQs>I;M*Bz88W=4#bh-(>^;>kVe8ip6ls- zSFI|li40EF`gW_)Vc4CJwBv~9`hJHpB%mP@E2+ka$YL(=+&C}(F}XnpaiM4qMw;BP zGR2awVE{_G0ZS9Nv=~kibKr*rlocfr=i%BNP)UHI1&{3+e9`atWBB90r>uDS;WhM>uwH#E zvYzqa@q1yiKu@nizV|BF&4;nr%Q&lp`@%fRZ{hfKg`@>Hvf$6<1qr7rM@{MAqpM``IH*En6D-5LrBAsz zACbtO!lVMnlOeWDDgto_h`?aU)lVVzN($PvkOo$ zh}tnRXxb_x3HG{R?1PgCiaTC%N_3!=Ri`uDcZj2A?|dfKV&R~sU?6!?e6xD%=um0&Ruw7`O0U{OxlW`xX?C7wcEGSU8TrK6+*M z&IBswf?9h0g6XHreR=V@nZ6y3pu75%q``B&z}b|Iju-g<2ENIzWj9b-KDPULK(n)} zpSRsJ-hRI?X2S4@Pxb5Aw>!G0pR7&*X51V+b*7Gz~QNbx*}mtK4cKk;+E0Ds`W{Q3BXw?B{H z_-lV1{?*rh6|UqS?mhJyEcc(ra{Vg2^r1)itN-;M!|(pjeiwe;M*;uAZ~YH|H~bX5 zaI@0BOAay$p3Fvco0GTyM~oPQr`(u04h7S%B+>X@0j6;zR)I-rp|i;pC|hKgy0b!1 zkTi^Zj#a@@z~^KY)K|`#Hd^c+rsHv?3@v$DQAvH&RwGFX;7X+pN8I#eQpCqVzq zX`F{~2G_E@Dv+<2r+zDxsb=u^05B7eQgX+LFinT)J_*VDL0X^_uBbsR%1RfHJOCht z0L)_UzC%46SRwR+7%O5e0#A+Nej!GZ>np|xE=k^s0%i%4NHbN%P#~h2)FPIYPO0q9 zL{1N@FPSJzS9nYr%fPE57xIQ;z~fTfDeH1A$quWq<#nTLs5`peR3nJ}_o+Sz7aP@} z(%t<6VdO_E+Xi~o$dHldC9R&=>jAy|Z@)Xz7iW5FJ1=P<-)DyINcS+a%ZTEM*xWtq z8p&-kwjIMvmm6K9F|=*;|BmGJtSw-EST?%1xp8RBAN6n8Omo0C(pP5sV@heL_w2hk zI8^eerYN*CvUNr}OMSO&`@$NXcy@n3OLwu=`m5bXvu8)+4*Q0-)A9U_`cc~zxE`?G z(+2=Z$m5Pz%=+8U^-MP&^>?HX_Vd&8p#J^Q|ENGmT^H2>GqT@jpGR}o-^=gg0E<_W zHoK;M27s~XgYeZ3mG=A2(_49{f80P0$FoMk3JMt{$|qitJUQ`E5BsRA-!H9jmX2Pm}*In8P8k;Ffaj9cY>=-S4PGArsPOx1J=4Cr{gpIT* z7pf3chn0--p?3^2B0X&XQ+%G3ckiDEJOtLf-=NXksK1r@MyySxhZxOh-zIOP8N!S{ zM}2Ca(VD^`mFM(ycbj4`?a$`H4G>f{4Jq4mK*Nie!ot z>%N0kR>3fU+wW5?WT+av#6^*ZfK>0KWVW{WrMz z?r+0uU;EKOW~H6QfRq*T)HBe0jeqdh{}O)A|KaoT>%Qa{;wwJ)^YQ+_`OSFsi4GmJ z1*;W^r|*~nP#UHQMu?j*USUY$2Cx<4-GBzCc`8*rOUe>tW2GFXClywxk*(^DGj~Q8 zK%qh~;zfjTCLpk{sGtbgAE9y~;OFEK3+9G7lF{h1#Z#3OnE@ic4>D8~jE6~BOMwVe zyrMFZI4%gh@8L8c^e+38MHr4B|2rO+_hWtIrz5@PQ*ipIx8TKhy$w&l=@aqd3y*bMECUc$AhHQ_n0xlOU-=lGIYuDl8Elds@`@E*6-1S#bbJ z3B?3!q|zBnP%~1JpwQ|VNh0c1k_6`af)Op*>D+;eMFCp?<4LDFpFXcEabPMVGz891 zt6Pk&kuKW*)`Hv5^uO)iEwW>zkHuxGuv!M4S1Dz8z*J?pxbucT@a71RFn9gPW&e9) zY{ct(eRMR&(cc%w_dr)0wR2%a4`ip+K%38(G_@a=yb_mJsh{WIVI51Q?KvzpL-ga&3&); zAMO9qJ9>NWa4wpAM_4P;@k`QG*K4r?%@k(o_()ZUR^*xz?Fk990g%l(v%p6&ZQ z>-Wqa^>4rk)Xf3IHE222&Ibc*vp`cgy^v7w0ciox|P*0sb zF>mK=J7RdVP1^o_q!)%*Pr+cvFz!VcJsf3nxwOBQ`~>9f!EGd6#iU_&A?yJn`K% z6x6W=db$}X5^Xyp;nOPwb>5oyUhoB6(m)+ooJKnMNf1#X0)Z5^yZU{i3bO(@UJN{{f;b|c!lcIEPOQM9rmUVLbo`vx z8@%zyeF}cwFZkK`y6-;Yo&V(PasA+FU`g(XSYfvDxOBS0!)HH?ulxI7i7)z+Ux?56 z^iRcC|IPbQybQIIpNJ^&KGbnqqGX{0SrU>MR!i=9D8xg_bnF2OGsIu%4jpK*lUIimV`b#P_8CAe8e(wYJ7jFTBF>=x{D*y6ykrR3~0d` zcrd25q6uY>q9m?q^7c$vc3NsAPJ+il!6ZW*uo#{ywIx9%Jbi6Aou9?J7Kkmt`aB+_ zm+}0wAHZpSjL-SGpMV#>=|i~x(#Jqv|3os1TuRI+_SRyQfg;I*?CC`TWW6xCt#T_Es}Gqe*B=?;4x22373$!? z#qoXw;vqDod4XAipy5_WQ0x^ZAgyhbp)hky?a%Z9f zMGDjkvLu`#Sj}l#;1N<8YAgA6G8A{PCUN~JajzFMcjnMBRE*d?OYkn?J`0fL;xaD< zSi7^ds9FX9IVZ1jLea4eN?UGV*K4WM)%g=oB7}FkvfOHxIQunM>_pXx0>o^oji|! zN9*5Tqq&?J!bknttu@Buo$08z8R@gDpS!#2!0o-2Zm_9Is^Pr9)MfS^haW_Z@jd%} zF)$!jm4-G07 zq`S`MX7rAJo_k&wQGqkag}YosJ6k+x!6ztu8Ce9D#Ldc7^&^RPM5>PWq}LNYt*R@~ zdVzcp9lL8c694tE^2UHWa(v7d>ge}=Gq-&iJwI}e%&yk(Y@cuco;njcW49ke+xI$0 z_4~9V;tRvo%x$qtKqfPu;(N+WE@0)TvVw#l>x;@y2v2KC{HKj0SNc_Ll?F#_A)4|$z=|1=Uz<5u>g?r2A z+P+`RL-XDlADhuf|64mhZJP=EzO;Sl+Z+iyb4zB%UuS!`S0-nIbhj@cfGLg0L=aUI zVM$-dWT2CV##PSlB#LMb5l>U0sY(n8=UK@C8eJJF2wq%(0?7FcRipDDDI^QD03ZGO z*WpcXIN@LXoA&@OJcsM6jAFoQg;6NTScMK1Nh_9n_we3#{~%s`1ia==9|b&k3THc` zz)-|s#)JyXsmeryV{HJC0xayguPK~=QNT0xLLB5Z(OCtipeSg3t{^5!LPA!*4@_}_ zJ8mEu37Msq9njQ$GO)y0qt)17(}W}$NivFqlV(d>xoR`V3LzfYQo#QJ0;USw>E$J> z6)gX3DG=2uAI#`r17OGyOYUIsXboY=u>d&309|pF40x1qewd+lLRudqVZrr1!8_mk zL-^-^@sH!Dzv_&S|Jc{#lYjg(c+Gpi4nOce{Z72`-Xr{*zxMm_@y~t}KJL?hE?)PV zPrz&5_AU6-*Sw66e)C7+-kR|xzxtQqt>5;y@M^q-&-tBQK`pUn6AO7k;hu`>Hek;E0xBp)JZ~x0*!`J_XKZ1YvH~klQ%YX7`@OS>s-@!ln zfBa|oNpE}#U-V_a8E^R|zZReLN4^60f5y+pU-?7-3EuhDe-2;t%YP|8_t*b+Joo4k z%rRXQ1vh2IS&IDSJK08iFA{lB6_mCPRv%hB$N%@c=H~|oe6YzwhWm_!;L4M5~9N4fLyb@J{A+b~NG$6P`N5K>% z1lE(mz;fh83=n1dnuteunNNd(DMXn#Fw)=$D#snsKa3KKs4yzX@qImjf^nZ1kW`o! zsp_TB)s49*Cb2)T;`3lsSr|ZJ=-U=CGrNv-hRR$0An7j8x7UpCx9`&6#o@0X7%?*g zbo9BG=RHF_ZOoy?UK^)XrU;9sMNP-Y*q7N&B*o#RL}q?NN}wyi~^Yl$aJBww-{1Jo-g6lGcx z=Ms-tcj_dh|p1(4%MZH~;qkfOmZRH{kVed;^~Q z;D_VL_kP<~Lhj$kzx>AU#CyK`Tk*wT{CRjOzY5>_4e!Rkc>53GEw6et zUU%~jJpB#72M^x;&G^^vy~aQL+HZy2ybquHmMell!*DV{&Wf_eNgmfaQh2ivB>H4R zydnbtMv=KGi6o40DhVha?N!XMngO!FWFh@|b)zWxOza+l?y9HQM4g~Dse5rUR0JjP zgrxZX22={2aGr7|R*({~EWWQq+zGeBDwJ^Gw~z;%z;`C2K0wDL?^FXIEZ;4r1peJI zDLO|~0uPPRz6jhU4S7nZQ$oQaq*d<;{8iW-pNtsOQYt=E3Xv=y8U?iHE-LV^>3yt9O)~4JAKFZ7@zY`@Vv`nkKf&wM=Ck8P%Z^>f$W z+ph-?$#F4veSb#t){pmSeC_u$J8(81?dPdoa)d#8fZ$|1ofei&pm8DfH;#Ef*=_pKMbihHHNL;ii0c~MJvSqu zena=fKkMU2NKY5KV_dB>YP3OTLSrE<> zf#?RB4BpvZ{harV@V3p_-V@LFOf7yJ^}jWGM^Qihv%9hSUWq1J$5_u)XZT2m?PE_D z7wa&fqocWQf3JP@%{-*ZMtJN5hd6K0F*9$U>G#~OFPnoMN;cL7AKrh)a2%u%~DMaYk%9HI>Jxn0W)G=pft{O7{gwaj+k1C6<`GyGnf`u5AsSsk_<@$ z$AL~3Isr%*h8sqr^0|&gSdu8C9b_Q@ zEm(G2Vb#eaX2_D<0pjAyF*@J?!;*YvQ~+^&B?)?ttx#&jK}qK2hy_c|z{;FvUEJ)Y zho?GwGD}0Dc#234Tn-e7W51jM2SHXW9x0;`6r)2$lHi04H5%{mbr(o2yKKhjhb(jf zFyfP?!ILSj?%l_`|MlDP9e?Y;#+Uw@UysMv&)~cM!T*2{zxAu}@@M~Syzd?V0`6quAKl2xT8Q%8v319m^{t5i7FZ@sO9rxdiZ~MwWjfda$4{`sw z?+4a`ulb7q7uNHO_}Rbax8YO&-QNy9zl`tr^S>9L_U32sNx%KS!mFRj_?Q3SFXOxa z!QaIBxewvq>wgTs;5YmceEiS)#dzsG@5DF!g+Gj^t|L7xB1m%uATFs?a9#QaD6>~D zt*%D*K~7B1iAbXx6Br6|5IWEoUm%as)nnjag&dt)ARQwurA!wYn0wlRF$0)wqV}2ozLwzoXJ*1H z{_gvAw9$_Q=7{l(t`URm-!CGy6fY18@G&#pgqLgbx7;5MTLP7~avA2yTdW$!+5y2` zC<0**-l8<@jL-oyy317=!UQ01D2TkA<__wlGoD8ZQj9&6ox9TLtl$3HSk#(VKN4cR zmsXHKc75;rd?@UIZ5@3sdgsKZSa0psyjk1aO{4MMM(LF(@n@zT)) zA=>YWe&4kU!2X>)L64l}^UV!Q9%rcz6hVgQ3K&q76;F~o*ECM9Q3&ZQG&mKCl8qW8k%)gwOlpe-GdP67X&R`0pVv1RD+K38WwqSOZY46|w*j+rn6a7nT@( zAYMPvd>zE+91&%uNSW9ltddI$Iw5TioSH0UyGl@MfD}?^5yOotfsP$-L>xg~k`P-5 zf^2XeM_!!N>U^1@rlByVfU7`w9(RNWmk`G{@%Kx12ak6{Yk1dp{&SRK_`&b}Zk(0{U;W>GIbM4CMZEv*-;Sq0`YZ6_%a8E>M=!!o zC!E(6Ccszyss94&%P-*@|IVMm`TR1T%2#;snm6D_KKvmdt@yxOzX{KN_&I$2yT2PH zUE%va^nSemd%hEoP4M&w|1G}uFZ^M=d}Fx(^sAB0ptz5BedAZ*(ZBsJJbLj({NOvk z8&ALHwUEE~8?ZkA5`OUe-ifQ_8V_FoaS%~_@7MfEeBe9&XT10Oe*hnP?|X3n!K+cU zG@dn&WD0&@8$Z`X&|(v1Ir6$6Ilqd8EWpWAWJ+1dV}&|b_UIOXkulj*(bU!&Nyg|J ztIkW&>}zfuub>uJaF&T|xjLT-ZtGDqNbXA&kM2zFM2g&bWp$@2>2XFsNPUZR~IBPyf?(q7*m^>Jo9-L~$td-wC&&4C{gjDi7f;~jDTZSWoa_wCsF z^4hIK)uPfK0EEsda>+*;JHwj8^e4TZI07b^ysK-Vx>>4WnL)JfdMgU2voZm zB(SfF)Dl9wV6zQ;v>|T$t|zv>&6!X*V$dVuHeyOM20rTRFz+^U=9+%B*XUGXv_2!j zQO6w{Nj>_Y1Hh_%6bF1vLfn8sn_+N?$j(sjH|2~mkLIzxW@{9*bsOqDfD7k^n#F;?2~fwSJoQJ%V`lW+3ZEmM)ZY6_ zs#DyyUhQ}Ny)&f@4G%Z)ggPMsmWb0r)KzGqahXIRj)9_HA&U+bMPm2_G74A;W}zV@ zlrc#K$nM~^L@-=&91;UDTmV=xKolu05F~unU;m5v<^SH7;P?LSUxnZCo!^D$-u4x^ z_tXnG<;)FVfEOOE!18hU!r%6P#~1(nH{cKdKfewi`qr<(Ywthfr}I8O6PRu(9ttW) z8A2daBnJ{E5UL+7(3#}2lp8ubm~Md-K}13n0ZtCi3oC9=(;?#pw&*}nROgSHI=vc7 zVl^)*R*hIiEIkKXl8EONs0 zSed(>GURj*&p&*O``7pI+y_34EWl&A!3RI^9I_bB%Ly;4;k0Bt`~GLKw-OC}AS@`4vX{4BobhrbaS3r^P$@Y3@y;d{R2Td+vR)zvj56PZZO z@I&AG1Ni>8{~M&`gsTS+u&xFHBTE=5Mc0Q4agbP+nKX0;026njDY9gbU|AuiC?>G% zYh?*c>6zJIc`t_MCty58NseIz^EzG$k_x-5uCDN1%U_Y&>^j8?0Ydt zUQmjIE(=RWn|kU*b`4I_CLck3n^R_lRq24&1#HU_BY;v$kTZBPY>HA0C!yoYlFMG> zh+_}t96XiZh_|m&%@POgN5wfZRpj7R9yJr7NiC0S4+AS-vrBzuWB{0%SBB`|skJQkZfo2Q*sk5PsOr zb17vw{wJZUSwBZ~-#V~FWH(`E(PucenYmt1M-BVgYPe5!J$VXJjDOdIO$iVLD*R>u zwsTgE3BZ+$MhK;0Qvd??_y zFF52R+t^JQDvp`6qrG%LmVWI<`*pV#nD42U!AXkeC&I%}oy@&*(f->D&YFJJ^tu1L zS7v8QLVvYmzD)sY+Z*j0^5mv(2!LGz;Hna%A{iqhiYZc3q)b3kh_du?jTVUZ18>C* zdl*DYjZDhPfV472DbX>3vI5SlvH(OSDY$?CX}tBHelz~qfBAdx<$wB*;pPAN%kd}v zz)!&Q-}Ddh=-Gb@=nZiF0Qi)jh+q2~|1bDGzu{ByRbT%u{H;IvyKvuDAYDVnumDJA z5Cv8U&R&UVp@|1eO!rx_LKhNz(5opcAsGs^012$@BF4%_2J{un!C#c`E>2kR_xQwd4*)) z^wfO_7C;FAz1)95XIRb+?HiV>E1a&bwlt$~5GXv)Tq|~tsgFGpkfOR2se~u9YINeI zjA90j11op3B@gK%eo+83o5w~8#8`sd)UaykW1h-qu2eeBA@RNL4uqJXmZCP&N0J1| z31%y@Bvy;ig0;|L6qU)A1n3Gn1(P606$_U|D?Ft~m=*{tD9$Ug2vh}UO9UnM($P#} z5>965kjf~ntjY>xNx0XO)3GIZKBKQ4_f7(xSvQYYlyyaxdw^_dM@W~vbL0fSi!l)L zL2Bd|c6v~II@`XlzBA;p(7_fUy1l_oXR~Yv6wUi@)1yUVzhCnD_H)cZ@8BOf{rmap z+v|1CU0*smcBFT;-;KU+`#rjDGur$2-{rafzV_kH$Z&xWxs88GP;j~A!r^3Dp zZHbY+5g@?hs@rgyZo57r3>a$+Z!t&7cO`^_NQl!F5kK{cXDxEiFDz&@>P2OoBcmYx zJ|du=iTBR~mtOE!avd3(@!ipeY5O}H$Ea^d_toEQZxpsyA5kvKhEH1|h_>vVlBPP$t2^WgsGef_)d!f5;N zhJB5-5y5B%W(pZZnpaQ(tn@9|DR`qj2e^~LCXCN<1jy{}pu{4E(eN3MygEuh+U0I{ zPOrN#^4ey%E*I-#R_EBvJip{}ZQIh_{T}UkR^Kmw@S?Ay{X3$gnUXqv*Dcpc$njrjb} zegl5yj|2YR-~T53(ck&Iu>SBn@zjH-VKAIT>%LG)H1;80$pi#)Q}I+y)D&Ga5MAFR zRv>~UpSC@g1W6NE-kA|9$*V{$5j$h3dr%Uv#st9~JM>&ZBtzVo7vtv&EG-S~8UPhW z4~5)zU^?@DCjnMnA(8?IYx9)IF-((IHiQAudi@( zKI800c=q;+JA4EnSg|NmUkq5%;!#s80fWUsi2 zVPziknoR;2=TOL7ON2%|m31ZFFuzLEt_8|V!*Fk)%(YE;~Jp7xZ1qJjV#T#z7A zygVl(!)TD?idzFQF!;pk_9~^gqjlW9-~TW0L`K)>x%mEQ?Pp`RV7%M$=k)%b=0?|uCXd#s*WnKJ#Ad8Bo1)hj zds-azueW!?wou>#n&4>uXLECe`P9?bY_4YWGMeZ3oI1Ulzr*!&+l;yhIxs`pyt=m= zFoWv}9WaspU=*hAaDk$R6hkTGc{*)CX`&3;P$i?FP=q&eZ=}u^YQ(r(1|6Sg#CaQY z8MS>|{qYeKo)L53KH$noEVgc8TC*|q?;54+jQTy>6r*t;eP72Ln-G`aRQ2xz**4o~ zN6Ld4l`FpAjl8~ZUJe$@>JKwxaY|!w&`7;BT1S2I9~|$*>Iq_Rgdbfa#cp;_d&N5U zecIh?Jk^cuI%}_ju?lv1q}5@7OGWZxKZzU0M#Z!Jy{(Xj**y0BvpS=jf}`f8N`<^9 zXkj3rqRih#yWJROe4#psntcV?+(vc3d6{J{`lTYaQwAsFp9$BU;M;72Vc$n|K2mCD z^F9-Rqx;%6`hV5DvXC38tLGMlv36!&5uFXiKr>Nbmb|nwYMKmCkW+S}Hclm&_^RR5 zNCL5pYpl4b{ih5Hheh_2?P7|&EI5}F{@Q>4-{9?U{SN$!Fa1*diqHD_xc-b!L^=WM zi-sTg?(e|w{*(VJzV7e-uXy;}2XOzXXE^<;k<9_q#MAq%I6(j;tO7TNxmF?qEAX@r zf~f)o-eqb6X-Yj!Gr?Fg+XTg{B~^t_2u>Q2F|6X^=|l!bAAk`YG^(Vg{RG;ERiI#Z zAQ?RJp&*NFC6RsJq8zviLuCZw=^O=W0y=sCm?A4tdrH;{yh?q*=uk*pZ%Z6Q<_5*h z!y6O@9aqK_D6`@Kv_N(~u$qIesxW=TR$PIRR0Y&cR6Qyv0cSHTpd+XV4fSMn)6hv) zP(12mL2^f*`uq|d;0&K9td8Zg&;g)f^n2PCSmGHe3jTlB^II z`=G(*14j;<|>r9Lx~O=u2MnNe+u~&fZ&!4@cZa&-0N;5p4#%dUgr{# z8eT7<7Z_@Ef1V$8)3wF704LZ%xLZBxtF1@#K7I@j<-BFde3c!@kmGPpBuGvWE}T8;LIKf{Xede zt!ANdn2)CO(m;D7Itd7Rt z2#aObrx~Lj5%K7~GlAJN!Wqa?FYJ!m=-649Wl&MZl+AoHb>d; z_rcU1(eEoUlKc1d%&t`iw>3@|bJZe~TNnbNSe1<)bwUfnK1h6a<8mMz{H)h+yoG^^ zK&pdxixObRJS5xsOiu?Rg#{Qyz9n(g^Zgo(sx~!4ycqY4#&>I(WH;s+&uH7;?O7l! z@97>r`fkQ6`}el@wX`%7;J{vSN&ufsq8rf|RJOE6+a#cZ5&@o~OS3-kt)q)H`%E^II zQKMIq5c4dh1QkF^@sk&GM+O}^$pA^fDKAh3ZVKH@j9>sFchCJ6H7X?|L9;>aOk5n{ zo+us>67dcxq7{^}0CcR7n2xCHUThMuv;LeRu{)8h?b#!6LOhpTXRqrp?MO;=G7IEO(#5qtyjckY! zrp8DQhXO^B^XZgOys}qH0z<+LSQ#t<&;>O$Nf0cb<3yBfcCcjV20$quofbGFj2ttk z2dTXLN){|ewp$Faln~X3G7PEsf+eOMN?~#83<3qi_c?hASav%4n;4xVLMK)-A-;@H zsz^j+#r!g@s3<|Jeda(t$gp_yS*aSdp@c4K3f1D3NSIodWYcBa%gioA@4Krv7OXi!pT1_0?LY`rzQ%-81nWwy7P-+L=Dsj(sMhXV@X5xeS>< z8~a^spi#d^`bU4|U25m0eF4DT-IoVvBI5(;_T4jmt8FK2&VCF>dQv-=uOz!-MEj#> zZ?g$z_w}^dj;DWS^c#RiXW!hjo6Q=!`n)f*Yh)Ytw9(Sr=6GE+5hLN*plF``QWN24E*G{+|j~a1q;b=!R8`1kj>8LW$qn%`&Ta6n~EhDTH0L zb(^s z5;TvHy9Ge%2FsOBC_K*GloB#hxXmA)2w}FCLm^Q zjlQq+-Sr{D;ms>!v;cp}wf9~KweOlLp=kKPK%iVO%!r(;_w`Dq(0J(QBid^Xmcd?a z!?AZB{M~$9I@9X9Ie@GNjzNv$nKR-G9?>8gYn^bTYH#h| z{kld!121XD-+Fo{EqN4!WSmRE`FyUCD9rF6-I@4aHUo^Q5HLe=c+!;U3{cftg@=n} zZp=s2hay~iVoV!BQFqobHKY_r+z_Ers)}R@53ZiVYKHH9=X>zI@A!VKYk{VWWx2-H z{reCI@(RGyjuHfGtWQKOG)6n;fEX+aX^P-%>&GAhFLhm=BJOm6p{$Bj1WWSjK`v@( zR2LdZNXYP$a;HX<1Wo=brJ%Q*0R>7)#NTQJ z&#V9xzGj%0N>;eT2S7^D!Ud4T=aT6LGVAmbw0(vmdqpCHZ6zzC8ju8D5uHDDFr2Zd z0G4nD9H^MMDJpcbnE=I8C@rFDiUko`_tJJ}1BcYa0XMrO+*t59%&j^5gE-Tjc>1pnIpa(*R9dlesI~gGQvV6ZF9}q{`TV;$*Hb$zNzrjnCQ$9vpMJtF#!=?i;WQfCPI!O{W^14IWtJ=9VT*i#3+_=`$!rtWu{zPVr!+^5 z-qwbb(N*%Sgxy*Q5RON41%Gr86?Cg1 z>h0W&=y3Mii22p;nzNFAeTG81T7ev+I3tO+V($An8nt)0&+7V(qeuEN^R>21d20L8 zj-jRPUbq~+qn+C!@9_#4!-yTAraSR;U0gXweSgfMpnEp4BuHWj=*5jk%LXySY6`Q0ESV*y zO+BiIrHEC4oHEmzKt8NRA*;etA~r}czWhh?j? zW5=8w=Z2-GnX;2}@@ODZKO-X=S`n+6HCDEWn=7x5xVrNK9toqyNRcdF$;o#X9b1*%c?3k7ylP=4pd)WuB1(EAxUF?c+K>qpE;X3|9%h9&~t6 zXN$chCepoG1pARoj-(7 zK{6nx1*XLvXuv8t&WlkB9cv5#5aU9BKlpr8o%1z4^;yEmX?C>(=hN|)HkFcF?G?aA+4)y5st}V;&?kM{9C~EE-grz42HBv zFC=wnk8%O&KS3ZV;YJH1qB=QIK{{pAHACjK&gi=s`TgG`CqV!F>^T~udo`yu21fFr z{#^mOFR$G=Mn(^;0{Qp99vOEdIWsce>)cNwrAOC=K6ppHvz@>8-kCizdRKc5buG+6 zhNtaHRL2{SZKU7brcd^I`H}n{jiY_8H(L8=+J27uel)Kmdn10^oKD!;H!;3G{VJYm z`#8Erb9{9FXv|0ZE&4XJLGGw~wRZ5xJ{;-$qp^%=WVDv?{pcM4n&ZIZeLtF~84brZ zi#Y1vwWHaz*{}T^jjo>Ft2tx_D^2EzgT{&Lmzy4sS`^|Vy>4^B7BfS zVaw4ih^%yh2?6FxDLYWz84LJ<(k(_5soN#%cTAU9UZ( zGKf^YuC_f(1AusdSR-BfxssIpR5S##{}V><0rPFE0@UB&{Tpo7KCEoS0CwYUqaeip za|6kMIuRF)i<-1MU!;D%?P`TeG-Ku!L+aR3fnwXS0UqKj&15$h6{1l3=QMCv+8qf} z{!sttZdcoG^7mMrFnV9jsv))Orx~Ab7+(A~O4CWQ-)H^b0IDU_=BvAnTZP?_r&O!U zNSx|RrZMbv$TXW3n#Ivz&z{p0HXLz9LJMbETRI+0J&MB;48n92HzG|q>1L?qrv>UK z>Ks@06ML6}SONCK#LZ1bQgOpxu|jElLvZ5}Az2d41lh%Naf}vmlT`&UOMskMRvQXS z5rrZE7T?#5)KORkBZaY2l$qjex~1Gn5R@Wmf?9zH_nP=-ERLD7!ogUv?bFoI9oJ_; zN=!E~ODHSv%_(6mOfgzSoL?)w1`<(286_8(DH1X+Dfq`K({Cq%~s9qCSork?f!g3$sfYAlB=!GjKmZ-cc`zW0BHpz@kHH# zY@T9?!sw{Ps2hv9Fsn`%S3j!$wi@@12-u!d*F&Py#E_AlA11Ksl0vYUI{J;d<0W~S zazR#Z$W;`J3EYoDN1!__A;}$i*bYOyXtaQP(gdEmXb{QHpEg=FrxixS7*^r40>K%S z?@kPG zjD+5dPskj$ z!{DHd2adDqiub+^jWqr}*5p z_$1N3nn8=uYRVZUu`F%HkbqaxF-AHFzzCZpHHyH}iS%$@X^7Xox*ZItipwfRLV*+m zl+IHa+Y-mwF#srvv(l){A~f)nMq93iGlg>kQyj7toDeAcQT>mJ90YMmUX4Y`11p4x z(+n6P10*C_aODO#5d0DjZp+jE)4h9GPS>o;~VjE$*l zXa=mZ;w)RVf|(o9k+z{qM+l;FQKSP&UH>EmrxgfTEhsziEpc*0Hkv-c!H5CQv(HBY zqbZm|l>w(C^IwrNEM*6B6=H}87`c)7U0{!>c;tw{s|AUdL>JD7WTvfvRh3Qu7L<^%R^F8A{$4Fsi}*vyag;12lmd5jl0N9P^)Yyqk^o3b_g4Y1inyrdt}+Gb zT;t}L1Mz?uML1e=A|}&%ULiv49dQR}tGBj?UcvMFYovc($VTs{buMhOS_SskB7^!3P ztq~6IeP1v2_K|To8fU9Nw%^U3xlND1&1UFz!}^YauGqhSmu@kU<9%E0_al0(&v=UX z$ml(q*Sk1Ej^^iRO-Aeyr-iE{Ti2%zp3N81=Co-|l^>8$Ynwl_Hxi8$zhDrl0is z$lNywV>E<5uMh@tdJBXsvmLYDwbT*wNGOendPa=>754?O)9C%}y+_19YPbJwR3>kC z&jFFuc5yimeOTRWynTOm4BM4n3xy1qjCwfU#vmW{yC3h2IgPIBWErftHht*(S(TYI zrkUMXwjm5R^uFEwbu>5qIK`Dw1oP|q-?w|~ym#O4emj`&k%OcvIxdK-!^Ka|tZ@vr zPK!%La;y-I1nuFv^y9DkpY7It|H$QO%udkKBT^M_en*=n=w#&7m??en`QrD<+{~2C z(dYL2ksxh<8@&s`r_$}THX6(9T}OOnwr6&~RolgBAn}A=*E2yv-O&(ojLsC$E)qdb z$q#rH$rL96u|7OvD&Cut8%;SPA|jOuY>XBpvfp0{BP$Ht139y_GBiO7`x}n$a5jWN zAgYcbk!th;2S8&_yd1JAoySE4knE8xQu$BdS7@YU`LLN1kvRnhPX`Hk!FEIDnt*9N z&NBlDm}4t|6(lPzN0K`P=)4l)ywb5j>>2pn2?UxLNs%Q()%)kVMoM&5BqT=hY%9z$ z8W>#xg=vD>f-q*y9aAD(Ic0#(6ibZMQE!UQGUA|^SK*N;7wzseGpTq9ChjgWU^UW` zdXz?hs`7gQ+BOYBt3iguJ3F4sF0)r++ zNpt`~3D^rEVD%z`Q}S39^F>G;;o0fapjbT(u83ikgd!QH#BtHawO}fqdgu{2AP$Zt z!^zWk*Tmi~Lf){NS6(tkXe9?i&Y9_lu{IDua;bC_(QokfB^lSIDG@I~joL97M3}mj z%vg=fHQA{6Lh&)zi-2QZd*mQ6wF^Bi{vA0&su9&T(&&R1vcphQe|tUDqHi+RJ^F*U zUBqO}@qu1I-fzz9_6KJdI)eXCE4QP+?K9H%qiv(p)sOTKjeh%{oEfc0Yu8^R<8(By zy?rxtPK?Gl8qfCIHkT2tcqI3Cr~^%jjC>o-GV+n?*lGV1$mJni>AEsW-6cFpFr zfBrT-M@_Mo6(QT&-)_^Rj`}-wmOR1zz5YAXvuEwit`SeWtF6-Vk9J?p);)E!d!c({ zTdQGkK-0eq8?l=^G;LJ~6M@TlD9$4R77h`_NsYg!;(m4l>Y&dv zVAoyW2gKBR%12{u$92TS+WsE()f)QP34}p^`@T@?x7~NGkqx6kgS2g&+ZaMSceATE zwEGHIvp&bOqtB!3HbE7?&Cu#E_LN!0Xd<2YGvsnp1>#7#xXU$U;5OdBWRA@oiFg!+ z)s!%frJGB^hOyGjT>!$4l&o8Y7shl~51VB!oZ5CTl7_-j5bZ)Vg*nBa@sspjbtvFD?bk*X3$LYSgN!`>_3R3)S? zI94HuY@}*HGO_~M>6@i+4eMs@<7|R+0z{NXIRs35iRc{mzGRQWzzUO64P+6z2a4ZE z$H>N83xIPtQ3Tcb4R;Dc3q$}-f*V*Z&unI1#v49%!`V}d7I(xHOEiKZ5ChKV$H02V z0y+*93Dp;1L@p}A6yX3H&xzoq#IA9C7)d^l%E%8_LPZ3USV@Q#l^87oBTfjh5pz{8 zvIF|UL6Dh|RiIY5_KukXZKH~~Hl|wlyP7)iFVkqwUJ5dcAY+AyqDYj=j5RSNDIR6T z)mS|}NKEL|3%W)`U&0+PhLq^Ek-{@`I*CX#Sq%$-lX#Ep3|K)H!?G|6m>9i=MXdrg zr<4H+cN3#F=weBnBQG5;#;76~+cE=FffA#jl5q`h#2Crtm?%jF3k*4Vx|(l8(Qv?- z0}=ztl!y1%qMI5l2r%V}dPUfWu}?@h=BL|c<_0X&tmqvc z>r6A=IJ>Xj3#%ZHxqH6lsqOvM2oBciT48&l-O7b3%R6JSeb-1PUH0{M5-ta?j0!5jT&^vvkl=*Q8V+~vN0zDM^Q=_CDG)nAir zG-0nujA>W@fjIJ|EqGG^hI?_)p3U zP$QT327J3`XAXhU93EXW8*BD_ANAbxl)$09%UsO*b95cqGVS~v>DV(HXB*@(P29x} zon0|UNs=Eh0T}4g@iq6(W|w><*AqElsxpX{IP#`nOAWwf|B`?*aBm34g!L2G6A&=Q z6B!ZyXu;dxjtrgNDC@sJGD!M&%$QEwelWf1eG**E$E9-yeVefCzw6t%i(x9Vj~r;% zsV@&c>eEb_+1($)pqYb_fgazrPKTaR)zAL8=p_xdYdca#hJt*;K>9iC+wQ*`_H{6C zasQKCZQHe736F227RAluJ<+dOyWS&ZZq`Qs9UtUB7oo9%Gb7ZTCE5@^RNv7$C7bd2 zmrcLaL+I}dEx)(rKttN^d1Oc*_YN}Mu!CrWNLB63|ic36yi&8UIfKchSVI4 zb4dZDmv_VuVGI#6<#8aGzUqc)Yb>-h_$)d~(6;Fbx zF2oa21FXPob&DjN%f-iFUVhgANh}GiVK^F+Di+~MJd>7UDq{_bD*_z9nK_mR4f!JK zDL?Afga|I%I(I|_qU$WCOB!bQJhsF@w58B3oeSFl~katQjH;-{SJX zM4*yTd_5&57oKVZKt$akBXzH*sxk>wIXg+<0NrWx)TujIBqPDopxlX4RNUE!S_gLua=&g)E){VjJB2p@5OMI`RHJy3)5?0jsq0GKEaq0Z2fpdws$0HWjA)ZUEk*ATyAqHwwHbFoV3s0#h@GMMk77+HeLA0 zD4p3Qeiv8DXk?H2JJTmCtzy%QH=WDs)V8!e8vDiEK`M?DdC-0xX7*IC6Zh{tv>OiY zF|!)|G_pZv>#RmBuqCm~J;`mpPQ9K#(}#geeYf7@yzXe+x7mOF+zsE+>2ybSS$p3s zDrt0Y+ppW^eDt~1;{hJP90DsJm`F3bt^Gc#9R(-d*)-jd^OLzwF0LnwfC-~WI&zc{ zl3hB9ZNK+~IjaBNzUPAJV+#|Ft6kg?0`};>*|#Le|AS}%wF^lmz!+FoZ9}}c2D2_=-Ju3+qOsj zZ@-%{(b?5A-}afI60vJfw$ll0G=CR`gB4gVz4~3}?%eM%7z5n7rLQpisAWc<{rMO# znb4**9KE}ts=9tj9Gui@>eZ~@!+m4>aqWH@C}nYP|9K`%H-R}2I_>k59n;h15l`v+ z&4E;C#fVr7A%sPG9_Lu#snt;u8dTj!AdZ>F_d#k73bleBxG*2>WmNou;S?z{H$(x zE{SslFxrEqb*)B=Wb+cno>pbzl?4S*6cjgTL-AOWA!p`(z*KS}q3qUYh_90SPk~@neGrA@x;3_e)Ly(ajKgSF( zVX9L$I1Y+HLD1j=Is_I0u0*joAajNwTP6(}>nIV=L=lM5#XMq00F%rLUZN;SSd(ng zR-QfsF{~&APWI$7bM39=VPsicT7W;t?&6N{{sOnIlu#Ad@6VYdC$_S`%0MWa+=>Vb1Nb!_Ef!YaYB;1H_9X#ra zl@=Wixni*;k9cys5so7R#VRY5If__}XLCx11~@W5V$UfDT~ak*)rEt1%sI%y=&*#=-FJ_?~@h-&^@|XNcd$;Ek&~ zWjc9jE+cn(f_ddK+d5m@w$OKu^}W7dM{=|MzBPz?9dI<}-MeJ4Mm~ggEr-s9fo?tO z>#X0S-`mf#^orSBHB%3`%<1W(mFc5#Kxo`nJrF=d3jzDX@4o*%?&YRixs!LGtB&p; z&EZV%YVD?xe%?O2=}Xwn!KmE}n~@Bijz62P-)OC7w#cpaMnuGRZO!z@`rKf>r}NiD z=H6y!w(a$Qk3QFTV8E9Kh}VOZ&R#mHX%6`zGYT zc+7mx|BV-Y1lJRnp$26eH*YOh5;@^ip{PqZpc%GF$T^`DtH4Gg`%v}~@%9@nuw42H zo*AcYTXEgRiEu=Gz$J6)`y6d02YbUd6&GVV+SD_`zckidNdcPh{Jpa(+HXsKjTr3i zcXCr2s?8ep1buA8+opsbgn-hNxOCQxm~G$pBge|fVKKVexokmSFXqVa*?l*7-)N5R z^!|f>&gi^vJ96U#IJ459T|U$HvH!m2*ke;v`e%Bfj)V2;X$ReV&9*simAWwF{05-j z7xW@%vc0E$*v914=4;)~-G~PbY0wSM-l>&psq#zuoGO<6dYUW4JuSJSG*$Y$-)4O5 zh=1NT{`mU>XCS^eQp>j1!jn-bBTk$xsh0~TuTg@~nql?4ndBCqgjd4X3>5>!wryyJ zqK15Z52t6}gY{4SVc;F#33>X}9!hLbS$PVc6U3u5M9pzzn0jMw@G1;9HN2w`NEC2< z4g!Ee60s->a25*2E60(^QFa=IRf-~X157Vb0g!-V1wdx$Wf;per;ODAQ#w#8CJLg& zvw=0JnM%WHTivBZs7XkqEYMI*w6?u^3@zXiP8E1;g|Sq!IH;o4eF%c-g2rnpE6f%| zDQ-Zv^3)<&!BnROtWst02pb6O#B`dZq~l})BzJIl#VOJdI2NJoSd9??RR%#I;!YnC zHzt5EvMP`E^d$feI4q8LVs5Y}Ea0=NuvB`2;bfV3x1uP@2&=^xpM|U#g|vX-N28p4&}(+upkd2#SoVFVOvw@{$cc_KwbZNwBeukiCP;Ecl_`2jlFyqvh0LQ{ zQmP7{`d%c+FxM02V7sBKVMR)eAYvSiF{;bcvLFj`<~}c=QJf`GQdriRshw)<;A;qotZa&j8(Wc`Q-?|5kE)DYSD`u2MBHSFXg;F07}S&mh>YT9$ibgM5L z%H@&a+BzC~qo&F<&`1x^?>bk`zu+=>dro$apqV~4)0am2<$j*9bA;`Fo9Kg6W7GM` zMr-_T6uCOn4YYSo4X(ZqN4ndQytbxqt!@Ntc!?3g)!x&N=PuQ`W=?~4oU=09yLk`0 zCt(*+cJcmLfUYkyy}!L@uRC5w-3UJnpP7w+WZMO8%=F|VeYbCaw%!Kor{UITN3`0m z&91-LB5Ln?wIJlPed(g6zQeHJ+q1pg_HRUEZFH6^+to>R!Na^G0cszvrru_0`@!$U zBZpCGuwR$WjwYAj0h4TBJi+xu4j5Hk+W`Q<`*kw8Ylm z*D{2j7~6K{&VggbcQ6-2;nM!THMkLI%iu?SzRfU;E5@a&yP0nV$z8`1^E8|z7pT3$ z&|a~rTi~UOHU>hc9iKY07D<)SjVim$)^bEgqs>1PDs?QaL$G;weeU3$Q$f_-6aPhN z_PGD9#`$P2dL~IluIZ-}Mq9;bG%pwP>VpbUbSXb4g7-pvt=cow_4Hejouwv8*n zSk0ngZSlw^NSwT*-fL~5uGqyms(xCTyW3~p_uJ;Y7xd9)gnb9Kw0ocz67Bde1bowG z-Mh_P%QguYiooc)jb>*2ZlrwmV>wdLXjp2UTi!z_fPkmerf#??Wrqk2-~cHN=K|p2 zz~Z{H2_SBigLoG3Qo{nKpqx(Ekmo*#^i_Wfdi{Fj>-&(hdUQkvj0T})4{f)24`2{v zOEuyP0M;Z($T*cmhfVS-F%IM@$$;#EskY(_;9MA)L#JWl>Aqz;9Yk0@+owDkPvJ8J zMYUqsL?j94-`@?UqGaQSTqSunl0x0#lY~whgOF4tcz3EoNI=Jji9t}H;s#y;L|8RP z0hAJS$P^9{8sQlki*XH#7?NeKffOuxp|f5AB*UpX5!eMWaNUKGDpZ=NMI=cmjt7){ zQACufT`6N#;*%^PGhFM)@Z=kdh@j-BRGjO`t`cFHXjnKs3bH$8A|gq>q8@Q^;En+= zNve@91(*-UBqIyF!jaFefe}_xYW1MN-EkG)@r1mLbi{&4!pU4lB!MZ@^_XGj<=6qJ zWI)e=FpbXO5j8%qf}S-xc9N(&Ssc_FuAd3$d?UIqAPr8C@3n}ZF;SS(LBSWT5KDAC zy5lk{9fnKFfXg{L9L4d7oY$DY8wn`t`!1nCyuuX+AtH1DHGE!NzHMh);h=X1j#s|Q z5}LK|cLmg=e^ynT&nwG``$VL)z|63&1=rW9$|;fk!Hbz8CsyM+(k*@Zci3y;YzYxY z%HtZFa=%^33ytsKfYt(tZ?kBjk^duy%U&kfTyIu|-vnjIK+)@e+u1BaE6eS2;HX7cUpC#cZKUO~eV?4Ifp%xi%YN~;Z6%uj4AF~*SLS@|yCAZ{?8Bgt0s{t1CJ~CA6iw8zS&v@g$qksFhdjobP zB#szD-;XKtw&sLsvT;W5X}=4B8H{HO8}0gW!0<1awO@U8sruduyytzFW-THw+Ai0t zn)3KMxo0I+$k~45^X4dwMbe;(7G@=P%RBS|&KVLJ{5H7IeDx zw;hkgj|hblJG$+al-WA%CuURrcl63mT=0VJF$ri8w8M=xYsb0KetdTce%rt22zw@! zw|?AJ3Fvsuh)(18;n+lwmt}X4nqe&fBzp>rzbknJhgUcPC|7dwh#6zlLeUHb(}-v} z12Co`DWV)V0IbO1>HfW^UXQ0vSIEj#5QU&v@)K}%JPM{jt?tYr;4f1#Oa+T&EMAGn z2+iQ zFK)04n3^M6p8uD) zQPLX~gVhp>()n}}rujtmF-FD+OM7Mj*~^Lxoo^YWh3xq$l7K|iR?=)H7KfTZQJ`6| zCh;_&f~1C%0E^?|z{u>(oj**uDJV=V0zq2|(rf~(EI);8z#*oWjBv;zTwvvc;W9OxdE7Q9Qy3j%5>k zZS}({LR2MK@#wJl~!LY;j%TldX->%!- zl8=^v?%BzNYFrFt)RB(2l{(KCvK``B9*yqW_CKyHiOf)Ki`cZiE;TdoMtwbUSj@&W zvkAufSm+n~`}?`Mi+(;E*O4B4p))n(?Vs!Q-;u7iYnwk*y`t6A`*)7?xMThOQtpoq zNBjH2ftqYT$2+?Y-q+UfMSx;o>a`-5k+-A1AK7fP`)-?q(LEzQY-C@}-re3mdS+%5 zj{Y6lcKsan^xyv5wl#W}hTa6!eeMl}i!WZ|@-x^27O^S+~Y+Yjm>$u=L^Wi#)mhzknpOH<-f|fe~=7?U|e3Fyo8& z8*#HhW&}KAs4+>s2W>>iciEsLV{5j_X9(1B<($!P)Sl7ZM))&hr#G-h9>me#J10Z) zj=qY{us@A~TYq=Ko17_*@>tENNbIViH1FOiCEayl9J{hRyYDu^HxfKsA3-H1Np+O< z^RYcU|E-^2GaLDxE}rlEJL>|?d6DEBFr)maeyT`t>eF(cX^ zL&&vP8wuC;b2P^>p7B^{aQ7A0M&m!CS2L}9J$9>DsvxG-Aanc-nDOMoF+1run zH~4@RND4_?1(f6y814!PQ&mbzINOTV&UG5q2#QI_P~w=VEsWk!V!~t)2PBDj+K1xG z7Gx8gp|~+(gG4nF%LaqO))iLh2ocBH;Ay*hHJ%8K1(nMP=@$nL_0r5K0}F@Y(K!z8 z3xe`8N~YBE&@sOjgyaUenPZR`Q+)zYqj;6VMOXny0p!H=i~R_6X<%0}_%0 znWm~#3DSDyz{du0Je-@dB?CS-!PyKDmak5kyD$~Q$q3u4DPv8E<%nUpHpOyQhOI*@ zNN+Ml!ir)As}gVIo(O|BbS3snTA<<7(;H+fkd+ZFS0He#UP)+}rnSJznZU1F92nME^~jixV@sg}%u8G@x*`|i^dwI~TWy8d4H6XD z9SfG3)+J@dDH)wmc81|GikzYTTLM$OPT~#+z(JPD?`dCWkJ{n9TMFl=Lb5VFt>M=i z0J>05!F4cVNmv2gn83_y4~c^}EB6h=SZ&GZSUP0`P++oE+5%Xu%1I3g1xr$-q>ho~ zx(Eb|nU|r?bTKB68S>O4GxJpVx&vJA+eHbYV-2Gh_;pM7WhK0{FTxtU(c z=UhL)Ht+4VmG&O%v7`QS&c_D`vvKx@Ui-|xPt@%$-ffo-mDbQ7&FRsaT&#bmU(BAp zO%JU4RHs(}v9GaJf*fGE#phAg&c1)Q(%ry@@rME1qD!d<>24l&bO2Px-FEG5g|=U# z@yzU+nO-~kyM1od=BP}1-$s9kebndKnC@a5#x=TUrn8Rhp3(b9?=Yi$-(j1k{XF&a zHEXZ`t?!FqZ(9p*iW~NQYTg%2_JXbl=BQ+_0ZB~$tUbI`B!#5 zF$Rnzfvt_FE7n-hSQE4OY^NFJ)KG;-=n&D(V0h7f6=FF^jO3XG{Yk=$)Z}5Bj z{@z$`@0kge(MA|CzMe2H7?f;+c=lYRvdrGww%?ASzo#9;>}tK7eS5P_4s2vHoA-R-P%+jjf)$tl+p z$=lvL<3-8WvlU9CzRtp1<8)I*7$IQIZ??@*zY6W?LO+M?yY3>q`_S#}W#ciA=Dg)= zmx>5CRPcK(k5O#pcvVq~hLz}{$~WMnZkhAlt z!gKzpsKT_B0yAQHumVuRDu$wfX<`@z&0tpF5y4^tm4ci2E}5r}@Ps=#ktY$X#`3vW zLg&gFCSGD{t|dP$(uiMSpUvn1A#d?0CBmZ8fHfNV>N$SuQ7;L+-@qzCNeiN6vM&Ne znlNWirCKyW)&MeIph}0&38BRE`QrVsL?GP{zMO$_pLN77LF_S}KCL)iC7c1g_%H!- zkBt!A1=r6Qp1}<=uJFRkXFT`l9M^s5AL6}W#(yKHA>Uv zxJ~r5ZoDI#Vl>XW_WZy@rp8Ea|DEZ^?R7N&eVZdX+0*yHux zACA`fXk6`QGpoT7aetC6`sR|K_G<@VvuK|9dU6on<`Q6UFiPOs_b0X6_wZ**Db;Y` z0FMR7j3K;|P174Gv-gdR%6=2{jBqA2`tRCy`|-8!-!WW-{kom3hfqIaI=3;OQGZ5r zGrPB+zu5)^PEI#< zvFc8jYt)XvZA-)Pa=={sXWQ|&UD&N@5@=CG1O&SKW^>x#7vJv;`>JiiEob;i`6Zo% zqSE&Hw)eI7P8}hQvIAfT0N#)3!YR?u6)yMNs4t`Tcl`kz&!l^g2*j1+3zE5o)>~TY z$1&mqQ>Dt4p_!65s*{|8RbS}56j-4{K@3>ksEddcg0%89yZDI*qe$52h`K4O zHAZEOU71hfV8doi^+0kA7Xfm`)1urgLfjci3Nxv|xWpw8zW#Ap}{9e599bbvlOW%d7*S`^;_A7rY?!We9@#x`WJb3CF&p)5=um0bE68C@P zTk*IEUi*{37@zrhUyS#@l<|(Q{Y!ZI2fr3c45z0)8b9?H|0djf)2HC(alx~XZt$)j z`~kf1UH=#_z3(66wQu=E{DNQqJMeukK81Jvy*~wg?pv@fufZpN(f<{1_=!IiZ~f}O zj)&j*mvG90w|x4q#%n(7OYy=>FQe!RNW%ToH6E4)-~V-g9`=r}gg*0=fuH`%@P<$P zsmRy&@x$Nu4xGR1>mkqobG+tyWz>)v&gaLt|GJOIr~H!t2<0_z!p)lS!IvN6#qWG8 zZr=63;rj7=@#dfM1$gQ+eidH0Ipc$m6fgYH_u_@O|L;g2_%?jpPx-lc{m=Qe_|Rj) z^}VO?!S8=7p8v-G32*w`Ux|A^`E&5S?|dho`)B_ho+|Ifk{{s5|B~N~=U(>~{O~{g zAMuu-`m=EFQ$7P9eDMZXiHI?F^#C9G(0lOwKl^id^@~3Yq+H9315_xp0>mGRNDmUa z0d)4k7!M#)gQv3j;f4S}foVASfNbhuyTryJCJ-PnPs0)zGR%a4$w*k$kfBHk4*pA? zQ$%16(rc^Yl*kK;GI|IpL5p~4c7SPto_6Jjdydpp`6zc3X_h>}%V0NbR*Mn9gq(YD7zF$u?1Wvmy6Cc!0r!QjhMWtD~l%B-gD?(BcQ zWOu?ll4*0fwKs6LA5e9Zww;izeft-B#zfy8$)k~B)!uhx9L{v6ek|12;Az=@PT?j>bJI)jhgbfJ$#IR?Croe)RoF54?+g zHq$XKp6w2nqyZA{#}{LoUANghqxO!R0i*Wg*`DTiHrvR)==#&s;Vx=?pxgED8DXBb z?-=c|-tpM)?W1|vMYA>S_x)`9GV0gpJ^fsa#x>H<`|F5)`~J}nu||&o<3Yy$VkEM& zMN|&lvBKuxI}y@t4wy+p1{gz=Rig|f7038JfdU#Z2mF*O=y|fR&jmBH>Wrx`mn{TP zL@qpd?Z5GNzu~6_&|sn4Hv5!;_L8)?Etr@3~l3aK4i8j`RZq;)PCw|zG`gX zEo^dRl=d5MHio`WqxosSZ~q+%YZq>tv9i$s9~-~3{f-e;TONEoGg1WZLJR$vd%A4L zTl*5PHB^P{V(oBATlF513PxG?@`OQN&M}1(Y2Xr+x}U$%`t?_oVKzTQJQBV=Gam`| z(RZ1eis%-Svh^Mvf@A$RjQ6htB~cub5Y)uP=#5Fp{r!@dt0qRHiP0DpCqyNhC?F~bNDPyR%re+b({uw(&(rBM zz0wyQm>3o2uT7~hX>%}C-D8>^X>S;FWAAuyTCqxoA3K_{L0Ipjhp`Kcj3hL zN&KrHcoA;A9yr?rmmdS(cPH?@@A?(&eex_0Hm}6DzvO%Iec$yY+};DMz0%{Hy2VQwPBP_W+w4!1Y%F_pX3% z|C(3h^ljJRYkuIT@poSQEL?ge5EJn5!(WWwd&4*4^*{F$ICtx-aBNdUY7YAqHZHjw z|KeZ07>~UHI4{6%1pe~o7vN|A^VK;0yFZNQe)(78CI9wIapp9z+5~n_1F!hq7vSwb z^xe4nhHLOcKlC*?Tmi=~0shM`EbzK_{5rn-pMDo!@HJQ9_dfF1@k8J9Nt}Q8%dm6# zCHVe-@sEKUcJRILeFMJpAAJ|T<(saDprRF2s_6$ zw8=t>01LUZkRpMg<6wDMZ0|5YNy}NQ9H%raiJ%9tP{e^i^Y^F`G(k9kqgX{M^VTxs zJrP-Wn&w*qX>w_ZWIS6W4QGm)X~qs@2rOzWWix=TL_?gCu!W-8UN$eE&b3*AWtFk8 zyqrtL{f&VROQzX+kjJj9<%-Wh77qVET%U~xOpVpb5RJ)+2r^|66@n=<3N@^#ea2m4 z2f(=ZOv^K+T(s6ZlR-8ZOMP8P<)YRmZf(qR5&b=HI8FGEqus>@4HH_+w(AscK0!)SQ(=bSs-{!GPVdbyJTCYppUJdJ- z0JMmG&1Bq|gzCK!j2i2nv+U<%Cd?}Cqdut&6S8rxF_`%GqnOP(!auQ?-pl@7SrM-MJ+~+7t6aMpK4m*j*NIG!g;zNuAThv6qe0C0l#l>n zaO$7|JN7pxHL4^Gi8e@s`p9P>80TLu)gdPY% ztXhsBB3bnt*OU@s0w4ze|{M@<0<^JfB7$Q)jxeUzV*$|0#1Dj#}|S- z?jii#&;1;Z@85wlXCjsl|0QC#z*SHB0zB^vpM;xk+r`e-0)OkTe+ho`)i)xYejk=y zhhtj@c<9suFaMQSf*<-IUii%~!B2eKQ^4|{@O$6?mH6#n{6YNKPyYnI`J280zyA9F zi7$EKx8jCNfggX_n{nzdeiz42Tnxb>KKhQ|!GGDi6^l!*!wX*cV%+!eK7Q)ge+`HC zdbI6QqXzV@5H6F>gq8*n!L-+24K{vdF0Gs1EM zL;)L1!Nr?`Q}+VD`tv`Er(AynzVn}a8%}@k-^0(o`F~*>=Wq!FzyJI1#jPLwef)!$ z{3HDM_g#nY`q)eG-rxAAc+=-T8Q=N+FUFhS{UF})%l{6?wiB+rEa31o@bxzU@BVxL z0B`uf8qADt$N)(p5{A*jz)01&N|a{!>#sv|!pkyT6=`$c=xwn{*f`F3Fbp=5m>rl+~r_4_G<`iQ8Cb^tqvOxAk$j!No zY&0~7D`8{^sLLE{-)is`@wraNQ2txe=++#XN)1gF-PT-dUQ^3pBVHj;k2|J8(ZSKm z<2sqX9@mKH@femU)^t)m$>orlYa+KEai5AcCvrZe9hD`S=Va>E{kb(;C!4qC(7M*a zxO~Q}22mH>vPbU)=rZ+tbsy{IJ~#fBu2LUj*0NJm55W|dT5xIYv(|iDW1U+&zlNeJ z-j41aVy!5r^H6^6!OJ29b}!%t{L1mvGW{GJTCkh0*FYyqud+G#tkVTsa9xM{b=z}$ zvh{t5$Aj`=@4%cysFd%GZo$MYxSTiXqP_}EVtUOPV2*B9P@Mdy;RM%_7|#6E^)&X# zS^d`$fC~Y--vf?T5GNBW-W_>yn0z{9lOHxfYm9Z@bA)h?33}hPfx^Ej$2KM;K;I{X zMZosf1~xn3;Zu*`)amo!pf2v)J3H9gI)=X24WhB9WVscl2BaE!=Qc_?|2bkhB1RP! z%`y6Hd>{-0T!Zk|_cFo5fZ?qT-I`ZT_%4LdPw-F%W6Iq7S@3XUOF34Vhx-IR<|>nn zY1hjBR5)vUO4Pr-joI?!)m46XA+CUP1ihZ4kv)Y@0>HL^EU{-f#e#l`kNLG z`!f;AMw~g^SV!z93=RV^AB_hzl#2ClY%e%ox0p@~?hb3mxfYJM@S}Xzf?4aDdw(=G z@}$Q)Q^bVSuMm^i>8=d(76FN#f@>mLf+P(;prGk@i6|Q?QZi2tVoNEc$|YHhy(*%r zSPB?o#sm-{T4+$87C4aOkhHDiqX6!Eun77bN|0R20Icc|^B#714}o@(5YYkX!AO#{ z`cBppRS_lj)Wbt%b`kZsQB=235a$(!FY2Z)h)KN(y3m0vsV=d-Lz;Y65)es1tfini z!K(b|_=yNX)WauQh?7st;hIv?yd3tv3mwG4j57q%Ot%0cSQroO0l)u0UJu-RE57E1 z--FM2&c)cdWD5uPAA$%ta}Id>J3j-QIt6qA;eZe&;jcgc3-RP90zdrkUyJ8H{xNvL zmwW+!^Ks9_-k-e>0!@y4W*>O%tKSIx#s9!Z{_MT@v6sIF-}l1H@aETi6JGlpKZ6(i z?SF)C{GuE2*1!9``1-H=QvCU?E4=Du{|%dQA7SG-y2UYk@SX3*+h6xuJn_rE1%LbR zzZf6>_&$E?r+yW9;QhGxhUeq&e#zlMX|J#Ylj1-$8h{wm)1KMwJAKkzg7;%|69{`>=E#aDHXjt(F+Xf7 zsQSmG?>V`leBM@2E4Ww)lY27G@lhXt9qOCMkqwJ&nRcB_cA@XIu8|Bzj(u&}d``~D zuxPwnK5Ml(7dlh7RlZXi_UiZ7>6`0hqw?L>yj$~_gLw;o^+WxZK{z-Qi`K_*7Ltm++DX8Q(Vm_Kq#B8arUTi__exIMWfci{3!TNQjbwBo^%6aM_Ut2YLTt@W2C(M(E9HPWJY21Y5`8vFw}KJ@CL1S- z<|b|>?s!NP>x)qmnWpktA=DhhJL-P@cX@vxYRE)I%oPURtz}MR>!ODZ(LJ7OqSji6l5v)JRgSeLtaTelJ!`&S zj-iE9DdlQ5Ws#Yd>}icJ>(;G&9;_sN zi5mhb_G8=dGE00*J~qSj=is77HNq4kQ~2b*Y+Z66WJU%1O{AxuIRd1b|8!2{_k5nM zd_VP=j-sP;ea_Lhb;T^=jwXPI81^K=qVdSmBmBp(H{a|^bh|nF4-nr``C-|*0rF1qA0oI1OQ zYff(C*IxPKxcJe)|9%_r-(UQEU~wtF_^ZDL_n!h@|36=ib6@xzeASD-0FU|nufV7N z>~~;(L%NQ~E=9jMflvMA$MC-QeiYyFlrOf z0sO>|{Tj~R@-AF<;skmS;wpkUAZ%TVjjiK2Tmk5|fn%2d4=^sd;u>6k?GA3e1^A2i zdLpV`BjV$ zePS0l{Yk{oVSgX^!sk67w{86nzWB?&5+6AY-1N@Z0qC%?wSz+di{%EexdrJXcDg0* zJpBlM>knRwpZ!nYhj0JxZ^y5H_?>y$jn~P)Ehs|U25^OCG5fcHa zx4lO2*j95Uga{!S9%QOUiUNv{stg7SNFrFpq~(=`wK^04O#)5o_2PRj3W#mbCqV?E zBbRGn`CSZW%-A?6+?vZMLEs)7>J^{~o;$NjXbvdDN%8rad}gPBL>`W8`$fd^Edic{ z7_cxW0Bm82LIR|OP5>e|^9vwmpkf9P)bq~0GL0{Zc%t5^lIJwjewg=hWiW8jNTe`$ zR>~pN$dqZb3~ig#)+`M@=i%IvPg+-&gJsG)Ygwh1H|l;{^0q+CNImxIsb#%-%yUZC zg}h(4Tl2xWZ|bX5Cd;wRDeDutGD!|!D`mlY{c2@=D#H}I5T-KPoZi!V)`Cgv{gzzU zlC4@-OYbOgsny0&`0Mh}oQ^U##(FGsGPL8Q-*4@!dM@i=(vqXr;w}LjOTzBi)7U$A zfNrscMOZ-MK0bZh&A8;EleqNqtI&4~tRj$N+fZ>K`==g%YrnVVVt( zgEmZALGr8g1giTwin#0JcI@dohR_=S?na_^bV<@jnrnAqkE)( zvm2nt9Sq+YF8SiE6Eq7OBmj(<#Zk7cD`#2*(!-oZMPqJ4E#T0q)y*6dsVj zhSdjN33>1U(rti96;uY0Lck)blA1`=Sdw*KH|q&H((nLD+KX6@4TyS0fMD?L5rP)=7O}*=i9wy_ zh3Sm<#H6N?Z2$)cD;y8Nzj^UU9tt zyW}do^-cd9Z~KZb#y|Y}r{hh(^HuoNeW!6b0471l3#1N1UZ^0zQjKGFG>1rn6oHNy zj0nmhI%<^AJV^`)p%bk(l*=$%h&w@ZBoREBEdj*nAX>@GaK?FGOqx?AhitEW3-y(zMvfN}XU>&vD*DcPRF=KX;VnhM$jq2^MyT8tGG51Xghq8wJ2sxQ?xPO4f z<__NYwzuPzFaHf(w6%%He$F#+?ojZ1zxzromK!*?FL=j0-;ejd@7=iblb^&3UighT zdDRVwSb)(1n78B}Mfm-jx`gw@@KXLR=L_VMsg{xFC;~bi3lDuG!l)9g~@9MSORyMfQ0`+w4PUy?Bc#_7( z>UCo%uUb%;q6-0$2^0lO1au5+5aIR@ycK6(|L<^Fh}d0h zU~&By;q37n(D#H#RuAILr~d>y`=@YlcpjI1?e{~T{`YaGM8v>AN(dZutwaVdoFvdh z52SfAKtR&44aZl8CbtC?4wN+UDUo{YXj=>*YLeXq2qjgt0d(ZvHpWvy2&AwK$$t5lzxdfEmV+Yvd$LvShT;WRSc!|WofBw-Q#kYU+H{gmVJQcFM z5x_Pe2^SylaQg$mPyCyo1nziuwthVKZ+ta&wt%ZH1%Bn1{xOh%y>q~`pRj{hJn30D z|C#q-3E*G_?C(Y(ZUWao4^Mfra;+>zw z*2dDjimddoB!nbbm_gv6SM8@mz`>b&u(!L18?W8MvB!NL&i&<|qDR2-Cp`^UUvo7c zISZWn^sQKMu(KsCG_bMQz#)KJ-uWl^i~DZFd*1dgeBf=b2W@R5bd2pwfM5L8-^I0; z^!S#4@U1wIi-EmuNMf8nh)4i-`vj~s*yb=Mgkv3W{uEyQ%RhZ9Xx*r8k?W{_l1GKtx+pMr`GxabDMwac1RZf6oR# z$D3QSN(+W_`a^MJFj&|CG>?PJTI&xb=HOb-^Fn0MK^B-A6Ux8mc$UO``n9f@M5#E}b6yAYTE3rq|3dC%xww$+S~xh_do(>H zo{WP?X}qo9v8CYF555b(@~gjrGlzuBF1r$4e-3xv{TbYU--GznUH9T6x7~%)`yFKS zB3!q3fUB;)8q4JdM20+n_554w(weuwd(=DmZ-P~jT)z)mV{p8vbs~QUnC4V1$I%+w z+&!1G>vz&fwrzax<1cW40zp#3VzKr78*aFvyZ!dt4{)^MWz@ks15C4_Cq3yYU%FbY zj%{skBJ~pG>OmHf8;4wzakha-kz=IaymFaMp-Bjz``C2e6->o-ZtDRAwv|g=l zF}w+G3`fh&ja%YWt>Cui;eD7aW5Q{IyCjz$Fy$p8&D~O0o$7G_ZIG)Znytqe$_m3=JPxa3o8P0A_g!6~3$k!F8c zsB)Hs(RBtot!V^F5fnCnK4Skf_u?TOV1L=+OFsWwvH5vlgL|>S10Q$`?s?1Y*gZTC z^gXUTFIWNqA|eN{B@zyuCLEQNaEJs3!E+5uv?EVuK%#lVcmZ93fDuKNU?#HjdQA)* z#ggKZhVtf63(~UH9u@;4FeR`=^kDQv=#m>`R;sL$8dS7m4V!_}+Tws!wCo`y-~b3m zNK_*d!9()^j=HwTk8c1=;QzesUD&(#6ZrL4{Tg2S!!N~8zVJ_R*b8D(1JjA;ek1r9 zUy0pwjKjPC9MAjw&%@Rdc-8Cw2>W+^5V7y^%rE?UeC}606Hof0FT=-v`y=S%0hob{ zpYr)gSKWwjeaW}sD?axGUi+sH;EATc2(4J+9fO~eZ6H5AJ{Lt=`6M06B^ z0AR5Ix`2(1CGNlD7QFjye}tF3I`jfkH|IP2f z)^ZaX(xa|amtC^J$Ibvh{v$tu?zVSfbGgLU#ukKu%?-l#61e5o`|yUh{}R6LtG^CE z@_)Y&FS+Sv^l$$a>~36z!#!ZRI02lz5qtCqSOi;J!1Bb!c<1Y1i$8wt|G`&&{g>g> zw_b`n&I7SyL?)yN1ZE9~NfAg<6G0Z`8y&Mps<+q6}+(xrg!%Z3tpkp(v8V_Xic+{@vPx+nvHUUW1xz5U1PCPPMH2+O04TN} zQ5nEV3ED_;X&EqDyrRW-r*wT@CMfTfe8AHHtdmoVK{VSMzcQAcYF^-q5-`oH0VUfb zV@fS!4EgZN_r?lO7IUmEAL3Ett>@;?2j1?O*5-??zw7Hlp0{AOj_1~JZS_^pb50=! z1}t`2Xcjgu%VOGQ-CqmNHLjMpT=!chJD!6>OK!iAt5r~CPWJJ?k6M$a3`yjOJNc$5 zqg8#j`lx@qk#wU2K7R9u@e4oy3fz9@DLnRxPr%#X^k6ffwwQhMv`q7Hx8wI=5#8h=b-D%jr3^Q)>v>kQ@8M&CmVZ&)vTL_S<*$PGL81YKFu0*_NTE zz5T;Dl#8ZS+$Y6ZQ#G;sVtuWUcc}{^@2lN)Qw>DYpn^H+`E6C$9 zwTPC&V1NgJi6zv5X9qW1oCn-SR;rNvz)ev$< zG07a?U^;W~cNh@UsFRvt*Dx*NJSe+^wcpEbkHI>Hc}*zSF$O2R1e$oilf~|IMdPq;$7-nV;KJ<+B<;=hkd)pE`d~~)u-7waV+&i| z209Yl{_fwwiBG))heSAg$DP>h7-4Y&bg+lzViV^D8d{LlD51ts4YN?s6jDzWBm_~f zon#dQ+0=kT(j>VWmZeG315qyLn*j9CunHAi+yl)|=p)=v>b#YOk-%nbQBN2KfW%hp z*JzX(Vl?DLmDofoL@i7hfoR1ekcU43L|VohDIxSLTyg0Rj$a0xxa?}Y>$Sg*-+%Sr z!w`Si-4<-6Rvh%*Q0@%z8{6ZqUO_#%AX(-v6W1sunD?52bmBaUqV zR{=P=wE!LNA#Sn-cbnXjjAtdN=O&Yx1J$r16f`%CB*O{!KqK_fFq~lYj||%wy?LAH z9`|RIVr~P7DzGF%Fnc4h)7S(AtE40e9qZnSr1bbu0A|6GpgHK08b$&Q)h05I2TS&t zOa=%_W3=qNmQ5!o=9>Oj9b^J&*p?D`4KZQ@5+U|L-+L}9ZA;ss!Dx)B>`>CW`mm*? zXq2?l=_P<-^~P6AzAXDdHfUq?&N?M;B(GF_siow!`kvhPyn&)Leonse9B+PDRLT(f zJvdqOHj$OPqxetBvqtbP`XU!QlW4`MLS~yYJk&COHhdj%*xmZRwVo}5Lyco|GIrU1 zR)l5n>Zx_B{0)!~nzFvukVhT2YrU+#YI&>md`^BYpRJRN=3r6ligRNt-)+6W&M4uy z-CFY2xaN!o<@;m2jR+hN;|e5#yYAh^gS#DWe9}|!gvZ~AnD(&8jOFnipzk3>i(o*?L$xpC~u@eCdtoHVC<5iEsa%%$s@cuvlGu-jX zn{n~wSK`43AHumakKi%aU4@4qco^Msfn&#x;W3ZC8mFJ~WZZM-Cvn@S?!eVIJON>2 zfer8^r-UooM3y+WfiBMQ=a9UHWsUHYwUc3kuVXGmDvgw1|#~SpJ{l-2$&NU$B$#b&RAG8b)iv>UAJg2vOxY z$oRE71kJY9+Dj!oW(5kG8VO`>Jq-3laLcvW8?0RqC>#1 z{nsDD>fF7!^4xvs;sf}Dm;ETNeC&1Tqu>+UTlmz6Z^hN;KZ)1><`uZg2iG358rtk{@4F_HE#LXZP+@0 zH_$Dyxm@DjPu+o^dg(vJ`~T!?@x-S+1JreR$1S(w?QeVw9{j{j*xA}fPYguDqU*4G z>R!D1H(!Hud*^Y{?%mj1Y-%nM0ydV6+urjQ{LgEz!e>762JqHJc*`IBE`Ih2&%nit zfTv!17N2_GYjN*Kfa4ckf=8WwKQ>km;q|}!8(3U&EtY5R#>wNC*9k!P+!4bN{V?s;<3PGK%pox|R07-|K zqR~s`sZ8p9=3$h<_;Q3`B@tE#-Kq)&2pESF4R-`!t-v9~=xoc98@EXSXzm=Xa-?|Q ziF%~;W=3QtEJY2DT85r-dE#hE`yD5}q8AWs&|-LN#z+%WjdOv>J?hvF!jyKpfknO4 z2%H2lYV4yM5=6{Ry+K=aqTrC`+ZTE3TMjbc19Zfh-nlj5{IO=ST%TwNX>eLCe~ttz6EcLg8{5XurmerFwg zOF5#H<4ES$XC41+DW|PITk`b<%McIwNA->j-p#FRPKm8${rY!nZml`^ zJEI&NjWM+Fwxu7s-c`zD>)NQ>8=ep3z{gjPw}f^1drt1EVVET1{N8zNEO+o_f8%R$ z?x4rVZn+7|C9t=ju)lwZZm~d&JyH@J+u1>k3*7v%oAKzYug1v}C$P77fW^iJ`qc`d z>zevzE7GBf_oly(@P;Z~#l>mNM|ITwm+&t8n?$8lSB6t%R9dI+90h;BJoHu%T`e$M zDji)L0PJ_igs=!WcmBK_92|-_158NQ?Dg3s;S~TBW8Wo-c~D}^6*l;6)h@ge#)~ol zgjt31mZAZ)2~%l2mfhse)SDsCSH{dHE7tkA*B`4!2#a==kEY7H?TT9z{UpQU*tsMobt}0$leuZhKG`TOKzp=1~*>5hJkwBO;>;7(FXzG-9N-wo(Xg zc|5r~54rd{hDXJeTNI|XUt7tn!#41}LI-K%MNtM3U7)L+UYEC++; z4r5hZP01n}*1$%n%9zIWSR%{-4QUV!LrBhh7^-L{u#hT^fsxolb^xXTkscI8y#p*U zXa~Xq5wMVmjtLzWScHXT$$*y5jS*2ayeNtQK@geL%O+_;NKL7$^GFiF#wQ_3^H(ru z4;L6O46I=^DDn*3FHjZzfz%powWm=xVhu-mLc;8#!0S=6@Ifw%nbZ|P}gU~KJdffMll zxBf9c@Yes0lzMD#Y^r;g5Fimj5fLj>!h@P%5J>a0B-@WfuGm)4%l{Ezf4#q9i)&pTRk_reU(ek#CCf^m4QIqALfwClmdWeaQF(o%XYBew4 z!;p|^xz?T+uqF1^Tt}pBGlN+1UFnd~m#D@Z?mQ$)%t*zVkCMGi!HmQeDICc%M7d}| znZsbNa>}e?QSmVmOWaRW<)j`5k<(Xcha?pW(@5dMya#Yi(?_z8D`nMTlgqK?z53r# zKklj3;HPu)_XKWP2^2L%VmLf1FEN8R*&CiSs3m9B{ZC{^mqV*@)%>?!tCq4~{(F>% zMk@zK4KopgY4KhQc6m)j%NK*Eu!kTg#BcRi!)cui(CWK{L(5ayjW6ru`^lIaSG|6v z9NF4Wb8WQnB!n>1U(0^#y|Yfw(Dy9Qmk>H6oY(;_KEYs$(EQ*FNZf<0&S7U`iPcIF z_s`(i&M}-my@$`-eGmTH)1HDyPVa&(q?u>dq9up7bez_{ShpT6J#X&&8cr?PuY=oB z`d^E7lw+$MDRS7nhgepy$#iCz4Up_`B6PI1wXF$Oi=krP5R+A!IRgyM{D+v5q-b%q z1t5k6^uae;^r1Hhb*<2rjHi|9cy2Mvf9v<>7-CKQ)@_=j7|U3xl%c9eHQ#kgR;>Vb z%T1g*zl%%Hp2a)g@n^W}-g|J#C70pO&)kEwI)#nnOWgU%yU-(HYxB|AJ$D`(#}?Sw z4EUVSc><0dKZdjCcd@k-Au?uoC4y;5(m_d|D4a&%*CmvyH%JYa`hJs{>j%X%KZ`?^Akt*!x=*I#Am)jH+QNkrK1~78`38@fQe}t|Y0e0?ewc=^vtV?H03<;Nt=yrQY&b=o$tFl0-FnPykr*#xjY5pw)U3X}R3Q00~1@2}u%| zNfUvRhicf#9+_uMGOqy94EuoLpm_i>I48IZ1?&_iQIn#Y3{9fr2@F-Ab6yk=QW-)> zLF#=#$rN!{ctt&eyzqBaRZYK>2r)Xi5&`i7ohjdudUV|;Qd%Ic)Huf7rk4H|%Ugm7 zL}0;72!LKRI0n5MuG9mFKs|v{0HZ^sh_KvL*pr5#tzuLtiP;~Lu2W3C&IzPdrqmRt zf>Htyf#ildBE;0A0|UIka^nP$2&+S2vDmgU;ZYMC3n2*5r-&X2SoKI?tQMM_m;v-6 zAW3#QnGm|A8W%$Vts>GPAb}xqg_u@q*y#c~0%9aJ)^$CKAc~A=7_Uh6y0cB;~2> zoN_TMPd0c~vOQTVwIg~RD*42DsatKy#z#{*uY_HT-q(MRWEr5TT1YXcIlhwNXKh`` zH3zq>#TbuE1+2@y^nLe+GT)!ZI@Rsh{g<$t8(&K)9nHI%%Tcn@x~p!hb)e&8u4N{m z5aFaP<78ZFz@nU6ez%fyFH~7?;fLR!d)Cr7=5TpV&pT>P^|SJwx`I{NS8K1f+OKt? zK1L9LKCbZL4}TE1-F_R6AKw8pV`B-NSZ?CfL-!+w4t*k=J&btNH79ZG_%a2r6H^>4;U)`oeZL7fSI2)K#N7U7{Vc{fw^+8XBm16a1q?6tPRoFgQd)r?SS!r z=LmXhfm$21{M{mgb4qdR`8vd^`$MDMdIOaA%MIxX4^vEts~#sVy$CxePok#{#IVGI z7Z4CW{E^$RI(rId&YryIpWR%!3WjCz= zBtN~jxr&xhPNYH%M<4~txu%5Js@#z(lgwC9hrp!Yq@-Rktay>ka3Z4Pm5_j*uuUC$ zwOL?cV-W^a$z!Ylu=H32f?xwFMu3tU3CN5f#A-wVAkslNf>VMZWIE@iq{Y`8qO==B znPpX?)$KqNkg5{M?iE3U7eE3bfYp;l7}A@y<-9+H5?>H`Ly8^bC{B(exNg<}K& zVo8?1y~5Z2skjf>r^m?dK)ce15u(zu}K6HBZLJc zSk<5?;FJ&<8nUxoY9%Z~|6ni^P!=9R36Tg3(L6+n{KQWXsDnt-a;Fra8J7joJb5g& zn$md^Fm;1FdQ?MT@~AYi;2{p6m_X#-Goqd~hBta5iy?#s1i&g_Sl+ED4B;Mth_{rBFD{f8dFXYTk6?z{g%beqTU z+`s-6IDX;;`nZpSgFPJdJt(NxZxA&wcRYq^EmxLsn3F;4dDe7moh-RdzMO+seQ%vE zb|HF8t=}})(|>3Ei1MwLj5~}CD%%_$=9Y?o>p^8L%x_H1xkp|U#FCtN`aNLE$ebWfMm~c8<@0qLzcs#ficLL-xvDr##Rt&1 zWK!uk_A3B_OD{f-!-Ex8s}&w~%4=}XnHA0+E^zkz3g^z9$JXX1h=9GlJsdlJ z96LKZ2%)p4#)u?La4D&&Kv#2VZPF18FfirT{98<;wYi-cDBesNd6ZLhiT)oNQC)R^iP>RV2VdT*^; zC**(H%xBa$XiRbRgM4!3`hx$X-wH&cy(d{{AK^d&Gd&$1&s$_Do84NEByAVhe9DRG zTCNj_YMAL5b?=J7pLy(7US72@I!6=d@V6cds&!i@gv|+sHLkaWjk@0~kV3*gIUH-w)V7B=qQjzK0q&5`?2F!=ef3 zgV^{eU~^|1o5yxcX;X!liP42llkSQdJk$$Za}*>*gv>V;|JjvJ?jTGEl5`HlIsb?n zqwMg5f+;bYTvtOSoD8S|N=RXxSdBqm+M3ZpdNouD1%Lpy@K?$usMXtp1z-g9knBmJ zRdON(Jra8LZi-R8DTuI23BBd=5K&j@p41SLq8b%?N>~ZdM-BH{i5gvWZoc=u?6*~% z;(&mF-rDN{^hpC{yn@bB7;I(AgQ$|;yN4BdADVVn;K^Q<4<*B17WJNyUb0aliJmle ztYwc$64V<@-E$-*#MA?vEZRkl69EE}9wHIMM)N@E*bp))5Ay1fot@&lG0i=w074{% zN?@R)UXaf*{5NCXKG&1eEix?e>NN*!q^#7ZQu4TCgUws>9uv4psmd|S**gtdZ~CW3VX z6ijZ?gw)FSR0idQd?>*LESy}LkB>8>(i1Y%L%W-4r1LKz^NTWcVnS=BYHvoUpYWuH ztU+uUq*6iKU0xC~21qcdzFbdI zS#m5xuER-xp7RZvJVy>67tSg;w8k~(QB?j{jv==*npYbS=XALmesg%)(#^7bGo#DZ zeV22dcqqZivDouqIoAYNTz(0*w>A;u0hZko8=Dv7BcHevw|w#eJa9VU^ge^a0&HQ= zAuIvnT$F<;fJ)jx1AS_Zu?343KG!g9%Fq?ej)LhrovroGoPISo9&e{*fXnZS%1zEH z0F0bM+_7MU)7Dl99s1a}Cv3x*dvKvSV1_M4p;tHG%6(r{a3&BE>B*MvPyJLU%ZM>4 zW2k^M%12TlxdWhFxE5h-F*N|AcKv>Ff&33c<|I& zTy^?>FsqPyaIlN6TjE*Id?qfr>@utl4shwk$MDE1Vu3vz930}}OD@4>mt2lhryfy- zMi|UtoE6&yr<@VJF_t+vl=B+FN076y&%w7vp#0lGiB#dP zgHG-25!WH)!8j)?; z)%-{87ud3HP3Ca+LYR&}tM`*6AkiSG)Xy*EWYVu12WmmJhJg#{$i^&PqqI^(OfTx& zM9knoxdI8RzGo%Q2YTR)k-UF5;-n$0Cno?BGaevJjEhkSoq4D9E6rE7mw?@KXVG2# zM98(z#BPLn1gwC#0z<=X1lz!!AI5{{&tjR>816|*qd1Rq<&F{iLv)7+*jNMz305Jf zaUlU5QZBvCq{*b!yGOk;B6=iKR)Z_IWCo?Q0u#_Pp%-8w!&-J;;medO5P?$x7ZCJR zTr31nLu<$@HcgtL?W0v^#Vy6at6_`o!<65n~@*@8bX$m<|PqZ2O%WVylWiQ z6KF_fq?LuBTOlV$*0g|(KC*d0tsrKk&=N%!21A|;gTY8h#8?q5*OKVk5&&q}AH)@E z&GVyh6-WYl(w;p;DUcw7(c57~K+;@9PftKJx|KfkW;pRQ znGDwOsg4KZdUE5Nwyja{lq)T1nedqR30XhJs6ZMg2MPp`pffM0s6++G%A^w-g2ak0 z!i8}dy`rpqI;yu6%=`^w@a%;e83y`kY`&tg-ey*yT=^8y|Ln?#D>a|+HXIcG8iui7 zh&(;wMb?kgr8xz(lzHomh;rXPXJDWq`n#9|xr|!K(4&{e@3xe#mNItKyeDJ!y*i_p zh%aK6uiLzQR<0OLWgI?KkEMLCB`ZwEXrZqhc<>x*=p=J8vg>I?%Dctlbfx^Jp7We+ zRLrStx0>Y0&@#faVH0LJ*Yj`9qn^*)vpLw7_v^mOxwT}Yk!+Wx7-aepH~>O;=%I&k z{P=NfZtvjKnN#Qv7C3qQIG+97FT@>p+=Z^&#P!!-kCVqcoZmf%z5N4Re#O<;+}y&s zbLSuy`aIIB8grSGkLU72wP3PN&dxMzP3YIUJ#e9Vf4x8a_qqzVlf>zsBEWdG_nX@g zm8Z+Z=f=VyOtf?Cn3kQg=4K~VU7t-7UI35~Sp38zZ)y{^opEK|M191Djas-t<|+j= z7+-3p1I!bzR%xx#KpV`fMQB^^uY0G3#B)eg&TZW_*Ef4&F$y@pyTS)Q^p{9Nxb~WB zaPNJ0BBn#^Y#+l@p7?ki9PVLzYl$;w&*04IGhkle$xnV7c6N4f=bfLy&dy0Jmm3Hn zWcX?4&{Jj_Jde9q4B>+#eZHE()AOX1q- zxiSQ5!p9B&qi4pAJXEMfEQWaOp*lcrw-A~LGq_GpH!OT(MsO;>i7}3hJ99)-oFJ9$ zx+SmXv^AG!KXX8h(_O%>Y5b0tAwT z%^1O98+_SQ5UzPLuv*!G5+D(rR^|k;1DrdL-Ec8vb*OHq6tF2;7CKS{M8l+r)C(sa z9%8lfoM`5~AYyqi1d+wi!xeXEUK`f=1Za}t-i&F?j0Lgf`4DU%S)yH2f=%FM^BRh5 zx;bh4ROJ4M6p>N@BWTVT3m@(+ge#;7t?&d$QqPKL$yVIp5-Aschn0Flgh0KX2AzqZ zULQRy2`UlbIeG+|*q1sG1JUPbUJV~EP}>Tnl+@be6&p<2QBN547!s3v6#sd6$K)hN zQaHKyFp~;*2FI8Z$USgK4Mdu?NW(H!$+L3g<|Rc5YK$P#&>}E2iBhlLE(n^GH;KmQ z5gB|eluZN_)nJ4GL>8D+6(Wg-+Zm5zm*qrqn2scYq#lWZ9{OF!x>miK7tvWMy#!cz zk|0?a1F>j6920ESLrm#GZ#bSL>UzMuX^pb5dAE%CJE>3|MG&k43e4Nf(gOPmK%(F< zhalNr!IYmIbxmXfjAh1}N|Jj->Wf(^tL3D!s08^sczd;6mW`f+a_l^)ROs_u*YJW; zP8`W|FwoGDcShxqwp`WXiz1Shp3)HIK$`Ft@wFagfjPNb3R!K^XM<;z@N)zyYF5w2V8sYb-4TP zyRljwV6hN9`kE_o)uXONzlzx0=&*mVk27a>(Ji*|xW_#KF|D$k0gxTu^V)q<%Job< zUgHM*TJUP=dgVJUy`VLQ@|x3QTG!lus>fNr8)HNWp;&X|&_|K>UXYYB?FDpS$3B6> za`U2-7kLeYnrp1taTjKQ88tw}XO_!N&vBNM3Azik3c1KimMeyqSJ4o{CpB2c=7jkc z(zo2!F61gV*k`Lu)MKc>YhAO(gW`D|JKB1e2v{sO@xa3m0*H9bW3NXad)#~PXK*f^ z1BV6r{s8;C=dkJ{`V{c2r#};qdCU#C^UhBp#)RX?kD)8dl9kML5L(6?Zk-Zc6P@zi zqvl<BRy zyb2Gb(R2Mv$+V1#nk%y^7!Ug>8~qyVIDtzV=3UMw&&hdq$vDUaMKPtphEeZ?3t6MG zY;!rrx}rl1k49}#(Z)p79nY=&W^_UZRrbYlE40R*;n^VUHS=o0+wa%HX=|SAXiEzg z>tIykL2In_b=3Z!>r?+8a7Q2@)(R`B7xXEaLZ^!Os@D(@J?-}(A~C@nxeT)=%2rPV zcXOuvsv2bkjKG8tR6$HJfja^uXyQ>$V01`P^NvL7a8W#u>z?#Xe2Nx01fkpP&`HFh z_20(>0GhKVJ@t9$u73_zyQcwJfl@@@Ex^wE%nL^>hl!*W4q?f4Q?yDn3YcKqPKd00 zI)khhH&XzUg=r80tOgG~fUyM9rqqfV4m=^Tj#a&KL>QXs3GQ|9KeauLm-sYnkf2qX)T25AP=i}%^o0{ZkpNL6YBW%kIn4#S zH#+JR*OL;H1P$MUxN*i_1Z8g|7nfy-VO9PYvMFPbmHY+`B(9`;b4q;vJEd$S0+Hnb z@_!{`JJHlLbHryL1K-RB7mOIN*f^a=*8F9}o2WRAulQP$=|RM3o`UQ>Tf(A*Wz9!Q z9$JoP;Kf5bJ}sAbN(0qo9@b~QJaY>3-0!tzdTD^U%UW~t)qtO7C}_wBEm^jdAtr@OtiKDbK-+?CE#LdTh0j~s^PUs; zYFu8Y$FvmmR#NSjv%uWn4v*1TtM{qcxG_d7mJ96coWLWGJc6sPeiR<}xF_P{AO9HQ zhM?~wkOG*1{euJS@2|kTz;i$Exw!1|OL6yIcVTPu7`jCV?s)8^Kx1=cEq6lJ>uUbZ zI^AwU?~1=`x>Mt2-A)b1dfXRs)pB>MeH{xS#$!{ZJ5yoJnWusT*jBSOC#rIPpo9jHac` zxRuK9uiHT7<}a_-Mz0kTU~KW6Q#jTsI&;Q?b&6T5{9Fkiz)pKQ#^%;GcF&%}V$tDo zkGm1e#R3mK^bq#;cX4nKk&y7HE3U#bpZQE&ef3qi@4owS?>+b9iYp$4ot<8|${_KTmmjD({aXAB==jOe43mPi3>rKp$a7sMI_fUNsR=7)X3mvfP;x`8eOCw7HoSVaWc;o zJKce1Vq#8?7?}?5T zFEx3l(la;i#l-L}Z^frHtkLb*;GE=_h!CZR8mOE&dkT0^GH)NlA=8*mDHjAy zjs%2Y^G)ixL&4prK#3ugOwk^W_yk(v$WNdJ1eSmW1S=8?!?N5?K+b7ImY*OYY58bz zk2uP>mfVYp$ifm6B(dc`b2`CbVGE!0lS`wEE|*#&X=0-%2I~}{UU5m`zQ_&xMd{pcYlKZ1uJI*lhi z=}Fk!+`=b5aVu7bEA;&y0QHvH**S(MKjkU7=Gv?9;QjaE@Sw-Zim= zG-vUzkfrDJ*HQ-b_evVq(hbSyS?E4;pgxByMOQRzv-z@ed;rkDJ(%5JRty3uLG~4UiQ>f80rDdEXKs6qa1iabjp9r_F84!%6I2BJJ1eeX%Xx>Vn2q% z^jQ}IHkKQRTRr;K3X8=8PkQo`u)DjD)#?D7TiaMJH*n3>SK#EyWBA0ax8wHPZ^y}# zCvnAtsZK zJnr${&{JsS`IiKI)PL3&=Pli>E5otw*T-YR;~*Osuo?;4(|NS^+6Xs{*HCePMCe?| z^bg2|-uZp&V{74ZNeAZct!4OB2-0?YU5sljWM%j|qh+$N0nsp@;@jqT#azqKsg^Kj z!v&2_{!|HvB(07ERTxE}$wo=DZK&QLfOx2pp3W!IFg*>4NdWOcCRy`Zh$)kLHlM(O z)$@{~=FXBL?28z@+Qr@{{~V8;y9fIZ-w)w{6#@GpAgy|IhY^>ggs@(MgT9?(wPz1ic#zJSn)Lq>eph!;OkX$qsY^k|~q{VhXx@O=*t; z21$S#ff!)*HegYuR8P5FcyfZGVcVweX{9R2PFWI=Ch*CnT4>ILMvN;H{j#LA2#1X%cudv@vW=@kU_eZYdEr8|xg4hX{NMB81( z1PKat5Cb0K4n`j}5dk8UNb-2<&c>Q@X0|W-TK5loo<`k}yW|q9GR8bwCRS|z__1*Dj_KdWIf@eHZ@n3o4tr*Qu4@F~ZzPT?(K)$+uc z^fn`(uY2FyPle1mrwFby0Muj1@7v_v;EbxD+M3qVb!wjNeXOelRO9LdFOKMIZoaKK z&$Ts&7y0`FEn5oqQOfwbaVWV<#eN*WQ}$Qyr=#XHd#~`e_F@wo8ymRv(o6BksYh`3 z>^VH`X-~n^pYc@Ocke?ubLOmtWk+0m(M33RYzq%P@Bq%9+rx(0{W)BkTeq^GmL61Ib8`9c%2ltK zzQbT(|C?X`+TWy)S@!Poy7 z-C~K2%{XjW5ga?Vg^Mq`0vBC!5mu{+vu97^lb^l~4?OS)PF{QxkG}3Y>>N9W7~@(3 zG$GE6VdFO7)7lI*{A=Q0{%&ow@?XiIxUh9;Wf%tx7iSCyErq?@Xh)5^brDgvxn!zW zjh&KYh00@mTS-w(;u>(Q(N{f}@^95?=93{O@dT4YJ7pDzQkbi+5kvFjpDw%!vJzRt zvDHrNw~ob5OlADO;$_32Y2Z#&D*ogBu5`#7vp&}d8G2w!*^5ewz1<3vx)6q(X_kl6 z%zQhVGYWyUXlsO54dHY$FB-P0g?~TXcxtIK1#jV))fFwlsa3P<+C5KIF zC<)N;hZO{V(yie($r!l79%`HsQKN*z6~ahS^dO(i_21W!faS&(&Y!vy?|H?)#%k{@ zq>t#$*xCiQET5Vmg{_P<32=C92Pp zU;!io6x3tKJ>xtKk<2T>!h*yU5|IR9MhKE~h7t&r1c8wcI>ZDCaRrP3VO4Y^CCz~X zJw5oHXR8 zS96;thb2L0Ca*+{C_Ms^h84L`OANL>6A_B3tuSpOYn#;*~R1YCWMr0ZI@DO6A35m5I&2OZb3k^w>LV18qx2_^m@rR?r z$JZGNRDN`$k$+e4eSb9zLeLO6=j-~>pbS(e_L2r~+dTGygqN~LdD<^BB-$VGPbZw1 z@}c^2el_}=1_P81XDlbSGJ+awy*gAoVR&vjpmFBWLd~P$JILdrS*I6 z{Sl8P%FFJ5=l3uigw^f%_}8UqnCl-Hd*95poyW5V@5`$tXV?AtGn-(Z_#lhho+srM zCO8z{kYgB^-_~SqoHt#OqGB}f5#d$zs3jTn3E?e5{snMd%bM_qxZ zJmp4oiv>~w?!D(8Jo3m{JpAw@*xTF3=JqjMbjc;ySZt<{~?4x3b0;nV#eiUOb(S4~7i z=o0kX(ltI0qF{WJ0TzfbM?^DWZqXd_|zGkdgKiD5B9OYcL+&>D=xnRmtJ})Ha0f^0XlQxF6T36v2+EO zeBLG~v^MQ%V~*(;YzBG5mEjTfHDUI^MDecsTzC55a{!RXK7w~4sFiEbS~Gv%BJyRD ztqhC7YBlb&9J@bnjC+bZZ8(+pCdLSFUxs!|;t621AItqSR@lcl?|qE-fwu;ifAhX5 z6V{biIes?|*7r>Z$xI1Ja@llGj9jFf$bzc&>tPl{pDm9k0QqFI>^L{)!kg0P*+gaa z)m#%Bo5vT6PpuaEI$|giCnJD=) zKe+~w5*C5cXGCH1)=<9&_kS=A3g+-)`&Ac0Ljg7EX-ZKOiRwrYV*)Q2Ni<+707%J7 zJHzM{3l0x<(eL(PUV_6CODk(i#OS+#ULu$Xixl;wpMZ0x_mCjymYb%GM|9BA#)(r_ zAXf$xtrQe=A4Ea#r|S0qB7#UdHWF3DfutcJrucHw{20lS;`XEl7lN*5Z=pPDDAY4_ z600f0WT|Nus;Emc1BQlY2JtFPn&Q}3R+3iD2{yJqS!|98!NKyH_?jh4s;V?aVZa2- zMWdb!3@wi-@TAEewxeZ>bABJuaHXiO9*8D+sHcxAKfx<4f+KF9zvOV zA`90FYVaaaEF!JuxYAVEfvLsO>f&B%Mn_ zM6ghk-b!q<89K#wk4VhMJO;oV3`Tm8&_e*};pO3VS6I#%g6=8tki2C1pI8lQ1i0Ua z8+ydNn3x4DgnhABt+Ez@K&&|LNv}1`Nj;SyT9#aF&t@J5HG%@k))eSGK{v*^9SD*` z%QCHVT2|5Fnl{ezQh%N|8L~2+pBMMt1Jo0Ymokm+QIpMREH~7$QYjB;$l5^XbAf_2 z%BIVJt@+M<*Lu$jZ|H07llI&W74x;fvwYd$nN9hxcs|El>yV1s%QrP_NYFi2$~Scz zbv~3iqf9Md0q}HUd8$K&M{COyhBiXmKAS2wtufSxff=>}^-i-jY2m<}9(BRS2`5!N z7+3^=9?+P=pN&vcIb^Qyb?ckwjt1VZS+lY~B3i4Dl(OKQ_e^dZgynLH&Fvis2>bgz zKK<#tu(`3sa@j!y*xlR5!Ql!q0h>D~aM8sVV{>z12O_#rd~erqDD_w0PlMO#(HD`? zCc)rrQPZZGeO=S1a%?sIYT+S((R*|Izy8MGX^qb*uSo$}UM&_R??uHyO_Gl+vlh)v zf3Ll21I!UrNE?rRTnYJR@g?&UNk&3%#L`MHs^nZWZ$f{0!T_(DF;=WY2xZ@Sq2>r% z{XMW=IcYM;N_ncULD4Q|R1mLq1gBPBYi6a(N-i%cWG#0Lrk( zo!~8T^5ix)mm64aF0tI$(EdR19E~M`tvAGoSV@VDI@w{ZEO}vR2(!(cOpz#!8@@4H z#J%iyxJT1XP+aSXZTU{we+_G)A-t;oezK9_^kobWhm#9c#y^HO$T#d159@i4D;-Rk zbIbU%ZtnS>5#%|>w62|2yREU+mow{(zy=>~jN?cl$OwDhkANCtfRT&t(4Yz9X5277 zvvwa(?&tjh^{Oy|aTw1O7Lq%{C`sO^4<{I2T2&+)px4oh*0Xxw`WRYxlE>i!e||-i zZI*kj^f+wML=PQp&d=e161NOqq+pSxiE*O~P_Eos=nMsbVpQWsGJ${rK>~5IB(MYy z0T2x-U=HR*A|N}37jO<$aTcV;9X-8|=B2UVC03#(s}~{VP(ZB=qqs+b^|T`~LMH&J zVogCQbw}m}17yK;;TEHTnp?76K*W^woZCiW6D)*o zhUC7T#%gIvUe??lF#$m|j3-JFrVFdaV|iVK37UyDWzRXbJx5-ROd)7{lGQs#dL&vv z-EtyC)YE{uGg=_%!a#?TB=pd4JE-?TlB8ZdfEi0v;a~y40pJCs-vh-6GS4a&F+q@_ zz9m4N*MwyIgeBxq zsAL8cZ8sT~Tizl`=-f%e|I2cehFb+9#V^F1Ymb9IT;t8oI;? z2mm4y2lRmLf7_?%5s6HYRNTq<3#}d%E$qg+fLC`4=&%y4A%D(0dEeY_5XUO2iLdBYtS5`7fJ(@hs%R{aR z$c7h{rKchAEVunho-koc=WuTaoy$3i!@r2w z*=lAS<(lRu3E3Fdl08a%7{T!2~ITq9X}LaXIyFBFLCB5!weH^1hL^` zYff{xH~Nk7`pm73ALgpw#n{^1MhF4t&!0noxWewN&PxRleKmul0Pcops-o<0{9- zM3%!2D*Ip@apMljfFDZe;ehU?kSSVo5Jz0K0Y+y2_1{JpBr0LjQ?KZX4x%C{EE$+d zzr?|WFHdfyp-UwoYM=m9SEF@A=Ci$8#IJ0(HsG`flW)w?y*2HZbF1I44N4xGGICKB z6=cF<0cOS`EYQall9iYW%vdg$x!RF3WgeL|=U_KyaBAJp%(jFlU|FQ~kF501Y|8qY z5Mn7U-R-NT1h>WtOyd)qLeI! z!uktrMhg3%tw*aIUaM_yzs{-T_vbRZ*ZX!XxQ->w3pOB?_jrJ>b~Lc#Qm6qO=7WwR zkWmgKYZNd>Uha7|VyxAOO~4UtW8LY6;w>iYJO+{({v>xlfkBH|*4NxAS8GjLxI-q? zxRJzR*ran+TXTX9Z0h=)G8i-gE1=#N>hZCXgh((WhMs1VNIuo=iP2HaZHXyV%$?@) z005HgjgT2AYe)o1LP&xbf`(yG)chD^2|-1`TF4lbv`{bD%GD+Tqj&Vuy(4OLUND1% z5v^P^C(X05VrV-_+4R!9wN^w32|&`E96DE1L`W5@jv2iWBt-NQ(NPCbuuwi@yyD&= zGVCYI$wH)|AOcnSJ7V-EgmF@@h)lywk@Yo+Oq%FdbR80@@k(=g6#ONgfW~>ts1qc$BL30N6iL|N>0D!?k z;5C_;$&5L+@kvW~ClcGo?miqrRtB81kyb;52m#T;k^+%he-fbHAZjccc(NWtfIO3n zu7V?@$2 z&nXEy%ZH+2Y#NFr$-}gg?VC;wAp#BQ2?COoOU7%cR?r02Vj)zX|0ifQtiz;6q!2jM z++eA**x0z!Ea=MQA?p~=?krQ%HN;O zct`Wp2Thob#&5WhjcP@oNzB6_uakaoln&!EX33xP@)t7I9M2xL)qr39T`k*<;6wxd zFxv3*wp(E$tq`XYp2J2V<(H#z`@U(*%5!s_%%K6F8b3xdzVm9V?+qU5CJo5Ipyl>fYr0zmhLUd#7Cc z23*$BG&r9Hpr`xO(=Rlo*L<-T~O208W&s!V&N`i`mUd(mdSXX08oXjD@S8*YY?QDJiH^upd^1;RYR(|w0&P8}x$&1{E}EFdg+Z7;f^pT~8newC z)xspk8)Zynl@U*?C^hGe^|;sa8quVM1@4LqwqrQ8Dvtqe`1p6Cs7o-{ zS8J_mqmc_DQufynxIi=<6jwrnd-vBB6Uy&%^#*T&+Bk=d7XxFP6N)@DeM?AaUF%@f z8uJK7{~ws$QTwfho5RIfa8by!Dc2gB#N6e*phkw2li>NubxNECRuwF~T)ens1coa5 zo)9sK<}wK)5VpjuU}%a^T^j~K+<{ZVN;C{20O*p2PKek>=9Cpo7B$=)B+)!7Ea)Uz zGTj6ut;LMN3a* zBP@@Ixr!$tEWkMz2*bi_M7>{fBGQzy@mBH3f`dc_%asxKCG_<`9fX0tH%}Q$IT0{a z2NE$85ff4bK!Oz#f)Ex6Ac{!PTsVO&w+qP-nhYyOfAaIIcbcSQxIu}axrjuKCCLm!WNos|Lu}6x1c@R*>gm<7 z3VKP*qsruGFN>apLFfTlDa{Zy*d)>wbs8H4AWrB>PltmH_W?p8!cr%K9DvT6XqWOk zuzWsZo<+dQJS~PWLZuiA<}NEWzEqh8!|+7|qabRkf!R`_xsVBJ$O8a1PAUH+xF-XF zv-h>qJvO|V^8AuswmhvTG`*maB@Z)Sr4hw+A>S`mbevQS?WST(BOW*i+lAq-;#UPv ztaE6z6PbFzFo;+ z#y;HR_2RGXdqwn(j z1)k68oWp%JczUHrUM#>Npj#Opk%e8ddImD{NdE(debmyS^O)i6Y|snV=|EH2&*_za zH`cr6^z?PGJZf!P@2rz?Tk>!dPsHR7%SYzxnDv0-ZzAP!qJ%ehg+bA2O`_&(sP_wvzgfqyj)L*rJy%|vb8}u#rijq+eQu}K z=1iZh@y%_zx(y;KLQ3?$Cz`bv@_6T9H7X%ld{>UN%x#o$(~KWwyX!o9TGt%o7|j6% zOp~YpT#i|#^zqy(+${0nsI{-hv<|21d0Yt7FLA%_hq!201_7oNcJf$V=`kT{GA|c$ zXpEE2Oey=>j^V&;VGLZ11IWodNBzt!_nZ)PlmVr_Tu3_VowDs(XqmfO^lTk7E$Nuz z|Den!7YNdzfOY~6Z5jNTZC~kWxrRUJe=5f(z;Zr70wUDYgAmO9Ru>|X=Ks*cffZP^ zgl#l|*F7V8>qm2dsD}WF8htd6Niy9bm@=Vr4FqMtiP1@iC4z?jh=zLP(?L>&pCsl} zDOJ>Myw+z-n!AFMm+VcMcB*m6_82pk#8_(UnhQnLGlSs9s)R@aO)wiZEvzWrQ3tZ9 z!UO{%gjEzogGVAlOt8EL>Q~W=dZz>;HFCgD{9&FL(Gm@txxxf#fq>b(YErcE5td-h z$s>{l9p(g~9wKpY!4@-=As|J8B(1Td#!CQ{(D#-<#_4+>^@NZZ(GsdMse> z0E$RFNK82&6O6Axa_$r&3&RqlFr*cP2m{?q=4GmavwBfQi4a5xiB?e}#jRvH^8%@X zY2^kS35eDXa{`Hm+9h4690Hb-g@-{)h7TTKg2YkxP!g=7g(aI|>i`LnqvpjSGj?!< zo|FOVYj1`J^O|Avtc|8DdVT>SLLgl;vfMr*9_FRqL>f*9Q@$ev>hb2)74x1q;aALP zlSs_yqycga!NPLkB(cysXkuW`L8K{cEWI!hM3LCu1>6XlMBz%71BQhl3Fr%B2*E>! zhohNV{wrx?OMYs}BISE-h@do9Y!uI+UQ%v|C?xc($dyurz{32IX_S!39R>4AR`JgH zerbFu^Vs<{;wu%u@Nro8quhd{D+weHC*x|&k@2BPaXHV1@zIe?(&%HNPtMv#uRB<1-Oy>I}iC zLRl;KXltzg+Yiy5HY_^9VnNtgc33VtJ#2vHdMOLllOA(`dQz z%$ANeM?2@>IH!-c-kZ}2=VWLRY0^1==6Kzdrkx%M57CpPG95FQlc^`R7V)~`rFAnN zZH*9E)Ka9(TLmd^z)y906~x$;85Ir%0ughCZ72k_F`~ThSGloAE^}gXgi5+2qHAJ& zR<``E#*iCvk-=M|9#4I>talf(sYXDZMeO#xeeRCHWdb$dgmaeX&&C*3kFRXQVdyc| zv&IW?CN?DIL(Le`-ZXP#%T1SxZ?O(eUQfn)kdJTOcwL&JAqZz zelt&z2}Qc_Lv9_QSjVEjVK3M{l5DVnDOKcO^H|8!=3$fz`* zud|2N=v;T-A@5^OysL36^;pzuc{K*TY7lnAskk;eII4iC+h0T2ZH zwk||T6?D<0Bq?w9r1?iEAw-?y%1)zH7*UT6KMNy@YRqx?n3>RbOiTi?#I}+%@ar5P zJt%S(<`Xn`Mn?>$L-qa;ASTw_8bEe-rIh*ob(${b=>%u1XvjN>m^x5sbH>7gg&jz$QbOF8APDoBuRPz0f8AD)qo-9 zRg(ZU)<^^=^EMMfm(7PV-!-%dC3&SWYJld0WIht6h#`CcCG&PVi}% zDaG>rDBnwpD=54o0f?=6N^!7vuvYuZ#U)(uHr`#+ zRaOd(wz?>ly)poG-(w7+OjQUH72{|blgi(2$Y6uHF}nfP^`%0_8P6{pnP%j@@)~(r zWd5jgPb6xDk}1$o8#6Mv-y&ufrhk zFT3x!R2GM*_s}|>;V2_YtzVAjEQ1F*0nLN0IoLYvC*l1nMK;G=>wooFy)7$I01BPK z(c^dhfJ+Vhn&f_}JJ;jR_dpg3OxfT&r*q6*u1ff9hx_CCw$^Z+5vKL-+&4#!d5%t_ zILsv?^#+D|Nh+sIb{OFDr^*upg&z6m`7WITqcJ4^aa0IW*(jmzgj|`l(OC?#mcR-& z(5QkdNMmn}@u1qIt<6&ctA0Mo=}{<2KH7TWYGyZQaym*8FZ*3P)=D8Pznkl?^{lS6 zLqs_dX5OUsZ>wx~D}1BwyY;*z3_~(DTkB$Ot$Ac7m|>zfO9i{0(=1`E#|Kw>r}LRG zAX9!3!VDhBpx0N|di)vYF)>ux_*5vRTtUa-$IM!K)Ciw=Zj&rH7(*q=gt4V;mqfco zX!Coi4J$y2_c}vJJ@<*Q159938V_a#(5j#Md2>D{)Cdo5ouhFy+6QU@(ifsITA5MI zzxVu0E_l_*Ax=An4huXPyWkEd_B0vaI)>Cbm0ZWL{CR6F=lb)1>-|1Qi%VQ{VWZx| z`TH_Kw|T9&(ZvM@$qS=vnLJF@Dz8x1DqIs{2z6G*-Qk~1@gjBl5X=4#Ew-z|i+RrE z1hfGusnRc^9w33#@FG^>B}7wXMZluo1jJrdAfXdLz*vzg?4YC`8y4a~5DlR+loJaF z(UkIpRf_7J!J5k>03Z?@qn_ReX!&i3dLbzFkepDJE!n6*^^=%@PSnt_B27BmgR$fQ zMnX&xfeGS<1M=K2gQ3U6ofPnZ4r&PBN2hI@$wkOUC28NKwX45VH=fmsu}#t5K8;-$(U5-sK% z2pkpuWIRFyZ27Z#JMmU~RHtD-lE5ioMOuMq5wt9ICu-k_!9##-Enx;W(S*+kg{K7p z%fLu%VGg}jID(h>R@l1dP2?dIieT$*bSjXB-608tdVm6!Rz)fia*}F}qzXDrElfdk z$XIoyg|!Qi8jj6?62$tnu)mamo`8-mY`|RM$!MtNc~Y+|q5zm-49UH)Y(IjKxYImH zhHnWBFsYG;SaZM_u4aWHK@GNKN`#F!LH7?^J{V6Z?O{d$EFmzVvv<_P%MFSsc#6jp z>)%5;>p>D@^Abs9XwL(7AUd>}#?`VizcGX1r=`o7g$CTGCYJPSNKDp|i}bx{~E z8*(?V=Nn9e;lVEh$uOrp+%}JK*p&U1&+Bh8UruTO^4}=tR$fgxMUZuYEN^0feT(1e zyTxd{SgL=I|&Rkg;{!vB_W zrG8$wQLkI8Fv92?DE@lxvDRK|;V_w@S)8s`a@-t#*X_=|+uY;THTP~yuV}&PC|z={ z`YvId4k4yP17yt4RgOzO0H1VgJ|%if_3!L;p=GFn!83=lGH!Ir6DX#pD(mAKKPwrQ zpPV)kq(IRmKClhiY>!Z`E3gZ<$Hcotbe%T zJ#M3=5SL?VZKx@u8Z)>0`2YZ93$Wv+W5H2OAUDwiBB>iU#UC0!KkpE0&0jfwZyl&>7qI(mf`(%ig5kBH4lXwvLFXj-b!I*P9R%n zP-zm~3Z_Rfs`_ft0wT)R-{A!J!meyIMBB)h$)=a}^jlIST99InBJfH^o>VjUgF;Zw z?bve~)2DU9RG#yU;Mcn9z1ymG;D4`6h*!Q>)13+Is__q1k~B;p?@_>%BvMa+purlR zCoX2f;BL(tHo^!h5R-;6<^3WsVMDYZat5V$7j}XlNtJE(=KT$^y-9?aR2b7(YC%c_ zp#T;eBYF!>($o4r=>da>mN3Xu(m-8Qbsw{^r9ntQ)UcLhMhix;WTBcwR{cs0j;cK& zf^zi}Z~&)>kn_&K^0n9rY8p-$S)j@^!>ZXtHGCM$=m8{Byd&;y6dHtO3 zQ6Lju)bnx)XxIk`S{htH$wODf^0;WycJC} zy4Dv4aG_GMQllSSkt8=b0x2pEkvRaVXP7Ccq#03qQNtQLZxo=4&h8f2NgcN%PB^3&<8!U{5VZ#4rWIGY_{H83c)Jo~_ zhw(H^1euK+ZdPH*p+i)DE64_H&Lhz)=glhmKoYAWZ=Ntz@HyZA#d!1d2%~wSl3&Yf zP7x~=<#qgDL^AIrDm;DQbbEMSwzW>4Z`~UkJxbZtym^Ylm|9-1;V@??Q25)LF#u6| znML$8z#b4&6RNy81f&?7b0}e0^XR$1*R@f$Q@1^gvc#7vlq-u^H1GOmi~p_#=!q$VBd&d|w?p+xtg_5Y5f8i9^Nv>(;5HD39AP6EwWF(&1`j zMLh;xpMkcOS823pg=m$(TYGnNo&CvPTFAwpcqo5HOgW1feUVnzi|!k}m;QGJi=%SBcw0x}@62{+G20gXYBA{H9S_A(=|@k~d-Q3gC4yNH zdl&j)Ne;EVUn&&{vab^Xk`PGql@Ln0X6lOBReB^WlNxf8skKQ+Ly?$sj2@r&%DL$$+1{d7Pyxk*#NlhE-xj=|QAQDiD2##wcSinMz zv=_^rF_iLk14|&qiNgeRP=iqPqywa3F2Otql4#P{&J7^Ya12VrHnNokn+J%R987T_ zR&S9^BQ!S+lP39<1kLv%5rl3;qadPHbfDf9kiqyIlPd9vG^8b%_Yx8;Uy7iMrYyVX zR8}&z;*Y2H*Zejr5Csy;0ixsWBS4nO76OF)m72p761>tBgmgTefKvhsqhrm<(o+Pp zpi69FK?w^txJguZWex~p9t=sVZ4oQHJJEnFh$`7ZNUIgG6&D(|9j2B|2HPTQw z3J3^rPZoh-1=jF5H`b9oF=j1TRCa>r7dM(DnsDZvw%i2*aFL&K;c$Y-7^4T(;jMl(qT1?lhrI)py*E-CFgj*369*2hNDve;c zSL_ife%JWXs_N7-F3jm3g;|l_WL?LP((d^1p%Pd;JHNue6`SlA``)3=rQV_{WWKR zS=(6O_bY-X*%KiPp#Tuoozn|W64V8hjEQ;j$|hl}khD}XN&@fS9JTq%w&v~~g*4t* zZG@;d#q0(%S9vl;tj?KHw$pqiNR9MSw85;V65dI51j-)VKCCB(vqYiYk=MVjeRohqN&v8za=ELkd#!0P1_ zl9r0@AvsYlCsTYKC!rnyJ+$<&HrSiu$B5D+Se}!}5l93#mt_);aXkVEn1X6p9$Po5Jnx{k+pr|lH0FoNWl!gTh znKI)Kla}F*7E%@%37VgXNsS4qPe>t{2TC#;MTW1sE`fE8J?yQ6dZ~deG)#QuO=vZP zfhu46EC{0)076>nNd%f0T0O>s<2(#c)Q4+i;7Cc8I?dOTvZJEe@zhJmctS$3s!h6f z3`QpeG7lpSL-5>1Z~_j3;i1ikTzm8IN260@-_U^d_BS%`%U&H7&2)LdXPS9hrnmOI zI>>XSU?N*_p+ve;<#gY|#i%U#o-isNK(?=QXhu0!jQa$}G{2S==faNi{0y8E8NHBY zl|PLSp=w!XB+s$0LtE*p$G1-IFGEhI$|nYSqiCW}3CraMF248#c2D1jn?7(8?!Wf| z93J*qY;54h8*jvQH$DMz=VF{bbK1fq387nHb0gqS-}**;`V+Tfu~_2#{vjUw_|L)T zf6l8uVe{BVJ9p|dQuZDks9)1(PZH~{HWYSwV~oDL5AtPVmn2)8bQlAH(&yo@Q;BZl|-?;Wae2D zA4hY82|}X$N$UCfTs;x357u>SPcEzu_bxb(j~S->c{E2KM`CGVmAc)Qa5M~Rii2g2r#ZUA-p(Ao zv;V|HO=jrrWK7l767-lDfrAPE1AWvy6+lV^Q+_QuCnX3mqLvxb z{7RnJ0fh>~nvPW!2E|RW5ZMI?3n3&*=2b$bBqkHcbVDpfm0e*qmPF5C23vni08OqO zQvwI*W=gDyP+1l0AVCdHuoG@(4UP~R_MO8n>A^k`nUZTInwf_!C4wLdj~QBMa#=bkXs0p`izo(4&^ScQ9171)izQK(Q(VTKv9q`m@A(m`;q zSj}uA40IA92v{Y-qSH0$J%K7ItT{P85fVkD5D`*9PueHP2uf;*@%2vj4R;AqG>2A}fR=nWiiTlzaQqN6bZIrT zO#2BYY@63f!E98-B~-V~2!ql4zE^9WR?qJ&c1(X_WCCgYaF}HZ;5J^e*MMr}t zJ%C*B!1at0*13Nibqd}-@%I7bbtvWnC?DP2+`wfgkK+UHc^m%l4R6G4pST-)dn+U% zfCZObdJ<21(hc~=Z+aoFz2>pF|G`t}W5i{b9K$_#d;+ih?LWYYD?SI8U3oFiof=lGlEZHSJ($+W@U96_D{Ywvw!M) zb-&~d7Grc-uGzk{<(-y%>hBB2I8)2wb9&fl%16jpwVpBhTc&N4x^)QV!Ar5S!kFI0cbYie+v8(Tew8Yfz7Rl{+L=T>2`v%uL*tNd7@qFaNEEkKK! z4O5(Z@Y&>mk>Woa_@EeN{7uOc`>3{}Ywn9t=6acKsFYHZAvhA%%6v&+THmbOv~?SE zh*-B-ztci`|D6}P0RP-Zo>O{8_cJ4y8eUpNX>Oe5HOEBD`}w3JCQvZP`!(OS#y(5H z8sD@w$?&WV=cC3kxB1HV2jV<7@c1>s%_3QA4UaTZzSCsQN;s5Cdv3e&?j(;52Gq*3 zS25NkWD0=^HLS@;hrT4chpJHF!Z-%TFX|PbVIfHqI{H{_8;f|9j3%4ZB2QEAjCyTm znNCH{vcUr~WXHEtIPl7dp zD4C)lYNXc+DKRGwjiR|Az@nvk$#P^^Wfrg|)D20!0f;rX3X*_0W&G(a6AA|)B?h7< zFa-~l!gO7u9r|~GXtL300r2KGVu@aLQ{+k_l0ZSjFp>sWWEd$5NZ!Lleu@tONyjUi zLxo8_DpHE*A(s4<0SX{W8sZ`vVv;PxiirRj%0p{l4%vyhhTo7RNF0h$@~dNk|mY1yiE!h*$_#mRaZ45vf-Y5>i?raIj>;mVB0it_c(R)PrLH z1p)`n=_5(uNUX-dAesnSjgA73_tJCj!8i%g(>8YF9|64?GL(iyXc_KK4L-*6)M%i2 zR#Xw}z(`232L(naf~d|bI&XG?QO9DYCd(J3xE;*^E6&f%`bI+LEkl+YMi3!j%l{L^ z=)BQ7&$rY|%E?B_3_ot<7l?W#nK3C^Sd^mL;2GAF8oL(I{UsDMxie`3XZKo@-YB!> zmU7%x8XT+)wT3gf(m`bYMjUJ(D4^WK!0kDT_O5&ap7$o9@IH3=x0D}?|94tBN5ji! z(N?E?J||ZOZ}se%XOVIPj@{>bk9qktG*Wvf8g@Hk%YNxPRXo8ML0|q zzm}{Hn(}fujzUAn=Hz)bl*}LIt&NZjhI18Gx8^^2Bkx;~js3Uwip);^DJ` zuz4{qx#21-w>EImKts z{OC{pBsP|W^SgUE{oq5`JAGRBi0`R^VGQtVtj9jXUm9G9KHse-Dc+_fpw+>v!v_*JI8| z)B4V@`T(tzz4P1|*=R7QFShWdoLj96x7MUw%+j6X}ed_oyr?0hes?|$5SyXc zMpj}PYM;Bn8$uW@L<@j5A)Z5k=42Z8%l`a(VC?2U=XKE{bagx9cPT6ASToKn2)K|w zX=gg0dR#T*YsGrD`p?LoV`TjO!G&y{%jr5|vQ9Y3{|d4N(owusrnm)8RV75OiN(O!2MiXmEvY8K$k($i}W z{ibNiGTHVv0kMyO39w{IOk#FyBcv3uwY7oGjSZYVzmIcg_dpVJiM%;NUp~wC496(B zGCNrKspOb&;og{EL4@n8#{c}=W`883b7cmCeEvKm6dV->RDR?0b%8)olou@DW6s8* zi7-JlGQ!v}bw9eWVh|@|j-47qBw5Z9oukvFAf|X&Rj~y#VuTtYSd9V%1zbAwEQEHdwAswkpV|LQZI%SqvpT?z@#Ou9ae*wE1D-w z%!^c18HCdu(s8>X%hx?5&iOoyW2uqD^1CD<2ogF7h!P+HNfLTf%ogN{zjaJv+B1<= zdIBRr4G&-qFZMX;VBSL-G8y#X1*{4p3y=uCX!7Nb#7aO1dkavH4<(gk0*^qeI;r9) zkVrsM<;wsF1|ufjmlOj+P%k16hY0{g7!(Nz0ttc;-Ge4#No;FOS~Z9n2*9EbX2=o^ znE^n-42V{NCvnOG7z5_LL)qw|-Y>Q{#lmRp=(_W*PTDsmGa`7}8cFCZ#>I1#1hI7_ ztFC31YQ+u3g^t|drrs&ZXqJ}S)`Z7o?MbhA9RbZNW1&QDI2nqzuvQ|1mVVb{v7H%{ zw5)g{4JC39!C>-Af*M4FC){N@>g>F6WOO1*JJgr-Eoz$>=ibh~`<6VpqO_(ZNeeC*4@A>u++)gjd_d6|lwr zRUS|(k}bJ$9gj<7cxY>0%8FS_C>2rPYZ(z0zJ^sJo>6k&IeB-EkK}&I4HxsL;w^c3 zG}o%_I{XRc@1kD~!%Kw$Wvs8X_*i|Pjpinid^+y$ZSQR3!TayVt6uXuJiHrl?6S-8 zwcq$Hc+PYF8Wsz}BafWLt6%*)_}GU(h`a7Rhu`_#-^2g)1K*G1$B$wE;1IWd=05D6 z*~M#K{xXELk0(C$$++=}Plv2_u)nvf{(dFC6@S;E>-D(jWbBdrRlv5ncEAv>){sx< z)@+?}-MVtc8jOuxN8v^5YWAD;*6};FAz<1Ujq$f=$My=J zFba#z2T_eKFJxSwtpO(QQyO@i4Tj*y2N^IfxEQk;PuNe_$AWwLPWdk|ManuRtfg#~ zZ5(C1sr#w#t>2*Q5pl#M>VEtLkL--HP@G2J&>-9~adt6l^}P-`TkqC=wcz5498s1s z@;zX%kRPSgwl-7UceA`41rt)H%!P=G#B$S(I>+40du}kyZ5Qp;--?KN1HlACjQShB zHv^Ay>=zOZF zC*s!=DuHGk$@3YQAw;xNC#3uTUpNS3yd6(ON4PS0LG1}3%y zV}+}I`FzH})TV*ONvycOK>!VgboDGzCKv5JcID6V-naom1mIvox3JMdF~fkZVNfMr zpw&Yb1gu!lCqf4`779{^e~RV_K+(KN^m_z@TVyp}kZCre?+Jhatzr|67L$3NNHUGk zi~9_f>kmWn`twFJ2N`0 z^sC4)Z=MJa+E$bR^yU%3z$%%sNz5qCmUjjLJ@*PP&A5z^0`m4FfGj|cM8mO2fCxq; z%jaWzg{)c=U`d4`X8B+ordZ^2GvUwNS_A}lG&VA*e7fb{m1 zjXVG5EWfd^dZ&qnIazslp$;kastg7-4zh(8X<}djS;$!;Xc=%bs3R$b?MRakiwKBA zrm#A5hL}$hQ9>^a5vMuGG+T{>3Fh8ac-RCxKma85Aaux-oiq$hO@0EBh+zDi0Q50h zAC8wsbc}YEa*ZESj0`9?i_BI;26@fyy8$02Do2mJFBejF!1_Qug}UD3Im*8UGAMb9`h@q0GF|zb!s*Dcd91l;J{I zhBbcDIAyOx+x0_}546M49JjVN@ve7#1ozzY5V+gISANak#CN>tZ{pnjcj5407uVl- z1s?YU--jRh_dkYr|M|P{r|)_nzW6I{#&e(Z*Kn{O@#SCr_4t#wy%X=f^#SajJ%v}i z`VIJ7FZdd~=v%)X5?5ID{h;tSbRv5&!I3##W+J=5!7&6BP2iZ;;9jM})$m-WW7V?w zT)F3#QHH%-d;_1#wnsQ6>+!iMFNz-+#9@y+JZLOm)v(Ai-%LME{T0*s*JGX2EnE8Z zI(W3;(AtAy9`f~E>+#k5sMUU{bI#3Y-R0k}^UAJ`Ij!%9zm4?Kpnpi&mXOKtKE z++pk3F}(f{{uuw~jjzXb*IbS7{_ekz=YQ3UaMyiWouekB*|1P0-V%|VAE8{Iyx&SX z0rN^Ap5RS>Co}9egEgr$ulI<#lM>u)P=r^j7&D}rcD1h29Q~e&ab*Hr$Ejq$o%ZSX zrhm;On`;?@^4Q?a0+V+}@bI?^m`tA6g4-IiPR`9BmceG+Kx z6RUQ{s_sj2$N_L8g9|_6dqW_phok@rWD24A7?CP@obqf{?IZOvAW^Ru5j$~bK_rGG zAlM0gB2~i4_?HHOXub-U$D~))uY-EiBvIvBJU51ssU#YB(0MiwM$UnwC)v7!UddsE z-z1sOMgR+F^3~ov5(tc#oL;KZp2&lNbl+&@CN;F=To{Ib00x5x0I-HusUjD$_YnzY zC67R$kf7l%ic3r#Bnf)bkRDxMHPCp1-=*bh31DzcTGBcMRmUY^<=TPRy4x(Gp%|0b zsS<;+CNmDOd`VC*AH)Ps0-?^zRjVRc3op^HpcGN7EK7jH5VTlgxXC4DL{4L9~!AB4A-l z)T_W}I8hq62@<0vdd*uH&|RqoG}C}fodUv=9(K0t7@P(zb(na)B6$ z^hT^8IYyMq+sF9osq~4KliKxe;H@z!>*mUrpJ{=U&QWGSHV< zqk%|H44lVZFsIg`Kq(u$yyoK=`+?3Yv^6hvWlxQ7(-30@#7Yk)k7OoC0mgm4wQ07{Kj#a*{;CET(;ZxWBo!X?=b#j#SoA#3@xr$a6K#gq z+8}j;&$&<-Hxdjo<`nVf!kk>$E*Z!iqD%nQm}5o?6Ox8|D)_W6aRMorFp){SM58K6 z>#mvz9JPtoA+j^|5>9j9x7sgH9h@K@m94&ftl^!5{qhc<+a9#j~IK zWb9nDz-K=Faa?rzA*2{_*!QZa^%0@#G_OyJT8cMC#AHby6A)uW*O}))ih557yZeVo zDPghbka!cfef$&HzT`@L;!~&a&tLjO_@zr9g{M60D{%LH_h&_N%3LbkbOPt{W&`de zT-PP`o%H2GZ*3rh^(m6q-tow-JY)oIwC6@BKiwB4W2rx3&?rAp9*ZH6-!18wh(H)a zctA@bpTTp5rOl!7&SV@IsCqre5zJ?po5PaG!kduU0+K|_Di3(&zF-PdvIM0uS(pcD z(#+s&#d(WWFaa#=!P_<(oswW7mhe^x9NChZ>VhUx#f(@zO8fv`Se-SH1k$f`+zd!q zpz9du6^k?>u8y5Z4bGlq)?*aNs?rE)DO)$R1r7+Jm4`g1g|26^Fka6&rA8oe#nio7 z%z&W-wvxRN%cYYnPYNMH4Xb`yOhzMmk77cyaD$+EY8aYGH)`ldM`ZbHV0%E@cM3+r zxfD1^*DWPNk{%rN?HIMsU>++0>M5f_j#fq@(#k`gtEZ2I1K9>Ik0Hb};J6EfWFAI> z{l#&_#Yrp=9|FZa^>2`b$b!fnDD?;=NC-&1fI8DHgb@>P5H82o)^UWrd(ov`5HVIn zNHJiUfW#4zRiW*m;=;;|!XycSHH=HEV=X~}(8UD70tXEAasW;N9dBzMAUZ^(4(Jx3 zeixmrupyolSNRT0v~V_6I-K^1Se_UNyyQJG5F`NT(ZNI0f+d}{M7QL75@12$30*A_$^5l)b)uOzOF& zxmn1lDbz(>4!d698?dou^^ojZxWgat?0f&!|P=p9dfIM%TS?DOkprIJK zOjwL%-8HMo0V6|9IlfjK<+Jkd*4$Md0~VXxkgmi2{w_}4cL$C={fP*?RD+}l?z#7V zJp1WS!ZV-oG$bL!!(E);J;1^F(?Gw6@`u8lFS!`Hbv`*l=NlyVOF zfYjx^!rP~1@G1M9D`Q^L%340I;aASLr9XRHEf1So9&PP+Z>Q9=k_^(X=Eb5B-OvvK zKP6#I=l|JWpREB#03gN~U7^W@Un#cjVtbnW>`{eTjp-ebZ8+f_BWVlCN`^NgBIc@I zDzSO6{mk5PkN`Piv6lb*9Dxo^b+jt@8aS6 z@5Zy9{`q+DkyH5JfAV%b{n=lp#4)9ugxklS;o~sM!j%cnunHo@Nk_}uLKPRzi4$uY zQVJT$i~=LK?rOi5V-!eMP$opYFy#8X&H2e-kkmp5+F+hdiR;DsPjIc+LoMU$ItEp? zoncWJIqNGks7Cvv_X}^O>HblrkBauxeBnk1fW$mg#LD`~uq`{Q7?WLvMTTuc&LrJ( zV))?~A%YBgm+Fy1I)UPVv?31C%koKQ0oB@?KX3NWenLSle|=Eg`a3`dwks%-=_HhDr@ zke0-Tg>^9p5EkfD%EBrnK~tZ0i0)wqLQeutE9@?>M7r`hz|J4$PYf z@hrm0E0C^z7Ir`WC)hYR2ZR#{)Fbc;lz;=-(6ym0&?VPl@8EuP`}boz0BQ44NRRz; z9PXb2-*ykscUUYsKn@`>;E*;D(;*PF0@gB_cas2z5Nvpe83|$}9A5Wa;P4SF@BRP| zuX`R=s|D!ck7IfLbI>g}ad`L55IzrF^IYs593sR$;DMX5ICr;tiw51NQ9SoiKrg*j zqEZYet12n*oO7D|Hc)^_L?qK?O(7swrJqgFkD~G!Q!tM-=q@BcjYzisR+_jY0ZWfV zGjb9Y^u*k*S+tr`6wS>P2o@5ehM5pFltz+{Es_U{k%jXq{s&KL$mW41gMtqc2qiFe zNHJ!*kdsIz%PW=G(@d!+lMFtkYP?k(Q~u*QhLXvrTAhqj0!u(l5h+Cgp1(=w;s&3Z zwvO^{O^B$!Yw~cG-73X$hLkmu& ztkL&99&_Uj*xuU0;o%BzdgGh$_#3as_19gGv%3e_+uO(C{tBz}XAwHqJ)a^@o;ZQG zyzf1D$J_oGFMa9%A6Hy)1^T!`+J6LcxB_pSw90dU@K9>LC4**px4I@ub^X2ZnYnq_ zIO*SH!-pGfDmb?Knp6J$N)Qe0uX5}t*LPl3%aAGS94+HOozHWfj#1BjjEALO*2XC^ z9hZ4t|7+>EEst%YMpVyhGAEUPETNI}MOyn!tNnW2n~b9xi~pX@oNZbLxlfr1Ev+$_ zytHT_k&!^D&oY7YCNggy zA=1z;0wndg=*q|7+?9{P;hpbA+IiL0S?i3ZfV? zEnB3lkS)RVA9jSpvSrzl=&&6Q+9DhdNntxkNkIyvxIh3%iXb2f1Tceb0LeRX4n}*KJ>+jxs&Z#9UE4Rw!`omb>@r^jY{XF=%BES2)KsTSo z@|B;(dT|T%p7(*CemjnzeGYi+gTS??f#WT#uYUpQsgI&O@+8);eF4jxFX75FAI7c2 zH2`NQcisS9xeg}5`tq;h?BZpdrRz9<;ypNjz2I=X03Ll3<%01#^=`cW#a{%S zzl8GiyHFl`9C-dWkl+4s+ zc{MauR#}a~)eBA&11BO2r&7bPCt$1wUFT2e>F7wCN19ph0h*5|$}7qUo6=9coHLbg zBp5D$nwQQ!CP#k7%$6gk{npX%D8srj#=n#IH<9b=n1=%gYfsqui;Zu>I|@7`(2QZ; zx8>7uxiRuXSI%Zie1%tKcY|U$n@5C&v?Y#kh~IsEfbE)#v|=1L-?)iy`le6dTfg(W z@L&Jb&)`eXehvS}fA25i_k8bn;#v!{u0$GhK zdpe2HWeb|Dzn;M1IKH}egVA?1cEolz~FdT z6WwYY;|QBkwmvo2X8Zws#Tz;q{T4g>=0F3@7;|F!4|KgH1B{oFizwQI)~JDM4It>L zdSwcOQZTyP*ER$2qvr{;A~{<>f*#l#hR8dXe$0_5K3fH(Iwy4ZMn(G+62<2>xnrcU zwOL%<9&BctjA|P_@$23220 z+lVEbw-!_N&>H9AFq~aec#klcjCDfIr$l0pc+B1{rIoG}29E0yOJaQMH@y#^{P0uw zM`xN;_uIeY8}U6q@I$zH?+Ad9mIX`FGPv$WPVoE|D(EvY%DP%f5mkyA3b!nRD_5@I z>e+&Ox8B6hT|L7?H?HIA6#`#Pc=YjyG&y9MROyNHqGr@=XP2l#a0l}}IM};|04Ww$ zGJ&nQBH)tW1fG$Q`&cO4b44j${=1KHgQM~Ouy4k`$KPk)BOu0pT6hpTa^)d;8@jf0 z%>=yoy@LtR?HfS(0~PWYKty(GFV!$xAP_6HqNUN52@*2al96b!;p>S56;<$Z$pEG5 zMMk8RiZosz~$*RT&DNT7y0M_GO+`9fg$T$2`z!!fJ;0wI#JANOoe&_>u z{q_Z3`^*QhzW4>a`SCvlyzyo53;zgL4%rk*^)S%T41pUuG@?do=#T&?Rt{d3Q5!Sq zcoV4R!^j%1hg8H;hbT@H0V|4y`LKqIXqQ;68qk^rnSn(#_l)NZaKjfT^+NIRua^8B z@TfZ?t{xTO)N;*`%O3(TYbkD(G%F5dQ1ymT0VN|@+aQ7<;aCJj8AuD*3_XPe%m*xY zpU0K+ci`gcQ#e094?O(=;B6npmGv&J-nfqSwJ$^N-U6<_4dtC5*X%oIk731vJ5RkG zN$%sy-IsCY>Z7=G5b)iXaJ8JPF>bvN+=(-{}J-jA4GZT1CTpk z1m63ND9YF0!}9ubIDhQ@kmGAOyznA;0c1S~j)GMZ1Q}q#@%Bq7 zx4w$w;c=Apc@2Fz-o=%(hmenVaJ>H-5;F>G2#}XW=aNClR&v>l2%^=OnAC$sPvZz8 zYS;U-C)$O2 zk7%yH)$-`5w~g3d0MuBd?%WyfiDFC`3^myKZikS1zK|MEVVR-SV1;@R0g&PrpmfAv zhsy<3g|V>3RO9*eS)(yTx)%#TP|r{i&m|>Qo^kp*D&wPqpzzdAsB)0DNA}*G@qLk& z;;APd!aLsmc6{QSz6sy{9lsklo_+!^zw#R1y!i&+`|fw(-}tfr zC4T%b|3C3#|Lgw)uBJ2GJSY5_|H+@nM?d&(+rtCu1A& zGqyd_j6FGSS6>>|dyj@qWp!-j!ck}1oAa!#_{?4(d*MYs=J;Hk$EkuQqdqxJ63iOv zm%UV<2zs-#qlF#}{7$alVG>@u$fW&1;DppIT+CA6jNEM+W0vt5a{6b#U!Qd}mp-RL ze0CP%60cMAY-1cS_wWZLB$0WXGV;{F*y@EHBOY>soFX=-CPxvKM0=fWfEm%;V@|XC zdkW|LzMuMqXAPw`eGY)CjQvEP^)*2_ks>>F-_Bt+_gT2ctW^2f_l$UsV;lQFb$|R! zWUhH8(MS>Gd>8lcy@9jCg0nNim8*<*y!{zGbn710HG{dufD?&^RTK@W(5N9R6HHg& zPRof>Rm2E{Wl1|a$n=z+Xunedp#))< znh~!T{!qPTXc$jNSKQlVJJ|LSjgIZ@$r+ye-ix_Z_V(HAnlWpj(b0B~t6BOoMmX-< zh^MnWJ0j-NKfrH0U*iM*9#oNc2Pf0>+6jGys_!-BA0SP1>Iv{b79IgHH(^zCVsPKlF(LqHWkbun*Aemz`(VMZ!25|&z4I)OANN7x7IdCFA*Sx6vA>H%OUHr^Mg z2^R#-qHTy#BzunLe}7LcO3 zrHG)}N*CO``zFpm|0&@8-wpoI@4{6%#|51u-}(|tJ|eS*9P&fgAlDa^mp+HHyy9?` zaQ^5cxc^(90lo4(uD$aioY9I~ufK@%^@zlR!`(Nr<_qBd>$q}QaO>s^pyxh~M?U#S zac8}Q{H5PQ`s90Y?cwWK`H1z^XTkY4=;6mvzWQmh(>&AE|$Sc5V2+^um5LrV}vret|$E6w#DpAAL;du5I)R)+xEp`}Aiw zN}(&hV)O7R8}07+ReVnb9!}!)KYEAyy_p;}gP)J3j@iZ&`F8aldH`i}2Ae(pu5%N- z_S%bh@~OAs$NsH<6F>2{|1N(1XMYZ_zx*hK~EdUahaiG)|bA#ok#3v{M-gK-(#bZV5WzRW1Yz}ovw01 zo@&C)e4aCS?ZRSboMT(3u2auwu00n6hJ8KJg=V_Uo?Jiv-J9R;nvQe8gyx0&V_W?^ z=bkuQ+z4Y1<0kVKtun9ih=Tc?zMkv97XyqEAcjx@N=ziHr1k|`{7kFlC-U$j(fj5C^oLhaz1tC`g zO?lhfbM@z8J-px9yz4sp)I!^*-1p*|6ssIV1zJJH6j(}Un)go%9zU#j;>LX(m>?yg z$lB(sNdy2CNXba)43rW|UR6LP%PBzF_Ogca91euE6dW(^BcI>IdU1{`Nd@t>Sd|Y6 z)_9*wTqB>eO6PSvp3kYn@j!rmO~lt9PH~j>`0rKuKoiikh|0cD#TrQ25*3EN{p`1& zz?`t}?n`VLmw%q+mzwRJQ_nbzV@{%~APoC-ubq*`jB}i|5yz$P4BmH84@lL=tcnd4 z^U}~86^B(rH#x?PDg;={A4oC7iwnQRn%#voQKv{!&yXZoH3v9i7h_`<9L1# z&wT77c>i~P5ALq7;K}d$T{!>Rui)lS{kwSMwHI;q#v^#o$G#UgzV`>QT-?L+Pkj(~ zp8wsDFaIRydIAi zJ7h>mpt4%IVZa@YitVA6q>zzH0b4iz8hU&R@paQgEG)xJ809UUBW-InIS}?UmmGJ@W}%eEj=xIKK(G^&B2~ z;_b*6_mIvKWW9$w$0MG^Ij-{s?vvm`E^z(T-^OE)e*^L-{~#V=!TIx_#^aB_3-=!T zAPQw1j&I<~dLMj+aqE#s@yJ3rwJ7egi=IrHN2mx2 z4k!>TlmVERni=wHg(_&C7Nx6B0|*zAK?E#BmUP?pz8R)emMS1x6e>kM&@>d(am@v1 zQXCfvAxO|Y$uI+9sdPSR{2TImH1E2e#b-SRorVd;&&~72=i0V*d{(5Du&zdxAoO?n z(tJ0Ov&cY$!)E|WGmC}-HG)7*x$@BK;krz&Qw4-73}?z}8!vhp&Bqo#OPPCRE8nv3 z1d#i;U!v&E`1tn0{_7r}j_vw$kw;3Mqc?<>A3_MAgg0J$4c8yKfgk;2KaAh^J>Q4V zeD(|Y>=(a;7ryc=Uik9oaDML&KK+?5o@WGD=*`T8`tmy z-~CM}5Ul4Hxck~GO&$WOanFt?x&y!&O!p25AC#|mf9*5xJU{9qQ~5!f{4trB!j@x-w$9LI0V;kKDv69VuZJk2y*{S%R(m5l> zfD2hBMlfkk0e6`POqc*v7NbrmqA0zb7;D50mdU-4=xdyh>rwVYl&w0vZSVRR2BzdE zQUg3Tge|-|Q?mCM9)Un?C(Z!UVFB|2>ngZ+_YN{K{;Qw*`}o`!KZk4Au7U_SzkiO5 zf~(7-UJ0w7GM1cib~r;i9B@2d;NtuOg%hqM733CPkV{s#@xuWC@YNS@;#0r!c`Szo z=j#zyuiQZ5rLIxWfVTvet3nuI+^(L*exkO>cZy34jML>jh{Nke+n z%ft*8P$K|k;0hh^+GjtF{HdSBhraJ$#25bI{|C?it^W(;rB|?=ElBACSAOB|;N8Fb zzs380=r7>>#oq>g?Qes4f$##)RU^4zA;xMXC5bA9ep14QBVyrHs;d<+B~ye~YmYRC zjpbPZ#EdnBBIfDB8C1+G24u*d;mW*T>M@W>Lodj3cC4g(w~&R+0PwQAWJ+%lKqS{( z66)ZhVIphM5T|50ZI}~0ABbxs1&!7c6+kpJDkU9X5&=Xj2iZcKXX35J&?SK^uj%y-TVr0?{!>xXr{p2Yd9&q40o zMES}u;`*IipeqUM3%7Bg75vp-#hv3ltN@mD9mkixh^xo@;D;Ya`Pz%Pc;h*oJ^C~r z<<}sueig^BeHn)Ds|_X`7huF(uL3^$Sy)+!4Cu)IxN7>Ns3F3>c} zR=&D;m7rpBAVJu0-^o`_mM1CDX!GU*sW;T28n`v=NuYaxZT}Wa0PKoFN(3>uRr(}; zpr`ZA7XGK?)I81vS{=#YeOMA0gmb5>qJ|-n5Oz1@q1*EcY~zqBBkal~V(?97L@G@_ z96dC}gvu(f`tQNG9u*+Zp;4ol&UF4{Kabvj!Ndp*P>i|O74n62$Lpc*ZgJ-P{OsVS0HP_ zty^EkGmqTBd%ypa_<`^LHr%~`foGq45&zj={VRC(^S^~JeEB*2)KC3A{K-H0&tX{@ zLV`QDZ-a0f%^QeO3?Cpam-q_y3gncB)4q4pDZOE;WZQqD+z<^^Q6}EJJNY~_zKmly zWke`mlAB4xKxCdPbcQQ?`qfMZ0?;Y}4P%(XmfF4=jVOEl%*MM1lkqyG_ey|C)nP+Q z0HyJEkTvL2-qs9SwnZPYiiFw%PBqd$TsC3fwTB?%n|J z_;>b9yuY`Z>ScKzD9#U|FE64MHoQO6IpdlzBDmc8IsP`gcH4lBiS)!*q=1T9*{Oej z)83HHpFq7~DJaq27fmo@h6gjH*IzA`023lu30QMR5kaN{KJ}UB@k_t@Y{b6 zK<~xz>Fc2Nb4d4JRmB-TK7nT>6cj91uOLyv@y-#D3&6ZZiYd#G3=l(&Bwm_1S&~wt zd?f>1K%6Y}Afq5_?hTa$%~up~we#IKKE>;I9clXQ0DXoZoo^xcv&20)Q6ed;$5=Z)%cfB4kc2=L!J_Q;drM zs~NyN4+keQPp=H3g0mzL(Yo41>fxf*r7ZW3D21#-p`Z%drDO>!E~L@3C}R;fsnHmfq5 zS-CzJ?fY1YdfpJ5byI0&$+;#^R9e85hGD=ZLr61t->_*`ts>#n?2Ca(AL|N=;xbZs4o@i96 zF)z-;uOdNqA(xjV^y9D#Y(2^X=GITq@FA`M`5NxaX;DU+!M~Fq2YG7qY*_0k1B@Q4 zvCZNYIY+aO<@far@0Xxc=DNaQoJqxO@8+(qX|NE%@$l{U{!L_+P?*@PGPu zaQn@h`0dYq8Mp7;!__NSaDINSvL;*juoXFJv8QCuU_Ld_ z?8pP%XRjVu4=|Z|bL{C`r{u8N+=$$>Pd4)!<)t{E zv7eb9Hnuf>R}gGvvQZBnWn$fzjH-#qd|%Aq6=5;eOLpKjduIlRI9CqujANR$d1_1% zH)3u|ds36w3m~4{g`o$Cr6~zyfwqk%y!C5q7Wz7_W`%bG#@+93HYM^rEh_xETW1|a zwa9G|uM_Mcc5>V=GO!KVcu*zW@6oWxBF*~WD;N97=E|D7k%xv&1X;f zYQJ5M@TcJ9a}<;C#uI}n(Ke&Sp5ezD=-w9-hNSdJzDJn$m_^^k*8g@)z*O7yKLicg zV%7wflPd~f(QCpPO?yr!;Z-c+JN0>Nabk}tx)7)a9;8@PM#0_Vp9 zELV}!8RT#cM>^p4{eoNf1aI60?qESVJ0KI|f(ZAKa3Kj9XDC>3K@08+<8EfWc`kV4 z{t*|nK$feJbcXZuBhJq+RPd#Y#DtirY{ZX>>kf}9ob}Ic)|H?qgzoMw`+Kt6OJP}K z+-8MW7}MCFDw%WKpkxtFpIweeW{rluY8{;@n z;U?hlFi;Qy#9&_FiOY%`CX1_TD!{PiebC%q=8?f_q0K1ugkDpa6!p+xfsiIG&DoR& zX2>d5+F7)U4>PC$ixeCZ@V4LgFW`ND_AlaXAO0?U;TL`e_{!(-@o)Y%eDI(9)4&h@ zkFh@XNt~ZAINo3J#b5qOJbIn**q{1e0e|q{!ZAGpoS&yjMix>CKM?+UoWsy zK}n?H8$>l^#JzsNi{^=uY+ewyju5K^L*_N335qi_vLyud%0-Z(d1z<_MEUDdR9`Km z?XW34VmUP`f=h1ugb|W^sP>hMm+~zj(Q>^R8JVThG@@iBg*8dHm%>h@dAv(*UOg%- zYP)%Dzb%vioPn?aT!01ObcSq34;`{5kj>1X!x^rDa3~oh3rbmVu@*J%EC{fFaI}1Bhe9?Uv z=y)=z$5uHW;iZ=K72O*#WG2!(&pWtLp3Inn&`zZFE<5QVkGP23+L@J3cB8-ZN@~>E z6|iP7=ycKzZyCp1N@jm>>N5O}PB49b;GJ$HLWSA(`LnYtAOimG-~Q|PcmC~v8~?>m`~)6(^iiChT~*`i zT5#{)eZ2VGv-r?Ep1_CR|2`a7(el*yk5B`+^UVEu5w(Sn@=cX@FqgIB-*_(?CT1{o z+=%lX=RVUpMj0;hvxqlw|Ln;VGrdWSFGb_xOmUC%7-ht$fbYp$<8OPq*(rm`sN48> zX0&5`ZoGE)L4fb6XJ;)t#gNH9^Qe^Vl;$$&xbCyLI8M#*Wizih_8mCS)?`n&o%I#l zaC&GntGUWNx{ZwI0*q+uxSSI0U+w`@>3R6vjWK>%*YyYhTq{`kBnb>~eFoyVU_gxxNZPtRD+wlyph)N>* zb()QFglmJ(gUvGvQ3R?>FVsJ`ZLEhwm8^y_d4s3IP5k?q6Qt|g$IAdG)^c&sIQnNE zeHf2Eauv63-@>}CxP9j?(*2_~J0Hepsc7OvN&wa%7`78La!DA?I7l|H z?jox4524ho;}XM?2D}eTQkBTqo)N5$sQJ5_{SfzX+y^EzoQ&N!zuoM4kr*v}m$l5-=yw zQ2=DfqNtmz!bc#_=0VV$G9qSBadqCfS`~H^Rw^J1J1G`tl!Sp|d3sp)D6rZX6+UFY zDsarxLb4j$L_i)wWg#OhgcU^<;{p&4y3U3SDP=p9Vhw|`_6ut%Zy&vTkEr`FV966u zBxz_*$q+0Sk^&r$ngfKayiO{Bpg=f*i(sLG6`FhH41z*x;PK2YObLtyD>AYf!DJ!d zP@4M#9#*FLaR9AuwJ?w}%oqbmF)s_FkEOthR+(FQQ3IwVF<#Y5E<>zp5CMy<>LFz( z>%a>299%R3FbfhLU_nhtW_TzlR_a>uk3`IKi>z{y@(6Wb&$h;7E3Rn`6r=T>k@!ZIZ)6&WTMRs z?WLFSp7*{N&prPF$WG6%UB8C)cn^1Pz5z%BkPJgu#0+290L$!5trRydJ^VJ`iT26U#R1xP}4sMZESn8^h}N!b*(+w zelte*@ZNdW_o189_H>oK-}crCP<=^B-k=w_+!0>u_JohaaClEX9M^ef00VmcCH6Ny z_n^4*AXi+c(c3BR`Pi>NJLb-r&tEq=Ro%^WQ?Who;gZHH4X9It$%9^RDFjJM5uMm@ zgL=!B=DTEbJv9}qv=Ah>u#Hx+s6^C013*W@pncafy(yB<7}|*FdrHV&IpvP&!EwJa ztjhRyxbcYivCUahqlj?v`7vywwj1izH_nX?X)jaoHupvU<4K0c&DIfNew6wo7W7Xaq#<2!a zRY6t^@ej*_yB8}y^^boU7wa9|xqTB4Kl~UZACWHvckiDAIO6wz&o|@7Q}4jf|H7wn zeB&nW-8-UC!i{SSq+B2^3y2rw^$02pZr#1WB7%o+oZm! zH?BO2N1u2UzxXS^fuH)X{sFE&`Zhdt{TlAvxgUf;g8>Z$xxxffVy2}-#pURh^NN6) zm9+q4#fb_#6Y?BTHJ!u~0u7fTFXC$@m<^{jZ<1DsDJDrR%$Bg2tjdsjn0Vq)VfFSIJkN^UP zWc3P4o^G@N1S@Ck>L+<3)MOjWgHM!RI$vW_b$d<5m^L< zOgZPI;S~@_ArvMgDVEDbutMb&67}K{5yh*b>&J9JBEc#dXHd_Hm6XSNWD$xg8i$&f z1&|D6VNg=Y{cA~Ayi-1U5`EX-(bc+_&apjJJ!{{trBR4+V% zhO@Y$sCsMlv~Z(Dos)-2`?^V!x7fT?fPp_pxrw*@vbAkW4S6_NJ8;v!?9jHcp7tNo zP^Ze9Cf7{KtH&R1bRO1fI__wBfK`yQ49-fT#z6?%h_~3^>iW@hs%ZP=4j3hm zMkMPZOPE+t_SGN(Wk{HB$~|QkXh8DM@wxtL7H@xcT+|0qxTEs#a~a>6Dqqrw|Hv#N z!+VelH{%r%Wlxdnkf|y)4qx+pp&r@BdCW4Wj|8U1S5Nl*96qB_rBzu_;ea-HWiN>$FD+4o6kPc8ew>HZayZ@fgvg& zUw!Ot`04-p)A;pI{}R6AyZ=dCoZrX8kG~C%J^4-)TnEc-eB#6Jz_mx8Mtb7ic=L_> zc;n`qxOR4iYY$z+)rX$I&6l6U?blw!Q%}Da=jA@`oM$}q%-iwk;fN2v|6Mp-dl-*@ z^mpOm$DYJH-uZTX?l(S#o1gndJo|;0@Sp#eKaGF&U;a_txN!rwZr|-J&D9`cu%KaW zr}GvurN9L?7ciTmO$05$xz|PzN)hlf(uvvLYS@SRz3v@qd8jU9?3?`_=*eg-VH1Mm z@23*;#&-Sl9@84HnNi3+jnifZwGr8LN(V2SaYjn*TGQ0qG2e9M99qe{NMXek$?X0fdBCS0$0E3`*82S z`)lBPU&8HIZ{yX!_t){EKm8qe_q4q%3&hq3Sg>d*YA{Gv%QZnQhmKg;W3dzZB9>DLYCO$F_d2UG$wCk_Dy5vOz)Mgb zm0iUo{dd2LTX)X!3@c2pZ^+;03Lh$d$1hNkS&~W9Q#Zln8AX`6mv&0Y5S(mo$3O2 zOsEr7gP<9OW8a%2Gm2|Aj=O%Qfa8<(@jWqPLeuAAgxv#9Cp2SxcgAEpA#}L6SG{9z zFU-cdM>EEGHX0zNbVz`iDlsa2176Xj@&(Z_lx$ft6035n{LvIpveRYDGa<0k`=X_7 z3yLNN^>Vc(0aTE2p@xGj_}a72V}1B(yyO0TJo({|;Q8g z4-VZQ9!?e2Ce6A-$VnC5y@s;Fi&hG$X3gqkBXq=!V|C}IjGY`&%748TDQ9<0J1 zn+FCVspnG>z`d8uwTqKhrz+MT+uDfa8kUtakSwXJ9+_K3C1LZ_DlPO$%U;=9a;+f7 zptko|t9NDdtXYfhQzkXaRo$J7{ECi7%eJJMsCZc(L^uG2Tv4f|QzkAfh4m%!HgXmc>e7yJB@h@dPk6 z=o@LP-Bw;jRC)N=-t2n}JpshLffVX3bZxju|3g4$e5vi)`bT-R+HwM@s;7)G<~G0i znCsjHEh+s>-io{%s0T|hJhJU?A!IvV@I3bhpDBG`&$Y)Ns|-VgH{N&!?|SB4`1Akj zzmC83<9`{?e)bFaZ$I@V{Q75}!=pDA9FKyVckbiP1@QP&@5I0SXa5y^`2BCg>n}bB zP};P+>(%aaHayhBx2+62hKTIVd8XLT?(Z2KE`!%)eeShAGjjN|Gey2@E687Co8uT} z_x5mQPYyd}NQw>zV&0Xb0b!PEVAJ+MBW7@!eV&c`)SQZ#_x_};_bH>uUf-9^ZBOsq zGoZvP{@yZ9PGt3fGrRK;Km4=9&S0?iXoea?S81I+cpBYLUNZws=#afP45u?<7~+%7 zwA_%na*U&DX=mwz0e``oYM>`O1>FaGcT_n@l@eB}&G2OL1)gW%e=Yq+>`fj95m zg`i*oaO?IRym`Oin?Lalc=U;fargCGI9nK*2yecA6TB82j~BRoevUV8-Uf-_3txE^ zpa05z+`MxY-}n7LfIsjf{|s*4e6tAx)RaFK7v$&6vs>H9L}h24{T?=`)Gl#5eo=WH2;^om=h- z0U_rC${FwbhHuA5zTw;O#>LCH^N0QjUVqnnaq+321>SrSuiZ-c%DsDd|Km^L{>@kL zfe(KI7vKDQvHtWwhO8PcLq`0?3@Kb{&=okV(g>?mqyHE4+R_rEsPiOC>a4~E5Sh|$ zrU=m_AWDyQ9w0SRK!8N*DU$425tso;s)7fxgrkUN--k>X`Yi(1iUCNiV=+Ji6GFVvRo|pkP34oMZ=n);YFM^ zv&{;H8JU5k6gw0FTFG=`tfEzp7C25W)sqNN10z^N))FVMXf6`vC!WB#m@f%ih=%Vq z0g>gw0Z=SgN)aJ305B&MWN4aPT@&_PO<tA!Lcfgk`eoPHGyf2K}O*UX8wmver(gg{t>We+oLkcIl_U1}x^C zizcXHUqPBHjg~is+R?-)SE^D9)Wngbp}REn>-@}?(r`tpCtj2#qx>`bzJWy>c-IDz z(Gi4`@2W9G88ONQ?T{qOU}9lurxeW@pPT9dCQ$6j*8bfOYM2+i`pQfA*!$msANx1{ zP5hTX`P2B+FMk?uzVRAfynBu%9dP66x8WN<@^Sp|KlO+4EgyRZH(!1Mr7(D*%J=ui zSo>^dDO1SXeK%%T_-bQQPxlc%aZMC|(6tp05y$W2dOnDbG1Ce5u01^4m2@T^UAPlIfLUtlW{*wvKCF5{7K&+0o=L-O~N=bANihvxG^lGn!;iuhAeM;foBO;@s z6FP2$P^4Rs_*^VwO(qb#;6~v+askl<7dHUF1g1JqHkbyFo)In*2=WXDlvojgoK zEyMc+s$m8viK(MWRJ3?Y)cmia&3t3;t)b@pD3*B8#xqQhh$`%rac`MTBm|HiMq>#% zII-=Y0dRgi0=HkqpZsHg0N?V7Z^1wK2S1DFzw}xB z%=6D7A8&zJaOJSz?Cc8EMf-JAb~EnWxsT(j1o!HdGraIiU&I*$SPtOj3dj;qWm*7E zSomS&vq!L&g2%t*6Zqrb@lWI7hp*yCe)tdIo$q)OufF(vji)SBf!KMT>@sX8A(h@u z1SET`7~EC*o)cSpxfeDkOx9r>f9sx!ySq%sO&rzW#+hm4)i@2z# zxY`c@Xf6>p14LyzqPbMmLxn*lYv=*5`~=FCRKqz6yIZO%x?BZe0*Gq`Co%kI zG2;qD)k_Z{5CKFD)1@fu7lUac^&}918MWM#AcHI+uL}v;;K!mli&oJPj0GCbqLp(L zdDU@;sy9m!SZQ7l9U)i$t;&-w8%fI-A(SfLOO~`wjUQ(4vh`X8C`IW#Ndd|cLW?D& z6|7=qmFE*ATrHWap@{NY5(pMkPHcWC zSXdy1kx8E?JKf^q{DhD>t0Bemv=sBKT!=K}g9Qg7tfF2QCA1~%6~8h_1WAB}5`1P zuYe%JIGDjAizQQL^X3vU1F9eurR|Bb88283tyY~6jzOfxubc%rX)c~cvh7J@p9PRb zz>+Nwk|%L4SUp@(iVDYm=tv$0Wjt37^N{&H0&^w2%0&nQh~GiI$h8qN^my?S3C@1@>W3RHRo7|&44``4`#eO&fgC> z5Y}+a|1yqm_I;G4XU_vLPdRMl^u24(nB+QRDIOBr#<9E30dL3lXYksa!`KIdELW53 z!ese+=DN`aj^3{LL9`keN7@4fxpUZi^%2|M!}o68CFq*w=|UDNjABOUiIJ4Zjcaf1dP@eFra+x~sy9Z& zciq4+mZORQ+e7*;W()m->?;KmY>Q znBlI18QUstZ6Y@6n3caM^V-?qzW$SOjmCqBD;vV?$DUcQhYiTEFY) zXXv?EkMXw|zP8gWu4C$iT9A#;ZaA|6taNJVYxq8f@=fUssC#ClJLCK|Fg)>lY$qC5 z{CkASDM4%YT;I3TA%}G`IN3kR0K_VHWn>G_Q6r-5MPtJ1$wC^k!v$3I88V#G^ZEoL zfgAK8YDCDCpf{O$iY&cE~--1*g?!Sx$Y;3NN|{}<9X ze-JlszK&o2FaBd3zx+!$eD$~SmCt_)$FF=ASFT$34&o8LE9Hvf#L=q31iWc#cCE>k+ZE6 z5jZPO74vE_^-KRJq+=0O95@3|WW{1RcOaV6LkdCbE2}pLo8baQ=SNaNDVs7Q`m6wg z70G;rG`X`0g_MwyEqp})7FEtgkj!HSqJ}bvh940K*}OrBRHj=9kmTWC%9TnvLUIAb z_JQ>cOG?VnRVDu)z-)b1H@?1 z5K2C%$)avg%I^jNz0t(sBC+uUKf}%_Z!LoiX0Y6dew80tjwqpx@g&MPu0Xk> z=3{e@F|ocO(h}MOwUQCR_^91?48KFlZcGR?{BsaHj!8d z#8^3RqYQHCgAR+FuJs($h>M}Bzn zu%;1ivulr;`{xQ{W1NV6FhMgxVv~rvCxw1WxLwDQPF+?89tZ|+^e~KVkHW~z+vZfZ z{gL^fQXo#fi*B`@HW7#u)^)9Jt^N$LngMhhlHs2TI-ZEpa;va0_>!{T+YaP8U+G-XYyp`v0YK@*NzxQxmrY+)UmF{QzbHNHi%<_FPfK%hpX#F|4z ztFl=27V|7EVDqL?V}^J_R4proLWBzlTNMLsb256Ouk8_NlXc@gmk}Lj$>8smiD3M{De|((TcfrwE6{53gf(F$ zH5t&j!A9{NmE=)I+Q^k=0PW@!lw39^iZM6V*5sVZk{PEEB+ido6Tqv|7hHZ{V=;SzfVlPsnHr671`N1W{kZu=y9xp ziOT?=+J<>9xrfELo<6_o77W0P$(B`c|9DSNs*H$>gn1G{Ps`PH+~--ugh~QB$3;I~ zhu8_D!P-W_=JKv%i;!>Yg0Pl?)~Ca{?(ra$Ivn>B`i|F#f8B3`Ah*|E9X>a&92Z)v z;nRp60Txo?lR^!J^HYR9dh(#cMx=e?TrY!5q@}a|X3xjJajd(0oyNFu^Nt9iM_#_q z6VYjP8$rpAMZW%aR9XZDD?paBK~$kqAS4T=5k*U*sU%{#Hw=GROwi40*dPsY;F3UA zF^HE0<||125RT^;_|2dAe*lMr=6PAqA=j@%a#jz9HG`2rtX>g*s+=s}iAYfok3^PR zgEhwqEWsUX-V4jKs`Q(6?yIPxE<##mgaFC~jHIDN0WF6s`+BEieqfN-HlEf9wKJM(02fxM`AVb zl%kb>bPTzcHCAm`X-pxiNn9ZUh!!9g5ly^G0*HEN=w8#3+^!^wh=n*2$VzJ~ofGpS zA|R>vkrbV?o36R&PzskuE5QJZdU{9!k(RM8AS|pQQiUvuGR!z=9z#hXU}e?;kk(T= zKtpMcwr>(GX4uvNXyqP8!D=BlmOvN)3F9DKpBH2ZB{le1f?OdD>GIOQ#L!aPI!p5o zS`@}BpkZ*DyX8P?B*_AZ86Pr>Ru3aJWECiGE3HoEL6yN3#8ktm$!g>(zf2a^W_f8~ z)v?{J-Y^HGUPU>pL9bZiWy%&-2CCr&YOGQIs%2>bkX1{9RG236Q%f{?DFJHWRa$dg zkB0Zn_~;B`CVx~TdkCM{QwTS*6EMUBpt~Pwx>V%=ChvJTTK~?57rIaz+IOxS-)$2j zGX}R@6K>dy^LLYDEC20s1VH3QD*sKYr;g?hLMOwFauedX98P|(DjU8>CQ45yD~kbG^Z{tg6WZz5#(Dn?W}EdV3w3d+ z(C6axSq8&dm}8VJN5zxKDwk5j_i>yvIPV!YHgMjN!Dll5Y)|!LarrT%ei-z#nO+e4 z^xrqK{4lPK*E9kha3)FafxA7F8~g8M&ym2O)gcZkppp@K2jJ|TI@mn|;YcCd#pxy+#yO6$ z->CC;s+W$qlF@JcQTd-SR6;BH2sEo`DaG((!i=y*{8NO?Vd56!4i>{&`Mpzyui8Gg z{q1e+PCyY$yS2x#T&J~{ux`pWoHhMTz!-SwQx*)XeF%bW@%U~$NirQM%`$0~r zb8OGe_T`M(?g`NwydT=yo!77@;%~FPv?rv_#ys8|1rZne#1g@>KW{lH#Eb<@2M7wX zc_IK7asz=BJFWI|&So6UlA($0*z^~#h~n!5OSq|qij^2zK}OHPg|mi&07?gn`pOg` z2o|6)78K;;1B%ef+86i3CX-@ zh|Eyy`MU^pzr)%z7aRyBNK$&E?+O-EsPtK@q$7Y=M$)}NDCV&N00o)@gvrVTTL_P^ zh9;4yX9qxP@DhDXO)3z6$TcKQn(ASj}kyRc|Ti><%+nu>Lq4 zm2vhI0wOZ_R3QV7)vk0Cly(+!*~s{BLiOIA(SN6jMv?VKkvi6m+$;d9amVNrHTe#< z7hSqhnxkW`a*FE$L@HKz7#}kN2=^r; zDYvJ1v&&rKFlgs_LH_X1fS8vXoRUrC@!92b6`#kBe$@Sikw=X^Z2c4mWxw`Q`5H3+ zJ;RW`(^R->s8YpLDk2-18nZ~Qq z%Mv>d_a}1M?DIIzd4Dd%7nRBN;SG+&Hnw`~Rv$TaT_!tvyRm)m(+?}Eo)z?is87|o z`WjC5b?j$$jr%wj-f%tE50=F7#`$*~zxHhV&?0k2MEW|e{aA?yxGr0;s!WGcni8z) z@wpiR1kel~Oa>q$NW*jEraZNARp@QRYDRP;p^5i=!A`*>hDwY`?+ZMRbEXh^Tbd}3 zDiiCh_fzvhYyTASaEty7{t^f^hP8@guW%<+Zw+mnR9UAs!f~x!uo+<$72RDXu(R&t z{KwzbQ`zPZLNs8`;kD0X;x!YrYFp@WRT`(Rib}!Oa5UnQu7$1*CEA6NUw&c%BN83{ zn_wzJ)m0K8O}0owS?0hPU9j-@Yb}AR0+!DOA>T<|H>Qe5agS-DvbhleCft&R{#4v3 zt_lPJjV1)y6NgR&4YBq|!LEa~{Ud3KRXGS&C^mj}7`AnuozRUqG8!-U7=DH04i3h> z=pKPH+C1)?kp_=#&aN4q?VqKJa@D~>;})XLi z64tt$L1YS$?`bg)5V3b{O&A)&!G3}cKN*81p>^*YCu5A|khI(`04fa5NewKen zp&>z*6&VcBf+U)^M*V$kt^^3NDZ+LlSCvQYGl^iS+|2@&j11Pqr=*{==Lm5!0$5m; zjxk9B%R$X7W*Evs8XiIh8vv^mtd?Mwh|G9Ua4-R`i0-|G8Hqdxi4KGS%i{s-XR)3S`s{N>2CPLRq6DJjg&z~FGI zC-Fs%HEUsHuo*{^dVL5XQF6@F+(X5}bv&mCni8XlquIPUn&4hUa3sx3~h!raeYgo|%8cxQf-a{~)TOGa(6ixsg zAYe7V6~!-JmYOIX!dSD?Ic69iAZuU4PC**Bvw%QSkmZO(io;$jf}zGfr4^bGIT3-7 zA+j28@z7S%P<1zuvE~$8NxhFKOAWswQbU_2y(W;bdC)MjwhlEmsv)U*9!Y^nw!LDT z4dxvKsAk0Kp;fB4EkNYPpq}nU`ETUcGev!Nb@bikEB_}!4sy@&I_$XNdwFp~hr@4m z?AB*N&ldp%;}h!GIt9%Z*Q;_WqHpKa8bDL1faWm~-ajRy`$5jg?J6If^jkmMeX-A{ z=C!A{jGhhCH8r>hG=$HM7ER8p!!bEZ!msmdJcM@ISr4{?JUz}U_FE67hB=J#tRoB z4e!&iUNfC9-W%Vaec#n{p!?X3+Tw@2rI!WAb(-lNqrS5zn~rlDpPAVQ`gPZ}h-o4= zI*)%2I>gxKNPjo<>%=(qOB|B%GK$`~dT5||Em=z^lEmPiw{*Rw5TrWhi9%&JDqySf z2Xn#hU_W2f*j802tYm4tW}CZf(jPBXYiE^SeC&vA`!iJ<+QNF=4?Ua*LtNb-u+vtBrwSOT;Vli$I&M$W zsntmOb*ZuO0ZuJum#Q!l$K@r@U7?C_7inwPU~FA5AbEQlGh5$!`J4@tJ779k5%*2JE>jq0W7%i8kv_Wiplfu@tLY7v7`M({l`vgTOCU?Ia0>G> zVM`Dx1zcStT5?^KqIp+Elb@~`S{;W4x$+&xYU&;fR3SEK6A6S@Tx9iDNL;X(Z%!tC zzj)jLYvms%F)s;$CInSOKxP0rgUyXg=TWTkiZXK@uNn);Jw`l#8mZTUr#TQ)D&6=4 z^8g_!H8CngkXdnPQN)I1RVKB9k=BEO6o3a7FDku{kv@(PlJuUK| zG^wx&W_HY+3jh) zs#qy(M9etO0?Df>h#H_ug&|q@(vk!v3&^}<6srZvJfwsO@Uajq|Bb?vuvkU1R`rV5 z6v^TqHad$$!NXQ`TmVokMDWNS;^Mhs5Nr+ZMU0w%1ZL(e1xgd3I7YnG`w9ttUvYTV zB-2i-6>vBnS4dgwd$AybU!$C{QMM-nKQUWKKre4bSwsy+&c_C&!+E9ARp))g<*iBZi2B32A| z=wrOb%{+(A{P|j~1^XMu1taMj=}%?sf$e6S!ztd|vpUDNHl?5^&qdGQhO)_l#z0c<^zUkX73U*{)DiKE@L;-eM4wf{5<^wY2{w9C`dx+F9s_9xeUIlmS&0ZBWk2aAe6b2-n?h|bH z!;H3crznBB0~8H>&nUfD+A z!5*GNAp8C|fjD#;+$Q+g{+&5|HC?m_@lHe-Prei9K<;=0cl zGx%k-9N|FfB_xReW-Mkba3e0mJavjzCKB>Qr2wq7vKntHInkt)=CxFqtH+1pl7{Up zqG4kqs%&N=DX--^m+dZT-VY5JUI;jDVHI~oV7^4(5YPlg%!w}g{G~HmO`#{X|CFdhVay!%z z!kTk4qys1Eag-@GMhQ6KYR`AZ9YOWrivm4awZUG_a0y3$%ls zXhiYn>u2$QVb0c$+Bv9dnw9_h80;@)J)s}r5&7N-Tm2klk|3|_@j5r!Ol6{aznA4l zh4GZ^EH-~JxL{`-<9kGAl-kij_Qo3ft#gvC{CjFXm+1|su2B~o+uj>*_gh#B8b53o zzkRF{fVVx7vxjlUdv%;~3?dt^8K)24gJ1}k8{r&qd>qeKkG1<272vwY%-dsJ&$_0b zO@NFx?!W+WIUQyk-(UN2ynF2dn2y<>-;)Pt#cV1KwDz<}!M3f|f&CHXClS47RgT7M zHmIbErGu1NK|)QW@xDk_b-zVTMCx8woiwm*;4?1-ps5QZgfvNuX#E}Rl1 zXXKn)n?zk%>QMy4mJe5F-@u)RG*uN6pZ6Jbzkfhwb7d`F^jP1 zu9|Pd0BD-RUIOFT##qs0qudT-^}ic~LO{%!B~~X#n{mwMGaJv0*^LUK;|P&ew*W51 zky(E;xWwnGAQA)!6;sBGOz3L@=B7Qz%i&% zVG#MrEYrv{WTn`LnJmu|xP7D3C^{l$0gK!J;8# zg#{#J-XVH&q|q)?^QUm}a1}Gq2mt14SjeRq1OOqe7F3`fMr3%S-h+ap01G8RvgVi( ztNddd)4i$OTceP!pNQ1_ys&+z6?{rC5CV&6?j3;|HKY_I7D&-hBgaK1w%jBzo=*S@ zvcZ-Gpseylp$tFW)vzS>MPgEUsZfH4K3PHoi)hldEXfQIr5LUjGg_HhhKqW(6adMx zPY6)0WQ9P*=WgtU!*@rS6;NZJuQ@@oJttz-ssPXTp(rDoGYA>Nj8fRj#zWzb49RYE zG~->RE35`tDY}=ea*?kO1IWg63DCV-ik305vu{E}cR~Rr%Uc5TB4ahYFneVrGNZ3? zObh4pE0Ef{j}2q&9@YF~D&$tqrq7MMfv9VbYrnQb%_vB2b(Y?P*MtU8B8X-&H_>1s zr9?X2Qo1y`s?&^}zj>7}Q$U9KyG#pFI`90?>%omxqZ*Glg=NAk$>brxWFMEmYTsnM zV}W|$7=UaMoL2WRDh&??-C#2xpXUUI8-s@NqY}fMi|D!~ZU(18E+muPn8=DuirXzg zc`J8pWITm{U~%E|Kv@`Kk5gYqsCO-rgOrF@f~h=YtqiPU&Q` zXZMUYGdX#$tv!7U=)pS9tMyf?9bvECQI_8`I?Z%tvQmLm+&CSuvXG&L?jUiV3~Kpy z-oo|P3@|?8Vt|3Pm^&Bbt;&IBqIdUJbc#g;&Zszyo7#W#>MK!k3ghaYueH<%1;JhP zM&%*C+uC#D)q6@rMScfHvB6-&MPPD*yskJL4x4#y$3f=O?t;ZYY(jr~)lNpmdql!f zA*;{2U=f+v*nWh4seW2h#W#*;9Lt^pIKpPOx%Lb?)w5;5kEx-iwyy-gJ`;#<+nT|P z23wcq9y}wyhq;MMPj=#8Gj6NLfP3urIE8>t9jVyBEy8BJSI1Oj!(Zy2!?t}1?QE2I z^lLG@MgxH>`6CU8iFc7qsPp}=QVv@6h0`(H8|FyT3!f9%jr(yV-kx&=9qv#!kN8`+ z4uOu1bZ-W`&HL<<=N#S}+z!9b_Wg_wj(h6V9@+?9M(A=8J3ipYi<#Z7Sg|#g;(3O=oOHfN|X2-Ix$V1 z%bJ|DxWOWuY0Kcq0%B1^Qg*wR8ULY14WewJGYLc*7E++eVV&wIaZ*((iKwT92ugwS zbZFHlh#Ha9v(J*|rlR3a;>v;f{ICGRSVbVDCIUv%kQoxoX=Qt=03sRWiB(y>h*k>; z)+j1QS_o2(3PxJA6tqDMARwh0wnU|9B_s20ayS0WTDe4_vjU>|Wki~hJ3+lJj->d& zqI8-`L%FhOl4UkJOq@}21~G6f!HZA?;G_mNvD_mrl9MF_h6-hhn{0`23(gcZuu9Q2 zwiU|Nkf&675zSqap?Jn5){pxuG=qu4mTKRL7l<4c3z#*G&J^(iF@uOzHWPR>lzHP2 z3Y#&2R58`yF<8zXqYsguF~Jk}LSPk|G*66I%wYhlm`9DRN0y>=qL2kkvH1u&@39;+ zhU0>w#f!xS0pp;Pcd$jOWO)5!E`8Q?G*VhQ6 z?dZDObX7deTmqjFcZ`whwc`6zpzEqirM@qr%~6J~f6)#dHZnoQMHoFmJ^Vu_3pKuj z0GHX-cr6TPxV;Ob<2F}hX=w)HxJ1w%!tQ#?Wa=-?3>o<9A3!ecuO2Dnwqy+EF@Y^`v zp}lTwL8mxn1n_4S(p2fnMh_6FmB~cfp(92d4)g5WuM_F!xhE%%@YvHyiBLm~fo=Z3 znH)C5o9-Zd(oY;qY&XiMv*)5LKDIqwx5@8Qqs9rHXdHi>e}qq8_+|o^2kc`Ux4)}> z)Qod*;$HnnVEiD?8Pf3L>+C;XZ^;0Yb3VrJ(N^F`2n~!R&3mkx>X~ z5;2}E_TGly5YN!Z%!O%2_+-+iU!#&W8cu>=YoL5e9LAW*ePojQen)VOpl;_FnL`tP za?W689MaNx4UC2hXDQKYJ*$v35>^*lqgiS+hPbdYix-_SkC8x+{f_s$bq{5_BYbks zQ{}Sqd3W8j4Hog+;p1~GrBwGogx~holP&x}H*sjQx``>X7@2XWxKB`PkI0T~>=DP> z)C3nJ0}}gB+fFuq6DR-^eopjV+mh|tjQ2Ks&4pWSSOwI8SEm^Ih~rg&!xne^@{)BM zoEsPg2%EC$BSSrPwd!(htlhlrZ)-C!ft~A8p(em&#$X?m(QWYsHa>-ODFq3Zz|;1X zhYM6(PcVf_6?P8`aiKUvKqN>>PeTA@k|~*hC;&n8U=RU`j-aw48%``z)L3A7NQg9% zr~RT{B{e~}*x6}9DTIZN5D~0ohY28vWUwiao{%*OfNZ7O?POg`NM|hO`69N(sUA+i z#!R4;a1a7YK`uum*3!X86b-8?+E+H?ji2I!36uepj6?#Y#h%fGuZgJ2e=LNxWKdFX zAWdef3SKGMO8**+nE_;Ea{N;-BlkRE(e@B33o$apm17q376OWUz7VXWbw(jeGG7=( ziX)CdOcCczAvP`5LtC;Ljt{iLG(4XpkvI5U0-^MF|Ms!A~x^FmAT z3RGV1oTXqjb)UrOJ_?qUAfg@>>fy6mZY_ey3W0`=l~RzcN*9X&xt`A}FCncMl?yD? zN!6arD!Vhxd#GgS6Is1{f>N6$8xAO*s1Z_cFMt{%U@q`(P_)y%OaP%^fgm5v+lSRV z$7w_kQV2qS7ZC1yy`(5;K(inXlm6{Al&W`U7gy%~%IRH>cI z4_kgE&TpN)>#K&FY`Kf1Dp-*}6DD*SE+W`L4jFAeArD256qgI9d@;!B2ntW@d*Dwd zUty&GgN)%ESNjfqwqYZBHFUg|?T`cRg==}YT-K;zVtz_(tqfx@`@S)xeO?#KZ^!%N zb5-F-e+hbdiHHy(=t{I->@W!jLLJOUImqSI0LK{*A7zkTd2S+mjq@3=Ze1%M;;yea zp4h%0e8m1^ySs7{x!i1ropO5Y?rBx^4C}k9q?>*Qy#v12_B=B7WviJiTRkR*dv0WK z9SEI_*WM?f>Q{Snc3oWiYbt@$$x${P=QHYcaUEyl-qR;G`U>Xq{Wy-<_nEG_nfCrY*8$pBNDxu_L($tu?Z`!87n}yw>?Gzi>;9C!arZ9GJvA%sxU9f3l ziBAyKdt*kFE+bUF*CJuu8W$RK4KLe#(WFR!HyAKn7}~Jz9U?y_tRCT4$1UMInjl>9 zVP_xh!Dq(8;#$=*dmo`8e~^f26M6U$YeQJgmAR+aUzQlywETu7#$>N2#!t~Yte9@45 z3@z<0AP9~y{$z70MXZvM8u7$3%6d)^uvM(m@>5uBe-s}>(KVo?au7f$vf@~Z?G4>) zwV*sfJ*A4+9;Ax*0D%huS#%sQ?+Fsa7pv??YGf@I(yO?s;f+_4&Lywe@~nu3i{(b^ zMDe1C?t96l=43%>#TkgGdA$VsSm~^V6;@a|IRu$kNITq%hl)xW+W`$3u66uVq~=`TSJ#r&qI}~=kVrBqmP6aaE&w$o=suvzYd@%v11 z-+d=;gb0XX!S@KLAWwfEH~y*d_-|1mWSHR!sLT+6d9DoY!Gr~A?av50leuM^Z~-H- zGeq9NOSS|)j(?ncfeD0V3%8M(ACJdr>Fn86i5oYDI^N$MUw|Rdh&Lg?olL03mch;1 z?fO7u;6YKY?O2ahi0D}skynIh9!GV~-6XNuqut(9Y6F*F3Di7!iYt0Bp+kjp7ZRND zQ*6^2-8hWEc%y(gu5ZVr2VAQHSsfHwsMZOZu^GcC6jET$VH_gOg%~j5G6-b8l4QiX za|JIA1W_m*b2iz)Iws%(LS3WD+Kuq??<3sy-W{*mv*UOlq^-sbGbo0O*(vG8dSUyg zDg7V|VX>Se5Q1=Ni91apFBWD)Pyp+RH=6*cUJFR3P?rok*W|mJELO*L)J&gx!pWq$ zG%U-!7JgStYBU&9HP_={Y4U_5E2W>yhq)z48w6E zFSE`~A%YqQlwXME^kFq@)SNe-PX!thvH+Iq z8uA1Sc_FAFg;(nnTxnB5(Nfr^q=S;>n$a*855qc=)xR?QD=C3daD+gL?<4KACO&6E zmLni)fKWvd$ZJ-IWXrv?7SX~~mayZvsZwNKr@{vO(o}l8I;^OPBmm( z52n-`gCHOl^R`L)s`(?c{qD-&nsrVVjaQ8TZ2PV1s}{fK0>3jAg@PGAEiX}F=N(B; z49Scfur&}MA6*dxXf<i z-WXU`>rad(C^6m6*Lg=3o5+O-%YoGlTTRIUoPe}YCNtO*!7Y`-P{U?W_@+h_>??nr z_%c&8oIgv{TZVRn*Y&stq?4<%&|Vd&nPFs)?~47;4-*`IQe%3tk>AI^?uAA+As@qN zRGaE(<9lt1H**5e=_vl*-W)f2-5^)b){)4KMP#z`L`<vvR!+OLgbgSe1X zg(YQjCMX(!XA_7-dnDi~rP|*t|4LH=`o)U(Hj3)-u74iqa%%p2ZR-6}nGI3%{#lk~ z(^njew>{h7BT=g8B9Q=X1`>#?f9(;n>&KKQitP{m$9FH=oHL`1wxzHc=M~2?BMh@~ zbg(pL9q)~6JZ|I;Ukqk0jJu*ub$n9y>1dog1&bMT^}dWlH{xpmia1}#@8Sw!Glx1R z+QPCvR}=iTK~yi`2$#V4VjCL;ozUfI@@Kp82Btn8Q|J=`*V^e;2TUc1PGG3DHyR_n zj~QJ6Pz9nmp3WE(O3^hT(Q|RAlEGy85#YIDw&76q3JC}6IB1Ti@!Ay}!@U_j8GoNW zJNA8JBvrjDnxxZ=1S))}23m8GtX4`_+}NWA3Qa7p0?@G-^SAzCAto9&#Slxr%5K;Y zspXZyRw5f><6^){_7)PgD`l9HXhs2`;uTq_3`E;rS(E0nsPPA)3inz>ljc&g3Nvaz zU{1)nKqTupSVLHnSBWW_gN1Z*HP3=q{&TnZoYgR-vfo(!04DJ3-q7T~fN^`EB)EZ+ zsi5Qnrlh%YELVsMn#PR8iEGid7Ovh%khSq5Qv%7#fqTxEg_BitDaPMa2xX%=MSzqR zQ#1%-$%ay;W26aVA*N`m;Ui&zNVZ%$34W$nw~iYnp!tZH6@QNckY)BOq<8|yRgoab zK~KOXTeYlYxkqeoaMA?n+J&y2hpwOiv^2O&0j$E4E`u5lsji*n74lNd0uantO4+;w zTv$&U&IW>T>f{FZ7GXPbtrgEG>v~bLY&>44sd@U58Ir{13tLB%$j!s1d6l@rtzKnj z7D~x-wCO?!)BvQs!p@CtOv${Rs>dl&WMcR5=W|Yb=eMKUDEg_!C4Qn;(%J~?hdb&oM>as;V3~@e6jz+F=hA*;GHkq`E+8NaKS z=gOnnTwJxOOkH_xc*DmylYRCMKI+(Hzy~9naX?aWvw~+McXqg_KTP{OW$dVV`?OOB z!)7d9o8hZJI+Hc(eB%{lzFoP!j%VIZTMu+{?o3aNa?UJo%c-j~TzKEZGf^%jYDndJ zTolhC{hH6l;51tAt03cFN4b5}%Vs)!FC#zrr7~BW{|3(~=m>(EuPKg?h_Ecn{NNH> z+?h7~Wr z7rh;rdE-tr+f?!Mo&pp5@XveCgQ%AL+gsQ@BS~B^3K``A)G9uE{q7-LH{LMDy?Ms( zol!=5rF1$M>KZr+gV|W)hMFpcU1gvBx%&80O1lc*Y|cIfMnCSEu_Ct7Der@6Wq5ki z?u?1dU=pAAc4L|9sS$zucAbgGz0~y)e($bGw2HJ4GaHB|rHr%euT%4L;u`z)?ngm& z^KMT>I`?9r5v$qy*W`Vny+}i1BCmLVh6|C=cIycY*r309o+J@bMK&;>**wSoXN+(r z6vVE__h+~j-yg3kfLwA#W9Ml2oH6Z&gAScQ>oTfQ5TtoYRC$of{B)WsjJu$g?MTRz zYnnA*A5MZo*@S;?l{+k)M31py8Sd5XzE-zk0Tw@Ahm+I*N7EScae)_2DgqF^BDcihvtTGdXkX=|K z%~b>oohTwm%t#D~6s)94a0!A1o(vgk9O4B!84XJ++Gg8B4fy;1;lb*pT(tcE!mTKtAnQ#=b=qbyuLuO(NIjU?i)l0(?7neZ$I;F^} zgl&}WjSxSVJDu0JInCtQK-&!_^>7H%Dp(=#Yy0jc$_1ixw#n6QyzMyesu`N%6nJ{a zM~rSHU%PNK&cgZSChY)GUAGN^lLlHvE#bNd$Us5as0D;BhGYlR%>0Q*K%n)&Y6B^*YDT> z1DIgGGZIH~5drf8H$(uvk}x9e3^`}WJ=@fNe`eV6Yh08W5;_yD3~ADi&;Jy`jPJO` zttut9iZg?Px6u*Uj#;52b|WDeiDp%}fen$|8+TQVjqW&1BeC)4qs!Xf+II8cphN~Z zjqS#b7~yeh+z}q}-b`8DJc~f!EXz9;Y|Av;-?7Tl3`gTQ_89LhSBJtTz$bW*6be>m zZ1J-A9uQy0t?;2C2!RaHgcwd>b(!GOGb0mNG2kT)uwm|nMxyG@3qdFFB0MJu_hg_e zJ7XK+MVK)0;T@LAnzDMqke3q=>syTZ&1i$iqwnGKW>2HvOEX$H6*dB##&*X&H+~-B zFn*5AaAcHXuu`KUK$LKP%vvc{0I`ZRF3$)Al$!BIOn}#FNMuP#U11K)k6g+vAk9Ln z1_dyL2rDedNFoT?i4Z}JzajKQkc~&d%H9Gbnq*YeT4Xd6+OrY_6lP?0r5I|YNwAzO znkbft%p<1l-Ndl@vp#F9ET;Swv9Sx()+DBsLX*L&w~i^-1_Jlw@%eBvV~Q}yj5yBE z)ayn)WD2r*jW7}|C|NYQt%V!`D;TRLkEJG}C@ic$Dr(3TQ5ah|38!sO%c%i10xK6&;|gW<_R-x6wq(;P=v)6J@bb*OBzUfcVj($1 zhJVDU^~cG|?ZVz83jry*Qf3RX3^!h0T+L(}c4)Lamx{N(enkkxi}hh1KZe;%wkd4Q zK&8Q+jE`cg2AXF`*w#7~R^hVeMpi)Yz-#G6}M){dEIk zm5~T-QCyC!Kbum=jh>(ymIEv%@?c%h9T~(8eh5bVsDRGo!tQEx2MwBjVq;;&3Av++uEx{ z?EQ^%nf>1Fu?WBE8nyj58biO{>n#~zJgf*&`KK+S=mvB5LOY2lQr+~mt@-90f1f4U znJQYLsm(?R#Qd_2<_e$+dfR!8@9r{6CvNuJSar$WFfrK(DkScYlZIiRGAamAU2@0G zF}^=C3;^|%7eL3HMgn=tz_3vooq5|SHPD#zxG_eCI3vdKG-ZUx-tV)qR<8*YOxvkX zW2hs%T=5^7-3$)nxJTH;u~F4frNa}pq?@yL>O4$%YB*%$c7u^q&|#@(@E_;UF$qh`F?}j9JDu@|upe1ov z5-iE8EwO0gUm?w{!&(-ZK{^iGC`z+n^Hb%nK!Bp(3GQ9NppL5`3pbWsn+;oo_g@U)}?-Hz{7D}V9F!s(?m5J04qqyb9S?9Nw z^F<%?jfRD^ij}e|AEV(KVDPtp5X%FCN*|Kt;E@6gPEs#y80sft$STOWG`{MLs6Iw& zSnx1O|IK6t_bQ3cE1&{SIL&tjaNswt+$rpg&c{Ql$TRF82jhr!VrydUa+G6HjfQnj z+Mre#3p|Rc$w0;CK%`!OZZ38?0utubK-TyRp@x1U8WQ$&#;8F9LE{s-tZ#Qm)S$kuipAJ?ctvWzygm}Cz zV-DkQv;M}h$8l68*xyGJ9{n(KMg;2|h&1_X{2mC#IPclGXG-ii&v>sfm^kUEwlW>r07VX-YshUZ>9x3rRx|7`H~(`rRueOscTOF^+`u z6tmo;7i5YYCXB56KENa5)p*4*mQpqhSCyZzzjt6g;>2uxyK5r@E!zE74E37*xC zpzbMRn_8f!?*f8|dPzVmJcUd#urZh$4T>;w@#;Z>gQyXtCWI!kcc^-+5p!$9HlN6< zDM$$ruqxJ;0yTt~V%>btK zM3vk{8?ZbZy3WOnS%zI^6cfO3y+CnE4H~8>_*#(DDzb1OO@ItDKoP-=rm%1iqsT!j|YC^I1*)Q#Wq3@x=K~JI>VuZ=eT?X{7~(c{)^OujB0WKF+f=uo9wn6L5N z_q*>W{<|F4d9&W*eBw33ry2d4jcZ(wnaukjI``~e`_1?!(DFN$M)w`pJ(O6Pp4%yk z>3N2?r$Kk}dP^QK>v}wny)tM+K*g9{wbV^E�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 ZWju75pp0D0O9h+_Jso3h>^;Yb{{Vm%*lhp+ literal 0 HcmV?d00001 From 7340b6dbc49d3bf8da73b87d121e0f3c367d8ccb Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 27 Nov 2018 10:53:00 +0100 Subject: [PATCH 0494/1039] Update CameraButton.qml Contributes to CL-1150 --- plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml b/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml index 7e5c254e5c..618dbed81c 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml @@ -9,10 +9,10 @@ import Cura 1.0 as Cura Rectangle { property var iconSource: null; - color: clickArea.containsMouse ? UM.Theme.getColor("primary_hover") : UM.Theme.getColor("primary"); // "Cura Blue" + color: "#0a0850" // TODO: Theme! height: width; radius: Math.round(0.5 * width); - width: 36 * screenScaleFactor; + width: 24 * screenScaleFactor; UM.RecolorImage { id: icon; From 616ec13457f12fc3b0396f3872ec29024bd4ed9f Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 27 Nov 2018 10:54:26 +0100 Subject: [PATCH 0495/1039] Change context menu button size Contributes to CL-1150 --- .../UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml index 11bc913d06..02a8e7ae69 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml @@ -25,7 +25,7 @@ Item { } contentItem: Label { color: UM.Theme.getColor("monitor_context_menu_dots"); - font.pixelSize: 25 * screenScaleFactor; + font.pixelSize: 32 * screenScaleFactor; horizontalAlignment: Text.AlignHCenter; text: button.text; verticalAlignment: Text.AlignVCenter; @@ -41,7 +41,7 @@ Item { var states = ["queued", "sent_to_printer", "pre_print", "printing", "pausing", "paused", "resuming"]; return states.indexOf(printJob.state) !== -1; } - width: 35 * screenScaleFactor; // TODO: Theme! + width: 36 * screenScaleFactor; // TODO: Theme! } Popup { From 8965695a59916b6895d90468257007a5dd29a403 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 27 Nov 2018 10:54:46 +0100 Subject: [PATCH 0496/1039] Update MonitorPrintJobProgressBar.qml Contributes to CL-1150 --- .../qml/MonitorPrintJobProgressBar.qml | 202 ++++++++++-------- 1 file changed, 112 insertions(+), 90 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index e7f9799310..6e16d026a1 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -6,107 +6,129 @@ import QtQuick.Controls.Styles 1.3 import QtQuick.Controls 1.4 import UM 1.3 as UM -ProgressBar +/** + * NOTE: For most labels, a fixed height with vertical alignment is used to make + * layouts more deterministic (like the fixed-size textboxes used in original + * mock-ups). This is also a stand-in for CSS's 'line-height' property. Denoted + * with '// FIXED-LINE-HEIGHT:'. + */ +Item { + id: base property var printJob: null - property var progress: { - if (!printJob) { - return 0; + property var progress: + { + if (!printJob) + { + return 0 } - var result = printJob.timeElapsed / printJob.timeTotal; - if (result > 1.0) { - result = 1.0; + var result = printJob.timeElapsed / printJob.timeTotal + if (result > 1.0) + { + result = 1.0 } - return result; + return result } - width: 180 * screenScaleFactor // TODO: Theme! - value: progress; - style: ProgressBarStyle { - property var remainingTime: { - if (!printJob) { - return 0; - } - /* Sometimes total minus elapsed is less than 0. Use Math.max() to prevent remaining - time from ever being less than 0. Negative durations cause strange behavior such - as displaying "-1h -1m". */ - return Math.max(printer.activePrintJob.timeTotal - printer.activePrintJob.timeElapsed, 0); + property var remainingTime: + { + if (!printJob) { + return 0 } - property var progressText: { - if (!printJob) { - return ""; - } - switch (printJob.state) { - case "wait_cleanup": - if (printJob.timeTotal > printJob.timeElapsed) { - return catalog.i18nc("@label:status", "Aborted"); - } - return catalog.i18nc("@label:status", "Finished"); - case "pre_print": - case "sent_to_printer": - return catalog.i18nc("@label:status", "Preparing"); - case "aborted": - return catalog.i18nc("@label:status", "Aborted"); - case "wait_user_action": - return catalog.i18nc("@label:status", "Aborted"); - case "pausing": - return catalog.i18nc("@label:status", "Pausing"); - case "paused": - return OutputDevice.formatDuration( remainingTime ); - case "resuming": - return catalog.i18nc("@label:status", "Resuming"); - case "queued": - return catalog.i18nc("@label:status", "Action required"); - default: - return OutputDevice.formatDuration( remainingTime ); - } + /* Sometimes total minus elapsed is less than 0. Use Math.max() to prevent remaining + time from ever being less than 0. Negative durations cause strange behavior such + as displaying "-1h -1m". */ + return Math.max(printer.activePrintJob.timeTotal - printer.activePrintJob.timeElapsed, 0) + } + property var progressText: + { + if (!printJob) + { + return ""; } - background: Rectangle { - color: "#e4e4f2" // TODO: Theme! - implicitHeight: visible ? 8 : 0; - implicitWidth: 180; - radius: 4 - } - progress: Rectangle { - id: progressItem; - color: { - if (!printJob) { - return "black"; + switch (printJob.state) + { + case "wait_cleanup": + if (printJob.timeTotal > printJob.timeElapsed) + { + return catalog.i18nc("@label:status", "Aborted") } - var state = printJob.state - var inactiveStates = [ - "pausing", - "paused", - "resuming", - "wait_cleanup" - ]; - if (inactiveStates.indexOf(state) > -1 && remainingTime > 0) { - return UM.Theme.getColor("monitor_progress_fill_inactive"); - } else { + return catalog.i18nc("@label:status", "Finished") + case "pre_print": + case "sent_to_printer": + return catalog.i18nc("@label:status", "Preparing") + case "aborted": + return catalog.i18nc("@label:status", "Aborted") + case "wait_user_action": + return catalog.i18nc("@label:status", "Aborted") + case "pausing": + return catalog.i18nc("@label:status", "Pausing") + case "paused": + return OutputDevice.formatDuration( remainingTime ) + case "resuming": + return catalog.i18nc("@label:status", "Resuming") + case "queued": + return catalog.i18nc("@label:status", "Action required") + default: + return OutputDevice.formatDuration( remainingTime ) + } + } + width: childrenRect.width + height: 18 * screenScaleFactor // TODO: Theme! + + ProgressBar + { + id: progressBar + anchors + { + verticalCenter: parent.verticalCenter + } + value: progress; + style: ProgressBarStyle + { + background: Rectangle + { + color: "#e4e4f2" // TODO: Theme! + implicitHeight: visible ? 8 * screenScaleFactor : 0 // TODO: Theme! + implicitWidth: 180 * screenScaleFactor // TODO: Theme! + radius: 4 * screenScaleFactor // TODO: Theme! + } + progress: Rectangle + { + id: progressItem; + color: + { + var state = printJob.state + var inactiveStates = [ + "pausing", + "paused", + "resuming", + "wait_cleanup" + ] + if (inactiveStates.indexOf(state) > -1 && remainingTime > 0) + { + return UM.Theme.getColor("monitor_progress_fill_inactive") + } return "#0a0850" // TODO: Theme! } - } - radius: 4 - - Label { - id: progressLabel; - anchors { - left: parent.left; - leftMargin: getTextOffset(); - } - text: progressText; - anchors.verticalCenter: parent.verticalCenter; - color: progressItem.width + progressLabel.width < control.width ? UM.Theme.getColor("text") : UM.Theme.getColor("monitor_progress_fill_text"); - width: contentWidth; - font: UM.Theme.getFont("default"); - } - - function getTextOffset() { - if (progressItem.width + progressLabel.width + 16 < control.width) { - return progressItem.width + UM.Theme.getSize("default_margin").width; - } else { - return progressItem.width - progressLabel.width - UM.Theme.getSize("default_margin").width; - } + radius: 4 * screenScaleFactor // TODO: Theme! } } } + Label + { + id: progressLabel + anchors + { + left: progressBar.right + leftMargin: 18 * screenScaleFactor // TODO: Theme! + } + text: progressText + color: "#374355" // TODO: Theme! + width: contentWidth + font: UM.Theme.getFont("medium") // 14pt, regular + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } } \ No newline at end of file From 475a94d10d4e7fadb7fc43978c59349cda6bb000 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 27 Nov 2018 10:55:08 +0100 Subject: [PATCH 0497/1039] Add printer images Commit to CL-1150 --- .../resources/qml/MonitorPrinterCard.qml | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 2fd3f2ead2..8089ea2d30 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.3 import QtQuick.Controls 2.0 import UM 1.3 as UM @@ -50,12 +50,18 @@ Item } spacing: 18 * screenScaleFactor // TODO: Theme! - Rectangle + Image { id: printerImage - color: "#eeeeee" - width: 108 - height: 108 + width: 108 * screenScaleFactor // TODO: Theme! + height: 108 * screenScaleFactor // TODO: Theme! + fillMode: Image.PreserveAspectFit + source: + { + console.log(printer) + return "../png/ultimaker_s5.png" + } + mipmap: true } Item @@ -111,16 +117,28 @@ Item PrintJobContextMenu { id: contextButton - // anchors - // { - // right: parent.right - // rightMargin: 8 * screenScaleFactor // TODO: Theme! - // top: parent.top - // topMargin: 8 * screenScaleFactor // TODO: Theme! - // } - printJob: base.printJob - width: 32 * screenScaleFactor // TODO: Theme! - height: 32 * screenScaleFactor // TODO: Theme! + anchors + { + right: parent.right + rightMargin: 12 * screenScaleFactor // TODO: Theme! + top: parent.top + topMargin: 12 * screenScaleFactor // TODO: Theme! + } + printJob: printer.activePrintJob + width: 36 * screenScaleFactor // TODO: Theme! + height: 36 * screenScaleFactor // TODO: Theme! + } + CameraButton + { + id: cameraButton; + anchors + { + right: parent.right + rightMargin: 20 * screenScaleFactor // TODO: Theme! + bottom: parent.bottom + bottomMargin: 20 * screenScaleFactor // TODO: Theme! + } + iconSource: "../svg/camera-icon.svg" } } From c489f911fb2b16bef7dfa5a4bac76ee83620d13b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 11:04:41 +0100 Subject: [PATCH 0498/1039] Use QtQuick 2.0 and simplify ConfigurationItem It now uses a ButtonGroup (from QtQuick2). Also, all the mess with when the border and background colours are updated and force-updated and such is now cleaned up. Contributes to issue CURA-5876. --- .../ConfigurationMenu/ConfigurationItem.qml | 189 +++++++----------- .../ConfigurationListView.qml | 10 +- 2 files changed, 83 insertions(+), 116 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 7427b5ddff..d825a8cc6e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -7,143 +7,108 @@ import QtQuick.Controls 2.0 import UM 1.2 as UM import Cura 1.0 as Cura -Rectangle +Button { id: configurationItem property var configuration: null - property var selected: false signal activateConfiguration() height: childrenRect.height - border.width: UM.Theme.getSize("default_lining").width - border.color: updateBorderColor() - color: selected ? UM.Theme.getColor("configuration_item_active") : UM.Theme.getColor("configuration_item") - property var textColor: selected ? UM.Theme.getColor("configuration_item_text_active") : UM.Theme.getColor("configuration_item_text") - function updateBorderColor() + property var textColor: checked ? UM.Theme.getColor("configuration_item_text_active") : UM.Theme.getColor("configuration_item_text") + + contentItem: Rectangle { - border.color = selected ? UM.Theme.getColor("configuration_item_border_active") : UM.Theme.getColor("configuration_item_border") - } + height: childrenRect.height + color: parent.checked ? UM.Theme.getColor("configuration_item_active") : UM.Theme.getColor("configuration_item") + border.color: (parent.checked || parent.hovered) ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") + border.width: UM.Theme.getSize("default_lining").width - Column - { - id: contentColumn - width: parent.width - padding: UM.Theme.getSize("default_margin").width - spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) - - Row + Column { - id: extruderRow + id: contentColumn + width: parent.width + padding: UM.Theme.getSize("default_margin").width + spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) - width: parent.width - 2 * parent.padding - height: childrenRect.height - - spacing: UM.Theme.getSize("default_margin").width - - Repeater + Row { - id: repeater + id: extruderRow + + width: parent.width - 2 * parent.padding height: childrenRect.height - model: configuration.extruderConfigurations - delegate: PrintCoreConfiguration + + spacing: UM.Theme.getSize("default_margin").width + + Repeater { - width: Math.round(parent.width / 2) - printCoreConfiguration: modelData - mainColor: textColor + id: repeater + height: childrenRect.height + model: configuration.extruderConfigurations + delegate: PrintCoreConfiguration + { + width: Math.round(parent.width / 2) + printCoreConfiguration: modelData + mainColor: textColor + } + } + } + + //Buildplate row separator + Rectangle + { + id: separator + + visible: buildplateInformation.visible + width: parent.width - 2 * parent.padding + height: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 + color: textColor + } + + Item + { + id: buildplateInformation + width: parent.width - 2 * parent.padding + height: childrenRect.height + visible: configuration.buildplateConfiguration != "" + + UM.RecolorImage { + id: buildplateIcon + anchors.left: parent.left + width: UM.Theme.getSize("main_window_header_button_icon").width + height: UM.Theme.getSize("main_window_header_button_icon").height + sourceSize.width: width + sourceSize.height: height + source: UM.Theme.getIcon("buildplate") + color: textColor + } + + Label + { + id: buildplateLabel + anchors.left: buildplateIcon.right + anchors.verticalCenter: buildplateIcon.verticalCenter + anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").height / 2) + text: configuration.buildplateConfiguration + renderType: Text.NativeRendering + color: textColor } } } - //Buildplate row separator - Rectangle + Connections { - id: separator - - visible: buildplateInformation.visible - width: parent.width - 2 * parent.padding - height: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 - color: textColor - } - - Item - { - id: buildplateInformation - width: parent.width - 2 * parent.padding - height: childrenRect.height - visible: configuration.buildplateConfiguration != "" - - UM.RecolorImage { - id: buildplateIcon - anchors.left: parent.left - width: UM.Theme.getSize("main_window_header_button_icon").width - height: UM.Theme.getSize("main_window_header_button_icon").height - sourceSize.width: width - sourceSize.height: height - source: UM.Theme.getIcon("buildplate") - color: textColor - } - - Label + target: Cura.MachineManager + onCurrentConfigurationChanged: { - id: buildplateLabel - anchors.left: buildplateIcon.right - anchors.verticalCenter: buildplateIcon.verticalCenter - anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").height / 2) - text: configuration.buildplateConfiguration - renderType: Text.NativeRendering - color: textColor + configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) } } - } - MouseArea - { - id: mouse - anchors.fill: parent - onClicked: activateConfiguration() - cursorShape: Qt.PointingHandCursor - hoverEnabled: true - onEntered: + Component.onCompleted: { - parent.border.color = UM.Theme.getColor("configuration_item_border_hover") - if (configurationItem.selected == false) - { - configurationItem.color = UM.Theme.getColor("wide_lining") - } - } - onExited: - { - updateBorderColor() - if (configurationItem.selected == false) - { - configurationItem.color = UM.Theme.getColor("configuration_item") - } - } - } - - Connections - { - target: Cura.MachineManager - onCurrentConfigurationChanged: { - configurationItem.selected = Cura.MachineManager.matchesConfiguration(configuration) - updateBorderColor() - } - } - - Component.onCompleted: - { - configurationItem.selected = Cura.MachineManager.matchesConfiguration(configuration) - updateBorderColor() - } - - onVisibleChanged: - { - if(visible) - { - // I cannot trigger function updateBorderColor() after visibility change - color = selected ? UM.Theme.getColor("configuration_item_active") : UM.Theme.getColor("configuration_item") + configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) } } } \ No newline at end of file diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 2f5bf0b1a2..7df93b9cbe 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -2,8 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 +import QtQuick.Controls 2.4 import UM 1.2 as UM import Cura 1.0 as Cura @@ -31,8 +30,10 @@ Column width: parent.width - parent.padding height: Math.min(configurationList.contentHeight, 350 * screenScaleFactor) - style: UM.Theme.styles.scrollview - __wheelAreaScrollSpeed: 75 // Scroll three lines in one scroll event + ButtonGroup + { + buttons: configurationList.children + } ListView { @@ -64,6 +65,7 @@ Column } model: (outputDevice != null) ? outputDevice.uniqueConfigurations : [] + delegate: ConfigurationItem { width: parent.width - UM.Theme.getSize("default_margin").width From e05566865a9d5333d1dbf444b62a3ecbd4a29445 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 11:19:03 +0100 Subject: [PATCH 0499/1039] Use ExtruderIcon component to display extruder icon Since we already have that component pre-designed, let's use it. Contributes to issue CURA-5876. --- .../PrintCoreConfiguration.qml | 34 +++---------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index 97b5bee745..e8cadda05e 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -5,7 +5,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 import UM 1.2 as UM - +import Cura 1.0 as Cura Column { @@ -33,37 +33,13 @@ Column color: mainColor } - // Rounded item to show the extruder number - Item + Cura.ExtruderIcon { - id: extruderIconItem - anchors.verticalCenter: extruderLabel.verticalCenter - anchors.left: extruderLabel.right - anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").width / 2) - width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - - UM.RecolorImage { - id: mainCircle - anchors.fill: parent - - anchors.centerIn: parent - sourceSize.width: parent.width - sourceSize.height: parent.height - source: UM.Theme.getIcon("extruder_button") - color: mainColor - } - - Label - { - id: extruderNumberText - anchors.centerIn: parent - text: printCoreConfiguration.position + 1 - renderType: Text.NativeRendering - font: UM.Theme.getFont("default") - color: mainColor - } + materialColor: mainColor + anchors.left: extruderLabel.right + anchors.leftMargin: UM.Theme.getSize("narrow_margin").width } } From a3f0630ee9a1ba106969dada676c1d045cd5e762 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 27 Nov 2018 11:19:30 +0100 Subject: [PATCH 0500/1039] Rename printer images Contributes to CL-1150 --- ...ultimaker_3_ext.png => Ultimaker 3 Extended.png} | Bin .../png/{ultimaker_3.png => Ultimaker 3.png} | Bin .../png/{ultimaker_s5.png => Ultimaker S5.png} | Bin .../resources/qml/MonitorPrinterCard.qml | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) rename plugins/UM3NetworkPrinting/resources/png/{ultimaker_3_ext.png => Ultimaker 3 Extended.png} (100%) rename plugins/UM3NetworkPrinting/resources/png/{ultimaker_3.png => Ultimaker 3.png} (100%) rename plugins/UM3NetworkPrinting/resources/png/{ultimaker_s5.png => Ultimaker S5.png} (100%) diff --git a/plugins/UM3NetworkPrinting/resources/png/ultimaker_3_ext.png b/plugins/UM3NetworkPrinting/resources/png/Ultimaker 3 Extended.png similarity index 100% rename from plugins/UM3NetworkPrinting/resources/png/ultimaker_3_ext.png rename to plugins/UM3NetworkPrinting/resources/png/Ultimaker 3 Extended.png diff --git a/plugins/UM3NetworkPrinting/resources/png/ultimaker_3.png b/plugins/UM3NetworkPrinting/resources/png/Ultimaker 3.png similarity index 100% rename from plugins/UM3NetworkPrinting/resources/png/ultimaker_3.png rename to plugins/UM3NetworkPrinting/resources/png/Ultimaker 3.png diff --git a/plugins/UM3NetworkPrinting/resources/png/ultimaker_s5.png b/plugins/UM3NetworkPrinting/resources/png/Ultimaker S5.png similarity index 100% rename from plugins/UM3NetworkPrinting/resources/png/ultimaker_s5.png rename to plugins/UM3NetworkPrinting/resources/png/Ultimaker S5.png diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 8089ea2d30..bc8144bcd6 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -58,8 +58,8 @@ Item fillMode: Image.PreserveAspectFit source: { - console.log(printer) - return "../png/ultimaker_s5.png" + console.log(printer.type) + return "../png/"+printer.type+".png" } mipmap: true } From fd723e10842f2fe4d77d9c010495c72aea8dfd20 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 27 Nov 2018 11:19:45 +0100 Subject: [PATCH 0501/1039] Improve camera icon Contributes to CL-1150 --- .../UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml | 2 +- plugins/UM3NetworkPrinting/resources/svg/icons/camera.svg | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 plugins/UM3NetworkPrinting/resources/svg/icons/camera.svg diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index bc8144bcd6..d1d9bec351 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -138,7 +138,7 @@ Item bottom: parent.bottom bottomMargin: 20 * screenScaleFactor // TODO: Theme! } - iconSource: "../svg/camera-icon.svg" + iconSource: "../svg/icons/camera.svg" } } diff --git a/plugins/UM3NetworkPrinting/resources/svg/icons/camera.svg b/plugins/UM3NetworkPrinting/resources/svg/icons/camera.svg new file mode 100644 index 0000000000..2eaebb812d --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/svg/icons/camera.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From e6c2238fd51a5eec44a645ad4a1e798120bf58a5 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 27 Nov 2018 11:24:09 +0100 Subject: [PATCH 0502/1039] Added popup spacing by Y coordinate CURA-5941 --- resources/qml/ExpandableComponent.qml | 5 ++++- resources/qml/PrintSetupSelector.qml | 12 ++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 262c6bfd3f..3b1105ddd6 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -24,6 +24,9 @@ Item // How much spacing is needed around the popupItem property alias popupPadding: popup.padding + // How much spacing is needed for the popupItem by Y coordinate + property var popupSpacingY: 0 + // How much padding is needed around the header & button property alias headerPadding: background.padding @@ -143,7 +146,7 @@ Item id: popup // Ensure that the popup is located directly below the headerItem - y: headerItemLoader.height + 2 * background.padding + y: headerItemLoader.height + 2 * background.padding + popupSpacingY // Make the popup right aligned with the rest. The 3x padding is due to left, right and padding between // the button & text. diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 8271484e6a..5f593f9ba2 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -29,6 +29,7 @@ Cura.ExpandableComponent iconSource: UM.Theme.getIcon("pencil") popupPadding : 0 + popupSpacingY: 10 onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) @@ -150,10 +151,13 @@ Cura.ExpandableComponent verticalAlignment: Text.AlignVCenter color: UM.Theme.getColor("text") height: parent.height - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height -// anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("print_setup_selector_margin").height + + anchors + { + topMargin: UM.Theme.getSize("sidebar_margin").height + left: parent.left + leftMargin: UM.Theme.getSize("print_setup_selector_margin").height + } } Rectangle From e2f85fcdc4922fada1ec7d259cab11a9c452df87 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 11:25:43 +0100 Subject: [PATCH 0503/1039] Add extra space to printer button. Contributes to CURA-5942. --- resources/qml/PrinterSelector/MachineSelector.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 93e5103aa8..15cd773c90 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -90,11 +90,13 @@ Cura.ExpandableComponent id: scroll width: parent.width clip: true + leftPadding: UM.Theme.getSize("default_lining").width + rightPadding: UM.Theme.getSize("default_lining").width MachineSelectorList { // Can't use parent.width since the parent is the flickable component and not the ScrollView - width: scroll.width + width: scroll.width - scroll.leftPadding - scroll.rightPadding property real maximumHeight: UM.Theme.getSize("machine_selector_widget_content").height - buttonRow.height onHeightChanged: From 75b827d3732f128bd3eacb14d8803d90fa057a4c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 11:26:20 +0100 Subject: [PATCH 0504/1039] Modify the hover behavior by removing the mouse area. Contributes to CURA-5942. --- resources/qml/PrinterSelector/MachineSelectorButton.qml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index 992ea55b1d..369e75cede 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -16,6 +16,7 @@ Button leftPadding: UM.Theme.getSize("thick_margin").width rightPadding: UM.Theme.getSize("thick_margin").width checkable: true + hoverEnabled: true property var outputDevice: null property var printerTypesList: [] @@ -86,14 +87,6 @@ Button Cura.MachineManager.setActiveMachine(model.id) } - MouseArea - { - id: mouseArea - anchors.fill: parent - onPressed: mouse.accepted = false - hoverEnabled: true - } - Connections { target: outputDevice From 6876c12106e32d74a1d492eac6d95fc9130a8474 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 11:43:32 +0100 Subject: [PATCH 0505/1039] Remove weird padding from button I don't know why the default Button has padding everywhere, but I don't want it. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index d825a8cc6e..a6778702d1 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -15,6 +15,9 @@ Button signal activateConfiguration() height: childrenRect.height + padding: 0 //Stupid QML button has spacing by default. + rightPadding: 0 + leftPadding: 0 property var textColor: checked ? UM.Theme.getColor("configuration_item_text_active") : UM.Theme.getColor("configuration_item_text") @@ -73,7 +76,8 @@ Button height: childrenRect.height visible: configuration.buildplateConfiguration != "" - UM.RecolorImage { + UM.RecolorImage + { id: buildplateIcon anchors.left: parent.left width: UM.Theme.getSize("main_window_header_button_icon").width From a2b1f5397962d5e4da7511e54eef4e7a1ad235a0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 11:53:17 +0100 Subject: [PATCH 0506/1039] Use normal text colour instead of specialised configuration item text They were the same anyway, and they should always be the same. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 10 ++++------ .../Menus/ConfigurationMenu/ConfigurationListView.qml | 2 +- resources/themes/cura-light/theme.json | 2 -- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index a6778702d1..6a6f0ea834 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -19,8 +19,6 @@ Button rightPadding: 0 leftPadding: 0 - property var textColor: checked ? UM.Theme.getColor("configuration_item_text_active") : UM.Theme.getColor("configuration_item_text") - contentItem: Rectangle { height: childrenRect.height @@ -53,7 +51,7 @@ Button { width: Math.round(parent.width / 2) printCoreConfiguration: modelData - mainColor: textColor + mainColor: UM.Theme.getColor("text") } } } @@ -66,7 +64,7 @@ Button visible: buildplateInformation.visible width: parent.width - 2 * parent.padding height: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 - color: textColor + color: UM.Theme.getColor("text") } Item @@ -85,7 +83,7 @@ Button sourceSize.width: width sourceSize.height: height source: UM.Theme.getIcon("buildplate") - color: textColor + color: UM.Theme.getColor("text") } Label @@ -96,7 +94,7 @@ Button anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").height / 2) text: configuration.buildplateConfiguration renderType: Text.NativeRendering - color: textColor + color: UM.Theme.getColor("text") } } } diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 7df93b9cbe..2b7444be01 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -58,7 +58,7 @@ Column { text: section font: UM.Theme.getFont("small") - color: UM.Theme.getColor("configuration_item_text") + color: UM.Theme.getColor("text") padding: UM.Theme.getSize("narrow_margin").width } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index a51b397262..383159fd91 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -319,8 +319,6 @@ "configuration_item": [255, 255, 255, 0], "configuration_item_active": [12, 169, 227, 32], - "configuration_item_text": [0, 0, 0, 255], - "configuration_item_text_active": [0, 0, 0, 255], "configuration_item_border": [127, 127, 127, 255], "configuration_item_border_active": [12, 169, 227, 32], "configuration_item_border_hover": [50, 130, 255, 255], From 44c415ff78fbc085a81e2fc6da08e91c44c0ea8e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 11:58:32 +0100 Subject: [PATCH 0507/1039] Add shadow to ExpandableComponent --- resources/qml/ExpandableComponent.qml | 23 ++++++++++++++++++++++- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 9b2826daed..b438f0398c 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -4,6 +4,8 @@ import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura +import QtGraphicalEffects 1.0 // For the dropshadow + // The expandable component has 3 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded // * The popupItem; The content that needs to be shown if the component is expanded. @@ -58,6 +60,12 @@ Item // On what side should the header corners be shown? 1 is down, 2 is left, 3 is up and 4 is right. property alias headerCornerSide: background.cornerSide + property alias headerShadowColor: shadow.color + + property alias enableHeaderShadow: shadow.visible + + property int shadowOffset: 2 + function togglePopup() { if(popup.visible) @@ -149,13 +157,26 @@ Item onExited: background.color = headerBackgroundColor } } + DropShadow + { + id: shadow + // Don't blur the shadow + radius: 0 + anchors.fill: background + source: background + verticalOffset: base.shadowOffset + visible: true + color: UM.Theme.getColor("action_button_shadow") + // Should always be drawn behind the background. + z: background.z - 1 + } Popup { id: popup // Ensure that the popup is located directly below the headerItem - y: headerItemLoader.height + 2 * background.padding + y: headerItemLoader.height + 2 * background.padding + base.shadowOffset // Make the popup aligned with the rest, using the property popupAlignment to decide whether is right or left. // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 0cfa36fd2e..cc33d82b7d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -178,7 +178,7 @@ "action_button_disabled": [245, 245, 245, 255], "action_button_disabled_text": [127, 127, 127, 255], "action_button_disabled_border": [245, 245, 245, 255], - "action_button_shadow": [64, 47, 205, 255], + "action_button_shadow": [223, 223, 223, 255], "action_button_disabled_shadow": [228, 228, 228, 255], "scrollbar_background": [255, 255, 255, 255], From e04f14b50c8967d063c90731b6e367ba5c996a9e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 12:01:05 +0100 Subject: [PATCH 0508/1039] Also add shadow to openFile button --- plugins/PrepareStage/PrepareMenu.qml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 81799206a0..31a78ed290 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -8,6 +8,7 @@ import QtQuick.Controls 2.3 import UM 1.3 as UM import Cura 1.1 as Cura +import QtGraphicalEffects 1.0 // For the dropshadow Item { @@ -107,12 +108,26 @@ Item background: Rectangle { + id: background height: UM.Theme.getSize("stage_menu").height width: UM.Theme.getSize("stage_menu").height radius: UM.Theme.getSize("default_radius").width color: openFileButton.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") } + DropShadow + { + id: shadow + // Don't blur the shadow + radius: 0 + anchors.fill: background + source: background + verticalOffset: 2 + visible: true + color: UM.Theme.getColor("action_button_shadow") + // Should always be drawn behind the background. + z: background.z - 1 + } } } } From 1a6822436ddd22d53553c0d2ddcf549084bf763c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 12:01:43 +0100 Subject: [PATCH 0509/1039] Add missing HoverEnabled property Some systems, like mine, don't have the hoverEnabled default set to true. --- plugins/PrepareStage/PrepareMenu.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 31a78ed290..4212911011 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -93,6 +93,7 @@ Item height: UM.Theme.getSize("stage_menu").height width: UM.Theme.getSize("stage_menu").height onClicked: Cura.Actions.open.trigger() + hoverEnabled: true contentItem: UM.RecolorImage { @@ -115,6 +116,7 @@ Item radius: UM.Theme.getSize("default_radius").width color: openFileButton.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") } + DropShadow { id: shadow From e58409b1ef07885a7e7d1807cbf243fc15deaf47 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 12:51:52 +0100 Subject: [PATCH 0510/1039] Correct colours for the selected configuration This should always be the same as the ExpandableComponent's background, so white when it's not active and light blue when it's active, regardless of theme. The naming of this theme entry is a bit weird because the ActionButton theme is used for ExpandableComponent and now for ConfigurationItem as well, but that's why we should NEVER name these theme entries to something specific to one item. Oh well, I'm not about to refactor that now with all the branches going on everywhere. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 6a6f0ea834..98f777d3f3 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -22,7 +22,7 @@ Button contentItem: Rectangle { height: childrenRect.height - color: parent.checked ? UM.Theme.getColor("configuration_item_active") : UM.Theme.getColor("configuration_item") + color: parent.checked ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") border.color: (parent.checked || parent.hovered) ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width From 0be2453daf29080111f622e371708fd970946336 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 12:55:07 +0100 Subject: [PATCH 0511/1039] Update style of border of configuration items Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 98f777d3f3..278381dc5a 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -23,8 +23,8 @@ Button { height: childrenRect.height color: parent.checked ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - border.color: (parent.checked || parent.hovered) ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") - border.width: UM.Theme.getSize("default_lining").width + border.color: parent.hovered ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") + border.width: parent.hovered ? UM.Theme.getSize("thick_lining").width : UM.Theme.getSize("default_lining").width Column { From e751b59b1cd13855b413d79ef8a950bb53b7287b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 12:55:58 +0100 Subject: [PATCH 0512/1039] Remove unused configuration item theme entries The theme of configuration items is now in sync with the rest of the interface. Contributes to issue CURA-5876. --- resources/themes/cura-dark/theme.json | 8 -------- resources/themes/cura-light/theme.json | 6 ------ 2 files changed, 14 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 62b1dbfa0f..40016c5a94 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -197,14 +197,6 @@ "layerview_support_interface": [64, 192, 255, 255], "layerview_nozzle": [181, 166, 66, 120], - "configuration_item": [0, 0, 0, 0], - "configuration_item_active": [12, 169, 227, 179], - "configuration_item_text": [255, 255, 255, 255], - "configuration_item_text_active": [255, 255, 255, 255], - "configuration_item_border": [255, 255, 255, 255], - "configuration_item_border_active": [12, 169, 227, 179], - "configuration_item_border_hover": [12, 169, 227, 179], - "material_compatibility_warning": [255, 255, 255, 255], "quality_slider_unavailable": [179, 179, 179, 255], diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 383159fd91..de9b48c7f0 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -317,12 +317,6 @@ "layerview_support_interface": [64, 192, 255, 255], "layerview_nozzle": [181, 166, 66, 50], - "configuration_item": [255, 255, 255, 0], - "configuration_item_active": [12, 169, 227, 32], - "configuration_item_border": [127, 127, 127, 255], - "configuration_item_border_active": [12, 169, 227, 32], - "configuration_item_border_hover": [50, 130, 255, 255], - "tab_status_connected": [50, 130, 255, 255], "tab_status_disconnected": [200, 200, 200, 255], From fb84b344ecac3683848dbdd71d20e5079bd11818 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 12:58:06 +0100 Subject: [PATCH 0513/1039] Add gradient to header bar --- resources/qml/Cura.qml | 27 ++++++++++++++++++- resources/qml/MainWindow/MainWindowHeader.qml | 27 ++++++++++++++++++- resources/themes/cura-light/theme.json | 1 + 3 files changed, 53 insertions(+), 2 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 2814bb9eb2..63888a4ee4 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -6,6 +6,7 @@ import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtQuick.Layouts 1.1 import QtQuick.Dialogs 1.2 +import QtGraphicalEffects 1.0 import UM 1.3 as UM import Cura 1.1 as Cura @@ -153,7 +154,31 @@ UM.MainWindow } visible: stageMenu.source != "" height: Math.round(UM.Theme.getSize("stage_menu").height / 2) - color: UM.Theme.getColor("main_window_header_background") + + LinearGradient + { + anchors.fill: parent + start: Qt.point(0, 0) + end: Qt.point(parent.width, 0) + gradient: Gradient + { + GradientStop + { + position: 0.0 + color: UM.Theme.getColor("main_window_header_background") + } + GradientStop + { + position: 0.5 + color: UM.Theme.getColor("main_window_header_background_gradient") + } + GradientStop + { + position: 1.0 + color: UM.Theme.getColor("main_window_header_background") + } + } + } } Connections diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index a24af7ee45..2942a9feb3 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -8,6 +8,7 @@ import QtQuick.Controls.Styles 1.1 import UM 1.4 as UM import Cura 1.0 as Cura +import QtGraphicalEffects 1.0 import "../Account" @@ -17,7 +18,31 @@ Rectangle implicitHeight: UM.Theme.getSize("main_window_header").height implicitWidth: UM.Theme.getSize("main_window_header").width - color: UM.Theme.getColor("main_window_header_background") + + LinearGradient + { + anchors.fill: parent + start: Qt.point(0, 0) + end: Qt.point(parent.width, 0) + gradient: Gradient + { + GradientStop + { + position: 0.0 + color: UM.Theme.getColor("main_window_header_background") + } + GradientStop + { + position: 0.5 + color: UM.Theme.getColor("main_window_header_background_gradient") + } + GradientStop + { + position: 1.0 + color: UM.Theme.getColor("main_window_header_background") + } + } + } Image { diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index cc33d82b7d..157adcf6a5 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -100,6 +100,7 @@ "secondary_button_text": [30, 102, 215, 255], "main_window_header_background": [10, 8, 80, 255], + "main_window_header_background_gradient": [25, 23, 91, 255], "main_window_header_button_text_active": [10, 8, 80, 255], "main_window_header_button_text_inactive": [255, 255, 255, 255], "main_window_header_button_text_hovered": [255, 255, 255, 255], From 81cadf702cedea664c1071d46e5261c1dc592b93 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 13:00:51 +0100 Subject: [PATCH 0514/1039] Give configuration items a rounded radius Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 278381dc5a..f04e856705 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -25,6 +25,7 @@ Button color: parent.checked ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") border.color: parent.hovered ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") border.width: parent.hovered ? UM.Theme.getSize("thick_lining").width : UM.Theme.getSize("default_lining").width + radius: UM.Theme.getSize("default_radius").width Column { From 0794a2c8c9197c536ffcba090df72edd7d6e7fc6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 13:03:36 +0100 Subject: [PATCH 0515/1039] Remove not needed printer and extruder definitions. Contributes to CURA-5902. --- .../bibo2_single_extruder_0.def.json | 98 ------------------- .../bibo2_single_extruder_1.def.json | 98 ------------------- .../bibo2_single_extruder_0_0.def.json | 40 -------- .../bibo2_single_extruder_0_1.def.json | 40 -------- .../bibo2_single_extruder_1_0.def.json | 40 -------- .../bibo2_single_extruder_1_1.def.json | 40 -------- 6 files changed, 356 deletions(-) delete mode 100644 resources/definitions/bibo2_single_extruder_0.def.json delete mode 100644 resources/definitions/bibo2_single_extruder_1.def.json delete mode 100644 resources/extruders/bibo2_single_extruder_0_0.def.json delete mode 100644 resources/extruders/bibo2_single_extruder_0_1.def.json delete mode 100644 resources/extruders/bibo2_single_extruder_1_0.def.json delete mode 100644 resources/extruders/bibo2_single_extruder_1_1.def.json diff --git a/resources/definitions/bibo2_single_extruder_0.def.json b/resources/definitions/bibo2_single_extruder_0.def.json deleted file mode 100644 index 93c7a4e5ae..0000000000 --- a/resources/definitions/bibo2_single_extruder_0.def.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "id": "BIBO2 single E1", - "version": 2, - "name": "BIBO2 single E1", - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "na", - "manufacturer": "BIBO", - "category": "Other", - "file_formats": "text/x-gcode", - "has_materials": true, - "machine_extruder_trains": { - "0": "bibo2_single_extruder_0_0", - "1": "bibo2_single_extruder_0_1" - }, - "first_start_actions": [ - "MachineSettingsAction" - ] - }, - "overrides": { - "machine_name": { - "default_value": "BIBO2 single Extruder 1 (right)" - }, - "machine_width": { - "default_value": 214 - }, - "machine_height": { - "default_value": 160 - }, - "machine_depth": { - "default_value": 186 - }, - "machine_center_is_zero": { - "default_value": true - }, - "machine_heated_bed": { - "default_value": true - }, - "machine_nozzle_size": { - "default_value": 0.4 - }, - "machine_nozzle_heat_up_speed": { - "default_value": 2 - }, - "machine_nozzle_cool_down_speed": { - "default_value": 2 - }, - "machine_head_with_fans_polygon": { - "default_value": [ - [ - -68.18, - 64.63 - ], - [ - -68.18, - -47.38 - ], - [ - 35.18, - 64.63 - ], - [ - 35.18, - -47.38 - ] - ] - }, - "material_diameter": { - "default_value": 1.75 - }, - "gantry_height": { - "default_value": 12 - }, - "machine_use_extruder_offset_to_offset_coords": { - "default_value": true - }, - "machine_gcode_flavor": { - "default_value": "RepRap (Marlin/Sprinter)" - }, - "machine_start_gcode": { - "default_value": ";Startcode BIBO printers\nM109 T1 S170 ;preheat the other extruder, so it will not knock or ruin the print\nG90 ; absolute mode\nG21 ; metric values\nM82 ; Extruder in absolute mode\nM107\nG28\nG1 Z2 F400\nT0\nG90\nG92 E0\nG28\nG1 Y0 F1200 E0\nG92 E0\nG1 X-15.0 Y-92.9 Z0.3 F2400.0\t\t; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2\t\t; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4\t\t; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0\t\t; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6\t\t; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8\t\t; draw 4th line\nG1 X-16.0 Y-91.7 Z0.3 F3000.0\t\t; move to side a little\nG1 X16.0 Y-91.7 Z0.3 F1000.0 E10\t\t; draw 5th line\nG1 X16.0 Y-91.4 Z0.3 F3000.0\t\t; move to side a little\nG1 X-16.0 Y-91.4 Z0.3 F1000.0 E12\t\t; draw 5th line\nG1 E11.5 F2400\t\t\t\t; retract filament 0.5mm\nG92 E0\nM117 BIBO Printing..." - }, - "machine_end_gcode": { - "default_value": ";BIBO End GCode\nM107\nG91 ; Relative positioning\nG1 Z1 F100\nM104 T0 S0\nM104 T1 S0\nG1 X-20 Y-20 F3000\nG28 X0 Y0\nG90 ; Absolute positioning\nG92 E0 ; Reset extruder position\nM140 S0 ; Disable heated bed\nM84 ; Turn steppers off\nM117 BIBO Print complete\n " - }, - "machine_extruder_count": { - "default_value": 2 - }, - "prime_tower_position_x": { - "default_value": 50 - }, - "prime_tower_position_y": { - "default_value": 50 - } - } -} - diff --git a/resources/definitions/bibo2_single_extruder_1.def.json b/resources/definitions/bibo2_single_extruder_1.def.json deleted file mode 100644 index 246add09ab..0000000000 --- a/resources/definitions/bibo2_single_extruder_1.def.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "id": "BIBO2 single E2", - "version": 2, - "name": "BIBO2 single E2", - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "na", - "manufacturer": "BIBO", - "category": "Other", - "file_formats": "text/x-gcode", - "has_materials": true, - "machine_extruder_trains": { - "0": "bibo2_single_extruder_1_0", - "1": "bibo2_single_extruder_1_1" - }, - "first_start_actions": [ - "MachineSettingsAction" - ] - }, - "overrides": { - "machine_name": { - "default_value": "BIBO2 single Extruder 2 (left)" - }, - "machine_width": { - "default_value": 214 - }, - "machine_height": { - "default_value": 160 - }, - "machine_depth": { - "default_value": 186 - }, - "machine_center_is_zero": { - "default_value": true - }, - "machine_heated_bed": { - "default_value": true - }, - "machine_nozzle_size": { - "default_value": 0.4 - }, - "machine_nozzle_heat_up_speed": { - "default_value": 2 - }, - "machine_nozzle_cool_down_speed": { - "default_value": 2 - }, - "machine_head_with_fans_polygon": { - "default_value": [ - [ - -68.18, - 64.63 - ], - [ - -68.18, - -47.38 - ], - [ - 35.18, - 64.63 - ], - [ - 35.18, - -47.38 - ] - ] - }, - "material_diameter": { - "default_value": 1.75 - }, - "gantry_height": { - "default_value": 12 - }, - "machine_use_extruder_offset_to_offset_coords": { - "default_value": true - }, - "machine_gcode_flavor": { - "default_value": "RepRap (Marlin/Sprinter)" - }, - "machine_start_gcode": { - "default_value": ";Startcode BIBO printers\nM109 T0 S170 ;preheat the other extruder, so it will not knock or ruin the print\nG90 ; absolute mode\nG21 ; metric values\nM82 ; Extruder in absolute mode\nM107\nG28\nG1 Z2 F400\nT0\nG90\nG92 E0\nG28\nG1 Y0 F1200 E0\nG92 E0\nT1\nG92 E0\nG1 X-15.0 Y-92.9 Z0.3 F2400.0\t\t; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2\t\t; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4\t\t; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0\t\t; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6\t\t; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0\t\t; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8\t\t; draw 4th line\nG1 X-16.0 Y-91.7 Z0.3 F3000.0\t\t; move to side a little\nG1 X16.0 Y-91.7 Z0.3 F1000.0 E10\t\t; draw 5th line\nG1 X16.0 Y-91.4 Z0.3 F3000.0\t\t; move to side a little\nG1 X-16.0 Y-91.4 Z0.3 F1000.0 E12\t\t; draw 5th line\nG1 E11.5 F2400\t\t\t\t; retract filament 0.5mm\nG92 E0\nM117 BIBO Printing..." - }, - "machine_end_gcode": { - "default_value": ";BIBO End GCode\nM107\nG91 ; Relative positioning\nG1 Z1 F100\nM104 T0 S0\nM104 T1 S0\nG1 X-20 Y-20 F3000\nG28 X0 Y0\nG90 ; Absolute positioning\nG92 E0 ; Reset extruder position\nM140 S0 ; Disable heated bed\nM84 ; Turn steppers off\nM117 BIBO Print complete\n " - }, - "machine_extruder_count": { - "default_value": 2 - }, - "prime_tower_position_x": { - "default_value": 50 - }, - "prime_tower_position_y": { - "default_value": 50 - } - } -} - diff --git a/resources/extruders/bibo2_single_extruder_0_0.def.json b/resources/extruders/bibo2_single_extruder_0_0.def.json deleted file mode 100644 index 7d0b246131..0000000000 --- a/resources/extruders/bibo2_single_extruder_0_0.def.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "id": "BIBO2 E1a", - "version": 2, - "name": "BIBO2 E1", - "inherits": "fdmextruder", - "metadata": { - "machine": "BIBO2 single E1", - "position": "0" - }, - "overrides": { - "extruder_nr": { - "default_value": 0, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { - "default_value": 0.0 - }, - "machine_nozzle_offset_y": { - "default_value": 0.0 - }, - "machine_extruder_start_pos_abs": { - "default_value": true - }, - "machine_extruder_start_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_start_pos_y": { - "value": "prime_tower_position_y" - }, - "machine_extruder_end_pos_abs": { - "default_value": true - }, - "machine_extruder_end_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_end_pos_y": { - "value": "prime_tower_position_y" - } - } -} diff --git a/resources/extruders/bibo2_single_extruder_0_1.def.json b/resources/extruders/bibo2_single_extruder_0_1.def.json deleted file mode 100644 index 76187696fc..0000000000 --- a/resources/extruders/bibo2_single_extruder_0_1.def.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "id": "BIBO2 E1b", - "version": 2, - "name": "E2 not used", - "inherits": "fdmextruder", - "metadata": { - "machine": "BIBO2 single E1", - "position": "1" - }, - "overrides": { - "extruder_nr": { - "default_value": 1, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { - "default_value": 0.0 - }, - "machine_nozzle_offset_y": { - "default_value": 0.0 - }, - "machine_extruder_start_pos_abs": { - "default_value": true - }, - "machine_extruder_start_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_start_pos_y": { - "value": "prime_tower_position_y" - }, - "machine_extruder_end_pos_abs": { - "default_value": true - }, - "machine_extruder_end_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_end_pos_y": { - "value": "prime_tower_position_y" - } - } -} diff --git a/resources/extruders/bibo2_single_extruder_1_0.def.json b/resources/extruders/bibo2_single_extruder_1_0.def.json deleted file mode 100644 index 3cf667de82..0000000000 --- a/resources/extruders/bibo2_single_extruder_1_0.def.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "id": "BIBO2 E2a", - "version": 2, - "name": "E1 not used", - "inherits": "fdmextruder", - "metadata": { - "machine": "BIBO2 single E2", - "position": "0" - }, - "overrides": { - "extruder_nr": { - "default_value": 0, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { - "default_value": 0 - }, - "machine_nozzle_offset_y": { - "default_value": 0 - }, - "machine_extruder_start_pos_abs": { - "default_value": true - }, - "machine_extruder_start_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_start_pos_y": { - "value": "prime_tower_position_y" - }, - "machine_extruder_end_pos_abs": { - "default_value": true - }, - "machine_extruder_end_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_end_pos_y": { - "value": "prime_tower_position_y" - } - } -} diff --git a/resources/extruders/bibo2_single_extruder_1_1.def.json b/resources/extruders/bibo2_single_extruder_1_1.def.json deleted file mode 100644 index e8f3ec7054..0000000000 --- a/resources/extruders/bibo2_single_extruder_1_1.def.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "id": "BIBO2 E2b", - "version": 2, - "name": "BIBO2 E2", - "inherits": "fdmextruder", - "metadata": { - "machine": "BIBO2 single E2", - "position": "1" - }, - "overrides": { - "extruder_nr": { - "default_value": 1, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { - "default_value": 0 - }, - "machine_nozzle_offset_y": { - "default_value": 0 - }, - "machine_extruder_start_pos_abs": { - "default_value": true - }, - "machine_extruder_start_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_start_pos_y": { - "value": "prime_tower_position_y" - }, - "machine_extruder_end_pos_abs": { - "default_value": true - }, - "machine_extruder_end_pos_x": { - "value": "prime_tower_position_x" - }, - "machine_extruder_end_pos_y": { - "value": "prime_tower_position_y" - } - } -} From c6a9aca34602c0e5a32c7f308055fcd9815a2bbb Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 13:05:32 +0100 Subject: [PATCH 0516/1039] Switch checked and hovered themes I misunderstood the theme as it was in the screenshots. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index f04e856705..2988ab9eec 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -22,9 +22,9 @@ Button contentItem: Rectangle { height: childrenRect.height - color: parent.checked ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - border.color: parent.hovered ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") - border.width: parent.hovered ? UM.Theme.getSize("thick_lining").width : UM.Theme.getSize("default_lining").width + color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") + border.color: parent.checked ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") + border.width: parent.checked ? UM.Theme.getSize("thick_lining").width : UM.Theme.getSize("default_lining").width radius: UM.Theme.getSize("default_radius").width Column From 89126c7323a6764cbe3c961953e3361f4581b641 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 13:08:41 +0100 Subject: [PATCH 0517/1039] Use background instead of contentItem This way the padding and such doesn't matter any more. And the original background disappears, which was unthemed and still behind the original contentItem. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 2988ab9eec..297c95d1d1 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -15,11 +15,8 @@ Button signal activateConfiguration() height: childrenRect.height - padding: 0 //Stupid QML button has spacing by default. - rightPadding: 0 - leftPadding: 0 - contentItem: Rectangle + background: Rectangle { height: childrenRect.height color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") From a6a364c337efb4f732247f30e60d14884aabdadc Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 13:12:47 +0100 Subject: [PATCH 0518/1039] Move material diameter and machine nozzle size to the extruder definition. Contributes to CURA-5902. --- resources/definitions/bibo2_dual.def.json | 6 ------ resources/extruders/bibo2_dual_extruder_0.def.json | 6 ++++++ resources/extruders/bibo2_dual_extruder_1.def.json | 10 ++++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/resources/definitions/bibo2_dual.def.json b/resources/definitions/bibo2_dual.def.json index e57fb64ec0..2036290ebd 100644 --- a/resources/definitions/bibo2_dual.def.json +++ b/resources/definitions/bibo2_dual.def.json @@ -37,9 +37,6 @@ "machine_heated_bed": { "default_value": true }, - "machine_nozzle_size": { - "default_value": 0.4 - }, "machine_nozzle_heat_up_speed": { "default_value": 2 }, @@ -66,9 +63,6 @@ ] ] }, - "material_diameter": { - "default_value": 1.75 - }, "gantry_height": { "default_value": 12 }, diff --git a/resources/extruders/bibo2_dual_extruder_0.def.json b/resources/extruders/bibo2_dual_extruder_0.def.json index 7cdc03d504..f83801fa0c 100644 --- a/resources/extruders/bibo2_dual_extruder_0.def.json +++ b/resources/extruders/bibo2_dual_extruder_0.def.json @@ -12,6 +12,12 @@ "default_value": 0, "maximum_value": "1" }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, "machine_nozzle_offset_x": { "default_value": 0.0 }, diff --git a/resources/extruders/bibo2_dual_extruder_1.def.json b/resources/extruders/bibo2_dual_extruder_1.def.json index daa1504220..5f479ba54b 100644 --- a/resources/extruders/bibo2_dual_extruder_1.def.json +++ b/resources/extruders/bibo2_dual_extruder_1.def.json @@ -12,11 +12,17 @@ "default_value": 1, "maximum_value": "1" }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, "machine_nozzle_offset_x": { - "default_value": 0 + "default_value": 0.0 }, "machine_nozzle_offset_y": { - "default_value": 0 + "default_value": 0.0 }, "machine_extruder_start_pos_abs": { "default_value": true From b15c272d235c36edc5056aace5293f287d430144 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 13:24:13 +0100 Subject: [PATCH 0519/1039] Fix applying configuration when clicking Also no longer use that signal for it. It was completely unnecessary. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 6 +++++- .../qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 5 ----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 297c95d1d1..69c0b11882 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -12,7 +12,6 @@ Button id: configurationItem property var configuration: null - signal activateConfiguration() height: childrenRect.height @@ -111,4 +110,9 @@ Button configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) } } + + onClicked: + { + Cura.MachineManager.applyRemoteConfiguration(configuration) + } } \ No newline at end of file diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 2b7444be01..86deae9c4e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -70,11 +70,6 @@ Column { width: parent.width - UM.Theme.getSize("default_margin").width configuration: modelData - onActivateConfiguration: - { - switchPopupState() - Cura.MachineManager.applyRemoteConfiguration(configuration) - } } } } From fcde6e3a34d7b8f51da08473fedf7aac98b6565f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 13:28:28 +0100 Subject: [PATCH 0520/1039] Fix the open file button Now it has the correct size and it doesn't look blurry. Contributes to CURA-5942. --- plugins/PrepareStage/PrepareMenu.qml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 4212911011..10b4262f01 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -95,16 +95,21 @@ Item onClicked: Cura.Actions.open.trigger() hoverEnabled: true - contentItem: UM.RecolorImage + contentItem: Item { - id: buttonIcon - source: UM.Theme.getIcon("load") - width: UM.Theme.getSize("button_icon").width - height: UM.Theme.getSize("button_icon").height - color: UM.Theme.getColor("toolbar_button_text") + anchors.fill: parent + UM.RecolorImage + { + id: buttonIcon + anchors.centerIn: parent + source: UM.Theme.getIcon("load") + width: UM.Theme.getSize("button_icon").width + height: UM.Theme.getSize("button_icon").height + color: UM.Theme.getColor("toolbar_button_text") - sourceSize.width: width - sourceSize.height: height + sourceSize.width: width + sourceSize.height: height + } } background: Rectangle From cf8d88054d8ded00237ee95587b5e0366060794e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 13:29:57 +0100 Subject: [PATCH 0521/1039] Use proper colour for material in configuration item No idea this would be so easy. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index e8cadda05e..ae21a19f5e 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -37,7 +37,7 @@ Column { width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - materialColor: mainColor + materialColor: printCoreConfiguration.material.color anchors.left: extruderLabel.right anchors.leftMargin: UM.Theme.getSize("narrow_margin").width } From e863c34f68b3fbe69218d76b3e6b549362468bf1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 13:33:35 +0100 Subject: [PATCH 0522/1039] Align the text to the center of the button Contributes to CURA-5942. --- resources/qml/MainWindow/MainWindowHeader.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 2942a9feb3..34936e9b5a 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -122,6 +122,8 @@ Rectangle text: marketplaceButton.text color: marketplaceButton.hovered ? UM.Theme.getColor("main_window_header_background") : UM.Theme.getColor("primary_text") width: contentWidth + verticalAlignment: Text.AlignVCenter + renderType: Text.NativeRendering } anchors From 6956a732a0453f6f51dea1f381451346fe241009 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 27 Nov 2018 13:49:04 +0100 Subject: [PATCH 0523/1039] Use tapbar component from UM, change the print_setup_widget width --- resources/qml/PrintSetupSelector.qml | 17 +++++------------ resources/themes/cura-light/theme.json | 2 +- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 5f593f9ba2..279254ec64 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -5,7 +5,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.3 -import UM 1.2 as UM +import UM 1.3 as UM import Cura 1.0 as Cura import "Menus" import "Menus/ConfigurationMenu" @@ -217,25 +217,18 @@ Cura.ExpandableComponent rightMargin: 5 } - - TabBar + UM.TabRow { id: tabBar + anchors.top: popupItemHeader.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) - width: parent.width - height: UM.Theme.getSize("print_setup_tap_bar").width z: 1 Repeater { - id: extruder_model_repeater model: extrudersModel - - delegate: TabButton + delegate: UM.TabRowButton { - z: 2 - width: ListView.view != null ? Math.round(ListView.view.width / extrudersModel.rowCount()): 0 - implicitHeight: parent.height - contentItem: Rectangle { z: 2 diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 029da9c14b..e6889b50c0 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -381,7 +381,7 @@ "account_button": [12, 3], - "print_setup_widget": [30.0, 42.0], + "print_setup_widget": [38.0, 42.0], "print_setup_mode_toggle": [0.0, 2.0], "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], From bb9598afd1c2162d461ea8c456da6f0b54e228e9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 13:55:54 +0100 Subject: [PATCH 0524/1039] Redesign layout of configuration item contents This is the new design. Contributes to issue CURA-5876. --- .../ConfigurationMenu/ConfigurationItem.qml | 1 - .../PrintCoreConfiguration.qml | 73 ++++++++----------- resources/themes/cura-light/theme.json | 2 +- 3 files changed, 33 insertions(+), 43 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 69c0b11882..ffe3b32926 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -48,7 +48,6 @@ Button { width: Math.round(parent.width / 2) printCoreConfiguration: modelData - mainColor: UM.Theme.getColor("text") } } } diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index ae21a19f5e..dc908fdb0b 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -7,61 +7,52 @@ import QtQuick.Controls 2.0 import UM 1.2 as UM import Cura 1.0 as Cura -Column +Row { id: extruderInfo property var printCoreConfiguration - property var mainColor: "black" - spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").width + //Extruder icon. Item { - id: extruder - width: parent.width - height: childrenRect.height - - Label - { - id: extruderLabel - text: catalog.i18nc("@label:extruder label", "Extruder") - renderType: Text.NativeRendering - elide: Text.ElideRight - anchors.left: parent.left - font: UM.Theme.getFont("default") - color: mainColor - } - + width: childrenRect.width + height: information.height Cura.ExtruderIcon { - width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height materialColor: printCoreConfiguration.material.color - anchors.left: extruderLabel.right - anchors.leftMargin: UM.Theme.getSize("narrow_margin").width + anchors.verticalCenter: parent.verticalCenter } } - Label + Column { - id: materialLabel - text: printCoreConfiguration.material.name - renderType: Text.NativeRendering - elide: Text.ElideRight - width: parent.width - font: UM.Theme.getFont("default_bold") - color: mainColor - } - - Label - { - id: printCoreTypeLabel - text: printCoreConfiguration.hotendID - renderType: Text.NativeRendering - elide: Text.ElideRight - width: parent.width - font: UM.Theme.getFont("default") - color: mainColor + id: information + Label + { + text: printCoreConfiguration.material.brand + renderType: Text.NativeRendering + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + Label + { + text: printCoreConfiguration.material.name + renderType: Text.NativeRendering + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + Label + { + text: printCoreConfiguration.hotendID + renderType: Text.NativeRendering + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index de9b48c7f0..824d4cf3ee 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -397,7 +397,7 @@ "thin_margin": [0.71, 0.71], "narrow_margin": [0.5, 0.5], - "extruder_icon": [1.8, 1.8], + "extruder_icon": [2.5, 2.5], "simple_mode_infill_caption": [0.0, 5.0], "simple_mode_infill_height": [0.0, 8.0], From 1555a1ab1787def2427449b1fbcde94d41893bbe Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 14:03:05 +0100 Subject: [PATCH 0525/1039] Make manufacturer and extruder labels lighter The proper colour would've been 'detail' but that seems to not be used much at all, and it's too light. In other places, 'inactive' is used in this place more often. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 2 +- .../qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 4aa8d66caa..202bc22ce0 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -64,7 +64,7 @@ Cura.ExpandableComponent text: model.material_brand elide: Text.ElideRight font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("text_inactive") anchors { diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index dc908fdb0b..5709cc948c 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -36,7 +36,7 @@ Row renderType: Text.NativeRendering elide: Text.ElideRight font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("text_inactive") } Label { @@ -52,7 +52,7 @@ Row renderType: Text.NativeRendering elide: Text.ElideRight font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("text_inactive") } } } From b0e9f23eee3c053c6179beeabbd1687a4dba0543 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 14:06:07 +0100 Subject: [PATCH 0526/1039] Correct line colour when hovered A detail that I almost missed in the design examples. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index ffe3b32926..2fbbef7130 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -19,7 +19,7 @@ Button { height: childrenRect.height color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - border.color: parent.checked ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") + border.color: (parent.checked || parent.hovered) ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") border.width: parent.checked ? UM.Theme.getSize("thick_lining").width : UM.Theme.getSize("default_lining").width radius: UM.Theme.getSize("default_radius").width From 8784ecd49acad58d0cbbebb8b06bebfe520145e1 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 27 Nov 2018 14:09:47 +0100 Subject: [PATCH 0527/1039] Change native rendering CURA-5941 --- resources/qml/PrintSetupSelector.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 279254ec64..371232372d 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -148,6 +148,7 @@ Cura.ExpandableComponent id: popupItemHeaderText text: catalog.i18nc("@label", "Print settings"); font: UM.Theme.getFont("default") + renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter color: UM.Theme.getColor("text") height: parent.height From 609f07399e7735801f728826990e53a390a5f206 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 14:20:47 +0100 Subject: [PATCH 0528/1039] Show extruder as disabled if either material or core is missing It basically just means you can't print with it. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index 5709cc948c..cc6461ebc4 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -24,6 +24,7 @@ Row { materialColor: printCoreConfiguration.material.color anchors.verticalCenter: parent.verticalCenter + extruderEnabled: printCoreConfiguration.material.name !== "" && printCoreConfiguration.hotendID !== "" } } From 3ad1802ab68021d4672c874dfaa7481f79212bb3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 14:34:29 +0100 Subject: [PATCH 0529/1039] Prevent a KeyError from messing CURA-5978 --- cura/Settings/MachineManager.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index f7ad108ad4..03afc7edd0 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -915,9 +915,12 @@ class MachineManager(QObject): if settable_per_extruder: limit_to_extruder = int(self._global_container_stack.getProperty(setting_key, "limit_to_extruder")) - extruder_position = str(max(0, limit_to_extruder)) - extruder_stack = self._global_container_stack.extruders[extruder_position] - extruder_stack.userChanges.setProperty(setting_key, "value", global_user_container.getProperty(setting_key, "value")) + extruder_position = max(0, limit_to_extruder) + extruder_stack = self.getExtruder(extruder_position) + if extruder_stack: + extruder_stack.userChanges.setProperty(setting_key, "value", global_user_container.getProperty(setting_key, "value")) + else: + Logger.log("e", "Unable to find extruder on position %s", extruder_position) global_user_container.removeInstance(setting_key) # Signal that the global stack has changed @@ -926,10 +929,9 @@ class MachineManager(QObject): @pyqtSlot(int, result = QObject) def getExtruder(self, position: int) -> Optional[ExtruderStack]: - extruder = None if self._global_container_stack: - extruder = self._global_container_stack.extruders.get(str(position)) - return extruder + return self._global_container_stack.extruders.get(str(position)) + return None def updateDefaultExtruder(self) -> None: if self._global_container_stack is None: From 854755277c705d3eb7e01e21525b2fe5be570426 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 14:37:01 +0100 Subject: [PATCH 0530/1039] Fix styling of comments Because sentences should start with capitals --- cura/Settings/MachineManager.py | 43 ++++++++++++++++----------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 03afc7edd0..f22029e083 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -64,7 +64,7 @@ class MachineManager(QObject): self.machine_extruder_material_update_dict = collections.defaultdict(list) #type: Dict[str, List[Callable[[], None]]] - self._instance_container_timer = QTimer() #type: QTimer + self._instance_container_timer = QTimer() # type: QTimer self._instance_container_timer.setInterval(250) self._instance_container_timer.setSingleShot(True) self._instance_container_timer.timeout.connect(self.__emitChangedSignals) @@ -74,7 +74,7 @@ class MachineManager(QObject): self._application.globalContainerStackChanged.connect(self._onGlobalContainerChanged) self._container_registry.containerLoadComplete.connect(self._onContainersChanged) - ## When the global container is changed, active material probably needs to be updated. + # When the global container is changed, active material probably needs to be updated. self.globalContainerChanged.connect(self.activeMaterialChanged) self.globalContainerChanged.connect(self.activeVariantChanged) self.globalContainerChanged.connect(self.activeQualityChanged) @@ -115,15 +115,15 @@ class MachineManager(QObject): self._material_incompatible_message = Message(catalog.i18nc("@info:status", "The selected material is incompatible with the selected machine or configuration."), - title = catalog.i18nc("@info:title", "Incompatible Material")) #type: Message + title = catalog.i18nc("@info:title", "Incompatible Material")) # type: Message - containers = CuraContainerRegistry.getInstance().findInstanceContainers(id = self.activeMaterialId) #type: List[InstanceContainer] + containers = CuraContainerRegistry.getInstance().findInstanceContainers(id = self.activeMaterialId) # type: List[InstanceContainer] if containers: containers[0].nameChanged.connect(self._onMaterialNameChanged) - self._material_manager = self._application.getMaterialManager() #type: MaterialManager - self._variant_manager = self._application.getVariantManager() #type: VariantManager - self._quality_manager = self._application.getQualityManager() #type: QualityManager + self._material_manager = self._application.getMaterialManager() # type: MaterialManager + self._variant_manager = self._application.getVariantManager() # type: VariantManager + self._quality_manager = self._application.getQualityManager() # type: QualityManager # When the materials lookup table gets updated, it can mean that a material has its name changed, which should # be reflected on the GUI. This signal emission makes sure that it happens. @@ -156,7 +156,7 @@ class MachineManager(QObject): blurSettings = pyqtSignal() # Emitted to force fields in the advanced sidebar to un-focus, so they update properly outputDevicesChanged = pyqtSignal() - currentConfigurationChanged = pyqtSignal() # Emitted every time the current configurations of the machine changes + currentConfigurationChanged = pyqtSignal() # Emitted every time the current configurations of the machine changes printerConnectedStatusChanged = pyqtSignal() # Emitted every time the active machine change or the outputdevices change rootMaterialChanged = pyqtSignal() @@ -201,7 +201,7 @@ class MachineManager(QObject): extruder_configuration.hotendID = extruder.variant.getName() if extruder.variant != empty_variant_container else None self._current_printer_configuration.extruderConfigurations.append(extruder_configuration) - # an empty build plate configuration from the network printer is presented as an empty string, so use "" for an + # An empty build plate configuration from the network printer is presented as an empty string, so use "" for an # empty build plate. self._current_printer_configuration.buildplateConfiguration = self._global_container_stack.getProperty("machine_buildplate_type", "value") if self._global_container_stack.variant != empty_variant_container else "" self.currentConfigurationChanged.emit() @@ -247,7 +247,7 @@ class MachineManager(QObject): self.updateNumberExtrudersEnabled() self.globalContainerChanged.emit() - # after switching the global stack we reconnect all the signals and set the variant and material references + # After switching the global stack we reconnect all the signals and set the variant and material references if self._global_container_stack: self._application.getPreferences().setValue("cura/active_machine", self._global_container_stack.getId()) @@ -261,7 +261,7 @@ class MachineManager(QObject): if global_variant.getMetaDataEntry("hardware_type") != "buildplate": self._global_container_stack.setVariant(empty_variant_container) - # set the global material to empty as we now use the extruder stack at all times - CURA-4482 + # Set the global material to empty as we now use the extruder stack at all times - CURA-4482 global_material = self._global_container_stack.material if global_material != empty_material_container: self._global_container_stack.setMaterial(empty_material_container) @@ -419,7 +419,7 @@ class MachineManager(QObject): # Not a very pretty solution, but the extruder manager doesn't really know how many extruders there are machine_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value") extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() - count = 1 # we start with the global stack + count = 1 # We start with the global stack for stack in extruder_stacks: md = stack.getMetaData() if "position" in md and int(md["position"]) >= machine_extruder_count: @@ -646,7 +646,7 @@ class MachineManager(QObject): new_value = self._active_container_stack.getProperty(key, "value") extruder_stacks = [stack for stack in ExtruderManager.getInstance().getActiveExtruderStacks()] - # check in which stack the value has to be replaced + # Check in which stack the value has to be replaced for extruder_stack in extruder_stacks: if extruder_stack != self._active_container_stack and extruder_stack.getProperty(key, "value") != new_value: extruder_stack.userChanges.setProperty(key, "value", new_value) # TODO: nested property access, should be improved @@ -662,7 +662,7 @@ class MachineManager(QObject): for key in self._active_container_stack.userChanges.getAllKeys(): new_value = self._active_container_stack.getProperty(key, "value") - # check if the value has to be replaced + # Check if the value has to be replaced extruder_stack.userChanges.setProperty(key, "value", new_value) @pyqtProperty(str, notify = activeVariantChanged) @@ -731,7 +731,7 @@ class MachineManager(QObject): # If the machine that is being removed is the currently active machine, set another machine as the active machine. activate_new_machine = (self._global_container_stack and self._global_container_stack.getId() == machine_id) - # activate a new machine before removing a machine because this is safer + # Activate a new machine before removing a machine because this is safer if activate_new_machine: machine_stacks = CuraContainerRegistry.getInstance().findContainerStacksMetadata(type = "machine") other_machine_stacks = [s for s in machine_stacks if s["id"] != machine_id] @@ -997,12 +997,12 @@ class MachineManager(QObject): if not enabled and position == ExtruderManager.getInstance().activeExtruderIndex: ExtruderManager.getInstance().setActiveExtruderIndex(int(self._default_extruder_position)) - # ensure that the quality profile is compatible with current combination, or choose a compatible one if available + # Ensure that the quality profile is compatible with current combination, or choose a compatible one if available self._updateQualityWithMaterial() self.extruderChanged.emit() - # update material compatibility color + # Update material compatibility color self.activeQualityGroupChanged.emit() - # update items in SettingExtruder + # Update items in SettingExtruder ExtruderManager.getInstance().extrudersChanged.emit(self._global_container_stack.getId()) # Make sure the front end reflects changes self.forceUpdateAllSettings() @@ -1076,7 +1076,6 @@ class MachineManager(QObject): return result - # # Sets all quality and quality_changes containers to empty_quality and empty_quality_changes containers # for all stacks in the currently active machine. # @@ -1135,7 +1134,7 @@ class MachineManager(QObject): def _setQualityChangesGroup(self, quality_changes_group: "QualityChangesGroup") -> None: if self._global_container_stack is None: - return #Can't change that. + return # Can't change that. quality_type = quality_changes_group.quality_type # A custom quality can be created based on "not supported". # In that case, do not set quality containers to empty. @@ -1205,7 +1204,7 @@ class MachineManager(QObject): self.rootMaterialChanged.emit() def activeMaterialsCompatible(self) -> bool: - # check material - variant compatibility + # Check material - variant compatibility if self._global_container_stack is not None: if Util.parseBool(self._global_container_stack.getMetaDataEntry("has_materials", False)): for position, extruder in self._global_container_stack.extruders.items(): @@ -1415,7 +1414,7 @@ class MachineManager(QObject): material_diameter, root_material_id) self.setMaterial(position, material_node) - ## global_stack: if you want to provide your own global_stack instead of the current active one + ## Global_stack: if you want to provide your own global_stack instead of the current active one # if you update an active machine, special measures have to be taken. @pyqtSlot(str, "QVariant") def setMaterial(self, position: str, container_node, global_stack: Optional["GlobalStack"] = None) -> None: From 956741922d561e2e7405554cf68b6c634c00f616 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 14:41:48 +0100 Subject: [PATCH 0531/1039] Make elements retain their position if hotend or material is missing Just a space makes it keep the correct height. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index cc6461ebc4..8d2f0c0f7c 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -33,7 +33,7 @@ Row id: information Label { - text: printCoreConfiguration.material.brand + text: printCoreConfiguration.material.brand ? printCoreConfiguration.material.brand : " " //Use space so that the height is still correct. renderType: Text.NativeRendering elide: Text.ElideRight font: UM.Theme.getFont("default") @@ -41,7 +41,7 @@ Row } Label { - text: printCoreConfiguration.material.name + text: printCoreConfiguration.material.name ? printCoreConfiguration.material.name : " " //Use space so that the height is still correct. renderType: Text.NativeRendering elide: Text.ElideRight font: UM.Theme.getFont("default") @@ -49,7 +49,7 @@ Row } Label { - text: printCoreConfiguration.hotendID + text: printCoreConfiguration.hotendID ? printCoreConfiguration.hotendID : " " //Use space so that the height is still correct. renderType: Text.NativeRendering elide: Text.ElideRight font: UM.Theme.getFont("default") From 0a71a9dd3ecd5c16fa82a498698f3e937619b842 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 14:47:18 +0100 Subject: [PATCH 0532/1039] Increase margins around configuration item As per the design. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 2fbbef7130..3ea220c91e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -27,7 +27,7 @@ Button { id: contentColumn width: parent.width - padding: UM.Theme.getSize("default_margin").width + padding: UM.Theme.getSize("wide_margin").width spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) Row From 077b34b4336fee026ee37f43a27e7bb13c9b9b4a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 14:49:01 +0100 Subject: [PATCH 0533/1039] Fix size of the extruder icon Now it should look the same in all places. --- resources/qml/ExtruderButton.qml | 14 +++++++++----- resources/qml/ExtruderIcon.qml | 2 -- resources/themes/cura-light/theme.json | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index 8a1f0af44a..d7cbdc52bc 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -19,12 +19,16 @@ Button enabled: UM.Selection.hasSelection && extruder.stack.isEnabled background: Item {} - contentItem: ExtruderIcon + contentItem: Item { - width: UM.Theme.getSize("button_icon").width - materialColor: model.color - extruderEnabled: extruder.stack.isEnabled - property int index: extruder.index + // For some reason if the extruder icon is not enclosed to the item, the size changes to fill the size of the button + ExtruderIcon + { + anchors.centerIn: parent + materialColor: model.color + extruderEnabled: extruder.stack.isEnabled + property int index: extruder.index + } } onClicked: diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 8f312adb85..c1a202050b 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -51,8 +51,6 @@ Item anchors.centerIn: parent text: index + 1 font: UM.Theme.getFont("extruder_icon") - width: contentWidth - height: contentHeight visible: extruderEnabled renderType: Text.NativeRendering horizontalAlignment: Text.AlignHCenter diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 157adcf6a5..d2358e36ff 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -402,7 +402,7 @@ "thin_margin": [0.71, 0.71], "narrow_margin": [0.5, 0.5], - "extruder_icon": [1.8, 1.8], + "extruder_icon": [2.33, 2.33], "section": [0.0, 2.2], "section_icon": [1.6, 1.6], From 82ea562dc389b6e3f8872b24c84e4a70f382ffe3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 14:54:49 +0100 Subject: [PATCH 0534/1039] Add missing hoverEnabled property --- resources/qml/Settings/SettingCategory.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 7995619af0..00d23580b2 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -14,6 +14,7 @@ Button anchors.right: parent.right anchors.leftMargin: UM.Theme.getSize("thick_margin").width anchors.rightMargin: UM.Theme.getSize("thick_margin").width + hoverEnabled: true background: Rectangle { id: backgroundRectangle From c7fd147f59e1d6bf3fb71930ef6c3346c3373b4f Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 27 Nov 2018 14:55:06 +0100 Subject: [PATCH 0535/1039] Show website for support --- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 437a2ef351..7b48aaebef 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -144,10 +144,6 @@ Item { return "" } - if (details.author_email) - { - return "" + details.author_name + "" - } else { return "" + details.author_name + "" From 92d07170964a8a4906ca2742eeb3675e4619487b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 15:00:50 +0100 Subject: [PATCH 0536/1039] Hide the toolbar and don't show time and material information when loading a gcode Contributes to CURA-5979. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 8 +++++++- resources/qml/Cura.qml | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index ddbe709a84..45cb1fdb41 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -18,6 +18,7 @@ Column id: widget spacing: UM.Theme.getSize("thin_margin").height + property bool preSlicedData: PrintInformation.preSliced UM.I18nCatalog { @@ -48,7 +49,7 @@ Column id: estimatedTime width: parent.width - text: PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) + text: preSlicedData ? catalog.i18nc("@label", "No time estimation available") : PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") font: UM.Theme.getFont("small") } @@ -63,6 +64,10 @@ Column text: { + if (preSlicedData) + { + return catalog.i18nc("@label", "No cost estimation available") + } var totalLengths = 0 var totalWeights = 0 if (printMaterialLengths) @@ -86,6 +91,7 @@ Column PrintInformationWidget { id: printInformationPanel + visible: !preSlicedData anchors { diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 63888a4ee4..36f5758fa3 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -212,7 +212,7 @@ UM.MainWindow verticalCenter: parent.verticalCenter left: parent.left } - visible: CuraApplication.platformActivity + visible: CuraApplication.platformActivity && !PrintInformation.preSliced } ObjectsList From 4fab546425450142f17a3aaf05511fe1de98b019 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 15:00:57 +0100 Subject: [PATCH 0537/1039] Fix codestyle issues Boyscouting --- resources/qml/Settings/SettingCategory.qml | 199 +++++++++++---------- 1 file changed, 109 insertions(+), 90 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 00d23580b2..aafe36c546 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -15,23 +15,31 @@ Button anchors.leftMargin: UM.Theme.getSize("thick_margin").width anchors.rightMargin: UM.Theme.getSize("thick_margin").width hoverEnabled: true + background: Rectangle { id: backgroundRectangle implicitHeight: UM.Theme.getSize("section").height - color: { - if (base.color) { - return base.color; - } else if (!base.enabled) { - return UM.Theme.getColor("setting_category_disabled"); - } else if (base.hovered && base.checkable && base.checked) { - return UM.Theme.getColor("setting_category_active_hover"); - } else if (base.pressed || (base.checkable && base.checked)) { - return UM.Theme.getColor("setting_category_active"); - } else if (base.hovered) { - return UM.Theme.getColor("setting_category_hover"); - } else { - return UM.Theme.getColor("setting_category"); + color: + { + if (base.color) + { + return base.color + } else if (!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled") + } else if (base.hovered && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover") + } else if (base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active") + } else if (base.hovered) + { + return UM.Theme.getColor("setting_category_hover") + } else + { + return UM.Theme.getColor("setting_category") } } Behavior on color { ColorAnimation { duration: 50; } } @@ -41,17 +49,23 @@ Button height: UM.Theme.getSize("default_lining").height width: parent.width anchors.bottom: parent.bottom - color: { - if (!base.enabled) { - return UM.Theme.getColor("setting_category_disabled_border"); - } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { - return UM.Theme.getColor("setting_category_active_hover_border"); - } else if (base.pressed || (base.checkable && base.checked)) { - return UM.Theme.getColor("setting_category_active_border"); - } else if (base.hovered || base.activeFocus) { - return UM.Theme.getColor("setting_category_hover_border"); - } else { - return UM.Theme.getColor("setting_category_border"); + color: + { + if (!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled_border") + } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover_border") + } else if (base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active_border") + } else if (base.hovered || base.activeFocus) + { + return UM.Theme.getColor("setting_category_hover_border") + } else + { + return UM.Theme.getColor("setting_category_border") } } } @@ -66,18 +80,19 @@ Button property var focusItem: base - contentItem: Item { + contentItem: Item + { anchors.fill: parent - anchors.left: parent.left - Label { + Label + { id: settingNameLabel anchors { left: parent.left leftMargin: 2 * UM.Theme.getSize("default_margin").width + UM.Theme.getSize("section_icon").width - right: parent.right; - verticalCenter: parent.verticalCenter; + right: parent.right + verticalCenter: parent.verticalCenter } text: definition.label textFormat: Text.PlainText @@ -85,21 +100,27 @@ Button font: UM.Theme.getFont("setting_category") color: { - if (!base.enabled) { - return UM.Theme.getColor("setting_category_disabled_text"); - } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { - return UM.Theme.getColor("setting_category_active_hover_text"); - } else if (base.pressed || (base.checkable && base.checked)) { - return UM.Theme.getColor("setting_category_active_text"); - } else if (base.hovered || base.activeFocus) { - return UM.Theme.getColor("setting_category_hover_text"); - } else { - return UM.Theme.getColor("setting_category_text"); + if (!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled_text") + } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover_text") + } else if (base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active_text") + } else if (base.hovered || base.activeFocus) + { + return UM.Theme.getColor("setting_category_hover_text") + } else + { + return UM.Theme.getColor("setting_category_text") } } fontSizeMode: Text.HorizontalFit minimumPointSize: 8 } + UM.RecolorImage { id: category_arrow @@ -112,16 +133,21 @@ Button sourceSize.height: width color: { - if (!base.enabled) { - return UM.Theme.getColor("setting_category_disabled_text"); - } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { - return UM.Theme.getColor("setting_category_active_hover_text"); - } else if (base.pressed || (base.checkable && base.checked)) { - return UM.Theme.getColor("setting_category_active_text"); - } else if (base.hovered || base.activeFocus) { - return UM.Theme.getColor("setting_category_hover_text"); - } else { - return UM.Theme.getColor("setting_category_text"); + if (!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled_text") + } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover_text") + } else if (base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active_text") + } else if (base.hovered || base.activeFocus) + { + return UM.Theme.getColor("setting_category_hover_text") + } else + { + return UM.Theme.getColor("setting_category_text") } } source: base.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") @@ -136,21 +162,26 @@ Button anchors.leftMargin: UM.Theme.getSize("default_margin").width color: { - if (!base.enabled) { - return UM.Theme.getColor("setting_category_disabled_text"); - } else if((base.hovered || base.activeFocus) && base.checkable && base.checked) { - return UM.Theme.getColor("setting_category_active_hover_text"); - } else if(base.pressed || (base.checkable && base.checked)) { - return UM.Theme.getColor("setting_category_active_text"); - } else if(base.hovered || base.activeFocus) { - return UM.Theme.getColor("setting_category_hover_text"); - } else { - return UM.Theme.getColor("setting_category_text"); + if (!base.enabled) + { + return UM.Theme.getColor("setting_category_disabled_text") + } else if((base.hovered || base.activeFocus) && base.checkable && base.checked) + { + return UM.Theme.getColor("setting_category_active_hover_text") + } else if(base.pressed || (base.checkable && base.checked)) + { + return UM.Theme.getColor("setting_category_active_text") + } else if(base.hovered || base.activeFocus) + { + return UM.Theme.getColor("setting_category_hover_text") + } else + { + return UM.Theme.getColor("setting_category_text") } } source: UM.Theme.getIcon(definition.icon) - width: UM.Theme.getSize("section_icon").width; - height: UM.Theme.getSize("section_icon").height; + width: UM.Theme.getSize("section_icon").width + height: UM.Theme.getSize("section_icon").height sourceSize.width: width + 15 * screenScaleFactor sourceSize.height: width + 15 * screenScaleFactor } @@ -160,31 +191,26 @@ Button onClicked: { - if (definition.expanded) { - settingDefinitionsModel.collapse(definition.key); + if (definition.expanded) + { + settingDefinitionsModel.collapse(definition.key) } else { - settingDefinitionsModel.expandRecursive(definition.key); + settingDefinitionsModel.expandRecursive(definition.key) } //Set focus so that tab navigation continues from this point on. //NB: This must be set AFTER collapsing/expanding the category so that the scroll position is correct. - forceActiveFocus(); + forceActiveFocus() } onActiveFocusChanged: { if(activeFocus) { - base.focusReceived(); + base.focusReceived() } } - Keys.onTabPressed: - { - base.setActiveFocusToNextSetting(true) - } - Keys.onBacktabPressed: - { - base.setActiveFocusToNextSetting(false) - } + Keys.onTabPressed: base.setActiveFocusToNextSetting(true) + Keys.onBacktabPressed: base.setActiveFocusToNextSetting(false) UM.SimpleButton { @@ -194,9 +220,10 @@ Button height: Math.round(base.height * 0.6) width: Math.round(base.height * 0.6) - anchors { + anchors + { right: inheritButton.visible ? inheritButton.left : parent.right - // use 1.9 as the factor because there is a 0.1 difference between the settings and inheritance warning icons + // Use 1.9 as the factor because there is a 0.1 difference between the settings and inheritance warning icons rightMargin: inheritButton.visible ? Math.round(UM.Theme.getSize("default_margin").width / 2) : category_arrow.width + Math.round(UM.Theme.getSize("default_margin").width * 1.9) verticalCenter: parent.verticalCenter } @@ -205,9 +232,7 @@ Button hoverColor: UM.Theme.getColor("setting_control_button_hover") iconSource: UM.Theme.getIcon("settings") - onClicked: { - Cura.Actions.configureSettingVisibility.trigger(definition) - } + onClicked: Cura.Actions.configureSettingVisibility.trigger(definition) } UM.SimpleButton @@ -240,24 +265,18 @@ Button onClicked: { - settingDefinitionsModel.expandRecursive(definition.key); - base.checked = true; - base.showAllHiddenInheritedSettings(definition.key); + settingDefinitionsModel.expandRecursive(definition.key) + base.checked = true + base.showAllHiddenInheritedSettings(definition.key) } color: UM.Theme.getColor("setting_control_button") hoverColor: UM.Theme.getColor("setting_control_button_hover") iconSource: UM.Theme.getIcon("notice") - onEntered: - { - base.showTooltip(catalog.i18nc("@label","Some hidden settings use values different from their normal calculated value.\n\nClick to make these settings visible.")) - } + onEntered: base.showTooltip(catalog.i18nc("@label","Some hidden settings use values different from their normal calculated value.\n\nClick to make these settings visible.")) - onExited: - { - base.hideTooltip(); - } + onExited: base.hideTooltip() UM.I18nCatalog { id: catalog; name: "cura" } } From d47806de509d9aeeeebff5c5c410fb17ab35f26d Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 27 Nov 2018 15:05:35 +0100 Subject: [PATCH 0538/1039] Change style, added close popitem close behaviour CURA-5941 --- resources/qml/ExpandableComponent.qml | 3 +++ resources/qml/PrintSetupSelector.qml | 37 ++++++++++++-------------- resources/themes/cura-light/theme.json | 2 -- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 3b1105ddd6..707b947c7f 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -49,6 +49,9 @@ Item // On what side should the header corners be shown? 1 is down, 2 is left, 3 is up and 4 is right. property alias headerCornerSide: background.cornerSide + // Change the popupItem close behaviour + property alias popupClosePolicy : popup.closePolicy + function togglePopup() { if(popup.visible) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 371232372d..b20d8e116b 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -29,7 +29,9 @@ Cura.ExpandableComponent iconSource: UM.Theme.getIcon("pencil") popupPadding : 0 - popupSpacingY: 10 + popupSpacingY: UM.Theme.getSize("narrow_margin").width + + popupClosePolicy: Popup.CloseOnEscape onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) @@ -124,7 +126,7 @@ Cura.ExpandableComponent popupItem: Rectangle { - property var total_height: popupItemHeader.height + popupItemContent.height + footerControll.height + UM.Theme.getSize("print_setup_selector_margin").height * 2 + property var total_height: popupItemHeader.height + popupItemContent.height + footerControll.height + UM.Theme.getSize("narrow_margin").height * 2 id: popupItemWrapper height: total_height @@ -157,7 +159,7 @@ Cura.ExpandableComponent { topMargin: UM.Theme.getSize("sidebar_margin").height left: parent.left - leftMargin: UM.Theme.getSize("print_setup_selector_margin").height + leftMargin: UM.Theme.getSize("narrow_margin").height } } @@ -194,7 +196,7 @@ Cura.ExpandableComponent source: UM.Theme.getIcon("cross1") } - onClicked: base.model.hideMessage(model.id) + onClicked: base.togglePopup() // Will hide the popup item background: Rectangle { @@ -211,17 +213,16 @@ Cura.ExpandableComponent anchors { top: popupItemHeader.bottom - topMargin: UM.Theme.getSize("print_setup_selector_margin").height + topMargin: UM.Theme.getSize("narrow_margin").height right: parent.right left: parent.left - leftMargin: 5 - rightMargin: 5 + leftMargin: UM.Theme.getSize("thick_margin").width / 1.5 + rightMargin: UM.Theme.getSize("thick_margin").width / 1.5 } UM.TabRow { id: tabBar - anchors.top: popupItemHeader.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) z: 1 @@ -309,7 +310,7 @@ Cura.ExpandableComponent { id: footerControll anchors.top: popupItemContent.bottom - anchors.topMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 + anchors.topMargin: UM.Theme.getSize("narrow_margin").height * 2 width: parent.width height: settingControlButton.height + UM.Theme.getSize("default_lining").height * 4 Rectangle @@ -337,10 +338,10 @@ Cura.ExpandableComponent anchors { top: parent.top - topMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 - bottomMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 + topMargin: UM.Theme.getSize("narrow_margin").height * 2 + bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 right: parent.right - rightMargin: UM.Theme.getSize("print_setup_selector_margin").height + rightMargin: UM.Theme.getSize("narrow_margin").height } onClicked: currentModeIndex = 1 @@ -361,19 +362,15 @@ Cura.ExpandableComponent anchors { top: parent.top - topMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 - bottomMargin: UM.Theme.getSize("print_setup_selector_margin").height * 2 + topMargin: UM.Theme.getSize("narrow_margin").height * 2 + bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 left: parent.left - leftMargin: UM.Theme.getSize("print_setup_selector_margin").height + leftMargin: UM.Theme.getSize("narrow_margin").height } -// onClicked: currentModeIndex = 0 MouseArea { anchors.fill: parent - onClicked: { - currentModeIndex = 0 - - } + onClicked: currentModeIndex = 0 } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index e6889b50c0..1228e52b9d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -535,9 +535,7 @@ "monitor_shadow_radius": [0.4, 0.4], "monitor_shadow_offset": [0.15, 0.15], - "print_setup_selector_margin": [0.5, 0.5], "print_setup_action_button": [13, 5], - "print_setup_tap_bar": [4, 4], "print_setup_content_top_margin": [3, 3] } } From 55dd9be0629b5ac091628ea9184416da7edae972 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 15:11:13 +0100 Subject: [PATCH 0539/1039] Move PrinterTypeLabel to a more central location So that we can re-use it in other places too. Contributes to issue CURA-5876. --- resources/qml/{PrinterSelector => }/PrinterTypeLabel.qml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename resources/qml/{PrinterSelector => }/PrinterTypeLabel.qml (100%) diff --git a/resources/qml/PrinterSelector/PrinterTypeLabel.qml b/resources/qml/PrinterTypeLabel.qml similarity index 100% rename from resources/qml/PrinterSelector/PrinterTypeLabel.qml rename to resources/qml/PrinterTypeLabel.qml From c1bb1a9b982d7e44b9dd0bc68b9b7e993dfc3712 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 15:12:44 +0100 Subject: [PATCH 0540/1039] Use normal font size for shorthand label This element had been designed when very_small was in the theme equal to default. I changed the entire application to use default instead of very_small and made very_small a smaller font, but didn't change that on the branch that this element was designed on. So now also change it here. Contributes to issue CURA-5876. --- resources/qml/PrinterTypeLabel.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrinterTypeLabel.qml b/resources/qml/PrinterTypeLabel.qml index cd9f3b9743..7feae32e16 100644 --- a/resources/qml/PrinterTypeLabel.qml +++ b/resources/qml/PrinterTypeLabel.qml @@ -28,7 +28,7 @@ Item anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter renderType: Text.NativeRendering - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") } } \ No newline at end of file From 3ad2e4f62a5a7612ecf2372e0230a2362d7f3f66 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 15:24:58 +0100 Subject: [PATCH 0541/1039] Re-use PrinterTypeLabel component and use abbreviated name Contributes to issue CURA-5876. --- .../ConfigurationListView.qml | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 393c2715b2..c40eb5b9e9 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -46,21 +46,11 @@ Column section.criteria: ViewSection.FullString section.delegate: Item { - height: printerTypeLabelBox.height + UM.Theme.getSize("default_margin").height - Rectangle + height: printerTypeLabel.height + UM.Theme.getSize("default_margin").height + Cura.PrinterTypeLabel { - id: printerTypeLabelBox - color: UM.Theme.getColor("text_detail") - width: childrenRect.width - height: childrenRect.height - - Label - { - text: section - font: UM.Theme.getFont("small") - color: UM.Theme.getColor("text") - padding: UM.Theme.getSize("narrow_margin").width - } + id: printerTypeLabel + text: Cura.MachineManager.getAbbreviatedMachineName(section) } } From f8f498b90cd584a98943d1735dc519d94b228870 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 27 Nov 2018 15:45:58 +0100 Subject: [PATCH 0542/1039] Increase the lines that are shown to 12 --- plugins/Toolbox/resources/qml/ToolboxDetailTile.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml index 9061a8e06b..7425ab2ba7 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml @@ -37,7 +37,7 @@ Item anchors.top: packageName.bottom width: parent.width text: model.description - maximumLineCount: 6 + maximumLineCount: 12 elide: Text.ElideRight wrapMode: Text.WordWrap color: UM.Theme.getColor("text") From b98df0f22f04b04cc2c9f324d47611bb07d22a4e Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 27 Nov 2018 15:46:23 +0100 Subject: [PATCH 0543/1039] Show one website link where to get the material --- .../qml/ToolboxCompatibilityChart.qml | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index a48cb2ee3f..9121b97eca 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -36,12 +36,19 @@ Item var pg_name = "printingGuidelines" return (pg_name in packageData.links) ? packageData.links[pg_name] : undefined } + + property var materialWebsiteUrl: + { + var pg_name = "website" + return (pg_name in packageData.links) ? packageData.links[pg_name] : undefined + } anchors.topMargin: UM.Theme.getSize("default_margin").height height: visible ? childrenRect.height : 0 visible: packageData.type == "material" && (packageData.has_configs || technicalDataSheetUrl !== undefined || - safetyDataSheetUrl !== undefined || printingGuidelinesUrl !== undefined) + safetyDataSheetUrl !== undefined || printingGuidelinesUrl !== undefined || + materialWebsiteUrl !== undefined) Item { @@ -180,7 +187,8 @@ Item anchors.top: combatibilityItem.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 visible: base.technicalDataSheetUrl !== undefined || - base.safetyDataSheetUrl !== undefined || base.printingGuidelinesUrl !== undefined + base.safetyDataSheetUrl !== undefined || base.printingGuidelinesUrl !== undefined || + base.materialWebsiteUrl !== undefined height: visible ? contentHeight : 0 text: { @@ -208,6 +216,16 @@ Item var pg_name = catalog.i18nc("@action:label", "Printing Guidelines") result += "%2".arg(base.printingGuidelinesUrl).arg(pg_name) } + if (base.materialWebsiteUrl !== undefined) + { + if (result.length > 0) + { + result += "
    " + } + var pg_name = catalog.i18nc("@action:label", "Website") + result += "%2".arg(base.materialWebsiteUrl).arg(pg_name) + } + return result } font: UM.Theme.getFont("very_small") From c9c7ef7d67f693da7dea77cf0d699dd76a7e8d43 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 26 Nov 2018 13:32:01 +0100 Subject: [PATCH 0544/1039] Add "is_experimental" for experimental qualities CURA-5879 --- .../quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg | 1 + .../quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg | 1 + resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg | 1 + .../quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 1 + .../quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 1 + resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg | 1 + .../quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg | 1 + .../quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg | 1 + .../quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg | 1 + .../ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg | 1 + 18 files changed, 18 insertions(+) diff --git a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg index e08fa27dc9..4d585b54c1 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg @@ -10,6 +10,7 @@ quality_type = normal weight = 0 material = generic_pc variant = AA 0.25 +is_experimental = True [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg index 6e9bbdce27..bee345e302 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg @@ -10,6 +10,7 @@ quality_type = normal weight = 0 material = generic_pp variant = AA 0.25 +is_experimental = True [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg index 73df9637f7..fc4acf3cb0 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = draft weight = -2 material = generic_cpe_plus variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index d59bfe7cea..36b3ef603f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = superdraft weight = -4 material = generic_cpe_plus variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index 368317019f..14e08cb14d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = verydraft weight = -3 material = generic_cpe_plus variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg index 5b81532977..c2bb6d4988 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = draft weight = 0 material = generic_pc variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index 317b89ea85..e815b673d1 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = superdraft weight = -2 material = generic_pc variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index 2fd6bd7609..c50cee576d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = verydraft weight = -1 material = generic_pc variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg index 55d53c6c71..53c319d6e6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg @@ -10,6 +10,7 @@ quality_type = normal weight = 0 material = generic_pc variant = AA 0.25 +is_experimental = True [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg index c925845dc1..b4d34cc392 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg @@ -10,6 +10,7 @@ quality_type = normal weight = 0 material = generic_pp variant = AA 0.25 +is_experimental = True [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg index e78006689b..4bdd09e9b3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = draft weight = -2 material = generic_cpe_plus variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg index c6d0962157..f9b6b0c7a6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = superdraft weight = -4 material = generic_cpe_plus variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg index b80f773594..9c6c7de7f0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = verydraft weight = -3 material = generic_cpe_plus variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg index 0ed4e3d994..c24aa9a98d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = draft weight = 0 material = generic_pc variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg index 53bf1d3107..5fc306b1f1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = superdraft weight = -2 material = generic_pc variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg index d9c45c2634..996adf5be7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg @@ -10,6 +10,7 @@ quality_type = verydraft weight = -1 material = generic_pc variant = AA 0.8 +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg index 3e74390840..4098c86ad9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg @@ -11,6 +11,7 @@ weight = -2 material = generic_cpe_plus variant = AA 0.8 buildplate = Aluminum +is_experimental = True [values] brim_width = 14 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg index 747e2fe8a5..6fdd22c6b0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg @@ -11,6 +11,7 @@ weight = 0 material = generic_pc variant = AA 0.8 buildplate = Aluminum +is_experimental = True [values] brim_width = 10 From 2c8ed992813f2ae56f988bc16b97e87e94bcc529 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 26 Nov 2018 14:48:05 +0100 Subject: [PATCH 0545/1039] Add is_experimental to Qt models and QMLs CURA-5879 --- .../Models/QualityProfilesDropDownMenuModel.py | 5 ++++- cura/Machines/QualityGroup.py | 18 ++++++++++++++++++ cura/Machines/QualityManager.py | 6 +++--- cura/Settings/MachineManager.py | 8 ++++++++ resources/qml/Menus/ProfileMenu.qml | 6 +++++- resources/qml/Settings/SettingView.qml | 3 +++ 6 files changed, 41 insertions(+), 5 deletions(-) diff --git a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py index a01cc1194f..747882b041 100644 --- a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py +++ b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py @@ -21,6 +21,7 @@ class QualityProfilesDropDownMenuModel(ListModel): AvailableRole = Qt.UserRole + 5 QualityGroupRole = Qt.UserRole + 6 QualityChangesGroupRole = Qt.UserRole + 7 + IsExperimentalRole = Qt.UserRole + 8 def __init__(self, parent = None): super().__init__(parent) @@ -32,6 +33,7 @@ class QualityProfilesDropDownMenuModel(ListModel): self.addRoleName(self.AvailableRole, "available") #Whether the quality profile is available in our current nozzle + material. self.addRoleName(self.QualityGroupRole, "quality_group") self.addRoleName(self.QualityChangesGroupRole, "quality_changes_group") + self.addRoleName(self.IsExperimentalRole, "is_experimental") self._application = Application.getInstance() self._machine_manager = self._application.getMachineManager() @@ -74,7 +76,8 @@ class QualityProfilesDropDownMenuModel(ListModel): "layer_height": layer_height, "layer_height_unit": self._layer_height_unit, "available": quality_group.is_available, - "quality_group": quality_group} + "quality_group": quality_group, + "is_experimental": quality_group.is_experimental} item_list.append(item) diff --git a/cura/Machines/QualityGroup.py b/cura/Machines/QualityGroup.py index 535ba453f8..f5bcbb0de8 100644 --- a/cura/Machines/QualityGroup.py +++ b/cura/Machines/QualityGroup.py @@ -4,6 +4,9 @@ from typing import Dict, Optional, List, Set from PyQt5.QtCore import QObject, pyqtSlot + +from UM.Util import parseBool + from cura.Machines.ContainerNode import ContainerNode @@ -29,6 +32,7 @@ class QualityGroup(QObject): self.nodes_for_extruders = {} # type: Dict[int, ContainerNode] self.quality_type = quality_type self.is_available = False + self.is_experimental = False @pyqtSlot(result = str) def getName(self) -> str: @@ -51,3 +55,17 @@ class QualityGroup(QObject): for extruder_node in self.nodes_for_extruders.values(): result.append(extruder_node) return result + + def setGlobalNode(self, node: "ContainerNode") -> None: + self.node_for_global = node + + # Update is_experimental flag + is_experimental = parseBool(node.getMetaDataEntry("is_experimental", False)) + self.is_experimental |= is_experimental + + def setExtruderNode(self, position: int, node: "ContainerNode") -> None: + self.nodes_for_extruders[position] = node + + # Update is_experimental flag + is_experimental = parseBool(node.getMetaDataEntry("is_experimental", False)) + self.is_experimental |= is_experimental diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index a784d17f0b..34cc9ce4b2 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -235,7 +235,7 @@ class QualityManager(QObject): for quality_type, quality_node in node.quality_type_map.items(): quality_group = QualityGroup(quality_node.getMetaDataEntry("name", ""), quality_type) - quality_group.node_for_global = quality_node + quality_group.setGlobalNode(quality_node) quality_group_dict[quality_type] = quality_group break @@ -337,7 +337,7 @@ class QualityManager(QObject): quality_group = quality_group_dict[quality_type] if position not in quality_group.nodes_for_extruders: - quality_group.nodes_for_extruders[position] = quality_node + quality_group.setExtruderNode(position, quality_node) # If the machine has its own specific qualities, for extruders, it should skip the global qualities # and use the material/variant specific qualities. @@ -367,7 +367,7 @@ class QualityManager(QObject): if node and node.quality_type_map: for quality_type, quality_node in node.quality_type_map.items(): quality_group = QualityGroup(quality_node.getMetaDataEntry("name", ""), quality_type) - quality_group.node_for_global = quality_node + quality_group.setGlobalNode(quality_node) quality_group_dict[quality_type] = quality_group break diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index f7ad108ad4..527d5d2679 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -616,6 +616,14 @@ class MachineManager(QObject): is_supported = self._current_quality_group.is_available return is_supported + @pyqtProperty(bool, notify = activeQualityGroupChanged) + def isActiveQualityExperimental(self) -> bool: + is_experimental = False + if self._global_container_stack: + if self._current_quality_group: + is_experimental = self._current_quality_group.is_experimental + return is_experimental + ## Returns whether there is anything unsupported in the current set-up. # # The current set-up signifies the global stack and all extruder stacks, diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index ffd3c556b6..b503b7de85 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -17,7 +17,11 @@ Menu MenuItem { - text: (model.layer_height != "") ? model.name + " - " + model.layer_height + model.layer_height_unit : model.name + text: { + var full_text = (model.layer_height != "") ? model.name + " - " + model.layer_height + model.layer_height_unit : model.name; + full_text += model.is_experimental ? " - Experimental" : ""; + return full_text; + } checkable: true checked: Cura.MachineManager.activeQualityOrQualityChangesName == model.name exclusiveGroup: group diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index da50b430ac..5d916aed7c 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -66,6 +66,9 @@ Item function generateActiveQualityText () { var result = Cura.MachineManager.activeQualityOrQualityChangesName; + if (Cura.MachineManager.isActiveQualityExperimental) { + result += " (Experimental)"; + } if (Cura.MachineManager.isActiveQualitySupported) { if (Cura.MachineManager.activeQualityLayerHeight > 0) { From 41a5f05391dbc06dc4afde0321364e596ab8452b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 15:57:26 +0100 Subject: [PATCH 0546/1039] Remove SyncButton It hasn't been used now for a while. Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/SyncButton.qml | 102 ------------------ 1 file changed, 102 deletions(-) delete mode 100644 resources/qml/Menus/ConfigurationMenu/SyncButton.qml diff --git a/resources/qml/Menus/ConfigurationMenu/SyncButton.qml b/resources/qml/Menus/ConfigurationMenu/SyncButton.qml deleted file mode 100644 index 558ae1e477..0000000000 --- a/resources/qml/Menus/ConfigurationMenu/SyncButton.qml +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -Button -{ - id: base - property var outputDevice: null - property var matched: updateOnSync() - text: matched == true ? catalog.i18nc("@label:extruder label", "Yes") : catalog.i18nc("@label:extruder label", "No") - width: parent.width - height: parent.height - - function updateOnSync() - { - if (outputDevice != undefined) - { - for (var index in outputDevice.uniqueConfigurations) - { - var configuration = outputDevice.uniqueConfigurations[index] - if (Cura.MachineManager.matchesConfiguration(configuration)) - { - base.matched = true; - return; - } - } - } - base.matched = false; - } - - style: ButtonStyle - { - background: Rectangle - { - color: - { - if(control.pressed) - { - return UM.Theme.getColor("machine_selector_active"); - } - else if(control.hovered) - { - return UM.Theme.getColor("machine_selector_hover"); - } - else - { - return UM.Theme.getColor("machine_selector_bar"); - } - } - Behavior on color { ColorAnimation { duration: 50; } } - - UM.RecolorImage - { - id: downArrow - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: height - color: UM.Theme.getColor("text_emphasis") - source: UM.Theme.getIcon("arrow_bottom") - } - UM.RecolorImage - { - id: sidebarComboBoxLabel - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.verticalCenter: parent.verticalCenter; - - width: UM.Theme.getSize("printer_sync_icon").width - height: UM.Theme.getSize("printer_sync_icon").height - - color: control.matched ? UM.Theme.getColor("printer_config_matched") : UM.Theme.getColor("printer_config_mismatch") - source: UM.Theme.getIcon("tab_status_connected") - sourceSize.width: width - sourceSize.height: height - } - } - label: Label {} - } - - Connections - { - target: outputDevice - onUniqueConfigurationsChanged: updateOnSync() - } - - Connections - { - target: Cura.MachineManager - onCurrentConfigurationChanged: updateOnSync() - onOutputDevicesChanged: updateOnSync() - } -} \ No newline at end of file From dad2031e4b5b8750a6721e6fdb3a24620eaf3cc7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 16:06:37 +0100 Subject: [PATCH 0547/1039] Switch to the preview stage before to switch to simulation view ... since now the list of views are in a different stage. Contributes to CURA-5979. --- cura/CuraApplication.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 6e52a97518..b43e4d5e0e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1663,7 +1663,9 @@ class CuraApplication(QtApplication): is_non_sliceable = "." + file_extension in self._non_sliceable_extensions if is_non_sliceable: - self.callLater(lambda: self.getController().setActiveView("SimulationView")) + # Need to switch first to the preview stage and then to layer view + self.callLater(lambda: (self.getController().setActiveStage("PreviewStage"), + self.getController().setActiveView("SimulationView"))) block_slicing_decorator = BlockSlicingDecorator() node.addDecorator(block_slicing_decorator) From ff851b0382b688b6c190d48127be3e0a369a2960 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 27 Nov 2018 16:36:27 +0100 Subject: [PATCH 0548/1039] Added margins CURA-5941 --- resources/qml/PrintSetupSelector.qml | 4 ++-- resources/qml/SidebarSimple.qml | 10 ++-------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index b20d8e116b..6edb297721 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -216,8 +216,8 @@ Cura.ExpandableComponent topMargin: UM.Theme.getSize("narrow_margin").height right: parent.right left: parent.left - leftMargin: UM.Theme.getSize("thick_margin").width / 1.5 - rightMargin: UM.Theme.getSize("thick_margin").width / 1.5 + leftMargin: UM.Theme.getSize("default_margin").width + rightMargin: UM.Theme.getSize("default_margin").width } UM.TabRow diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 2e0f0d6c4c..f2e998f526 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -38,6 +38,8 @@ Item width: childrenRect.width height: childrenRect.height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width // // Quality profile // @@ -48,7 +50,6 @@ Item height: UM.Theme.getSize("thick_margin").height anchors.topMargin: UM.Theme.getSize("thick_margin").height anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width anchors.right: parent.right Timer @@ -193,7 +194,6 @@ Item source: UM.Theme.getIcon("category_layer_height") text: catalog.i18nc("@label", "Layer Height") anchors.bottom: speedSlider.bottom - } // Show titles for the each quality slider ticks @@ -507,7 +507,6 @@ Item top: parent.top topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7) left: parent.left - leftMargin: UM.Theme.getSize("thick_margin").width } } } @@ -526,9 +525,7 @@ Item Label { id: selectedInfillRateText - //anchors.top: parent.top anchors.left: infillSlider.left - anchors.leftMargin: Math.round((infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor) anchors.right: parent.right text: parseInt(infillDensity.properties.value) + "%" @@ -833,7 +830,6 @@ Item top: infillCellRight.bottom topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5) left: parent.left - leftMargin: UM.Theme.getSize("thick_margin").width right: infillCellLeft.right rightMargin: UM.Theme.getSize("thick_margin").width verticalCenter: enableSupportCheckBox.verticalCenter @@ -956,7 +952,6 @@ Item anchors { left: parent.left - leftMargin: UM.Theme.getSize("thick_margin").width right: infillCellLeft.right rightMargin: UM.Theme.getSize("thick_margin").width verticalCenter: adhesionCheckBox.verticalCenter @@ -1037,7 +1032,6 @@ Item { id: tipsText anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("thick_margin").width anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("thick_margin").width anchors.top: parent.top From 26c7558a53b571deaea91d8d2acd39ee9f5a005d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 16:44:16 +0100 Subject: [PATCH 0549/1039] Don't show labels if controls themselves are not shown The height of the popup is luckily automatically adjusted now. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 78448d5be5..87096c3a14 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -136,6 +136,7 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth + visible: materialSelection.visible } OldControls.ToolButton @@ -178,6 +179,7 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth + visible: variantSelection.visible } OldControls.ToolButton From 0b8a56458d5d6bea6dc88c8674c3459fa5eee402 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 27 Nov 2018 17:11:32 +0100 Subject: [PATCH 0550/1039] Remove unused CustomConfigurationSelector I checked. It is no longer used. Contributes to issue CURA-5876. --- resources/qml/CustomConfigurationSelector.qml | 357 ------------------ 1 file changed, 357 deletions(-) delete mode 100644 resources/qml/CustomConfigurationSelector.qml diff --git a/resources/qml/CustomConfigurationSelector.qml b/resources/qml/CustomConfigurationSelector.qml deleted file mode 100644 index c78ca700da..0000000000 --- a/resources/qml/CustomConfigurationSelector.qml +++ /dev/null @@ -1,357 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -Rectangle -{ - implicitWidth: parent.width - implicitHeight: parent.height - - id: base - color: UM.Theme.getColor("main_background") - - // Height has an extra 2x margin for the top & bottom margin. - height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width - - Cura.ExtrudersModel { id: extrudersModel } - - ListView - { - // Horizontal list that shows the extruders - id: extrudersList - visible: extrudersModel.items.length > 1 - property var index: 0 - - height: UM.Theme.getSize("configuration_selector_mode_tabs").height - boundsBehavior: Flickable.StopAtBounds - - anchors - { - left: parent.left - right: parent.right - top: parent.top - margins: UM.Theme.getSize("thick_margin").width - } - - ExclusiveGroup { id: extruderMenuGroup } - - orientation: ListView.Horizontal - - model: extrudersModel - - Connections - { - target: Cura.MachineManager - onGlobalContainerChanged: forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - } - - delegate: Button - { - height: parent.height - width: Math.round(ListView.view.width / extrudersModel.rowCount()) - - text: model.name - tooltip: model.name - exclusiveGroup: extruderMenuGroup - checked: Cura.ExtruderManager.activeExtruderIndex == index - - property bool extruder_enabled: true - - MouseArea // TODO; This really should be fixed. It makes absolutely no sense to have a button AND a mouse area. - { - anchors.fill: parent - acceptedButtons: Qt.LeftButton | Qt.RightButton - onClicked: - { - switch (mouse.button) - { - case Qt.LeftButton: - extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled - if (extruder_enabled) - { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - Cura.ExtruderManager.setActiveExtruderIndex(index) - } - break - case Qt.RightButton: - extruder_enabled = Cura.MachineManager.getExtruder(model.index).isEnabled - extruderMenu.popup() - break - } - } - } - - Menu - { - id: extruderMenu - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Enable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true) - visible: !extruder_enabled // using an intermediate variable prevents an empty popup that occured now and then - } - - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Disable Extruder") - onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false) - visible: extruder_enabled - enabled: Cura.MachineManager.numberExtrudersEnabled > 1 - } - } - - style: ButtonStyle - { - background: Rectangle - { - anchors.fill: parent - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: - { - if (Cura.MachineManager.getExtruder(index).isEnabled) - { - if(control.checked || control.pressed) - { - return UM.Theme.getColor("action_button_active_border") - } - else if (control.hovered) - { - return UM.Theme.getColor("action_button_hovered_border") - } - return UM.Theme.getColor("action_button_border") - } - return UM.Theme.getColor("action_button_disabled_border") - } - color: - { - if (Cura.MachineManager.getExtruder(index).isEnabled) - { - if(control.checked || control.pressed) - { - return UM.Theme.getColor("action_button_active"); - } - else if (control.hovered) - { - return UM.Theme.getColor("action_button_hovered") - } - return UM.Theme.getColor("action_button") - } - return UM.Theme.getColor("action_button_disabled") - } - Behavior on color { ColorAnimation { duration: 50; } } - - Item - { - id: extruderButtonFace - anchors.centerIn: parent - width: childrenRect.width - - Label - { - // Static text that holds the "Extruder" label - id: extruderStaticText - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - - color: - { - if (Cura.MachineManager.getExtruder(index).isEnabled) - { - if(control.checked || control.pressed) - { - return UM.Theme.getColor("action_button_active_text"); - } - else if (control.hovered) - { - return UM.Theme.getColor("action_button_hovered_text") - } - return UM.Theme.getColor("action_button_text") - } - return UM.Theme.getColor("action_button_disabled_text") - } - - font: UM.Theme.getFont("large_nonbold") - text: catalog.i18nc("@label", "Extruder") - visible: width < (control.width - extruderIcon.width - UM.Theme.getSize("default_margin").width) - elide: Text.ElideRight - } - - ExtruderIcon - { - // Round icon with the extruder number and material color indicator. - id: extruderIcon - - anchors.verticalCenter: parent.verticalCenter - anchors.left: extruderStaticText.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width - width: control.height - Math.round(UM.Theme.getSize("default_margin").width / 2) - height: width - - checked: control.checked - materialColor: model.color - textColor: extruderStaticText.color - } - } - } - - label: Item {} - } - } - } - - Item - { - id: materialRow - height: UM.Theme.getSize("print_setup_item").height - visible: Cura.MachineManager.hasMaterials - - anchors - { - left: parent.left - right: parent.right - top: extrudersList.bottom - margins: UM.Theme.getSize("thick_margin").width - } - - Label - { - id: materialLabel - text: catalog.i18nc("@label", "Material"); - width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) - height: parent.height - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - ToolButton - { - id: materialSelection - - property var activeExtruder: Cura.MachineManager.activeStack - property var hasActiveExtruder: activeExtruder != null - property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" - - text: currentRootMaterialName - tooltip: currentRootMaterialName - visible: Cura.MachineManager.hasMaterials - - enabled: !extrudersList.visible || Cura.ExtruderManager.activeExtruderIndex > -1 - - height: UM.Theme.getSize("setting_control").height - width: Math.round(parent.width * 0.7) + UM.Theme.getSize("thick_margin").width - anchors.right: parent.right - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - menu: Cura.MaterialMenu - { - extruderIndex: Cura.ExtruderManager.activeExtruderIndex - } - - property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true - property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - } - } - - Item - { - id: variantRow - height: UM.Theme.getSize("print_setup_item").height - visible: Cura.MachineManager.hasVariants - - anchors - { - left: parent.left - right: parent.right - top: materialRow.bottom - margins: UM.Theme.getSize("thick_margin").width - } - - Label - { - id: variantLabel - text: Cura.MachineManager.activeDefinitionVariantsName; - width: Math.round(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) - height: parent.height - verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - } - - ToolButton - { - id: variantSelection - text: Cura.MachineManager.activeVariantName - tooltip: Cura.MachineManager.activeVariantName; - visible: Cura.MachineManager.hasVariants - - height: UM.Theme.getSize("setting_control").height - width: Math.round(parent.width * 0.7 + UM.Theme.getSize("thick_margin").width) - anchors.right: parent.right - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; - - menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } - } - } - - Item - { - id: materialCompatibilityLink - height: UM.Theme.getSize("print_setup_item").height - - anchors.right: parent.right - anchors.top: variantRow.bottom - anchors.margins: UM.Theme.getSize("thick_margin").width - UM.RecolorImage - { - id: warningImage - - anchors.right: materialInfoLabel.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width - - source: UM.Theme.getIcon("warning") - width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height - - sourceSize.width: width - sourceSize.height: height - - color: UM.Theme.getColor("material_compatibility_warning") - - visible: !Cura.MachineManager.isCurrentSetupSupported - } - - Label - { - id: materialInfoLabel - wrapMode: Text.WordWrap - text: "" + catalog.i18nc("@label", "Check compatibility") + "" - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - linkColor: UM.Theme.getColor("text_link") - - verticalAlignment: Text.AlignTop - - anchors.right: parent.right - - MouseArea - { - anchors.fill: parent - - onClicked: - { - // open the material URL with web browser - Qt.openUrlExternally("https://ultimaker.com/incoming-links/cura/material-compatibilty"); - } - } - } - } -} From 309061ce3113df6dd7f7c9e9762526b1ce0973c5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 17:16:52 +0100 Subject: [PATCH 0551/1039] Add a new ToolbarButton Now also the Extruder button is a toolbar button since it will show in the toolbar. --- resources/qml/ExtruderButton.qml | 18 +++---- resources/qml/Toolbar.qml | 25 ++++++--- resources/qml/ToolbarButton.qml | 92 ++++++++++++++++++++++++++++++++ resources/qml/qmldir | 3 +- 4 files changed, 117 insertions(+), 21 deletions(-) create mode 100644 resources/qml/ToolbarButton.qml diff --git a/resources/qml/ExtruderButton.qml b/resources/qml/ExtruderButton.qml index d7cbdc52bc..feb399d528 100644 --- a/resources/qml/ExtruderButton.qml +++ b/resources/qml/ExtruderButton.qml @@ -7,7 +7,7 @@ import QtQuick.Controls 2.0 import UM 1.2 as UM import Cura 1.0 as Cura -Button +Cura.ToolbarButton { id: base @@ -18,22 +18,16 @@ Button checked: Cura.ExtruderManager.selectedObjectExtruders.indexOf(extruder.id) != -1 enabled: UM.Selection.hasSelection && extruder.stack.isEnabled - background: Item {} - contentItem: Item + toolItem: ExtruderIcon { - // For some reason if the extruder icon is not enclosed to the item, the size changes to fill the size of the button - ExtruderIcon - { - anchors.centerIn: parent - materialColor: model.color - extruderEnabled: extruder.stack.isEnabled - property int index: extruder.index - } + materialColor: extruder.color + extruderEnabled: extruder.stack.isEnabled + property int index: extruder.index } onClicked: { forceActiveFocus() //First grab focus, so all the text fields are updated - CuraActions.setExtruderForSelection(extruder.id); + CuraActions.setExtruderForSelection(extruder.id) } } diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 0240aaab26..3a4e7704c0 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -55,17 +55,25 @@ Item model: UM.ToolModel { id: toolsModel } width: childrenRect.width height: childrenRect.height - Button + + delegate: ToolbarButton { text: model.name + (model.shortcut ? (" (" + model.shortcut + ")") : "") - iconSource: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon checkable: true checked: model.active enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled - style: UM.Theme.styles.toolbar_button - property bool isFirstElement: toolsModel.getItem(0).id == model.id - property bool isLastElement: toolsModel.getItem(toolsModel.rowCount() - 1).id == model.id + topElement: toolsModel.getItem(0).id == model.id + bottomElement: toolsModel.getItem(toolsModel.rowCount() - 1).id == model.id + + toolItem: UM.RecolorImage + { + opacity: parent.enabled ? 1.0 : 0.2 + source: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon + color: UM.Theme.getColor("toolbar_button_text") + + sourceSize: UM.Theme.getSize("button_icon") + } onCheckedChanged: { @@ -128,11 +136,12 @@ Item height: childrenRect.height property var _model: Cura.ExtrudersModel { id: extrudersModel } model: _model.items.length > 1 ? _model : 0 - ExtruderButton + + delegate: ExtruderButton { extruder: model - height: UM.Theme.getSize("button").width - width: UM.Theme.getSize("button").width + topElement: extrudersModel.getItem(0).id == model.id + bottomElement: extrudersModel.getItem(extrudersModel.rowCount() - 1).id == model.id } } } diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml new file mode 100644 index 0000000000..7241b489b6 --- /dev/null +++ b/resources/qml/ToolbarButton.qml @@ -0,0 +1,92 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +Button +{ + id: base + + property alias toolItem: contentItemLoader.sourceComponent + property bool topElement: false + property bool bottomElement: false + + hoverEnabled: true + + background: Rectangle + { + implicitWidth: UM.Theme.getSize("button").width + implicitHeight: UM.Theme.getSize("button").height + color: + { + if (base.checked && base.hovered) + { + return UM.Theme.getColor("toolbar_button_active_hover") + } + else if (base.checked) + { + return "red" //UM.Theme.getColor("toolbar_button_active") + } + else if(base.hovered) + { + return UM.Theme.getColor("toolbar_button_hover") + } + return UM.Theme.getColor("toolbar_background") + } + radius: UM.Theme.getSize("default_radius").width + + Rectangle + { + id: topSquare + anchors + { + left: parent.left + right: parent.right + top: parent.top + } + height: parent.radius + color: base.topElement ? "transparent" : parent.color + } + + Rectangle + { + id: bottomSquare + anchors + { + left: parent.left + right: parent.right + bottom: parent.bottom + } + height: parent.radius + color: base.bottomElement ? "transparent" : parent.color + } + + Rectangle + { + id: leftSquare + anchors + { + left: parent.left + top: parent.top + bottom: parent.bottom + } + width: parent.radius + color: parent.color + } + } + + contentItem: Item + { + Loader + { + id: contentItemLoader + anchors.centerIn: parent + width: UM.Theme.getSize("button_icon").width + height: UM.Theme.getSize("button_icon").height + } + } +} diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 43ae4411af..2475f398f8 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -12,4 +12,5 @@ IconLabel 1.0 IconLabel.qml OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml ExpandableComponent 1.0 ExpandableComponent.qml PrinterTypeLabel 1.0 PrinterTypeLabel.qml -ViewsSelector 1.0 ViewsSelector.qml \ No newline at end of file +ViewsSelector 1.0 ViewsSelector.qml +ToolbarButton 1.0 ToolbarButton.qml \ No newline at end of file From 14b460a626bfbb58b0bc8eff6621f46e8d400ecb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 27 Nov 2018 17:25:10 +0100 Subject: [PATCH 0552/1039] Remove unused styles --- resources/qml/Toolbar.qml | 5 +- resources/qml/ToolbarButton.qml | 3 +- resources/themes/cura-light/styles.qml | 117 ------------------------- 3 files changed, 3 insertions(+), 122 deletions(-) diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 3a4e7704c0..0207c8ec49 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -2,9 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura @@ -68,7 +66,6 @@ Item toolItem: UM.RecolorImage { - opacity: parent.enabled ? 1.0 : 0.2 source: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon color: UM.Theme.getColor("toolbar_button_text") diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml index 7241b489b6..b5e5aab475 100644 --- a/resources/qml/ToolbarButton.qml +++ b/resources/qml/ToolbarButton.qml @@ -29,7 +29,7 @@ Button } else if (base.checked) { - return "red" //UM.Theme.getColor("toolbar_button_active") + return UM.Theme.getColor("toolbar_button_active") } else if(base.hovered) { @@ -81,6 +81,7 @@ Button contentItem: Item { + opacity: parent.enabled ? 1.0 : 0.2 Loader { id: contentItemLoader diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index f00aab44c0..e040d91df9 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -171,123 +171,6 @@ QtObject } } - property Component toolbar_button: Component - { - ButtonStyle - { - background: Rectangle - { - implicitWidth: Theme.getSize("button").width - implicitHeight: Theme.getSize("button").height - color: - { - if (control.checked && control.hovered) - { - return Theme.getColor("toolbar_button_active_hover") - } - else if (control.checked) - { - return Theme.getColor("toolbar_button_active") - } - else if(control.hovered) - { - return Theme.getColor("toolbar_button_hover") - } - return Theme.getColor("toolbar_background") - } - radius: UM.Theme.getSize("default_radius").width - - Rectangle - { - id: topSquare - anchors - { - left: parent.left - right: parent.right - top: parent.top - } - height: parent.radius - color: control.isFirstElement ? "transparent" : parent.color - } - - Rectangle - { - id: bottomSquare - anchors - { - left: parent.left - right: parent.right - bottom: parent.bottom - } - height: parent.radius - color: control.isLastElement ? "transparent" : parent.color - } - - Rectangle - { - id: leftSquare - anchors - { - left: parent.left - top: parent.top - bottom: parent.bottom - } - width: parent.radius - color: parent.color - } - - // This is the tooltip - UM.PointingRectangle - { - id: button_tooltip - - anchors.left: parent.right - anchors.leftMargin: Theme.getSize("button_tooltip_arrow").width * 2 - anchors.verticalCenter: parent.verticalCenter - - target: Qt.point(parent.x, y + Math.round(height/2)) - arrowSize: Theme.getSize("button_tooltip_arrow").width - color: Theme.getColor("button_tooltip") - opacity: control.hovered ? 1.0 : 0.0; - visible: control.text != "" - - width: control.hovered ? button_tip.width + Theme.getSize("button_tooltip").width : 0 - height: Theme.getSize("button_tooltip").height - - Behavior on width { NumberAnimation { duration: 100; } } - Behavior on opacity { NumberAnimation { duration: 100; } } - - Label - { - id: button_tip - - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter; - - text: control.text; - font: Theme.getFont("button_tooltip"); - color: Theme.getColor("tooltip_text"); - } - } - } - - label: Item - { - UM.RecolorImage - { - anchors.centerIn: parent; - opacity: !control.enabled ? 0.2 : 1.0 - source: control.iconSource; - width: Theme.getSize("button_icon").width; - height: Theme.getSize("button_icon").height; - color: Theme.getColor("toolbar_button_text"); - - sourceSize: Theme.getSize("button_icon") - } - } - } - } - property Component tool_button: Component { ButtonStyle From d8c430abf61c2537720270603796b368f00642d2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 27 Nov 2018 17:54:53 +0100 Subject: [PATCH 0553/1039] Fix typing --- cura/CuraActions.py | 14 ++++++++------ cura/PrintInformation.py | 7 +++---- .../PostProcessingPlugin/PostProcessingPlugin.py | 4 ++-- plugins/USBPrinting/AutoDetectBaudJob.py | 11 ++++++----- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index 93a18318df..49f7e740a9 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -3,7 +3,7 @@ from PyQt5.QtCore import QObject, QUrl from PyQt5.QtGui import QDesktopServices -from typing import List, TYPE_CHECKING +from typing import List, TYPE_CHECKING, cast from UM.Event import CallFunctionEvent from UM.FlameProfiler import pyqtSlot @@ -61,8 +61,10 @@ class CuraActions(QObject): operation = GroupedOperation() for node in Selection.getAllSelectedObjects(): current_node = node - while current_node.getParent() and current_node.getParent().callDecoration("isGroup"): - current_node = current_node.getParent() + parent_node = current_node.getParent() + while parent_node and parent_node.callDecoration("isGroup"): + current_node = parent_node + parent_node = current_node.getParent() # This was formerly done with SetTransformOperation but because of # unpredictable matrix deconstruction it was possible that mirrors @@ -150,13 +152,13 @@ class CuraActions(QObject): root = cura.CuraApplication.CuraApplication.getInstance().getController().getScene().getRoot() - nodes_to_change = [] + nodes_to_change = [] # type: List[SceneNode] for node in Selection.getAllSelectedObjects(): parent_node = node # Find the parent node to change instead while parent_node.getParent() != root: - parent_node = parent_node.getParent() + parent_node = cast(SceneNode, parent_node.getParent()) - for single_node in BreadthFirstIterator(parent_node): #type: ignore #Ignore type error because iter() should get called automatically by Python syntax. + for single_node in BreadthFirstIterator(parent_node): # type: ignore #Ignore type error because iter() should get called automatically by Python syntax. nodes_to_change.append(single_node) if not nodes_to_change: diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index e11f70a54c..22c3eb1734 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -14,8 +14,7 @@ from UM.Logger import Logger from UM.Qt.Duration import Duration from UM.Scene.SceneNode import SceneNode from UM.i18n import i18nCatalog -from UM.MimeTypeDatabase import MimeTypeDatabase - +from UM.MimeTypeDatabase import MimeTypeDatabase, MimeTypeNotFoundError from typing import TYPE_CHECKING @@ -361,7 +360,7 @@ class PrintInformation(QObject): try: mime_type = MimeTypeDatabase.getMimeTypeForFile(name) data = mime_type.stripExtension(name) - except: + except MimeTypeNotFoundError: Logger.log("w", "Unsupported Mime Type Database file extension %s", name) if data is not None and check_name is not None: @@ -416,7 +415,7 @@ class PrintInformation(QObject): return ''.join(char for char in unicodedata.normalize('NFD', to_strip) if unicodedata.category(char) != 'Mn') @pyqtSlot(result = "QVariantMap") - def getFeaturePrintTimes(self): + def getFeaturePrintTimes(self) -> Dict[str, Duration]: result = {} if self._active_build_plate not in self._print_times_per_feature: self._initPrintTimesPerFeature(self._active_build_plate) diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.py b/plugins/PostProcessingPlugin/PostProcessingPlugin.py index 11ee610bec..78f9cc0516 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.py +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.py @@ -55,14 +55,14 @@ class PostProcessingPlugin(QObject, Extension): def selectedScriptDefinitionId(self) -> Optional[str]: try: return self._script_list[self._selected_script_index].getDefinitionId() - except: + except IndexError: return "" @pyqtProperty(str, notify=selectedIndexChanged) def selectedScriptStackId(self) -> Optional[str]: try: return self._script_list[self._selected_script_index].getStackId() - except: + except IndexError: return "" ## Execute all post-processing scripts on the gcode. diff --git a/plugins/USBPrinting/AutoDetectBaudJob.py b/plugins/USBPrinting/AutoDetectBaudJob.py index 8b37c4b29d..6f1af6727a 100644 --- a/plugins/USBPrinting/AutoDetectBaudJob.py +++ b/plugins/USBPrinting/AutoDetectBaudJob.py @@ -3,6 +3,7 @@ from UM.Job import Job from UM.Logger import Logger +from plugins.USBPrinting.avr_isp import ispBase from .avr_isp.stk500v2 import Stk500v2 @@ -14,12 +15,12 @@ from serial import Serial, SerialException # It tries a pre-set list of baud rates. All these baud rates are validated by requesting the temperature a few times # and checking if the results make sense. If getResult() is not None, it was able to find a correct baud rate. class AutoDetectBaudJob(Job): - def __init__(self, serial_port): + def __init__(self, serial_port: int) -> None: super().__init__() self._serial_port = serial_port self._all_baud_rates = [115200, 250000, 230400, 57600, 38400, 19200, 9600] - def run(self): + def run(self) -> None: Logger.log("d", "Auto detect baud rate started.") wait_response_timeouts = [3, 15, 30] wait_bootloader_times = [1.5, 5, 15] @@ -32,7 +33,7 @@ class AutoDetectBaudJob(Job): try: programmer.connect(self._serial_port) serial = programmer.leaveISP() - except: + except ispBase.IspError: programmer.close() for retry in range(tries): @@ -58,7 +59,7 @@ class AutoDetectBaudJob(Job): # We already have a serial connection, just change the baud rate. try: serial.baudrate = baud_rate - except: + except ValueError: continue sleep(wait_bootloader) # Ensure that we are not talking to the boot loader. 1.5 seconds seems to be the magic number successful_responses = 0 @@ -81,5 +82,5 @@ class AutoDetectBaudJob(Job): return serial.write(b"M105\n") - sleep(15) # Give the printer some time to init and try again. + sleep(15) # Give the printer some time to init and try again. self.setResult(None) # Unable to detect the correct baudrate. From c1c5eb221913dd7ce7538ef9d4120f7b69866729 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 28 Nov 2018 09:44:37 +0100 Subject: [PATCH 0554/1039] Rename the properties to quickly identify that they are a boolean Contributes to CURA-5984. --- resources/qml/Toolbar.qml | 8 ++++---- resources/qml/ToolbarButton.qml | 12 ++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 0207c8ec49..d16f949014 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -61,8 +61,8 @@ Item checked: model.active enabled: model.enabled && UM.Selection.hasSelection && UM.Controller.toolsEnabled - topElement: toolsModel.getItem(0).id == model.id - bottomElement: toolsModel.getItem(toolsModel.rowCount() - 1).id == model.id + isTopElement: toolsModel.getItem(0).id == model.id + isBottomElement: toolsModel.getItem(toolsModel.rowCount() - 1).id == model.id toolItem: UM.RecolorImage { @@ -137,8 +137,8 @@ Item delegate: ExtruderButton { extruder: model - topElement: extrudersModel.getItem(0).id == model.id - bottomElement: extrudersModel.getItem(extrudersModel.rowCount() - 1).id == model.id + isTopElement: extrudersModel.getItem(0).id == model.id + isBottomElement: extrudersModel.getItem(extrudersModel.rowCount() - 1).id == model.id } } } diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml index b5e5aab475..9e81939ba2 100644 --- a/resources/qml/ToolbarButton.qml +++ b/resources/qml/ToolbarButton.qml @@ -12,8 +12,12 @@ Button id: base property alias toolItem: contentItemLoader.sourceComponent - property bool topElement: false - property bool bottomElement: false + + // These two properties indicate whether the toolbar button is at the top of the toolbar column or at the bottom. + // If it is somewhere in the middle, then both has to be false. If there is only one element in the column, then + // both properties have to be set to true. This is used to create a rounded corner. + property bool isTopElement: false + property bool isBottomElement: false hoverEnabled: true @@ -49,7 +53,7 @@ Button top: parent.top } height: parent.radius - color: base.topElement ? "transparent" : parent.color + color: base.isTopElement ? "transparent" : parent.color } Rectangle @@ -62,7 +66,7 @@ Button bottom: parent.bottom } height: parent.radius - color: base.bottomElement ? "transparent" : parent.color + color: base.isBottomElement ? "transparent" : parent.color } Rectangle From bfebb33123f34894887719f114c942485a48b540 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 10:28:16 +0100 Subject: [PATCH 0555/1039] Code style CURA-5984 Co-Authored-By: diegopradogesto --- resources/qml/Toolbar.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index d16f949014..07522dd535 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -66,7 +66,7 @@ Item toolItem: UM.RecolorImage { - source: (UM.Theme.getIcon(model.icon) != "") ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon + source: UM.Theme.getIcon(model.icon) != "" ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon color: UM.Theme.getColor("toolbar_button_text") sourceSize: UM.Theme.getSize("button_icon") From 454b47e3a0e7c9d50a5e8ebad5933182872f0782 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 10:29:35 +0100 Subject: [PATCH 0556/1039] Change visibility behavior of the rectangle CURA-5984 Co-Authored-By: diegopradogesto --- resources/qml/ToolbarButton.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml index 9e81939ba2..90e9160d3d 100644 --- a/resources/qml/ToolbarButton.qml +++ b/resources/qml/ToolbarButton.qml @@ -66,7 +66,8 @@ Button bottom: parent.bottom } height: parent.radius - color: base.isBottomElement ? "transparent" : parent.color + color: parent.color + visible: base.isBottomElement } Rectangle From d0da70a7eea8c6991afebc5488e7a2c39fae9ab1 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 10:29:53 +0100 Subject: [PATCH 0557/1039] Change visibility of the rectangle CURA-5984 Co-Authored-By: diegopradogesto --- resources/qml/ToolbarButton.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml index 90e9160d3d..157c6a34ac 100644 --- a/resources/qml/ToolbarButton.qml +++ b/resources/qml/ToolbarButton.qml @@ -53,7 +53,8 @@ Button top: parent.top } height: parent.radius - color: base.isTopElement ? "transparent" : parent.color + color: parent.color + visible: base.isTopElement } Rectangle From 709750c9e2c4fac776651039ac56055714056276 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 28 Nov 2018 10:39:32 +0100 Subject: [PATCH 0558/1039] Add global quality to the Anycubic i3 Mega Fixes #4876. --- .../quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg | 1 + .../quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg | 1 + .../quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg | 1 + 3 files changed, 3 insertions(+) diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index bb47f68574..e94b9f01d1 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = draft weight = 0 +global_quality = True [values] acceleration_enabled = True diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index a3ae98deba..c8c4bf9a81 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = high weight = 2 +global_quality = True [values] acceleration_enabled = True diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index 13846b9702..399c3ebc55 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -8,6 +8,7 @@ setting_version = 5 type = quality quality_type = normal weight = 1 +global_quality = True [values] acceleration_enabled = True From 255a7fa1fbf97ea237c1bda9259480732b4e3398 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 28 Nov 2018 10:45:46 +0100 Subject: [PATCH 0559/1039] Fix binding loop Contributes to CL-1150 --- .../UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index d1d9bec351..8507c8d2c8 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -180,12 +180,12 @@ Item verticalCenter: parent.verticalCenter } width: printerImage.width - height: childrenRect.height + height: 60 * screenScaleFactor // TODO: Theme! MonitorPrintJobPreview { anchors.centerIn: parent printJob: base.printer.activePrintJob - size: 60 * screenScaleFactor // TODO: Theme! + size: parent.height } } From bfa2ff5f5ed84a06460f29a79f1b5cd0e1979187 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 10:46:07 +0100 Subject: [PATCH 0560/1039] Invert visibility of bottom & topsquare It got derped. --- resources/qml/ToolbarButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml index 157c6a34ac..adff73fb7c 100644 --- a/resources/qml/ToolbarButton.qml +++ b/resources/qml/ToolbarButton.qml @@ -54,7 +54,7 @@ Button } height: parent.radius color: parent.color - visible: base.isTopElement + visible: !base.isTopElement } Rectangle @@ -68,7 +68,7 @@ Button } height: parent.radius color: parent.color - visible: base.isBottomElement + visible: !base.isBottomElement } Rectangle From d54a1cb41b815831e8b745cc0c03e590d08abc6a Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 28 Nov 2018 10:46:12 +0100 Subject: [PATCH 0561/1039] Handle null print job more elegantly Contributes to CL-1150 --- .../qml/MonitorPrintJobProgressBar.qml | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index 6e16d026a1..f70e1175a1 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -97,16 +97,19 @@ Item id: progressItem; color: { - var state = printJob.state - var inactiveStates = [ - "pausing", - "paused", - "resuming", - "wait_cleanup" - ] - if (inactiveStates.indexOf(state) > -1 && remainingTime > 0) + if (printJob) { - return UM.Theme.getColor("monitor_progress_fill_inactive") + var state = printJob.state + var inactiveStates = [ + "pausing", + "paused", + "resuming", + "wait_cleanup" + ] + if (inactiveStates.indexOf(state) > -1 && remainingTime > 0) + { + return UM.Theme.getColor("monitor_progress_fill_inactive") + } } return "#0a0850" // TODO: Theme! } From 370fa0fd14a9893a09da9a72827221d59a88b8f4 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 28 Nov 2018 10:46:22 +0100 Subject: [PATCH 0562/1039] Remove old sidebar Contributes to CL-1150 --- plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 8314b0f089..3b124faf66 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -65,7 +65,6 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): self._received_print_jobs = False # type: bool self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../resources/qml/ClusterMonitorItem.qml") - self._control_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../resources/qml/ClusterControlItem.qml") # See comments about this hack with the clusterPrintersChanged signal self.printersChanged.connect(self.clusterPrintersChanged) From 9029d10ed01dff02a28679935c6f15cb7a87869c Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 28 Nov 2018 10:47:34 +0100 Subject: [PATCH 0563/1039] Remove debug statement Contributes to CL-1150 --- .../UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 8507c8d2c8..975fe12244 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -56,11 +56,7 @@ Item width: 108 * screenScaleFactor // TODO: Theme! height: 108 * screenScaleFactor // TODO: Theme! fillMode: Image.PreserveAspectFit - source: - { - console.log(printer.type) - return "../png/"+printer.type+".png" - } + source: "../png/" + printer.type + ".png" mipmap: true } From 5ed2acadd09fa062553f0fc4fddd2a79610e1142 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 11:09:34 +0100 Subject: [PATCH 0564/1039] Re-add wizard_progress size I was a bit over enthosiastic deleting it as it was still used for the UMO first run wizard --- resources/themes/cura-light/theme.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d2358e36ff..dfad5cfd17 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -470,6 +470,7 @@ "modal_window_minimum": [60.0, 45], "license_window_minimum": [45, 45], + "wizard_progress": [10.0, 0.0], "message": [30.0, 5.0], "message_close": [1, 1], From d09d8a6ae34f75b3a7a3d6bc0a20add4671c7e9c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 11:18:36 +0100 Subject: [PATCH 0565/1039] Minor codestyle fixes CURA-5879 --- resources/qml/Menus/ProfileMenu.qml | 17 ++++++++--------- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index b503b7de85..fd46d2ef72 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -17,22 +17,21 @@ Menu MenuItem { - text: { - var full_text = (model.layer_height != "") ? model.name + " - " + model.layer_height + model.layer_height_unit : model.name; - full_text += model.is_experimental ? " - Experimental" : ""; - return full_text; + text: + { + var full_text = (model.layer_height != "") ? model.name + " - " + model.layer_height + model.layer_height_unit : model.name + full_text += model.is_experimental ? " - Experimental" : "" + return full_text } checkable: true checked: Cura.MachineManager.activeQualityOrQualityChangesName == model.name exclusiveGroup: group - onTriggered: { - Cura.MachineManager.setQualityGroup(model.quality_group) - } + onTriggered: Cura.MachineManager.setQualityGroup(model.quality_group) visible: model.available } - onObjectAdded: menu.insertItem(index, object); - onObjectRemoved: menu.removeItem(object); + onObjectAdded: menu.insertItem(index, object) + onObjectRemoved: menu.removeItem(object) } MenuSeparator diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 25c9a678c1..303383e6a4 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -480,7 +480,7 @@ "toolbox_footer_button": [8.0, 2.5], "toolbox_showcase_spacing": [1.0, 1.0], "toolbox_header_tab": [8.0, 4.0], - "toolbox_detail_header": [1.0, 14.0], + "toolbox_detail_header": [1.0, 14.0],https://github.com/Ultimaker/Cura/pull/4883 "toolbox_detail_tile": [1.0, 8.0], "toolbox_back_column": [6.0, 1.0], "toolbox_back_button": [4.0, 2.0], From d9c3faaae2e78e543cacfb19f8ba295b15540d38 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 11:19:37 +0100 Subject: [PATCH 0566/1039] Codestyle CURA-5879 --- resources/qml/Settings/SettingView.qml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 5d916aed7c..5d79eef249 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -64,14 +64,18 @@ Item activeFocusOnPress: true menu: ProfileMenu { } - function generateActiveQualityText () { - var result = Cura.MachineManager.activeQualityOrQualityChangesName; - if (Cura.MachineManager.isActiveQualityExperimental) { - result += " (Experimental)"; + function generateActiveQualityText () + { + var result = Cura.MachineManager.activeQualityOrQualityChangesName + if (Cura.MachineManager.isActiveQualityExperimental) + { + result += " (Experimental)" } - if (Cura.MachineManager.isActiveQualitySupported) { - if (Cura.MachineManager.activeQualityLayerHeight > 0) { + if (Cura.MachineManager.isActiveQualitySupported) + { + if (Cura.MachineManager.activeQualityLayerHeight > 0) + { result += " " result += " - " result += Cura.MachineManager.activeQualityLayerHeight + "mm" From c0d1c35a2ba8c20d8988c5e07dfce8eb9cff23ae Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 11:35:48 +0100 Subject: [PATCH 0567/1039] Removed accidental copy paste --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 303383e6a4..25c9a678c1 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -480,7 +480,7 @@ "toolbox_footer_button": [8.0, 2.5], "toolbox_showcase_spacing": [1.0, 1.0], "toolbox_header_tab": [8.0, 4.0], - "toolbox_detail_header": [1.0, 14.0],https://github.com/Ultimaker/Cura/pull/4883 + "toolbox_detail_header": [1.0, 14.0], "toolbox_detail_tile": [1.0, 8.0], "toolbox_back_column": [6.0, 1.0], "toolbox_back_button": [4.0, 2.0], From 0baa4d20b3f426fef2e40123c10c2a779dc28775 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 11:42:54 +0100 Subject: [PATCH 0568/1039] Gracefully handle the case where machine definition is no in the map --- cura/Machines/VariantManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/VariantManager.py b/cura/Machines/VariantManager.py index f6feb70e09..eaaa9fc5f0 100644 --- a/cura/Machines/VariantManager.py +++ b/cura/Machines/VariantManager.py @@ -107,7 +107,7 @@ class VariantManager: break return variant_node - return self._machine_to_variant_dict_map[machine_definition_id].get(variant_type, {}).get(variant_name) + return self._machine_to_variant_dict_map.get(machine_definition_id, {}).get(variant_type, {}).get(variant_name) def getVariantNodes(self, machine: "GlobalStack", variant_type: "VariantType") -> Dict[str, ContainerNode]: machine_definition_id = machine.definition.getId() From 7d42fdf183656e39e1f5a90e8436d5bb6e8d198d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 28 Nov 2018 11:52:30 +0100 Subject: [PATCH 0569/1039] Add missing typing --- cura/Scene/ConvexHullNode.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/cura/Scene/ConvexHullNode.py b/cura/Scene/ConvexHullNode.py index 4c79c7d5dc..886ed93ad3 100644 --- a/cura/Scene/ConvexHullNode.py +++ b/cura/Scene/ConvexHullNode.py @@ -1,7 +1,10 @@ # Copyright (c) 2015 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Optional from UM.Application import Application +from UM.Math.Polygon import Polygon +from UM.Qt.QtApplication import QtApplication from UM.Scene.SceneNode import SceneNode from UM.Resources import Resources from UM.Math.Color import Color @@ -16,7 +19,7 @@ class ConvexHullNode(SceneNode): # location an object uses on the buildplate. This area (or area's in case of one at a time printing) is # then displayed as a transparent shadow. If the adhesion type is set to raft, the area is extruded # to represent the raft as well. - def __init__(self, node, hull, thickness, parent = None): + def __init__(self, node: SceneNode, hull: Optional[Polygon], thickness: float, parent: Optional[SceneNode] = None) -> None: super().__init__(parent) self.setCalculateBoundingBox(False) @@ -25,7 +28,11 @@ class ConvexHullNode(SceneNode): # Color of the drawn convex hull if not Application.getInstance().getIsHeadLess(): - self._color = Color(*Application.getInstance().getTheme().getColor("convex_hull").getRgb()) + theme = QtApplication.getInstance().getTheme() + if theme: + self._color = Color(*theme.getColor("convex_hull").getRgb()) + else: + self._color = Color(0, 0, 0) else: self._color = Color(0, 0, 0) @@ -75,7 +82,7 @@ class ConvexHullNode(SceneNode): return True - def _onNodeDecoratorsChanged(self, node): + def _onNodeDecoratorsChanged(self, node: SceneNode) -> None: convex_hull_head = self._node.callDecoration("getConvexHullHead") if convex_hull_head: convex_hull_head_builder = MeshBuilder() From 14cee32ceccb85ae034c3f9cc5689822a249663c Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 28 Nov 2018 12:20:09 +0100 Subject: [PATCH 0570/1039] Improve monitor tab temporary scroll bar --- .../resources/qml/ClusterMonitorItem.qml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml index 6bbc338c17..adf5ea5e1c 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml @@ -52,12 +52,13 @@ Component id: printers anchors { - left: parent.left - right: parent.right + left: queue.left + right: queue.right top: parent.top topMargin: 48 * screenScaleFactor // TODO: Theme! } height: 264 * screenScaleFactor // TODO: Theme! + Row { spacing: 60 * screenScaleFactor // TODO: Theme! @@ -77,13 +78,13 @@ Component Item { id: queue + width: Math.min(834 * screenScaleFactor, maximumWidth) anchors { bottom: parent.bottom - left: parent.left - right: parent.right + horizontalCenter: parent.horizontalCenter top: printers.bottom - topMargin: 48 + topMargin: 48 * screenScaleFactor // TODO: Theme! } Label @@ -134,7 +135,6 @@ Component text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect") } } - MouseArea { @@ -217,7 +217,7 @@ Component } style: UM.Theme.styles.scrollview visible: OutputDevice.receivedPrintJobs - width: Math.min(834 * screenScaleFactor, maximumWidth) + width: parent.width ListView { @@ -244,5 +244,4 @@ Component visible: OutputDevice.activeCameraUrl != "" } } - } From 85b34d60053b5c2c3d2f6cf279d2ecc243c2929b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 28 Nov 2018 13:07:39 +0100 Subject: [PATCH 0571/1039] Refactor the PrintSetupSelector The file was splitted in several other files to improve readability. There is a new folder called PrintSetupSelector where all those files will be. Contributes to CURA-5941. --- plugins/PrepareStage/PrepareMenu.qml | 1 - resources/qml/PrintSetupSelector.qml | 392 ------------------ .../CustomPrintSetup.qml} | 4 +- .../PrintSetupSelector/PrintSetupSelector.qml | 68 +++ .../PrintSetupSelectorContents.qml | 276 ++++++++++++ .../PrintSetupSelectorHeader.qml | 69 +++ .../RecommendedPrintSetup.qml} | 8 +- 7 files changed, 419 insertions(+), 399 deletions(-) delete mode 100644 resources/qml/PrintSetupSelector.qml rename resources/qml/{SidebarAdvanced.qml => PrintSetupSelector/CustomPrintSetup.qml} (68%) create mode 100644 resources/qml/PrintSetupSelector/PrintSetupSelector.qml create mode 100644 resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml create mode 100644 resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml rename resources/qml/{SidebarSimple.qml => PrintSetupSelector/RecommendedPrintSetup.qml} (99%) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 10b4262f01..7c01b1f8b0 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -45,7 +45,6 @@ Item Cura.MachineSelector { id: machineSelection - z: openFileButton.z - 1 //Ensure that the tooltip of the open file button stays above the item row. headerCornerSide: Cura.RoundedRectangle.Direction.Left Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml deleted file mode 100644 index 253a13c0f0..0000000000 --- a/resources/qml/PrintSetupSelector.qml +++ /dev/null @@ -1,392 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 2.0 -import QtQuick.Layouts 1.3 - -import UM 1.3 as UM -import Cura 1.0 as Cura -import "Menus" -import "Menus/ConfigurationMenu" - -Cura.ExpandableComponent -{ - id: base - - property int currentModeIndex: -1 - property bool hideSettings: PrintInformation.preSliced - - property string enabledText: catalog.i18nc("@label:Should be short", "On") - property string disabledText: catalog.i18nc("@label:Should be short", "Off") - - // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. - signal showTooltip(Item item, point location, string text) - signal hideTooltip() - - implicitWidth: 200 * screenScaleFactor - height: childrenRect.height - iconSource: UM.Theme.getIcon("pencil") - - popupPadding : 0 - popupSpacingY: UM.Theme.getSize("narrow_margin").width - - popupClosePolicy: Popup.CloseOnEscape - - onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) - - Component.onCompleted: - { - popupItemWrapper.width = base.width - } - - UM.I18nCatalog - { - id: catalog - name: "cura" - } - - Timer - { - id: tooltipDelayTimer - interval: 500 - repeat: false - property var item - property string text - - onTriggered: base.showTooltip(base, {x: 0, y: item.y}, text) - } - - headerItem: RowLayout - { - anchors.fill: parent - - IconWithText - { - source: UM.Theme.getIcon("category_layer_height") - text: Cura.MachineManager.activeStack ? Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" : "" - - UM.SettingPropertyProvider - { - id: layerHeight - containerStack: Cura.MachineManager.activeStack - key: "layer_height" - watchedProperties: ["value"] - } - } - - IconWithText - { - source: UM.Theme.getIcon("category_infill") - text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%" - - UM.SettingPropertyProvider - { - id: infillDensity - containerStack: Cura.MachineManager.activeStack - key: "infill_sparse_density" - watchedProperties: ["value"] - } - } - - IconWithText - { - source: UM.Theme.getIcon("category_support") - text: supportEnabled.properties.value == "True" ? enabledText : disabledText - - - UM.SettingPropertyProvider - { - id: supportEnabled - containerStack: Cura.MachineManager.activeMachine - key: "support_enable" - watchedProperties: ["value"] - } - } - - IconWithText - { - source: UM.Theme.getIcon("category_adhesion") - text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText - - UM.SettingPropertyProvider - { - id: platformAdhesionType - containerStack: Cura.MachineManager.activeMachine - key: "adhesion_type" - watchedProperties: [ "value"] - } - } - } - - Cura.ExtrudersModel - { - id: extrudersModel - } - - popupItem: Rectangle - { - property var total_height: popupItemHeader.height + popupItemContent.height + footerControll.height + UM.Theme.getSize("narrow_margin").height * 2 - id: popupItemWrapper - height: total_height - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - - Item - { - id: popupItemHeader - height: 36 - - anchors - { - top: parent.top - right: parent.right - left: parent.left - } - - Label - { - id: popupItemHeaderText - text: catalog.i18nc("@label", "Print settings"); - font: UM.Theme.getFont("default") - renderType: Text.NativeRendering - verticalAlignment: Text.AlignVCenter - color: UM.Theme.getColor("text") - height: parent.height - - anchors - { - topMargin: UM.Theme.getSize("sidebar_margin").height - left: parent.left - leftMargin: UM.Theme.getSize("narrow_margin").height - } - } - - Rectangle - { - width: parent.width - height: UM.Theme.getSize("default_lining").height - anchors.top: popupItemHeaderText.bottom - color: UM.Theme.getColor("action_button_border") - - - } - - Button - { - id: closeButton; - width: UM.Theme.getSize("message_close").width; - height: UM.Theme.getSize("message_close").height; - - anchors - { - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - top: parent.top; - topMargin: 10 - } - - UM.RecolorImage - { - anchors.fill: parent; - sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("message_text") - source: UM.Theme.getIcon("cross1") - } - - onClicked: base.togglePopup() // Will hide the popup item - - background: Rectangle - { - color: UM.Theme.getColor("message_background") - } - } - } - - Rectangle - { - id: popupItemContent - width: parent.width - height: tabBar.height + sidebarContents.height - anchors - { - top: popupItemHeader.bottom - topMargin: UM.Theme.getSize("narrow_margin").height - right: parent.right - left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width - rightMargin: UM.Theme.getSize("default_margin").width - } - - UM.TabRow - { - id: tabBar - anchors.topMargin: UM.Theme.getSize("default_margin").height - onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) - z: 1 - Repeater - { - model: extrudersModel - delegate: UM.TabRowButton - { - contentItem: Rectangle - { - z: 2 - Cura.ExtruderIcon - { - anchors.horizontalCenter: parent.horizontalCenter - materialColor: model.color - extruderEnabled: model.enabled - width: parent.height - height: parent.height - } - } - - background: Rectangle - { - - width: parent.width - z: 1 - border.width: UM.Theme.getSize("default_lining").width * 2 - border.color: UM.Theme.getColor("action_button_border") - - visible: - { - return index == tabBar.currentIndex - } - - // overlap bottom border - Rectangle - { - width: parent.width - UM.Theme.getSize("default_lining").width * 4 - height: UM.Theme.getSize("default_lining").width * 4 - anchors.bottom: parent.bottom - anchors.bottomMargin: - (UM.Theme.getSize("default_lining").width * 2) - anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 - anchors.left: parent.left - - } - } - } - } - } - - Rectangle - { - id: sidebarContents - anchors.top: tabBar.bottom - anchors.bottom: parent.bottom - anchors.left: parent.left - anchors.right: parent.right - height: UM.Theme.getSize("print_setup_widget").height - - border.width: UM.Theme.getSize("default_lining").width * 2 - border.color: UM.Theme.getColor("action_button_border") - - SidebarSimple - { - anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height - anchors.fill: parent - visible: currentModeIndex != 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - - SidebarAdvanced - { - anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height - anchors.bottomMargin: 2 //don't overlap bottom border - anchors.fill: parent - visible: currentModeIndex == 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - } - } - - Item - { - id: footerControll - anchors.top: popupItemContent.bottom - anchors.topMargin: UM.Theme.getSize("narrow_margin").height * 2 - width: parent.width - height: settingControlButton.height + UM.Theme.getSize("default_lining").height * 4 - Rectangle - { - width: parent.width - height: UM.Theme.getSize("default_lining").height - color: UM.Theme.getColor("action_button_border") - } - - Cura.ActionButton - { - id: settingControlButton - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("action_panel_button").height - text: catalog.i18nc("@button", "Custom") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") - iconSourceRight: UM.Theme.getIcon("arrow_right") - width: UM.Theme.getSize("print_setup_action_button").width - fixedWidthMode: true - visible: currentModeIndex == 0 - anchors - { - top: parent.top - topMargin: UM.Theme.getSize("narrow_margin").height * 2 - bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 - right: parent.right - rightMargin: UM.Theme.getSize("narrow_margin").height - } - - onClicked: currentModeIndex = 1 - } - - Cura.ActionButton - { - height: UM.Theme.getSize("action_panel_button").height - text: catalog.i18nc("@button", "Recommended") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") - iconSource: UM.Theme.getIcon("arrow_left") - width: UM.Theme.getSize("print_setup_action_button").width - fixedWidthMode: true - visible: currentModeIndex == 1 - anchors - { - top: parent.top - topMargin: UM.Theme.getSize("narrow_margin").height * 2 - bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 - left: parent.left - leftMargin: UM.Theme.getSize("narrow_margin").height - } - - MouseArea { - anchors.fill: parent - onClicked: currentModeIndex = 0 - } - } - } - - Component.onCompleted: - { - var index = Math.round(UM.Preferences.getValue("cura/active_mode")) - - if(index != null && !isNaN(index)) - { - currentModeIndex = index - } - else - { - currentModeIndex = 0 - } - } - } -} \ No newline at end of file diff --git a/resources/qml/SidebarAdvanced.qml b/resources/qml/PrintSetupSelector/CustomPrintSetup.qml similarity index 68% rename from resources/qml/SidebarAdvanced.qml rename to resources/qml/PrintSetupSelector/CustomPrintSetup.qml index ff5f545c80..f58695b48f 100644 --- a/resources/qml/SidebarAdvanced.qml +++ b/resources/qml/PrintSetupSelector/CustomPrintSetup.qml @@ -1,10 +1,10 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 import QtQuick.Controls 2.0 -import "Settings" +import "../Settings" SettingView { } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml new file mode 100644 index 0000000000..c69dd56520 --- /dev/null +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -0,0 +1,68 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.0 + +import UM 1.3 as UM +import Cura 1.0 as Cura + +Cura.ExpandableComponent +{ + id: base + + property int currentModeIndex: -1 + property bool hideSettings: PrintInformation.preSliced + + property string enabledText: catalog.i18nc("@label:Should be short", "On") + property string disabledText: catalog.i18nc("@label:Should be short", "Off") + + // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. + signal showTooltip(Item item, point location, string text) + signal hideTooltip() + + iconSource: UM.Theme.getIcon("pencil") + popupPadding: UM.Theme.getSize("default_lining").width + popupSpacingY: UM.Theme.getSize("narrow_margin").width + + popupClosePolicy: Popup.CloseOnEscape + + onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) + + Component.onCompleted: + { + popupItemWrapper.width = base.width + } + + UM.I18nCatalog + { + id: catalog + name: "cura" + } + + Timer + { + id: tooltipDelayTimer + interval: 500 + repeat: false + property var item + property string text + + onTriggered: base.showTooltip(base, {x: 0, y: item.y}, text) + } + + headerItem: PrintSetupSelectorHeader + { + anchors.fill: parent + } + + Cura.ExtrudersModel + { + id: extrudersModel + } + + popupItem: PrintSetupSelectorContents + { + + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml new file mode 100644 index 0000000000..e7b3b94b11 --- /dev/null +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -0,0 +1,276 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 + +import UM 1.3 as UM +import Cura 1.0 as Cura + +Rectangle +{ + property var total_height: popupItemHeader.height + popupItemContent.height + footerControll.height + UM.Theme.getSize("narrow_margin").height * 2 + id: popupItemWrapper + height: total_height + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + + Item + { + id: popupItemHeader + height: 36 + + anchors + { + top: parent.top + right: parent.right + left: parent.left + } + + Label + { + id: popupItemHeaderText + text: catalog.i18nc("@label", "Print settings"); + font: UM.Theme.getFont("default") + renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter + color: UM.Theme.getColor("text") + height: parent.height + + anchors + { + topMargin: UM.Theme.getSize("sidebar_margin").height + left: parent.left + leftMargin: UM.Theme.getSize("narrow_margin").height + } + } + + Rectangle + { + width: parent.width + height: UM.Theme.getSize("default_lining").height + anchors.top: popupItemHeaderText.bottom + color: UM.Theme.getColor("action_button_border") + + + } + + Button + { + id: closeButton; + width: UM.Theme.getSize("message_close").width; + height: UM.Theme.getSize("message_close").height; + + anchors + { + right: parent.right; + rightMargin: UM.Theme.getSize("default_margin").width; + top: parent.top; + topMargin: 10 + } + + UM.RecolorImage + { + anchors.fill: parent; + sourceSize.width: width + sourceSize.height: width + color: UM.Theme.getColor("message_text") + source: UM.Theme.getIcon("cross1") + } + + onClicked: base.togglePopup() // Will hide the popup item + + background: Rectangle + { + color: UM.Theme.getColor("message_background") + } + } + } + + Rectangle + { + id: popupItemContent + width: parent.width + height: tabBar.height + sidebarContents.height + + anchors + { + top: popupItemHeader.bottom + topMargin: UM.Theme.getSize("narrow_margin").height + right: parent.right + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width + rightMargin: UM.Theme.getSize("default_margin").width + } + + UM.TabRow + { + id: tabBar + anchors.topMargin: UM.Theme.getSize("default_margin").height + onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) + z: 1 + Repeater + { + model: extrudersModel + delegate: UM.TabRowButton + { + contentItem: Rectangle + { + z: 2 + Cura.ExtruderIcon + { + anchors.horizontalCenter: parent.horizontalCenter + materialColor: model.color + extruderEnabled: model.enabled + width: parent.height + height: parent.height + } + } + + background: Rectangle + { + + width: parent.width + z: 1 + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: UM.Theme.getColor("action_button_border") + + visible: + { + return index == tabBar.currentIndex + } + + // overlap bottom border + Rectangle + { + width: parent.width - UM.Theme.getSize("default_lining").width * 4 + height: UM.Theme.getSize("default_lining").width * 4 + anchors.bottom: parent.bottom + anchors.bottomMargin: - (UM.Theme.getSize("default_lining").width * 2) + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 + anchors.left: parent.left + + } + } + } + } + } + + Rectangle + { + id: sidebarContents + anchors.top: tabBar.bottom + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + height: UM.Theme.getSize("print_setup_widget").height + + border.width: UM.Theme.getSize("default_lining").width * 2 + border.color: UM.Theme.getColor("action_button_border") + + RecommendedPrintSetup + { + anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height + anchors.fill: parent + visible: currentModeIndex != 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + } + + CustomPrintSetup + { + anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height + anchors.bottomMargin: 2 //don't overlap bottom border + anchors.fill: parent + visible: currentModeIndex == 1 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + } + } + } + + Item + { + id: footerControll + anchors.top: popupItemContent.bottom + anchors.topMargin: UM.Theme.getSize("narrow_margin").height * 2 + width: parent.width + height: settingControlButton.height + UM.Theme.getSize("default_lining").height * 4 + Rectangle + { + width: parent.width + height: UM.Theme.getSize("default_lining").height + color: UM.Theme.getColor("action_button_border") + } + + Cura.ActionButton + { + id: settingControlButton + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("action_panel_button").height + text: catalog.i18nc("@button", "Custom") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + iconSourceRight: UM.Theme.getIcon("arrow_right") + width: UM.Theme.getSize("print_setup_action_button").width + fixedWidthMode: true + visible: currentModeIndex == 0 + anchors + { + top: parent.top + topMargin: UM.Theme.getSize("narrow_margin").height * 2 + bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 + right: parent.right + rightMargin: UM.Theme.getSize("narrow_margin").height + } + + onClicked: currentModeIndex = 1 + } + + Cura.ActionButton + { + height: UM.Theme.getSize("action_panel_button").height + text: catalog.i18nc("@button", "Recommended") + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + iconSource: UM.Theme.getIcon("arrow_left") + width: UM.Theme.getSize("print_setup_action_button").width + fixedWidthMode: true + visible: currentModeIndex == 1 + anchors + { + top: parent.top + topMargin: UM.Theme.getSize("narrow_margin").height * 2 + bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 + left: parent.left + leftMargin: UM.Theme.getSize("narrow_margin").height + } + + MouseArea { + anchors.fill: parent + onClicked: currentModeIndex = 0 + } + } + } + + Component.onCompleted: + { + var index = Math.round(UM.Preferences.getValue("cura/active_mode")) + + if(index != null && !isNaN(index)) + { + currentModeIndex = index + } + else + { + currentModeIndex = 0 + } + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml new file mode 100644 index 0000000000..f8fb246085 --- /dev/null +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -0,0 +1,69 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 + +import UM 1.3 as UM +import Cura 1.0 as Cura + +RowLayout +{ + Cura.IconLabel + { + source: UM.Theme.getIcon("category_layer_height") + text: Cura.MachineManager.activeStack ? Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" : "" + + UM.SettingPropertyProvider + { + id: layerHeight + containerStack: Cura.MachineManager.activeStack + key: "layer_height" + watchedProperties: ["value"] + } + } + + Cura.IconLabel + { + source: UM.Theme.getIcon("category_infill") + text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%" + + UM.SettingPropertyProvider + { + id: infillDensity + containerStack: Cura.MachineManager.activeStack + key: "infill_sparse_density" + watchedProperties: ["value"] + } + } + + Cura.IconLabel + { + source: UM.Theme.getIcon("category_support") + text: supportEnabled.properties.value == "True" ? enabledText : disabledText + + + UM.SettingPropertyProvider + { + id: supportEnabled + containerStack: Cura.MachineManager.activeMachine + key: "support_enable" + watchedProperties: ["value"] + } + } + + Cura.IconLabel + { + source: UM.Theme.getIcon("category_adhesion") + text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText + + UM.SettingPropertyProvider + { + id: platformAdhesionType + containerStack: Cura.MachineManager.activeMachine + key: "adhesion_type" + watchedProperties: [ "value"] + } + } +} \ No newline at end of file diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml similarity index 99% rename from resources/qml/SidebarSimple.qml rename to resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml index f2e998f526..a11eae3218 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml @@ -188,7 +188,7 @@ Item } } - IconWithText + Cura.IconLabel { id: qualityRowTitle source: UM.Theme.getIcon("category_layer_height") @@ -496,7 +496,7 @@ Item width: Math.round(UM.Theme.getSize("print_setup_widget").width * .45) - UM.Theme.getSize("thick_margin").width - IconWithText + Cura.IconLabel { id: infillLabel source: UM.Theme.getIcon("category_infill") @@ -818,7 +818,7 @@ Item // // Enable support // - IconWithText + Cura.IconLabel { id: enableSupportLabel visible: enableSupportCheckBox.visible @@ -942,7 +942,7 @@ Item } - IconWithText + Cura.IconLabel { id: adhesionHelperLabel visible: adhesionCheckBox.visible From 0fdaebaaf83b3d34d94995dd628e246f63c8322c Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 28 Nov 2018 13:51:54 +0100 Subject: [PATCH 0572/1039] Updated action button CURA-5941 --- resources/qml/ActionButton.qml | 50 +++++++++++----------------- resources/qml/PrintSetupSelector.qml | 24 +++++++------ 2 files changed, 33 insertions(+), 41 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 732858c67f..e754365033 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -1,22 +1,17 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. - import QtQuick 2.7 import QtQuick.Controls 2.1 - import QtGraphicalEffects 1.0 // For the dropshadow - import UM 1.1 as UM - Button { id: button - property alias iconSource: buttonIcon.source - property alias iconSourceRight: buttonIconRight.source + property alias iconSource: buttonIconLeft.source + property var iconOnRightSide: false property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.text - property color color: UM.Theme.getColor("primary") property color hoverColor: UM.Theme.getColor("primary_hover") property color disabledColor: color @@ -26,33 +21,31 @@ Button property color outlineColor: color property color outlineHoverColor: hoverColor property color outlineDisabledColor: outlineColor - hoverEnabled: true - property alias shadowColor: shadow.color property alias shadowEnabled: shadow.visible - // This property is used to indicate whether the button has a fixed width or the width would depend on the contents // Be careful when using fixedWidthMode, the translated texts can be too long that they won't fit. In any case, // we elide the text to the right so the text will be cut off with the three dots at the end. property var fixedWidthMode: false - - width: buttonIcon.width + buttonText.width + buttonIconRight.width - contentItem: Item + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("action_button").height + contentItem: Row { + //Icon if displayed on the left side. UM.RecolorImage { - id: buttonIcon + id: buttonIconLeft source: "" - height: Math.round(0.6 * parent.height) - width: height + height: buttonText.height + width: visible ? height : 0 sourceSize.width: width sourceSize.height: height color: button.hovered ? button.textHoverColor : button.textColor - visible: source != "" + visible: source != "" && !button.iconOnRightSide anchors.verticalCenter: parent.verticalCenter } - Label { id: buttonText @@ -66,22 +59,21 @@ Button horizontalAlignment: Text.AlignHCenter elide: Text.ElideRight } - + //Icon if displayed on the right side. UM.RecolorImage { id: buttonIconRight - source: "" - height: Math.round(0.6 * parent.height) - width: height + source: buttonIconLeft.source + anchors.right: parent.right + height: buttonText.height + width: visible ? height : 0 sourceSize.width: width sourceSize.height: height - color: button.hovered ? button.textHoverColor : button.textColor - visible: source != "" - anchors.verticalCenter: parent.verticalCenter - anchors.right: source != "" ? parent.right : undefined + color: buttonIconLeft.color + visible: source != "" && button.iconOnRightSide + anchors.verticalCenter: buttonIconLeft.verticalCenter } } - background: Rectangle { id: backgroundRect @@ -90,7 +82,6 @@ Button border.width: UM.Theme.getSize("default_lining").width border.color: button.enabled ? (button.hovered ? button.outlineHoverColor : button.outlineColor) : button.outlineDisabledColor } - DropShadow { id: shadow @@ -103,7 +94,6 @@ Button // Should always be drawn behind the background. z: backgroundRect.z - 1 } - ToolTip { id: tooltip @@ -111,4 +101,4 @@ Button delay: 500 visible: text != "" && button.hovered } -} +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 253a13c0f0..85472bae8d 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -323,18 +323,9 @@ Cura.ExpandableComponent Cura.ActionButton { id: settingControlButton - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("action_panel_button").height - text: catalog.i18nc("@button", "Custom") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") - iconSourceRight: UM.Theme.getIcon("arrow_right") - width: UM.Theme.getSize("print_setup_action_button").width - fixedWidthMode: true visible: currentModeIndex == 0 + text: catalog.i18nc("@button", "Custom") + width: UM.Theme.getSize("print_setup_action_button").width anchors { top: parent.top @@ -344,6 +335,13 @@ Cura.ExpandableComponent rightMargin: UM.Theme.getSize("narrow_margin").height } + color: UM.Theme.getColor("secondary") + hoverColor: UM.Theme.getColor("secondary") + textColor: UM.Theme.getColor("primary") + textHoverColor: UM.Theme.getColor("text") + iconSource: UM.Theme.getIcon("arrow_right") + iconOnRightSide: true + onClicked: currentModeIndex = 1 } @@ -351,13 +349,17 @@ Cura.ExpandableComponent { height: UM.Theme.getSize("action_panel_button").height text: catalog.i18nc("@button", "Recommended") + color: UM.Theme.getColor("secondary") hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") + iconSource: UM.Theme.getIcon("arrow_left") + width: UM.Theme.getSize("print_setup_action_button").width fixedWidthMode: true + visible: currentModeIndex == 1 anchors { From 990c653af4eaf11e22dc49a9f9ea1c96d61a43d4 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 28 Nov 2018 17:29:25 +0100 Subject: [PATCH 0573/1039] Refactor the code a bit more to better align the components in the recommended mode. Contributes to CURA-5941. --- resources/qml/ActionButton.qml | 18 +- resources/qml/ExpandableComponent.qml | 2 +- resources/qml/IconLabel.qml | 5 +- .../PrintSetupSelector/PrintSetupSelector.qml | 13 +- .../PrintSetupSelectorContents.qml | 294 +-- .../PrintSetupSelectorHeader.qml | 8 +- .../RecommendedPrintSetup.qml | 2034 ++++++++--------- resources/qml/qmldir | 1 + resources/themes/cura-light/theme.json | 1 + 9 files changed, 1134 insertions(+), 1242 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 732858c67f..b9a04f3b46 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -12,7 +12,6 @@ Button { id: button property alias iconSource: buttonIcon.source - property alias iconSourceRight: buttonIconRight.source property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.text @@ -37,8 +36,7 @@ Button // we elide the text to the right so the text will be cut off with the three dots at the end. property var fixedWidthMode: false - width: buttonIcon.width + buttonText.width + buttonIconRight.width - contentItem: Item + contentItem: Row { UM.RecolorImage { @@ -66,20 +64,6 @@ Button horizontalAlignment: Text.AlignHCenter elide: Text.ElideRight } - - UM.RecolorImage - { - id: buttonIconRight - source: "" - height: Math.round(0.6 * parent.height) - width: height - sourceSize.width: width - sourceSize.height: height - color: button.hovered ? button.textHoverColor : button.textColor - visible: source != "" - anchors.verticalCenter: parent.verticalCenter - anchors.right: source != "" ? parent.right : undefined - } } background: Rectangle diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 897d44d941..0c3a8f80b9 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -74,7 +74,7 @@ Item function togglePopup() { - if(popup.visible) + if (popup.visible) { popup.close() } diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml index 0941254e7b..ee4a1254ec 100644 --- a/resources/qml/IconLabel.qml +++ b/resources/qml/IconLabel.qml @@ -2,8 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 -import QtQuick.Controls 2.1 -import QtQuick.Layouts 1.3 +import QtQuick.Controls 2.3 import UM 1.1 as UM @@ -48,7 +47,7 @@ Item text: "Empty label" elide: Text.ElideRight color: UM.Theme.getColor("text") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") renderType: Text.NativeRendering } } \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index c69dd56520..1794a54cdf 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -11,7 +11,6 @@ Cura.ExpandableComponent { id: base - property int currentModeIndex: -1 property bool hideSettings: PrintInformation.preSliced property string enabledText: catalog.i18nc("@label:Should be short", "On") @@ -27,13 +26,6 @@ Cura.ExpandableComponent popupClosePolicy: Popup.CloseOnEscape - onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) - - Component.onCompleted: - { - popupItemWrapper.width = base.width - } - UM.I18nCatalog { id: catalog @@ -61,8 +53,5 @@ Cura.ExpandableComponent id: extrudersModel } - popupItem: PrintSetupSelectorContents - { - - } + popupItem: PrintSetupSelectorContents {} } \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index e7b3b94b11..c36a0fbb80 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -3,24 +3,26 @@ import QtQuick 2.7 import QtQuick.Controls 2.3 -import QtQuick.Layouts 1.3 import UM 1.3 as UM import Cura 1.0 as Cura -Rectangle +Item { - property var total_height: popupItemHeader.height + popupItemContent.height + footerControll.height + UM.Theme.getSize("narrow_margin").height * 2 - id: popupItemWrapper - height: total_height + id: popup - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") + width: UM.Theme.getSize("print_setup_widget").width + height: childrenRect.height - Item + property int currentModeIndex: -1 + onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) + + // Header of the popup + Rectangle { - id: popupItemHeader - height: 36 + id: header + height: UM.Theme.getSize("print_setup_widget_header").height + color: UM.Theme.getColor("action_button_hovered") // TODO: It's not clear the color that we need to use here anchors { @@ -31,8 +33,8 @@ Rectangle Label { - id: popupItemHeaderText - text: catalog.i18nc("@label", "Print settings"); + id: headerLabel + text: catalog.i18nc("@label", "Print settings") font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter @@ -47,221 +49,153 @@ Rectangle } } - Rectangle - { - width: parent.width - height: UM.Theme.getSize("default_lining").height - anchors.top: popupItemHeaderText.bottom - color: UM.Theme.getColor("action_button_border") - - - } - Button { - id: closeButton; - width: UM.Theme.getSize("message_close").width; - height: UM.Theme.getSize("message_close").height; + id: closeButton + width: UM.Theme.getSize("message_close").width + height: UM.Theme.getSize("message_close").height anchors { - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - top: parent.top; - topMargin: 10 + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + verticalCenter: parent.verticalCenter } - UM.RecolorImage + contentItem: UM.RecolorImage { - anchors.fill: parent; + anchors.fill: parent sourceSize.width: width sourceSize.height: width color: UM.Theme.getColor("message_text") source: UM.Theme.getIcon("cross1") } - onClicked: base.togglePopup() // Will hide the popup item + background: Item {} - background: Rectangle - { - color: UM.Theme.getColor("message_background") - } + onClicked: togglePopup() // Will hide the popup item } } Rectangle { - id: popupItemContent - width: parent.width - height: tabBar.height + sidebarContents.height + id: topSeparator + anchors.bottom: header.bottom + width: parent.width + height: UM.Theme.getSize("default_lining").height + color: UM.Theme.getColor("lining") + } + + Loader + { + id: loader + width: parent.width anchors { - top: popupItemHeader.bottom - topMargin: UM.Theme.getSize("narrow_margin").height - right: parent.right - left: parent.left + top: header.bottom leftMargin: UM.Theme.getSize("default_margin").width rightMargin: UM.Theme.getSize("default_margin").width } + sourceComponent: currentModeIndex == 0 ? recommendedPrintSetup : customPrintSetup + } - UM.TabRow - { - id: tabBar - anchors.topMargin: UM.Theme.getSize("default_margin").height - onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) - z: 1 - Repeater - { - model: extrudersModel - delegate: UM.TabRowButton - { - contentItem: Rectangle - { - z: 2 - Cura.ExtruderIcon - { - anchors.horizontalCenter: parent.horizontalCenter - materialColor: model.color - extruderEnabled: model.enabled - width: parent.height - height: parent.height - } - } +// Item +// { +// id: content +// width: parent.width +// height: 100 +////// height: tabBar.height + sidebarContents.height +//// +// anchors +// { +// top: header.bottom +// leftMargin: UM.Theme.getSize("default_margin").width +// rightMargin: UM.Theme.getSize("default_margin").width +// } +//// +//// Rectangle +//// { +//// id: sidebarContents +//// anchors.top: tabBar.bottom +//// anchors.bottom: parent.bottom +//// anchors.left: parent.left +//// anchors.right: parent.right +//// height: UM.Theme.getSize("print_setup_widget").height +//// +//// border.width: UM.Theme.getSize("default_lining").width * 2 +//// border.color: UM.Theme.getColor("action_button_border") +//// } +// } - background: Rectangle - { + Rectangle + { + id: buttonsSeparator - width: parent.width - z: 1 - border.width: UM.Theme.getSize("default_lining").width * 2 - border.color: UM.Theme.getColor("action_button_border") - - visible: - { - return index == tabBar.currentIndex - } - - // overlap bottom border - Rectangle - { - width: parent.width - UM.Theme.getSize("default_lining").width * 4 - height: UM.Theme.getSize("default_lining").width * 4 - anchors.bottom: parent.bottom - anchors.bottomMargin: - (UM.Theme.getSize("default_lining").width * 2) - anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 - anchors.left: parent.left - - } - } - } - } - } - - Rectangle - { - id: sidebarContents - anchors.top: tabBar.bottom - anchors.bottom: parent.bottom - anchors.left: parent.left - anchors.right: parent.right - height: UM.Theme.getSize("print_setup_widget").height - - border.width: UM.Theme.getSize("default_lining").width * 2 - border.color: UM.Theme.getColor("action_button_border") - - RecommendedPrintSetup - { - anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height - anchors.fill: parent - visible: currentModeIndex != 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - - CustomPrintSetup - { - anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height - anchors.bottomMargin: 2 //don't overlap bottom border - anchors.fill: parent - visible: currentModeIndex == 1 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - } + anchors.top: loader.bottom + width: parent.width + height: UM.Theme.getSize("default_lining").height + color: UM.Theme.getColor("lining") } Item { - id: footerControll - anchors.top: popupItemContent.bottom - anchors.topMargin: UM.Theme.getSize("narrow_margin").height * 2 - width: parent.width - height: settingControlButton.height + UM.Theme.getSize("default_lining").height * 4 - Rectangle + id: buttonRow + height: childrenRect.height + + // The buttonsSeparator is inside the buttonRow. This is to avoid some weird behaviours with the scroll bar. + anchors { - width: parent.width - height: UM.Theme.getSize("default_lining").height - color: UM.Theme.getColor("action_button_border") + top: buttonsSeparator.top + left: parent.left + right: parent.right } - Cura.ActionButton + Cura.SecondaryButton { - id: settingControlButton + anchors.left: parent.left leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("action_panel_button").height - text: catalog.i18nc("@button", "Custom") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") - iconSourceRight: UM.Theme.getIcon("arrow_right") - width: UM.Theme.getSize("print_setup_action_button").width - fixedWidthMode: true - visible: currentModeIndex == 0 - anchors - { - top: parent.top - topMargin: UM.Theme.getSize("narrow_margin").height * 2 - bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 - right: parent.right - rightMargin: UM.Theme.getSize("narrow_margin").height - } - - onClicked: currentModeIndex = 1 + text: catalog.i18nc("@button", "Recommended") + visible: currentModeIndex == 1 + onClicked: currentModeIndex = 0 } - Cura.ActionButton + Cura.SecondaryButton { - height: UM.Theme.getSize("action_panel_button").height - text: catalog.i18nc("@button", "Recommended") - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") - iconSource: UM.Theme.getIcon("arrow_left") - width: UM.Theme.getSize("print_setup_action_button").width - fixedWidthMode: true - visible: currentModeIndex == 1 - anchors - { - top: parent.top - topMargin: UM.Theme.getSize("narrow_margin").height * 2 - bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 - left: parent.left - leftMargin: UM.Theme.getSize("narrow_margin").height - } - - MouseArea { - anchors.fill: parent - onClicked: currentModeIndex = 0 - } + anchors.right: parent.right + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@button", "Custom") + visible: currentModeIndex == 0 + onClicked: currentModeIndex = 1 } } + Component + { + id: recommendedPrintSetup + RecommendedPrintSetup + { + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + } + } + + Component + { + id: customPrintSetup + CustomPrintSetup + { + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + } + } + + Component.onCompleted: { + print(height, "!!!!!!!!!!!!!!!!!!!!!!!") var index = Math.round(UM.Preferences.getValue("cura/active_mode")) if(index != null && !isNaN(index)) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index f8fb246085..d4057289f6 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -10,7 +10,7 @@ import Cura 1.0 as Cura RowLayout { - Cura.IconLabel + Cura.IconWithText { source: UM.Theme.getIcon("category_layer_height") text: Cura.MachineManager.activeStack ? Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" : "" @@ -24,7 +24,7 @@ RowLayout } } - Cura.IconLabel + Cura.IconWithText { source: UM.Theme.getIcon("category_infill") text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%" @@ -38,7 +38,7 @@ RowLayout } } - Cura.IconLabel + Cura.IconWithText { source: UM.Theme.getIcon("category_support") text: supportEnabled.properties.value == "True" ? enabledText : disabledText @@ -53,7 +53,7 @@ RowLayout } } - Cura.IconLabel + Cura.IconWithText { source: UM.Theme.getIcon("category_adhesion") text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText diff --git a/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml index a11eae3218..5d195bdde4 100644 --- a/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml @@ -4,7 +4,6 @@ import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 -import QtQuick.Layouts 1.3 import UM 1.2 as UM import Cura 1.0 as Cura @@ -15,6 +14,7 @@ Item signal showTooltip(Item item, point location, string text) signal hideTooltip() + height: childrenRect.height property Action configureSettings @@ -26,1088 +26,1072 @@ Item name: "cura" } - ScrollView + // + // Quality profile + // + Item { - visible: Cura.MachineManager.activeMachineName != "" // If no printers added then the view is invisible - anchors.fill: parent - style: UM.Theme.styles.scrollview - flickableItem.flickableDirection: Flickable.VerticalFlick + id: qualityRow - Item + height: UM.Theme.getSize("thick_margin").height + anchors.topMargin: UM.Theme.getSize("thick_margin").height + anchors.left: parent.left + anchors.right: parent.right + + Timer { - width: childrenRect.width - height: childrenRect.height - - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - // - // Quality profile - // - Item + id: qualitySliderChangeTimer + interval: 50 + running: false + repeat: false + onTriggered: { - id: qualityRow + var item = Cura.QualityProfilesDropDownMenuModel.getItem(qualitySlider.value); + Cura.MachineManager.activeQualityGroup = item.quality_group; + } + } - height: UM.Theme.getSize("thick_margin").height - anchors.topMargin: UM.Theme.getSize("thick_margin").height - anchors.left: parent.left - anchors.right: parent.right + Component.onCompleted: qualityModel.update() - Timer + Connections + { + target: Cura.QualityProfilesDropDownMenuModel + onItemsChanged: qualityModel.update() + } + + Connections { + target: base + onVisibleChanged: + { + // update needs to be called when the widgets are visible, otherwise the step width calculation + // will fail because the width of an invisible item is 0. + if (visible) { - id: qualitySliderChangeTimer - interval: 50 - running: false - repeat: false - onTriggered: - { - var item = Cura.QualityProfilesDropDownMenuModel.getItem(qualitySlider.value); - Cura.MachineManager.activeQualityGroup = item.quality_group; - } + qualityModel.update(); } + } + } - Component.onCompleted: qualityModel.update() + ListModel + { + id: qualityModel - Connections + property var totalTicks: 0 + property var availableTotalTicks: 0 + property var existingQualityProfile: 0 + + property var qualitySliderActiveIndex: 0 + property var qualitySliderStepWidth: 0 + property var qualitySliderAvailableMin: 0 + property var qualitySliderAvailableMax: 0 + property var qualitySliderMarginRight: 0 + + function update () + { + reset() + + var availableMin = -1 + var availableMax = -1 + + for (var i = 0; i < Cura.QualityProfilesDropDownMenuModel.rowCount(); i++) { - target: Cura.QualityProfilesDropDownMenuModel - onItemsChanged: qualityModel.update() - } + var qualityItem = Cura.QualityProfilesDropDownMenuModel.getItem(i) - Connections { - target: base - onVisibleChanged: + // Add each quality item to the UI quality model + qualityModel.append(qualityItem) + + // Set selected value + if (Cura.MachineManager.activeQualityType == qualityItem.quality_type) { - // update needs to be called when the widgets are visible, otherwise the step width calculation - // will fail because the width of an invisible item is 0. - if (visible) + // set to -1 when switching to user created profile so all ticks are clickable + if (Cura.SimpleModeSettingsManager.isProfileUserCreated) { - qualityModel.update(); - } - } - } - - ListModel - { - id: qualityModel - - property var totalTicks: 0 - property var availableTotalTicks: 0 - property var existingQualityProfile: 0 - - property var qualitySliderActiveIndex: 0 - property var qualitySliderStepWidth: 0 - property var qualitySliderAvailableMin: 0 - property var qualitySliderAvailableMax: 0 - property var qualitySliderMarginRight: 0 - - function update () - { - reset() - - var availableMin = -1 - var availableMax = -1 - - for (var i = 0; i < Cura.QualityProfilesDropDownMenuModel.rowCount(); i++) - { - var qualityItem = Cura.QualityProfilesDropDownMenuModel.getItem(i) - - // Add each quality item to the UI quality model - qualityModel.append(qualityItem) - - // Set selected value - if (Cura.MachineManager.activeQualityType == qualityItem.quality_type) - { - // set to -1 when switching to user created profile so all ticks are clickable - if (Cura.SimpleModeSettingsManager.isProfileUserCreated) - { - qualityModel.qualitySliderActiveIndex = -1 - } - else - { - qualityModel.qualitySliderActiveIndex = i - } - - qualityModel.existingQualityProfile = 1 - } - - // Set min available - if (qualityItem.available && availableMin == -1) - { - availableMin = i - } - - // Set max available - if (qualityItem.available) - { - availableMax = i - } - } - - // Set total available ticks for active slider part - if (availableMin != -1) - { - qualityModel.availableTotalTicks = availableMax - availableMin + 1 - } - - // Calculate slider values - calculateSliderStepWidth(qualityModel.totalTicks) - calculateSliderMargins(availableMin, availableMax, qualityModel.totalTicks) - - qualityModel.qualitySliderAvailableMin = availableMin - qualityModel.qualitySliderAvailableMax = availableMax - } - - function calculateSliderStepWidth (totalTicks) - { - qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((base.width * 0.55) / (totalTicks)) : 0 - } - - function calculateSliderMargins (availableMin, availableMax, totalTicks) - { - if (availableMin == -1 || (availableMin == 0 && availableMax == 0)) - { - qualityModel.qualitySliderMarginRight = Math.round(base.width * 0.55) - } - else if (availableMin == availableMax) - { - qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMin) * qualitySliderStepWidth) + qualityModel.qualitySliderActiveIndex = -1 } else { - qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMax) * qualitySliderStepWidth) + qualityModel.qualitySliderActiveIndex = i } + + qualityModel.existingQualityProfile = 1 } - function reset () { - qualityModel.clear() - qualityModel.availableTotalTicks = 0 - qualityModel.existingQualityProfile = 0 + // Set min available + if (qualityItem.available && availableMin == -1) + { + availableMin = i + } - // check, the ticks count cannot be less than zero - qualityModel.totalTicks = Math.max(0, Cura.QualityProfilesDropDownMenuModel.rowCount() - 1) + // Set max available + if (qualityItem.available) + { + availableMax = i } } - Cura.IconLabel + // Set total available ticks for active slider part + if (availableMin != -1) { - id: qualityRowTitle - source: UM.Theme.getIcon("category_layer_height") - text: catalog.i18nc("@label", "Layer Height") - anchors.bottom: speedSlider.bottom + qualityModel.availableTotalTicks = availableMax - availableMin + 1 } - // Show titles for the each quality slider ticks - Item + // Calculate slider values + calculateSliderStepWidth(qualityModel.totalTicks) + calculateSliderMargins(availableMin, availableMax, qualityModel.totalTicks) + + qualityModel.qualitySliderAvailableMin = availableMin + qualityModel.qualitySliderAvailableMax = availableMax + } + + function calculateSliderStepWidth (totalTicks) + { + qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((base.width * 0.55) / (totalTicks)) : 0 + } + + function calculateSliderMargins (availableMin, availableMax, totalTicks) + { + if (availableMin == -1 || (availableMin == 0 && availableMax == 0)) { - anchors.left: speedSlider.left - anchors.top: speedSlider.bottom - Repeater - { - model: qualityModel - - Label - { - anchors.verticalCenter: parent.verticalCenter - anchors.top: parent.bottom - color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - text: - { - var result = "" - if(Cura.MachineManager.activeMachine != null) - { - result = Cura.QualityProfilesDropDownMenuModel.getItem(index).layer_height - - if(result == undefined) - { - result = ""; - } - else - { - result = Number(Math.round(result + "e+2") + "e-2"); //Round to 2 decimals. Javascript makes this difficult... - if (result == undefined || result != result) //Parse failure. - { - result = ""; - } - } - } - return result - } - - x: - { - // Make sure the text aligns correctly with each tick - if (qualityModel.totalTicks == 0) - { - // If there is only one tick, align it centrally - return Math.round(((base.width * 0.55) - width) / 2) - } - else if (index == 0) - { - return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index - } - else if (index == qualityModel.totalTicks) - { - return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index - width - } - else - { - return Math.round((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) - } - } - } - } + qualityModel.qualitySliderMarginRight = Math.round(base.width * 0.55) } - - //Print speed slider - Rectangle + else if (availableMin == availableMax) { - id: speedSlider - width: Math.round(base.width * 0.55) - height: UM.Theme.getSize("thick_margin").height - anchors.right: parent.right - anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("thick_margin").height - - // This Item is used only for tooltip, for slider area which is unavailable - Item - { - function showTooltip (showTooltip) - { - if (showTooltip) - { - var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) - } - else - { - base.hideTooltip() - } - } - - id: unavailableLineToolTip - height: 20 * screenScaleFactor // hovered area height - z: parent.z + 1 // should be higher, otherwise the area can be hovered - x: 0 - anchors.verticalCenter: qualitySlider.verticalCenter - - Rectangle - { - id: leftArea - width: - { - if (qualityModel.availableTotalTicks == 0) - { - return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks - } - return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 - } - height: parent.height - color: "transparent" - - MouseArea - { - anchors.fill: parent - hoverEnabled: true - enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false - onEntered: unavailableLineToolTip.showTooltip(true) - onExited: unavailableLineToolTip.showTooltip(false) - } - } - - Item - { - id: rightArea - width: - { - if(qualityModel.availableTotalTicks == 0) - return 0 - - return qualityModel.qualitySliderMarginRight - 10 - } - height: parent.height - x: - { - if (qualityModel.availableTotalTicks == 0) - { - return 0 - } - - var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 - - return totalGap - } - - MouseArea - { - anchors.fill: parent - hoverEnabled: true - enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false - onEntered: unavailableLineToolTip.showTooltip(true) - onExited: unavailableLineToolTip.showTooltip(false) - } - } - } - - // Draw Unavailable line - Rectangle - { - id: groovechildrect - width: Math.round(base.width * 0.55) - height: 2 * screenScaleFactor - color: UM.Theme.getColor("quality_slider_unavailable") - anchors.verticalCenter: qualitySlider.verticalCenter - x: 0 - } - - // Draw ticks - Repeater - { - id: qualityRepeater - model: qualityModel.totalTicks > 0 ? qualityModel : 0 - - Rectangle - { - color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - implicitWidth: 5 * screenScaleFactor - implicitHeight: implicitWidth - anchors.verticalCenter: qualitySlider.verticalCenter - x: Math.round(qualityModel.qualitySliderStepWidth * index) - radius: Math.round(implicitWidth / 2) - } - } - - Slider - { - id: qualitySlider - height: UM.Theme.getSize("thick_margin").height - anchors.bottom: speedSlider.bottom - enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized - visible: qualityModel.availableTotalTicks > 0 - updateValueWhileDragging : false - - minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 - // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly - // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) - maximumValue: qualityModel.qualitySliderAvailableMax >= 1 ? qualityModel.qualitySliderAvailableMax : 1 - stepSize: 1 - - value: qualityModel.qualitySliderActiveIndex - - width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) - - anchors.right: parent.right - anchors.rightMargin: qualityModel.qualitySliderMarginRight - - style: SliderStyle - { - //Draw Available line - groove: Rectangle - { - implicitHeight: 2 * screenScaleFactor - color: UM.Theme.getColor("quality_slider_available") - radius: Math.round(height / 2) - } - handle: Item - { - Rectangle - { - id: qualityhandleButton - anchors.centerIn: parent - color: UM.Theme.getColor("quality_slider_available") - implicitWidth: 10 * screenScaleFactor - implicitHeight: implicitWidth - radius: Math.round(implicitWidth / 2) - visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile - } - } - } - - onValueChanged: - { - // only change if an active machine is set and the slider is visible at all. - if (Cura.MachineManager.activeMachine != null && visible) - { - // prevent updating during view initializing. Trigger only if the value changed by user - if (qualitySlider.value != qualityModel.qualitySliderActiveIndex && qualityModel.qualitySliderActiveIndex != -1) - { - // start updating with short delay - qualitySliderChangeTimer.start() - } - } - } - } - - MouseArea - { - id: speedSliderMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated - - onEntered: - { - var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) - } - onExited: base.hideTooltip() - } + qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMin) * qualitySliderStepWidth) } - - UM.SimpleButton + else { - id: customisedSettings - - visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated - height: Math.round(speedSlider.height * 0.8) - width: Math.round(speedSlider.height * 0.8) - - anchors.verticalCenter: speedSlider.verticalCenter - anchors.right: speedSlider.left - anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - - color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); - iconSource: UM.Theme.getIcon("reset"); - - onClicked: - { - // if the current profile is user-created, switch to a built-in quality - Cura.MachineManager.resetToUseDefaultQuality() - } - onEntered: - { - var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) - } - onExited: base.hideTooltip() + qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMax) * qualitySliderStepWidth) } } - // - // Infill - // - Item - { - id: infillCellLeft + function reset () { + qualityModel.clear() + qualityModel.availableTotalTicks = 0 + qualityModel.existingQualityProfile = 0 - anchors.top: qualityRow.bottom - anchors.topMargin: UM.Theme.getSize("thick_margin").height * 2 - anchors.left: parent.left - - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .45) - UM.Theme.getSize("thick_margin").width - - Cura.IconLabel - { - id: infillLabel - source: UM.Theme.getIcon("category_infill") - text: catalog.i18nc("@label", "Infill") + " (%)" - - anchors - { - top: parent.top - topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7) - left: parent.left - } - } + // check, the ticks count cannot be less than zero + qualityModel.totalTicks = Math.max(0, Cura.QualityProfilesDropDownMenuModel.rowCount() - 1) } + } - Item + Cura.IconWithText + { + id: qualityRowTitle + source: UM.Theme.getIcon("category_layer_height") + text: catalog.i18nc("@label", "Layer Height") + anchors.bottom: speedSlider.bottom + } + + // Show titles for the each quality slider ticks + Item + { + anchors.left: speedSlider.left + anchors.top: speedSlider.bottom + Repeater { - id: infillCellRight - - height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - - anchors.left: infillCellLeft.right - anchors.top: infillCellLeft.top - anchors.topMargin: UM.Theme.getSize("thick_margin").height - - Label { - id: selectedInfillRateText - - anchors.left: infillSlider.left - anchors.right: parent.right - - text: parseInt(infillDensity.properties.value) + "%" - horizontalAlignment: Text.AlignLeft - - color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - } - - // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider - Binding - { - target: infillSlider - property: "value" - value: parseInt(infillDensity.properties.value) - } - - Slider - { - id: infillSlider - - anchors.top: selectedInfillRateText.bottom - anchors.left: parent.left - anchors.right: infillIcon.left - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - - height: UM.Theme.getSize("thick_margin").height - width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) - - minimumValue: 0 - maximumValue: 100 - stepSize: 1 - tickmarksEnabled: true - - // disable slider when gradual support is enabled - enabled: parseInt(infillSteps.properties.value) == 0 - - // set initial value from stack - value: parseInt(infillDensity.properties.value) - - onValueChanged: - { - - // Don't round the value if it's already the same - if (parseInt(infillDensity.properties.value) == infillSlider.value) - { - return - } - - // Round the slider value to the nearest multiple of 10 (simulate step size of 10) - var roundedSliderValue = Math.round(infillSlider.value / 10) * 10 - - // Update the slider value to represent the rounded value - infillSlider.value = roundedSliderValue - - // Update value only if the Recomended mode is Active, - // Otherwise if I change the value in the Custom mode the Recomended view will try to repeat - // same operation - var active_mode = UM.Preferences.getValue("cura/active_mode") - - if (active_mode == 0 || active_mode == "simple") - { - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue) - Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance") - } - } - - style: SliderStyle - { - groove: Rectangle - { - id: groove - implicitWidth: 200 * screenScaleFactor - implicitHeight: 2 * screenScaleFactor - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - radius: 1 - } - - handle: Item - { - Rectangle - { - id: handleButton - anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - implicitWidth: 10 * screenScaleFactor - implicitHeight: 10 * screenScaleFactor - radius: 10 * screenScaleFactor - } - } - - tickmarks: Repeater - { - id: repeater - model: control.maximumValue / control.stepSize + 1 - - // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) - function shouldShowTick (index) - { - if (index % 10 == 0) - { - return true - } - return false - } - - Rectangle - { - anchors.verticalCenter: parent.verticalCenter - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - width: 1 * screenScaleFactor - height: 6 * screenScaleFactor - x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) - visible: shouldShowTick(index) - } - } - } - } - - Rectangle - { - id: infillIcon - - width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) - height: width - - anchors.right: parent.right - anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) - - // we loop over all density icons and only show the one that has the current density and steps - Repeater - { - id: infillIconList - model: infillModel - anchors.fill: parent - - function activeIndex () - { - for (var i = 0; i < infillModel.count; i++) - { - var density = Math.round(infillDensity.properties.value) - var steps = Math.round(infillSteps.properties.value) - var infillModelItem = infillModel.get(i) - - if (infillModelItem != "undefined" - && density >= infillModelItem.percentageMin - && density <= infillModelItem.percentageMax - && steps >= infillModelItem.stepsMin - && steps <= infillModelItem.stepsMax) - { - return i - } - } - return -1 - } - - Rectangle - { - anchors.fill: parent - visible: infillIconList.activeIndex() == index - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("quality_slider_unavailable") - - UM.RecolorImage - { - anchors.fill: parent - anchors.margins: 2 * screenScaleFactor - sourceSize.width: width - sourceSize.height: width - source: UM.Theme.getIcon(model.icon) - color: UM.Theme.getColor("quality_slider_unavailable") - } - } - } - } - - // Gradual Support Infill Checkbox - CheckBox - { - id: enableGradualInfillCheckBox - property alias _hovered: enableGradualInfillMouseArea.containsMouse - - anchors.top: infillSlider.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category - anchors.left: infillCellRight.left - - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - visible: infillSteps.properties.enabled == "True" - checked: parseInt(infillSteps.properties.value) > 0 - - MouseArea - { - id: enableGradualInfillMouseArea - - anchors.fill: parent - hoverEnabled: true - enabled: true - - property var previousInfillDensity: parseInt(infillDensity.properties.value) - - onClicked: - { - // Set to 90% only when enabling gradual infill - var newInfillDensity; - if (parseInt(infillSteps.properties.value) == 0) - { - previousInfillDensity = parseInt(infillDensity.properties.value) - newInfillDensity = 90 - } else { - newInfillDensity = previousInfillDensity - } - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) - - var infill_steps_value = 0 - if (parseInt(infillSteps.properties.value) == 0) - { - infill_steps_value = 5 - } - - Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) - } - - onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), - catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) - - onExited: base.hideTooltip() - - } - - Label - { - id: gradualInfillLabel - height: parent.height - anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - verticalAlignment: Text.AlignVCenter; - text: catalog.i18nc("@label", "Enable gradual") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - } - - // Infill list model for mapping icon - ListModel - { - id: infillModel - Component.onCompleted: - { - infillModel.append({ - percentageMin: -1, - percentageMax: 0, - stepsMin: -1, - stepsMax: 0, - icon: "hollow" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 40, - stepsMin: -1, - stepsMax: 0, - icon: "sparse" - }) - infillModel.append({ - percentageMin: 40, - percentageMax: 89, - stepsMin: -1, - stepsMax: 0, - icon: "dense" - }) - infillModel.append({ - percentageMin: 90, - percentageMax: 9999999999, - stepsMin: -1, - stepsMax: 0, - icon: "solid" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 9999999999, - stepsMin: 1, - stepsMax: 9999999999, - icon: "gradual" - }) - } - } - } - - // - // Enable support - // - Cura.IconLabel - { - id: enableSupportLabel - visible: enableSupportCheckBox.visible - source: UM.Theme.getIcon("category_support") - text: catalog.i18nc("@label", "Support") - - anchors - { - top: infillCellRight.bottom - topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5) - left: parent.left - right: infillCellLeft.right - rightMargin: UM.Theme.getSize("thick_margin").width - verticalCenter: enableSupportCheckBox.verticalCenter - } - } - - CheckBox - { - id: enableSupportCheckBox - property alias _hovered: enableSupportMouseArea.containsMouse - - anchors.top: enableSupportLabel.top - anchors.left: infillCellRight.left - - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - - visible: supportEnabled.properties.enabled == "True" - checked: supportEnabled.properties.value == "True" - - MouseArea - { - id: enableSupportMouseArea - anchors.fill: parent - hoverEnabled: true - onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") - - onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), - catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) - - onExited: base.hideTooltip() - - } - } - - ComboBox - { - id: supportExtruderCombobox - visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) - model: extruderModel - - property string color_override: "" // for manually setting values - property string color: // is evaluated automatically, but the first time is before extruderModel being filled - { - var current_extruder = extruderModel.get(currentIndex); - color_override = ""; - if (current_extruder === undefined) return "" - return (current_extruder.color) ? current_extruder.color : ""; - } - - textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started - - anchors.top: enableSupportCheckBox.top - - anchors.left: enableSupportCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width - height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 - - Behavior on height { NumberAnimation { duration: 100 } } - - style: UM.Theme.styles.combobox_color - enabled: base.settingsEnabled - property alias _hovered: supportExtruderMouseArea.containsMouse - - currentIndex: - { - if (supportExtruderNr.properties == null) - { - return Cura.MachineManager.defaultExtruderPosition - } - else - { - var extruder = parseInt(supportExtruderNr.properties.value) - if ( extruder === -1) - { - return Cura.MachineManager.defaultExtruderPosition - } - return extruder; - } - } - - onActivated: supportExtruderNr.setPropertyValue("value", String(index)) - - MouseArea - { - id: supportExtruderMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - acceptedButtons: Qt.NoButton - onEntered: - { - base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), - catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); - } - onExited: base.hideTooltip() - - } - - function updateCurrentColor() - { - var current_extruder = extruderModel.get(currentIndex) - if (current_extruder !== undefined) - { - supportExtruderCombobox.color_override = current_extruder.color - } - } - - } - - Cura.IconLabel - { - id: adhesionHelperLabel - visible: adhesionCheckBox.visible - source: UM.Theme.getIcon("category_adhesion") - text: catalog.i18nc("@label", "Adhesion") - - anchors - { - left: parent.left - right: infillCellLeft.right - rightMargin: UM.Theme.getSize("thick_margin").width - verticalCenter: adhesionCheckBox.verticalCenter - } - } - - CheckBox - { - id: adhesionCheckBox - property alias _hovered: adhesionMouseArea.containsMouse - - anchors.top: enableSupportCheckBox.bottom - anchors.topMargin: UM.Theme.getSize("thick_margin").height - anchors.left: infillCellRight.left - - //: Setting enable printing build-plate adhesion helper checkbox - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - - visible: platformAdhesionType.properties.enabled == "True" - checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" - - MouseArea - { - id: adhesionMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - onClicked: - { - var adhesionType = "skirt" - if(!parent.checked) - { - // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft - platformAdhesionType.removeFromContainer(0) - adhesionType = platformAdhesionType.properties.value - if(adhesionType == "skirt" || adhesionType == "none") - { - // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim - adhesionType = "brim" - } - } - platformAdhesionType.setPropertyValue("value", adhesionType) - } - onEntered: - { - base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), - catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); - } - onExited: base.hideTooltip() - - } - } - - ListModel - { - id: extruderModel - Component.onCompleted: populateExtruderModel() - } - - //: Model used to populate the extrudelModel - Cura.ExtrudersModel - { - id: extruders - onModelChanged: populateExtruderModel() - } - - Item - { - id: tipsCell - anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 2) - anchors.left: parent.left - width: parent.width - height: tipsText.contentHeight * tipsText.lineCount + model: qualityModel Label { - id: tipsText - anchors.left: parent.left - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - anchors.top: parent.top - wrapMode: Text.WordWrap - text: catalog.i18nc("@label", "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting") - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - linkColor: UM.Theme.getColor("text_link") - onLinkActivated: Qt.openUrlExternally(link) + anchors.verticalCenter: parent.verticalCenter + anchors.top: parent.bottom + color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + text: + { + var result = "" + if(Cura.MachineManager.activeMachine != null) + { + result = Cura.QualityProfilesDropDownMenuModel.getItem(index).layer_height + + if(result == undefined) + { + result = ""; + } + else + { + result = Number(Math.round(result + "e+2") + "e-2"); //Round to 2 decimals. Javascript makes this difficult... + if (result == undefined || result != result) //Parse failure. + { + result = ""; + } + } + } + return result + } + + x: + { + // Make sure the text aligns correctly with each tick + if (qualityModel.totalTicks == 0) + { + // If there is only one tick, align it centrally + return Math.round(((base.width * 0.55) - width) / 2) + } + else if (index == 0) + { + return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index + } + else if (index == qualityModel.totalTicks) + { + return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index - width + } + else + { + return Math.round((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) + } + } + } + } + } + + //Print speed slider + Rectangle + { + id: speedSlider + width: Math.round(base.width * 0.55) + height: UM.Theme.getSize("thick_margin").height + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("thick_margin").height + + // This Item is used only for tooltip, for slider area which is unavailable + Item + { + function showTooltip (showTooltip) + { + if (showTooltip) + { + var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) + } + else + { + base.hideTooltip() + } + } + + id: unavailableLineToolTip + height: 20 * screenScaleFactor // hovered area height + z: parent.z + 1 // should be higher, otherwise the area can be hovered + x: 0 + anchors.verticalCenter: qualitySlider.verticalCenter + + Rectangle + { + id: leftArea + width: + { + if (qualityModel.availableTotalTicks == 0) + { + return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks + } + return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 + } + height: parent.height + color: "transparent" + + MouseArea + { + anchors.fill: parent + hoverEnabled: true + enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false + onEntered: unavailableLineToolTip.showTooltip(true) + onExited: unavailableLineToolTip.showTooltip(false) + } + } + + Item + { + id: rightArea + width: + { + if(qualityModel.availableTotalTicks == 0) + return 0 + + return qualityModel.qualitySliderMarginRight - 10 + } + height: parent.height + x: + { + if (qualityModel.availableTotalTicks == 0) + { + return 0 + } + + var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin + var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 + + return totalGap + } + + MouseArea + { + anchors.fill: parent + hoverEnabled: true + enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false + onEntered: unavailableLineToolTip.showTooltip(true) + onExited: unavailableLineToolTip.showTooltip(false) + } } } - UM.SettingPropertyProvider + // Draw Unavailable line + Rectangle { - id: infillExtruderNumber - containerStackId: Cura.MachineManager.activeStackId - key: "infill_extruder_nr" - watchedProperties: [ "value" ] - storeIndex: 0 + id: groovechildrect + width: Math.round(base.width * 0.55) + height: 2 * screenScaleFactor + color: UM.Theme.getColor("quality_slider_unavailable") + anchors.verticalCenter: qualitySlider.verticalCenter + x: 0 } - UM.SettingPropertyProvider + // Draw ticks + Repeater { - id: infillDensity - containerStackId: Cura.MachineManager.activeStackId - key: "infill_sparse_density" - watchedProperties: [ "value" ] - storeIndex: 0 + id: qualityRepeater + model: qualityModel.totalTicks > 0 ? qualityModel : 0 + + Rectangle + { + color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 5 * screenScaleFactor + implicitHeight: implicitWidth + anchors.verticalCenter: qualitySlider.verticalCenter + x: Math.round(qualityModel.qualitySliderStepWidth * index) + radius: Math.round(implicitWidth / 2) + } } - UM.SettingPropertyProvider + Slider { - id: infillSteps - containerStackId: Cura.MachineManager.activeStackId - key: "gradual_infill_steps" - watchedProperties: ["value", "enabled"] - storeIndex: 0 + id: qualitySlider + height: UM.Theme.getSize("thick_margin").height + anchors.bottom: speedSlider.bottom + enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized + visible: qualityModel.availableTotalTicks > 0 + updateValueWhileDragging : false + + minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 + // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly + // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) + maximumValue: qualityModel.qualitySliderAvailableMax >= 1 ? qualityModel.qualitySliderAvailableMax : 1 + stepSize: 1 + + value: qualityModel.qualitySliderActiveIndex + + width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) + + anchors.right: parent.right + anchors.rightMargin: qualityModel.qualitySliderMarginRight + + style: SliderStyle + { + //Draw Available line + groove: Rectangle + { + implicitHeight: 2 * screenScaleFactor + color: UM.Theme.getColor("quality_slider_available") + radius: Math.round(height / 2) + } + handle: Item + { + Rectangle + { + id: qualityhandleButton + anchors.centerIn: parent + color: UM.Theme.getColor("quality_slider_available") + implicitWidth: 10 * screenScaleFactor + implicitHeight: implicitWidth + radius: Math.round(implicitWidth / 2) + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile + } + } + } + + onValueChanged: + { + // only change if an active machine is set and the slider is visible at all. + if (Cura.MachineManager.activeMachine != null && visible) + { + // prevent updating during view initializing. Trigger only if the value changed by user + if (qualitySlider.value != qualityModel.qualitySliderActiveIndex && qualityModel.qualitySliderActiveIndex != -1) + { + // start updating with short delay + qualitySliderChangeTimer.start() + } + } + } } - UM.SettingPropertyProvider + MouseArea { - id: platformAdhesionType - containerStack: Cura.MachineManager.activeMachine - removeUnusedValue: false //Doesn't work with settings that are resolved. - key: "adhesion_type" - watchedProperties: [ "value", "enabled" ] - storeIndex: 0 - } + id: speedSliderMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated - UM.SettingPropertyProvider - { - id: supportEnabled - containerStack: Cura.MachineManager.activeMachine - key: "support_enable" - watchedProperties: [ "value", "enabled", "description" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: extrudersEnabledCount - containerStack: Cura.MachineManager.activeMachine - key: "extruders_enabled_count" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: supportExtruderNr - containerStack: Cura.MachineManager.activeMachine - key: "support_extruder_nr" - watchedProperties: [ "value" ] - storeIndex: 0 + onEntered: + { + var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) + } + onExited: base.hideTooltip() } } + + UM.SimpleButton + { + id: customisedSettings + + visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated + height: Math.round(speedSlider.height * 0.8) + width: Math.round(speedSlider.height * 0.8) + + anchors.verticalCenter: speedSlider.verticalCenter + anchors.right: speedSlider.left + anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); + iconSource: UM.Theme.getIcon("reset"); + + onClicked: + { + // if the current profile is user-created, switch to a built-in quality + Cura.MachineManager.resetToUseDefaultQuality() + } + onEntered: + { + var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) + } + onExited: base.hideTooltip() + } + } + + // + // Infill + // + Item + { + id: infillCellLeft + + anchors.top: qualityRow.bottom + anchors.topMargin: UM.Theme.getSize("thick_margin").height * 2 + anchors.left: parent.left + + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .45) - UM.Theme.getSize("thick_margin").width + + Cura.IconWithText + { + id: infillLabel + source: UM.Theme.getIcon("category_infill") + text: catalog.i18nc("@label", "Infill") + " (%)" + + anchors + { + top: parent.top + topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7) + left: parent.left + } + } + } + + Item + { + id: infillCellRight + + height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) + + anchors.left: infillCellLeft.right + anchors.top: infillCellLeft.top + anchors.topMargin: UM.Theme.getSize("thick_margin").height + + Label { + id: selectedInfillRateText + + anchors.left: infillSlider.left + anchors.right: parent.right + + text: parseInt(infillDensity.properties.value) + "%" + horizontalAlignment: Text.AlignLeft + + color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + } + + // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider + Binding + { + target: infillSlider + property: "value" + value: parseInt(infillDensity.properties.value) + } + + Slider + { + id: infillSlider + + anchors.top: selectedInfillRateText.bottom + anchors.left: parent.left + anchors.right: infillIcon.left + anchors.rightMargin: UM.Theme.getSize("thick_margin").width + + height: UM.Theme.getSize("thick_margin").height + width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) + + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + tickmarksEnabled: true + + // disable slider when gradual support is enabled + enabled: parseInt(infillSteps.properties.value) == 0 + + // set initial value from stack + value: parseInt(infillDensity.properties.value) + + onValueChanged: + { + + // Don't round the value if it's already the same + if (parseInt(infillDensity.properties.value) == infillSlider.value) + { + return + } + + // Round the slider value to the nearest multiple of 10 (simulate step size of 10) + var roundedSliderValue = Math.round(infillSlider.value / 10) * 10 + + // Update the slider value to represent the rounded value + infillSlider.value = roundedSliderValue + + // Update value only if the Recomended mode is Active, + // Otherwise if I change the value in the Custom mode the Recomended view will try to repeat + // same operation + var active_mode = UM.Preferences.getValue("cura/active_mode") + + if (active_mode == 0 || active_mode == "simple") + { + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue) + Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance") + } + } + + style: SliderStyle + { + groove: Rectangle + { + id: groove + implicitWidth: 200 * screenScaleFactor + implicitHeight: 2 * screenScaleFactor + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + radius: 1 + } + + handle: Item + { + Rectangle + { + id: handleButton + anchors.centerIn: parent + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 10 * screenScaleFactor + implicitHeight: 10 * screenScaleFactor + radius: 10 * screenScaleFactor + } + } + + tickmarks: Repeater + { + id: repeater + model: control.maximumValue / control.stepSize + 1 + + // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) + function shouldShowTick (index) + { + if (index % 10 == 0) + { + return true + } + return false + } + + Rectangle + { + anchors.verticalCenter: parent.verticalCenter + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + width: 1 * screenScaleFactor + height: 6 * screenScaleFactor + x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) + visible: shouldShowTick(index) + } + } + } + } + + Rectangle + { + id: infillIcon + + width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) + height: width + + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) + + // we loop over all density icons and only show the one that has the current density and steps + Repeater + { + id: infillIconList + model: infillModel + anchors.fill: parent + + function activeIndex () + { + for (var i = 0; i < infillModel.count; i++) + { + var density = Math.round(infillDensity.properties.value) + var steps = Math.round(infillSteps.properties.value) + var infillModelItem = infillModel.get(i) + + if (infillModelItem != "undefined" + && density >= infillModelItem.percentageMin + && density <= infillModelItem.percentageMax + && steps >= infillModelItem.stepsMin + && steps <= infillModelItem.stepsMax) + { + return i + } + } + return -1 + } + + Rectangle + { + anchors.fill: parent + visible: infillIconList.activeIndex() == index + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("quality_slider_unavailable") + + UM.RecolorImage + { + anchors.fill: parent + anchors.margins: 2 * screenScaleFactor + sourceSize.width: width + sourceSize.height: width + source: UM.Theme.getIcon(model.icon) + color: UM.Theme.getColor("quality_slider_unavailable") + } + } + } + } + + // Gradual Support Infill Checkbox + CheckBox + { + id: enableGradualInfillCheckBox + property alias _hovered: enableGradualInfillMouseArea.containsMouse + + anchors.top: infillSlider.bottom + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category + anchors.left: infillCellRight.left + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + visible: infillSteps.properties.enabled == "True" + checked: parseInt(infillSteps.properties.value) > 0 + + MouseArea + { + id: enableGradualInfillMouseArea + + anchors.fill: parent + hoverEnabled: true + enabled: true + + property var previousInfillDensity: parseInt(infillDensity.properties.value) + + onClicked: + { + // Set to 90% only when enabling gradual infill + var newInfillDensity; + if (parseInt(infillSteps.properties.value) == 0) + { + previousInfillDensity = parseInt(infillDensity.properties.value) + newInfillDensity = 90 + } else { + newInfillDensity = previousInfillDensity + } + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) + + var infill_steps_value = 0 + if (parseInt(infillSteps.properties.value) == 0) + { + infill_steps_value = 5 + } + + Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) + } + + onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), + catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) + + onExited: base.hideTooltip() + + } + + Label + { + id: gradualInfillLabel + height: parent.height + anchors.left: enableGradualInfillCheckBox.right + anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) + verticalAlignment: Text.AlignVCenter; + text: catalog.i18nc("@label", "Enable gradual") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + } + + // Infill list model for mapping icon + ListModel + { + id: infillModel + Component.onCompleted: + { + infillModel.append({ + percentageMin: -1, + percentageMax: 0, + stepsMin: -1, + stepsMax: 0, + icon: "hollow" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 40, + stepsMin: -1, + stepsMax: 0, + icon: "sparse" + }) + infillModel.append({ + percentageMin: 40, + percentageMax: 89, + stepsMin: -1, + stepsMax: 0, + icon: "dense" + }) + infillModel.append({ + percentageMin: 90, + percentageMax: 9999999999, + stepsMin: -1, + stepsMax: 0, + icon: "solid" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 9999999999, + stepsMin: 1, + stepsMax: 9999999999, + icon: "gradual" + }) + } + } + } + + // + // Enable support + // + Cura.IconWithText + { + id: enableSupportLabel + visible: enableSupportCheckBox.visible + source: UM.Theme.getIcon("category_support") + text: catalog.i18nc("@label", "Support") + + anchors + { + top: infillCellRight.bottom + topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5) + left: parent.left + right: infillCellLeft.right + rightMargin: UM.Theme.getSize("thick_margin").width + verticalCenter: enableSupportCheckBox.verticalCenter + } + } + + CheckBox + { + id: enableSupportCheckBox + property alias _hovered: enableSupportMouseArea.containsMouse + + anchors.top: enableSupportLabel.top + anchors.left: infillCellRight.left + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + + visible: supportEnabled.properties.enabled == "True" + checked: supportEnabled.properties.value == "True" + + MouseArea + { + id: enableSupportMouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") + + onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), + catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) + + onExited: base.hideTooltip() + + } + } + + ComboBox + { + id: supportExtruderCombobox + visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) + model: extruderModel + + property string color_override: "" // for manually setting values + property string color: // is evaluated automatically, but the first time is before extruderModel being filled + { + var current_extruder = extruderModel.get(currentIndex); + color_override = ""; + if (current_extruder === undefined) return "" + return (current_extruder.color) ? current_extruder.color : ""; + } + + textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started + + anchors.top: enableSupportCheckBox.top + + anchors.left: enableSupportCheckBox.right + anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) + + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width + height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 + + Behavior on height { NumberAnimation { duration: 100 } } + + style: UM.Theme.styles.combobox_color + enabled: base.settingsEnabled + property alias _hovered: supportExtruderMouseArea.containsMouse + + currentIndex: + { + if (supportExtruderNr.properties == null) + { + return Cura.MachineManager.defaultExtruderPosition + } + else + { + var extruder = parseInt(supportExtruderNr.properties.value) + if ( extruder === -1) + { + return Cura.MachineManager.defaultExtruderPosition + } + return extruder; + } + } + + onActivated: supportExtruderNr.setPropertyValue("value", String(index)) + + MouseArea + { + id: supportExtruderMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + acceptedButtons: Qt.NoButton + onEntered: + { + base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), + catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); + } + onExited: base.hideTooltip() + + } + + function updateCurrentColor() + { + var current_extruder = extruderModel.get(currentIndex) + if (current_extruder !== undefined) + { + supportExtruderCombobox.color_override = current_extruder.color + } + } + + } + + Cura.IconWithText + { + id: adhesionHelperLabel + visible: adhesionCheckBox.visible + source: UM.Theme.getIcon("category_adhesion") + text: catalog.i18nc("@label", "Adhesion") + + anchors + { + left: parent.left + right: infillCellLeft.right + rightMargin: UM.Theme.getSize("thick_margin").width + verticalCenter: adhesionCheckBox.verticalCenter + } + } + + CheckBox + { + id: adhesionCheckBox + property alias _hovered: adhesionMouseArea.containsMouse + + anchors.top: enableSupportCheckBox.bottom + anchors.topMargin: UM.Theme.getSize("thick_margin").height + anchors.left: infillCellRight.left + + //: Setting enable printing build-plate adhesion helper checkbox + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + + visible: platformAdhesionType.properties.enabled == "True" + checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" + + MouseArea + { + id: adhesionMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + onClicked: + { + var adhesionType = "skirt" + if(!parent.checked) + { + // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft + platformAdhesionType.removeFromContainer(0) + adhesionType = platformAdhesionType.properties.value + if(adhesionType == "skirt" || adhesionType == "none") + { + // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim + adhesionType = "brim" + } + } + platformAdhesionType.setPropertyValue("value", adhesionType) + } + onEntered: + { + base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), + catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); + } + onExited: base.hideTooltip() + + } + } + + ListModel + { + id: extruderModel + Component.onCompleted: populateExtruderModel() + } + + //: Model used to populate the extrudelModel + Cura.ExtrudersModel + { + id: extruders + onModelChanged: populateExtruderModel() + } + + Item + { + id: tipsCell + anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 2) + anchors.left: parent.left + width: parent.width + height: tipsText.contentHeight * tipsText.lineCount + + Label + { + id: tipsText + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("thick_margin").width + anchors.top: parent.top + wrapMode: Text.WordWrap + text: catalog.i18nc("@label", "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting") + font: UM.Theme.getFont("default"); + color: UM.Theme.getColor("text"); + linkColor: UM.Theme.getColor("text_link") + onLinkActivated: Qt.openUrlExternally(link) + } + } + + UM.SettingPropertyProvider + { + id: infillExtruderNumber + containerStackId: Cura.MachineManager.activeStackId + key: "infill_extruder_nr" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: infillDensity + containerStackId: Cura.MachineManager.activeStackId + key: "infill_sparse_density" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: infillSteps + containerStackId: Cura.MachineManager.activeStackId + key: "gradual_infill_steps" + watchedProperties: ["value", "enabled"] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: platformAdhesionType + containerStack: Cura.MachineManager.activeMachine + removeUnusedValue: false //Doesn't work with settings that are resolved. + key: "adhesion_type" + watchedProperties: [ "value", "enabled" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: supportEnabled + containerStack: Cura.MachineManager.activeMachine + key: "support_enable" + watchedProperties: [ "value", "enabled", "description" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: extrudersEnabledCount + containerStack: Cura.MachineManager.activeMachine + key: "extruders_enabled_count" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: supportExtruderNr + containerStack: Cura.MachineManager.activeMachine + key: "support_extruder_nr" + watchedProperties: [ "value" ] + storeIndex: 0 } function populateExtruderModel() diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 2475f398f8..6db8e0c544 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -9,6 +9,7 @@ MaterialMenu 1.0 MaterialMenu.qml NozzleMenu 1.0 NozzleMenu.qml ActionPanelWidget 1.0 ActionPanelWidget.qml IconLabel 1.0 IconLabel.qml +IconWithText 1.0 IconWithText.qml OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml ExpandableComponent 1.0 ExpandableComponent.qml PrinterTypeLabel 1.0 PrinterTypeLabel.qml diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 08ea73a7c5..dfaa9008f7 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -372,6 +372,7 @@ "print_setup_mode_toggle": [0.0, 2.0], "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], + "print_setup_widget_header": [0.0, 3.0], "configuration_selector_mode_tabs": [0.0, 3.0], From b9d9a3586809b7e517550d402d31a9cf419e59ba Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 29 Nov 2018 00:00:22 +0100 Subject: [PATCH 0574/1039] Move profile dropdown to another file CURA-5941 --- resources/qml/GlobalProfileButton.qml | 89 ++++++++++++++++++++++++++ resources/qml/PrintSetupSelector.qml | 46 +++++++------ resources/qml/Settings/SettingView.qml | 89 +------------------------- 3 files changed, 115 insertions(+), 109 deletions(-) create mode 100644 resources/qml/GlobalProfileButton.qml diff --git a/resources/qml/GlobalProfileButton.qml b/resources/qml/GlobalProfileButton.qml new file mode 100644 index 0000000000..bac2732037 --- /dev/null +++ b/resources/qml/GlobalProfileButton.qml @@ -0,0 +1,89 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 +import QtQuick.Layouts 1.2 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +import "Menus" + +Item +{ + id: globalProfileRow + height: UM.Theme.getSize("print_setup_item").height + + Label + { + id: globalProfileLabel + text: catalog.i18nc("@label","Profile:") + textFormat: Text.PlainText + width: Math.round(parent.width * 0.45 - UM.Theme.getSize("thick_margin").width - 2) + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + verticalAlignment: Text.AlignVCenter + anchors.top: parent.top + anchors.bottom: parent.bottom + } + + ToolButton + { + id: globalProfileSelection + + text: generateActiveQualityText() + width: Math.round(parent.width * 0.55) + height: UM.Theme.getSize("setting_control").height + anchors.left: globalProfileLabel.right + anchors.right: parent.right + tooltip: Cura.MachineManager.activeQualityOrQualityChangesName + style: UM.Theme.styles.sidebar_header_button + activeFocusOnPress: true + menu: ProfileMenu { } + + function generateActiveQualityText () { + var result = Cura.MachineManager.activeQualityOrQualityChangesName; + + if (Cura.MachineManager.isActiveQualitySupported) { + if (Cura.MachineManager.activeQualityLayerHeight > 0) { + result += " " + result += " - " + result += Cura.MachineManager.activeQualityLayerHeight + "mm" + result += "" + } + } + + return result + } + + UM.SimpleButton + { + id: customisedSettings + + visible: Cura.MachineManager.hasUserSettings + height: Math.round(parent.height * 0.6) + width: Math.round(parent.height * 0.6) + + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: Math.round(UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("thick_margin").width) + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); + iconSource: UM.Theme.getIcon("star"); + + onClicked: + { + forceActiveFocus(); + Cura.Actions.manageProfiles.trigger() + } + onEntered: + { + var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") + base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), content) + } + onExited: base.hideTooltip() + } + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector.qml index 85472bae8d..855af9f9fa 100644 --- a/resources/qml/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector.qml @@ -126,7 +126,9 @@ Cura.ExpandableComponent popupItem: Rectangle { - property var total_height: popupItemHeader.height + popupItemContent.height + footerControll.height + UM.Theme.getSize("narrow_margin").height * 2 + + property var totalMargins: UM.Theme.getSize("narrow_margin").height * 11 + property var total_height: popupItemHeader.height + popupItemContent.height + totalMargins id: popupItemWrapper height: total_height @@ -157,9 +159,9 @@ Cura.ExpandableComponent anchors { - topMargin: UM.Theme.getSize("sidebar_margin").height + //topMargin: UM.Theme.getSize("sidebar_margin").height left: parent.left - leftMargin: UM.Theme.getSize("narrow_margin").height + leftMargin: UM.Theme.getSize("narrow_margin").height * 2 } } @@ -169,8 +171,6 @@ Cura.ExpandableComponent height: UM.Theme.getSize("default_lining").height anchors.top: popupItemHeaderText.bottom color: UM.Theme.getColor("action_button_border") - - } Button @@ -209,21 +209,33 @@ Cura.ExpandableComponent { id: popupItemContent width: parent.width - height: tabBar.height + sidebarContents.height + height: globalProfileRow.height + tabBar.height + UM.Theme.getSize("print_setup_widget").height - UM.Theme.getSize("print_setup_item").height anchors { top: popupItemHeader.bottom - topMargin: UM.Theme.getSize("narrow_margin").height + topMargin: UM.Theme.getSize("default_margin").height * 1.5 right: parent.right left: parent.left leftMargin: UM.Theme.getSize("default_margin").width rightMargin: UM.Theme.getSize("default_margin").width } + GlobalProfileButton + { + id: globalProfileRow + anchors + { + top: parent.top + left: parent.left + right: parent.right + } + } + UM.TabRow { id: tabBar - anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.top: globalProfileRow.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height * 1.5 onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) z: 1 Repeater @@ -280,8 +292,6 @@ Cura.ExpandableComponent anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right - height: UM.Theme.getSize("print_setup_widget").height - border.width: UM.Theme.getSize("default_lining").width * 2 border.color: UM.Theme.getColor("action_button_border") @@ -296,8 +306,8 @@ Cura.ExpandableComponent SidebarAdvanced { - anchors.topMargin: UM.Theme.getSize("print_setup_content_top_margin").height - anchors.bottomMargin: 2 //don't overlap bottom border + anchors.topMargin: Math.round(UM.Theme.getSize("wide_margin").height / 1.7) + anchors.bottomMargin: 2 //prevent bottom line overlapping anchors.fill: parent visible: currentModeIndex == 1 onShowTooltip: base.showTooltip(item, location, text) @@ -312,7 +322,6 @@ Cura.ExpandableComponent anchors.top: popupItemContent.bottom anchors.topMargin: UM.Theme.getSize("narrow_margin").height * 2 width: parent.width - height: settingControlButton.height + UM.Theme.getSize("default_lining").height * 4 Rectangle { width: parent.width @@ -330,9 +339,8 @@ Cura.ExpandableComponent { top: parent.top topMargin: UM.Theme.getSize("narrow_margin").height * 2 - bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 right: parent.right - rightMargin: UM.Theme.getSize("narrow_margin").height + rightMargin: UM.Theme.getSize("narrow_margin").height * 2 } color: UM.Theme.getColor("secondary") @@ -349,14 +357,11 @@ Cura.ExpandableComponent { height: UM.Theme.getSize("action_panel_button").height text: catalog.i18nc("@button", "Recommended") - color: UM.Theme.getColor("secondary") hoverColor: UM.Theme.getColor("secondary") textColor: UM.Theme.getColor("primary") textHoverColor: UM.Theme.getColor("text") - iconSource: UM.Theme.getIcon("arrow_left") - width: UM.Theme.getSize("print_setup_action_button").width fixedWidthMode: true @@ -365,9 +370,8 @@ Cura.ExpandableComponent { top: parent.top topMargin: UM.Theme.getSize("narrow_margin").height * 2 - bottomMargin: UM.Theme.getSize("narrow_margin").height * 2 left: parent.left - leftMargin: UM.Theme.getSize("narrow_margin").height + leftMargin: UM.Theme.getSize("narrow_margin").height * 2 } MouseArea { @@ -376,7 +380,7 @@ Cura.ExpandableComponent } } } - + Component.onCompleted: { var index = Math.round(UM.Preferences.getValue("cura/active_mode")) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index cd9701aab6..3960f99aaa 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -21,92 +21,6 @@ Item signal showTooltip(Item item, point location, string text) signal hideTooltip() - Item - { - id: globalProfileRow - height: UM.Theme.getSize("print_setup_item").height - - anchors - { - top: parent.top - left: parent.left - leftMargin: Math.round(UM.Theme.getSize("thick_margin").width) - right: parent.right - rightMargin: Math.round(UM.Theme.getSize("thick_margin").width) - } - - Label - { - id: globalProfileLabel - text: catalog.i18nc("@label","Profile:") - textFormat: Text.PlainText - width: Math.round(parent.width * 0.45 - UM.Theme.getSize("thick_margin").width - 2) - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - verticalAlignment: Text.AlignVCenter - anchors.top: parent.top - anchors.bottom: parent.bottom - } - - ToolButton - { - id: globalProfileSelection - - text: generateActiveQualityText() - width: Math.round(parent.width * 0.55) - height: UM.Theme.getSize("setting_control").height - anchors.left: globalProfileLabel.right - anchors.right: parent.right - tooltip: Cura.MachineManager.activeQualityOrQualityChangesName - style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true - menu: ProfileMenu { } - - function generateActiveQualityText () { - var result = Cura.MachineManager.activeQualityOrQualityChangesName; - - if (Cura.MachineManager.isActiveQualitySupported) { - if (Cura.MachineManager.activeQualityLayerHeight > 0) { - result += " " - result += " - " - result += Cura.MachineManager.activeQualityLayerHeight + "mm" - result += "" - } - } - - return result - } - - UM.SimpleButton - { - id: customisedSettings - - visible: Cura.MachineManager.hasUserSettings - height: Math.round(parent.height * 0.6) - width: Math.round(parent.height * 0.6) - - anchors.verticalCenter: parent.verticalCenter - anchors.right: parent.right - anchors.rightMargin: Math.round(UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("thick_margin").width) - - color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); - iconSource: UM.Theme.getIcon("star"); - - onClicked: - { - forceActiveFocus(); - Cura.Actions.manageProfiles.trigger() - } - onEntered: - { - var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") - base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), content) - } - onExited: base.hideTooltip() - } - } - } - ToolButton { id: settingVisibilityMenu @@ -115,7 +29,6 @@ Item height: UM.Theme.getSize("setting_control").height anchors { - top: globalProfileRow.bottom topMargin: UM.Theme.getSize("thick_margin").height right: parent.right rightMargin: UM.Theme.getSize("thick_margin").width @@ -168,7 +81,7 @@ Item anchors { - top: globalProfileRow.bottom + //top: globalProfileRow.bottom topMargin: UM.Theme.getSize("thick_margin").height left: parent.left leftMargin: UM.Theme.getSize("thick_margin").width From 706fc311bccb730e82e48bf6c752e4bd0a3bf856 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 29 Nov 2018 00:47:25 +0100 Subject: [PATCH 0575/1039] Added margins to the setting list CURA-5941 --- resources/qml/Settings/SettingCategory.qml | 4 ++-- resources/qml/Settings/SettingItem.qml | 4 ++-- resources/qml/Settings/SettingView.qml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index aafe36c546..4ec6294d61 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -12,8 +12,8 @@ Button id: base anchors.left: parent.left anchors.right: parent.right - anchors.leftMargin: UM.Theme.getSize("thick_margin").width - anchors.rightMargin: UM.Theme.getSize("thick_margin").width + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.rightMargin: UM.Theme.getSize("default_margin").width * 3 hoverEnabled: true background: Rectangle diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index cad6a28bd6..036dcfeba4 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -108,7 +108,7 @@ Item { id: label; anchors.left: parent.left; - anchors.leftMargin: doDepthIndentation ? Math.round((UM.Theme.getSize("section_icon_column").width + 5) + ((definition.depth - 1) * UM.Theme.getSize("setting_control_depth_margin").width)) : 0 + anchors.leftMargin: doDepthIndentation ? Math.round((UM.Theme.getSize("section_icon_column").width / 1.2) + ((definition.depth - 1) * UM.Theme.getSize("setting_control_depth_margin").width)) : 0 anchors.right: settingControls.left; anchors.verticalCenter: parent.verticalCenter @@ -290,7 +290,7 @@ Item { enabled: propertyProvider.isValueUsed anchors.right: parent.right; - anchors.rightMargin: UM.Theme.getSize("thick_margin").width + anchors.rightMargin: UM.Theme.getSize("default_margin").width * 3 anchors.verticalCenter: parent.verticalCenter; width: UM.Theme.getSize("setting_control").width; height: UM.Theme.getSize("setting_control").height diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 3960f99aaa..8a336a7ed1 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -81,10 +81,9 @@ Item anchors { - //top: globalProfileRow.bottom topMargin: UM.Theme.getSize("thick_margin").height left: parent.left - leftMargin: UM.Theme.getSize("thick_margin").width + leftMargin: UM.Theme.getSize("default_margin").width right: settingVisibilityMenu.left rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) } @@ -202,6 +201,7 @@ Item anchors.right: parent.right; anchors.left: parent.left; anchors.topMargin: UM.Theme.getSize("thick_margin").height + anchors.rightMargin: UM.Theme.getSize("narrow_margin").height / 3 style: UM.Theme.styles.scrollview; flickableItem.flickableDirection: Flickable.VerticalFlick; From b44ddec01fcae8d748914a22062f11413870c7e2 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 29 Nov 2018 08:35:38 +0100 Subject: [PATCH 0576/1039] Change normal layer height of cocoon to 0.10 CURA-5902 So it's different from Fine 0.15, otherwise you get duplicates. --- resources/definitions/cocoon_create_modelmaker.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/cocoon_create_modelmaker.def.json b/resources/definitions/cocoon_create_modelmaker.def.json index 204d5b9492..921b20624a 100644 --- a/resources/definitions/cocoon_create_modelmaker.def.json +++ b/resources/definitions/cocoon_create_modelmaker.def.json @@ -51,7 +51,7 @@ "default_value": 220 }, "layer_height": { - "default_value": 0.15 + "default_value": 0.10 }, "layer_height_0": { "default_value": 0.2 From 7639983925f712a48a3a64bd71d221d2dcf3b4f2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 29 Nov 2018 08:54:04 +0100 Subject: [PATCH 0577/1039] Clean the recommended mode print setup Contributes to CURA-5941 --- .../PrintSetupSelectorContents.qml | 31 - .../RecommendedPrintSetup.qml | 1205 ++++++++--------- 2 files changed, 580 insertions(+), 656 deletions(-) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index c36a0fbb80..6e71526f25 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -94,40 +94,10 @@ Item anchors { top: header.bottom - leftMargin: UM.Theme.getSize("default_margin").width - rightMargin: UM.Theme.getSize("default_margin").width } sourceComponent: currentModeIndex == 0 ? recommendedPrintSetup : customPrintSetup } -// Item -// { -// id: content -// width: parent.width -// height: 100 -////// height: tabBar.height + sidebarContents.height -//// -// anchors -// { -// top: header.bottom -// leftMargin: UM.Theme.getSize("default_margin").width -// rightMargin: UM.Theme.getSize("default_margin").width -// } -//// -//// Rectangle -//// { -//// id: sidebarContents -//// anchors.top: tabBar.bottom -//// anchors.bottom: parent.bottom -//// anchors.left: parent.left -//// anchors.right: parent.right -//// height: UM.Theme.getSize("print_setup_widget").height -//// -//// border.width: UM.Theme.getSize("default_lining").width * 2 -//// border.color: UM.Theme.getColor("action_button_border") -//// } -// } - Rectangle { id: buttonsSeparator @@ -195,7 +165,6 @@ Item Component.onCompleted: { - print(height, "!!!!!!!!!!!!!!!!!!!!!!!") var index = Math.round(UM.Preferences.getValue("cura/active_mode")) if(index != null && !isNaN(index)) diff --git a/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml index 5d195bdde4..b48282135b 100644 --- a/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml @@ -8,17 +8,22 @@ import QtQuick.Controls.Styles 1.4 import UM 1.2 as UM import Cura 1.0 as Cura -Item +Column { id: base signal showTooltip(Item item, point location, string text) signal hideTooltip() - height: childrenRect.height + height: childrenRect.height + 2 * padding + + padding: UM.Theme.getSize("thick_margin").width + spacing: UM.Theme.getSize("default_margin").height property Action configureSettings property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 + property real labelColumnWidth: Math.round(width / 3) + property real settingsColumnWidth: width - labelColumnWidth UM.I18nCatalog { @@ -33,10 +38,9 @@ Item { id: qualityRow - height: UM.Theme.getSize("thick_margin").height - anchors.topMargin: UM.Theme.getSize("thick_margin").height anchors.left: parent.left anchors.right: parent.right + height: childrenRect.height Timer { @@ -145,14 +149,14 @@ Item function calculateSliderStepWidth (totalTicks) { - qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((base.width * 0.55) / (totalTicks)) : 0 + qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((settingsColumnWidth) / (totalTicks)) : 0 } function calculateSliderMargins (availableMin, availableMax, totalTicks) { if (availableMin == -1 || (availableMin == 0 && availableMax == 0)) { - qualityModel.qualitySliderMarginRight = Math.round(base.width * 0.55) + qualityModel.qualitySliderMarginRight = Math.round(settingsColumnWidth) } else if (availableMin == availableMax) { @@ -180,6 +184,7 @@ Item source: UM.Theme.getIcon("category_layer_height") text: catalog.i18nc("@label", "Layer Height") anchors.bottom: speedSlider.bottom + width: labelColumnWidth } // Show titles for the each quality slider ticks @@ -187,6 +192,7 @@ Item { anchors.left: speedSlider.left anchors.top: speedSlider.bottom + Repeater { model: qualityModel @@ -194,7 +200,7 @@ Item Label { anchors.verticalCenter: parent.verticalCenter - anchors.top: parent.bottom + anchors.top: parent.top color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") text: { @@ -225,19 +231,19 @@ Item if (qualityModel.totalTicks == 0) { // If there is only one tick, align it centrally - return Math.round(((base.width * 0.55) - width) / 2) + return Math.round(((settingsColumnWidth) - width) / 2) } else if (index == 0) { - return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index + return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index } else if (index == qualityModel.totalTicks) { - return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index - width + return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index - width } else { - return Math.round((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) + return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2)) } } } @@ -248,126 +254,127 @@ Item Rectangle { id: speedSlider - width: Math.round(base.width * 0.55) - height: UM.Theme.getSize("thick_margin").height - anchors.right: parent.right - anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("thick_margin").height + + anchors + { + left: qualityRowTitle.right + right: parent.right + } // This Item is used only for tooltip, for slider area which is unavailable - Item - { - function showTooltip (showTooltip) - { - if (showTooltip) - { - var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) - } - else - { - base.hideTooltip() - } - } - - id: unavailableLineToolTip - height: 20 * screenScaleFactor // hovered area height - z: parent.z + 1 // should be higher, otherwise the area can be hovered - x: 0 - anchors.verticalCenter: qualitySlider.verticalCenter - - Rectangle - { - id: leftArea - width: - { - if (qualityModel.availableTotalTicks == 0) - { - return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks - } - return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 - } - height: parent.height - color: "transparent" - - MouseArea - { - anchors.fill: parent - hoverEnabled: true - enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false - onEntered: unavailableLineToolTip.showTooltip(true) - onExited: unavailableLineToolTip.showTooltip(false) - } - } - - Item - { - id: rightArea - width: - { - if(qualityModel.availableTotalTicks == 0) - return 0 - - return qualityModel.qualitySliderMarginRight - 10 - } - height: parent.height - x: - { - if (qualityModel.availableTotalTicks == 0) - { - return 0 - } - - var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 - - return totalGap - } - - MouseArea - { - anchors.fill: parent - hoverEnabled: true - enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false - onEntered: unavailableLineToolTip.showTooltip(true) - onExited: unavailableLineToolTip.showTooltip(false) - } - } - } +// Item +// { +// function showTooltip (showTooltip) +// { +// if (showTooltip) +// { +// var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") +// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) +// } +// else +// { +// base.hideTooltip() +// } +// } +// +// id: unavailableLineToolTip +// height: 20 * screenScaleFactor // hovered area height +// z: parent.z + 1 // should be higher, otherwise the area can be hovered +// x: 0 +// anchors.verticalCenter: qualitySlider.verticalCenter +// +// Rectangle +// { +// id: leftArea +// width: +// { +// if (qualityModel.availableTotalTicks == 0) +// { +// return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks +// } +// return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 +// } +// height: parent.height +// color: "transparent" +// +// MouseArea +// { +// anchors.fill: parent +// hoverEnabled: true +// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false +// onEntered: unavailableLineToolTip.showTooltip(true) +// onExited: unavailableLineToolTip.showTooltip(false) +// } +// } +// +// Item +// { +// id: rightArea +// width: +// { +// if(qualityModel.availableTotalTicks == 0) +// return 0 +// +// return qualityModel.qualitySliderMarginRight - 10 +// } +// height: parent.height +// x: +// { +// if (qualityModel.availableTotalTicks == 0) +// { +// return 0 +// } +// +// var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin +// var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 +// +// return totalGap +// } +// +// MouseArea +// { +// anchors.fill: parent +// hoverEnabled: true +// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false +// onEntered: unavailableLineToolTip.showTooltip(true) +// onExited: unavailableLineToolTip.showTooltip(false) +// } +// } +// } // Draw Unavailable line Rectangle { id: groovechildrect - width: Math.round(base.width * 0.55) + width: parent.width height: 2 * screenScaleFactor color: UM.Theme.getColor("quality_slider_unavailable") anchors.verticalCenter: qualitySlider.verticalCenter - x: 0 - } - // Draw ticks - Repeater - { - id: qualityRepeater - model: qualityModel.totalTicks > 0 ? qualityModel : 0 - - Rectangle + // Draw ticks + Repeater { - color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - implicitWidth: 5 * screenScaleFactor - implicitHeight: implicitWidth - anchors.verticalCenter: qualitySlider.verticalCenter - x: Math.round(qualityModel.qualitySliderStepWidth * index) - radius: Math.round(implicitWidth / 2) + id: qualityRepeater + model: qualityModel.totalTicks > 0 ? qualityModel : 0 + + Rectangle + { + color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 4 * screenScaleFactor + implicitHeight: implicitWidth + anchors.verticalCenter: parent.verticalCenter + x: Math.round(qualityModel.qualitySliderStepWidth * index) + radius: Math.round(implicitWidth / 2) + } } } + // Draw available slider Slider { id: qualitySlider height: UM.Theme.getSize("thick_margin").height - anchors.bottom: speedSlider.bottom + anchors.bottom: parent.bottom enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized visible: qualityModel.availableTotalTicks > 0 updateValueWhileDragging : false @@ -394,18 +401,15 @@ Item color: UM.Theme.getColor("quality_slider_available") radius: Math.round(height / 2) } - handle: Item + + handle: Rectangle { - Rectangle - { - id: qualityhandleButton - anchors.centerIn: parent - color: UM.Theme.getColor("quality_slider_available") - implicitWidth: 10 * screenScaleFactor - implicitHeight: implicitWidth - radius: Math.round(implicitWidth / 2) - visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile - } + id: qualityhandleButton + color: UM.Theme.getColor("quality_slider_available") + implicitWidth: 12 * screenScaleFactor + implicitHeight: implicitWidth + radius: Math.round(implicitWidth / 2) + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile } } @@ -433,7 +437,7 @@ Item onEntered: { - var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") + var content = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) } onExited: base.hideTooltip() @@ -474,329 +478,319 @@ Item // Item { - id: infillCellLeft - - anchors.top: qualityRow.bottom - anchors.topMargin: UM.Theme.getSize("thick_margin").height * 2 anchors.left: parent.left - - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .45) - UM.Theme.getSize("thick_margin").width + anchors.right: parent.right + height: childrenRect.height Cura.IconWithText { - id: infillLabel + id: infillRowTitle source: UM.Theme.getIcon("category_infill") text: catalog.i18nc("@label", "Infill") + " (%)" - - anchors - { - top: parent.top - topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7) - left: parent.left - } + anchors.bottom: parent.bottom + width: labelColumnWidth } - } - Item - { - id: infillCellRight + Item + { + id: infillCellRight - height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) + height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) - anchors.left: infillCellLeft.right - anchors.top: infillCellLeft.top - anchors.topMargin: UM.Theme.getSize("thick_margin").height - - Label { - id: selectedInfillRateText - - anchors.left: infillSlider.left + anchors.left: infillRowTitle.right anchors.right: parent.right - text: parseInt(infillDensity.properties.value) + "%" - horizontalAlignment: Text.AlignLeft - - color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - } - - // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider - Binding - { - target: infillSlider - property: "value" - value: parseInt(infillDensity.properties.value) - } - - Slider - { - id: infillSlider - - anchors.top: selectedInfillRateText.bottom - anchors.left: parent.left - anchors.right: infillIcon.left - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - - height: UM.Theme.getSize("thick_margin").height - width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) - - minimumValue: 0 - maximumValue: 100 - stepSize: 1 - tickmarksEnabled: true - - // disable slider when gradual support is enabled - enabled: parseInt(infillSteps.properties.value) == 0 - - // set initial value from stack - value: parseInt(infillDensity.properties.value) - - onValueChanged: - { - - // Don't round the value if it's already the same - if (parseInt(infillDensity.properties.value) == infillSlider.value) - { - return - } - - // Round the slider value to the nearest multiple of 10 (simulate step size of 10) - var roundedSliderValue = Math.round(infillSlider.value / 10) * 10 - - // Update the slider value to represent the rounded value - infillSlider.value = roundedSliderValue - - // Update value only if the Recomended mode is Active, - // Otherwise if I change the value in the Custom mode the Recomended view will try to repeat - // same operation - var active_mode = UM.Preferences.getValue("cura/active_mode") - - if (active_mode == 0 || active_mode == "simple") - { - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue) - Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance") - } - } - - style: SliderStyle - { - groove: Rectangle - { - id: groove - implicitWidth: 200 * screenScaleFactor - implicitHeight: 2 * screenScaleFactor - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - radius: 1 - } - - handle: Item - { - Rectangle - { - id: handleButton - anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - implicitWidth: 10 * screenScaleFactor - implicitHeight: 10 * screenScaleFactor - radius: 10 * screenScaleFactor - } - } - - tickmarks: Repeater - { - id: repeater - model: control.maximumValue / control.stepSize + 1 - - // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) - function shouldShowTick (index) - { - if (index % 10 == 0) - { - return true - } - return false - } - - Rectangle - { - anchors.verticalCenter: parent.verticalCenter - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - width: 1 * screenScaleFactor - height: 6 * screenScaleFactor - x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) - visible: shouldShowTick(index) - } - } - } - } - - Rectangle - { - id: infillIcon - - width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) - height: width - - anchors.right: parent.right - anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) - - // we loop over all density icons and only show the one that has the current density and steps - Repeater - { - id: infillIconList - model: infillModel - anchors.fill: parent - - function activeIndex () - { - for (var i = 0; i < infillModel.count; i++) - { - var density = Math.round(infillDensity.properties.value) - var steps = Math.round(infillSteps.properties.value) - var infillModelItem = infillModel.get(i) - - if (infillModelItem != "undefined" - && density >= infillModelItem.percentageMin - && density <= infillModelItem.percentageMax - && steps >= infillModelItem.stepsMin - && steps <= infillModelItem.stepsMax) - { - return i - } - } - return -1 - } - - Rectangle - { - anchors.fill: parent - visible: infillIconList.activeIndex() == index - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("quality_slider_unavailable") - - UM.RecolorImage - { - anchors.fill: parent - anchors.margins: 2 * screenScaleFactor - sourceSize.width: width - sourceSize.height: width - source: UM.Theme.getIcon(model.icon) - color: UM.Theme.getColor("quality_slider_unavailable") - } - } - } - } - - // Gradual Support Infill Checkbox - CheckBox - { - id: enableGradualInfillCheckBox - property alias _hovered: enableGradualInfillMouseArea.containsMouse - - anchors.top: infillSlider.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category - anchors.left: infillCellRight.left - - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - visible: infillSteps.properties.enabled == "True" - checked: parseInt(infillSteps.properties.value) > 0 - - MouseArea - { - id: enableGradualInfillMouseArea - - anchors.fill: parent - hoverEnabled: true - enabled: true - - property var previousInfillDensity: parseInt(infillDensity.properties.value) - - onClicked: - { - // Set to 90% only when enabling gradual infill - var newInfillDensity; - if (parseInt(infillSteps.properties.value) == 0) - { - previousInfillDensity = parseInt(infillDensity.properties.value) - newInfillDensity = 90 - } else { - newInfillDensity = previousInfillDensity - } - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) - - var infill_steps_value = 0 - if (parseInt(infillSteps.properties.value) == 0) - { - infill_steps_value = 5 - } - - Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) - } - - onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), - catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) - - onExited: base.hideTooltip() - - } - Label { - id: gradualInfillLabel - height: parent.height - anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - verticalAlignment: Text.AlignVCenter; - text: catalog.i18nc("@label", "Enable gradual") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - } + id: selectedInfillRateText - // Infill list model for mapping icon - ListModel - { - id: infillModel - Component.onCompleted: + anchors.left: infillSlider.left + anchors.right: parent.right + + text: parseInt(infillDensity.properties.value) + "%" + horizontalAlignment: Text.AlignLeft + + color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + } + + // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider + Binding { - infillModel.append({ - percentageMin: -1, - percentageMax: 0, - stepsMin: -1, - stepsMax: 0, - icon: "hollow" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 40, - stepsMin: -1, - stepsMax: 0, - icon: "sparse" - }) - infillModel.append({ - percentageMin: 40, - percentageMax: 89, - stepsMin: -1, - stepsMax: 0, - icon: "dense" - }) - infillModel.append({ - percentageMin: 90, - percentageMax: 9999999999, - stepsMin: -1, - stepsMax: 0, - icon: "solid" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 9999999999, - stepsMin: 1, - stepsMax: 9999999999, - icon: "gradual" - }) + target: infillSlider + property: "value" + value: parseInt(infillDensity.properties.value) + } + + Slider + { + id: infillSlider + + anchors.top: selectedInfillRateText.bottom + anchors.left: parent.left + anchors.right: infillIcon.left + anchors.rightMargin: UM.Theme.getSize("thick_margin").width + + height: UM.Theme.getSize("thick_margin").height + width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) + + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + tickmarksEnabled: true + + // disable slider when gradual support is enabled + enabled: parseInt(infillSteps.properties.value) == 0 + + // set initial value from stack + value: parseInt(infillDensity.properties.value) + + onValueChanged: + { + + // Don't round the value if it's already the same + if (parseInt(infillDensity.properties.value) == infillSlider.value) + { + return + } + + // Round the slider value to the nearest multiple of 10 (simulate step size of 10) + var roundedSliderValue = Math.round(infillSlider.value / 10) * 10 + + // Update the slider value to represent the rounded value + infillSlider.value = roundedSliderValue + + // Update value only if the Recomended mode is Active, + // Otherwise if I change the value in the Custom mode the Recomended view will try to repeat + // same operation + var active_mode = UM.Preferences.getValue("cura/active_mode") + + if (active_mode == 0 || active_mode == "simple") + { + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue) + Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance") + } + } + + style: SliderStyle + { + groove: Rectangle + { + id: groove + implicitWidth: 200 * screenScaleFactor + implicitHeight: 2 * screenScaleFactor + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + radius: 1 + } + + handle: Item + { + Rectangle + { + id: handleButton + anchors.centerIn: parent + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 10 * screenScaleFactor + implicitHeight: 10 * screenScaleFactor + radius: 10 * screenScaleFactor + } + } + + tickmarks: Repeater + { + id: repeater + model: control.maximumValue / control.stepSize + 1 + + // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) + function shouldShowTick (index) + { + if (index % 10 == 0) + { + return true + } + return false + } + + Rectangle + { + anchors.verticalCenter: parent.verticalCenter + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + width: 1 * screenScaleFactor + height: 6 * screenScaleFactor + x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) + visible: shouldShowTick(index) + } + } + } + } + + Rectangle + { + id: infillIcon + + width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) + height: width + + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) + + // we loop over all density icons and only show the one that has the current density and steps + Repeater + { + id: infillIconList + model: infillModel + anchors.fill: parent + + function activeIndex () + { + for (var i = 0; i < infillModel.count; i++) + { + var density = Math.round(infillDensity.properties.value) + var steps = Math.round(infillSteps.properties.value) + var infillModelItem = infillModel.get(i) + + if (infillModelItem != "undefined" + && density >= infillModelItem.percentageMin + && density <= infillModelItem.percentageMax + && steps >= infillModelItem.stepsMin + && steps <= infillModelItem.stepsMax) + { + return i + } + } + return -1 + } + + Rectangle + { + anchors.fill: parent + visible: infillIconList.activeIndex() == index + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("quality_slider_unavailable") + + UM.RecolorImage + { + anchors.fill: parent + anchors.margins: 2 * screenScaleFactor + sourceSize.width: width + sourceSize.height: width + source: UM.Theme.getIcon(model.icon) + color: UM.Theme.getColor("quality_slider_unavailable") + } + } + } + } + + // Gradual Support Infill Checkbox + CheckBox + { + id: enableGradualInfillCheckBox + property alias _hovered: enableGradualInfillMouseArea.containsMouse + + anchors.top: infillSlider.bottom + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category + anchors.left: infillCellRight.left + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + visible: infillSteps.properties.enabled == "True" + checked: parseInt(infillSteps.properties.value) > 0 + + MouseArea + { + id: enableGradualInfillMouseArea + + anchors.fill: parent + hoverEnabled: true + enabled: true + + property var previousInfillDensity: parseInt(infillDensity.properties.value) + + onClicked: + { + // Set to 90% only when enabling gradual infill + var newInfillDensity; + if (parseInt(infillSteps.properties.value) == 0) + { + previousInfillDensity = parseInt(infillDensity.properties.value) + newInfillDensity = 90 + } else { + newInfillDensity = previousInfillDensity + } + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) + + var infill_steps_value = 0 + if (parseInt(infillSteps.properties.value) == 0) + { + infill_steps_value = 5 + } + + Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) + } + + onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), + catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) + + onExited: base.hideTooltip() + + } + + Label + { + id: gradualInfillLabel + height: parent.height + anchors.left: enableGradualInfillCheckBox.right + anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) + verticalAlignment: Text.AlignVCenter; + text: catalog.i18nc("@label", "Enable gradual") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + } + + // Infill list model for mapping icon + ListModel + { + id: infillModel + Component.onCompleted: + { + infillModel.append({ + percentageMin: -1, + percentageMax: 0, + stepsMin: -1, + stepsMax: 0, + icon: "hollow" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 40, + stepsMin: -1, + stepsMax: 0, + icon: "sparse" + }) + infillModel.append({ + percentageMin: 40, + percentageMax: 89, + stepsMin: -1, + stepsMax: 0, + icon: "dense" + }) + infillModel.append({ + percentageMin: 90, + percentageMax: 9999999999, + stepsMin: -1, + stepsMax: 0, + icon: "solid" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 9999999999, + stepsMin: 1, + stepsMax: 9999999999, + icon: "gradual" + }) + } } } } @@ -804,191 +798,177 @@ Item // // Enable support // - Cura.IconWithText + Row { - id: enableSupportLabel - visible: enableSupportCheckBox.visible - source: UM.Theme.getIcon("category_support") - text: catalog.i18nc("@label", "Support") + anchors.left: parent.left + anchors.right: parent.right + height: childrenRect.height - anchors + Cura.IconWithText { - top: infillCellRight.bottom - topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5) - left: parent.left - right: infillCellLeft.right - rightMargin: UM.Theme.getSize("thick_margin").width - verticalCenter: enableSupportCheckBox.verticalCenter - } - } - - CheckBox - { - id: enableSupportCheckBox - property alias _hovered: enableSupportMouseArea.containsMouse - - anchors.top: enableSupportLabel.top - anchors.left: infillCellRight.left - - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - - visible: supportEnabled.properties.enabled == "True" - checked: supportEnabled.properties.value == "True" - - MouseArea - { - id: enableSupportMouseArea - anchors.fill: parent - hoverEnabled: true - onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") - - onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), - catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) - - onExited: base.hideTooltip() - - } - } - - ComboBox - { - id: supportExtruderCombobox - visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) - model: extruderModel - - property string color_override: "" // for manually setting values - property string color: // is evaluated automatically, but the first time is before extruderModel being filled - { - var current_extruder = extruderModel.get(currentIndex); - color_override = ""; - if (current_extruder === undefined) return "" - return (current_extruder.color) ? current_extruder.color : ""; + id: enableSupportLabel + visible: enableSupportCheckBox.visible + source: UM.Theme.getIcon("category_support") + text: catalog.i18nc("@label", "Support") + width: labelColumnWidth } - textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started - - anchors.top: enableSupportCheckBox.top - - anchors.left: enableSupportCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width - height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 - - Behavior on height { NumberAnimation { duration: 100 } } - - style: UM.Theme.styles.combobox_color - enabled: base.settingsEnabled - property alias _hovered: supportExtruderMouseArea.containsMouse - - currentIndex: + CheckBox { - if (supportExtruderNr.properties == null) + id: enableSupportCheckBox + property alias _hovered: enableSupportMouseArea.containsMouse + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + + visible: supportEnabled.properties.enabled == "True" + checked: supportEnabled.properties.value == "True" + + MouseArea { - return Cura.MachineManager.defaultExtruderPosition + id: enableSupportMouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") + + onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), + catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) + + onExited: base.hideTooltip() + } - else + } + + ComboBox + { + id: supportExtruderCombobox + visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) + model: extruderModel + + property string color_override: "" // for manually setting values + property string color: // is evaluated automatically, but the first time is before extruderModel being filled { - var extruder = parseInt(supportExtruderNr.properties.value) - if ( extruder === -1) + var current_extruder = extruderModel.get(currentIndex); + color_override = ""; + if (current_extruder === undefined) return "" + return (current_extruder.color) ? current_extruder.color : ""; + } + + textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started + + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width + height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 + + Behavior on height { NumberAnimation { duration: 100 } } + + style: UM.Theme.styles.combobox_color + enabled: base.settingsEnabled + property alias _hovered: supportExtruderMouseArea.containsMouse + + currentIndex: + { + if (supportExtruderNr.properties == null) { return Cura.MachineManager.defaultExtruderPosition } - return extruder; - } - } - - onActivated: supportExtruderNr.setPropertyValue("value", String(index)) - - MouseArea - { - id: supportExtruderMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - acceptedButtons: Qt.NoButton - onEntered: - { - base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), - catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); - } - onExited: base.hideTooltip() - - } - - function updateCurrentColor() - { - var current_extruder = extruderModel.get(currentIndex) - if (current_extruder !== undefined) - { - supportExtruderCombobox.color_override = current_extruder.color - } - } - - } - - Cura.IconWithText - { - id: adhesionHelperLabel - visible: adhesionCheckBox.visible - source: UM.Theme.getIcon("category_adhesion") - text: catalog.i18nc("@label", "Adhesion") - - anchors - { - left: parent.left - right: infillCellLeft.right - rightMargin: UM.Theme.getSize("thick_margin").width - verticalCenter: adhesionCheckBox.verticalCenter - } - } - - CheckBox - { - id: adhesionCheckBox - property alias _hovered: adhesionMouseArea.containsMouse - - anchors.top: enableSupportCheckBox.bottom - anchors.topMargin: UM.Theme.getSize("thick_margin").height - anchors.left: infillCellRight.left - - //: Setting enable printing build-plate adhesion helper checkbox - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - - visible: platformAdhesionType.properties.enabled == "True" - checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" - - MouseArea - { - id: adhesionMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - onClicked: - { - var adhesionType = "skirt" - if(!parent.checked) + else { - // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft - platformAdhesionType.removeFromContainer(0) - adhesionType = platformAdhesionType.properties.value - if(adhesionType == "skirt" || adhesionType == "none") + var extruder = parseInt(supportExtruderNr.properties.value) + if ( extruder === -1) { - // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim - adhesionType = "brim" + return Cura.MachineManager.defaultExtruderPosition } + return extruder; } - platformAdhesionType.setPropertyValue("value", adhesionType) } - onEntered: - { - base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), - catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); - } - onExited: base.hideTooltip() + onActivated: supportExtruderNr.setPropertyValue("value", String(index)) + + MouseArea + { + id: supportExtruderMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + acceptedButtons: Qt.NoButton + onEntered: + { + base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), + catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); + } + onExited: base.hideTooltip() + + } + + function updateCurrentColor() + { + var current_extruder = extruderModel.get(currentIndex) + if (current_extruder !== undefined) + { + supportExtruderCombobox.color_override = current_extruder.color + } + } + + } + } + + // Adhesion + Row + { + anchors.left: parent.left + anchors.right: parent.right + height: childrenRect.height + + Cura.IconWithText + { + id: adhesionHelperLabel + visible: adhesionCheckBox.visible + source: UM.Theme.getIcon("category_adhesion") + text: catalog.i18nc("@label", "Adhesion") + width: labelColumnWidth + } + + CheckBox + { + id: adhesionCheckBox + property alias _hovered: adhesionMouseArea.containsMouse + + //: Setting enable printing build-plate adhesion helper checkbox + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + + visible: platformAdhesionType.properties.enabled == "True" + checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" + + MouseArea + { + id: adhesionMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + onClicked: + { + var adhesionType = "skirt" + if(!parent.checked) + { + // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft + platformAdhesionType.removeFromContainer(0) + adhesionType = platformAdhesionType.properties.value + if(adhesionType == "skirt" || adhesionType == "none") + { + // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim + adhesionType = "brim" + } + } + platformAdhesionType.setPropertyValue("value", adhesionType) + } + onEntered: + { + base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), + catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); + } + onExited: base.hideTooltip() + } } } @@ -1005,31 +985,6 @@ Item onModelChanged: populateExtruderModel() } - Item - { - id: tipsCell - anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 2) - anchors.left: parent.left - width: parent.width - height: tipsText.contentHeight * tipsText.lineCount - - Label - { - id: tipsText - anchors.left: parent.left - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - anchors.top: parent.top - wrapMode: Text.WordWrap - text: catalog.i18nc("@label", "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides").arg("https://ultimaker.com/en/troubleshooting") - font: UM.Theme.getFont("default"); - color: UM.Theme.getColor("text"); - linkColor: UM.Theme.getColor("text_link") - onLinkActivated: Qt.openUrlExternally(link) - } - } - UM.SettingPropertyProvider { id: infillExtruderNumber @@ -1096,8 +1051,8 @@ Item function populateExtruderModel() { - extruderModel.clear(); - for(var extruderNumber = 0; extruderNumber < extruders.rowCount() ; extruderNumber++) + extruderModel.clear() + for (var extruderNumber = 0; extruderNumber < extruders.rowCount(); extruderNumber++) { extruderModel.append({ text: extruders.getItem(extruderNumber).name, From d88a465737410f09b22498a8448f0ffdd550a5b3 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 29 Nov 2018 14:45:42 +0100 Subject: [PATCH 0578/1039] Increase possible visible description lines in the Marketplace --- plugins/Toolbox/resources/qml/ToolboxDetailTile.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml index 7425ab2ba7..1d701543ce 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml @@ -37,7 +37,7 @@ Item anchors.top: packageName.bottom width: parent.width text: model.description - maximumLineCount: 12 + maximumLineCount: 25 elide: Text.ElideRight wrapMode: Text.WordWrap color: UM.Theme.getColor("text") From c545d9df7777db7e8d47ab3143997d310145b81d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 29 Nov 2018 15:16:37 +0100 Subject: [PATCH 0579/1039] =?UTF-8?q?Add=20key=20check=20before=20accessin?= =?UTF-8?q?g=20in=20=C2=83StartSliceJob?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CURA-5901 --- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 273dc0b6f6..9679360ad5 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -72,7 +72,7 @@ class GcodeStartEndFormatter(Formatter): # "-1" is global stack, and if the setting value exists in the global stack, use it as the fallback value. if key in kwargs["-1"]: value = kwargs["-1"] - if key in kwargs[str(extruder_nr)]: + if str(extruder_nr) in kwargs and key in kwargs[str(extruder_nr)]: value = kwargs[str(extruder_nr)][key] if value == default_value_str: From 90aa8c1264662ba176c4a696260afae7e80d7ba2 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 29 Nov 2018 15:29:51 +0100 Subject: [PATCH 0580/1039] point people to a good example --- .../scripts/ExampleScript.md | 3 ++ .../scripts/ExampleScript.py | 43 ------------------- 2 files changed, 3 insertions(+), 43 deletions(-) create mode 100644 plugins/PostProcessingPlugin/scripts/ExampleScript.md delete mode 100644 plugins/PostProcessingPlugin/scripts/ExampleScript.py diff --git a/plugins/PostProcessingPlugin/scripts/ExampleScript.md b/plugins/PostProcessingPlugin/scripts/ExampleScript.md new file mode 100644 index 0000000000..08652132aa --- /dev/null +++ b/plugins/PostProcessingPlugin/scripts/ExampleScript.md @@ -0,0 +1,3 @@ +A good example script is SearchAndReplace.py. +If you have any questions please ask them at: +https://github.com/Ultimaker/Cura/issues \ No newline at end of file diff --git a/plugins/PostProcessingPlugin/scripts/ExampleScript.py b/plugins/PostProcessingPlugin/scripts/ExampleScript.py deleted file mode 100644 index 416a5f5404..0000000000 --- a/plugins/PostProcessingPlugin/scripts/ExampleScript.py +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2015 Jaime van Kessel, Ultimaker B.V. -# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. -from ..Script import Script - -class ExampleScript(Script): - def __init__(self): - super().__init__() - - def getSettingDataString(self): - return """{ - "name":"Example script", - "key": "ExampleScript", - "metadata": {}, - "version": 2, - "settings": - { - "test": - { - "label": "Test", - "description": "None", - "unit": "mm", - "type": "float", - "default_value": 0.5, - "minimum_value": "0", - "minimum_value_warning": "0.1", - "maximum_value_warning": "1" - }, - "derp": - { - "label": "zomg", - "description": "afgasgfgasfgasf", - "unit": "mm", - "type": "float", - "default_value": 0.5, - "minimum_value": "0", - "minimum_value_warning": "0.1", - "maximum_value_warning": "1" - } - } - }""" - - def execute(self, data): - return data \ No newline at end of file From bc8bf8780959db152ba572a39a4dc545d1900006 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 29 Nov 2018 15:54:02 +0100 Subject: [PATCH 0581/1039] Align the buttons at the bottom of the panel Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 3 +- .../PrintSetupSelectorContents.qml | 71 +++++++++++-------- 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 0c3a8f80b9..47fa226e9d 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -163,6 +163,7 @@ Item onExited: background.color = headerBackgroundColor } } + DropShadow { id: shadow @@ -182,7 +183,7 @@ Item id: popup // Ensure that the popup is located directly below the headerItem - y: headerItemLoader.height + 2 * background.padding + base.shadowOffset + popupSpacingY + y: background.height + base.shadowOffset + popupSpacingY // Make the popup aligned with the rest, using the property popupAlignment to decide whether is right or left. // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 6e71526f25..309d612fae 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -11,7 +11,7 @@ Item { id: popup - width: UM.Theme.getSize("print_setup_widget").width + width: UM.Theme.getSize("print_setup_widget").width - 2 * UM.Theme.getSize("default_margin").width height: childrenRect.height property int currentModeIndex: -1 @@ -87,22 +87,50 @@ Item color: UM.Theme.getColor("lining") } - Loader + Item { - id: loader - width: parent.width + id: contents + height: childrenRect.height + anchors { top: header.bottom + left: parent.left + right: parent.right + } + + RecommendedPrintSetup + { + anchors + { + left: parent.left + right: parent.right + top: parent.top + } + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + visible: currentModeIndex == 0 + } + + CustomPrintSetup + { + anchors + { + left: parent.left + right: parent.right + top: parent.top + } + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + visible: currentModeIndex == 1 } - sourceComponent: currentModeIndex == 0 ? recommendedPrintSetup : customPrintSetup } Rectangle { id: buttonsSeparator - anchors.top: loader.bottom + anchors.top: contents.bottom width: parent.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") @@ -111,7 +139,8 @@ Item Item { id: buttonRow - height: childrenRect.height + property real padding: UM.Theme.getSize("default_margin").width + height: childrenRect.height + 2 * padding // The buttonsSeparator is inside the buttonRow. This is to avoid some weird behaviours with the scroll bar. anchors @@ -123,46 +152,32 @@ Item Cura.SecondaryButton { + anchors.top: parent.top anchors.left: parent.left + anchors.margins: parent.padding leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Recommended") + iconSource: UM.Theme.getIcon("arrow_left") visible: currentModeIndex == 1 onClicked: currentModeIndex = 0 } Cura.SecondaryButton { + anchors.top: parent.top anchors.right: parent.right + anchors.margins: UM.Theme.getSize("default_margin").width leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Custom") + iconSource: UM.Theme.getIcon("arrow_right") + iconOnRightSide: true visible: currentModeIndex == 0 onClicked: currentModeIndex = 1 } } - Component - { - id: recommendedPrintSetup - RecommendedPrintSetup - { - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - } - - Component - { - id: customPrintSetup - CustomPrintSetup - { - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - } - - Component.onCompleted: { var index = Math.round(UM.Preferences.getValue("cura/active_mode")) From 1c96c81ba98f9887cae38fe8de939db4131da9e4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 11:11:17 +0100 Subject: [PATCH 0582/1039] Remove unnecessary extra setMetaDataEntry This is a relic from when you first had to add the metadata entry. Now it does nothing any more because it's being set directly afterwards to the actual value that is desired in the end. Contributes to issue CURA-5876. --- cura/Settings/ExtruderStack.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index d7faedb71c..ed758db183 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -52,8 +52,6 @@ class ExtruderStack(CuraContainerStack): return super().getNextStack() def setEnabled(self, enabled: bool) -> None: - if "enabled" not in self._metadata: - self.setMetaDataEntry("enabled", "True") self.setMetaDataEntry("enabled", str(enabled)) self.enabledChanged.emit() From 4e2f51e7e8cbc58b647260885cc96d06c00727df Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 11:13:04 +0100 Subject: [PATCH 0583/1039] Use public activeExtruderIndex rather than internal _activeExtruderIndex So that this getter still does what it needs to do if we ever decide to add side-effects. Contributes to issue CURA-5876. --- cura/Settings/ExtruderManager.py | 4 ++-- cura/Settings/MachineManager.py | 2 +- plugins/CuraEngineBackend/ProcessSlicedLayersJob.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 9089ba96e9..b0bcf3b100 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -63,7 +63,7 @@ class ExtruderManager(QObject): if not self._application.getGlobalContainerStack(): return None # No active machine, so no active extruder. try: - return self._extruder_trains[self._application.getGlobalContainerStack().getId()][str(self._active_extruder_index)].getId() + return self._extruder_trains[self._application.getGlobalContainerStack().getId()][str(self.activeExtruderIndex)].getId() except KeyError: # Extruder index could be -1 if the global tab is selected, or the entry doesn't exist if the machine definition is wrong. return None @@ -144,7 +144,7 @@ class ExtruderManager(QObject): @pyqtSlot(result = QObject) def getActiveExtruderStack(self) -> Optional["ExtruderStack"]: - return self.getExtruderStack(self._active_extruder_index) + return self.getExtruderStack(self.activeExtruderIndex) ## Get an extruder stack by index def getExtruderStack(self, index) -> Optional["ExtruderStack"]: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 226a352602..40a3bfc563 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -866,7 +866,7 @@ class MachineManager(QObject): caution_message = Message(catalog.i18nc( "@info:generic", "Settings have been changed to match the current availability of extruders: [%s]" % ", ".join(add_user_changes)), - lifetime=0, + lifetime = 0, title = catalog.i18nc("@info:title", "Settings updated")) caution_message.show() diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index 594bf3a43e..71c96880e8 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -195,7 +195,7 @@ class ProcessSlicedLayersJob(Job): if extruders: material_color_map = numpy.zeros((len(extruders), 4), dtype=numpy.float32) for extruder in extruders: - position = int(extruder.getMetaDataEntry("position", default="0")) # Get the position + position = int(extruder.getMetaDataEntry("position", default = "0")) try: default_color = ExtrudersModel.defaultColors[position] except IndexError: From 17945c6b16ca3d0be7274a6946f68f4d381c8d48 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 30 Nov 2018 11:32:24 +0100 Subject: [PATCH 0584/1039] [WIP] Separate components in different files Contributes to CURA-5941 --- resources/qml/ExpandableComponent.qml | 3 + .../{ => Custom}/CustomPrintSetup.qml | 4 +- .../PrintSetupSelectorContents.qml | 31 +- .../RecommendedInfillDensitySelector.qml | 348 ++++++ .../Recommended/RecommendedPrintSetup.qml | 162 +++ .../RecommendedQualityProfileSelector.qml | 464 +++++++ .../RecommendedSupportSelector.qml | 175 +++ .../RecommendedPrintSetup.qml | 1064 ----------------- resources/qml/qmldir | 3 +- 9 files changed, 1173 insertions(+), 1081 deletions(-) rename resources/qml/PrintSetupSelector/{ => Custom}/CustomPrintSetup.qml (77%) create mode 100644 resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml create mode 100644 resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml create mode 100644 resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml create mode 100644 resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml delete mode 100644 resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 47fa226e9d..82747d1c5b 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -27,6 +27,9 @@ Item // The popupItem holds the QML item that is shown when the "open" button is pressed property var popupItem + // The popupItem holds the QML item that is shown when the "open" button is pressed + property var componentItem + property color popupBackgroundColor: UM.Theme.getColor("action_button") property color headerBackgroundColor: UM.Theme.getColor("action_button") diff --git a/resources/qml/PrintSetupSelector/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml similarity index 77% rename from resources/qml/PrintSetupSelector/CustomPrintSetup.qml rename to resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index f58695b48f..51cd8eff0d 100644 --- a/resources/qml/PrintSetupSelector/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -4,7 +4,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 -import "../Settings" +import Cura 1.0 as Cura -SettingView { +Cura.SettingView { } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 309d612fae..f21253acd7 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -7,6 +7,9 @@ import QtQuick.Controls 2.3 import UM 1.3 as UM import Cura 1.0 as Cura +import "Recommended" +import "Custom" + Item { id: popup @@ -22,7 +25,7 @@ Item { id: header height: UM.Theme.getSize("print_setup_widget_header").height - color: UM.Theme.getColor("action_button_hovered") // TODO: It's not clear the color that we need to use here + color: "transparent" //UM.Theme.getColor("action_button_hovered") // TODO: It's not clear the color that we need to use here anchors { @@ -111,19 +114,19 @@ Item onHideTooltip: base.hideTooltip() visible: currentModeIndex == 0 } - - CustomPrintSetup - { - anchors - { - left: parent.left - right: parent.right - top: parent.top - } - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - visible: currentModeIndex == 1 - } +// +// CustomPrintSetup +// { +// anchors +// { +// left: parent.left +// right: parent.right +// top: parent.top +// } +// onShowTooltip: base.showTooltip(item, location, text) +// onHideTooltip: base.hideTooltip() +// visible: currentModeIndex == 1 +// } } Rectangle diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml new file mode 100644 index 0000000000..34cb8f2f20 --- /dev/null +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -0,0 +1,348 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.2 as UM +import Cura 1.0 as Cura + + +// +// Infill +// +Item +{ + id: infillRow + + Cura.IconWithText + { + id: infillRowTitle + source: UM.Theme.getIcon("category_infill") + text: catalog.i18nc("@label", "Infill") + " (%)" + anchors.bottom: parent.bottom + width: labelColumnWidth + } + + Item + { + id: infillCellRight + + height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) + + anchors.left: infillRowTitle.right + anchors.right: parent.right + + Label + { + id: selectedInfillRateText + + anchors.left: infillSlider.left + anchors.right: parent.right + + text: parseInt(infillDensity.properties.value) + "%" + horizontalAlignment: Text.AlignLeft + + color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + } + + // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider + Binding + { + target: infillSlider + property: "value" + value: parseInt(infillDensity.properties.value) + } + + Slider + { + id: infillSlider + + anchors.top: selectedInfillRateText.bottom + anchors.left: parent.left + anchors.right: infillIcon.left + anchors.rightMargin: UM.Theme.getSize("thick_margin").width + + height: UM.Theme.getSize("thick_margin").height + width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) + + minimumValue: 0 + maximumValue: 100 + stepSize: 1 + tickmarksEnabled: true + + // disable slider when gradual support is enabled + enabled: parseInt(infillSteps.properties.value) == 0 + + // set initial value from stack + value: parseInt(infillDensity.properties.value) + + onValueChanged: + { + + // Don't round the value if it's already the same + if (parseInt(infillDensity.properties.value) == infillSlider.value) + { + return + } + + // Round the slider value to the nearest multiple of 10 (simulate step size of 10) + var roundedSliderValue = Math.round(infillSlider.value / 10) * 10 + + // Update the slider value to represent the rounded value + infillSlider.value = roundedSliderValue + + // Update value only if the Recomended mode is Active, + // Otherwise if I change the value in the Custom mode the Recomended view will try to repeat + // same operation + var active_mode = UM.Preferences.getValue("cura/active_mode") + + if (active_mode == 0 || active_mode == "simple") + { + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue) + Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance") + } + } + + style: SliderStyle + { + groove: Rectangle + { + id: groove + implicitWidth: 200 * screenScaleFactor + implicitHeight: 2 * screenScaleFactor + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + radius: 1 + } + + handle: Item + { + Rectangle + { + id: handleButton + anchors.centerIn: parent + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: 10 * screenScaleFactor + implicitHeight: 10 * screenScaleFactor + radius: 10 * screenScaleFactor + } + } + + tickmarks: Repeater + { + id: repeater + model: control.maximumValue / control.stepSize + 1 + + // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) + function shouldShowTick (index) + { + if (index % 10 == 0) + { + return true + } + return false + } + + Rectangle + { + anchors.verticalCenter: parent.verticalCenter + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + width: 1 * screenScaleFactor + height: 6 * screenScaleFactor + x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) + visible: shouldShowTick(index) + } + } + } + } + + Rectangle + { + id: infillIcon + + width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) + height: width + + anchors.right: parent.right + anchors.top: parent.top + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) + + // we loop over all density icons and only show the one that has the current density and steps + Repeater + { + id: infillIconList + model: infillModel + anchors.fill: parent + + function activeIndex () + { + for (var i = 0; i < infillModel.count; i++) + { + var density = Math.round(infillDensity.properties.value) + var steps = Math.round(infillSteps.properties.value) + var infillModelItem = infillModel.get(i) + + if (infillModelItem != "undefined" + && density >= infillModelItem.percentageMin + && density <= infillModelItem.percentageMax + && steps >= infillModelItem.stepsMin + && steps <= infillModelItem.stepsMax) + { + return i + } + } + return -1 + } + + Rectangle + { + anchors.fill: parent + visible: infillIconList.activeIndex() == index + + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("quality_slider_unavailable") + + UM.RecolorImage + { + anchors.fill: parent + anchors.margins: 2 * screenScaleFactor + sourceSize.width: width + sourceSize.height: width + source: UM.Theme.getIcon(model.icon) + color: UM.Theme.getColor("quality_slider_unavailable") + } + } + } + } + + // Gradual Support Infill Checkbox + CheckBox + { + id: enableGradualInfillCheckBox + property alias _hovered: enableGradualInfillMouseArea.containsMouse + + anchors.top: infillSlider.bottom + anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category + anchors.left: infillCellRight.left + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + visible: infillSteps.properties.enabled == "True" + checked: parseInt(infillSteps.properties.value) > 0 + + MouseArea + { + id: enableGradualInfillMouseArea + + anchors.fill: parent + hoverEnabled: true + enabled: true + + property var previousInfillDensity: parseInt(infillDensity.properties.value) + + onClicked: + { + // Set to 90% only when enabling gradual infill + var newInfillDensity; + if (parseInt(infillSteps.properties.value) == 0) + { + previousInfillDensity = parseInt(infillDensity.properties.value) + newInfillDensity = 90 + } else { + newInfillDensity = previousInfillDensity + } + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) + + var infill_steps_value = 0 + if (parseInt(infillSteps.properties.value) == 0) + { + infill_steps_value = 5 + } + + Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) + } + + onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), + catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) + + onExited: base.hideTooltip() + + } + + Label + { + id: gradualInfillLabel + height: parent.height + anchors.left: enableGradualInfillCheckBox.right + anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) + verticalAlignment: Text.AlignVCenter; + text: catalog.i18nc("@label", "Enable gradual") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + } + + // Infill list model for mapping icon + ListModel + { + id: infillModel + Component.onCompleted: + { + infillModel.append({ + percentageMin: -1, + percentageMax: 0, + stepsMin: -1, + stepsMax: 0, + icon: "hollow" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 40, + stepsMin: -1, + stepsMax: 0, + icon: "sparse" + }) + infillModel.append({ + percentageMin: 40, + percentageMax: 89, + stepsMin: -1, + stepsMax: 0, + icon: "dense" + }) + infillModel.append({ + percentageMin: 90, + percentageMax: 9999999999, + stepsMin: -1, + stepsMax: 0, + icon: "solid" + }) + infillModel.append({ + percentageMin: 0, + percentageMax: 9999999999, + stepsMin: 1, + stepsMax: 9999999999, + icon: "gradual" + }) + } + } + } + + UM.SettingPropertyProvider + { + id: infillDensity + containerStackId: Cura.MachineManager.activeStackId + key: "infill_sparse_density" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: infillSteps + containerStackId: Cura.MachineManager.activeStackId + key: "gradual_infill_steps" + watchedProperties: ["value", "enabled"] + storeIndex: 0 + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml new file mode 100644 index 0000000000..2d4308c8be --- /dev/null +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -0,0 +1,162 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +Rectangle +{ + id: base + + signal showTooltip(Item item, point location, string text) + signal hideTooltip() +// width: parent.width + height: childrenRect.height + 2 * padding + color: "red" + opacity: 0.5 + + property Action configureSettings + + property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 + property real padding: UM.Theme.getSize("thick_margin").width + + UM.I18nCatalog + { + id: catalog + name: "cura" + } + +// Rectangle +// { +// width: parent.width - 2 * parent.padding +// anchors +// { +// left: parent.left +// right: parent.right +// top: parent.top +// margins: parent.padding +// } +// color: "blue" +// height: 50 +// } + + Column + { + width: parent.width - 2 * parent.padding + spacing: UM.Theme.getSize("default_margin").height + anchors + { + left: parent.left + right: parent.right + top: parent.top + margins: parent.padding + } + + // TODO + property real labelColumnWidth: Math.round(width / 3) + property real settingsColumnWidth: width - labelColumnWidth + + RecommendedQualityProfileSelector + { + width: parent.width + // TODO Create a reusable component with these properties to not define them separately for each component + property real labelColumnWidth: parent.labelColumnWidth + property real settingsColumnWidth: parent.settingsColumnWidth + } + +// RecommendedInfillDensitySelector +// { +// width: parent.width +// height: childrenRect.height +// // TODO Create a reusable component with these properties to not define them separately for each component +// property real labelColumnWidth: parent.labelColumnWidth +// property real settingsColumnWidth: parent.settingsColumnWidth +// } +// +// RecommendedSupportSelector +// { +// width: parent.width +// height: childrenRect.height +// // TODO Create a reusable component with these properties to not define them separately for each component +// property real labelColumnWidth: parent.labelColumnWidth +// property real settingsColumnWidth: parent.settingsColumnWidth +// } + + +// +// // Adhesion +// Row +// { +// anchors.left: parent.left +// anchors.right: parent.right +// height: childrenRect.height +// +// Cura.IconWithText +// { +// id: adhesionHelperLabel +// visible: adhesionCheckBox.visible +// source: UM.Theme.getIcon("category_adhesion") +// text: catalog.i18nc("@label", "Adhesion") +// width: labelColumnWidth +// } +// +// CheckBox +// { +// id: adhesionCheckBox +// property alias _hovered: adhesionMouseArea.containsMouse +// +// //: Setting enable printing build-plate adhesion helper checkbox +// style: UM.Theme.styles.checkbox +// enabled: base.settingsEnabled +// +// visible: platformAdhesionType.properties.enabled == "True" +// checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" +// +// MouseArea +// { +// id: adhesionMouseArea +// anchors.fill: parent +// hoverEnabled: true +// enabled: base.settingsEnabled +// onClicked: +// { +// var adhesionType = "skirt" +// if(!parent.checked) +// { +// // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft +// platformAdhesionType.removeFromContainer(0) +// adhesionType = platformAdhesionType.properties.value +// if(adhesionType == "skirt" || adhesionType == "none") +// { +// // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim +// adhesionType = "brim" +// } +// } +// platformAdhesionType.setPropertyValue("value", adhesionType) +// } +// onEntered: +// { +// base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), +// catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); +// } +// onExited: base.hideTooltip() +// } +// } +// } + } + + + UM.SettingPropertyProvider + { + id: platformAdhesionType + containerStack: Cura.MachineManager.activeMachine + removeUnusedValue: false //Doesn't work with settings that are resolved. + key: "adhesion_type" + watchedProperties: [ "value", "enabled" ] + storeIndex: 0 + } +} diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml new file mode 100644 index 0000000000..3bf93c0c07 --- /dev/null +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -0,0 +1,464 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.2 as UM +import Cura 1.0 as Cura + + +// +// Quality profile +// +Item +{ + id: qualityRow + height: childrenRect.height + + Timer + { + id: qualitySliderChangeTimer + interval: 50 + running: false + repeat: false + onTriggered: + { + var item = Cura.QualityProfilesDropDownMenuModel.getItem(qualitySlider.value); + Cura.MachineManager.activeQualityGroup = item.quality_group; + } + } + + Component.onCompleted: qualityModel.update() + + Connections + { + target: Cura.QualityProfilesDropDownMenuModel + onItemsChanged: qualityModel.update() + } + + Connections { + target: base + onVisibleChanged: + { + // update needs to be called when the widgets are visible, otherwise the step width calculation + // will fail because the width of an invisible item is 0. + if (visible) + { + qualityModel.update(); + } + } + } + + ListModel + { + id: qualityModel + + property var totalTicks: 0 + property var availableTotalTicks: 0 + property var existingQualityProfile: 0 + + property var qualitySliderActiveIndex: 0 + property var qualitySliderStepWidth: 0 + property var qualitySliderAvailableMin: 0 + property var qualitySliderAvailableMax: 0 + property var qualitySliderMarginRight: 0 + + function update () + { + reset() + + var availableMin = -1 + var availableMax = -1 + + for (var i = 0; i < Cura.QualityProfilesDropDownMenuModel.rowCount(); i++) + { + var qualityItem = Cura.QualityProfilesDropDownMenuModel.getItem(i) + + // Add each quality item to the UI quality model + qualityModel.append(qualityItem) + + // Set selected value + if (Cura.MachineManager.activeQualityType == qualityItem.quality_type) + { + // set to -1 when switching to user created profile so all ticks are clickable + if (Cura.SimpleModeSettingsManager.isProfileUserCreated) + { + qualityModel.qualitySliderActiveIndex = -1 + } + else + { + qualityModel.qualitySliderActiveIndex = i + } + + qualityModel.existingQualityProfile = 1 + } + + // Set min available + if (qualityItem.available && availableMin == -1) + { + availableMin = i + } + + // Set max available + if (qualityItem.available) + { + availableMax = i + } + } + + // Set total available ticks for active slider part + if (availableMin != -1) + { + qualityModel.availableTotalTicks = availableMax - availableMin + 1 + } + + // Calculate slider values + calculateSliderStepWidth(qualityModel.totalTicks) + calculateSliderMargins(availableMin, availableMax, qualityModel.totalTicks) + + qualityModel.qualitySliderAvailableMin = availableMin + qualityModel.qualitySliderAvailableMax = availableMax + } + + function calculateSliderStepWidth (totalTicks) + { + qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((settingsColumnWidth) / (totalTicks)) : 0 + } + + function calculateSliderMargins (availableMin, availableMax, totalTicks) + { + if (availableMin == -1 || (availableMin == 0 && availableMax == 0)) + { + qualityModel.qualitySliderMarginRight = Math.round(settingsColumnWidth) + } + else if (availableMin == availableMax) + { + qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMin) * qualitySliderStepWidth) + } + else + { + qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMax) * qualitySliderStepWidth) + } + } + + function reset () { + qualityModel.clear() + qualityModel.availableTotalTicks = 0 + qualityModel.existingQualityProfile = 0 + + // check, the ticks count cannot be less than zero + qualityModel.totalTicks = Math.max(0, Cura.QualityProfilesDropDownMenuModel.rowCount() - 1) + } + } + + Cura.IconWithText + { + id: qualityRowTitle + source: UM.Theme.getIcon("category_layer_height") + text: catalog.i18nc("@label", "Layer Height") +// anchors.bottom: speedSlider.bottom + width: labelColumnWidth + } + + //Print speed slider + Rectangle + { + id: speedSlider + + anchors + { + left: qualityRowTitle.right + right: parent.right + } + + color: "green" + height: 20 + } +// +// // Show titles for the each quality slider ticks +// Item +// { +// anchors.left: speedSlider.left +// anchors.top: speedSlider.bottom +// +// Repeater +// { +// model: qualityModel +// +// Label +// { +// anchors.verticalCenter: parent.verticalCenter +// anchors.top: parent.top +// color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") +// text: +// { +// var result = "" +// if(Cura.MachineManager.activeMachine != null) +// { +// result = Cura.QualityProfilesDropDownMenuModel.getItem(index).layer_height +// +// if(result == undefined) +// { +// result = ""; +// } +// else +// { +// result = Number(Math.round(result + "e+2") + "e-2"); //Round to 2 decimals. Javascript makes this difficult... +// if (result == undefined || result != result) //Parse failure. +// { +// result = ""; +// } +// } +// } +// return result +// } +// +// x: +// { +// // Make sure the text aligns correctly with each tick +// if (qualityModel.totalTicks == 0) +// { +// // If there is only one tick, align it centrally +// return Math.round(((settingsColumnWidth) - width) / 2) +// } +// else if (index == 0) +// { +// return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index +// } +// else if (index == qualityModel.totalTicks) +// { +// return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index - width +// } +// else +// { +// return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2)) +// } +// } +// } +// } +// } +// +// //Print speed slider +// Rectangle +// { +// id: speedSlider +// +// anchors +// { +// left: qualityRowTitle.right +// right: parent.right +// } +// +// // This Item is used only for tooltip, for slider area which is unavailable +//// Item +//// { +//// function showTooltip (showTooltip) +//// { +//// if (showTooltip) +//// { +//// var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") +//// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) +//// } +//// else +//// { +//// base.hideTooltip() +//// } +//// } +//// +//// id: unavailableLineToolTip +//// height: 20 * screenScaleFactor // hovered area height +//// z: parent.z + 1 // should be higher, otherwise the area can be hovered +//// x: 0 +//// anchors.verticalCenter: qualitySlider.verticalCenter +//// +//// Rectangle +//// { +//// id: leftArea +//// width: +//// { +//// if (qualityModel.availableTotalTicks == 0) +//// { +//// return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks +//// } +//// return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 +//// } +//// height: parent.height +//// color: "transparent" +//// +//// MouseArea +//// { +//// anchors.fill: parent +//// hoverEnabled: true +//// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false +//// onEntered: unavailableLineToolTip.showTooltip(true) +//// onExited: unavailableLineToolTip.showTooltip(false) +//// } +//// } +//// +//// Item +//// { +//// id: rightArea +//// width: +//// { +//// if(qualityModel.availableTotalTicks == 0) +//// return 0 +//// +//// return qualityModel.qualitySliderMarginRight - 10 +//// } +//// height: parent.height +//// x: +//// { +//// if (qualityModel.availableTotalTicks == 0) +//// { +//// return 0 +//// } +//// +//// var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin +//// var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 +//// +//// return totalGap +//// } +//// +//// MouseArea +//// { +//// anchors.fill: parent +//// hoverEnabled: true +//// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false +//// onEntered: unavailableLineToolTip.showTooltip(true) +//// onExited: unavailableLineToolTip.showTooltip(false) +//// } +//// } +//// } +// +// // Draw Unavailable line +// Rectangle +// { +// id: groovechildrect +// width: parent.width +// height: 2 * screenScaleFactor +// color: UM.Theme.getColor("quality_slider_unavailable") +// anchors.verticalCenter: qualitySlider.verticalCenter +// +// // Draw ticks +// Repeater +// { +// id: qualityRepeater +// model: qualityModel.totalTicks > 0 ? qualityModel : 0 +// +// Rectangle +// { +// color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") +// implicitWidth: 4 * screenScaleFactor +// implicitHeight: implicitWidth +// anchors.verticalCenter: parent.verticalCenter +// x: Math.round(qualityModel.qualitySliderStepWidth * index) +// radius: Math.round(implicitWidth / 2) +// } +// } +// } +// +// // Draw available slider +// Slider +// { +// id: qualitySlider +// height: UM.Theme.getSize("thick_margin").height +// anchors.bottom: parent.bottom +// enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized +// visible: qualityModel.availableTotalTicks > 0 +// updateValueWhileDragging : false +// +// minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 +// // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly +// // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) +// maximumValue: qualityModel.qualitySliderAvailableMax >= 1 ? qualityModel.qualitySliderAvailableMax : 1 +// stepSize: 1 +// +// value: qualityModel.qualitySliderActiveIndex +// +// width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) +// +// anchors.right: parent.right +// anchors.rightMargin: qualityModel.qualitySliderMarginRight +// +// style: SliderStyle +// { +// //Draw Available line +// groove: Rectangle +// { +// implicitHeight: 2 * screenScaleFactor +// color: UM.Theme.getColor("quality_slider_available") +// radius: Math.round(height / 2) +// } +// +// handle: Rectangle +// { +// id: qualityhandleButton +// color: UM.Theme.getColor("quality_slider_available") +// implicitWidth: 12 * screenScaleFactor +// implicitHeight: implicitWidth +// radius: Math.round(implicitWidth / 2) +// visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile +// } +// } +// +// onValueChanged: +// { +// // only change if an active machine is set and the slider is visible at all. +// if (Cura.MachineManager.activeMachine != null && visible) +// { +// // prevent updating during view initializing. Trigger only if the value changed by user +// if (qualitySlider.value != qualityModel.qualitySliderActiveIndex && qualityModel.qualitySliderActiveIndex != -1) +// { +// // start updating with short delay +// qualitySliderChangeTimer.start() +// } +// } +// } +// } +// +// MouseArea +// { +// id: speedSliderMouseArea +// anchors.fill: parent +// hoverEnabled: true +// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated +// +// onEntered: +// { +// var content = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") +// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) +// } +// onExited: base.hideTooltip() +// } +// } +// +// UM.SimpleButton +// { +// id: customisedSettings +// +// visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated +// height: Math.round(speedSlider.height * 0.8) +// width: Math.round(speedSlider.height * 0.8) +// +// anchors.verticalCenter: speedSlider.verticalCenter +// anchors.right: speedSlider.left +// anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) +// +// color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); +// iconSource: UM.Theme.getIcon("reset"); +// +// onClicked: +// { +// // if the current profile is user-created, switch to a built-in quality +// Cura.MachineManager.resetToUseDefaultQuality() +// } +// onEntered: +// { +// var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") +// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) +// } +// onExited: base.hideTooltip() +// } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml new file mode 100644 index 0000000000..9c4e5ed576 --- /dev/null +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -0,0 +1,175 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +// +// Enable support +// +Row +{ + + Cura.IconWithText + { + id: enableSupportLabel + visible: enableSupportCheckBox.visible + source: UM.Theme.getIcon("category_support") + text: catalog.i18nc("@label", "Support") + width: labelColumnWidth + } + + CheckBox + { + id: enableSupportCheckBox + property alias _hovered: enableSupportMouseArea.containsMouse + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + + visible: supportEnabled.properties.enabled == "True" + checked: supportEnabled.properties.value == "True" + + MouseArea + { + id: enableSupportMouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") + + onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), + catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) + + onExited: base.hideTooltip() + + } + } + + ComboBox + { + id: supportExtruderCombobox + visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) + model: extruderModel + + property string color_override: "" // for manually setting values + property string color: // is evaluated automatically, but the first time is before extruderModel being filled + { + var current_extruder = extruderModel.get(currentIndex); + color_override = ""; + if (current_extruder === undefined) return "" + return (current_extruder.color) ? current_extruder.color : ""; + } + + textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started + + width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width + height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 + + Behavior on height { NumberAnimation { duration: 100 } } + + style: UM.Theme.styles.combobox_color + enabled: base.settingsEnabled + property alias _hovered: supportExtruderMouseArea.containsMouse + + currentIndex: + { + if (supportExtruderNr.properties == null) + { + return Cura.MachineManager.defaultExtruderPosition + } + else + { + var extruder = parseInt(supportExtruderNr.properties.value) + if ( extruder === -1) + { + return Cura.MachineManager.defaultExtruderPosition + } + return extruder; + } + } + + onActivated: supportExtruderNr.setPropertyValue("value", String(index)) + + MouseArea + { + id: supportExtruderMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + acceptedButtons: Qt.NoButton + onEntered: + { + base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), + catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); + } + onExited: base.hideTooltip() + + } + + function updateCurrentColor() + { + var current_extruder = extruderModel.get(currentIndex) + if (current_extruder !== undefined) + { + supportExtruderCombobox.color_override = current_extruder.color + } + } + } + + ListModel + { + id: extruderModel + Component.onCompleted: populateExtruderModel() + } + + //: Model used to populate the extrudelModel + Cura.ExtrudersModel + { + id: extruders + onModelChanged: populateExtruderModel() + } + + UM.SettingPropertyProvider + { + id: supportEnabled + containerStack: Cura.MachineManager.activeMachine + key: "support_enable" + watchedProperties: [ "value", "enabled", "description" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: extrudersEnabledCount + containerStack: Cura.MachineManager.activeMachine + key: "extruders_enabled_count" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + UM.SettingPropertyProvider + { + id: supportExtruderNr + containerStack: Cura.MachineManager.activeMachine + key: "support_extruder_nr" + watchedProperties: [ "value" ] + storeIndex: 0 + } + + function populateExtruderModel() + { + extruderModel.clear() + for (var extruderNumber = 0; extruderNumber < extruders.rowCount(); extruderNumber++) + { + extruderModel.append({ + text: extruders.getItem(extruderNumber).name, + color: extruders.getItem(extruderNumber).color + }) + } + supportExtruderCombobox.updateCurrentColor() + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml deleted file mode 100644 index b48282135b..0000000000 --- a/resources/qml/PrintSetupSelector/RecommendedPrintSetup.qml +++ /dev/null @@ -1,1064 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -Column -{ - id: base - - signal showTooltip(Item item, point location, string text) - signal hideTooltip() - height: childrenRect.height + 2 * padding - - padding: UM.Theme.getSize("thick_margin").width - spacing: UM.Theme.getSize("default_margin").height - - property Action configureSettings - - property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 - property real labelColumnWidth: Math.round(width / 3) - property real settingsColumnWidth: width - labelColumnWidth - - UM.I18nCatalog - { - id: catalog - name: "cura" - } - - // - // Quality profile - // - Item - { - id: qualityRow - - anchors.left: parent.left - anchors.right: parent.right - height: childrenRect.height - - Timer - { - id: qualitySliderChangeTimer - interval: 50 - running: false - repeat: false - onTriggered: - { - var item = Cura.QualityProfilesDropDownMenuModel.getItem(qualitySlider.value); - Cura.MachineManager.activeQualityGroup = item.quality_group; - } - } - - Component.onCompleted: qualityModel.update() - - Connections - { - target: Cura.QualityProfilesDropDownMenuModel - onItemsChanged: qualityModel.update() - } - - Connections { - target: base - onVisibleChanged: - { - // update needs to be called when the widgets are visible, otherwise the step width calculation - // will fail because the width of an invisible item is 0. - if (visible) - { - qualityModel.update(); - } - } - } - - ListModel - { - id: qualityModel - - property var totalTicks: 0 - property var availableTotalTicks: 0 - property var existingQualityProfile: 0 - - property var qualitySliderActiveIndex: 0 - property var qualitySliderStepWidth: 0 - property var qualitySliderAvailableMin: 0 - property var qualitySliderAvailableMax: 0 - property var qualitySliderMarginRight: 0 - - function update () - { - reset() - - var availableMin = -1 - var availableMax = -1 - - for (var i = 0; i < Cura.QualityProfilesDropDownMenuModel.rowCount(); i++) - { - var qualityItem = Cura.QualityProfilesDropDownMenuModel.getItem(i) - - // Add each quality item to the UI quality model - qualityModel.append(qualityItem) - - // Set selected value - if (Cura.MachineManager.activeQualityType == qualityItem.quality_type) - { - // set to -1 when switching to user created profile so all ticks are clickable - if (Cura.SimpleModeSettingsManager.isProfileUserCreated) - { - qualityModel.qualitySliderActiveIndex = -1 - } - else - { - qualityModel.qualitySliderActiveIndex = i - } - - qualityModel.existingQualityProfile = 1 - } - - // Set min available - if (qualityItem.available && availableMin == -1) - { - availableMin = i - } - - // Set max available - if (qualityItem.available) - { - availableMax = i - } - } - - // Set total available ticks for active slider part - if (availableMin != -1) - { - qualityModel.availableTotalTicks = availableMax - availableMin + 1 - } - - // Calculate slider values - calculateSliderStepWidth(qualityModel.totalTicks) - calculateSliderMargins(availableMin, availableMax, qualityModel.totalTicks) - - qualityModel.qualitySliderAvailableMin = availableMin - qualityModel.qualitySliderAvailableMax = availableMax - } - - function calculateSliderStepWidth (totalTicks) - { - qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((settingsColumnWidth) / (totalTicks)) : 0 - } - - function calculateSliderMargins (availableMin, availableMax, totalTicks) - { - if (availableMin == -1 || (availableMin == 0 && availableMax == 0)) - { - qualityModel.qualitySliderMarginRight = Math.round(settingsColumnWidth) - } - else if (availableMin == availableMax) - { - qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMin) * qualitySliderStepWidth) - } - else - { - qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMax) * qualitySliderStepWidth) - } - } - - function reset () { - qualityModel.clear() - qualityModel.availableTotalTicks = 0 - qualityModel.existingQualityProfile = 0 - - // check, the ticks count cannot be less than zero - qualityModel.totalTicks = Math.max(0, Cura.QualityProfilesDropDownMenuModel.rowCount() - 1) - } - } - - Cura.IconWithText - { - id: qualityRowTitle - source: UM.Theme.getIcon("category_layer_height") - text: catalog.i18nc("@label", "Layer Height") - anchors.bottom: speedSlider.bottom - width: labelColumnWidth - } - - // Show titles for the each quality slider ticks - Item - { - anchors.left: speedSlider.left - anchors.top: speedSlider.bottom - - Repeater - { - model: qualityModel - - Label - { - anchors.verticalCenter: parent.verticalCenter - anchors.top: parent.top - color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - text: - { - var result = "" - if(Cura.MachineManager.activeMachine != null) - { - result = Cura.QualityProfilesDropDownMenuModel.getItem(index).layer_height - - if(result == undefined) - { - result = ""; - } - else - { - result = Number(Math.round(result + "e+2") + "e-2"); //Round to 2 decimals. Javascript makes this difficult... - if (result == undefined || result != result) //Parse failure. - { - result = ""; - } - } - } - return result - } - - x: - { - // Make sure the text aligns correctly with each tick - if (qualityModel.totalTicks == 0) - { - // If there is only one tick, align it centrally - return Math.round(((settingsColumnWidth) - width) / 2) - } - else if (index == 0) - { - return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index - } - else if (index == qualityModel.totalTicks) - { - return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index - width - } - else - { - return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2)) - } - } - } - } - } - - //Print speed slider - Rectangle - { - id: speedSlider - - anchors - { - left: qualityRowTitle.right - right: parent.right - } - - // This Item is used only for tooltip, for slider area which is unavailable -// Item -// { -// function showTooltip (showTooltip) -// { -// if (showTooltip) -// { -// var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") -// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) -// } -// else -// { -// base.hideTooltip() -// } -// } -// -// id: unavailableLineToolTip -// height: 20 * screenScaleFactor // hovered area height -// z: parent.z + 1 // should be higher, otherwise the area can be hovered -// x: 0 -// anchors.verticalCenter: qualitySlider.verticalCenter -// -// Rectangle -// { -// id: leftArea -// width: -// { -// if (qualityModel.availableTotalTicks == 0) -// { -// return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks -// } -// return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 -// } -// height: parent.height -// color: "transparent" -// -// MouseArea -// { -// anchors.fill: parent -// hoverEnabled: true -// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false -// onEntered: unavailableLineToolTip.showTooltip(true) -// onExited: unavailableLineToolTip.showTooltip(false) -// } -// } -// -// Item -// { -// id: rightArea -// width: -// { -// if(qualityModel.availableTotalTicks == 0) -// return 0 -// -// return qualityModel.qualitySliderMarginRight - 10 -// } -// height: parent.height -// x: -// { -// if (qualityModel.availableTotalTicks == 0) -// { -// return 0 -// } -// -// var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin -// var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 -// -// return totalGap -// } -// -// MouseArea -// { -// anchors.fill: parent -// hoverEnabled: true -// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false -// onEntered: unavailableLineToolTip.showTooltip(true) -// onExited: unavailableLineToolTip.showTooltip(false) -// } -// } -// } - - // Draw Unavailable line - Rectangle - { - id: groovechildrect - width: parent.width - height: 2 * screenScaleFactor - color: UM.Theme.getColor("quality_slider_unavailable") - anchors.verticalCenter: qualitySlider.verticalCenter - - // Draw ticks - Repeater - { - id: qualityRepeater - model: qualityModel.totalTicks > 0 ? qualityModel : 0 - - Rectangle - { - color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - implicitWidth: 4 * screenScaleFactor - implicitHeight: implicitWidth - anchors.verticalCenter: parent.verticalCenter - x: Math.round(qualityModel.qualitySliderStepWidth * index) - radius: Math.round(implicitWidth / 2) - } - } - } - - // Draw available slider - Slider - { - id: qualitySlider - height: UM.Theme.getSize("thick_margin").height - anchors.bottom: parent.bottom - enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized - visible: qualityModel.availableTotalTicks > 0 - updateValueWhileDragging : false - - minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 - // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly - // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) - maximumValue: qualityModel.qualitySliderAvailableMax >= 1 ? qualityModel.qualitySliderAvailableMax : 1 - stepSize: 1 - - value: qualityModel.qualitySliderActiveIndex - - width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) - - anchors.right: parent.right - anchors.rightMargin: qualityModel.qualitySliderMarginRight - - style: SliderStyle - { - //Draw Available line - groove: Rectangle - { - implicitHeight: 2 * screenScaleFactor - color: UM.Theme.getColor("quality_slider_available") - radius: Math.round(height / 2) - } - - handle: Rectangle - { - id: qualityhandleButton - color: UM.Theme.getColor("quality_slider_available") - implicitWidth: 12 * screenScaleFactor - implicitHeight: implicitWidth - radius: Math.round(implicitWidth / 2) - visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile - } - } - - onValueChanged: - { - // only change if an active machine is set and the slider is visible at all. - if (Cura.MachineManager.activeMachine != null && visible) - { - // prevent updating during view initializing. Trigger only if the value changed by user - if (qualitySlider.value != qualityModel.qualitySliderActiveIndex && qualityModel.qualitySliderActiveIndex != -1) - { - // start updating with short delay - qualitySliderChangeTimer.start() - } - } - } - } - - MouseArea - { - id: speedSliderMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated - - onEntered: - { - var content = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) - } - onExited: base.hideTooltip() - } - } - - UM.SimpleButton - { - id: customisedSettings - - visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated - height: Math.round(speedSlider.height * 0.8) - width: Math.round(speedSlider.height * 0.8) - - anchors.verticalCenter: speedSlider.verticalCenter - anchors.right: speedSlider.left - anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - - color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); - iconSource: UM.Theme.getIcon("reset"); - - onClicked: - { - // if the current profile is user-created, switch to a built-in quality - Cura.MachineManager.resetToUseDefaultQuality() - } - onEntered: - { - var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) - } - onExited: base.hideTooltip() - } - } - - // - // Infill - // - Item - { - anchors.left: parent.left - anchors.right: parent.right - height: childrenRect.height - - Cura.IconWithText - { - id: infillRowTitle - source: UM.Theme.getIcon("category_infill") - text: catalog.i18nc("@label", "Infill") + " (%)" - anchors.bottom: parent.bottom - width: labelColumnWidth - } - - Item - { - id: infillCellRight - - height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) - - anchors.left: infillRowTitle.right - anchors.right: parent.right - - Label - { - id: selectedInfillRateText - - anchors.left: infillSlider.left - anchors.right: parent.right - - text: parseInt(infillDensity.properties.value) + "%" - horizontalAlignment: Text.AlignLeft - - color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - } - - // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider - Binding - { - target: infillSlider - property: "value" - value: parseInt(infillDensity.properties.value) - } - - Slider - { - id: infillSlider - - anchors.top: selectedInfillRateText.bottom - anchors.left: parent.left - anchors.right: infillIcon.left - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - - height: UM.Theme.getSize("thick_margin").height - width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) - - minimumValue: 0 - maximumValue: 100 - stepSize: 1 - tickmarksEnabled: true - - // disable slider when gradual support is enabled - enabled: parseInt(infillSteps.properties.value) == 0 - - // set initial value from stack - value: parseInt(infillDensity.properties.value) - - onValueChanged: - { - - // Don't round the value if it's already the same - if (parseInt(infillDensity.properties.value) == infillSlider.value) - { - return - } - - // Round the slider value to the nearest multiple of 10 (simulate step size of 10) - var roundedSliderValue = Math.round(infillSlider.value / 10) * 10 - - // Update the slider value to represent the rounded value - infillSlider.value = roundedSliderValue - - // Update value only if the Recomended mode is Active, - // Otherwise if I change the value in the Custom mode the Recomended view will try to repeat - // same operation - var active_mode = UM.Preferences.getValue("cura/active_mode") - - if (active_mode == 0 || active_mode == "simple") - { - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue) - Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance") - } - } - - style: SliderStyle - { - groove: Rectangle - { - id: groove - implicitWidth: 200 * screenScaleFactor - implicitHeight: 2 * screenScaleFactor - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - radius: 1 - } - - handle: Item - { - Rectangle - { - id: handleButton - anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - implicitWidth: 10 * screenScaleFactor - implicitHeight: 10 * screenScaleFactor - radius: 10 * screenScaleFactor - } - } - - tickmarks: Repeater - { - id: repeater - model: control.maximumValue / control.stepSize + 1 - - // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) - function shouldShowTick (index) - { - if (index % 10 == 0) - { - return true - } - return false - } - - Rectangle - { - anchors.verticalCenter: parent.verticalCenter - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - width: 1 * screenScaleFactor - height: 6 * screenScaleFactor - x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) - visible: shouldShowTick(index) - } - } - } - } - - Rectangle - { - id: infillIcon - - width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) - height: width - - anchors.right: parent.right - anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) - - // we loop over all density icons and only show the one that has the current density and steps - Repeater - { - id: infillIconList - model: infillModel - anchors.fill: parent - - function activeIndex () - { - for (var i = 0; i < infillModel.count; i++) - { - var density = Math.round(infillDensity.properties.value) - var steps = Math.round(infillSteps.properties.value) - var infillModelItem = infillModel.get(i) - - if (infillModelItem != "undefined" - && density >= infillModelItem.percentageMin - && density <= infillModelItem.percentageMax - && steps >= infillModelItem.stepsMin - && steps <= infillModelItem.stepsMax) - { - return i - } - } - return -1 - } - - Rectangle - { - anchors.fill: parent - visible: infillIconList.activeIndex() == index - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("quality_slider_unavailable") - - UM.RecolorImage - { - anchors.fill: parent - anchors.margins: 2 * screenScaleFactor - sourceSize.width: width - sourceSize.height: width - source: UM.Theme.getIcon(model.icon) - color: UM.Theme.getColor("quality_slider_unavailable") - } - } - } - } - - // Gradual Support Infill Checkbox - CheckBox - { - id: enableGradualInfillCheckBox - property alias _hovered: enableGradualInfillMouseArea.containsMouse - - anchors.top: infillSlider.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category - anchors.left: infillCellRight.left - - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - visible: infillSteps.properties.enabled == "True" - checked: parseInt(infillSteps.properties.value) > 0 - - MouseArea - { - id: enableGradualInfillMouseArea - - anchors.fill: parent - hoverEnabled: true - enabled: true - - property var previousInfillDensity: parseInt(infillDensity.properties.value) - - onClicked: - { - // Set to 90% only when enabling gradual infill - var newInfillDensity; - if (parseInt(infillSteps.properties.value) == 0) - { - previousInfillDensity = parseInt(infillDensity.properties.value) - newInfillDensity = 90 - } else { - newInfillDensity = previousInfillDensity - } - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) - - var infill_steps_value = 0 - if (parseInt(infillSteps.properties.value) == 0) - { - infill_steps_value = 5 - } - - Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) - } - - onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), - catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) - - onExited: base.hideTooltip() - - } - - Label - { - id: gradualInfillLabel - height: parent.height - anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - verticalAlignment: Text.AlignVCenter; - text: catalog.i18nc("@label", "Enable gradual") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - } - - // Infill list model for mapping icon - ListModel - { - id: infillModel - Component.onCompleted: - { - infillModel.append({ - percentageMin: -1, - percentageMax: 0, - stepsMin: -1, - stepsMax: 0, - icon: "hollow" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 40, - stepsMin: -1, - stepsMax: 0, - icon: "sparse" - }) - infillModel.append({ - percentageMin: 40, - percentageMax: 89, - stepsMin: -1, - stepsMax: 0, - icon: "dense" - }) - infillModel.append({ - percentageMin: 90, - percentageMax: 9999999999, - stepsMin: -1, - stepsMax: 0, - icon: "solid" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 9999999999, - stepsMin: 1, - stepsMax: 9999999999, - icon: "gradual" - }) - } - } - } - } - - // - // Enable support - // - Row - { - anchors.left: parent.left - anchors.right: parent.right - height: childrenRect.height - - Cura.IconWithText - { - id: enableSupportLabel - visible: enableSupportCheckBox.visible - source: UM.Theme.getIcon("category_support") - text: catalog.i18nc("@label", "Support") - width: labelColumnWidth - } - - CheckBox - { - id: enableSupportCheckBox - property alias _hovered: enableSupportMouseArea.containsMouse - - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - - visible: supportEnabled.properties.enabled == "True" - checked: supportEnabled.properties.value == "True" - - MouseArea - { - id: enableSupportMouseArea - anchors.fill: parent - hoverEnabled: true - onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") - - onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), - catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) - - onExited: base.hideTooltip() - - } - } - - ComboBox - { - id: supportExtruderCombobox - visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) - model: extruderModel - - property string color_override: "" // for manually setting values - property string color: // is evaluated automatically, but the first time is before extruderModel being filled - { - var current_extruder = extruderModel.get(currentIndex); - color_override = ""; - if (current_extruder === undefined) return "" - return (current_extruder.color) ? current_extruder.color : ""; - } - - textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started - - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width - height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 - - Behavior on height { NumberAnimation { duration: 100 } } - - style: UM.Theme.styles.combobox_color - enabled: base.settingsEnabled - property alias _hovered: supportExtruderMouseArea.containsMouse - - currentIndex: - { - if (supportExtruderNr.properties == null) - { - return Cura.MachineManager.defaultExtruderPosition - } - else - { - var extruder = parseInt(supportExtruderNr.properties.value) - if ( extruder === -1) - { - return Cura.MachineManager.defaultExtruderPosition - } - return extruder; - } - } - - onActivated: supportExtruderNr.setPropertyValue("value", String(index)) - - MouseArea - { - id: supportExtruderMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - acceptedButtons: Qt.NoButton - onEntered: - { - base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), - catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); - } - onExited: base.hideTooltip() - - } - - function updateCurrentColor() - { - var current_extruder = extruderModel.get(currentIndex) - if (current_extruder !== undefined) - { - supportExtruderCombobox.color_override = current_extruder.color - } - } - - } - } - - // Adhesion - Row - { - anchors.left: parent.left - anchors.right: parent.right - height: childrenRect.height - - Cura.IconWithText - { - id: adhesionHelperLabel - visible: adhesionCheckBox.visible - source: UM.Theme.getIcon("category_adhesion") - text: catalog.i18nc("@label", "Adhesion") - width: labelColumnWidth - } - - CheckBox - { - id: adhesionCheckBox - property alias _hovered: adhesionMouseArea.containsMouse - - //: Setting enable printing build-plate adhesion helper checkbox - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - - visible: platformAdhesionType.properties.enabled == "True" - checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" - - MouseArea - { - id: adhesionMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - onClicked: - { - var adhesionType = "skirt" - if(!parent.checked) - { - // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft - platformAdhesionType.removeFromContainer(0) - adhesionType = platformAdhesionType.properties.value - if(adhesionType == "skirt" || adhesionType == "none") - { - // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim - adhesionType = "brim" - } - } - platformAdhesionType.setPropertyValue("value", adhesionType) - } - onEntered: - { - base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), - catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); - } - onExited: base.hideTooltip() - } - } - } - - ListModel - { - id: extruderModel - Component.onCompleted: populateExtruderModel() - } - - //: Model used to populate the extrudelModel - Cura.ExtrudersModel - { - id: extruders - onModelChanged: populateExtruderModel() - } - - UM.SettingPropertyProvider - { - id: infillExtruderNumber - containerStackId: Cura.MachineManager.activeStackId - key: "infill_extruder_nr" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: infillDensity - containerStackId: Cura.MachineManager.activeStackId - key: "infill_sparse_density" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: infillSteps - containerStackId: Cura.MachineManager.activeStackId - key: "gradual_infill_steps" - watchedProperties: ["value", "enabled"] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: platformAdhesionType - containerStack: Cura.MachineManager.activeMachine - removeUnusedValue: false //Doesn't work with settings that are resolved. - key: "adhesion_type" - watchedProperties: [ "value", "enabled" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: supportEnabled - containerStack: Cura.MachineManager.activeMachine - key: "support_enable" - watchedProperties: [ "value", "enabled", "description" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: extrudersEnabledCount - containerStack: Cura.MachineManager.activeMachine - key: "extruders_enabled_count" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: supportExtruderNr - containerStack: Cura.MachineManager.activeMachine - key: "support_extruder_nr" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - function populateExtruderModel() - { - extruderModel.clear() - for (var extruderNumber = 0; extruderNumber < extruders.rowCount(); extruderNumber++) - { - extruderModel.append({ - text: extruders.getItem(extruderNumber).name, - color: extruders.getItem(extruderNumber).color - }) - } - supportExtruderCombobox.updateCurrentColor() - } -} diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 6db8e0c544..c0a8bac0ae 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -14,4 +14,5 @@ OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml ExpandableComponent 1.0 ExpandableComponent.qml PrinterTypeLabel 1.0 PrinterTypeLabel.qml ViewsSelector 1.0 ViewsSelector.qml -ToolbarButton 1.0 ToolbarButton.qml \ No newline at end of file +ToolbarButton 1.0 ToolbarButton.qml +SettingView 1.0 SettingView.qml \ No newline at end of file From 6d4a460e58d81c66e849bcf17b444c3b164272ef Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 13:53:53 +0100 Subject: [PATCH 0585/1039] Move USB sidebar into the main view of the monitorstage CURA-5943 --- plugins/MonitorStage/MonitorMain.qml | 40 +++ plugins/MonitorStage/MonitorMainView.qml | 64 ----- plugins/MonitorStage/MonitorMenu.qml | 14 + plugins/MonitorStage/MonitorStage.py | 17 +- plugins/USBPrinting/MonitorItem.qml | 27 ++ plugins/USBPrinting/USBPrinterOutputDevice.py | 5 +- resources/qml/Cura.qml | 11 +- resources/qml/PrintMonitor.qml | 256 ++++++++++-------- 8 files changed, 250 insertions(+), 184 deletions(-) create mode 100644 plugins/MonitorStage/MonitorMain.qml delete mode 100644 plugins/MonitorStage/MonitorMainView.qml create mode 100644 plugins/MonitorStage/MonitorMenu.qml create mode 100644 plugins/USBPrinting/MonitorItem.qml diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml new file mode 100644 index 0000000000..1f287fc0fa --- /dev/null +++ b/plugins/MonitorStage/MonitorMain.qml @@ -0,0 +1,40 @@ +// Copyright (c) 2017 Ultimaker B.V. + +import QtQuick 2.10 +import QtQuick.Controls 1.4 + +import UM 1.3 as UM +import Cura 1.0 as Cura + + +Item +{ + // We show a nice overlay on the 3D viewer when the current output device has no monitor view + Rectangle + { + id: viewportOverlay + + color: UM.Theme.getColor("viewport_overlay") + anchors.fill: parent + MouseArea + { + anchors.fill: parent + acceptedButtons: Qt.AllButtons + onWheel: wheel.accepted = true + } + } + + Loader + { + id: monitorViewComponent + + anchors.fill: parent + + height: parent.height + + property real maximumWidth: parent.width + property real maximumHeight: parent.height + + sourceComponent: Cura.MachineManager.printerOutputDevices.length > 0 ? Cura.MachineManager.printerOutputDevices[0].monitorItem: null + } +} diff --git a/plugins/MonitorStage/MonitorMainView.qml b/plugins/MonitorStage/MonitorMainView.qml deleted file mode 100644 index f5696bbf54..0000000000 --- a/plugins/MonitorStage/MonitorMainView.qml +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2017 Ultimaker B.V. - -import QtQuick 2.10 -import QtQuick.Controls 1.4 - -import UM 1.3 as UM -import Cura 1.0 as Cura - - -Item -{ - // parent could be undefined as this component is not visible at all times - width: parent ? parent.width : 0 - height: parent ? parent.height : 0 - - // We show a nice overlay on the 3D viewer when the current output device has no monitor view - Rectangle - { - id: viewportOverlay - - color: UM.Theme.getColor("viewport_overlay") - width: parent.width - height: parent.height - - MouseArea - { - anchors.fill: parent - acceptedButtons: Qt.AllButtons - onWheel: wheel.accepted = true - } - } - - Loader - { - id: monitorViewComponent - - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.left: parent.left - - // If the sidebar is not set, the view should take the complete space. - property var widthFactor: monitorSidebarComponent.source == "" ? 1.0 : 0.7 - - width: Math.round(parent.width * widthFactor) - height: parent.height - - property real maximumWidth: parent.width - property real maximumHeight: parent.height - - sourceComponent: Cura.MachineManager.printerOutputDevices.length > 0 ? Cura.MachineManager.printerOutputDevices[0].monitorItem: null - } - - Loader - { - id: monitorSidebarComponent - - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.left: monitorViewComponent.right - anchors.right: parent.right - - source: UM.Controller.activeStage.sidebarComponent != null ? UM.Controller.activeStage.sidebarComponent : "" - } -} diff --git a/plugins/MonitorStage/MonitorMenu.qml b/plugins/MonitorStage/MonitorMenu.qml new file mode 100644 index 0000000000..4dec719313 --- /dev/null +++ b/plugins/MonitorStage/MonitorMenu.qml @@ -0,0 +1,14 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +import UM 1.3 as UM +import Cura 1.1 as Cura + +Item +{ + signal showTooltip(Item item, point location, string text) + signal hideTooltip() +} \ No newline at end of file diff --git a/plugins/MonitorStage/MonitorStage.py b/plugins/MonitorStage/MonitorStage.py index ace201e994..69b7f20f4e 100644 --- a/plugins/MonitorStage/MonitorStage.py +++ b/plugins/MonitorStage/MonitorStage.py @@ -65,15 +65,10 @@ class MonitorStage(CuraStage): # We can only connect now, as we need to be sure that everything is loaded (plugins get created quite early) Application.getInstance().getMachineManager().outputDevicesChanged.connect(self._onOutputDevicesChanged) self._onOutputDevicesChanged() - self._updateMainOverlay() - self._updateSidebar() - def _updateMainOverlay(self): - main_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("MonitorStage"), - "MonitorMainView.qml") - self.addDisplayComponent("main", main_component_path) - - def _updateSidebar(self): - sidebar_component_path = os.path.join(Resources.getPath(Application.getInstance().ResourceTypes.QmlFiles), - "MonitorSidebar.qml") - self.addDisplayComponent("sidebar", sidebar_component_path) + plugin_path = Application.getInstance().getPluginRegistry().getPluginPath(self.getPluginId()) + if plugin_path is not None: + menu_component_path = os.path.join(plugin_path, "MonitorMenu.qml") + main_component_path = os.path.join(plugin_path, "MonitorMain.qml") + self.addDisplayComponent("menu", menu_component_path) + self.addDisplayComponent("main", main_component_path) diff --git a/plugins/USBPrinting/MonitorItem.qml b/plugins/USBPrinting/MonitorItem.qml new file mode 100644 index 0000000000..a93b3eb69b --- /dev/null +++ b/plugins/USBPrinting/MonitorItem.qml @@ -0,0 +1,27 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 2.0 +import QtQuick.Layouts 1.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura +Component +{ + Item + { + Rectangle + { + anchors.right: parent.right + width: parent.width * 0.3 + anchors.top: parent.top + anchors.bottom: parent.bottom + + Cura.PrintMonitor + { + anchors.fill: parent + } + } + } +} \ No newline at end of file diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index e1c39ff8fa..1d42e70366 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -1,5 +1,6 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +import os from UM.Logger import Logger from UM.i18n import i18nCatalog @@ -64,7 +65,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._accepts_commands = True self._paused = False - self._printer_busy = False # when printer is preheating and waiting (M190/M109), or when waiting for action on the printer + self._printer_busy = False # When printer is preheating and waiting (M190/M109), or when waiting for action on the printer self.setConnectionText(catalog.i18nc("@info:status", "Connected via USB")) @@ -77,6 +78,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._firmware_name_requested = False self._firmware_updater = AvrFirmwareUpdater(self) + self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "MonitorItem.qml") + CuraApplication.getInstance().getOnExitCallbackManager().addCallback(self._checkActivePrintingUponAppExit) # This is a callback function that checks if there is any printing in progress via USB when the application tries diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 36f5758fa3..3578888886 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -146,6 +146,7 @@ UM.MainWindow Rectangle { + id: stageMenuBackground anchors { left: parent.left @@ -153,7 +154,7 @@ UM.MainWindow top: parent.top } visible: stageMenu.source != "" - height: Math.round(UM.Theme.getSize("stage_menu").height / 2) + height: visible ? Math.round(UM.Theme.getSize("stage_menu").height / 2) : 0 LinearGradient { @@ -254,7 +255,13 @@ UM.MainWindow // A stage can control this area. If nothing is set, it will therefore show the 3D view. id: main - anchors.fill: parent + anchors + { + top: stageMenuBackground.bottom + left: parent.left + right: parent.right + bottom: parent.bottom + } source: UM.Controller.activeStage != null ? UM.Controller.activeStage.mainComponent : "" } diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 723279847a..3cc161cbe7 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -11,136 +11,180 @@ import Cura 1.0 as Cura import "PrinterOutput" -Column + +Rectangle { - id: printMonitor + id: base + UM.I18nCatalog { id: catalog; name: "cura"} + + function showTooltip(item, position, text) + { + tooltip.text = text; + position = item.mapToItem(base, position.x - UM.Theme.getSize("default_arrow").width, position.y); + tooltip.show(position); + } + + function hideTooltip() + { + tooltip.hide(); + } + + function strPadLeft(string, pad, length) { + return (new Array(length + 1).join(pad) + string).slice(-length); + } + + function getPrettyTime(time) + { + var hours = Math.floor(time / 3600) + time -= hours * 3600 + var minutes = Math.floor(time / 60); + time -= minutes * 60 + var seconds = Math.floor(time); + + var finalTime = strPadLeft(hours, "0", 2) + ":" + strPadLeft(minutes, "0", 2) + ":" + strPadLeft(seconds, "0", 2); + return finalTime; + } + property var connectedDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null property var activePrinter: connectedDevice != null ? connectedDevice.activePrinter : null property var activePrintJob: activePrinter != null ? activePrinter.activePrintJob: null - Cura.ExtrudersModel + SidebarTooltip { - id: extrudersModel - simpleNames: true + id: tooltip } - OutputDeviceHeader + Column { - outputDevice: connectedDevice - } + id: printMonitor - Rectangle - { - color: UM.Theme.getColor("wide_lining") - width: parent.width - height: childrenRect.height + anchors.fill: parent - Flow + Cura.ExtrudersModel { - id: extrudersGrid - spacing: UM.Theme.getSize("thick_lining").width + id: extrudersModel + simpleNames: true + } + + OutputDeviceHeader + { + outputDevice: connectedDevice + } + + Rectangle + { + color: UM.Theme.getColor("wide_lining") width: parent.width + height: childrenRect.height - Repeater + Flow { - id: extrudersRepeater - model: activePrinter != null ? activePrinter.extruders : null + id: extrudersGrid + spacing: UM.Theme.getSize("thick_lining").width + width: parent.width - ExtruderBox + Repeater { - color: UM.Theme.getColor("main_background") - width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.round(extrudersGrid.width / 2 - UM.Theme.getSize("thick_lining").width / 2) - extruderModel: modelData + id: extrudersRepeater + model: activePrinter != null ? activePrinter.extruders : null + + ExtruderBox + { + color: UM.Theme.getColor("main_background") + width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.round(extrudersGrid.width / 2 - UM.Theme.getSize("thick_lining").width / 2) + extruderModel: modelData + } } } } - } - Rectangle - { - color: UM.Theme.getColor("wide_lining") - width: parent.width - height: UM.Theme.getSize("thick_lining").width - } - - HeatedBedBox - { - visible: { - if(activePrinter != null && activePrinter.bedTemperature != -1) - { - return true - } - return false - } - printerModel: activePrinter - } - - UM.SettingPropertyProvider - { - id: bedTemperature - containerStack: Cura.MachineManager.activeMachine - key: "material_bed_temperature" - watchedProperties: ["value", "minimum_value", "maximum_value", "resolve"] - storeIndex: 0 - - property var resolve: Cura.MachineManager.activeStack != Cura.MachineManager.activeMachine ? properties.resolve : "None" - } - - UM.SettingPropertyProvider - { - id: machineExtruderCount - containerStack: Cura.MachineManager.activeMachine - key: "machine_extruder_count" - watchedProperties: ["value"] - } - - ManualPrinterControl - { - printerModel: activePrinter - visible: activePrinter != null ? activePrinter.canControlManually : false - } - - - MonitorSection - { - label: catalog.i18nc("@label", "Active print") - width: base.width - visible: activePrinter != null - } - - - MonitorItem - { - label: catalog.i18nc("@label", "Job Name") - value: activePrintJob != null ? activePrintJob.name : "" - width: base.width - visible: activePrinter != null - } - - MonitorItem - { - label: catalog.i18nc("@label", "Printing Time") - value: activePrintJob != null ? getPrettyTime(activePrintJob.timeTotal) : "" - width: base.width - visible: activePrinter != null - } - - MonitorItem - { - label: catalog.i18nc("@label", "Estimated time left") - value: activePrintJob != null ? getPrettyTime(activePrintJob.timeTotal - activePrintJob.timeElapsed) : "" - visible: + Rectangle { - if(activePrintJob == null) + color: UM.Theme.getColor("wide_lining") + width: parent.width + height: UM.Theme.getSize("thick_lining").width + } + + HeatedBedBox + { + visible: { + if(activePrinter != null && activePrinter.bedTemperature != -1) + { + return true + } return false } - - return (activePrintJob.state == "printing" || - activePrintJob.state == "resuming" || - activePrintJob.state == "pausing" || - activePrintJob.state == "paused") + printerModel: activePrinter + } + + UM.SettingPropertyProvider + { + id: bedTemperature + containerStack: Cura.MachineManager.activeMachine + key: "material_bed_temperature" + watchedProperties: ["value", "minimum_value", "maximum_value", "resolve"] + storeIndex: 0 + + property var resolve: Cura.MachineManager.activeStack != Cura.MachineManager.activeMachine ? properties.resolve : "None" + } + + UM.SettingPropertyProvider + { + id: machineExtruderCount + containerStack: Cura.MachineManager.activeMachine + key: "machine_extruder_count" + watchedProperties: ["value"] + } + + ManualPrinterControl + { + printerModel: activePrinter + visible: activePrinter != null ? activePrinter.canControlManually : false + } + + + MonitorSection + { + label: catalog.i18nc("@label", "Active print") + width: base.width + visible: activePrinter != null + } + + + MonitorItem + { + label: catalog.i18nc("@label", "Job Name") + value: activePrintJob != null ? activePrintJob.name : "" + width: base.width + visible: activePrinter != null + } + + MonitorItem + { + label: catalog.i18nc("@label", "Printing Time") + value: activePrintJob != null ? getPrettyTime(activePrintJob.timeTotal) : "" + width: base.width + visible: activePrinter != null + } + + MonitorItem + { + label: catalog.i18nc("@label", "Estimated time left") + value: activePrintJob != null ? getPrettyTime(activePrintJob.timeTotal - activePrintJob.timeElapsed) : "" + visible: + { + if(activePrintJob == null) + { + return false + } + + return (activePrintJob.state == "printing" || + activePrintJob.state == "resuming" || + activePrintJob.state == "pausing" || + activePrintJob.state == "paused") + } + width: base.width } - width: base.width } -} +} \ No newline at end of file From 48bdb735f2bfa9ef044065e5a9e0ca2a60e17361 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 13:58:44 +0100 Subject: [PATCH 0586/1039] Added MachineSelector to monitor menu CURA-5943 --- plugins/MonitorStage/MonitorMenu.qml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/MonitorStage/MonitorMenu.qml b/plugins/MonitorStage/MonitorMenu.qml index 4dec719313..bc95c276e8 100644 --- a/plugins/MonitorStage/MonitorMenu.qml +++ b/plugins/MonitorStage/MonitorMenu.qml @@ -11,4 +11,13 @@ Item { signal showTooltip(Item item, point location, string text) signal hideTooltip() + + Cura.MachineSelector + { + id: machineSelection + headerCornerSide: Cura.RoundedRectangle.Direction.All + width: UM.Theme.getSize("machine_selector_widget").width + height: parent.height + anchors.centerIn: parent + } } \ No newline at end of file From 59a81be65c395628962d3587d24d62819d69259c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 14:10:42 +0100 Subject: [PATCH 0587/1039] Fixed some leftover graphical issues CURA-5943 --- plugins/USBPrinting/MonitorItem.qml | 19 +++++++++++++++++++ .../qml/PrinterOutput/OutputDeviceHeader.qml | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/plugins/USBPrinting/MonitorItem.qml b/plugins/USBPrinting/MonitorItem.qml index a93b3eb69b..8041698ef0 100644 --- a/plugins/USBPrinting/MonitorItem.qml +++ b/plugins/USBPrinting/MonitorItem.qml @@ -22,6 +22,25 @@ Component { anchors.fill: parent } + + Rectangle + { + id: footerSeparator + width: parent.width + height: UM.Theme.getSize("wide_lining").height + color: UM.Theme.getColor("wide_lining") + anchors.bottom: monitorButton.top + anchors.bottomMargin: UM.Theme.getSize("thick_margin").height + } + + // MonitorButton is actually the bottom footer panel. + Cura.MonitorButton + { + id: monitorButton + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + } } } } \ No newline at end of file diff --git a/resources/qml/PrinterOutput/OutputDeviceHeader.qml b/resources/qml/PrinterOutput/OutputDeviceHeader.qml index b5ed1b7b4e..e6328546ef 100644 --- a/resources/qml/PrinterOutput/OutputDeviceHeader.qml +++ b/resources/qml/PrinterOutput/OutputDeviceHeader.qml @@ -45,8 +45,8 @@ Item text: (outputDevice != null && outputDevice.address != null) ? outputDevice.address : "" font: UM.Theme.getFont("small") color: UM.Theme.getColor("text_inactive") - anchors.top: parent.top - anchors.right: parent.right + anchors.top: outputDeviceNameLabel.bottom + anchors.left: parent.left anchors.margins: UM.Theme.getSize("default_margin").width } From 1a778b30782f1e6c19aeca2f4882936d98d9c3c6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 30 Nov 2018 14:18:07 +0100 Subject: [PATCH 0588/1039] Fix qualiy slider alignments Contributes to CURA-5941. --- .../qml/MonitorBuildplateConfiguration.qml | 2 +- .../PrintSetupSelectorContents.qml | 27 +- .../RecommendedQualityProfileSelector.qml | 391 ++++++++++-------- resources/themes/cura-light/theme.json | 8 +- 4 files changed, 241 insertions(+), 187 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml index 9ffb1eabb4..75cbf3b11d 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorBuildplateConfiguration.qml @@ -27,7 +27,7 @@ Item Row { height: parent.height - spacing: 12 * screenScaleFactor // TODO: Theme! (Should be same as extruder spacing) + spacing: UM.Theme.getSize("print_setup_slider_handle").width // TODO: Theme! (Should be same as extruder spacing) // This wrapper ensures that the buildplate icon is located centered // below an extruder icon. diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index f21253acd7..5f22e4c337 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -114,19 +114,20 @@ Item onHideTooltip: base.hideTooltip() visible: currentModeIndex == 0 } -// -// CustomPrintSetup -// { -// anchors -// { -// left: parent.left -// right: parent.right -// top: parent.top -// } -// onShowTooltip: base.showTooltip(item, location, text) -// onHideTooltip: base.hideTooltip() -// visible: currentModeIndex == 1 -// } + + CustomPrintSetup + { + anchors + { + left: parent.left + right: parent.right + top: parent.top + } + height: 500 + onShowTooltip: base.showTooltip(item, location, text) + onHideTooltip: base.hideTooltip() + visible: currentModeIndex == 1 + } } Rectangle diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 3bf93c0c07..c7a9439b00 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -124,22 +124,27 @@ Item function calculateSliderStepWidth (totalTicks) { - qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((settingsColumnWidth) / (totalTicks)) : 0 + // Do not use Math.round otherwise the tickmarks won't be aligned + qualityModel.qualitySliderStepWidth = totalTicks != 0 ? + ((settingsColumnWidth - UM.Theme.getSize("print_setup_slider_handle").width) / (totalTicks)) : 0 } function calculateSliderMargins (availableMin, availableMax, totalTicks) { if (availableMin == -1 || (availableMin == 0 && availableMax == 0)) { - qualityModel.qualitySliderMarginRight = Math.round(settingsColumnWidth) + // Do not use Math.round otherwise the tickmarks won't be aligned + qualityModel.qualitySliderMarginRight = settingsColumnWidth } else if (availableMin == availableMax) { - qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMin) * qualitySliderStepWidth) + // Do not use Math.round otherwise the tickmarks won't be aligned + qualityModel.qualitySliderMarginRight = (totalTicks - availableMin) * qualitySliderStepWidth } else { - qualityModel.qualitySliderMarginRight = Math.round((totalTicks - availableMax) * qualitySliderStepWidth) + // Do not use Math.round otherwise the tickmarks won't be aligned + qualityModel.qualitySliderMarginRight = (totalTicks - availableMax) * qualitySliderStepWidth } } @@ -162,20 +167,6 @@ Item width: labelColumnWidth } - //Print speed slider - Rectangle - { - id: speedSlider - - anchors - { - left: qualityRowTitle.right - right: parent.right - } - - color: "green" - height: 20 - } // // // Show titles for the each quality slider ticks // Item @@ -240,104 +231,107 @@ Item // } // } // -// //Print speed slider -// Rectangle -// { -// id: speedSlider + //Print speed slider + Rectangle + { + id: speedSlider + + anchors + { + left: qualityRowTitle.right + right: parent.right + } + + color: "green" + height: childrenRect.height + + // This Item is used only for tooltip, for slider area which is unavailable +// Item +// { +// function showTooltip (showTooltip) +// { +// if (showTooltip) +// { +// var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") +// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) +// } +// else +// { +// base.hideTooltip() +// } +// } // -// anchors -// { -// left: qualityRowTitle.right -// right: parent.right -// } +// id: unavailableLineToolTip +// height: 20 * screenScaleFactor // hovered area height +// z: parent.z + 1 // should be higher, otherwise the area can be hovered +// x: 0 +// anchors.verticalCenter: qualitySlider.verticalCenter // -// // This Item is used only for tooltip, for slider area which is unavailable -//// Item -//// { -//// function showTooltip (showTooltip) -//// { -//// if (showTooltip) -//// { -//// var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") -//// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) -//// } -//// else -//// { -//// base.hideTooltip() -//// } -//// } -//// -//// id: unavailableLineToolTip -//// height: 20 * screenScaleFactor // hovered area height -//// z: parent.z + 1 // should be higher, otherwise the area can be hovered -//// x: 0 -//// anchors.verticalCenter: qualitySlider.verticalCenter -//// -//// Rectangle -//// { -//// id: leftArea -//// width: -//// { -//// if (qualityModel.availableTotalTicks == 0) -//// { -//// return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks -//// } -//// return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 -//// } -//// height: parent.height -//// color: "transparent" -//// -//// MouseArea -//// { -//// anchors.fill: parent -//// hoverEnabled: true -//// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false -//// onEntered: unavailableLineToolTip.showTooltip(true) -//// onExited: unavailableLineToolTip.showTooltip(false) -//// } -//// } -//// -//// Item -//// { -//// id: rightArea -//// width: -//// { -//// if(qualityModel.availableTotalTicks == 0) -//// return 0 -//// -//// return qualityModel.qualitySliderMarginRight - 10 -//// } -//// height: parent.height -//// x: -//// { -//// if (qualityModel.availableTotalTicks == 0) -//// { -//// return 0 -//// } -//// -//// var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin -//// var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 -//// -//// return totalGap -//// } -//// -//// MouseArea -//// { -//// anchors.fill: parent -//// hoverEnabled: true -//// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false -//// onEntered: unavailableLineToolTip.showTooltip(true) -//// onExited: unavailableLineToolTip.showTooltip(false) -//// } -//// } -//// } +// Rectangle +// { +// id: leftArea +// width: +// { +// if (qualityModel.availableTotalTicks == 0) +// { +// return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks +// } +// return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 +// } +// height: parent.height +// color: "transparent" // +// MouseArea +// { +// anchors.fill: parent +// hoverEnabled: true +// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false +// onEntered: unavailableLineToolTip.showTooltip(true) +// onExited: unavailableLineToolTip.showTooltip(false) +// } +// } +// +// Item +// { +// id: rightArea +// width: +// { +// if(qualityModel.availableTotalTicks == 0) +// return 0 +// +// return qualityModel.qualitySliderMarginRight - 10 +// } +// height: parent.height +// x: +// { +// if (qualityModel.availableTotalTicks == 0) +// { +// return 0 +// } +// +// var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin +// var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 +// +// return totalGap +// } +// +// MouseArea +// { +// anchors.fill: parent +// hoverEnabled: true +// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false +// onEntered: unavailableLineToolTip.showTooltip(true) +// onExited: unavailableLineToolTip.showTooltip(false) +// } +// } +// } + // // Draw Unavailable line // Rectangle // { // id: groovechildrect // width: parent.width -// height: 2 * screenScaleFactor +// height: 2 * UM.Theme.getSize("default_lining").height // color: UM.Theme.getColor("quality_slider_unavailable") // anchors.verticalCenter: qualitySlider.verticalCenter // @@ -358,66 +352,125 @@ Item // } // } // } -// -// // Draw available slider -// Slider -// { -// id: qualitySlider -// height: UM.Theme.getSize("thick_margin").height -// anchors.bottom: parent.bottom -// enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized -// visible: qualityModel.availableTotalTicks > 0 -// updateValueWhileDragging : false -// -// minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 -// // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly -// // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) -// maximumValue: qualityModel.qualitySliderAvailableMax >= 1 ? qualityModel.qualitySliderAvailableMax : 1 -// stepSize: 1 -// -// value: qualityModel.qualitySliderActiveIndex -// -// width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) -// -// anchors.right: parent.right -// anchors.rightMargin: qualityModel.qualitySliderMarginRight -// -// style: SliderStyle -// { -// //Draw Available line -// groove: Rectangle -// { -// implicitHeight: 2 * screenScaleFactor -// color: UM.Theme.getColor("quality_slider_available") -// radius: Math.round(height / 2) -// } -// -// handle: Rectangle -// { -// id: qualityhandleButton -// color: UM.Theme.getColor("quality_slider_available") -// implicitWidth: 12 * screenScaleFactor -// implicitHeight: implicitWidth -// radius: Math.round(implicitWidth / 2) -// visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile -// } -// } -// -// onValueChanged: -// { -// // only change if an active machine is set and the slider is visible at all. -// if (Cura.MachineManager.activeMachine != null && visible) -// { -// // prevent updating during view initializing. Trigger only if the value changed by user -// if (qualitySlider.value != qualityModel.qualitySliderActiveIndex && qualityModel.qualitySliderActiveIndex != -1) -// { -// // start updating with short delay -// qualitySliderChangeTimer.start() -// } -// } -// } -// } -// + + // Draw unavailable slider + Slider + { + id: unavailableSlider + height: UM.Theme.getSize("thick_margin").height + updateValueWhileDragging : false + tickmarksEnabled: true + + minimumValue: 0 + // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly + // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) + maximumValue: qualityModel.totalTicks + stepSize: 1 + + width: parent.width + + style: SliderStyle + { + //Draw Unvailable line + groove: Item + { + Rectangle + { + height: UM.Theme.getSize("print_setup_slider_groove").height + width: control.width - UM.Theme.getSize("print_setup_slider_handle").width + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + color: UM.Theme.getColor("quality_slider_unavailable") + } + } + + handle: Item {} + + tickmarks: Repeater + { + id: qualityRepeater + model: qualityModel.totalTicks > 0 ? qualityModel : 0 + + Rectangle + { + color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: UM.Theme.getSize("print_setup_slider_tickmarks").width + implicitHeight: UM.Theme.getSize("print_setup_slider_tickmarks").height + anchors.verticalCenter: parent.verticalCenter + + // Do not use Math.round otherwise the tickmarks won't be aligned + x: ((UM.Theme.getSize("print_setup_slider_handle").width / 2) - (UM.Theme.getSize("print_setup_slider_tickmarks").width / 2) + (qualityModel.qualitySliderStepWidth * index)) + radius: Math.round(implicitWidth / 2) + } + } + } + } + + // Draw available slider + Slider + { + id: qualitySlider + height: UM.Theme.getSize("thick_margin").height + enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized + visible: qualityModel.availableTotalTicks > 0 + updateValueWhileDragging : false + + minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 + // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly + // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) + maximumValue: qualityModel.qualitySliderAvailableMax >= 1 ? qualityModel.qualitySliderAvailableMax : 1 + stepSize: 1 + + value: qualityModel.qualitySliderActiveIndex + + width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) + UM.Theme.getSize("print_setup_slider_handle").width + + anchors.right: parent.right + anchors.rightMargin: qualityModel.qualitySliderMarginRight + + style: SliderStyle + { + // Draw Available line + groove: Item + { + Rectangle + { + height: UM.Theme.getSize("print_setup_slider_groove").height + width: control.width - UM.Theme.getSize("print_setup_slider_handle").width + anchors.verticalCenter: parent.verticalCenter + + // Do not use Math.round otherwise the tickmarks won't be aligned + x: UM.Theme.getSize("print_setup_slider_handle").width / 2 + color: UM.Theme.getColor("quality_slider_available") + } + } + + handle: Rectangle + { + id: qualityhandleButton + color: UM.Theme.getColor("primary") + implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width + implicitHeight: implicitWidth + radius: Math.round(implicitWidth / 2) + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile + } + } + + onValueChanged: + { + // only change if an active machine is set and the slider is visible at all. + if (Cura.MachineManager.activeMachine != null && visible) + { + // prevent updating during view initializing. Trigger only if the value changed by user + if (qualitySlider.value != qualityModel.qualitySliderActiveIndex && qualityModel.qualitySliderActiveIndex != -1) + { + // start updating with short delay + qualitySliderChangeTimer.start() + } + } + } + } + // MouseArea // { // id: speedSliderMouseArea @@ -432,7 +485,7 @@ Item // } // onExited: base.hideTooltip() // } -// } + } // // UM.SimpleButton // { diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index dfaa9008f7..9bf0bf19aa 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -373,6 +373,9 @@ "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], "print_setup_widget_header": [0.0, 3.0], + "print_setup_slider_groove": [0.16, 0.16], + "print_setup_slider_handle": [1.0, 1.0], + "print_setup_slider_tickmarks": [0.32, 0.32], "configuration_selector_mode_tabs": [0.0, 3.0], @@ -521,9 +524,6 @@ "monitor_thick_lining": [0.16, 0.16], "monitor_corner_radius": [0.3, 0.3], "monitor_shadow_radius": [0.4, 0.4], - "monitor_shadow_offset": [0.15, 0.15], - - "print_setup_action_button": [13, 5], - "print_setup_content_top_margin": [3, 3] + "monitor_shadow_offset": [0.15, 0.15] } } From 73568d74737fb32006ece5355c6ef4c13ce97ae7 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 30 Nov 2018 14:51:55 +0100 Subject: [PATCH 0589/1039] Added icon to the search field which filters settings CURA-5941 --- resources/qml/Settings/SettingView.qml | 4 ++-- resources/themes/cura-light/icons/search.svg | 25 ++++++++++++++++---- resources/themes/cura-light/theme.json | 1 + 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 8a336a7ed1..0a7102ff45 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -105,12 +105,12 @@ Item anchors.right: clearFilterButton.left anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width) - placeholderText: catalog.i18nc("@label:textbox", "Search...") + placeholderText: "" + "

    " + catalog.i18nc("@label:textbox", "search settings") style: TextFieldStyle { textColor: UM.Theme.getColor("setting_control_text"); - placeholderTextColor: UM.Theme.getColor("setting_control_text") + placeholderTextColor: UM.Theme.getColor("setting_filter_field") font: UM.Theme.getFont("default"); background: Item {} } diff --git a/resources/themes/cura-light/icons/search.svg b/resources/themes/cura-light/icons/search.svg index 8272991300..a9ccb612fd 100644 --- a/resources/themes/cura-light/icons/search.svg +++ b/resources/themes/cura-light/icons/search.svg @@ -1,4 +1,21 @@ - - - + + + + Shape + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index dfaa9008f7..4e39ffdf22 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -221,6 +221,7 @@ "setting_validation_warning_background": [255, 145, 62, 255], "setting_validation_warning": [127, 127, 127, 255], "setting_validation_ok": [255, 255, 255, 255], + "setting_filter_field" : [153, 153, 153, 255], "material_compatibility_warning": [0, 0, 0, 255], From e93bbf07a4e377bb55e7b5c62292487344fcc29a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 14:53:10 +0100 Subject: [PATCH 0590/1039] Fix circular dependency with tab index and active stack Only when actually clicking the tab should it change the active extruder index; not when the current index is changed for any other reason. Next up: Don't change the current index for any other reason. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 87096c3a14..8ad512349b 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -35,7 +35,7 @@ Item anchors.top: header.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height - onCurrentIndexChanged: Cura.ExtruderManager.setActiveExtruderIndex(currentIndex) + currentIndex: Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) Repeater { @@ -53,6 +53,10 @@ Item height: parent.height } } + onClicked: + { + Cura.ExtruderManager.setActiveExtruderIndex(tabBar.currentIndex) + } } } } From 1fbcff2cb9a0df2b35c054ffef638e863eeb54f4 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 30 Nov 2018 15:06:53 +0100 Subject: [PATCH 0591/1039] Fix the tooltips in the profile selector in the recommended mode Contributes to CURA-5941. --- .../Recommended/RecommendedPrintSetup.qml | 4 +- .../RecommendedQualityProfileSelector.qml | 226 ++++++------------ 2 files changed, 70 insertions(+), 160 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index 2d4308c8be..40a1910c69 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -8,7 +8,7 @@ import QtQuick.Controls.Styles 1.4 import UM 1.2 as UM import Cura 1.0 as Cura -Rectangle +Item { id: base @@ -16,8 +16,6 @@ Rectangle signal hideTooltip() // width: parent.width height: childrenRect.height + 2 * padding - color: "red" - opacity: 0.5 property Action configureSettings diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index c7a9439b00..755af9311f 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -163,7 +163,6 @@ Item id: qualityRowTitle source: UM.Theme.getIcon("category_layer_height") text: catalog.i18nc("@label", "Layer Height") -// anchors.bottom: speedSlider.bottom width: labelColumnWidth } @@ -232,9 +231,10 @@ Item // } // //Print speed slider - Rectangle + Item { id: speedSlider + height: childrenRect.height anchors { @@ -242,122 +242,11 @@ Item right: parent.right } - color: "green" - height: childrenRect.height - - // This Item is used only for tooltip, for slider area which is unavailable -// Item -// { -// function showTooltip (showTooltip) -// { -// if (showTooltip) -// { -// var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") -// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) -// } -// else -// { -// base.hideTooltip() -// } -// } -// -// id: unavailableLineToolTip -// height: 20 * screenScaleFactor // hovered area height -// z: parent.z + 1 // should be higher, otherwise the area can be hovered -// x: 0 -// anchors.verticalCenter: qualitySlider.verticalCenter -// -// Rectangle -// { -// id: leftArea -// width: -// { -// if (qualityModel.availableTotalTicks == 0) -// { -// return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks -// } -// return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10 -// } -// height: parent.height -// color: "transparent" -// -// MouseArea -// { -// anchors.fill: parent -// hoverEnabled: true -// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false -// onEntered: unavailableLineToolTip.showTooltip(true) -// onExited: unavailableLineToolTip.showTooltip(false) -// } -// } -// -// Item -// { -// id: rightArea -// width: -// { -// if(qualityModel.availableTotalTicks == 0) -// return 0 -// -// return qualityModel.qualitySliderMarginRight - 10 -// } -// height: parent.height -// x: -// { -// if (qualityModel.availableTotalTicks == 0) -// { -// return 0 -// } -// -// var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin -// var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10 -// -// return totalGap -// } -// -// MouseArea -// { -// anchors.fill: parent -// hoverEnabled: true -// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false -// onEntered: unavailableLineToolTip.showTooltip(true) -// onExited: unavailableLineToolTip.showTooltip(false) -// } -// } -// } - -// // Draw Unavailable line -// Rectangle -// { -// id: groovechildrect -// width: parent.width -// height: 2 * UM.Theme.getSize("default_lining").height -// color: UM.Theme.getColor("quality_slider_unavailable") -// anchors.verticalCenter: qualitySlider.verticalCenter -// -// // Draw ticks -// Repeater -// { -// id: qualityRepeater -// model: qualityModel.totalTicks > 0 ? qualityModel : 0 -// -// Rectangle -// { -// color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") -// implicitWidth: 4 * screenScaleFactor -// implicitHeight: implicitWidth -// anchors.verticalCenter: parent.verticalCenter -// x: Math.round(qualityModel.qualitySliderStepWidth * index) -// radius: Math.round(implicitWidth / 2) -// } -// } -// } - // Draw unavailable slider Slider { id: unavailableSlider - height: UM.Theme.getSize("thick_margin").height + height: qualitySlider.height // Same height as the slider that is on top updateValueWhileDragging : false tickmarksEnabled: true @@ -404,13 +293,27 @@ Item } } } + + // Create a mouse area on top of the unavailable profiles to show a specific tooltip + MouseArea + { + anchors.fill: parent + hoverEnabled: true + enabled: !Cura.SimpleModeSettingsManager.isProfileUserCreated + onEntered: + { + var tooltipContent: catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), unavailableSlider.tooltipContent) + } + onExited: base.hideTooltip() + } } // Draw available slider Slider { id: qualitySlider - height: UM.Theme.getSize("thick_margin").height + height: UM.Theme.getSize("print_setup_slider_handle").height // The handle is the widest element of the slider enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized visible: qualityModel.availableTotalTicks > 0 updateValueWhileDragging : false @@ -469,49 +372,58 @@ Item } } } + + // This mouse area is only used to capture the onHover state and don't propagate it to the unavailable mouse area + MouseArea + { + anchors.fill: parent + hoverEnabled: true + enabled: !Cura.SimpleModeSettingsManager.isProfileUserCreated + } } -// MouseArea -// { -// id: speedSliderMouseArea -// anchors.fill: parent -// hoverEnabled: true -// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated -// -// onEntered: -// { -// var content = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") -// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) -// } -// onExited: base.hideTooltip() -// } + // This mouse area will only take the mouse events and show a tooltip when the profile in use is + // a user created profile + MouseArea + { + anchors.fill: parent + hoverEnabled: true + visible: Cura.SimpleModeSettingsManager.isProfileUserCreated + + onEntered: + { + var content = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) + } + onExited: base.hideTooltip() + } + } + + UM.SimpleButton + { + id: customisedSettings + + visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated + height: Math.round(speedSlider.height * 0.8) + width: Math.round(speedSlider.height * 0.8) + + anchors.verticalCenter: speedSlider.verticalCenter + anchors.right: speedSlider.left + anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); + iconSource: UM.Theme.getIcon("reset"); + + onClicked: + { + // if the current profile is user-created, switch to a built-in quality + Cura.MachineManager.resetToUseDefaultQuality() + } + onEntered: + { + var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) + } + onExited: base.hideTooltip() } -// -// UM.SimpleButton -// { -// id: customisedSettings -// -// visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated -// height: Math.round(speedSlider.height * 0.8) -// width: Math.round(speedSlider.height * 0.8) -// -// anchors.verticalCenter: speedSlider.verticalCenter -// anchors.right: speedSlider.left -// anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) -// -// color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); -// iconSource: UM.Theme.getIcon("reset"); -// -// onClicked: -// { -// // if the current profile is user-created, switch to a built-in quality -// Cura.MachineManager.resetToUseDefaultQuality() -// } -// onEntered: -// { -// var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") -// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) -// } -// onExited: base.hideTooltip() -// } } \ No newline at end of file From 1a79372afd3e231fbbcde1ee864d71e7f354d5ab Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 15:16:37 +0100 Subject: [PATCH 0592/1039] Fixed name of cocoon create For some reason it was added as if it was 2 machines at once. Since we already have a wanhao I3, i've changed this one to only be a profile for the Cocoon. --- resources/definitions/cocoon_create_modelmaker.def.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/definitions/cocoon_create_modelmaker.def.json b/resources/definitions/cocoon_create_modelmaker.def.json index 921b20624a..22aa75d09e 100644 --- a/resources/definitions/cocoon_create_modelmaker.def.json +++ b/resources/definitions/cocoon_create_modelmaker.def.json @@ -1,11 +1,11 @@ { - "name": "Cocoon Create ModelMaker & Wanhao Duplicator i3 Mini", + "name": "Cocoon Create ModelMaker", "version": 2, "inherits": "fdmprinter", "metadata": { "visible": true, "author": "Samuel Pinches", - "manufacturer": "Cocoon Create / Wanhao", + "manufacturer": "Cocoon Create", "file_formats": "text/x-gcode", "preferred_quality_type": "fine", "machine_extruder_trains": @@ -15,7 +15,7 @@ }, "overrides": { "machine_name": { - "default_value": "Cocoon Create ModelMaker & Wanhao Duplicator i3 Mini" + "default_value": "Cocoon Create ModelMaker" }, "machine_start_gcode": { "default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --" From 47b7d7bed8f1953297a78628ec7571e40c1cef78 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 30 Nov 2018 15:17:59 +0100 Subject: [PATCH 0593/1039] Make the slider available for clicking This was accidentally removed in the previous commit. Contributes to CURA-5941. --- .../RecommendedQualityProfileSelector.qml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 755af9311f..50da35814c 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -231,6 +231,8 @@ Item // } // //Print speed slider + // Two sliders are created, one at the bottom with the unavailable qualities + // and the other at the top with the available quality profiles and so the handle to select them. Item { id: speedSlider @@ -302,8 +304,8 @@ Item enabled: !Cura.SimpleModeSettingsManager.isProfileUserCreated onEntered: { - var tooltipContent: catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), unavailableSlider.tooltipContent) + var tooltipContent = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), tooltipContent) } onExited: base.hideTooltip() } @@ -378,6 +380,7 @@ Item { anchors.fill: parent hoverEnabled: true + acceptedButtons: Qt.NoButton enabled: !Cura.SimpleModeSettingsManager.isProfileUserCreated } } @@ -392,8 +395,8 @@ Item onEntered: { - var content = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) + var tooltipContent = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), tooltipContent) } onExited: base.hideTooltip() } @@ -421,8 +424,8 @@ Item } onEntered: { - var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content) + var tooltipContent = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), tooltipContent) } onExited: base.hideTooltip() } From a4a619370ea064609d04791b95c2881c3f41467a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 15:33:57 +0100 Subject: [PATCH 0594/1039] Fix QML warnings --- resources/qml/Preferences/GeneralPage.qml | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index bba2cf764a..5006ae2777 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -151,7 +151,6 @@ UM.PreferencesPage { id: languageLabel text: catalog.i18nc("@label","Language:") - anchors.verticalCenter: languageComboBox.verticalCenter } ComboBox @@ -219,7 +218,6 @@ UM.PreferencesPage { id: currencyLabel text: catalog.i18nc("@label","Currency:") - anchors.verticalCenter: currencyField.verticalCenter } TextField @@ -233,7 +231,6 @@ UM.PreferencesPage { id: themeLabel text: catalog.i18nc("@label","Theme:") - anchors.verticalCenter: themeComboBox.verticalCenter } ComboBox From 2c5f5170c2d05f5ffce1da5c471ff14b8289cc5b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 30 Nov 2018 15:38:28 +0100 Subject: [PATCH 0595/1039] Add the labels of the layer height to the slider Contributes to CURA-5941. --- .../RecommendedQualityProfileSelector.qml | 205 +++++++++--------- 1 file changed, 108 insertions(+), 97 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 50da35814c..f7e1d870c9 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -158,78 +158,116 @@ Item } } - Cura.IconWithText + Item { - id: qualityRowTitle - source: UM.Theme.getIcon("category_layer_height") - text: catalog.i18nc("@label", "Layer Height") + id: titleRow width: labelColumnWidth + height: childrenRect.height + + Cura.IconWithText + { + id: qualityRowTitle + source: UM.Theme.getIcon("category_layer_height") + text: catalog.i18nc("@label", "Layer Height") + anchors.left: parent.left + anchors.right: customisedSettings.left + } + + UM.SimpleButton + { + id: customisedSettings + + visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated + height: visible ? Math.round(0.8 * qualityRowTitle.height) : 0 + width: height + anchors + { + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + leftMargin: UM.Theme.getSize("default_margin").width + verticalCenter: parent.verticalCenter + } + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button") + iconSource: UM.Theme.getIcon("reset") + + onClicked: + { + // if the current profile is user-created, switch to a built-in quality + Cura.MachineManager.resetToUseDefaultQuality() + } + onEntered: + { + var tooltipContent = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), tooltipContent) + } + onExited: base.hideTooltip() + } + } + + // Show titles for the each quality slider ticks + Item + { + anchors.left: speedSlider.left + anchors.top: speedSlider.bottom + + Repeater + { + model: qualityModel + + Label + { + anchors.verticalCenter: parent.verticalCenter + anchors.top: parent.top + color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + text: + { + var result = "" + if(Cura.MachineManager.activeMachine != null) + { + result = Cura.QualityProfilesDropDownMenuModel.getItem(index).layer_height + + if(result == undefined) + { + result = ""; + } + else + { + result = Number(Math.round(result + "e+2") + "e-2"); //Round to 2 decimals. Javascript makes this difficult... + if (result == undefined || result != result) //Parse failure. + { + result = ""; + } + } + } + return result + } + + x: + { + // Make sure the text aligns correctly with each tick + if (qualityModel.totalTicks == 0) + { + // If there is only one tick, align it centrally + return Math.round(((settingsColumnWidth) - width) / 2) + } + else if (index == 0) + { + return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index + } + else if (index == qualityModel.totalTicks) + { + return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index - width + } + else + { + return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2)) + } + } + } + } } -// -// // Show titles for the each quality slider ticks -// Item -// { -// anchors.left: speedSlider.left -// anchors.top: speedSlider.bottom -// -// Repeater -// { -// model: qualityModel -// -// Label -// { -// anchors.verticalCenter: parent.verticalCenter -// anchors.top: parent.top -// color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") -// text: -// { -// var result = "" -// if(Cura.MachineManager.activeMachine != null) -// { -// result = Cura.QualityProfilesDropDownMenuModel.getItem(index).layer_height -// -// if(result == undefined) -// { -// result = ""; -// } -// else -// { -// result = Number(Math.round(result + "e+2") + "e-2"); //Round to 2 decimals. Javascript makes this difficult... -// if (result == undefined || result != result) //Parse failure. -// { -// result = ""; -// } -// } -// } -// return result -// } -// -// x: -// { -// // Make sure the text aligns correctly with each tick -// if (qualityModel.totalTicks == 0) -// { -// // If there is only one tick, align it centrally -// return Math.round(((settingsColumnWidth) - width) / 2) -// } -// else if (index == 0) -// { -// return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index -// } -// else if (index == qualityModel.totalTicks) -// { -// return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index - width -// } -// else -// { -// return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2)) -// } -// } -// } -// } -// } -// //Print speed slider // Two sliders are created, one at the bottom with the unavailable qualities // and the other at the top with the available quality profiles and so the handle to select them. @@ -240,8 +278,9 @@ Item anchors { - left: qualityRowTitle.right + left: titleRow.right right: parent.right + verticalCenter: titleRow.verticalCenter } // Draw unavailable slider @@ -401,32 +440,4 @@ Item onExited: base.hideTooltip() } } - - UM.SimpleButton - { - id: customisedSettings - - visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated - height: Math.round(speedSlider.height * 0.8) - width: Math.round(speedSlider.height * 0.8) - - anchors.verticalCenter: speedSlider.verticalCenter - anchors.right: speedSlider.left - anchors.rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - - color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); - iconSource: UM.Theme.getIcon("reset"); - - onClicked: - { - // if the current profile is user-created, switch to a built-in quality - Cura.MachineManager.resetToUseDefaultQuality() - } - onEntered: - { - var tooltipContent = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), tooltipContent) - } - onExited: base.hideTooltip() - } } \ No newline at end of file From 1d9a13cac27c4e8c571c53757ec81882d1c8994a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 15:40:59 +0100 Subject: [PATCH 0596/1039] Reset tab index when repeater's model is rebuilt We can't prevent the model from being rebuilt. At least, not without a major refactor. Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/CustomConfiguration.qml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 8ad512349b..bdf5ccfaa1 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -39,6 +39,7 @@ Item Repeater { + id: repeater model: extrudersModel delegate: UM.TabRowButton { @@ -59,6 +60,18 @@ Item } } } + + //When the model of the extruders is rebuilt, the list of extruders is briefly emptied and rebuilt. + //This causes the currentIndex of the tab to be in an invalid position which resets it to 0. + //Therefore we need to change it back to what it was: The active extruder index. + Connections + { + target: repeater.model + onModelChanged: + { + tabBar.currentIndex = Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) + } + } } Rectangle From 18bb403413330fa4891ec80d4cb6177b8caa71b3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 15:42:46 +0100 Subject: [PATCH 0597/1039] No longer switch away from extruder when disabling It feels confusing when this happens. Contributes to issue CURA-5876. --- cura/Settings/ExtrudersModel.py | 4 ++-- cura/Settings/MachineManager.py | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 14a8dadc69..955bd9dbb2 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot, pyqtProperty, QTimer @@ -177,7 +177,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): machine_extruder_count = global_container_stack.getProperty("machine_extruder_count", "value") for extruder in Application.getInstance().getExtruderManager().getActiveExtruderStacks(): - position = extruder.getMetaDataEntry("position", default = "0") # Get the position + position = extruder.getMetaDataEntry("position", default = "0") try: position = int(position) except ValueError: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 40a3bfc563..be4a4e2b4e 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -993,10 +993,6 @@ class MachineManager(QObject): self.updateNumberExtrudersEnabled() self.correctExtruderSettings() - # In case this extruder is being disabled and it's the currently selected one, switch to the default extruder - if not enabled and position == ExtruderManager.getInstance().activeExtruderIndex: - ExtruderManager.getInstance().setActiveExtruderIndex(int(self._default_extruder_position)) - # ensure that the quality profile is compatible with current combination, or choose a compatible one if available self._updateQualityWithMaterial() self.extruderChanged.emit() From ede50ef3cad83e1c6c6a8b282bf27d9b261f17a9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 15:44:15 +0100 Subject: [PATCH 0598/1039] Simplify dependencies on activeStack The properties, being formulas, were not properly updated when the active stack changed. Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/CustomConfiguration.qml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index bdf5ccfaa1..8044d86347 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -135,7 +135,7 @@ Item OldControls.CheckBox { - checked: selectors.model != null ? Cura.MachineManager.getExtruder(selectors.model.index).isEnabled: false + checked: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.isEnabled : false onClicked: Cura.MachineManager.setExtruderEnabled(selectors.model.index, checked) height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox @@ -160,14 +160,11 @@ Item { id: materialSelection - property var activeExtruder: Cura.MachineManager.activeStack - property var hasActiveExtruder: activeExtruder != null - property var currentRootMaterialName: hasActiveExtruder ? activeExtruder.material.name : "" - property var valueError: hasActiveExtruder ? Cura.ContainerManager.getContainerMetaDataEntry(activeExtruder.material.id, "compatible", "") != "True" : true + property var valueError: Cura.MachineManager.activeStack != null ? Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeStack.material.id, "compatible", "") != "True" : true property var valueWarning: !Cura.MachineManager.isActiveQualitySupported - text: currentRootMaterialName - tooltip: currentRootMaterialName + text: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.material.name : "" + tooltip: text visible: Cura.MachineManager.hasMaterials enabled: Cura.ExtruderManager.activeExtruderIndex > -1 From ed37e692a38e6effb5f25a97409623330c6ea78f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 15:45:04 +0100 Subject: [PATCH 0599/1039] Don't disable enable checkbox before machine is loaded It is unnecessary because you can't see it or click on it before adding a machine. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 8044d86347..605d0444e6 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -167,8 +167,6 @@ Item tooltip: text visible: Cura.MachineManager.hasMaterials - enabled: Cura.ExtruderManager.activeExtruderIndex > -1 - height: UM.Theme.getSize("setting_control").height width: selectors.controlWidth From ad26962cb91a3d7e4e9deb32fddb63e5955bae16 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 15:49:50 +0100 Subject: [PATCH 0600/1039] Fix setting visibility not working in settingVisibilityPage CURA-5981 --- resources/qml/Preferences/SettingVisibilityPage.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index 8896d0611e..e319069502 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -117,7 +117,7 @@ UM.PreferencesPage { for(var i = 0; i < settingVisibilityPresetsModel.items.length; ++i) { - if(settingVisibilityPresetsModel.items[i].id == settingVisibilityPresetsModel.activePreset) + if(settingVisibilityPresetsModel.items[i].presetId == settingVisibilityPresetsModel.activePreset) { currentIndex = i; return; @@ -128,8 +128,8 @@ UM.PreferencesPage onActivated: { - var preset_id = settingVisibilityPresetsModel.items[index].id; - settingVisibilityPresetsModel.setActivePreset(preset_id); + var preset_id = settingVisibilityPresetsModel.items[index].presetId + settingVisibilityPresetsModel.setActivePreset(preset_id) } } From 36a86adc0f216e9bd03378db7017a7d8822ad765 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 16:08:19 +0100 Subject: [PATCH 0601/1039] Remove spammy log --- plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py index daea696cd1..b96c508d70 100644 --- a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py @@ -341,7 +341,6 @@ class UM3OutputDevicePlugin(OutputDevicePlugin): # Request more data if info is not complete if not info.address: - Logger.log("d", "Trying to get address of %s", name) info = zero_conf.get_service_info(service_type, name) if info: From 82d4897ba4e24ba9e1ed52a9d79dff0fc88e0096 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 16:18:46 +0100 Subject: [PATCH 0602/1039] Use MouseArea to catch click instead of onClicked This is necessary because when you click it, the 'checked' property no longer depends on the active extruder. So prevent it from being clicked at all and handle the click separately in this MouseArea. Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/CustomConfiguration.qml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 605d0444e6..08ba042948 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -136,9 +136,19 @@ Item OldControls.CheckBox { checked: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.isEnabled : false - onClicked: Cura.MachineManager.setExtruderEnabled(selectors.model.index, checked) height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox + + /* Use a MouseArea to process the click on this checkbox. + This is necessary because actually clicking the checkbox + causes the "checked" property to be overwritten. After + it's been overwritten, the original link that made it + depend on the active extruder stack is broken. */ + MouseArea + { + anchors.fill: parent + onClicked: Cura.MachineManager.setExtruderEnabled(Cura.ExtruderManager.activeExtruderIndex, !parent.checked) + } } } From d5d49fcec8ea3888ff53b47285322c56407e555a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 16:43:48 +0100 Subject: [PATCH 0603/1039] Disable extruder enabled checkbox if it's the last one You can't disable the last extruder. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 08ba042948..6a3ab82ce2 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -10,6 +10,12 @@ import UM 1.3 as UM Item { + UM.I18nCatalog + { + id: catalog + name: "cura" + } + width: parent.width height: visible ? childrenRect.height : 0 @@ -136,6 +142,7 @@ Item OldControls.CheckBox { checked: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.isEnabled : false + enabled: !checked || Cura.MachineManager.numberExtrudersEnabled > 1 //Disable if it's the last enabled extruder. height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox @@ -148,6 +155,7 @@ Item { anchors.fill: parent onClicked: Cura.MachineManager.setExtruderEnabled(Cura.ExtruderManager.activeExtruderIndex, !parent.checked) + enabled: parent.enabled } } } From 6ab2ce76900777ca64597cf81125351492b8f0aa Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 30 Nov 2018 16:44:55 +0100 Subject: [PATCH 0604/1039] Decrease padding between time & material specification headers --- resources/qml/ActionPanel/PrintJobInformation.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/qml/ActionPanel/PrintJobInformation.qml b/resources/qml/ActionPanel/PrintJobInformation.qml index e53a92a994..156111af4d 100644 --- a/resources/qml/ActionPanel/PrintJobInformation.qml +++ b/resources/qml/ActionPanel/PrintJobInformation.qml @@ -21,7 +21,6 @@ Column Column { id: timeSpecification - spacing: UM.Theme.getSize("thin_margin").width width: parent.width topPadding: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("default_margin").width @@ -71,7 +70,6 @@ Column Column { id: materialSpecification - spacing: UM.Theme.getSize("thin_margin").width width: parent.width bottomPadding: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("default_margin").width From f4950cf92b2ba797d62ff85a6c936762c68bb81f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 17:04:50 +0100 Subject: [PATCH 0605/1039] Give checkboxes a style if they're disabled Contributes to issue CURA-5876. --- resources/themes/cura-light/styles.qml | 2 +- resources/themes/cura-light/theme.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index f00aab44c0..97eae65d27 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -646,7 +646,7 @@ QtObject implicitWidth: Theme.getSize("checkbox").width implicitHeight: Theme.getSize("checkbox").height - color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox") + color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : (control.enabled ? Theme.getColor("checkbox") : Theme.getColor("checkbox_disabled")) Behavior on color { ColorAnimation { duration: 50; } } radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : 0 diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index bd7c632eb1..0d77ecf802 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -235,6 +235,7 @@ "checkbox_border": [64, 69, 72, 255], "checkbox_border_hover": [50, 130, 255, 255], "checkbox_mark": [119, 122, 124, 255], + "checkbox_disabled": [223, 223, 223, 255], "checkbox_text": [27, 27, 27, 255], "tooltip": [68, 192, 255, 255], From 0a6e420710ae3c76a9f707c69b0afaec5307ae8f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 30 Nov 2018 17:05:25 +0100 Subject: [PATCH 0606/1039] Make active tab white Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 6a3ab82ce2..b269b95df2 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -89,7 +89,7 @@ Item radius: UM.Theme.getSize("default_radius").width border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") - color: UM.Theme.getColor("secondary") + color: UM.Theme.getColor("main_background") //Remove rounding and lining at the top. Rectangle From 29b7f42e0e2cb15df004fcbf5df023fbf17b9b0c Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 30 Nov 2018 18:33:53 +0100 Subject: [PATCH 0607/1039] Chaged settings visibility icon CURA-5941 --- resources/qml/Settings/SettingView.qml | 30 ++++++++++++++++++-------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 0a7102ff45..28a64f3346 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Uranium is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -25,13 +25,15 @@ Item { id: settingVisibilityMenu + property var toolButtonIconColor: UM.Theme.getColor("setting_category_text") + width: height height: UM.Theme.getSize("setting_control").height anchors { topMargin: UM.Theme.getSize("thick_margin").height - right: parent.right - rightMargin: UM.Theme.getSize("thick_margin").width + left: filterContainer.right + leftMargin: UM.Theme.getSize("default_margin").width } style: ButtonStyle { @@ -39,12 +41,12 @@ Item UM.RecolorImage { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height + width: Math.round(parent.width * 0.6) + height: Math.round(parent.height * 0.6) sourceSize.width: width sourceSize.height: width - color: control.enabled ? UM.Theme.getColor("setting_category_text") : UM.Theme.getColor("setting_category_disabled_text") - source: UM.Theme.getIcon("menu") + color: settingVisibilityMenu.toolButtonIconColor + source: UM.Theme.getIcon("settings") } } label: Label{} @@ -57,6 +59,15 @@ Item filter.updateDefinitionModel(); } } + + MouseArea + { + anchors.fill: parent + hoverEnabled: true + acceptedButtons: Qt.RightButton + onEntered: settingVisibilityMenu.toolButtonIconColor = UM.Theme.getColor("setting_control_button_hover") + onExited: settingVisibilityMenu.toolButtonIconColor = UM.Theme.getColor("setting_category_text") + } } Rectangle @@ -84,8 +95,8 @@ Item topMargin: UM.Theme.getSize("thick_margin").height left: parent.left leftMargin: UM.Theme.getSize("default_margin").width - right: settingVisibilityMenu.left - rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) + right: scrollView.right + rightMargin: Math.floor(UM.Theme.getSize("wide_margin").width * 2) } height: UM.Theme.getSize("setting_control").height Timer @@ -196,6 +207,7 @@ Item ScrollView { + id: scrollView anchors.top: filterContainer.bottom; anchors.bottom: parent.bottom; anchors.right: parent.right; From 1238aa7304c24e3c7a706fdcceae09c14791409c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 2 Dec 2018 12:03:58 +0100 Subject: [PATCH 0608/1039] Format the slider for the infill in the recommended mode Contributes to CURA-5941 --- .../PrintSetupSelectorContents.qml | 2 +- .../RecommendedInfillDensitySelector.qml | 488 +++++++++--------- .../Recommended/RecommendedPrintSetup.qml | 45 +- .../RecommendedQualityProfileSelector.qml | 28 +- 4 files changed, 268 insertions(+), 295 deletions(-) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 5f22e4c337..0210ece977 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -25,7 +25,7 @@ Item { id: header height: UM.Theme.getSize("print_setup_widget_header").height - color: "transparent" //UM.Theme.getColor("action_button_hovered") // TODO: It's not clear the color that we need to use here + color: UM.Theme.getColor("action_button_hovered") // TODO: It's not clear the color that we need to use here anchors { diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 34cb8f2f20..8b0b87d997 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -15,57 +15,37 @@ import Cura 1.0 as Cura Item { id: infillRow + height: childrenRect.height + property real labelColumnWidth: Math.round(width / 3) + + // Here are the elements that are shown in the left column Cura.IconWithText { id: infillRowTitle source: UM.Theme.getIcon("category_infill") text: catalog.i18nc("@label", "Infill") + " (%)" - anchors.bottom: parent.bottom width: labelColumnWidth } Item { - id: infillCellRight + id: infillSliderContainer + height: childrenRect.height - height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height) - - anchors.left: infillRowTitle.right - anchors.right: parent.right - - Label + anchors { - id: selectedInfillRateText - - anchors.left: infillSlider.left - anchors.right: parent.right - - text: parseInt(infillDensity.properties.value) + "%" - horizontalAlignment: Text.AlignLeft - - color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - } - - // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider - Binding - { - target: infillSlider - property: "value" - value: parseInt(infillDensity.properties.value) + left: infillRowTitle.right + right: parent.right + verticalCenter: infillRowTitle.verticalCenter } Slider { id: infillSlider - anchors.top: selectedInfillRateText.bottom - anchors.left: parent.left - anchors.right: infillIcon.left - anchors.rightMargin: UM.Theme.getSize("thick_margin").width - - height: UM.Theme.getSize("thick_margin").height - width: parseInt(infillCellRight.width - UM.Theme.getSize("thick_margin").width - style.handleWidth) + width: parent.width + height: UM.Theme.getSize("print_setup_slider_handle").height // The handle is the widest element of the slider minimumValue: 0 maximumValue: 100 @@ -78,9 +58,62 @@ Item // set initial value from stack value: parseInt(infillDensity.properties.value) + style: SliderStyle + { + //Draw line + groove: Item + { + Rectangle + { + height: UM.Theme.getSize("print_setup_slider_groove").height + width: control.width - UM.Theme.getSize("print_setup_slider_handle").width + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + } + } + + handle: Rectangle + { + id: handleButton + color: control.enabled ? UM.Theme.getColor("primary") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width + implicitHeight: implicitWidth + radius: Math.round(implicitWidth / 2) + opacity: 0.5 + } + + tickmarks: Repeater + { + id: repeater + model: control.maximumValue / control.stepSize + 1 + + Rectangle + { + color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") + implicitWidth: UM.Theme.getSize("print_setup_slider_tickmarks").width + implicitHeight: UM.Theme.getSize("print_setup_slider_tickmarks").height + anchors.verticalCenter: parent.verticalCenter + + // Do not use Math.round otherwise the tickmarks won't be aligned + x: ((styleData.handleWidth / 2) - (implicitWidth / 2) + (index * ((repeater.width - styleData.handleWidth) / (repeater.count-1)))) + radius: Math.round(implicitWidth / 2) + visible: (index % 10) == 0 // Only show steps of 10% + + Label + { + text: index + visible: (index % 20) == 0 // Only show steps of 20% + anchors.horizontalCenter: parent.horizontalCenter + y: UM.Theme.getSize("thin_margin").height + renderType: Text.NativeRendering + } + } + } + } + onValueChanged: { - // Don't round the value if it's already the same if (parseInt(infillDensity.properties.value) == infillSlider.value) { @@ -104,228 +137,177 @@ Item Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance") } } - - style: SliderStyle - { - groove: Rectangle - { - id: groove - implicitWidth: 200 * screenScaleFactor - implicitHeight: 2 * screenScaleFactor - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - radius: 1 - } - - handle: Item - { - Rectangle - { - id: handleButton - anchors.centerIn: parent - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - implicitWidth: 10 * screenScaleFactor - implicitHeight: 10 * screenScaleFactor - radius: 10 * screenScaleFactor - } - } - - tickmarks: Repeater - { - id: repeater - model: control.maximumValue / control.stepSize + 1 - - // check if a tick should be shown based on it's index and wether the infill density is a multiple of 10 (slider step size) - function shouldShowTick (index) - { - if (index % 10 == 0) - { - return true - } - return false - } - - Rectangle - { - anchors.verticalCenter: parent.verticalCenter - color: control.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") - width: 1 * screenScaleFactor - height: 6 * screenScaleFactor - x: Math.round(styleData.handleWidth / 2 + index * ((repeater.width - styleData.handleWidth) / (repeater.count-1))) - visible: shouldShowTick(index) - } - } - } } - Rectangle - { - id: infillIcon - - width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) - height: width - - anchors.right: parent.right - anchors.top: parent.top - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) - - // we loop over all density icons and only show the one that has the current density and steps - Repeater - { - id: infillIconList - model: infillModel - anchors.fill: parent - - function activeIndex () - { - for (var i = 0; i < infillModel.count; i++) - { - var density = Math.round(infillDensity.properties.value) - var steps = Math.round(infillSteps.properties.value) - var infillModelItem = infillModel.get(i) - - if (infillModelItem != "undefined" - && density >= infillModelItem.percentageMin - && density <= infillModelItem.percentageMax - && steps >= infillModelItem.stepsMin - && steps <= infillModelItem.stepsMax) - { - return i - } - } - return -1 - } - - Rectangle - { - anchors.fill: parent - visible: infillIconList.activeIndex() == index - - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("quality_slider_unavailable") - - UM.RecolorImage - { - anchors.fill: parent - anchors.margins: 2 * screenScaleFactor - sourceSize.width: width - sourceSize.height: width - source: UM.Theme.getIcon(model.icon) - color: UM.Theme.getColor("quality_slider_unavailable") - } - } - } - } - - // Gradual Support Infill Checkbox - CheckBox - { - id: enableGradualInfillCheckBox - property alias _hovered: enableGradualInfillMouseArea.containsMouse - - anchors.top: infillSlider.bottom - anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category - anchors.left: infillCellRight.left - - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - visible: infillSteps.properties.enabled == "True" - checked: parseInt(infillSteps.properties.value) > 0 - - MouseArea - { - id: enableGradualInfillMouseArea - - anchors.fill: parent - hoverEnabled: true - enabled: true - - property var previousInfillDensity: parseInt(infillDensity.properties.value) - - onClicked: - { - // Set to 90% only when enabling gradual infill - var newInfillDensity; - if (parseInt(infillSteps.properties.value) == 0) - { - previousInfillDensity = parseInt(infillDensity.properties.value) - newInfillDensity = 90 - } else { - newInfillDensity = previousInfillDensity - } - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) - - var infill_steps_value = 0 - if (parseInt(infillSteps.properties.value) == 0) - { - infill_steps_value = 5 - } - - Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) - } - - onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillCellRight.x, 0), - catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) - - onExited: base.hideTooltip() - - } - - Label - { - id: gradualInfillLabel - height: parent.height - anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) - verticalAlignment: Text.AlignVCenter; - text: catalog.i18nc("@label", "Enable gradual") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - } - - // Infill list model for mapping icon - ListModel - { - id: infillModel - Component.onCompleted: - { - infillModel.append({ - percentageMin: -1, - percentageMax: 0, - stepsMin: -1, - stepsMax: 0, - icon: "hollow" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 40, - stepsMin: -1, - stepsMax: 0, - icon: "sparse" - }) - infillModel.append({ - percentageMin: 40, - percentageMax: 89, - stepsMin: -1, - stepsMax: 0, - icon: "dense" - }) - infillModel.append({ - percentageMin: 90, - percentageMax: 9999999999, - stepsMin: -1, - stepsMax: 0, - icon: "solid" - }) - infillModel.append({ - percentageMin: 0, - percentageMax: 9999999999, - stepsMin: 1, - stepsMax: 9999999999, - icon: "gradual" - }) - } - } +// Rectangle +// { +// id: infillIcon +// +// width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) +// height: width +// +// anchors.right: parent.right +// anchors.top: parent.top +// anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) +// +// // we loop over all density icons and only show the one that has the current density and steps +// Repeater +// { +// id: infillIconList +// model: infillModel +// anchors.fill: parent +// +// function activeIndex () +// { +// for (var i = 0; i < infillModel.count; i++) +// { +// var density = Math.round(infillDensity.properties.value) +// var steps = Math.round(infillSteps.properties.value) +// var infillModelItem = infillModel.get(i) +// +// if (infillModelItem != "undefined" +// && density >= infillModelItem.percentageMin +// && density <= infillModelItem.percentageMax +// && steps >= infillModelItem.stepsMin +// && steps <= infillModelItem.stepsMax) +// { +// return i +// } +// } +// return -1 +// } +// +// Rectangle +// { +// anchors.fill: parent +// visible: infillIconList.activeIndex() == index +// +// border.width: UM.Theme.getSize("default_lining").width +// border.color: UM.Theme.getColor("quality_slider_unavailable") +// +// UM.RecolorImage +// { +// anchors.fill: parent +// anchors.margins: 2 * screenScaleFactor +// sourceSize.width: width +// sourceSize.height: width +// source: UM.Theme.getIcon(model.icon) +// color: UM.Theme.getColor("quality_slider_unavailable") +// } +// } +// } +// } +// +// // Gradual Support Infill Checkbox +// CheckBox +// { +// id: enableGradualInfillCheckBox +// property alias _hovered: enableGradualInfillMouseArea.containsMouse +// +// anchors.top: infillSlider.bottom +// anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category +// anchors.left: infillSliderContainer.left +// +// style: UM.Theme.styles.checkbox +// enabled: base.settingsEnabled +// visible: infillSteps.properties.enabled == "True" +// checked: parseInt(infillSteps.properties.value) > 0 +// +// MouseArea +// { +// id: enableGradualInfillMouseArea +// +// anchors.fill: parent +// hoverEnabled: true +// enabled: true +// +// property var previousInfillDensity: parseInt(infillDensity.properties.value) +// +// onClicked: +// { +// // Set to 90% only when enabling gradual infill +// var newInfillDensity; +// if (parseInt(infillSteps.properties.value) == 0) +// { +// previousInfillDensity = parseInt(infillDensity.properties.value) +// newInfillDensity = 90 +// } else { +// newInfillDensity = previousInfillDensity +// } +// Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) +// +// var infill_steps_value = 0 +// if (parseInt(infillSteps.properties.value) == 0) +// { +// infill_steps_value = 5 +// } +// +// Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) +// } +// +// onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillSliderContainer.x, 0), +// catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) +// +// onExited: base.hideTooltip() +// +// } +// +// Label +// { +// id: gradualInfillLabel +// height: parent.height +// anchors.left: enableGradualInfillCheckBox.right +// anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) +// verticalAlignment: Text.AlignVCenter; +// text: catalog.i18nc("@label", "Enable gradual") +// font: UM.Theme.getFont("default") +// color: UM.Theme.getColor("text") +// } +// } +// +// // Infill list model for mapping icon +// ListModel +// { +// id: infillModel +// Component.onCompleted: +// { +// infillModel.append({ +// percentageMin: -1, +// percentageMax: 0, +// stepsMin: -1, +// stepsMax: 0, +// icon: "hollow" +// }) +// infillModel.append({ +// percentageMin: 0, +// percentageMax: 40, +// stepsMin: -1, +// stepsMax: 0, +// icon: "sparse" +// }) +// infillModel.append({ +// percentageMin: 40, +// percentageMax: 89, +// stepsMin: -1, +// stepsMax: 0, +// icon: "dense" +// }) +// infillModel.append({ +// percentageMin: 90, +// percentageMax: 9999999999, +// stepsMin: -1, +// stepsMax: 0, +// icon: "solid" +// }) +// infillModel.append({ +// percentageMin: 0, +// percentageMax: 9999999999, +// stepsMin: 1, +// stepsMax: 9999999999, +// icon: "gradual" +// }) +// } +// } } UM.SettingPropertyProvider diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index 40a1910c69..0dabc3ea1e 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -12,10 +12,10 @@ Item { id: base + height: childrenRect.height + 2 * padding + signal showTooltip(Item item, point location, string text) signal hideTooltip() -// width: parent.width - height: childrenRect.height + 2 * padding property Action configureSettings @@ -28,24 +28,11 @@ Item name: "cura" } -// Rectangle -// { -// width: parent.width - 2 * parent.padding -// anchors -// { -// left: parent.left -// right: parent.right -// top: parent.top -// margins: parent.padding -// } -// color: "blue" -// height: 50 -// } - Column { width: parent.width - 2 * parent.padding - spacing: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("wide_margin").height + anchors { left: parent.left @@ -55,33 +42,27 @@ Item } // TODO - property real labelColumnWidth: Math.round(width / 3) - property real settingsColumnWidth: width - labelColumnWidth + property real firstColumnWidth: Math.round(width / 3) RecommendedQualityProfileSelector { width: parent.width // TODO Create a reusable component with these properties to not define them separately for each component - property real labelColumnWidth: parent.labelColumnWidth - property real settingsColumnWidth: parent.settingsColumnWidth + labelColumnWidth: parent.firstColumnWidth } -// RecommendedInfillDensitySelector -// { -// width: parent.width -// height: childrenRect.height -// // TODO Create a reusable component with these properties to not define them separately for each component -// property real labelColumnWidth: parent.labelColumnWidth -// property real settingsColumnWidth: parent.settingsColumnWidth -// } + RecommendedInfillDensitySelector + { + width: parent.width + // TODO Create a reusable component with these properties to not define them separately for each component + labelColumnWidth: parent.firstColumnWidth + } // // RecommendedSupportSelector // { // width: parent.width -// height: childrenRect.height // // TODO Create a reusable component with these properties to not define them separately for each component -// property real labelColumnWidth: parent.labelColumnWidth -// property real settingsColumnWidth: parent.settingsColumnWidth +// property real firstColumnWidth: parent.labelColumnWidth // } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index f7e1d870c9..cddf01a4dc 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -17,6 +17,9 @@ Item id: qualityRow height: childrenRect.height + property real labelColumnWidth: Math.round(width / 3) + property real settingsColumnWidth: width - labelColumnWidth + Timer { id: qualitySliderChangeTimer @@ -158,6 +161,7 @@ Item } } + // Here are the elements that are shown in the left column Item { id: titleRow @@ -210,6 +214,7 @@ Item { anchors.left: speedSlider.left anchors.top: speedSlider.bottom + height: childrenRect.height Repeater { @@ -219,6 +224,8 @@ Item { anchors.verticalCenter: parent.verticalCenter anchors.top: parent.top + // The height has to be set manually, otherwise it's not automatically calculated in the repeater + height: UM.Theme.getSize("default_margin").height color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") text: { @@ -268,7 +275,7 @@ Item } } - //Print speed slider + // Print speed slider // Two sliders are created, one at the bottom with the unavailable qualities // and the other at the top with the available quality profiles and so the handle to select them. Item @@ -287,6 +294,8 @@ Item Slider { id: unavailableSlider + + width: parent.width height: qualitySlider.height // Same height as the slider that is on top updateValueWhileDragging : false tickmarksEnabled: true @@ -297,8 +306,6 @@ Item maximumValue: qualityModel.totalTicks stepSize: 1 - width: parent.width - style: SliderStyle { //Draw Unvailable line @@ -329,7 +336,7 @@ Item anchors.verticalCenter: parent.verticalCenter // Do not use Math.round otherwise the tickmarks won't be aligned - x: ((UM.Theme.getSize("print_setup_slider_handle").width / 2) - (UM.Theme.getSize("print_setup_slider_tickmarks").width / 2) + (qualityModel.qualitySliderStepWidth * index)) + x: ((UM.Theme.getSize("print_setup_slider_handle").width / 2) - (implicitWidth / 2) + (qualityModel.qualitySliderStepWidth * index)) radius: Math.round(implicitWidth / 2) } } @@ -354,11 +361,19 @@ Item Slider { id: qualitySlider + + width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) + UM.Theme.getSize("print_setup_slider_handle").width height: UM.Theme.getSize("print_setup_slider_handle").height // The handle is the widest element of the slider enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized visible: qualityModel.availableTotalTicks > 0 updateValueWhileDragging : false + anchors + { + right: parent.right + rightMargin: qualityModel.qualitySliderMarginRight + } + minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 // maximumValue must be greater than minimumValue to be able to see the handle. While the value is strictly // speaking not always correct, it seems to have the correct behavior (switching from 0 available to 1 available) @@ -367,11 +382,6 @@ Item value: qualityModel.qualitySliderActiveIndex - width: qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks - 1) + UM.Theme.getSize("print_setup_slider_handle").width - - anchors.right: parent.right - anchors.rightMargin: qualityModel.qualitySliderMarginRight - style: SliderStyle { // Draw Available line From 4154ec2fe82a79334a2d1b10d2de745a1aa38b19 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 2 Dec 2018 12:39:52 +0100 Subject: [PATCH 0609/1039] Add enable gradual checkbox to the infill panel Contributes to CURA-5941. --- .../RecommendedInfillDensitySelector.qml | 146 +++++++++--------- 1 file changed, 77 insertions(+), 69 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 8b0b87d997..4226acb790 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -23,11 +23,20 @@ Item Cura.IconWithText { id: infillRowTitle + anchors.top: parent.top + anchors.left: parent.left source: UM.Theme.getIcon("category_infill") text: catalog.i18nc("@label", "Infill") + " (%)" width: labelColumnWidth } + Rectangle + { + anchors.fill: infillSliderContainer + color: "red" + opacity: 0.5 + } + Item { id: infillSliderContainer @@ -80,7 +89,6 @@ Item implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width implicitHeight: implicitWidth radius: Math.round(implicitWidth / 2) - opacity: 0.5 } tickmarks: Repeater @@ -138,6 +146,74 @@ Item } } } + } + + // Gradual Support Infill Checkbox + CheckBox + { + id: enableGradualInfillCheckBox + property alias _hovered: enableGradualInfillMouseArea.containsMouse + + anchors.top: infillSliderContainer.bottom + anchors.topMargin: UM.Theme.getSize("wide_margin").height + anchors.left: infillSliderContainer.left + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + visible: infillSteps.properties.enabled == "True" + checked: parseInt(infillSteps.properties.value) > 0 + + MouseArea + { + id: enableGradualInfillMouseArea + + anchors.fill: parent + hoverEnabled: true + enabled: true + + property var previousInfillDensity: parseInt(infillDensity.properties.value) + + onClicked: + { + // Set to 90% only when enabling gradual infill + var newInfillDensity; + if (parseInt(infillSteps.properties.value) == 0) + { + previousInfillDensity = parseInt(infillDensity.properties.value) + newInfillDensity = 90 + } else { + newInfillDensity = previousInfillDensity + } + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) + + var infill_steps_value = 0 + if (parseInt(infillSteps.properties.value) == 0) + { + infill_steps_value = 5 + } + + Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) + } + + onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillSliderContainer.x - UM.Theme.getSize("thick_margin").width, 0), + catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) + + onExited: base.hideTooltip() + } + + Label + { + id: gradualInfillLabel + height: parent.height + anchors.left: enableGradualInfillCheckBox.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + verticalAlignment: Text.AlignVCenter + text: catalog.i18nc("@label", "Enable gradual") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering + } + } // Rectangle // { @@ -198,73 +274,6 @@ Item // } // } // -// // Gradual Support Infill Checkbox -// CheckBox -// { -// id: enableGradualInfillCheckBox -// property alias _hovered: enableGradualInfillMouseArea.containsMouse -// -// anchors.top: infillSlider.bottom -// anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) // closer to slider since it belongs to the same category -// anchors.left: infillSliderContainer.left -// -// style: UM.Theme.styles.checkbox -// enabled: base.settingsEnabled -// visible: infillSteps.properties.enabled == "True" -// checked: parseInt(infillSteps.properties.value) > 0 -// -// MouseArea -// { -// id: enableGradualInfillMouseArea -// -// anchors.fill: parent -// hoverEnabled: true -// enabled: true -// -// property var previousInfillDensity: parseInt(infillDensity.properties.value) -// -// onClicked: -// { -// // Set to 90% only when enabling gradual infill -// var newInfillDensity; -// if (parseInt(infillSteps.properties.value) == 0) -// { -// previousInfillDensity = parseInt(infillDensity.properties.value) -// newInfillDensity = 90 -// } else { -// newInfillDensity = previousInfillDensity -// } -// Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) -// -// var infill_steps_value = 0 -// if (parseInt(infillSteps.properties.value) == 0) -// { -// infill_steps_value = 5 -// } -// -// Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) -// } -// -// onEntered: base.showTooltip(enableGradualInfillCheckBox, Qt.point(-infillSliderContainer.x, 0), -// catalog.i18nc("@label", "Gradual infill will gradually increase the amount of infill towards the top.")) -// -// onExited: base.hideTooltip() -// -// } -// -// Label -// { -// id: gradualInfillLabel -// height: parent.height -// anchors.left: enableGradualInfillCheckBox.right -// anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) -// verticalAlignment: Text.AlignVCenter; -// text: catalog.i18nc("@label", "Enable gradual") -// font: UM.Theme.getFont("default") -// color: UM.Theme.getColor("text") -// } -// } -// // // Infill list model for mapping icon // ListModel // { @@ -308,7 +317,6 @@ Item // }) // } // } - } UM.SettingPropertyProvider { From 1caccfb57705ed75dc49d0d257a71204d9210827 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 2 Dec 2018 13:40:41 +0100 Subject: [PATCH 0610/1039] Add a binding to react when the infill density changes in the custom panel Also make the icon dinamic, that will change when the infill density changes. Contributes to CURA-5941. --- .../RecommendedInfillDensitySelector.qml | 160 ++++-------------- resources/themes/cura-light/styles.qml | 3 +- resources/themes/cura-light/theme.json | 9 +- 3 files changed, 44 insertions(+), 128 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 4226acb790..0dd594176c 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -19,6 +19,42 @@ Item property real labelColumnWidth: Math.round(width / 3) + // Create a binding to update the icon when the infill density changes + Binding + { + target: infillRowTitle + property: "source" + value: + { + var density = parseInt(infillDensity.properties.value) + if (parseInt(infillSteps.properties.value) != 0) + { + return UM.Theme.getIcon("gradual") + } + if (density <= 0) + { + return UM.Theme.getIcon("hollow") + } + if (density < 40) + { + return UM.Theme.getIcon("sparse") + } + if (density < 90) + { + return UM.Theme.getIcon("dense") + } + return UM.Theme.getIcon("solid") + } + } + + // We use a binding to make sure that after manually setting infillSlider.value it is still bound to the property provider + Binding + { + target: infillSlider + property: "value" + value: parseInt(infillDensity.properties.value) + } + // Here are the elements that are shown in the left column Cura.IconWithText { @@ -30,13 +66,6 @@ Item width: labelColumnWidth } - Rectangle - { - anchors.fill: infillSliderContainer - color: "red" - opacity: 0.5 - } - Item { id: infillSliderContainer @@ -158,6 +187,7 @@ Item anchors.topMargin: UM.Theme.getSize("wide_margin").height anchors.left: infillSliderContainer.left + text: catalog.i18nc("@label", "Gradual infill") style: UM.Theme.styles.checkbox enabled: base.settingsEnabled visible: infillSteps.properties.enabled == "True" @@ -200,124 +230,8 @@ Item onExited: base.hideTooltip() } - - Label - { - id: gradualInfillLabel - height: parent.height - anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width - verticalAlignment: Text.AlignVCenter - text: catalog.i18nc("@label", "Enable gradual") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - renderType: Text.NativeRendering - } } -// Rectangle -// { -// id: infillIcon -// -// width: Math.round((parent.width / 5) - (UM.Theme.getSize("thick_margin").width)) -// height: width -// -// anchors.right: parent.right -// anchors.top: parent.top -// anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height / 2) -// -// // we loop over all density icons and only show the one that has the current density and steps -// Repeater -// { -// id: infillIconList -// model: infillModel -// anchors.fill: parent -// -// function activeIndex () -// { -// for (var i = 0; i < infillModel.count; i++) -// { -// var density = Math.round(infillDensity.properties.value) -// var steps = Math.round(infillSteps.properties.value) -// var infillModelItem = infillModel.get(i) -// -// if (infillModelItem != "undefined" -// && density >= infillModelItem.percentageMin -// && density <= infillModelItem.percentageMax -// && steps >= infillModelItem.stepsMin -// && steps <= infillModelItem.stepsMax) -// { -// return i -// } -// } -// return -1 -// } -// -// Rectangle -// { -// anchors.fill: parent -// visible: infillIconList.activeIndex() == index -// -// border.width: UM.Theme.getSize("default_lining").width -// border.color: UM.Theme.getColor("quality_slider_unavailable") -// -// UM.RecolorImage -// { -// anchors.fill: parent -// anchors.margins: 2 * screenScaleFactor -// sourceSize.width: width -// sourceSize.height: width -// source: UM.Theme.getIcon(model.icon) -// color: UM.Theme.getColor("quality_slider_unavailable") -// } -// } -// } -// } -// -// // Infill list model for mapping icon -// ListModel -// { -// id: infillModel -// Component.onCompleted: -// { -// infillModel.append({ -// percentageMin: -1, -// percentageMax: 0, -// stepsMin: -1, -// stepsMax: 0, -// icon: "hollow" -// }) -// infillModel.append({ -// percentageMin: 0, -// percentageMax: 40, -// stepsMin: -1, -// stepsMax: 0, -// icon: "sparse" -// }) -// infillModel.append({ -// percentageMin: 40, -// percentageMax: 89, -// stepsMin: -1, -// stepsMax: 0, -// icon: "dense" -// }) -// infillModel.append({ -// percentageMin: 90, -// percentageMax: 9999999999, -// stepsMin: -1, -// stepsMax: 0, -// icon: "solid" -// }) -// infillModel.append({ -// percentageMin: 0, -// percentageMax: 9999999999, -// stepsMin: 1, -// stepsMax: 9999999999, -// icon: "gradual" -// }) -// } -// } - UM.SettingPropertyProvider { id: infillDensity diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index e040d91df9..96bf334c43 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -532,7 +532,7 @@ QtObject color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox") Behavior on color { ColorAnimation { duration: 50; } } - radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : 0 + radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : UM.Theme.getSize("checkbox_radius").width border.width: Theme.getSize("default_lining").width border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border") @@ -557,6 +557,7 @@ QtObject color: Theme.getColor("checkbox_text") font: Theme.getFont("default") elide: Text.ElideRight + renderType: Text.NativeRendering } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 7cfd7b93e1..392b09303d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -239,10 +239,10 @@ "checkbox": [255, 255, 255, 255], "checkbox_hover": [255, 255, 255, 255], - "checkbox_border": [64, 69, 72, 255], + "checkbox_border": [199, 199, 199, 255], "checkbox_border_hover": [50, 130, 255, 255], - "checkbox_mark": [119, 122, 124, 255], - "checkbox_text": [27, 27, 27, 255], + "checkbox_mark": [50, 130, 255, 255], + "checkbox_text": [35, 35, 35, 255], "tooltip": [68, 192, 255, 255], "tooltip_text": [255, 255, 255, 255], @@ -459,7 +459,8 @@ "layerview_row": [11.0, 1.5], "layerview_row_spacing": [0.0, 0.5], - "checkbox": [2.0, 2.0], + "checkbox": [1.5, 1.5], + "checkbox_radius": [0.08, 0.08], "tooltip": [20.0, 10.0], "tooltip_margins": [1.0, 1.0], From 1cea36b08a5f6f1a8899667a39ec87285abab9c6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 2 Dec 2018 19:01:54 +0100 Subject: [PATCH 0611/1039] Add the row for the support selection in the recommended mode Contributes to CURA-5941. --- .../Recommended/RecommendedPrintSetup.qml | 15 +- .../RecommendedSupportSelector.qml | 189 +++++++++++------- resources/themes/cura-light/styles.qml | 15 +- resources/themes/cura-light/theme.json | 10 +- 4 files changed, 134 insertions(+), 95 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index 0dabc3ea1e..d246be560e 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -57,13 +57,13 @@ Item // TODO Create a reusable component with these properties to not define them separately for each component labelColumnWidth: parent.firstColumnWidth } -// -// RecommendedSupportSelector -// { -// width: parent.width -// // TODO Create a reusable component with these properties to not define them separately for each component -// property real firstColumnWidth: parent.labelColumnWidth -// } + + RecommendedSupportSelector + { + width: parent.width + // TODO Create a reusable component with these properties to not define them separately for each component + labelColumnWidth: parent.firstColumnWidth + } // @@ -128,7 +128,6 @@ Item // } } - UM.SettingPropertyProvider { id: platformAdhesionType diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 9c4e5ed576..2407b746b2 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -8,114 +8,142 @@ import QtQuick.Controls.Styles 1.4 import UM 1.2 as UM import Cura 1.0 as Cura + // // Enable support // -Row +Item { + id: enableSupportRow + height: childrenRect.height + + property real labelColumnWidth: Math.round(width / 3) Cura.IconWithText { - id: enableSupportLabel + id: enableSupportRowTitle + anchors.top: parent.top + anchors.left: parent.left visible: enableSupportCheckBox.visible source: UM.Theme.getIcon("category_support") text: catalog.i18nc("@label", "Support") width: labelColumnWidth } - CheckBox + Item { - id: enableSupportCheckBox - property alias _hovered: enableSupportMouseArea.containsMouse + id: enableSupportContainer + height: childrenRect.height - style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled - - visible: supportEnabled.properties.enabled == "True" - checked: supportEnabled.properties.value == "True" - - MouseArea + anchors { - id: enableSupportMouseArea - anchors.fill: parent - hoverEnabled: true - onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") - - onEntered: base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportCheckBox.x, 0), - catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) - - onExited: base.hideTooltip() - - } - } - - ComboBox - { - id: supportExtruderCombobox - visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) - model: extruderModel - - property string color_override: "" // for manually setting values - property string color: // is evaluated automatically, but the first time is before extruderModel being filled - { - var current_extruder = extruderModel.get(currentIndex); - color_override = ""; - if (current_extruder === undefined) return "" - return (current_extruder.color) ? current_extruder.color : ""; + left: enableSupportRowTitle.right + right: parent.right + verticalCenter: enableSupportRowTitle.verticalCenter } - textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started - - width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width - height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0 - - Behavior on height { NumberAnimation { duration: 100 } } - - style: UM.Theme.styles.combobox_color - enabled: base.settingsEnabled - property alias _hovered: supportExtruderMouseArea.containsMouse - - currentIndex: + CheckBox { - if (supportExtruderNr.properties == null) + id: enableSupportCheckBox + anchors.verticalCenter: parent.verticalCenter + + property alias _hovered: enableSupportMouseArea.containsMouse + + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + + visible: supportEnabled.properties.enabled == "True" + checked: supportEnabled.properties.value == "True" + + MouseArea { - return Cura.MachineManager.defaultExtruderPosition + id: enableSupportMouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") + + onEntered: + { + base.showTooltip(enableSupportCheckBox, Qt.point(-enableSupportContainer.x - UM.Theme.getSize("thick_margin").width, 0), + catalog.i18nc("@label", "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.")) + } + onExited: base.hideTooltip() } - else + } + + ComboBox + { + id: supportExtruderCombobox + + height: UM.Theme.getSize("print_setup_support_extruder_selector").height + anchors { - var extruder = parseInt(supportExtruderNr.properties.value) - if ( extruder === -1) + left: enableSupportCheckBox.right + right: parent.right + leftMargin: UM.Theme.getSize("thick_margin").width + rightMargin: UM.Theme.getSize("thick_margin").width + verticalCenter: parent.verticalCenter + } + + style: UM.Theme.styles.combobox_color + enabled: base.settingsEnabled + visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) + textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started + + model: extruderModel + + property alias _hovered: supportExtruderMouseArea.containsMouse + property string color_override: "" // for manually setting values + property string color: // is evaluated automatically, but the first time is before extruderModel being filled + { + var current_extruder = extruderModel.get(currentIndex); + color_override = ""; + if (current_extruder === undefined) return "" + return (current_extruder.color) ? current_extruder.color : ""; + } + + currentIndex: + { + if (supportExtruderNr.properties == null) { return Cura.MachineManager.defaultExtruderPosition } - return extruder; + else + { + var extruder = parseInt(supportExtruderNr.properties.value) + if ( extruder === -1) + { + return Cura.MachineManager.defaultExtruderPosition + } + return extruder; + } } - } - onActivated: supportExtruderNr.setPropertyValue("value", String(index)) + onActivated: supportExtruderNr.setPropertyValue("value", String(index)) - MouseArea - { - id: supportExtruderMouseArea - anchors.fill: parent - hoverEnabled: true - enabled: base.settingsEnabled - acceptedButtons: Qt.NoButton - onEntered: + MouseArea { - base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0), - catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); + id: supportExtruderMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + acceptedButtons: Qt.NoButton + onEntered: + { + base.showTooltip(supportExtruderCombobox, Qt.point(-enableSupportContainer.x - supportExtruderCombobox.x - UM.Theme.getSize("thick_margin").width, 0), + catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.")); + } + onExited: base.hideTooltip() + } - onExited: base.hideTooltip() - } - - function updateCurrentColor() - { - var current_extruder = extruderModel.get(currentIndex) - if (current_extruder !== undefined) + function updateCurrentColor() { - supportExtruderCombobox.color_override = current_extruder.color + var current_extruder = extruderModel.get(currentIndex) + if (current_extruder !== undefined) + { + supportExtruderCombobox.color_override = current_extruder.color + } } } } @@ -160,6 +188,15 @@ Row storeIndex: 0 } + UM.SettingPropertyProvider + { + id: machineExtruderCount + containerStack: Cura.MachineManager.activeMachine + key: "machine_extruder_count" + watchedProperties: ["value"] + storeIndex: 0 + } + function populateExtruderModel() { extruderModel.clear() diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 96bf334c43..5203cb0b0b 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -413,11 +413,11 @@ QtObject border.width: Theme.getSize("default_lining").width; border.color: control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border"); + radius: UM.Theme.getSize("setting_control_radius").width } label: Item { - Label { anchors.left: parent.left @@ -465,11 +465,11 @@ QtObject color: !enabled ? UM.Theme.getColor("setting_control_disabled") : control._hovered ? UM.Theme.getColor("setting_control_highlight") : UM.Theme.getColor("setting_control") border.width: UM.Theme.getSize("default_lining").width border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control._hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border") + radius: UM.Theme.getSize("setting_control_radius").width } label: Item { - Label { anchors.left: parent.left @@ -486,7 +486,7 @@ QtObject verticalAlignment: Text.AlignVCenter } - Rectangle + UM.RecolorImage { id: swatch height: Math.round(UM.Theme.getSize("setting_control").height / 2) @@ -494,9 +494,9 @@ QtObject anchors.right: downArrow.left anchors.verticalCenter: parent.verticalCenter anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) - radius: Math.round(width / 2) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") + sourceSize.width: width + sourceSize.height: height + source: UM.Theme.getIcon("extruder_button") color: (control.color_override !== "") ? control.color_override : control.color } @@ -575,7 +575,7 @@ QtObject color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox"); Behavior on color { ColorAnimation { duration: 50; } } - radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : 0 + radius: control.exclusiveGroup ? Math.round(Theme.getSize("checkbox").width / 2) : UM.Theme.getSize("checkbox_radius").width border.width: Theme.getSize("default_lining").width; border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border"); @@ -628,6 +628,7 @@ QtObject border.width: Theme.getSize("default_lining").width; border.color: control.hovered ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border"); + radius: UM.Theme.getSize("setting_control_radius").width color: Theme.getColor("setting_validation_ok"); diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 392b09303d..afe40007f4 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -206,11 +206,11 @@ "setting_control": [255, 255, 255, 255], "setting_control_selected": [31, 36, 39, 255], "setting_control_highlight": [255, 255, 255, 255], - "setting_control_border": [127, 127, 127, 255], + "setting_control_border": [199, 199, 199, 255], "setting_control_border_highlight": [50, 130, 255, 255], - "setting_control_text": [27, 27, 27, 255], - "setting_control_depth_line": [127, 127, 127, 255], - "setting_control_button": [127, 127, 127, 255], + "setting_control_text": [35, 35, 35, 255], + "setting_control_depth_line": [199, 199, 199, 255], + "setting_control_button": [199, 199, 199, 255], "setting_control_button_hover": [70, 84, 113, 255], "setting_control_disabled": [245, 245, 245, 255], "setting_control_disabled_text": [127, 127, 127, 255], @@ -377,6 +377,7 @@ "print_setup_slider_groove": [0.16, 0.16], "print_setup_slider_handle": [1.0, 1.0], "print_setup_slider_tickmarks": [0.32, 0.32], + "print_setup_support_extruder_selector": [18.2, 2.5], "configuration_selector_mode_tabs": [0.0, 3.0], @@ -415,6 +416,7 @@ "setting": [25.0, 1.8], "setting_control": [10.0, 2.0], + "setting_control_radius": [0.15, 0.15], "setting_control_depth_margin": [1.4, 0.0], "setting_preferences_button_margin": [4, 0.0], "setting_control_margin": [0.0, 0.0], From adabb833e0b6dbc978bfb96f8b42004f03e28a84 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 2 Dec 2018 19:14:34 +0100 Subject: [PATCH 0612/1039] Add row for the adhesion setting in the recommended mode Contributes to CURA-5941. --- .../RecommendedAdhesionSelector.qml | 99 +++++++++++++++++++ .../Recommended/RecommendedPrintSetup.qml | 77 ++------------- .../RecommendedSupportSelector.qml | 2 +- 3 files changed, 106 insertions(+), 72 deletions(-) create mode 100644 resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml new file mode 100644 index 0000000000..a7e8b3ea75 --- /dev/null +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml @@ -0,0 +1,99 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +import UM 1.2 as UM +import Cura 1.0 as Cura + + +// +// Adhesion +// +Item +{ + id: enableAdhesionRow + height: childrenRect.height + + property real labelColumnWidth: Math.round(width / 3) + + Cura.IconWithText + { + id: enableAdhesionRowTitle + anchors.top: parent.top + anchors.left: parent.left + source: UM.Theme.getIcon("category_adhesion") + text: catalog.i18nc("@label", "Adhesion") + width: labelColumnWidth + } + + Item + { + id: enableAdhesionContainer + height: childrenRect.height + + anchors + { + left: enableAdhesionRowTitle.right + right: parent.right + verticalCenter: enableAdhesionRowTitle.verticalCenter + } + + CheckBox + { + id: enableAdhesionCheckBox + anchors.verticalCenter: parent.verticalCenter + + //: Setting enable printing build-plate adhesion helper checkbox + style: UM.Theme.styles.checkbox + enabled: base.settingsEnabled + + visible: platformAdhesionType.properties.enabled == "True" + checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" + + MouseArea + { + id: adhesionMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: base.settingsEnabled + + onClicked: + { + var adhesionType = "skirt" + if (!parent.checked) + { + // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft + platformAdhesionType.removeFromContainer(0) + adhesionType = platformAdhesionType.properties.value + if(adhesionType == "skirt" || adhesionType == "none") + { + // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim + adhesionType = "brim" + } + } + platformAdhesionType.setPropertyValue("value", adhesionType) + } + + onEntered: + { + base.showTooltip(enableAdhesionCheckBox, Qt.point(-enableAdhesionContainer.x - UM.Theme.getSize("thick_margin").width, 0), + catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); + } + onExited: base.hideTooltip() + } + } + } + + UM.SettingPropertyProvider + { + id: platformAdhesionType + containerStack: Cura.MachineManager.activeMachine + removeUnusedValue: false //Doesn't work with settings that are resolved. + key: "adhesion_type" + watchedProperties: [ "value", "enabled" ] + storeIndex: 0 + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index d246be560e..a8fca47d6c 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -65,76 +65,11 @@ Item labelColumnWidth: parent.firstColumnWidth } - -// -// // Adhesion -// Row -// { -// anchors.left: parent.left -// anchors.right: parent.right -// height: childrenRect.height -// -// Cura.IconWithText -// { -// id: adhesionHelperLabel -// visible: adhesionCheckBox.visible -// source: UM.Theme.getIcon("category_adhesion") -// text: catalog.i18nc("@label", "Adhesion") -// width: labelColumnWidth -// } -// -// CheckBox -// { -// id: adhesionCheckBox -// property alias _hovered: adhesionMouseArea.containsMouse -// -// //: Setting enable printing build-plate adhesion helper checkbox -// style: UM.Theme.styles.checkbox -// enabled: base.settingsEnabled -// -// visible: platformAdhesionType.properties.enabled == "True" -// checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" -// -// MouseArea -// { -// id: adhesionMouseArea -// anchors.fill: parent -// hoverEnabled: true -// enabled: base.settingsEnabled -// onClicked: -// { -// var adhesionType = "skirt" -// if(!parent.checked) -// { -// // Remove the "user" setting to see if the rest of the stack prescribes a brim or a raft -// platformAdhesionType.removeFromContainer(0) -// adhesionType = platformAdhesionType.properties.value -// if(adhesionType == "skirt" || adhesionType == "none") -// { -// // If the rest of the stack doesn't prescribe an adhesion-type, default to a brim -// adhesionType = "brim" -// } -// } -// platformAdhesionType.setPropertyValue("value", adhesionType) -// } -// onEntered: -// { -// base.showTooltip(adhesionCheckBox, Qt.point(-adhesionCheckBox.x, 0), -// catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards.")); -// } -// onExited: base.hideTooltip() -// } -// } -// } - } - - UM.SettingPropertyProvider - { - id: platformAdhesionType - containerStack: Cura.MachineManager.activeMachine - removeUnusedValue: false //Doesn't work with settings that are resolved. - key: "adhesion_type" - watchedProperties: [ "value", "enabled" ] - storeIndex: 0 + RecommendedAdhesionSelector + { + width: parent.width + // TODO Create a reusable component with these properties to not define them separately for each component + labelColumnWidth: parent.firstColumnWidth + } } } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 2407b746b2..4e63242f05 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -33,7 +33,7 @@ Item Item { id: enableSupportContainer - height: childrenRect.height + height: enableSupportCheckBox.height anchors { From 7dc3320b0648142719b59c7a73dcf66da373335c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 2 Dec 2018 20:32:55 +0100 Subject: [PATCH 0613/1039] Remove all the signal propagation for the tooltip and allow only Cura.qml to handle them Contributes to CURA-5941. --- plugins/PrepareStage/PrepareMenu.qml | 4 ---- plugins/PreviewStage/PreviewMenu.qml | 3 --- resources/qml/Cura.qml | 9 --------- .../Custom/CustomPrintSetup.qml | 13 ++++++++++++- .../PrintSetupSelector/PrintSetupSelector.qml | 17 +---------------- .../PrintSetupSelectorContents.qml | 9 +++------ .../Recommended/RecommendedAdhesionSelector.qml | 7 ++++--- .../RecommendedInfillDensitySelector.qml | 2 +- .../Recommended/RecommendedPrintSetup.qml | 5 +---- .../Recommended/RecommendedSupportSelector.qml | 7 ++++--- resources/qml/Settings/SettingView.qml | 6 ++---- 11 files changed, 28 insertions(+), 54 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 7c01b1f8b0..0191396e7b 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -13,10 +13,6 @@ import QtGraphicalEffects 1.0 // For the dropshadow Item { id: prepareMenu - // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. - signal showTooltip(Item item, point location, string text) - signal hideTooltip() - UM.I18nCatalog { diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index a1f59cd4ca..1543536160 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -10,9 +10,6 @@ import Cura 1.1 as Cura Item { id: previewMenu - // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. - signal showTooltip(Item item, point location, string text) - signal hideTooltip() property real itemHeight: height - 2 * UM.Theme.getSize("default_lining").width diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 36f5758fa3..4effea5ba7 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -181,13 +181,6 @@ UM.MainWindow } } - Connections - { - target: stageMenu.item - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() - } - JobSpecs { id: jobSpecs @@ -280,8 +273,6 @@ UM.MainWindow // Every time the stage is changed. property var printSetupSelector: Cura.PrintSetupSelector { - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() width: UM.Theme.getSize("print_setup_widget").width height: UM.Theme.getSize("stage_menu").height headerCornerSide: RoundedRectangle.Direction.Right diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 51cd8eff0d..ea56a4471e 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -6,5 +6,16 @@ import QtQuick.Controls 2.0 import Cura 1.0 as Cura -Cura.SettingView { + +Item +{ + id: customPrintSetup + + // TODO: Hardcoded now but UX has to decide about the height of this item + height: 500 + + Cura.SettingView + { + anchors.fill: parent + } } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 1794a54cdf..5518ac6b60 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -9,17 +9,13 @@ import Cura 1.0 as Cura Cura.ExpandableComponent { - id: base + id: printSetupSelector property bool hideSettings: PrintInformation.preSliced property string enabledText: catalog.i18nc("@label:Should be short", "On") property string disabledText: catalog.i18nc("@label:Should be short", "Off") - // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it. - signal showTooltip(Item item, point location, string text) - signal hideTooltip() - iconSource: UM.Theme.getIcon("pencil") popupPadding: UM.Theme.getSize("default_lining").width popupSpacingY: UM.Theme.getSize("narrow_margin").width @@ -32,17 +28,6 @@ Cura.ExpandableComponent name: "cura" } - Timer - { - id: tooltipDelayTimer - interval: 500 - repeat: false - property var item - property string text - - onTriggered: base.showTooltip(base, {x: 0, y: item.y}, text) - } - headerItem: PrintSetupSelectorHeader { anchors.fill: parent diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 0210ece977..77d1b59f4c 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -93,7 +93,7 @@ Item Item { id: contents - height: childrenRect.height + height: currentModeIndex == 0 ? recommendedPrintSetup.height : customPrintSetup.height anchors { @@ -104,28 +104,25 @@ Item RecommendedPrintSetup { + id: recommendedPrintSetup anchors { left: parent.left right: parent.right top: parent.top } - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() visible: currentModeIndex == 0 } CustomPrintSetup { + id: customPrintSetup anchors { left: parent.left right: parent.right top: parent.top } - height: 500 - onShowTooltip: base.showTooltip(item, location, text) - onHideTooltip: base.hideTooltip() visible: currentModeIndex == 1 } } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml index a7e8b3ea75..3092644d4e 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml @@ -32,7 +32,7 @@ Item Item { id: enableAdhesionContainer - height: childrenRect.height + height: enableAdhesionCheckBox.height anchors { @@ -46,9 +46,11 @@ Item id: enableAdhesionCheckBox anchors.verticalCenter: parent.verticalCenter + property alias _hovered: adhesionMouseArea.containsMouse + //: Setting enable printing build-plate adhesion helper checkbox style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled + enabled: recommendedPrintSettup.settingsEnabled visible: platformAdhesionType.properties.enabled == "True" checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" @@ -58,7 +60,6 @@ Item id: adhesionMouseArea anchors.fill: parent hoverEnabled: true - enabled: base.settingsEnabled onClicked: { diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 0dd594176c..7c026ac9de 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -189,7 +189,7 @@ Item text: catalog.i18nc("@label", "Gradual infill") style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled + enabled: recommendedPrintSettup.settingsEnabled visible: infillSteps.properties.enabled == "True" checked: parseInt(infillSteps.properties.value) > 0 diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index a8fca47d6c..194747271e 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -10,13 +10,10 @@ import Cura 1.0 as Cura Item { - id: base + id: recommendedPrintSettup height: childrenRect.height + 2 * padding - signal showTooltip(Item item, point location, string text) - signal hideTooltip() - property Action configureSettings property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 4e63242f05..25a5574a39 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -50,7 +50,7 @@ Item property alias _hovered: enableSupportMouseArea.containsMouse style: UM.Theme.styles.checkbox - enabled: base.settingsEnabled + enabled: recommendedPrintSettup.settingsEnabled visible: supportEnabled.properties.enabled == "True" checked: supportEnabled.properties.value == "True" @@ -60,6 +60,7 @@ Item id: enableSupportMouseArea anchors.fill: parent hoverEnabled: true + onClicked: supportEnabled.setPropertyValue("value", supportEnabled.properties.value != "True") onEntered: @@ -86,7 +87,7 @@ Item } style: UM.Theme.styles.combobox_color - enabled: base.settingsEnabled + enabled: recommendedPrintSettup.settingsEnabled visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started @@ -126,7 +127,7 @@ Item id: supportExtruderMouseArea anchors.fill: parent hoverEnabled: true - enabled: base.settingsEnabled + enabled: recommendedPrintSettup.settingsEnabled acceptedButtons: Qt.NoButton onEntered: { diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 0a7102ff45..270f04e70f 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -13,13 +13,11 @@ import "../Menus" Item { - id: base; + id: settingsView property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel() property Action configureSettings property bool findingSettings - signal showTooltip(Item item, point location, string text) - signal hideTooltip() ToolButton { @@ -359,7 +357,7 @@ Item contextMenu.provider = provider contextMenu.popup(); } - onShowTooltip: base.showTooltip(delegate, { x: -UM.Theme.getSize("default_arrow").width, y: Math.round(delegate.height / 2) }, text) + onShowTooltip: base.showTooltip(delegate, Qt.point(- UM.Theme.getSize("default_arrow").width, 0), text) onHideTooltip: base.hideTooltip() onShowAllHiddenInheritedSettings: { From 82e66eeaa1957184e8cf9b4ce1359ec47690f946 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 09:02:41 +0100 Subject: [PATCH 0614/1039] Remove tabs and lining with single-extruder printers There's no sense in showing tabs if the user can't use them. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index b269b95df2..957cd16b3e 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -40,6 +40,7 @@ Item id: tabBar anchors.top: header.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height + visible: Cura.MachineManager.numberExtrudersEnabled > 1 currentIndex: Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) @@ -86,8 +87,8 @@ Item height: childrenRect.height anchors.top: tabBar.bottom - radius: UM.Theme.getSize("default_radius").width - border.width: UM.Theme.getSize("default_lining").width + radius: tabBar.visible ? UM.Theme.getSize("default_radius").width : 0 + border.width: tabBar.visible ? UM.Theme.getSize("default_lining").width : 0 border.color: UM.Theme.getColor("lining") color: UM.Theme.getColor("main_background") @@ -98,6 +99,7 @@ Item height: parent.radius anchors.top: parent.top color: UM.Theme.getColor("lining") + visible: tabBar.visible Rectangle { anchors From db05d7853a3567da6bb328f676c3f89dfb74bfcc Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 09:04:35 +0100 Subject: [PATCH 0615/1039] Remove background colour from tab window The colour is the same as what is behind it anyway. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 957cd16b3e..eae160b48a 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -90,7 +90,6 @@ Item radius: tabBar.visible ? UM.Theme.getSize("default_radius").width : 0 border.width: tabBar.visible ? UM.Theme.getSize("default_lining").width : 0 border.color: UM.Theme.getColor("lining") - color: UM.Theme.getColor("main_background") //Remove rounding and lining at the top. Rectangle From 90281c455b74a56fc49c45724fee3e4b3aa88f85 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 3 Dec 2018 09:45:49 +0100 Subject: [PATCH 0616/1039] Add global profile selector to the custom print setup panel Also modify some styles to adjust to the designs. Contributes to CURA-5941. --- .../Custom/CustomPrintSetup.qml | 29 +++++++++- .../Custom/GlobalProfileSelector.qml} | 53 +++++++++++-------- .../PrintSetupSelector/PrintSetupSelector.qml | 2 - .../RecommendedQualityProfileSelector.qml | 4 +- .../RecommendedSupportSelector.qml | 2 +- resources/qml/qmldir | 3 +- resources/themes/cura-light/styles.qml | 6 ++- resources/themes/cura-light/theme.json | 3 +- 8 files changed, 71 insertions(+), 31 deletions(-) rename resources/qml/{GlobalProfileButton.qml => PrintSetupSelector/Custom/GlobalProfileSelector.qml} (67%) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index ea56a4471e..e0f0827b17 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -4,6 +4,7 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 +import UM 1.3 as UM import Cura 1.0 as Cura @@ -14,8 +15,34 @@ Item // TODO: Hardcoded now but UX has to decide about the height of this item height: 500 + property real padding: UM.Theme.getSize("default_margin").width + + // Profile selector row + GlobalProfileSelector + { + id: globalProfileRow + anchors + { + top: parent.top + topMargin: parent.padding + left: parent.left + leftMargin: parent.padding + right: parent.right + rightMargin: parent.padding + } + } + Cura.SettingView { - anchors.fill: parent + anchors + { + top: globalProfileRow.bottom + topMargin: UM.Theme.getSize("default_margin").height + left: parent.left + leftMargin: parent.padding + right: parent.right + rightMargin: parent.padding + bottom: parent.bottom + } } } diff --git a/resources/qml/GlobalProfileButton.qml b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml similarity index 67% rename from resources/qml/GlobalProfileButton.qml rename to resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml index bac2732037..91525d0f9e 100644 --- a/resources/qml/GlobalProfileButton.qml +++ b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml @@ -9,24 +9,25 @@ import QtQuick.Layouts 1.2 import UM 1.2 as UM import Cura 1.0 as Cura -import "Menus" - Item { id: globalProfileRow - height: UM.Theme.getSize("print_setup_item").height + height: childrenRect.height Label { id: globalProfileLabel - text: catalog.i18nc("@label","Profile:") - textFormat: Text.PlainText - width: Math.round(parent.width * 0.45 - UM.Theme.getSize("thick_margin").width - 2) + anchors + { + top: parent.top + bottom: parent.bottom + left: parent.left + right: globalProfileSelection.left + } + text: catalog.i18nc("@label", "Profile") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter - anchors.top: parent.top - anchors.bottom: parent.bottom } ToolButton @@ -34,20 +35,30 @@ Item id: globalProfileSelection text: generateActiveQualityText() - width: Math.round(parent.width * 0.55) - height: UM.Theme.getSize("setting_control").height - anchors.left: globalProfileLabel.right - anchors.right: parent.right + width: UM.Theme.getSize("print_setup_big_dropdown").width + height: UM.Theme.getSize("print_setup_big_dropdown").height + anchors + { + top: parent.top + right: parent.right + } tooltip: Cura.MachineManager.activeQualityOrQualityChangesName style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true - menu: ProfileMenu { } + menu: Cura.ProfileMenu { } - function generateActiveQualityText () { - var result = Cura.MachineManager.activeQualityOrQualityChangesName; + function generateActiveQualityText() + { + var result = Cura.MachineManager.activeQualityOrQualityChangesName + if (Cura.MachineManager.isActiveQualityExperimental) + { + result += " (Experimental)" + } - if (Cura.MachineManager.isActiveQualitySupported) { - if (Cura.MachineManager.activeQualityLayerHeight > 0) { + if (Cura.MachineManager.isActiveQualitySupported) + { + if (Cura.MachineManager.activeQualityLayerHeight > 0) + { result += " " result += " - " result += Cura.MachineManager.activeQualityLayerHeight + "mm" @@ -63,15 +74,15 @@ Item id: customisedSettings visible: Cura.MachineManager.hasUserSettings - height: Math.round(parent.height * 0.6) - width: Math.round(parent.height * 0.6) + width: UM.Theme.getSize("print_setup_icon").width + height: UM.Theme.getSize("print_setup_icon").height anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right anchors.rightMargin: Math.round(UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("thick_margin").width) color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); - iconSource: UM.Theme.getIcon("star"); + iconSource: UM.Theme.getIcon("star") onClicked: { @@ -81,7 +92,7 @@ Item onEntered: { var content = catalog.i18nc("@tooltip","Some setting/override values are different from the values stored in the profile.\n\nClick to open the profile manager.") - base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), content) + base.showTooltip(globalProfileRow, Qt.point(-UM.Theme.getSize("default_margin").width, 0), content) } onExited: base.hideTooltip() } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 5518ac6b60..f1b424f7f2 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -11,8 +11,6 @@ Cura.ExpandableComponent { id: printSetupSelector - property bool hideSettings: PrintInformation.preSliced - property string enabledText: catalog.i18nc("@label:Should be short", "On") property string disabledText: catalog.i18nc("@label:Should be short", "Off") diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index cddf01a4dc..4963f10792 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -182,7 +182,7 @@ Item id: customisedSettings visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated - height: visible ? Math.round(0.8 * qualityRowTitle.height) : 0 + height: visible ? UM.Theme.getSize("print_setup_icon").height : 0 width: height anchors { @@ -203,7 +203,7 @@ Item onEntered: { var tooltipContent = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") - base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), tooltipContent) + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), tooltipContent) } onExited: base.hideTooltip() } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 25a5574a39..d367510ef6 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -76,7 +76,7 @@ Item { id: supportExtruderCombobox - height: UM.Theme.getSize("print_setup_support_extruder_selector").height + height: UM.Theme.getSize("print_setup_big_dropdown").height anchors { left: enableSupportCheckBox.right diff --git a/resources/qml/qmldir b/resources/qml/qmldir index c0a8bac0ae..4dc9a34894 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -15,4 +15,5 @@ ExpandableComponent 1.0 ExpandableComponent.qml PrinterTypeLabel 1.0 PrinterTypeLabel.qml ViewsSelector 1.0 ViewsSelector.qml ToolbarButton 1.0 ToolbarButton.qml -SettingView 1.0 SettingView.qml \ No newline at end of file +SettingView 1.0 SettingView.qml +ProfileMenu 1.0 ProfileMenu.qml \ No newline at end of file diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 5203cb0b0b..e6144bb6ec 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -38,6 +38,7 @@ QtObject } } + radius: UM.Theme.getSize("setting_control_radius").width border.width: Theme.getSize("default_lining").width border.color: { @@ -489,11 +490,12 @@ QtObject UM.RecolorImage { id: swatch - height: Math.round(UM.Theme.getSize("setting_control").height / 2) + height: Math.round(control.height / 2) width: height anchors.right: downArrow.left anchors.verticalCenter: parent.verticalCenter - anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) + anchors.rightMargin: UM.Theme.getSize("default_margin").width +// anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) sourceSize.width: width sourceSize.height: height source: UM.Theme.getIcon("extruder_button") diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index afe40007f4..2c5c7a360a 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -377,7 +377,8 @@ "print_setup_slider_groove": [0.16, 0.16], "print_setup_slider_handle": [1.0, 1.0], "print_setup_slider_tickmarks": [0.32, 0.32], - "print_setup_support_extruder_selector": [18.2, 2.5], + "print_setup_big_dropdown": [28, 2.5], + "print_setup_icon": [1.2, 1.2], "configuration_selector_mode_tabs": [0.0, 3.0], From f3af5a72ad7b29f3e27197cff85c43bcff0519fd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 11:13:26 +0100 Subject: [PATCH 0617/1039] Use ListModel.count instead of rowCount The .count property properly updates when the model is changed. Contributes to issue CURA-5876. --- cura/Settings/ExtrudersModel.py | 2 +- cura/Settings/MachineManager.py | 2 +- .../MachineSettingsAction.qml | 4 ++-- resources/qml/Dialogs/AddMachineDialog.qml | 2 +- .../ConfigurationMenu/ConfigurationMenu.qml | 2 +- resources/qml/Menus/ProfileMenu.qml | 8 +++---- resources/qml/Preferences/MachinesPage.qml | 8 ++++--- .../Preferences/Materials/MaterialsList.qml | 8 +++---- resources/qml/Preferences/ProfilesPage.qml | 24 ++++++++++++------- .../qml/Preferences/SettingVisibilityPage.qml | 2 +- .../qml/Settings/SettingOptionalExtruder.qml | 13 ++++++---- resources/qml/SidebarSimple.qml | 6 ++--- resources/qml/Toolbar.qml | 2 +- resources/qml/ViewsSelector.qml | 2 +- 14 files changed, 49 insertions(+), 36 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 955bd9dbb2..5f10ac99d4 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -165,7 +165,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): def __updateExtruders(self): extruders_changed = False - if self.rowCount() != 0: + if self.count != 0: extruders_changed = True items = [] diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index be4a4e2b4e..7e1a06f45c 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1540,7 +1540,7 @@ class MachineManager(QObject): elif word.isdigit(): abbr_machine += word else: - stripped_word = ''.join(char for char in unicodedata.normalize('NFD', word.upper()) if unicodedata.category(char) != 'Mn') + stripped_word = "".join(char for char in unicodedata.normalize("NFD", word.upper()) if unicodedata.category(char) != "Mn") # - use only the first character if the word is too long (> 3 characters) # - use the whole word if it's not too long (<= 3 characters) if len(stripped_word) > 3: diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index 004b4e3cfc..c88a721a84 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -23,7 +23,7 @@ Cura.MachineAction target: base.extrudersModel onModelChanged: { - var extruderCount = base.extrudersModel.rowCount(); + var extruderCount = base.extrudersModel.count; base.extruderTabsCount = extruderCount; } } diff --git a/resources/qml/Dialogs/AddMachineDialog.qml b/resources/qml/Dialogs/AddMachineDialog.qml index 8b2b9d1868..bcf5807949 100644 --- a/resources/qml/Dialogs/AddMachineDialog.qml +++ b/resources/qml/Dialogs/AddMachineDialog.qml @@ -170,7 +170,7 @@ UM.Dialog if (machineList.model.getItem(machineList.currentIndex).section != section) { // Find the first machine from this section - for(var i = 0; i < machineList.model.rowCount(); i++) + for(var i = 0; i < machineList.model.count; i++) { var item = machineList.model.getItem(i); if (item.section == section) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 202bc22ce0..9927ad1498 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -44,7 +44,7 @@ Cura.ExpandableComponent delegate: Item { height: parent.height - width: Math.round(ListView.view.width / extrudersModel.rowCount()) + width: Math.round(ListView.view.width / extrudersModel.count) // Extruder icon. Shows extruder index and has the same color as the active material. Cura.ExtruderIcon diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index ffd3c556b6..e09b7930a8 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -34,7 +34,7 @@ Menu MenuSeparator { id: customSeparator - visible: Cura.CustomQualityProfilesDropDownMenuModel.rowCount > 0 + visible: Cura.CustomQualityProfilesDropDownMenuModel.count > 0 } Instantiator @@ -45,7 +45,7 @@ Menu Connections { target: Cura.CustomQualityProfilesDropDownMenuModel - onModelReset: customSeparator.visible = Cura.CustomQualityProfilesDropDownMenuModel.rowCount() > 0 + onModelReset: customSeparator.visible = Cura.CustomQualityProfilesDropDownMenuModel.count > 0 } MenuItem @@ -59,12 +59,12 @@ Menu onObjectAdded: { - customSeparator.visible = model.rowCount() > 0; + customSeparator.visible = model.count > 0; menu.insertItem(index, object); } onObjectRemoved: { - customSeparator.visible = model.rowCount() > 0; + customSeparator.visible = model.count > 0; menu.removeItem(object); } } diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index 4dc5465dc6..bc75b9bc72 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -21,8 +21,10 @@ UM.ManagementPage function activeMachineIndex() { - for(var i = 0; i < model.rowCount(); i++) { - if (model.getItem(i).id == Cura.MachineManager.activeMachineId) { + for(var i = 0; i < model.count; i++) + { + if (model.getItem(i).id == Cura.MachineManager.activeMachineId) + { return i; } } @@ -47,7 +49,7 @@ UM.ManagementPage { text: catalog.i18nc("@action:button", "Remove"); iconName: "list-remove"; - enabled: base.currentItem != null && model.rowCount() > 1 + enabled: base.currentItem != null && model.count > 1 onClicked: confirmDialog.open(); }, Button diff --git a/resources/qml/Preferences/Materials/MaterialsList.qml b/resources/qml/Preferences/Materials/MaterialsList.qml index 00bead9650..61f92db84c 100644 --- a/resources/qml/Preferences/Materials/MaterialsList.qml +++ b/resources/qml/Preferences/Materials/MaterialsList.qml @@ -57,7 +57,7 @@ Item var currentItemId = base.currentItem == null ? "" : base.currentItem.root_material_id search_root_id = currentItemId } - for (var material_idx = 0; material_idx < genericMaterialsModel.rowCount(); material_idx++) + for (var material_idx = 0; material_idx < genericMaterialsModel.count; material_idx++) { var material = genericMaterialsModel.getItem(material_idx) if (material.root_material_id == search_root_id) @@ -72,15 +72,15 @@ Item return true } } - for (var brand_idx = 0; brand_idx < materialsModel.rowCount(); brand_idx++) + for (var brand_idx = 0; brand_idx < materialsModel.count; brand_idx++) { var brand = materialsModel.getItem(brand_idx) var types_model = brand.material_types - for (var type_idx = 0; type_idx < types_model.rowCount(); type_idx++) + for (var type_idx = 0; type_idx < types_model.count; type_idx++) { var type = types_model.getItem(type_idx) var colors_model = type.colors - for (var material_idx = 0; material_idx < colors_model.rowCount(); material_idx++) + for (var material_idx = 0; material_idx < colors_model.count; material_idx++) { var material = colors_model.getItem(material_idx) if (material.root_material_id == search_root_id) diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index ba0c2848a5..d7ffbb3152 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -188,21 +188,27 @@ Item Connections { target: qualitiesModel - onItemsChanged: { + onItemsChanged: + { var toSelectItemName = base.currentItem == null ? "" : base.currentItem.name; - if (newQualityNameToSelect != "") { + if (newQualityNameToSelect != "") + { toSelectItemName = newQualityNameToSelect; } var newIdx = -1; // Default to nothing if nothing can be found - if (toSelectItemName != "") { + if (toSelectItemName != "") + { // Select the required quality name if given - for (var idx = 0; idx < qualitiesModel.rowCount(); ++idx) { + for (var idx = 0; idx < qualitiesModel.count; ++idx) + { var item = qualitiesModel.getItem(idx); - if (item.name == toSelectItemName) { + if (item.name == toSelectItemName) + { // Switch to the newly created profile if needed newIdx = idx; - if (base.toActivateNewQuality) { + if (base.toActivateNewQuality) + { // Activate this custom quality if required Cura.MachineManager.setQualityChangesGroup(item.quality_changes_group); } @@ -382,9 +388,11 @@ Item var selectedItemName = Cura.MachineManager.activeQualityOrQualityChangesName; // Select the required quality name if given - for (var idx = 0; idx < qualitiesModel.rowCount(); idx++) { + for (var idx = 0; idx < qualitiesModel.count; idx++) + { var item = qualitiesModel.getItem(idx); - if (item.name == selectedItemName) { + if (item.name == selectedItemName) + { currentIndex = idx; break; } diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index 8896d0611e..bb47301b69 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -54,7 +54,7 @@ UM.PreferencesPage { return Qt.Unchecked } - else if(definitionsModel.visibleCount == definitionsModel.rowCount(null)) + else if(definitionsModel.visibleCount == definitionsModel.count) { return Qt.Checked } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index a3c1422b30..5f0d8327f8 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Uranium is released under the terms of the LGPLv3 or higher. +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 import QtQuick.Controls 2.0 @@ -31,12 +31,15 @@ SettingItem { forceActiveFocus(); propertyProvider.setPropertyValue("value", model.getItem(index).index); - } else + } + else { if (propertyProvider.properties.value == -1) { - control.currentIndex = model.rowCount() - 1; // we know the last item is "Not overriden" - } else { + control.currentIndex = model.count - 1; // we know the last item is "Not overriden" + } + else + { control.currentIndex = propertyProvider.properties.value; // revert to the old value } } diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 5e723a3d70..e07810691e 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -106,7 +106,7 @@ Item var availableMin = -1 var availableMax = -1 - for (var i = 0; i < Cura.QualityProfilesDropDownMenuModel.rowCount(); i++) + for (var i = 0; i < Cura.QualityProfilesDropDownMenuModel.count; i++) { var qualityItem = Cura.QualityProfilesDropDownMenuModel.getItem(i) @@ -183,7 +183,7 @@ Item qualityModel.existingQualityProfile = 0 // check, the ticks count cannot be less than zero - qualityModel.totalTicks = Math.max(0, Cura.QualityProfilesDropDownMenuModel.rowCount() - 1) + qualityModel.totalTicks = Math.max(0, Cura.QualityProfilesDropDownMenuModel.count - 1) } } @@ -1156,7 +1156,7 @@ Item function populateExtruderModel() { extruderModel.clear(); - for(var extruderNumber = 0; extruderNumber < extruders.rowCount() ; extruderNumber++) + for(var extruderNumber = 0; extruderNumber < extruders.count; extruderNumber++) { extruderModel.append({ text: extruders.getItem(extruderNumber).name, diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 0240aaab26..4e00bd7248 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -65,7 +65,7 @@ Item style: UM.Theme.styles.toolbar_button property bool isFirstElement: toolsModel.getItem(0).id == model.id - property bool isLastElement: toolsModel.getItem(toolsModel.rowCount() - 1).id == model.id + property bool isLastElement: toolsModel.getItem(toolsModel.count - 1).id == model.id onCheckedChanged: { diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index e9fdd57177..e239ea82a0 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -19,7 +19,7 @@ Cura.ExpandableComponent property var activeView: { - for (var i = 0; i < viewModel.rowCount(); i++) + for (var i = 0; i < viewModel.count; i++) { if (viewModel.items[i].active) { From 6012ea0b9edf78369bec7abc463869f226e26b23 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 11:15:11 +0100 Subject: [PATCH 0618/1039] Don't use QtQuick imports from Qt 5.11 Our build system uses 5.10. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 2 +- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index c40eb5b9e9..32be97f74e 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -2,7 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 -import QtQuick.Controls 2.4 +import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 9927ad1498..816ac27470 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -4,7 +4,6 @@ import QtQuick 2.7 import QtQuick.Controls 2.0 import QtQuick.Controls.Styles 1.4 -import QtQuick.Layouts 1.11 import UM 1.2 as UM import Cura 1.0 as Cura From af747ae09c254327dd5d85e90a2cea86cc5d5562 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 11:19:25 +0100 Subject: [PATCH 0619/1039] Don't hide tab bar when disabling all but one extruder And make sure the checkbox for enabling also disappears. We don't want to make this dependent on the number of enabled extruders, but on the total number of extruders. This way you can actually re-enable an extruder again because the tab bar shouldn't disappear. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index eae160b48a..7ff47ea16f 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -40,7 +40,7 @@ Item id: tabBar anchors.top: header.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height - visible: Cura.MachineManager.numberExtrudersEnabled > 1 + visible: extrudersModel.count > 1 currentIndex: Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) @@ -138,6 +138,7 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth + visible: extrudersModel.count > 1 } OldControls.CheckBox @@ -146,6 +147,7 @@ Item enabled: !checked || Cura.MachineManager.numberExtrudersEnabled > 1 //Disable if it's the last enabled extruder. height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox + visible: extrudersModel.count > 1 /* Use a MouseArea to process the click on this checkbox. This is necessary because actually clicking the checkbox From 39411222da20db6a39f1341e6d42c9610c88c85a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 11:37:22 +0100 Subject: [PATCH 0620/1039] Use normal font size for Auto slicing... message It should've been the normal font size anyway. This is not small! Contributes to issue CURA-5876. --- resources/qml/ActionPanel/SliceProcessWidget.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index cae598fea6..dee099bc88 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -48,7 +48,7 @@ Column text: catalog.i18nc("@label:PrintjobStatus", "Auto slicing...") color: UM.Theme.getColor("text") - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("default") renderType: Text.NativeRendering } From c8cb3a094a216eac21b139ba6577541ea53046d1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 11:52:10 +0100 Subject: [PATCH 0621/1039] Re-use SecondaryButton instead of setting colours ourselves It has a pre-defined theme. Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/ConfigurationMenu.qml | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 816ac27470..fc8b31f125 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -147,7 +147,7 @@ Cura.ExpandableComponent width: parent.width height: childrenRect.height - Cura.ActionButton + Cura.SecondaryButton { id: goToCustom visible: popupItem.configuration_method === "auto" @@ -159,18 +159,13 @@ Cura.ExpandableComponent top: parent.top } - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") - iconSource: UM.Theme.getIcon("arrow_right") iconOnRightSide: true onClicked: popupItem.configuration_method = "custom" } - Cura.ActionButton + Cura.SecondaryButton { id: goToAuto visible: popupItem.configuration_method === "custom" @@ -182,11 +177,6 @@ Cura.ExpandableComponent top: parent.top } - color: UM.Theme.getColor("secondary") - hoverColor: UM.Theme.getColor("secondary") - textColor: UM.Theme.getColor("primary") - textHoverColor: UM.Theme.getColor("text") - iconSource: UM.Theme.getIcon("arrow_left") onClicked: popupItem.configuration_method = "auto" From 65d3aa44802c740d06c19ebbc58a2e9f2732ee80 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 11:59:03 +0100 Subject: [PATCH 0622/1039] Fix broken sizes due to merged theme entry Merge conflict went wrong, I think. Contributes to issue CURA-5876. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 2 +- resources/qml/ActionPanel/SliceProcessWidget.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 3a85a13810..8ce5d13f17 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -111,7 +111,7 @@ Column { id: previewStageShortcut - height: UM.Theme.getSize("action_panel_button").height + height: UM.Theme.getSize("action_button").height text: catalog.i18nc("@button", "Preview") onClicked: UM.Controller.setActiveStage("PreviewStage") diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index dee099bc88..1143bb4c1a 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -101,7 +101,7 @@ Column // Disable the slice process when width: parent.width - height: UM.Theme.getSize("action_panel_button").height + height: UM.Theme.getSize("action_button").height visible: !autoSlice Cura.PrimaryButton { From 665e2d3060be1392695a89652e19015cd01c036a Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 3 Dec 2018 12:15:25 +0100 Subject: [PATCH 0623/1039] Move isActive and timeRemaining logic from QML to Python Contributes to CL-1153 --- cura/PrinterOutput/PrintJobOutputModel.py | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/cura/PrinterOutput/PrintJobOutputModel.py b/cura/PrinterOutput/PrintJobOutputModel.py index 25b168e6fd..c3e6b7d267 100644 --- a/cura/PrinterOutput/PrintJobOutputModel.py +++ b/cura/PrinterOutput/PrintJobOutputModel.py @@ -125,10 +125,34 @@ class PrintJobOutputModel(QObject): def timeElapsed(self): return self._time_elapsed + @pyqtProperty(int, notify = timeElapsedChanged) + def timeRemaining(self) -> int: + # Never get a negative time remaining + return max(self.timeTotal - self.timeElapsed, 0) + + @pyqtProperty(float, notify = timeElapsedChanged) + def progress(self) -> float: + result = self.timeElapsed / self.timeTotal + if result > 1.0: + result = 1.0 + return result + @pyqtProperty(str, notify=stateChanged) def state(self): return self._state + @pyqtProperty(bool, notify=stateChanged) + def isActive(self) -> bool: + inactiveStates = [ + "pausing", + "paused", + "resuming", + "wait_cleanup" + ] + if self.state in inactiveStates and self.timeRemaining > 0: + return False + return True + def updateTimeTotal(self, new_time_total): if self._time_total != new_time_total: self._time_total = new_time_total From 3d80e281743a34681fbb643239253dbab852d598 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 3 Dec 2018 12:15:38 +0100 Subject: [PATCH 0624/1039] Add some typings Contributes to CL-1153 --- cura/PrinterOutput/PrintJobOutputModel.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/PrinterOutput/PrintJobOutputModel.py b/cura/PrinterOutput/PrintJobOutputModel.py index c3e6b7d267..604fd8e0b8 100644 --- a/cura/PrinterOutput/PrintJobOutputModel.py +++ b/cura/PrinterOutput/PrintJobOutputModel.py @@ -118,11 +118,11 @@ class PrintJobOutputModel(QObject): self.nameChanged.emit() @pyqtProperty(int, notify = timeTotalChanged) - def timeTotal(self): + def timeTotal(self) -> int: return self._time_total @pyqtProperty(int, notify = timeElapsedChanged) - def timeElapsed(self): + def timeElapsed(self) -> int: return self._time_elapsed @pyqtProperty(int, notify = timeElapsedChanged) @@ -138,7 +138,7 @@ class PrintJobOutputModel(QObject): return result @pyqtProperty(str, notify=stateChanged) - def state(self): + def state(self) -> str: return self._state @pyqtProperty(bool, notify=stateChanged) From a28cae0a43ff5e6e3c8e4a5912f0935e7978b2de Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 3 Dec 2018 12:18:33 +0100 Subject: [PATCH 0625/1039] Improve date rendering - Use "Mon Dec 3 at 12:39" if 7 days or more away. - Use "Mon at 12:39" if within 7 days but more than one away. - Use "tomorrow at 12:39" if one day away. - Use "today at 12:39" if today. Contributes to CL-1153 --- .../src/ClusterUM3OutputDevice.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 3b124faf66..292011929d 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -386,8 +386,24 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): @pyqtSlot(int, result = str) def getDateCompleted(self, time_remaining: int) -> str: current_time = time() - datetime_completed = datetime.fromtimestamp(current_time + time_remaining) - return (datetime_completed.strftime("%a %b ") + "{day}".format(day=datetime_completed.day)).upper() + completed = datetime.fromtimestamp(current_time + time_remaining) + today = datetime.fromtimestamp(current_time) + + # If finishing date is more than 7 days out, using "Mon Dec 3 at HH:MM" format + if completed.toordinal() > today.toordinal() + 7: + return completed.strftime("%a %b ") + "{day}".format(day=completed.day) + + # If finishing date is within the next week, use "Monday at HH:MM" format + elif completed.toordinal() > today.toordinal() + 1: + return completed.strftime("%a") + + # If finishing tomorrow, use "tomorrow at HH:MM" format + elif completed.toordinal() > today.toordinal(): + return "tomorrow" + + # If finishing today, use "today at HH:MM" format + else: + return "today" @pyqtSlot(str) def sendJobToTop(self, print_job_uuid: str) -> None: From 4c468831f06fcc33de6b657985aed22907c2796c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 3 Dec 2018 13:58:13 +0100 Subject: [PATCH 0626/1039] Add tabs for select the extruder in the custom print setup. Align some elements beneath the tabs. Contributes to CURA-5941. --- .../Custom/CustomPrintSetup.qml | 63 +++++- .../Custom/GlobalProfileSelector.qml | 4 +- .../Recommended/RecommendedPrintSetup.qml | 9 + .../RecommendedSupportSelector.qml | 11 +- resources/qml/Settings/SettingView.qml | 186 +++++++++--------- resources/themes/cura-light/styles.qml | 2 +- resources/themes/cura-light/theme.json | 4 +- 7 files changed, 164 insertions(+), 115 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index e0f0827b17..ae31976a34 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -13,9 +13,15 @@ Item id: customPrintSetup // TODO: Hardcoded now but UX has to decide about the height of this item - height: 500 + height: 480 property real padding: UM.Theme.getSize("default_margin").width + property bool multipleExtruders: extrudersModel.count > 1 + + Cura.ExtrudersModel + { + id: extrudersModel + } // Profile selector row GlobalProfileSelector @@ -32,11 +38,64 @@ Item } } + UM.TabRow + { + id: tabBar + + visible: multipleExtruders // The tab row is only visible when there are more than 1 extruder + + anchors + { + top: globalProfileRow.bottom + topMargin: UM.Theme.getSize("default_margin").height + left: parent.left + leftMargin: parent.padding + right: parent.right + rightMargin: parent.padding + } + + currentIndex: Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) + + Repeater + { + id: repeater + model: extrudersModel + delegate: UM.TabRowButton + { + contentItem: Item + { + Cura.ExtruderIcon + { + anchors.horizontalCenter: parent.horizontalCenter + materialColor: model.color + extruderEnabled: model.enabled + } + } + onClicked: + { + Cura.ExtruderManager.setActiveExtruderIndex(tabBar.currentIndex) + } + } + } + + // When the model of the extruders is rebuilt, the list of extruders is briefly emptied and rebuilt. + // This causes the currentIndex of the tab to be in an invalid position which resets it to 0. + // Therefore we need to change it back to what it was: The active extruder index. + Connections + { + target: repeater.model + onModelChanged: + { + tabBar.currentIndex = Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) + } + } + } + Cura.SettingView { anchors { - top: globalProfileRow.bottom + top: tabBar.visible ? tabBar.bottom : globalProfileRow.bottom topMargin: UM.Theme.getSize("default_margin").height left: parent.left leftMargin: parent.padding diff --git a/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml index 91525d0f9e..11b2d3608b 100644 --- a/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml @@ -35,8 +35,8 @@ Item id: globalProfileSelection text: generateActiveQualityText() - width: UM.Theme.getSize("print_setup_big_dropdown").width - height: UM.Theme.getSize("print_setup_big_dropdown").height + width: UM.Theme.getSize("print_setup_big_item").width + height: UM.Theme.getSize("print_setup_big_item").height anchors { top: parent.top diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index 194747271e..618c519d31 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -69,4 +69,13 @@ Item labelColumnWidth: parent.firstColumnWidth } } + + UM.SettingPropertyProvider + { + id: extrudersEnabledCount + containerStack: Cura.MachineManager.activeMachine + key: "extruders_enabled_count" + watchedProperties: [ "value" ] + storeIndex: 0 + } } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index d367510ef6..ce4aa6c195 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -76,7 +76,7 @@ Item { id: supportExtruderCombobox - height: UM.Theme.getSize("print_setup_big_dropdown").height + height: UM.Theme.getSize("print_setup_big_item").height anchors { left: enableSupportCheckBox.right @@ -171,15 +171,6 @@ Item storeIndex: 0 } - UM.SettingPropertyProvider - { - id: extrudersEnabledCount - containerStack: Cura.MachineManager.activeMachine - key: "extruders_enabled_count" - watchedProperties: [ "value" ] - storeIndex: 0 - } - UM.SettingPropertyProvider { id: supportExtruderNr diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 2c42d222ce..3250e847a3 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -19,70 +19,22 @@ Item property Action configureSettings property bool findingSettings - ToolButton - { - id: settingVisibilityMenu - - property var toolButtonIconColor: UM.Theme.getColor("setting_category_text") - - width: height - height: UM.Theme.getSize("setting_control").height - anchors - { - topMargin: UM.Theme.getSize("thick_margin").height - left: filterContainer.right - leftMargin: UM.Theme.getSize("default_margin").width - } - style: ButtonStyle - { - background: Item { - UM.RecolorImage { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - width: Math.round(parent.width * 0.6) - height: Math.round(parent.height * 0.6) - sourceSize.width: width - sourceSize.height: width - color: settingVisibilityMenu.toolButtonIconColor - source: UM.Theme.getIcon("settings") - } - } - label: Label{} - } - menu: SettingVisibilityPresetsMenu - { - onShowAllSettings: - { - definitionsModel.setAllVisible(true); - filter.updateDefinitionModel(); - } - } - - MouseArea - { - anchors.fill: parent - hoverEnabled: true - acceptedButtons: Qt.RightButton - onEntered: settingVisibilityMenu.toolButtonIconColor = UM.Theme.getColor("setting_control_button_hover") - onExited: settingVisibilityMenu.toolButtonIconColor = UM.Theme.getColor("setting_category_text") - } - } - Rectangle { id: filterContainer visible: true + radius: UM.Theme.getSize("setting_control_radius").width border.width: Math.round(UM.Theme.getSize("default_lining").width) border.color: { - if(hoverMouseArea.containsMouse || clearFilterButton.containsMouse) + if (hoverMouseArea.containsMouse || clearFilterButton.containsMouse) { - return UM.Theme.getColor("setting_control_border_highlight"); + return UM.Theme.getColor("setting_control_border_highlight") } else { - return UM.Theme.getColor("setting_control_border"); + return UM.Theme.getColor("setting_control_border") } } @@ -90,13 +42,12 @@ Item anchors { - topMargin: UM.Theme.getSize("thick_margin").height + top: parent.top left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width - right: scrollView.right - rightMargin: Math.floor(UM.Theme.getSize("wide_margin").width * 2) + right: settingVisibilityMenu.left + rightMargin: UM.Theme.getSize("default_margin").width } - height: UM.Theme.getSize("setting_control").height + height: UM.Theme.getSize("print_setup_big_item").height Timer { id: settingsSearchTimer @@ -108,7 +59,7 @@ Item TextField { - id: filter; + id: filter height: parent.height anchors.left: parent.left anchors.right: clearFilterButton.left @@ -118,9 +69,9 @@ Item style: TextFieldStyle { - textColor: UM.Theme.getColor("setting_control_text"); + textColor: UM.Theme.getColor("setting_control_text") placeholderTextColor: UM.Theme.getColor("setting_filter_field") - font: UM.Theme.getFont("default"); + font: UM.Theme.getFont("default_italic") background: Item {} } @@ -134,38 +85,38 @@ Item onEditingFinished: { - definitionsModel.filter = {"i18n_label": "*" + text}; - findingSettings = (text.length > 0); - if(findingSettings != lastFindingSettings) + definitionsModel.filter = {"i18n_label": "*" + text} + findingSettings = (text.length > 0) + if (findingSettings != lastFindingSettings) { - updateDefinitionModel(); - lastFindingSettings = findingSettings; + updateDefinitionModel() + lastFindingSettings = findingSettings } } Keys.onEscapePressed: { - filter.text = ""; + filter.text = "" } function updateDefinitionModel() { - if(findingSettings) + if (findingSettings) { - expandedCategories = definitionsModel.expanded.slice(); - definitionsModel.expanded = [""]; // keep categories closed while to prevent render while making settings visible one by one - definitionsModel.showAncestors = true; - definitionsModel.showAll = true; - definitionsModel.expanded = ["*"]; + expandedCategories = definitionsModel.expanded.slice() + definitionsModel.expanded = [""] // keep categories closed while to prevent render while making settings visible one by one + definitionsModel.showAncestors = true + definitionsModel.showAll = true + definitionsModel.expanded = ["*"] } else { - if(expandedCategories) + if (expandedCategories) { - definitionsModel.expanded = expandedCategories; + definitionsModel.expanded = expandedCategories } - definitionsModel.showAncestors = false; - definitionsModel.showAll = false; + definitionsModel.showAncestors = false + definitionsModel.showAll = false } } } @@ -197,8 +148,45 @@ Item onClicked: { - filter.text = ""; - filter.forceActiveFocus(); + filter.text = "" + filter.forceActiveFocus() + } + } + } + + ToolButton + { + id: settingVisibilityMenu + + anchors + { + top: filterContainer.top + bottom: filterContainer.bottom + right: parent.right + } + + style: ButtonStyle + { + background: Item { + UM.RecolorImage { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + sourceSize.width: width + sourceSize.height: height + color: control.enabled ? UM.Theme.getColor("setting_category_text") : UM.Theme.getColor("setting_category_disabled_text") + source: UM.Theme.getIcon("menu") + } + } + label: Label{} + } + menu: SettingVisibilityPresetsMenu + { + onShowAllSettings: + { + definitionsModel.setAllVisible(true) + filter.updateDefinitionModel() } } } @@ -206,33 +194,35 @@ Item ScrollView { id: scrollView - anchors.top: filterContainer.bottom; - anchors.bottom: parent.bottom; - anchors.right: parent.right; - anchors.left: parent.left; - anchors.topMargin: UM.Theme.getSize("thick_margin").height - anchors.rightMargin: UM.Theme.getSize("narrow_margin").height / 3 + anchors + { + top: filterContainer.bottom + topMargin: UM.Theme.getSize("default_margin").height + bottom: parent.bottom + right: parent.right + left: parent.left + } - style: UM.Theme.styles.scrollview; - flickableItem.flickableDirection: Flickable.VerticalFlick; - __wheelAreaScrollSpeed: 75; // Scroll three lines in one scroll event + style: UM.Theme.styles.scrollview + flickableItem.flickableDirection: Flickable.VerticalFlick + __wheelAreaScrollSpeed: 75 // Scroll three lines in one scroll event ListView { id: contents - spacing: Math.round(UM.Theme.getSize("default_lining").height); - cacheBuffer: 1000000; // Set a large cache to effectively just cache every list item. + spacing: Math.round(UM.Theme.getSize("default_lining").height) + cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item. model: UM.SettingDefinitionsModel { - id: definitionsModel; + id: definitionsModel containerId: Cura.MachineManager.activeDefinitionId visibilityHandler: UM.SettingPreferenceVisibilityHandler { } exclude: ["machine_settings", "command_line_settings", "infill_mesh", "infill_mesh_order", "cutting_mesh", "support_mesh", "anti_overhang_mesh"] // TODO: infill_mesh settigns are excluded hardcoded, but should be based on the fact that settable_globally, settable_per_meshgroup and settable_per_extruder are false. expanded: CuraApplication.expandedCategories onExpandedChanged: { - if(!findingSettings) + if (!findingSettings) { // Do not change expandedCategories preference while filtering settings // because all categories are expanded while filtering @@ -248,7 +238,7 @@ Item { id: delegate - width: Math.round(UM.Theme.getSize("print_setup_widget").width); + width: scrollView.width height: provider.properties.enabled == "True" ? UM.Theme.getSize("section").height : - contents.spacing Behavior on height { NumberAnimation { duration: 100 } } opacity: provider.properties.enabled == "True" ? 1 : 0 @@ -318,17 +308,17 @@ Item // machine gets changed. var activeMachineId = Cura.MachineManager.activeMachineId; - if(!model.settable_per_extruder) + if (!model.settable_per_extruder) { //Not settable per extruder or there only is global, so we must pick global. return activeMachineId; } - if(inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0) + if (inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0) { //We have limit_to_extruder, so pick that stack. return Cura.ExtruderManager.extruderIds[String(inheritStackProvider.properties.limit_to_extruder)]; } - if(Cura.ExtruderManager.activeExtruderStackId) + if (Cura.ExtruderManager.activeExtruderStackId) { //We're on an extruder tab. Pick the current extruder. return Cura.ExtruderManager.activeExtruderStackId; @@ -390,14 +380,14 @@ Item } onSetActiveFocusToNextSetting: { - if(forward == undefined || forward) + if (forward == undefined || forward) { contents.currentIndex = contents.indexWithFocus + 1; while(contents.currentItem && contents.currentItem.height <= 0) { contents.currentIndex++; } - if(contents.currentItem) + if (contents.currentItem) { contents.currentItem.item.focusItem.forceActiveFocus(); } @@ -409,7 +399,7 @@ Item { contents.currentIndex--; } - if(contents.currentItem) + if (contents.currentItem) { contents.currentItem.item.focusItem.forceActiveFocus(); } diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index e6144bb6ec..ca95b6d373 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -495,7 +495,7 @@ QtObject anchors.right: downArrow.left anchors.verticalCenter: parent.verticalCenter anchors.rightMargin: UM.Theme.getSize("default_margin").width -// anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) + sourceSize.width: width sourceSize.height: height source: UM.Theme.getIcon("extruder_button") diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 2c5c7a360a..5af77d59c3 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -377,7 +377,7 @@ "print_setup_slider_groove": [0.16, 0.16], "print_setup_slider_handle": [1.0, 1.0], "print_setup_slider_tickmarks": [0.32, 0.32], - "print_setup_big_dropdown": [28, 2.5], + "print_setup_big_item": [28, 2.5], "print_setup_icon": [1.2, 1.2], "configuration_selector_mode_tabs": [0.0, 3.0], @@ -425,7 +425,7 @@ "setting_text_maxwidth": [40.0, 0.0], "standard_list_lineheight": [1.5, 1.5], - "standard_arrow": [0.8, 0.8], + "standard_arrow": [1.0, 1.0], "button": [4, 4], "button_icon": [2.5, 2.5], From c9ed044205ed92236dc344a6c2683b2e262f1826 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 3 Dec 2018 14:41:22 +0100 Subject: [PATCH 0627/1039] Improve printer status and progress bar Contributes to CL-1153 --- .../resources/qml/MonitorPrintJobPreview.qml | 38 ++++- .../qml/MonitorPrintJobProgressBar.qml | 136 ++++++++---------- .../resources/qml/MonitorPrinterCard.qml | 11 +- 3 files changed, 99 insertions(+), 86 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index 1a69d2dc12..7ac2a1d8de 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -21,7 +21,18 @@ Item { id: previewImage anchors.fill: parent - opacity: printJob && printJob.state == "error" ? 0.5 : 1.0 + opacity: + { + if (!printJob) + { + return 0 + } + if (printJob.state == "error" || !printJob.isActive) + { + return 0.5 + } + return 1.0 + } source: printJob ? printJob.previewImageUrl : "" visible: printJob } @@ -47,11 +58,32 @@ Item UM.RecolorImage { - id: statusImage + id: overlayIcon anchors.centerIn: printJobPreview color: UM.Theme.getColor("monitor_image_overlay") height: 0.5 * printJobPreview.height - source: printJob && printJob.state == "error" ? "../svg/aborted-icon.svg" : "" + source: + { + switch(printJob.state) + { + case "error": + return "../svg/aborted-icon.svg" + case "wait_cleanup": + if (printJob.state == "wait_cleanup" && printJob.timeTotal > printJob.timeElapsed) + { + return "../svg/aborted-icon.svg" + } + break; + case "pausing": + return "../svg/paused-icon.svg" + case "paused": + return "../svg/paused-icon.svg" + case "resuming": + return "../svg/paused-icon.svg" + default: + return "" + } + } sourceSize { height: height diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index f70e1175a1..a7055f4c52 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -15,63 +15,10 @@ import UM 1.3 as UM Item { id: base + + // The print job which all other information is dervied from property var printJob: null - property var progress: - { - if (!printJob) - { - return 0 - } - var result = printJob.timeElapsed / printJob.timeTotal - if (result > 1.0) - { - result = 1.0 - } - return result - } - property var remainingTime: - { - if (!printJob) { - return 0 - } - /* Sometimes total minus elapsed is less than 0. Use Math.max() to prevent remaining - time from ever being less than 0. Negative durations cause strange behavior such - as displaying "-1h -1m". */ - return Math.max(printer.activePrintJob.timeTotal - printer.activePrintJob.timeElapsed, 0) - } - property var progressText: - { - if (!printJob) - { - return ""; - } - switch (printJob.state) - { - case "wait_cleanup": - if (printJob.timeTotal > printJob.timeElapsed) - { - return catalog.i18nc("@label:status", "Aborted") - } - return catalog.i18nc("@label:status", "Finished") - case "pre_print": - case "sent_to_printer": - return catalog.i18nc("@label:status", "Preparing") - case "aborted": - return catalog.i18nc("@label:status", "Aborted") - case "wait_user_action": - return catalog.i18nc("@label:status", "Aborted") - case "pausing": - return catalog.i18nc("@label:status", "Pausing") - case "paused": - return OutputDevice.formatDuration( remainingTime ) - case "resuming": - return catalog.i18nc("@label:status", "Resuming") - case "queued": - return catalog.i18nc("@label:status", "Action required") - default: - return OutputDevice.formatDuration( remainingTime ) - } - } + width: childrenRect.width height: 18 * screenScaleFactor // TODO: Theme! @@ -82,12 +29,12 @@ Item { verticalCenter: parent.verticalCenter } - value: progress; + value: printJob ? printJob.progress : 0 style: ProgressBarStyle { background: Rectangle { - color: "#e4e4f2" // TODO: Theme! + color: printJob && printJob.isActive ? "#e4e4f2" : "#f3f3f9" // TODO: Theme! implicitHeight: visible ? 8 * screenScaleFactor : 0 // TODO: Theme! implicitWidth: 180 * screenScaleFactor // TODO: Theme! radius: 4 * screenScaleFactor // TODO: Theme! @@ -95,41 +42,72 @@ Item progress: Rectangle { id: progressItem; - color: - { - if (printJob) - { - var state = printJob.state - var inactiveStates = [ - "pausing", - "paused", - "resuming", - "wait_cleanup" - ] - if (inactiveStates.indexOf(state) > -1 && remainingTime > 0) - { - return UM.Theme.getColor("monitor_progress_fill_inactive") - } - } - return "#0a0850" // TODO: Theme! - } + color: printJob && printJob.isActive ? "#0a0850" : "#9392b2" // TODO: Theme! radius: 4 * screenScaleFactor // TODO: Theme! } } } Label { - id: progressLabel + id: percentLabel anchors { left: progressBar.right leftMargin: 18 * screenScaleFactor // TODO: Theme! } - text: progressText - color: "#374355" // TODO: Theme! + text: Math.round(printJob.progress * 100) + "%" + color: printJob && printJob.isActive ? "#374355" : "#babac1" // TODO: Theme! width: contentWidth font: UM.Theme.getFont("medium") // 14pt, regular + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + Label + { + id: statusLabel + anchors + { + left: percentLabel.right + leftMargin: 18 * screenScaleFactor // TODO: Theme! + } + color: "#374355" // TODO: Theme! + font: UM.Theme.getFont("medium") // 14pt, regular + text: + { + if (!printJob) + { + return ""; + } + switch (printJob.state) + { + case "wait_cleanup": + if (printJob.timeTotal > printJob.timeElapsed) + { + return catalog.i18nc("@label:status", "Aborted") + } + return catalog.i18nc("@label:status", "Finished") + case "sent_to_printer": + return catalog.i18nc("@label:status", "Preparing...") + case "aborting": + return catalog.i18nc("@label:status", "Aborting...") + case "aborted": + return catalog.i18nc("@label:status", "Aborted") + case "pausing": + return catalog.i18nc("@label:status", "Pausing...") + case "paused": + return catalog.i18nc("@label:status", "Paused") + case "resuming": + return catalog.i18nc("@label:status", "Resuming...") + case "queued": + return catalog.i18nc("@label:status", "Action required") + default: + return catalog.i18nc("@label:status", "Finishes ") + OutputDevice.getDateCompleted( printJob.timeRemaining ) + " at " + OutputDevice.getTimeCompleted( printJob.timeRemaining ) + } + } + width: contentWidth + // FIXED-LINE-HEIGHT: height: 18 * screenScaleFactor // TODO: Theme! verticalAlignment: Text.AlignVCenter diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 975fe12244..ee7212760b 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -183,6 +183,7 @@ Item printJob: base.printer.activePrintJob size: parent.height } + visible: printer.activePrintJob } Item @@ -193,14 +194,15 @@ Item } width: 216 * screenScaleFactor // TODO: Theme! height: printerNameLabel.height + printerFamilyPill.height + 6 * screenScaleFactor // TODO: Theme! + visible: printer.activePrintJob Label { id: printerJobNameLabel - text: base.printer.activePrintJob ? base.printer.activePrintJob.name : "Untitled" // TODO: I18N - color: "#414054" // TODO: Theme! + color: printer.activePrintJob && printer.activePrintJob.isActive ? "#414054" : "#babac1" // TODO: Theme! elide: Text.ElideRight font: UM.Theme.getFont("large") // 16pt, bold + text: base.printer.activePrintJob ? base.printer.activePrintJob.name : "Untitled" // TODO: I18N width: parent.width // FIXED-LINE-HEIGHT: @@ -217,10 +219,10 @@ Item topMargin: 6 * screenScaleFactor // TODO: Theme! left: printerJobNameLabel.left } - text: printer.activePrintJob ? printer.activePrintJob.owner : "Anonymous" // TODO: I18N - color: "#53657d" // TODO: Theme! + color: printer.activePrintJob && printer.activePrintJob.isActive ? "#53657d" : "#babac1" // TODO: Theme! elide: Text.ElideRight font: UM.Theme.getFont("very_small") // 12pt, regular + text: printer.activePrintJob ? printer.activePrintJob.owner : "Anonymous" // TODO: I18N width: parent.width // FIXED-LINE-HEIGHT: @@ -236,6 +238,7 @@ Item verticalCenter: parent.verticalCenter } printJob: printer.activePrintJob + visible: printer.activePrintJob } } } From cced42a55bce1fbecdde3f8ce383daeec6185d92 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 3 Dec 2018 14:41:45 +0100 Subject: [PATCH 0628/1039] Handle idle, unavailable, and unreachable states Contributes to CL-1153 --- .../resources/qml/MonitorPrinterCard.qml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index ee7212760b..8659037cb8 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -169,6 +169,30 @@ Item height: childrenRect.height spacing: 18 * screenScaleFactor // TODO: Theme! + Label + { + id: printerStatus + anchors + { + verticalCenter: parent.verticalCenter + } + color: "#414054" // TODO: Theme! + font: UM.Theme.getFont("large") // 16pt, bold + text: { + if (printer && printer.state == "disabled"){ + return catalog.i18nc("@label:status", "Unavailable") + } + if (printer && printer.state == "unreachable"){ + return catalog.i18nc("@label:status", "Unavailable") + } + if (printer && !printer.activePrintJob) + { + return catalog.i18nc("@label:status", "Idle") + } + return "" + } + } + Item { anchors From ce6a0676dd029a8e4b6ce7d5e2640c8114505fa5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 3 Dec 2018 14:43:35 +0100 Subject: [PATCH 0629/1039] Add a rectangle surrounding the settings listview Contributes to CURA-5941. --- .../Custom/CustomPrintSetup.qml | 23 +++++++++++++++++-- resources/qml/Settings/SettingCategory.qml | 20 ++++++++-------- resources/qml/Settings/SettingItem.qml | 11 +++++---- resources/qml/Settings/SettingView.qml | 3 ++- resources/themes/cura-light/styles.qml | 4 ++-- resources/themes/cura-light/theme.json | 2 +- 6 files changed, 43 insertions(+), 20 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index ae31976a34..b524bb5926 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -91,17 +91,36 @@ Item } } - Cura.SettingView + Rectangle { anchors { top: tabBar.visible ? tabBar.bottom : globalProfileRow.bottom - topMargin: UM.Theme.getSize("default_margin").height left: parent.left leftMargin: parent.padding right: parent.right rightMargin: parent.padding bottom: parent.bottom + topMargin: -UM.Theme.getSize("default_lining").width + bottomMargin: -UM.Theme.getSize("default_lining").width + } + z: tabBar.z - 1 + // Don't show the border when only one extruder + border.color: tabBar.visible ? UM.Theme.getColor("lining") : "transparent" + border.width: UM.Theme.getSize("default_lining").width + + Cura.SettingView + { + anchors + { + fill: parent + topMargin: UM.Theme.getSize("default_margin").height + leftMargin: UM.Theme.getSize("default_margin").width + // Small space for the scrollbar + rightMargin: UM.Theme.getSize("narrow_margin").width + // Compensate for the negative margin in the parent + bottomMargin: UM.Theme.getSize("default_lining").width + } } } } diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 4ec6294d61..9a061304d4 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -12,8 +12,8 @@ Button id: base anchors.left: parent.left anchors.right: parent.right - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.rightMargin: UM.Theme.getSize("default_margin").width * 3 + // To avoid overlaping with the scrollBars + anchors.rightMargin: 2 * UM.Theme.getSize("thin_margin").width hoverEnabled: true background: Rectangle @@ -25,22 +25,24 @@ Button if (base.color) { return base.color - } else if (!base.enabled) + } + else if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled") - } else if (base.hovered && base.checkable && base.checked) + } + else if (base.hovered && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover") - } else if (base.pressed || (base.checkable && base.checked)) + } + else if (base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active") - } else if (base.hovered) + } + else if (base.hovered) { return UM.Theme.getColor("setting_category_hover") - } else - { - return UM.Theme.getColor("setting_category") } + return UM.Theme.getColor("setting_category") } Behavior on color { ColorAnimation { duration: 50; } } Rectangle diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index 036dcfeba4..df90cffdf3 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -10,8 +10,9 @@ import Cura 1.0 as Cura import "." -Item { - id: base; +Item +{ + id: base height: UM.Theme.getSize("section").height @@ -105,11 +106,11 @@ Item { Label { - id: label; + id: label - anchors.left: parent.left; + anchors.left: parent.left anchors.leftMargin: doDepthIndentation ? Math.round((UM.Theme.getSize("section_icon_column").width / 1.2) + ((definition.depth - 1) * UM.Theme.getSize("setting_control_depth_margin").width)) : 0 - anchors.right: settingControls.left; + anchors.right: settingControls.left anchors.verticalCenter: parent.verticalCenter text: definition.label diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 3250e847a3..ff94c9168f 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -163,6 +163,7 @@ Item top: filterContainer.top bottom: filterContainer.bottom right: parent.right + rightMargin: UM.Theme.getSize("wide_margin").width } style: ButtonStyle @@ -210,7 +211,7 @@ Item ListView { id: contents - spacing: Math.round(UM.Theme.getSize("default_lining").height) + spacing: UM.Theme.getSize("default_lining").height cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item. model: UM.SettingDefinitionsModel diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index ca95b6d373..eed5393a0b 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -384,13 +384,13 @@ QtObject { implicitWidth: Theme.getSize("scrollbar").width radius: Math.round(implicitWidth / 2) - color: Theme.getColor("scrollbar_background"); + color: Theme.getColor("scrollbar_background") } handle: Rectangle { id: scrollViewHandle - implicitWidth: Theme.getSize("scrollbar").width; + implicitWidth: Theme.getSize("scrollbar").width radius: Math.round(implicitWidth / 2) color: styleData.pressed ? Theme.getColor("scrollbar_handle_down") : styleData.hovered ? Theme.getColor("scrollbar_handle_hover") : Theme.getColor("scrollbar_handle"); diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 5af77d59c3..dbe5e7196e 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -411,7 +411,7 @@ "extruder_icon": [2.33, 2.33], - "section": [0.0, 2.2], + "section": [0.0, 2], "section_icon": [1.6, 1.6], "section_icon_column": [2.8, 0.0], From 95400282b907abf0a6d7ec707e209da50d0c1b36 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 3 Dec 2018 14:44:15 +0100 Subject: [PATCH 0630/1039] Simplify logic slightly Contributes to CL-1153 --- .../resources/qml/MonitorPrintJobPreview.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index 7ac2a1d8de..b6b666cbf3 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -23,11 +23,7 @@ Item anchors.fill: parent opacity: { - if (!printJob) - { - return 0 - } - if (printJob.state == "error" || !printJob.isActive) + if (printJob && (printJob.state == "error" || !printJob.isActive)) { return 0.5 } From 4e9c595bdd3dec5ac4f3688a4a25554fcf6f980d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 3 Dec 2018 15:34:33 +0100 Subject: [PATCH 0631/1039] Restyle the settings list Be sure that the alignments and the margins are corrects according to the designs. Contributes to CURA-5941. --- resources/qml/Settings/SettingCategory.qml | 34 ++--- resources/qml/Settings/SettingItem.qml | 149 ++++++++++++--------- resources/themes/cura-light/theme.json | 2 +- 3 files changed, 104 insertions(+), 81 deletions(-) diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 9a061304d4..9b78683e14 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -138,19 +138,20 @@ Button if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled_text") - } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) + } + else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover_text") - } else if (base.pressed || (base.checkable && base.checked)) + } + else if (base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active_text") - } else if (base.hovered || base.activeFocus) + } + else if (base.hovered || base.activeFocus) { return UM.Theme.getColor("setting_category_hover_text") - } else - { - return UM.Theme.getColor("setting_category_text") } + return UM.Theme.getColor("setting_category_text") } source: base.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") } @@ -161,25 +162,26 @@ Button id: icon anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.leftMargin: UM.Theme.getSize("thin_margin").width color: { if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled_text") - } else if((base.hovered || base.activeFocus) && base.checkable && base.checked) + } + else if((base.hovered || base.activeFocus) && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover_text") - } else if(base.pressed || (base.checkable && base.checked)) + } + else if(base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active_text") - } else if(base.hovered || base.activeFocus) + } + else if(base.hovered || base.activeFocus) { return UM.Theme.getColor("setting_category_hover_text") - } else - { - return UM.Theme.getColor("setting_category_text") } + return UM.Theme.getColor("setting_category_text") } source: UM.Theme.getIcon(definition.icon) width: UM.Theme.getSize("section_icon").width @@ -196,7 +198,9 @@ Button if (definition.expanded) { settingDefinitionsModel.collapse(definition.key) - } else { + } + else + { settingDefinitionsModel.expandRecursive(definition.key) } //Set focus so that tab navigation continues from this point on. @@ -205,7 +209,7 @@ Button } onActiveFocusChanged: { - if(activeFocus) + if (activeFocus) { base.focusReceived() } diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index df90cffdf3..4dd53f8663 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -15,6 +15,10 @@ Item id: base height: UM.Theme.getSize("section").height + anchors.left: parent.left + anchors.right: parent.right + // To avoid overlaping with the scrollBars + anchors.rightMargin: 2 * UM.Theme.getSize("thin_margin").width property alias contents: controlContainer.children property alias hovered: mouse.containsMouse @@ -44,25 +48,25 @@ Item var affected_by = settingDefinitionsModel.getRequires(definition.key, "value") var affected_by_list = "" - for(var i in affected_by) + for (var i in affected_by) { affected_by_list += "

    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%0A`jGbBzf40jzn#+ltV|2}r62J1oQa2y8OOvT zqAdjch&=phua^<>Bq8Vy2_U=JoJjoOStBO1N_RG)Q|lJ#;(pceN+X$y@rs%R2^U)y zR=UIMEDK~N)MJEvB_+cwILqc-XDJn&%ec(rLdB^$Vo+FeWGU{g38ifuk_=9}A_1er zSBcQ&D#*Ss+a(Q!#qkelW#jY0vZw3-T09I1>Ck2?fLrI_j5r3B*V%p_Yri~bqY0A% z5RQYw6+Z6Kbjdz5B><3OLa+OCS>1zzS=ADGBaW1x!{a>}79i@DE})^KlnE>^NW~YV zYq3(2RS}@T&Ouo)>CE6vUU(RhT8>7a)1HdB)up4)%^4?PT}?aC8x-zU(`r2`)B?J+ z!x9(O0C#J^RtuyLmn*@K@t_h)j-sP?+vlk6L9pS>cX$m(B3UNye148uQWw9ghX|Iz zSK_;|+gU|*HClm%7@%Mf(zFK33;<1L4J^VO&pxvj&R}q2DJagm-|sMrtEL4p&&R(6 zTGtpSn-_09kLNS8M1!75uV8X~`fgUb*89M*(VE2sbqH|P`K$1g$DhML`6vGv-+bW1 zIKSE8bD#S(w&%9E@wPYN;tLhK-6`sYoAI9i;J5IW`)yD@nI6QYVeMTCM9o49yOMXW?5+`DpI?H zdW~U-14p~L$2L%~50=UEY|qz4sFGPkS*~#aaxK0KJQYJI;^Kx04Vc+QDTZop)Pv zm1YWujClC4tSUoUz3{`dL8%q90vC5XwARrYFnfcwO_|W=Zk5*6y!cHloU@dQc{ih= zVyfGyjF)p@G9N)Y4<^4|9uaJ(!xQ-|up`(#oTg*MsDmMDgP3e@2&&yvuBc9vMwhL7 zRV-+DhO=P}&^R;7Bb$^}0h~sbz>z%9_#2O!%N(cY$Q#S&(Pbey$-)qGAMgVs% zYE%&AS_t`ZbUnv(0i3<=FLu4GkS7vu zzFaJr^@X!?Kx*sf@nC&M6UHI}+KmArPgwiV9t$n5#w2O&5=|Cg9AB_wO2irvtnWEX z@!;Rq2jM^~U1`*rK;i0k1!(0UAGKY9Mv2Nr-5lca66kbNvkk1gmS!RH)RXJ>qy-qj{CUB%spTP0_Fu zYS2?%DeW5b5fPwN^!jcs>6i#A>bBo$heD-$Ou!)^a$+%oJ!%qhb@hb| z8sTa0n2K3p4UE{Ta-OUf#i|kR!1o>N7P}0rX#Kcg80W4eptn5!fE8MxA)=I$sm=e_ zgQgc2I{qUP3s0e48RkPFea6^$1%FsE{pDQO^IEdy5D>nGiUG#*RTjL%#;77dW2p*) zK=WEz2X+r7z^KUMkahtC@_6HS9b*#!b1!&)cY^2l*Wu|Go<%LExc`p(aPw_%#q*as z?rS^T^VWCab$7iQkA3S4_{e8Jh7W)2qj>!3i@4>E`=HZR=q}4c@QNEX+G*{*} zSs03+pPdE0j7E3_q8&Q=asUQq{4OQ$a3E-BaTwDwAk5yIn12dH7w2CVe#$(8K3H`sVbYSKto zOX|PefZeX4&3jB`f~Zyhks_F9TbGT%a`MDwh4X%d9OfJbK!k@n$skcDs}dEbI*m6l zzDlDLJZIC6wHr3cKb&uy%po1;^JuiDPERJ!Ysg?b7v^0zLstlN29&w)71zmbP zdF&hEvjmNZ(BntSlK`v7FwdG6UJN(!VpK%_PCvr`#{EOtrQ!C_x?X|>^xhY9)3gV9 z?92HiECeTcRQ|?0<6nE+2wSrEU_n!7$%U){2=^)8%rViUH`ZWOeL6hjafTfavFDdz z<-wms!T|>w=Qtknew)9|K39?YS+AF;P#n3|n>VIx)|h|UmSe@nDX*s9+1pL0GL}CTkon2R}73`+0Ve1X=M73I8|R$ zU0di^NwXkNTdt1=+95o1qS7HSTL?qDmlotGN4)@IJVeX&S?>#LgojWTTbDIs$qGpC zWQy4`kidr1OXotUn&sJRnL`z&4y6qcuX+S{&CHD4FcQ0mo0-j+vM?9-W-x-P0#T7d zfx-Ntj$OFcH7OQWeobiDp>cmhoLe5vdI4ySGx<%f%TSoIX=%{QWG8+WK!nXEEMGI_2k!v!6HF-#lc3C!fL$0E@~* z{EkQ(fAb`72H+qJ1i4Cye>shNjQ6O~#KWYDr!-x>`~q&iC;$@)q8KN_GmoH_;pO>Oa)UiqmAs#v8PdxkNlY@@{D=jFBbJWzwo3^KcVk9~hVrvt%%ucUJvyRJ&3b?}Jj$O}aBq%mB( zPq1S2XIuwH0W6h@WA`0^vZT!9`<3@%xV4wGFJm2GYtD1f+>I|%EZj}i>i#!=|1d1! zn6bphQU<6Co=`9WI9H#+)E~v$@4XGLdG#&$=I7pzC!PQv{qbdd_u+@IzqrTglTYE< zONw{>!r#L?-~Mhq^VCo9+;dMt+9eb@XLQ~r5@(APbZJYA>SB%IrK2e$2455pTN1ar z!hub2P2t*R9-rw&xw3IbbpWTH8NS}%;Cb=eQaL_Qdcf^=kd#Y4Iup(Jg*eoQjN6fqs___Ep7ngK z4IzW0P`SvmFGr`W*I~(1#yXYNbGZ+2{8fThsr?rBc6MoCp4S3{2T2_&QDc4mkw=xB zpZcq)Xd!roX0X|x+$ysj2aUXx~2cL_Op#Tx{yI4O!J-n@J zk51yW6eS4^pG`1c0;b+Ds>C>Xi4>359&hukp5Zl-(R{JwH7#UX6hw5<)>vPau@4e= znsuF(lqjg{G#PEGLcHvuszPS_eiwJQD{M@#^`5)s+|*idZo36Ad(|h!?4=e<5wzYg zVG03kOKoEbs~muWn&igt3@F!@!YW+YZZ(%9K>P?(9_Q1>L13uP3(E2lgI2nO2VnVK zA8h^_;bSNQF~8**J}&sq{yhIJ_zg(_%kKvu@r78Q5z@lCs+{^-X9I*&nB7;rsgnXl zD%6WwaQ&|2eIeMfz49;*@(NfVil03GEdINH`v1W;dFQ+EoA>=TuBipz`TE!Jl?OhIr=Rcm)gS!^?s(lR!KQ;!B$SF!Zhc~F z81EuBDO=9(pkN8uD3h4(9|w5hLLKMN*C1%uA(D7`yyCfQe7DBN@wt=-_IL9tkGYh@ zcY4(IEQt;z#w@G~rQ8qWZP6#g-@8e#-o=Lwq$PAn!d+e|DexJl2MhwXrGl_UIXva3SBt zXDmPCeTm0=AQU`PcU{^|hKsye7Z8wZv!dF}gy59BX54?5I5DAaIh3-W8ke z7Im{l?=w_qRIYSy*ls2h>}qwZtzYYG3JYT@n}&tgr-NE+^imN3TC7HTQFllPydj`j z0N2d>N?w4aP;lYRGQIAqrxHsGwQ?VvZiOIn#d9-Q&w%rof#Jm}l`NjO5}*J^Y3G$x z%wCG%1DTg3!L<~g3@_7kzx^oikUoeT8T?##8E4kd^P0ac=QqONB$_IMFF{dY-xPhi z5oL2b9)JA%r~ux2|2uKZ{qMt%e)40yz5EjHy5~)J-5YMhbB})mpZVOU@xc#&1W!JD ziu>O7tGIB@4cN6FfLVb6mnt6e;R;a~3j<+zk2;X!`f`7VRUEwAerAr4!U`xrJuGZY zi-f?cPXZcF(tZg)kV6n*FG3&}Ib37EF%$^Ov9RsBb-IXqSz}+}IbpuvjMCBP<;t#m_~ej7+0E_X>DLYNx^RVDtO}D1uTYc+)6cVEn2PIC%v; zh&^*|iq@MOh=9#z!ZcMYOo4``7NwxDvhk;aSw%-Jign-?+j8u7E-GB44N z);%Ap11MeuWVX;<6*r(sk76LcVezA=7aJi3`_v!m0ZK992D1oO4Dz*%UHBtq1*!2%O9ZH6;+>Suz*c`+o2j)o%Bc)D-kA%I8xyaf8= zs2@x6Q7uu0AV2FYE9H95`R|AK4Zq`tSNo3RRJnbbtX;(0G1sPyl^54VVU=E5q9 zHKX(ID8WHWDiag-MXUq1)=`*1)heA7D5eQG*={hEVr6O_=yWX*u>@~zim6o8vN6|t z0d!{P(#aLFTxnvN1VXm+#m_;{8f%U<&0;Xp5PmY~ za6=;%C+!JU*TDohD~=G*F=)n>U;!){PtzGX zu0SourNzq<8?>Z_{o0m^_^W50#Mi(0XZX%{zkwI_Tikp9d+?rj|1w_r%A3*q-jr-95be>RtQ0}p zj|xs?Djhu%UAxnS0!wlCtvXe>9*T1CRjc;^TmhP&Xs}!VQj`!ohdWpiu`rc}&OldY~eW&uHORqRoTv zj90Mwni9n**U0#sTHK`3UwFJ+SyTq6`NOnX<2sC7zx~`WZ6?e6QU$bQ-tREgitWa~ zTufeC$S0sQECFb`H$#e7Mcj**p6#BHtPDtEG?)YFKD^vRytu`@SfrkIh7%Vwc!eS; zXb8wkS=a7{AWKBA;vsG9o#kuSRWSjmwM0<`=^fe&P|R3RJVdy6MQbTHOyC}Nj2Z>` zB7adVN|gtHqS1hE7Ro%Qg^c-Gi8E+sCF_^3Jv3Y#;wC=7AuAGVnxl7r;E!X91kWHs z{+3c9+AWbE*&wid&Qkg==eEGDK^n_NUgN^UYgB_8crS-Rr7%dax|{!(P2U{vXd$XE(d zVFK4+goT2$7{T-|80DImK$hUTcm6FT3<%QK2jHxV1M9naef!bo*G7{W$Es&1QBMB)v9`Y1|dby$r zATFPmEg2a^x|rgrvfn%GaEZ;8AXw5`<;410s>kC;P{o*s^M1=|@#j;i@c3WT7b;j0 zga99<2H4{YYqv78Bsak6+8GS@%;J&ELuGZz1v46^vVo}OJD>ZY3apeq=@S9^yR7ll!Rv&GnR{;BC&Y9LBIH^iq=)x+WoP*G4(qa-AE zj->&Y$!Y>x#7fZ0GVx8)+Qj-S{w4mA=r$ghz&LOKB+~9UL!3cUKH%XPYbAsgh|Z{V zu_)G{IzqO{u@_@V&t09D@prnvB?JOggC80#OA_=Zn51+>OWC3pRwNRAK=M2DT9PLg zHiVLxiq|M;(2G9=E`1kw-hMr+ z{oHTjU2l6Ao_pePJpSbO@br^E#`V{~8i1Adfy8=}L%&>41@6iQ8W#Wfy&Q@{(mJ8za4 z%ec~KlB7QOZq?{Y6U_&J)ME$}zE(NB;_T3dg`z}$%jDkfm7FyBADkXbNjU--h7*R@ z7;s(zGxChOL8+5@i=|*Ho+nlWIs?_?{P+9I=xuKmm_6lsGgU7cy8}u!Pw_k(U@rx8 zGyb(mvDM+RrbkTD-wGJA#oRh7q%Jqyn6w5Vy!x>JuZ=~=yd9c6l2Ew9T>bl_N*RC%kIm2iX|6TKSsFlX>?1dH z@N@F2@f@c~@4>e4)}*zBGGuAU6~igSQzhQb)hY_`TU_qIglEj>-^KN_C=}}vC@G5W_DEV4Fw1e~9> z*lVTbtPNQc-r+T@-P~}x(nj>iagWQfXTg~sk8W2r!-zH)W&xvO4`Ou$QRjMes9sq? zHLE3u2k`)qrNieWf%U;!-p}U{=w=N+y$4AY^FK}|Ltr9Ry|OQfuV+hLo@rSsBHm$g zFwgv5Du2rS4o5;}2P=-k>|}RwP@Lnj{X0>GzT|bZIg77Z^ZpRqT2Ynd3GKX0wO|tS zL~JG#bQdq}aQU=DHWj6)m26c-=?!haH|3`Qz0J_>?VZ#WaljONjz!FMY}IG!jhYZv z%))*Jie5Yqh>4FNgQcQ0&d0*5<6Fk^uiQ;L$G|Gk8cU86Z&-6Eb zcin6S!UjM+PSgB3=))C7+Lm$^qs-Vzrva`rkp%#zdwT>`gxAK;XvqqL0v4KRLbFtO zDb8eV#BmT1mP!Aep!&jvtMG%zp29!=$Nvxf;Gr*J5`ngk+wZ&sciwpq9)I>Cv}_^Q z+=6@F`?v60_uhf4%Cq?Xw;sgjKlN|%(hR|5uN42Ielo%QBN>?_-scMv|7PH#e^O@77 z2su$ofpiA`xT09xBg{M}^px9fN!%`7P@&ck&y6|LRB-OxIrOfWXSZj&D`{>GQh=#$ z0JX5@eQ#*Zs@cujtSoq+fubJrtVzK+E~{egVufI#gle?g+E<#8;|U*LFxvOimszwqCJ9zGz!@4jhM${%*?pT;u(&0v@hw-6!!r@ zMV&uT_>1$8t{6oR5-kMp8MHNw4;dsM_r@N@EvvAb62`5>pHh*K%m)L-ES~GATG%6q z_b_aBwcqRE92xg9kIeEu$^pdKGhQPP&+Cx+{aE7`vM;>|q}Cu!p^}c^Q;QXlfq_&3 z@qRcVJ7Sqi;zMU$0YG2!_0l~QNn$DhDie8qECPIdMwcVPs#L7GT>+#^2*f(j8%8`Q znHW#Ra3`@*i-pwEP0o>}MG7r%8HyBIqXMi2z6KC$E%g}D4g4)Yo3Hu!@O9o{vr2#Q)qnHt3ePSv?%7cQhR}&>_IIIYGq+A{(De$K?4E zy{YwC@J_N)i|1hUMJ;^^x|6^RB2Il`r5g*(o7lSoQyEI9E5NE9s1(nLr-D-6^uEn>Eg#llb0y5+T7$42*Vbiyv|C>78dQZ}g9 zz83x5iJn{v6@(Ulw2R`}{Jbh`0 z``+>^xarnA>`{$2Pg>F`BnJr3UPJ+wMI<hBZZ7k^|QDk9dIR7t!hOwz3 zTlm>J+#_vffC1yxgR+m&De|6rg}L6FgP%k*MTQ&D_md#1d(n=eX5f$>SL}6o8GJ!s z%;wKw&KqTO>C6#L#Ww}xr6 z!O1xoK2XIpouGHY?i7$dTike`t*^y)iwPaOQ-qtnbpk!|l9+6))q#8`8By6o2IRK9 zIY%T|p?eMJWg%Nq?`9^-BDS`dsud8=QS;KY43+6n6czWr#cm9q;+w;Utro3eGSWc{ zAfq3H6){nhFM}0E4!OxPF4Gd&cfhOp`F$%upXvP&IFDX1vGA~v9mCMP;Da*8eQdlL>y39D@@zggv1uszMm|7SxPrxHSwNma8udLb zaqa-Pk}gtnYLt_hkswk z*&WtVwp|v1mG6XEA|P(b*5mKW0O`P6k~XD!vTP6ZMghs{LmY3?eEk_`T5!_ZtqchUJpJCxF8Z0ae7pz;`XtZhoR+2Wa}l8@Ydp%LfZtgcp{v+ zumy;E*NlzrZmFN7#Cs3DUk&VI!OztdHyeg2mbF@ci2Xd{WV3;E6A0UB;{x5l*W4@w zpi}{{$0PzN6XtH!f6i^s0o9WPVL2vJ1$CN07qCp#1-*x6`FT`N0?+%&Zsfu6$=q#; zUGU_vlbo|)G@u^FC{j?6X=Mm1->i`NafhtwPrW|8{jDI=*YPt+kEb1n5!R9O$=8D8 zn1$*}-ohB4#+Sx3yqEy_nEyHPL?prIR!m(C&MLqJZPT04&2s62K!o8Z`K)p;FrF_h z&WNf;6`+e3FX7f(Z@_>1fBtXqN5A*Gc<@Uf#_R9A1#i6Xe&7{%;Ip6kEFSpkXHj+? z&;8_w`10rf7!N=EFfd(@cf9+ZxbOb=;dOVu+Hxp7&|A7m#uil(#J$vqz$9ov5v6{i z3h6KqsZkU$g+>go_;`+gIRJoz6JNlyz>g^yX^&#%2AHR^H%f&pJ-_ln4auY1ReC$L&B-VaAP!56^stOO`&Pm&+)KGpGw*%=;Gf>)**zl-s~{?kt{C zsue&{GxC|~fIa2MITn}^OH|ObMIj1RMcGV|Q!z~&v_2ZAy7WM69lLplQoZTC*jkmk z!AafXw4Gw#n}bmrgUU$Nb9};(S>x+Y8;W#Zd4|+W2@5M|gAc1x(3*WI@Qd?2`@R{r zxLTz!-NSYjV&ki>Fo>E5t+14-2!=t_2EUXi;>y67i~WrgDRFj$^sFqfLOQ0RZ%a@l zZeH+>peYQVleu3Gjk*$l9RVTXJ3ADRb+P;erlov#G2x(ctW!CSnlx#}xAX0_-;Fhn8Pnz1jw%NV&;2pTbR zJ$+{t^DM@E2GBcuE{6h5oj6v4;YAdUvo!Q2VS5OXh=l_b3!yQ~!62N2$>6wa@c=~m zYBV3u6s30Uy;B9|Tv-HUr2f1<5<%DVI_nS~Diw#GnK%k*FAmrAkf0AeASE8a!_}n) zn>4y}D}^d*A)`_2B3+y=4*+8iK`b19R~N2o)?XA$==7tkss@<6VpBf0CU7Xy)%vS= zh)pR>#B_jHfw}D=BA9A{RKZlOUXv6-o4a?IwE_l$hRsyaS=zDFLnqj`8B^JMZE6Ez zbMtf5xt`95T@W$Uy~DkO-PTHlYUr?{R9}DUNCgy1W8bV)?Gd_ka5VNjL$dm8&uKB8%E z%jX#1D=0mJGluiKzPu{H{w{*zxhNXBiGo4H z*2gHISh|?R&WbY2(A7+5cDKK~190%mIeKtS0MIUpfBL`HKCc@X>>8@k0vkwid1v%& z%0r2jbEk#}-u!t?Sm0rnlz%2Sht{@em${U&p!` zxDBOM#LBpOrO5D9`F7G<&fW(ymEj@pW?0c8(NCqTng`eADqJxPzU%8sK2==#u=mtN zmxAF&?y-&Po^2Anv6|rtAD_GT(xuZG?Dqi6WaZ+}uyYm`8ioBtWD!;<|CG;vjpCGOzShA4MvNz9{@dL(6g~04OOAVa7;7^;CM8PJ#%um)4d z-Gp5GH8HG-b_FsQ42)dlMJ~zK0odZSBE&|oO9#u*-NrnF{D2LV<1y~9%VtSn+6t7|eftP+YFUzdv+Sgez_pO}=2V|`^ zG~HXmVr!V^JxcF5*`A>H9p>I$i7`c{77JUNCa;FUJ?moORWg*M4hyXb+lP#5CK(i3 ziA!g=LcV&8NfG(j8VpM+tyG6zDP7P7pP9dxm_LD!h`Z23vVs+AM3SJ;<7f0Nfq9JH z&3fkD*P&5;Xl(_v+3VuDhtJGB>~PM#H`^DwuEi8duNPu(=q`-Xc{9a&@X29ahutrH z+!*hLa~JT#M}Lg}*Z=$fiElmlS)7{`vliU+%3E>QU9ZNbc3imXMqGX4ZFtu&{wm&Z z_iIthQ~2hWzkrW?=#S8F4*%XGe;2pk`Kkb3+%qQU2G|2b+y;pNR<^T9_7f2NS-0U> z7|x8!5am&V1Ywc$&#MdCV*n%X8Q;;JAM@`;JOpD=IV^z|EWN&iR@Ds|hD??5_wg(V zKo|hgK}2o@=?Zo?rMa}Xko&*!|nqqazRLgG=jKmbfJ)b1V!KU+#fy<|-*v}0Y zHs*zut|)ba$R00TZh%;!lOpg0`i7#Gqn5A16Kr0rYRAf9@W0nmt%8oP1@qx1|9cY) zqYD5}ZxtL$Gb}|+=5Abp=}j$+HbQ{7ue5MCKv{Jr0Z;XU5iaA5rRnf;_*g@piuZ3K zbtOYj@$nzW91{P_Q5N~^WW&%X^{V4+P((ZSk}B>E^>qj7UTJCef*Ts1lM>1y7U$0R zqJ!;DxjOdg7?96Kn|vQXP(OO>{EGvlE%_*@3X#5@Zu~*PpO)VS`GP$+=aCc;r>c@h z-QWO5ISjnDh^!J@QOk*;Oy{i{&mHet$~$$wZ~)9S+dY(`Iwy^Ro_t$x;XcizGs1LLyMMXO`kxGSuBnW?31z7-L??<{82$ zf%S0>qFsMK-?y*^7Ha2Lrf56D*)0r6AbN3gCPo)@2k{1~0qYvu<7|eJfsGat(<#Mk zZ>xlhQ3?}r$+$;?auq>w!DTrb&Pc&HTBAiWXv^E_AU_p|#j=-*E;O}?l5Qzv}`$p22i|ein`!cq8FhcI0X2a7LQ%) zvrS$Bz?1Nob5$J;wA`0tFds-0<{_=b!ljE^HNVxa;k>?zY#W-uMFEb<;I?)9c@WSKf3z zzV(fd;`5*U5I*^-Pob9!`1zmz53xCS6eb3dm7dl9m;^^xU{be8!@^-0V))Z2lYq;q6|W1+pN{;q10|CC>GTOIN6PB(-64bn zS{-AzXW9H|#|h6s$;yy@-~OLGbjZ0}9-T6T)@*@-y*2W>kxn6IWQud9p-=c(G9!vY zBP51#?zZ0D^JOS|2T(FvV}dfUoi^A{lNr_=)bE>BHkx;~Rtm*#e~SIQ!)60)wi9}9 z=*{@5DSZvSHI$8E1X<0whebD^LxMt=`Ce>7x{kzi@&sSb9t9`Nv(&xZd%!$DV^pMz z=hs<|67f*CME0Vww~UqV04B-F$^(?I#iGdy04`gi2!+c#DWt8T7=%(1=Zn<~1q^@8 zXM#qPd=BU>uxFO^bEY@q7Y#XV&vULXR^d$q{=eZHQ1@(t=e0>dYDn5wsV;L(AyzL% z%sx|RVx*8N{H(|Rag9SEO4oQ!J~JiGh4|S~Z3qvd92*A>XoC(F;vO_tOc!HxMOP^M zn)Q+L3SxPf9#{uaKNrDMxyBNhWPK&kcm=fl;@8irP%PdxEQW)c)*_ipBu)*iR5EM# zc+4TpyLL||O@c)ci^3V_a%4+6O;-^QjJbK&UWH@U#Q1Dg`Q@1Pam;TD@7xXy4|!s~6UxZ7 zNQ_T7j}qy{Q4Z0Z9THW4x-2S97$g3v{qdn6%i)=#q-6L}h&>S0ZaF(xhzSlfsVX<4# z{aGHo||J_G% z-HmtQjc{ zN4Ty4HdU};PZ7^R2ibLp}|xC4OJV6!v>{&x1u7FFhEQ z_2>nDHvL@!4}Y^UFyxDL+68DGw&!X;hXPiH>=Lzm`OKr$ofbI5eY*$B0Zcxoa@4$* z&rA4H`&fw>yYo{Wa)so#yf0y@#W)osyHnh7=LjQyHmtV*+e&%rdo1In3K_S{p={&V zbv*qgUwl#&uj)DJ! z-*pg>6rgt=N-AazBVXlgWrE5FJOagj!d`Kb@Mv_l< zfF$QbJ)MQM0vzKwO1(asGiW<#Bi(aMIar_nW4t8an=Pf}d;E8Gw+m7~Pf`|@&Hw>Q z16m0IH=xYn`)cv#alKnk5mSIwvDs{(eUEQ^TRV3mI|ksJ9*3K zfLuyNZ!=IjYOyYT+8fG-VLNVlu7Xl+U)-s;tjLCOhHN3T^0_Pzs;EtTN$m2V-}9flop9XEE2e)MEDPjDrjIB8sut-Aoc&Z_jZbn zvgEk}M9F(8g1(=v%yHuPLDTEA>)60@{RTa(-*N0(8yyUr4t|`m5Z`70BGz%u7?!fY z`8e;D3g%!j_suw42XyRjezHU%p79qAo_hS!!(qLo>t!^y%gh)7y7HI^OXI$-XuV-7 z#o`(r*wETGEHd`|93y7WXX7$JM<6PxQ6VtY9v)Q1QIu5B%c38WHWo=l<{23yy@jF;Zb2w8uO3wqZC=D&e8~Y#& zDF+0~pOrTugQ)_W?FR7ms0_X89m+&E2mb|w zZlrMSNJF&Rl~6({jKg{y>o&m9!KK+99dK>%3e-U9CU_xMk zqDlzT3+FE2dq4Og{>eZ4|Kj1Ve;(JI+h7vG^{>1Ix4-7qIDbyDIe!ywz4LDT+OPZv zc=O$NV!re}eEG8<#V0=YK|H^k@T13mj5}ZZDtmV~UR4ULjI1)ifV-KQPZH*Sp2@mZ zxQ9zV>l7FHn`C*N0$HuNM&Wj_+7~N(xes#zj4oCXNVBiv_{!sx6|85t2CUS^4!=tbKvP?j#8rp)ExJE?fKp^XmE_r z>8^~!roOK1_AV2{Dzj|h*)yI(nLjIValgZU-eG^b2h@~|-e)VOL1nAW*j?WFbB)(n zLbv50s#qb5+KYJz7}5%!wLx**W`G6?S*&?SAL%X-Knc&ho{+$+`}x{yi}Lu1kYGJm zOi8LbA|3jEh8Dr*+&TByDzq7qst+#9Zg%UAa8Ly*^X^s%P-LmcWj+-lzz0|*-;>Yg zl7CoEimge_JT!`wSQV}!=Ap84Bi<7WA?HZLd~-N3@>KliNlj^hxYtS3{s}M@o9}j- zaOn~-O2ZY1j2)4Khm+@~=N-91F*_y$xJu;D$TUCPt82N!E8m+w^|22{1Y*3bt3ti8 zWQ;?`&)o+@qakSp$QW-R^h0CwxZ~wqFFE9C5as}%3sIqp7DO~aDSH2Ot*Po|oU}YT;oLRfudXhvQ2lfLTruRAV&g))4}J&|;c_7a2mi z!u-?)dKQKn>rJJ{)`-p14jpXky*OZk{$Fus?OPu6X|#aCLx&9Aqlq=PGX}VFN$OyB zto{*}0(H6+uSVhurgm3aL^1go*wnVT0A`Yx*oR&|u`K6UB&abOM7hu`V%48|6_k@L z$~2iWB#JUsv@XDY26{(_Vs0}wvO$@w&bd`k>v85R=CdPWHH$#hEpWs(phvJ{Zf4c0 zb(|N#Lb$@3>U$z;!USxF6-PL&Z^_|GcCG1b z{jZ3X#cXXxtU7ay?y0m)>1pB^^-LUnggg)d!G=#9T zG>f5dY}`+QVApo2n+tf|UGK&2a>d1`9>I13?z#IHaog+OiOnm1f*WpsC0_B0>rmub zeCe})fUiFA8GQUxpTNFejr-sJ?*sJ&vnvmdehn}wMk(23Ojzs#fqdErQ27a2Dl86aBs&h!lbi3M5m%|ThQybI-zSIS;6ndI`!dbq4;*O-An&rZF> z6Ua!+bEiDF0a|Qsjh;&JkTRaLOplOdu>=7imdKnhuKR(!6Za;hPQ(q0+RZQ#{L|mb z9ypw%xY7e)R3`JiQ3ZPQrgWS0Fez3bW#dXjwZ?XBMsJEXTjS2{2@I%fL#bPoI$=Mb zVv>%o4SnxNu8RO|3v|d~xH907;PCT#TYgSY}XO{0z&lHp2&7I-m>&t#j2wWmoYDFXp zh44D$&0{WWwJpF57<0800>W!X=2y$lZp2^0X14>aTee=k3eoQ8!{((O zrj)pltJ8$dW)l{$dEVjN<~+WoX=lUGUulUaQzJ%|6`_njwx8YkqX?WnX ze}E@`@*J+a_04$mo8E=j-1TPM{Hj-a=}s?m+ZncKwA0fZ7yEz=xLsHaqA^`>4y+ia z5!+5a?&kw$H6_?#1{4$91%e`N(Bx{p$`M)$P>w{8{2OHl++fu)lH3cwQP3Isxl*R> zACK#10f?0>%>XClo=8$A(!B{ITaP2N)|>7!TOo%uewD-h;6#;%kz#VS(!-f-ZZ zo`f5m_=wj%re@M`bv4}+TE*f zMHWixXdMLOz;)k^rm8Cep`-ww#}QcphVc~0O5fO{aYmCkPP4Sn_pOak_T`{rzGwBz z$~^o~`8W)ZAM4}!U{r2=EDHmdEb-7W9GNL_G|aOVD#FHuhCu|Q>wKJF9qY!GEn)_V zfIljSeqDRZ3Gp^q^hYV;P zV09LukeOvq$J*i<6;X4cQQ@EJeGYZa>7(R$)8{1 z*{;f`^GH_j)=wv@Wm|wT4>mS~4EK3eZz80Y-vYJFD25u1L&eR-LJ?aYoMjjrm5%%z zDy1$bK?`=a5aen)w(f%=0>+%9VUZyGsBVjAkqxwN)sAecMvL@mbZ-lr535KW76b}& zSeQt0A&2yQIJkfdB&)Q}sz^ZBhEm4;JP*Y|zvvECt!sI2Go+fbFkilm{eJe4w2D4k zIni3pl2L0#ovaJ%zA5&*J&H^a6zu1H#QXNn>S9Q1JW3IY$E26Z6;LXQ#5&zQJsxK^ zYB3e3CsV$PA(Ar$9u_np(t{bV?-$?y^|R>lIwlB?Gwx&WUVgUv04Lk6m2_TI%{f#o z^5=1`bO6!ic$Ohf^Sp;haUL-4T`C~rAwHlHBos2UC|4J`PDce^Ik~8cg(&(kkn&i&?w&_3DYiVV-BidIn+{%=YIhz9lh;QwR!&?V6y@0Wc_5|mFzB@12)sf zs+`Sxn4zQs9hi$ktC)9IEJ2u6?YJroA0hZ~2|mu8C;moAC)B-^4Yd@@_v|gA0&-}g zQhqw1996jh@hVS(idwx(wr~%N^=e7re~lk<2NBT%Dc#q;9NDw+-BJXt9eNoCPZ)~o z;7M7=+cLCfmC{BvuN>AUQI(TncJ>lho^rXa!#GexBSgn_uV}9kiU-`dEF+JitI2PP zx7oY<+}$`W2WKg-%UUk1dG?{KVg$unmPoA8cwBzgz?$p*SzqHGfX4ELlELo>v&zrW z7>lao$H=eSER;$6-dLNny%1+d+59xu%Tg$Yox^|6fI9)KP?c=fR=r`~N4Q0Curibi zKGB&c-SsdaQ9OKwO>@?Y!?N3?KS_YKwjQ%sfs!aocm+T-o_qNBD|s|5RL3pg-41J| z1=yLLS<;s-(4hp8z+#Ew9}(c78!t?7QS=!f8vspV_1T;6nT%BrC8@wmSEltN@E?cg zETENRGl3D8KN!~dH$-##dF5?#Isphb5W=4!40)Z^Lw?%aEFZzG02QW8HPDjm?;{cn zag&cX$7+PCEQgu)TgCc(h}zlKB35)@5#}JnGALf=(iPYa!47i(59n;ke5IhEpmm_s zg6(!fm4dmqP+*D_Dejtw9O`fd$;nsUA?&wVD5OgsuhK(DeUlai@{u~7WFs>^T zoy8B<&!G}@vPV>ml$U-NG*Y z_wyId-m!$12M{|w*z=7adk7LW%&^@W>o?RBrmYwmj|{@&mIkMR22 zZ^9E#dB1Fg#{Kx1!3yt8%hBV^0LcB$4OTf+sOtH1((04$Qzrr%_FdwoiHJG@UsZV zFJaJCkG9C~h}RE#Kg)Rc(p3q&UXDVcL#sU^)cxPk*a-f8(HIj}JdV_oT>;%YQ>L;; zCIT`fb9bt+CbEkp9a=a4wL>$04k5wwoxsJFteVF>6YI|p76x%#jOk-Z+#SX&r)e_4 ztrU7ak_cHVoCKF&6$i$D&WeS9H9%hpCIBp(iFt^NPl=7+!|N_3sxp)+=$&C!`M8gD z8EbR~i1hnSfD-&?05q5`ODg8%D&sQwy)Li>2x}0T0+X%X!(cU7P3U*&0d%ZEj<1n0 zDLpN+YA7YbgRihIt;L(EIeqrx_Il9>Q!0hwM3!U*sg`@u0dusOYjf`AeK;wTeTIU% zJ?|E>jxrUfG_(%v_NVB&L!Bz>W(z6BLg!#1T@{LR+Y|K0?!17M$>v#xN5D|ZNX}Ld zt0~w(VF~P$`>lnv5?f(bCU2eSd+181Ckl_QsN-D3dGq~bNI>sPr8lpCKATzDzY+^P z=CL^R792ABvpzfP`T0yA;}M675OW%=8p|||Dr%#rOKO~_>Ab3xex*z82X&O%2=Jw#n;NZ@Bk;xZ#%9U^;&Z=dan~ z^>@D(TRe`BzW-0~=O6kLeBle9!}+Uk!Mor47M#EOddz#H_~kxwZC$BgxR(Eo3N5wyjCFp+d181pxZ8*4CDU)r4+GeRjNo6y z{qYI-@%!c(6791_;#v*iA<+i@=nNu2#he3N&UW2{3E7 z-X7?f_cJCb*wl^DpJb&~T~T1Zr-Q{Luk9a!Hi6XcJ&`E;I2TFab}5ImV$oWQy^cLx zC>2z6ZiM294bSOHlcn+O=Hq47}@_N_0oXqZoEH=DoNrlq?qM3F`63_r;nXlLu?V){ticr=o%V z;=Nn~=3H^F-Ae{n@Y3!KesCP8EK*P=fz+9D0c!*_4 z9S4T?dV>7rK^lo*!>W9&QU%AD*Oh|74wqnY!Yt1i(YaMMtf73*>`b@9>SDKEyb)Np zI{pdV49i9_Z;y=qtQ1CKo(^)#up|MHu4q!Cx(v`9bek7Qav3?mLx|jxD+cUp1GJU^ zk>|D>@UU&SK-~y-`x#B!2sqkIrVMC7Ed_Nd*zFsdH~?yW(e2xCky(cjywS zeO<}2l>z@*io?R%2ovI$FYPdGHrQ^Lmc?w?$m3t0BUkLb>$DVsC_{$~EYmVQU{O+1!oTbAH7 zS8t2+Rao}e?^8q)W~MO#vJMmL+hKG|TNN}QTD)zy;^Mc7Yw|VZHh%PE!CzkL^^z5eQpz-jF@`jVD+34^NQmzW_Pg#) zyt-NJL@=|Gf~0CB0X~=3yCvY@LKQ5vY94mFm9r+l-0T;#D(0V$fr#M!6EJY8- zD6OMcMXR>{y_rX3ZZl5j9jZ*Iux{9!Qqh}Y?$*3%<1zTH8xY&=yIG?x=4c@tRH_L$ zsCilAx!4$m~0iIU(kNqBFAk)4Q z=+D4>4er;^JIg?jpA)pu`;n?3%X`+}?GCu;mCT*t7kt9cUiMVPS%E7R&B9Am3{)6k zXaJg3gbG0K3b_cZ;Z?EFw}d?i*lVr0eCZ+{{K9AP;~#zba?<# z=5L8$bhYPvxd(;<(%KC`4j>c@A$bMgBaIoK=|YbsmP&^I%gFQKhF4HJC5_WJ(hVBM z$H=Qy$MX$@8wW9i!jhK4J3`RWHDc&lj#XH;vFiZLe#8kA)8`3V67=; z-UkOv3W&KIEDWkQEBsKbH$~rfmmSqZpT;@qN%;}S6y!Ht$6@?)Wk4hpDGE1h0L#5E zR*(W>xj0%pOtjg%OMz%b(T?uQMv)1ohymM8^{`ZX1`}^f8B&e!F2YKNX^(`S%!b|z zv=^7vRO|#Au?7bGbxuICn5;3DQaz{2pWlJr#KF1!ok0B|>$8+B(nZ$DdckK+3x zVuCtCs9-X_s?k_iVD64Rf>(5)CyRXWNksW~jd5Jbpp+O$%mYCul2G;8vV{>Aa`4$% z*N}yW&&rr+{rBK|<8D$9Zvc0m-iTqGKbyxL%#DomWn3>Sx{DDWI0DNsxDegH14Jh@JiyI%*;@6EwD6(U72YpXQmOv;uzl9Jv2 z7A1PkbJ0->pCg!xmHcb2@N)my`P$~pgnS8LHbSUJlR1KJDU5q0!!sd8VNhhU9ue$n zy_wLYSZ7w4<;{e?S?DU8;x#r*Y^YPgb`tCxP`p&62*+bJx;c85^aB+JKL^z-RoVEv zPe(!)2YLz88UlGRMV7leeyP)KCePpnS7;39RA7KHo$X`Z41N|yh$DYH`i_-y5P-BV z!wA-Z^%xJy&zPnPOzZo|I}gXD4q}^!0!0OyA}C&Wzq3LXY%fQ%CJXHgV@#LS)4^Yw z0Q-dtSK+(g{yzT2@BDN8;CtV|g$dZrm++d`-Hq2>bseUY3D@58X59Opci}(&jo-qJ zS6_=qzw-%v>?8jgAN}BmaB|h{c=XYq;Lg|G=8C<8Sc_$d!V1iFSQvIlNWKn?)Q@uo z>uxW0Tt)#4CrEWZC@NtcR{%xHZ!rEHK8mAzH+b~m+xGbg>(H(XC41}_`PYy^#IOeZ zZU2f&g!q@@Ze%Zm4JuvaWJc(VJ~u-N;|Q0uYQswWUpN-yu_6egQI>HT*p%o;{ z_3>;Q#>kB+&ND3}MPd%T%&KpOr`{FX_W-&zB&`+Nf&Dx~JgHAb(Av&AN>4VIK6lJw zp-=)VYrWrf_dZqBGP!<5-lD@u#I@Ann;^#M-9ane^s$fjz1BzGK-U&erSfFFvP8HO z%V(Fa2F#0i5si*AO)w8jNA(I$!~?`T6eB(DO9Zh5jkqVCrMk;dKZhjArr$DE}Q)PDa^E^_~{L+m%sNPgGiNG|Tp=c)_^&gWyYX*|=$IQmm$ zgNDBqA~kj?_5^T)vX^xy_R8!iU57GImjLr6TrV>zn{&()F^szixz!30E$b-1e*>B4URQVbq2=@I7 zvv6COr6iZyQrL_*(ZQUoys8N%OZ*xhs5lJ4Td1GsJu&5mmZ@5-^K|oY3VW}0qU_G7 z3IUvm=UH?&HA+}RJ7AW55f@y>@mLmn~nV2d|R`7UPMQ{7(tbp9e3Z0?Vp9(k1e@ z1d4gT!&TSci2L6CD`<1U^H2Q1g@g&X z1Gw}6Cn!c#I5SQDY~cgF$+1!dHM{ZEYIlKbJU_+fQU&^O|kNTvYeL9;8cq1p%~TJ+@Fx`JA3LF>jp zTi;>U8BJ$z^a%=H&=6wEtkH&*d`&CF`7_@G?%h^^sM)-*EEnq4zF^_P@KD3q&G7C^ z^b($)*8w|!qeQsNm3X!UA&^(vcU)-@@7cvM1^o~+*fU2rZ=YA>W4PCvb9V2L_8PKO zjHm`?0qJI}6F=$>0AyvXS<=%IyR4C|s-j2d^`V^Q`p3O#D6Fa)Jl}hP`&d1sZ4KvF zJhc?>V&1#+4Zw`i3Q67=?#(gy$Ma8|xHdki=5TKEU!Gwz1lr{29iluLGy)9SHn7f6 z9G2_oiXjujlT3Bdoo_u86CN{X|E$-`>qFuH8H>K)ii>N|p#(#RYx)GiR$|k?&QfZ^ zP?`9Hg^YlQHi1hduyaf$!y!=M_X|TX$ZXC~B#ycKvR7nTm5I-5=>Zs3JVbGFvayZq zE-;mDt3sGz)*c~aKR&0P2}Q&`JiOn&OQ1U#P%CT?LgVX^ zAC&Irch7Rg@$Uu@xwfN9hlrp~74xopJhFe6^Dkoc4prQpEH26$SaL5cXvU$fGL0*^ zwhJ>vfC46n`krV<@phnmZvo)gA(mHR#>UBTe(LnOVnV*c*2|#*9-3ka(SWvQ?tHN_ zwY5}iHg%NB?JW{Afr_bYP|5^Ix5jwRVyxTp9s+s*Xj#Nyg6c`Ui8+cYqzXg4J@Fb= zz7QF>W{|B|DDkW&lIYRC%W46-`o6!PN?Sr)A#0CZSE8qEeYJ%h0RJp&7XQX%P(I=; zE7%$w9~~QcTE~(O&fq!z6&ql%U_lM#)cnZ(e#fukl+byra z|MoxohxliDipQUL2=9IOTXDnHH{sG#Gd}vcFX2mH`Xu!Ex8uQ+j*oxnck#mWg1g`N zE4cgh_u!s4z74N?-K#P0cfM2NmBVOP9ZES|@SU|zOYeo3BSO(3hxt+n4+gKbgi}grpcj9FrIeo5AA5}q?jKrVNbrF&>0FcD@RMR`1(b$1eQc>(5fs$FF zJP8#Rr+b;*wZ%%NvWZ1eFcnK?H_rtt z6b<_6?na-AC07*zHl>;+7Y!TFUzo}URTPuY`SkK-6clVuwwOgwrY*`;(RH@7Qw6dI zCh3^U?tvTVMye381F2e*OlbILUyJ&Ckpt z#x>=bxT^#7t zd%`F5Ft5Tu%ur61pdhM|EXM&zSkO8;3arx5W;5ZrXD;GXpZGAIe*9~=e%tWiC;t+U zJoW^xzvUi0{`4h0{^K9wGtW2NcE_7>-+TTOy#2nraL28;+gu;V_TgHGDwdKMR{#=V*h&Wy2};qh{krt>ODNg&zx2O-45q6(8kt0`qad^CTLrF z=y0%J7^S{_&(=V6(ANO(h8j!kQx9InP(p6$kRO&vZH+gjt2fQWxR)beg~u+GB!P#% zcfgyy#YsGpb-9owK|8)0UMVWpLdiey4mnwiecOdJ&~eQK`^MXba}K#W^^?Jz1QGj=z?6(A$V)78|fe!c-_!BLZ#XJB@-7l&!J|G25xH}Zg|POd1g!-g)PRj z!_eiWh65Z0h8xda1M)Pmv{sbG%luCJ9E;~r$y~0#o3|JAKf02}4GqC?00v-|uSS zC^Ajxp!Izu^VwQ9_r_4*je{Ngpd)E)Ju_OB`Hys2R8$#4${$PK8A63xv)$NyzeIqp zqhds!dnkuk9So&Q6QFdkXIp&q!H#HN%dyAWEquZfz!Aw^>VKCGuP#J=-k#B66~)-e z7tG60IAA02)iftxeHj&!#P_i)qSLl{y#*5&R}fbDF0A)G4*LL@_P^d|RPitX?Eogw z!rz4~yy-3P!+-Q^ z|8v}WZN-ni_aS`rFa9My@Uc%|bM6=eku1in?J$&J69 zZ;6BOte|B@AeY+&LnTYZ6bB#U+k+JSBq$EnZEY}8e~(aESlx%j_eMNdAA956UmWbv z7&PR9gBa4eGgK-AD(W8Jp>UI;NiQYp*++*NuzmNiNHf$CX@3UY8ECe#d1O=YzG%`4 zt5~KUI#Qi4cMuqPSyzGclM&XUYEA1}7tC`XO68_{&W#(nyhP#lFyfXX;?FHPP9`49QMD0rX%!#taVNm~o@qXF9D{9-<`jNQIl(zJ-X?=E9A@Pz=8hq`TUN=T*hZ5&dMlaQheP??A=1P2nH}ppGQ6` z=VXGL(@6K`bDr1yujhK%9*S(8u`5S##YYZONeC2Zwy4Bap5Epltz&) ziDY&$Hm>PnBlFl?*c3pdN21*FmO~(M)Jn<00$>bEF8vojxbTBoo&PB3Dg+6Z*hcS4 zgVTe*uP~4@#Ze}#HyD&Zw8)qimn1!I%&BMZdwMX;%F|Uxf_1FZS;?;B@MK08V_xL6 zq_JtDC%TE5kg5ax_TH`H1K=@{Ix0G)HCJC46-(fT3k-GZAK%x>JY3>sYp>BG!{QWd z-Pt`+I#WjTF1`Rp^F<8$B&{A;#hnJ`HlynnMJ*w&If$yYqC+uz6=V}+drYOGNX72- z60{3yF@`!#6Lxze2(#pNj7n$5OvK|(*;zIe7PZc_zB^#(q5Y=b;K^t+9Fnb%o*O#O z1VJBx5Xf8eIKmw+v4*yOhr*HcL=dq2>@b--yd$gU9DvxgCug1a^>wBagEdb&d_Q?v zzPI;&@SHJ#Zfo60+Y+=%Fda|i7(gJn9%uJ{BnGggdVt^l6c?_&4)6ZC-@rG%_!&I; z)FXK1bywl;x4#j$-Tpe%M=wE7Cft4JYoO0Qj1PS5!}#z={|I0F(wA`at#{*{Z~i%4 zb=9?I9N>P3u!bv~lEU-G+72G!XOIF>B=Rl{Bn}!wsKdU7Lp>gAUIrhC@II$UTNe*c z5{qXRR&q%D5Y}vg_jVC1awUR+aR=Cgg1|f}kzzhT@+6_Kb3o2YHikF++_)w!e!hyY z5!I7?H66B5_&7(%FyF(5Xf&j(={xO3oHhHoyJ@1RhrBSk8eTYKQMAB4EPl>a)XJW! z0^Pj;(-xOit)h?17Mn95-9o2&x9Uh&T?K4UCUg{Z5!9&wT`+6IUYqAUnDB>K~iH9a zxUfFl#Jz!ER=8<^Z9mNv5ebm1dPjB5^1yh>P{91m^d5y)*6Xwc_G668=Pf-ATpRnD zo`$72!6wXp=KNa%s7@!ot!b?^{>L>v)*I(QQ52TUE%A0JDczDL3QTErQJc`|eZMnyuh{Vbf%rhuuiuaXLplt?vH=6OvIHDS5HcPA-g&<&MIXi0K8nEz6 z7exW-R;8@LiV83pj*NIoCu9!3cfPllz-isK0m11Ei;ee6PO8Ak_B>8bwwOxwkjaMa zRB--e!e**g5eOD)rQH?xP~>A#(;gw{k(FdPMy|DXYsh6Z3$Fs^`{!WGq_3@8l1!;cP+WHS1dI#1P^Rt-iQG>$jI;KnO9keh6d4!s77@nmoSFkk}@%eeBsSC|E|FXn5B>Gs~@9u!qwyd%y7)?OH= zSvgdC$%mnS#uTyFX3!`DzXZJysPORe`~ZhF9Q~^f_*s(G6fG|=p5=)G5G$?HK`)KV zr6SnxPXQ=uJwdHolmfK5L0s-zgkM7uGqP;YZE@9km(AL(0-q}O`@O}B7ePhAhRyVV zDE<=Npf#u}*0NS6m?LOTfXMypE)xh$G|ih{YRcA5?{Dv@WdK8Z!@1_InX<7d(|9&W z2hP`uz$*5JKQ95tK~INtH_rc>2OKy2EomWN!-_rd${L8%@kE(1=xaGH1xCkk9RA&h zLCpiXuhfwFq}4(1!$56cWduZ=hlBYq!MV+kd1gyv=;3;lqo2cvZO>03;H$Mqry>UI#<}YrX#6DHK@9a%vN1J@7B znP`C1Ww%ZQ@%OIb<}G8%;yHt9tX$9teGDU!*4IbXz%Ie1z^zMsaQDVSen1-!nudT; z%!v3X< zFAzkx^001^zO$RqAL*UP3FHXs<6At-17*eeRW`g_olgq#oM$tNC>&mE047I1J7&S- z=T|COyME7_;q%JBuRRdU_l~iwOWP8t#G&m;h?b7hEzvccek%n>(^v?A0C*K8v(DBs z)_QYt4$nUG3_kXe_v71t^%1<{+y0^Ov1y7t{$;<7Z1~#MQ0$8bBujb-62CxT!XiSzuFuf|1RlpIjikrHIGsc_^Sxh*F zdmb!N*96WIy%+UxNx&7G5;WAE@#k1< zIDduHB$JudX$4AyOX3k2v}d1|7&qhLZSOpP%V{;jd345R+F+VCn92l^28E&)<|}y^ zXa_FufqiSJbpmvTNWo^af%Jy9vnF2(wQxI8Ga@M^2v=pvfAjh6Y6T})ev}19EWb`L zyEkUY+7vdTu4JL0N{2wP_nu6(ZfsoUP(g=U?BAqQEm=oJ9#Kn+OeHsO@?o?{OZSw^au!so?&#H&T6^*M(5 z=#3bF9xU>~59PopfrUQulCHm2g~AvMz$PpC%KK!B1mgjFlplj?fIU^~FwBPv=y^~Jc~P^_ zODf?=V(AJ`sA|Bh*laduDg&a7kH3;n0xN=90^egX)FFUmY*YcDp`=SF4%HKoaw$1K zFNlUPWp%J&OwQJ5Y0)w_-66QpsGOC?c%T@$H-yY1tqT>r^?@0TigR1mRUWU<_(xaI z$YU5|_Vo~2XOaN$_gS2-b)4w}xiy@tCtjkrW11?cJl9&W*#L9zxcK}ltYlV0{xlct_46=tN|Q=?M!1!zLD18h;Ye&TZ3VKeyl3T zT96-(Th4qgd6K$&o4At(3&re*Zj|SZxvuz8yxaG#V|W`mhI1$9@b!lu!tedTALH@I zzJ*QOqfEdX?tU`_=h50Fy!H+6##`UQygz-Whey!2=gO-+4WJtBQW{c*-)>9q)B z4gcg@Yu>v-<2H7QIfV7rWdgixgvPouE`21GGOUDsh}4xCA@Fq&-CFlh)7j?f%4siv zmpclj&pcv1#y>YxZnQOM?T}iq@uCvin*qaSfT-4rZ9Tz$r__L&ncEhn>EO{*N);59OF_MB5iueGUp`XwoX_24Md%(7{x~WGs$!K_d~^F z`F#^b>$N!ynau{IW9vTNqX5f+`#Cf$+MLg%cjclr{+|Uju>(po27rN!4MHU#isQ5s z_a6VtPj$Uyg(Bt|73CyMh@Jmge`?qF3OAUQF)}Vnin4k8JW2CK0_b-B$awuBh z1@ZAx8Q}a~020M?n5DB6L7OQkM}-+XhQ&kR5but>2{>azv$Cn&am9$a1yUs$|E`#H ztI0(vJ|R^bpStp+YA*O%EJV9wT^r!xO}&}rTp^Is0WHub0bJ~;4sQU*S7SUH>!(_+BA5dE(^Fh?{SA1} zFZ>;R_rVA8)Z^d5bU|?Qy>G^w-ta!${*xWP{EbiHwi{o8=O6zrzWSL@<8z<>C_eM~ zFXI)jx(jc4>o4M(tFOj>zXQ~pD~Wn;fWMhuN*8jmwyX7wikq%9)an2rm&_CoD;)X0 zgO4ffOlAJAVjjwf)3CLONDSsrPyraL8NiFrW^$@ACkqEelaUwET^aGSl6RDi#Kv=z ztk=Qeg!GVch2Kj9k|enawjy@)X$lULgiEL!?8`&tbO4nMjO>}6A&_JE@x2VD!J-uy zWnEQac_995dMTv1f~n>$GX>5(l-37PujknZ5?et8*ddssrL8M z#d$R=Yo+mUwF8(WlNp(L5$N0_+^%^+jo!MI3@+>B}$SKzw>2#s39ll45vvz9DVy_q2uli@8{8-K?&A|Z~gnepwqQb1aa?ZvJu z$*rY-1`P;x(TE zg3BvBN5|OgM*=JL&yIj9(Gg~U#u{^scEDK@S4U{Cx}^^TJgTZ!oe)z>eJ*9HkrdjR zdB+B`@`MZ974PF@W2$9@X^EQaTf>`S04-=jhJ`WcrXhp{m(ygQ{h|zGgP_f3{VAS+ z%1+%AXi+md7lGH^wtI?{=sY`>ifsYrt`Jl-^~5YTsngNc$ao6{1<$6rNLz2-0BD0q zN)xp@^0h#^cx8_i!UK!#cKfXf;o{6Vs?r<*@nDBqMM*#|gZkqP`4HrX;0w}{MUp75 zWz7EathF{uMrNUN;5}IV&inZNLBMHjN0|9p%Fa^Y!ZwKc1YnnDo(uEL0TMihPd&Dd z=&XJ2O11Cb^Or8-j@xg>fBp}C8-MhNzl$IL_yqU8=?yq{{SDB|z*ipr62API_v319 z_<<@u@$nDhg}LLG{{4S|x4!YMxc2%RaKrW2ptaf7fi5_Kg%Nq|IExu%pv<`RSZgc+ zZ|`QU=6s5mK8A|}o_n9D0Yx`V1%1O_+Tr;?5CeFf!_4Jok1KriGAurbNWJjK1uszl zKZ-KN@|nDwCnQSV>Hxz*3-(Kt-NlkL96>ONcLL>EnB|npiE=3p&K4Vl8A~jwDH{2# zM%Yhxerf?;@Nw}u>c$nuwF`O!Y6S$%!i=S&R6tK>>`qT{x@(xGimT3_!&ED#lP%_F zfO(!#ilS5iWrCIoBHc=_s)e5x-9lRTlHR`RY5g*Q7Uy}Y?yVAsjlH{3D$9EN#yoe+ zlk-y9-GN(A>t_~xQ$C7X1OcR@$m9x6z+JniSloQ`->WL1^e!*YX2{9(^El

  • %1
  • \n".arg(affected_by[i].label) } var affects_list = "" - for(var i in affects) + for (var i in affects) { affects_list += "
  • %1
  • \n".arg(affects[i].label) } var tooltip = "%1\n

    %2

    ".arg(definition.label).arg(definition.description) - if(affects_list != "") + if (affects_list != "") { tooltip += "
    %1\n
      \n%2
    ".arg(catalog.i18nc("@label Header for list of settings.", "Affects")).arg(affects_list) } - if(affected_by_list != "") + if (affected_by_list != "") { tooltip += "
    %1\n
      \n%2
    ".arg(catalog.i18nc("@label Header for list of settings.", "Affected By")).arg(affected_by_list) } @@ -72,35 +76,39 @@ Item MouseArea { - id: mouse; + id: mouse - anchors.fill: parent; + anchors.fill: parent - acceptedButtons: Qt.RightButton; + acceptedButtons: Qt.RightButton hoverEnabled: true; - onClicked: base.contextMenuRequested(); + onClicked: base.contextMenuRequested() - onEntered: { - hoverTimer.start(); + onEntered: + { + hoverTimer.start() } - onExited: { - if(controlContainer.item && controlContainer.item.hovered) { - return; + onExited: + { + if (controlContainer.item && controlContainer.item.hovered) + { + return } - hoverTimer.stop(); - base.hideTooltip(); + hoverTimer.stop() + base.hideTooltip() } - Timer { - id: hoverTimer; - interval: 500; - repeat: false; + Timer + { + id: hoverTimer + interval: 500 + repeat: false onTriggered: { - base.showTooltip(base.tooltipText); + base.showTooltip(base.tooltipText) } } @@ -109,16 +117,16 @@ Item id: label anchors.left: parent.left - anchors.leftMargin: doDepthIndentation ? Math.round((UM.Theme.getSize("section_icon_column").width / 1.2) + ((definition.depth - 1) * UM.Theme.getSize("setting_control_depth_margin").width)) : 0 + anchors.leftMargin: doDepthIndentation ? Math.round(UM.Theme.getSize("thin_margin").width + ((definition.depth - 1) * UM.Theme.getSize("setting_control_depth_margin").width)) : 0 anchors.right: settingControls.left anchors.verticalCenter: parent.verticalCenter text: definition.label - elide: Text.ElideMiddle; + elide: Text.ElideMiddle renderType: Text.NativeRendering textFormat: Text.PlainText - color: UM.Theme.getColor("setting_control_text"); + color: UM.Theme.getColor("setting_control_text") opacity: (definition.visible) ? 1 : 0.5 // emphasize the setting if it has a value in the user or quality profile font: base.doQualityUserSettingEmphasis && base.stackLevel != undefined && base.stackLevel <= 1 ? UM.Theme.getFont("default_italic") : UM.Theme.getFont("default") @@ -131,7 +139,8 @@ Item height: Math.round(parent.height / 2) spacing: Math.round(UM.Theme.getSize("thick_margin").height / 2) - anchors { + anchors + { right: controlContainer.left rightMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2) verticalCenter: parent.verticalCenter @@ -151,112 +160,123 @@ Item iconSource: UM.Theme.getIcon("link") - onEntered: { - hoverTimer.stop(); - var tooltipText = catalog.i18nc("@label", "This setting is always shared between all extruders. Changing it here will change the value for all extruders."); - if ((resolve != "None") && (stackLevel != 0)) { + onEntered: + { + hoverTimer.stop() + var tooltipText = catalog.i18nc("@label", "This setting is always shared between all extruders. Changing it here will change the value for all extruders.") + if ((resolve != "None") && (stackLevel != 0)) + { // We come here if a setting has a resolve and the setting is not manually edited. - tooltipText += " " + catalog.i18nc("@label", "The value is resolved from per-extruder values ") + "[" + Cura.ExtruderManager.getInstanceExtruderValues(definition.key) + "]."; + tooltipText += " " + catalog.i18nc("@label", "The value is resolved from per-extruder values ") + "[" + Cura.ExtruderManager.getInstanceExtruderValues(definition.key) + "]." } - base.showTooltip(tooltipText); + base.showTooltip(tooltipText) } - onExited: base.showTooltip(base.tooltipText); + onExited: base.showTooltip(base.tooltipText) } UM.SimpleButton { - id: revertButton; + id: revertButton visible: base.stackLevel == 0 && base.showRevertButton - height: parent.height; - width: height; + height: parent.height + width: height color: UM.Theme.getColor("setting_control_button") hoverColor: UM.Theme.getColor("setting_control_button_hover") iconSource: UM.Theme.getIcon("reset") - onClicked: { + onClicked: + { revertButton.focus = true - if (externalResetHandler) { + if (externalResetHandler) + { externalResetHandler(propertyProvider.key) - } else { + } + else + { Cura.MachineManager.clearUserSettingAllCurrentStacks(propertyProvider.key) } } - onEntered: { hoverTimer.stop(); base.showTooltip(catalog.i18nc("@label", "This setting has a value that is different from the profile.\n\nClick to restore the value of the profile.")) } - onExited: base.showTooltip(base.tooltipText); + onEntered: + { + hoverTimer.stop() + base.showTooltip(catalog.i18nc("@label", "This setting has a value that is different from the profile.\n\nClick to restore the value of the profile.")) + } + onExited: base.showTooltip(base.tooltipText) } UM.SimpleButton { // This button shows when the setting has an inherited function, but is overriden by profile. - id: inheritButton; + id: inheritButton // Inherit button needs to be visible if; // - User made changes that override any loaded settings // - This setting item uses inherit button at all // - The type of the value of any deeper container is an "object" (eg; is a function) visible: { - if(!base.showInheritButton) + if (!base.showInheritButton) { - return false; + return false } - if(!propertyProvider.properties.enabled) + if (!propertyProvider.properties.enabled) { // Note: This is not strictly necessary since a disabled setting is hidden anyway. // But this will cause the binding to be re-evaluated when the enabled property changes. - return false; + return false } // There are no settings with any warning. - if(Cura.SettingInheritanceManager.settingsWithInheritanceWarning.length == 0) + if (Cura.SettingInheritanceManager.settingsWithInheritanceWarning.length == 0) { - return false; + return false } // This setting has a resolve value, so an inheritance warning doesn't do anything. - if(resolve != "None") + if (resolve != "None") { return false } // If the setting does not have a limit_to_extruder property (or is -1), use the active stack. - if(globalPropertyProvider.properties.limit_to_extruder == null || String(globalPropertyProvider.properties.limit_to_extruder) == "-1") + if (globalPropertyProvider.properties.limit_to_extruder == null || String(globalPropertyProvider.properties.limit_to_extruder) == "-1") { - return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0; + return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0 } // Setting does have a limit_to_extruder property, so use that one instead. if (definition.key === undefined) { // Observed when loading workspace, probably when SettingItems are removed. - return false; + return false } - return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, String(globalPropertyProvider.properties.limit_to_extruder)).indexOf(definition.key) >= 0; + return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, String(globalPropertyProvider.properties.limit_to_extruder)).indexOf(definition.key) >= 0 } - height: parent.height; - width: height; + height: parent.height + width: height - onClicked: { - focus = true; + onClicked: + { + focus = true // Get the most shallow function value (eg not a number) that we can find. var last_entry = propertyProvider.stackLevels[propertyProvider.stackLevels.length - 1] for (var i = 1; i < base.stackLevels.length; i++) { - var has_setting_function = typeof(propertyProvider.getPropertyValue("value", base.stackLevels[i])) == "object"; + var has_setting_function = typeof(propertyProvider.getPropertyValue("value", base.stackLevels[i])) == "object" if(has_setting_function) { last_entry = propertyProvider.stackLevels[i] - break; + break } } - if((last_entry == 4 || last_entry == 11) && base.stackLevel == 0 && base.stackLevels.length == 2) + if ((last_entry == 4 || last_entry == 11) && base.stackLevel == 0 && base.stackLevels.length == 2) { // Special case of the inherit reset. If only the definition (4th or 11th) container) and the first // entry (user container) are set, we can simply remove the container. @@ -277,23 +297,22 @@ Item color: UM.Theme.getColor("setting_control_button") hoverColor: UM.Theme.getColor("setting_control_button_hover") - iconSource: UM.Theme.getIcon("formula"); + iconSource: UM.Theme.getIcon("formula") onEntered: { hoverTimer.stop(); base.showTooltip(catalog.i18nc("@label", "This setting is normally calculated, but it currently has an absolute value set.\n\nClick to restore the calculated value.")) } - onExited: base.showTooltip(base.tooltipText); + onExited: base.showTooltip(base.tooltipText) } } Item { - id: controlContainer; + id: controlContainer enabled: propertyProvider.isValueUsed - anchors.right: parent.right; - anchors.rightMargin: UM.Theme.getSize("default_margin").width * 3 - anchors.verticalCenter: parent.verticalCenter; - width: UM.Theme.getSize("setting_control").width; + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + width: UM.Theme.getSize("setting_control").width height: UM.Theme.getSize("setting_control").height } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index dbe5e7196e..57532d91e5 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -416,7 +416,7 @@ "section_icon_column": [2.8, 0.0], "setting": [25.0, 1.8], - "setting_control": [10.0, 2.0], + "setting_control": [11.0, 2.0], "setting_control_radius": [0.15, 0.15], "setting_control_depth_margin": [1.4, 0.0], "setting_preferences_button_margin": [4, 0.0], From d3b5b2717d726ff99e22c372e1eaf2da48b2a73b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 3 Dec 2018 15:56:21 +0100 Subject: [PATCH 0632/1039] Add rounded corners to the settings Contributes to CURA-5941 --- .../RecommendedSupportSelector.qml | 6 +-- resources/qml/Settings/SettingCheckBox.qml | 43 +++++++++++-------- resources/qml/Settings/SettingComboBox.qml | 1 + resources/qml/Settings/SettingExtruder.qml | 40 ++++++++--------- .../qml/Settings/SettingOptionalExtruder.qml | 29 ++++++------- resources/qml/Settings/SettingTextField.qml | 37 +++++++++------- 6 files changed, 81 insertions(+), 75 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index ce4aa6c195..da46f2a735 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -97,10 +97,10 @@ Item property string color_override: "" // for manually setting values property string color: // is evaluated automatically, but the first time is before extruderModel being filled { - var current_extruder = extruderModel.get(currentIndex); - color_override = ""; + var current_extruder = extruderModel.get(currentIndex) + color_override = "" if (current_extruder === undefined) return "" - return (current_extruder.color) ? current_extruder.color : ""; + return (current_extruder.color) ? current_extruder.color : "" } currentIndex: diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index d37754d27c..f53a696343 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -28,37 +28,40 @@ SettingItem // 3: material -> user changed material in materials page // 4: variant // 5: machine - var value; - if ((base.resolve != "None") && (stackLevel != 0) && (stackLevel != 1)) { + var value + if ((base.resolve != "None") && (stackLevel != 0) && (stackLevel != 1)) + { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). - value = base.resolve; - } else { - value = propertyProvider.properties.value; + value = base.resolve + } + else + { + value = propertyProvider.properties.value } switch(value) { case "True": - return true; + return true case "False": - return false; + return false default: - return value; + return value } } Keys.onSpacePressed: { - forceActiveFocus(); - propertyProvider.setPropertyValue("value", !checked); + forceActiveFocus() + propertyProvider.setPropertyValue("value", !checked) } onClicked: { - forceActiveFocus(); - propertyProvider.setPropertyValue("value", !checked); + forceActiveFocus() + propertyProvider.setPropertyValue("value", !checked) } Keys.onTabPressed: @@ -72,9 +75,9 @@ SettingItem onActiveFocusChanged: { - if(activeFocus) + if (activeFocus) { - base.focusReceived(); + base.focusReceived() } } @@ -90,32 +93,34 @@ SettingItem color: { - if(!enabled) + if (!enabled) { return UM.Theme.getColor("setting_control_disabled") } - if(control.containsMouse || control.activeFocus) + if (control.containsMouse || control.activeFocus) { return UM.Theme.getColor("setting_control_highlight") } return UM.Theme.getColor("setting_control") } + radius: UM.Theme.getSize("setting_control_radius").width border.width: UM.Theme.getSize("default_lining").width border.color: { - if(!enabled) + if (!enabled) { return UM.Theme.getColor("setting_control_disabled_border") } - if(control.containsMouse || control.activeFocus) + if (control.containsMouse || control.activeFocus) { return UM.Theme.getColor("setting_control_border_highlight") } return UM.Theme.getColor("setting_control_border") } - UM.RecolorImage { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2.5) diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 76d458e427..13d2a0eb8f 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -35,6 +35,7 @@ SettingItem return UM.Theme.getColor("setting_control") } + radius: UM.Theme.getSize("setting_control_radius").width border.width: UM.Theme.getSize("default_lining").width border.color: { diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index a9427f863a..e1fedd9274 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -19,8 +19,9 @@ SettingItem model: Cura.ExtrudersModel { - onModelChanged: { - control.color = getItem(control.currentIndex).color; + onModelChanged: + { + control.color = getItem(control.currentIndex).color } } @@ -113,14 +114,15 @@ SettingItem { if (!enabled) { - return UM.Theme.getColor("setting_control_disabled"); + return UM.Theme.getColor("setting_control_disabled") } if (control.hovered || base.activeFocus) { - return UM.Theme.getColor("setting_control_highlight"); + return UM.Theme.getColor("setting_control_highlight") } - return UM.Theme.getColor("setting_control"); + return UM.Theme.getColor("setting_control") } + radius: UM.Theme.getSize("setting_control_radius").width border.width: UM.Theme.getSize("default_lining").width border.color: { @@ -153,20 +155,18 @@ SettingItem elide: Text.ElideLeft verticalAlignment: Text.AlignVCenter - background: Rectangle + background: UM.RecolorImage { id: swatch - height: Math.round(UM.Theme.getSize("setting_control").height / 2) + height: Math.round(parent.height / 2) width: height - anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - radius: Math.round(width / 2) + anchors.rightMargin: UM.Theme.getSize("thin_margin").width + sourceSize.width: width + sourceSize.height: height + source: UM.Theme.getIcon("extruder_button") color: control.color } } @@ -219,20 +219,18 @@ SettingItem verticalAlignment: Text.AlignVCenter rightPadding: swatch.width + UM.Theme.getSize("setting_unit_margin").width - background: Rectangle + background: UM.RecolorImage { id: swatch - height: Math.round(UM.Theme.getSize("setting_control").height / 2) + height: Math.round(parent.height / 2) width: height - anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - radius: Math.round(width / 2) + anchors.rightMargin: UM.Theme.getSize("thin_margin").width + sourceSize.width: width + sourceSize.height: height + source: UM.Theme.getIcon("extruder_button") color: control.model.getItem(index).color } } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index a3c1422b30..53044b0f82 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -116,6 +116,7 @@ SettingItem } return UM.Theme.getColor("setting_control"); } + radius: UM.Theme.getSize("setting_control_radius").width border.width: UM.Theme.getSize("default_lining").width border.color: { @@ -148,20 +149,18 @@ SettingItem elide: Text.ElideRight verticalAlignment: Text.AlignVCenter - background: Rectangle + background: UM.RecolorImage { id: swatch - height: Math.round(UM.Theme.getSize("setting_control").height / 2) + height: Math.round(parent.height / 2) width: height - anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - radius: Math.round(width / 2) + anchors.rightMargin: UM.Theme.getSize("thin_margin").width + sourceSize.width: width + sourceSize.height: height + source: UM.Theme.getIcon("extruder_button") color: control.color } } @@ -215,20 +214,18 @@ SettingItem verticalAlignment: Text.AlignVCenter rightPadding: swatch.width + UM.Theme.getSize("setting_unit_margin").width - background: Rectangle + background: UM.RecolorImage { id: swatch - height: Math.round(UM.Theme.getSize("setting_control").height / 2) + height: Math.round(parent.height / 2) width: height - anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - anchors.margins: Math.round(UM.Theme.getSize("default_margin").width / 4) - - border.width: UM.Theme.getSize("default_lining").width - border.color: enabled ? UM.Theme.getColor("setting_control_border") : UM.Theme.getColor("setting_control_disabled_border") - radius: Math.round(width / 2) + anchors.rightMargin: UM.Theme.getSize("thin_margin").width + sourceSize.width: width + sourceSize.height: height + source: UM.Theme.getIcon("extruder_button") color: control.model.getItem(index).color } } diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 9ec9338316..770ef53900 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -32,6 +32,7 @@ SettingItem anchors.fill: parent + radius: UM.Theme.getSize("setting_control_radius").width border.width: Math.round(UM.Theme.getSize("default_lining").width) border.color: { @@ -81,10 +82,10 @@ SettingItem Rectangle { - anchors.fill: parent; - anchors.margins: Math.round(UM.Theme.getSize("default_lining").width); + anchors.fill: parent + anchors.margins: Math.round(UM.Theme.getSize("default_lining").width) color: UM.Theme.getColor("setting_control_highlight") - opacity: !control.hovered ? 0 : propertyProvider.properties.validationState == "ValidatorState.Valid" ? 1.0 : 0.35; + opacity: !control.hovered ? 0 : propertyProvider.properties.validationState == "ValidatorState.Valid" ? 1.0 : 0.35 } Label @@ -145,11 +146,11 @@ SettingItem } color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default"); + font: UM.Theme.getFont("default") - selectByMouse: true; + selectByMouse: true - maximumLength: (definition.type == "str" || definition.type == "[int]") ? -1 : 10; + maximumLength: (definition.type == "str" || definition.type == "[int]") ? -1 : 10 clip: true; //Hide any text that exceeds the width of the text box. validator: RegExpValidator { regExp: (definition.type == "[int]") ? /^\[?(\s*-?[0-9]{0,9}\s*,)*(\s*-?[0-9]{0,9})\s*\]?$/ : (definition.type == "int") ? /^-?[0-9]{0,10}$/ : (definition.type == "float") ? /^-?[0-9]{0,9}[.,]?[0-9]{0,3}$/ : /^.*$/ } // definition.type property from parent loader used to disallow fractional number entry @@ -158,7 +159,8 @@ SettingItem { target: input property: "text" - value: { + value: + { // Stacklevels // 0: user -> unsaved change // 1: quality changes -> saved change @@ -167,13 +169,15 @@ SettingItem // 4: variant // 5: machine_changes // 6: machine - if ((base.resolve != "None" && base.resolve) && (stackLevel != 0) && (stackLevel != 1)) { + if ((base.resolve != "None" && base.resolve) && (stackLevel != 0) && (stackLevel != 1)) + { // We have a resolve function. Indicates that the setting is not settable per extruder and that // we have to choose between the resolved value (default) and the global value // (if user has explicitly set this). - return base.resolve; - } else { - return propertyProvider.properties.value; + return base.resolve + } + else { + return propertyProvider.properties.value } } when: !input.activeFocus @@ -182,16 +186,17 @@ SettingItem MouseArea { id: mouseArea - anchors.fill: parent; + anchors.fill: parent cursorShape: Qt.IBeamCursor onPressed: { - if(!input.activeFocus) { - base.focusGainedByClick = true; - input.forceActiveFocus(); + if (!input.activeFocus) + { + base.focusGainedByClick = true + input.forceActiveFocus() } - mouse.accepted = false; + mouse.accepted = false } } } From 15415dc3b98e70a2dd299c4d2cdef1a2065c1185 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 3 Dec 2018 16:53:52 +0100 Subject: [PATCH 0633/1039] Fix position of the tooltips for the settings Contributes to CURA-5941 --- resources/qml/Settings/SettingView.qml | 2 +- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index ff94c9168f..867d662edc 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -360,7 +360,7 @@ Item contextMenu.provider = provider contextMenu.popup(); } - onShowTooltip: base.showTooltip(delegate, Qt.point(- UM.Theme.getSize("default_arrow").width, 0), text) + onShowTooltip: base.showTooltip(delegate, Qt.point(- settingsView.x - UM.Theme.getSize("default_margin").width, 0), text) onHideTooltip: base.hideTooltip() onShowAllHiddenInheritedSettings: { diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 57532d91e5..3d0169dac9 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -35,7 +35,7 @@ "family": "Noto Sans" }, "default_italic": { - "size": 1.15, + "size": 1.0, "weight": 50, "italic": true, "family": "Noto Sans" From f320000ce5e5019d8f96af20b29aa266b54856f6 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 3 Dec 2018 17:23:44 +0100 Subject: [PATCH 0634/1039] Change default profile of Aurora and Alfawise printers Instead of the default layer height, we should change the default quality profile. This is necessary because the 'normal' quality profile doesn't define a layer height, so that should inherit from the 0.1mm default layer height. But if the printer turned the default into a 0.15mm layer height then that is wrong. Maybe we should let the normal quality profile overwrite it to 0.1mm, always? Contributes to issue CURA-5902. --- resources/definitions/alfawise_u20.def.json | 5 +---- resources/definitions/jgaurora_a1.def.json | 5 +---- resources/definitions/jgaurora_a5.def.json | 5 +---- resources/definitions/jgaurora_z_603s.def.json | 5 +---- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/resources/definitions/alfawise_u20.def.json b/resources/definitions/alfawise_u20.def.json index 87726fec3d..de8525fa4d 100644 --- a/resources/definitions/alfawise_u20.def.json +++ b/resources/definitions/alfawise_u20.def.json @@ -7,7 +7,7 @@ "author": "Samuel Pinches", "manufacturer": "Alfawise", "file_formats": "text/x-gcode", - "preferred_quality_type": "fine", + "preferred_quality_type": "fast", "machine_extruder_trains": { "0": "alfawise_u20_extruder_0" @@ -53,9 +53,6 @@ "material_bed_temperature": { "default_value": 50 }, - "layer_height": { - "default_value": 0.15 - }, "layer_height_0": { "default_value": 0.2 }, diff --git a/resources/definitions/jgaurora_a1.def.json b/resources/definitions/jgaurora_a1.def.json index 4fd2eb4994..b9a921c311 100644 --- a/resources/definitions/jgaurora_a1.def.json +++ b/resources/definitions/jgaurora_a1.def.json @@ -7,7 +7,7 @@ "author": "Samuel Pinches", "manufacturer": "JGAurora", "file_formats": "text/x-gcode", - "preferred_quality_type": "fine", + "preferred_quality_type": "fast", "machine_extruder_trains": { "0": "jgaurora_a1_extruder_0" @@ -53,9 +53,6 @@ "material_bed_temperature": { "default_value": 67 }, - "layer_height": { - "default_value": 0.15 - }, "layer_height_0": { "default_value": 0.12 }, diff --git a/resources/definitions/jgaurora_a5.def.json b/resources/definitions/jgaurora_a5.def.json index 02d9a9db4f..d84a8440e6 100644 --- a/resources/definitions/jgaurora_a5.def.json +++ b/resources/definitions/jgaurora_a5.def.json @@ -9,7 +9,7 @@ "file_formats": "text/x-gcode", "platform": "jgaurora_a5.stl", "platform_offset": [-242, -101, 273], - "preferred_quality_type": "fine", + "preferred_quality_type": "fast", "machine_extruder_trains": { "0": "jgaurora_a5_extruder_0" @@ -55,9 +55,6 @@ "material_bed_temperature": { "default_value": 67 }, - "layer_height": { - "default_value": 0.15 - }, "layer_height_0": { "default_value": 0.12 }, diff --git a/resources/definitions/jgaurora_z_603s.def.json b/resources/definitions/jgaurora_z_603s.def.json index 59e0ff129c..3a78585240 100644 --- a/resources/definitions/jgaurora_z_603s.def.json +++ b/resources/definitions/jgaurora_z_603s.def.json @@ -7,7 +7,7 @@ "author": "Samuel Pinches", "manufacturer": "JGAurora", "file_formats": "text/x-gcode", - "preferred_quality_type": "fine", + "preferred_quality_type": "fast", "machine_extruder_trains": { "0": "jgaurora_z_603s_extruder_0" @@ -53,9 +53,6 @@ "material_bed_temperature": { "default_value": 55 }, - "layer_height": { - "default_value": 0.15 - }, "layer_height_0": { "default_value": 0.2 }, From 004405e5f97337c5acfafda2da0c75bc4a9e7004 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 3 Dec 2018 17:25:07 +0100 Subject: [PATCH 0635/1039] Change the colors to match the designs. Contributes to CURA-5941. --- .../PrintSetupSelectorContents.qml | 6 +-- resources/qml/Settings/SettingCategory.qml | 26 ----------- resources/themes/cura-light/styles.qml | 2 +- resources/themes/cura-light/theme.json | 46 +++++++++---------- 4 files changed, 27 insertions(+), 53 deletions(-) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 77d1b59f4c..358cba8ad0 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -25,7 +25,7 @@ Item { id: header height: UM.Theme.getSize("print_setup_widget_header").height - color: UM.Theme.getColor("action_button_hovered") // TODO: It's not clear the color that we need to use here + color: UM.Theme.getColor("secondary") anchors { @@ -46,9 +46,9 @@ Item anchors { - topMargin: UM.Theme.getSize("sidebar_margin").height + topMargin: UM.Theme.getSize("default_margin").height left: parent.left - leftMargin: UM.Theme.getSize("narrow_margin").height + leftMargin: UM.Theme.getSize("default_margin").height } } diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 9b78683e14..be93f8ffab 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -45,32 +45,6 @@ Button return UM.Theme.getColor("setting_category") } Behavior on color { ColorAnimation { duration: 50; } } - Rectangle - { - id: backgroundLiningRectangle - height: UM.Theme.getSize("default_lining").height - width: parent.width - anchors.bottom: parent.bottom - color: - { - if (!base.enabled) - { - return UM.Theme.getColor("setting_category_disabled_border") - } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) - { - return UM.Theme.getColor("setting_category_active_hover_border") - } else if (base.pressed || (base.checkable && base.checked)) - { - return UM.Theme.getColor("setting_category_active_border") - } else if (base.hovered || base.activeFocus) - { - return UM.Theme.getColor("setting_category_hover_border") - } else - { - return UM.Theme.getColor("setting_category_border") - } - } - } } signal showTooltip(string text) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index eed5393a0b..66c000af62 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -393,7 +393,7 @@ QtObject implicitWidth: Theme.getSize("scrollbar").width radius: Math.round(implicitWidth / 2) - color: styleData.pressed ? Theme.getColor("scrollbar_handle_down") : styleData.hovered ? Theme.getColor("scrollbar_handle_hover") : Theme.getColor("scrollbar_handle"); + color: styleData.pressed ? Theme.getColor("scrollbar_handle_down") : styleData.hovered ? Theme.getColor("scrollbar_handle_hover") : Theme.getColor("scrollbar_handle") Behavior on color { ColorAnimation { duration: 50; } } } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 3d0169dac9..8e440757aa 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -86,7 +86,7 @@ "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], "border": [127, 127, 127, 255], - "secondary": [240, 240, 240, 255], + "secondary": [245, 245, 245, 255], "secondary_shadow": [216, 216, 216, 255], "primary_button": [38, 113, 231, 255], @@ -183,25 +183,25 @@ "action_button_disabled_shadow": [228, 228, 228, 255], "scrollbar_background": [255, 255, 255, 255], - "scrollbar_handle": [31, 36, 39, 255], - "scrollbar_handle_hover": [12, 159, 227, 255], - "scrollbar_handle_down": [12, 159, 227, 255], + "scrollbar_handle": [10, 8, 80, 255], + "scrollbar_handle_hover": [50, 130, 255, 255], + "scrollbar_handle_down": [50, 130, 255, 255], "setting_category": [245, 245, 245, 255], "setting_category_disabled": [255, 255, 255, 255], - "setting_category_hover": [245, 245, 245, 255], + "setting_category_hover": [232, 242, 252, 255], "setting_category_active": [245, 245, 245, 255], - "setting_category_active_hover": [245, 245, 245, 255], - "setting_category_text": [31, 36, 39, 255], + "setting_category_active_hover": [232, 242, 252, 255], + "setting_category_text": [35, 35, 35, 255], "setting_category_disabled_text": [24, 41, 77, 101], - "setting_category_hover_text": [31, 36, 39, 255], - "setting_category_active_text": [31, 36, 39, 255], - "setting_category_active_hover_text": [31, 36, 39, 255], + "setting_category_hover_text": [35, 35, 35, 255], + "setting_category_active_text": [35, 35, 35, 255], + "setting_category_active_hover_text": [35, 35, 35, 255], "setting_category_border": [245, 245, 245, 255], "setting_category_disabled_border": [245, 245, 245, 255], - "setting_category_hover_border": [12, 159, 227, 255], - "setting_category_active_border": [245, 245, 245, 255], - "setting_category_active_hover_border": [12, 159, 227, 255], + "setting_category_hover_border": [50, 130, 255, 255], + "setting_category_active_border": [50, 130, 255, 255], + "setting_category_active_hover_border": [50, 130, 255, 255], "setting_control": [255, 255, 255, 255], "setting_control_selected": [31, 36, 39, 255], @@ -298,16 +298,16 @@ "xray_error": [255, 0, 0, 255], "layerview_ghost": [32, 32, 32, 96], - "layerview_none": [255, 255, 255, 255], - "layerview_inset_0": [255, 0, 0, 255], - "layerview_inset_x": [0, 255, 0, 255], - "layerview_skin": [255, 255, 0, 255], - "layerview_support": [0, 255, 255, 255], - "layerview_skirt": [0, 255, 255, 255], - "layerview_infill": [255, 192, 0, 255], - "layerview_support_infill": [0, 255, 255, 255], - "layerview_move_combing": [0, 0, 255, 255], - "layerview_move_retraction": [128, 128, 255, 255], + "layerview_none": [255, 255, 255, 255], + "layerview_inset_0": [255, 0, 0, 255], + "layerview_inset_x": [0, 255, 0, 255], + "layerview_skin": [255, 255, 0, 255], + "layerview_support": [0, 255, 255, 255], + "layerview_skirt": [0, 255, 255, 255], + "layerview_infill": [255, 192, 0, 255], + "layerview_support_infill": [0, 255, 255, 255], + "layerview_move_combing": [0, 0, 255, 255], + "layerview_move_retraction": [128, 128, 255, 255], "layerview_support_interface": [64, 192, 255, 255], "layerview_nozzle": [181, 166, 66, 50], From 9b8b91b6a41eef06b504f47474d213f54335a308 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 3 Dec 2018 17:34:08 +0100 Subject: [PATCH 0636/1039] More specific variable type for is_connected Contributes to issue CURA-5876. Co-Authored-By: Ghostkeeper --- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index fc8b31f125..79b7c9bf66 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -102,7 +102,7 @@ Cura.ExpandableComponent height: implicitHeight //Required because ExpandableComponent will try to use this to determine the size of the background of the pop-up. spacing: UM.Theme.getSize("default_margin").height - property var is_connected: false //If current machine is connected to a printer. Only evaluated upon making popup visible. + property bool is_connected: false //If current machine is connected to a printer. Only evaluated upon making popup visible. onVisibleChanged: { is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected //Re-evaluate. From 6af1e72ea330c009feb3a3834233481a442db2c7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 07:45:34 +0100 Subject: [PATCH 0637/1039] Show progress bar while autoslice is preparing Previously it would say 'preparing to slice'. Now it just says 'auto slicing' but with an indeterminate progress bar. Only the indeterminate progress bar just appears empty right now... Contributes to issue CURA-5997. --- resources/qml/ActionPanel/SliceProcessWidget.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 3329ac4b23..14e149dddb 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -44,7 +44,7 @@ Column { id: autoSlicingLabel width: parent.width - visible: prepareButtons.autoSlice && widget.backendState == UM.Backend.Processing + visible: prepareButtons.autoSlice && (widget.backendState == UM.Backend.Processing || widget.backendState == UM.Backend.NotStarted) text: catalog.i18nc("@label:PrintjobStatus", "Auto slicing...") color: UM.Theme.getColor("text") @@ -71,7 +71,8 @@ Column width: parent.width height: UM.Theme.getSize("progressbar").height value: progress - visible: widget.backendState == UM.Backend.Processing + indeterminate: widget.backendState == UM.Backend.NotStarted + visible: (widget.backendState == UM.Backend.Processing || (prepareButtons.autoSlice && widget.backendState == UM.Backend.NotStarted)) background: Rectangle { From 98ec6c66f2d486890b2d31c68bb8bd09e3bd911e Mon Sep 17 00:00:00 2001 From: THeijmans Date: Tue, 4 Dec 2018 08:25:05 +0100 Subject: [PATCH 0638/1039] CC06 profile fix removed line adding 10degrees to many profiles --- resources/variants/ultimaker_s5_cc06.inst.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/variants/ultimaker_s5_cc06.inst.cfg b/resources/variants/ultimaker_s5_cc06.inst.cfg index d41d08118a..7adf7ab7a0 100644 --- a/resources/variants/ultimaker_s5_cc06.inst.cfg +++ b/resources/variants/ultimaker_s5_cc06.inst.cfg @@ -13,7 +13,6 @@ brim_width = 7 machine_nozzle_cool_down_speed = 0.9 machine_nozzle_id = CC 0.6 machine_nozzle_size = 0.6 -material_print_temperature = =default_material_print_temperature + 10 raft_acceleration = =acceleration_print raft_airgap = 0.3 raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2 From e9f8757fac1b5740f7daab3dea3288940f092400 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 4 Dec 2018 09:12:57 +0100 Subject: [PATCH 0639/1039] Change the info button in the action panel according to the designs Adjust the padding in the preview shortcut. --- .../qml/ActionPanel/OutputProcessWidget.qml | 2 + .../ActionPanel/PrintInformationWidget.qml | 3 -- resources/themes/cura-light/icons/info.svg | 48 ------------------- 3 files changed, 2 insertions(+), 51 deletions(-) delete mode 100644 resources/themes/cura-light/icons/info.svg diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 45cb1fdb41..6ab8dc6fbb 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -112,6 +112,8 @@ Column id: previewStageShortcut height: UM.Theme.getSize("action_panel_button").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Preview") onClicked: UM.Controller.setActiveStage("PreviewStage") diff --git a/resources/qml/ActionPanel/PrintInformationWidget.qml b/resources/qml/ActionPanel/PrintInformationWidget.qml index 82707576e0..25e380dea8 100644 --- a/resources/qml/ActionPanel/PrintInformationWidget.qml +++ b/resources/qml/ActionPanel/PrintInformationWidget.qml @@ -11,9 +11,6 @@ UM.RecolorImage { id: widget - //implicitHeight: UM.Theme.getSize("section_icon").height - //implicitWidth: UM.Theme.getSize("section_icon").width - source: UM.Theme.getIcon("info") width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height diff --git a/resources/themes/cura-light/icons/info.svg b/resources/themes/cura-light/icons/info.svg deleted file mode 100644 index 97e4fc4f35..0000000000 --- a/resources/themes/cura-light/icons/info.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From c1f5c00a7e088fee409d7c7282607faf3976707f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 4 Dec 2018 09:18:45 +0100 Subject: [PATCH 0640/1039] Forgot to add the icon --- resources/themes/cura-light/icons/info.svg | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 resources/themes/cura-light/icons/info.svg diff --git a/resources/themes/cura-light/icons/info.svg b/resources/themes/cura-light/icons/info.svg new file mode 100644 index 0000000000..9896b3dac8 --- /dev/null +++ b/resources/themes/cura-light/icons/info.svg @@ -0,0 +1,13 @@ + + + + Icon/ info + Created with Sketch. + + + + + + + + \ No newline at end of file From 57a852a15ae0ff9e292e3eff574c067399a29777 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 4 Dec 2018 09:19:08 +0100 Subject: [PATCH 0641/1039] Don't show the background if there are less than 2 extruders to show in the Toolbar It caused a very tiny rectangle if the printer has only 1 extruder. Contributes to CURA-5984. --- resources/qml/Toolbar.qml | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 07522dd535..5fbddea9ac 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -115,6 +115,7 @@ Item } radius: UM.Theme.getSize("default_radius").width color: UM.Theme.getColor("lining") + visible: extrudersModel.items.length > 1 } Column @@ -131,8 +132,7 @@ Item id: extruders width: childrenRect.width height: childrenRect.height - property var _model: Cura.ExtrudersModel { id: extrudersModel } - model: _model.items.length > 1 ? _model : 0 + model: extrudersModel.items.length > 1 ? extrudersModel : 0 delegate: ExtruderButton { @@ -144,13 +144,18 @@ Item } } + Cura.ExtrudersModel + { + id: extrudersModel + } + UM.PointingRectangle { - id: panelBorder; + id: panelBorder - anchors.left: parent.right; - anchors.leftMargin: UM.Theme.getSize("default_margin").width; - anchors.top: base.top; + anchors.left: parent.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.top: base.top anchors.topMargin: base.activeY z: buttons.z - 1 @@ -161,14 +166,14 @@ Item { if (panel.item && panel.width > 0) { - return Math.max(panel.width + 2 * UM.Theme.getSize("default_margin").width); + return Math.max(panel.width + 2 * UM.Theme.getSize("default_margin").width) } else { return 0; } } - height: panel.item ? panel.height + 2 * UM.Theme.getSize("default_margin").height : 0; + height: panel.item ? panel.height + 2 * UM.Theme.getSize("default_margin").height : 0 opacity: panel.item && panel.width > 0 ? 1 : 0 Behavior on opacity { NumberAnimation { duration: 100 } } @@ -186,11 +191,11 @@ Item { id: panel - x: UM.Theme.getSize("default_margin").width; - y: UM.Theme.getSize("default_margin").height; + x: UM.Theme.getSize("default_margin").width + y: UM.Theme.getSize("default_margin").height source: UM.ActiveTool.valid ? UM.ActiveTool.activeToolPanel : "" - enabled: UM.Controller.toolsEnabled; + enabled: UM.Controller.toolsEnabled } } From 0363c1257cf947aff14b2543a76edc7d4cd08b20 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 4 Dec 2018 10:18:09 +0100 Subject: [PATCH 0642/1039] Improve exposed progress prop Contributes to CL-1153 --- cura/PrinterOutput/PrintJobOutputModel.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cura/PrinterOutput/PrintJobOutputModel.py b/cura/PrinterOutput/PrintJobOutputModel.py index 604fd8e0b8..256c9dffe9 100644 --- a/cura/PrinterOutput/PrintJobOutputModel.py +++ b/cura/PrinterOutput/PrintJobOutputModel.py @@ -133,9 +133,8 @@ class PrintJobOutputModel(QObject): @pyqtProperty(float, notify = timeElapsedChanged) def progress(self) -> float: result = self.timeElapsed / self.timeTotal - if result > 1.0: - result = 1.0 - return result + # Never get a progress past 1.0 + return min(result, 1.0) @pyqtProperty(str, notify=stateChanged) def state(self) -> str: From ab245bbff6fe76d0647f9a8655bf0abbb3ee5595 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 4 Dec 2018 10:23:26 +0100 Subject: [PATCH 0643/1039] Make "finishes at" single translatable string Contributes to CL-1153 --- .../resources/qml/MonitorPrintJobProgressBar.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index a7055f4c52..4ca3c24d87 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -103,7 +103,7 @@ Item case "queued": return catalog.i18nc("@label:status", "Action required") default: - return catalog.i18nc("@label:status", "Finishes ") + OutputDevice.getDateCompleted( printJob.timeRemaining ) + " at " + OutputDevice.getTimeCompleted( printJob.timeRemaining ) + return catalog.i18nc("@label:status", "Finishes %1 at %2".arg(OutputDevice.getDateCompleted( printJob.timeRemaining ), OutputDevice.getTimeCompleted( printJob.timeRemaining ))) } } width: contentWidth From 9ec7428620e4ea31b1b172aeda86a29db28fd7c8 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 4 Dec 2018 10:54:30 +0100 Subject: [PATCH 0644/1039] Fix setting visiblity current index CURA-5981 --- resources/qml/Preferences/SettingVisibilityPage.qml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index e319069502..1b964cad0c 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -115,15 +115,16 @@ UM.PreferencesPage currentIndex: { + var idx = -1; for(var i = 0; i < settingVisibilityPresetsModel.items.length; ++i) { if(settingVisibilityPresetsModel.items[i].presetId == settingVisibilityPresetsModel.activePreset) { - currentIndex = i; - return; + idx = i; + break; } } - return -1 + return idx; } onActivated: From 249a90199bd2da38aac6974a03a1a07f624b0acf Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 4 Dec 2018 11:08:01 +0100 Subject: [PATCH 0645/1039] Improve printer status handling Contributes to CL-1153 --- .../resources/qml/MonitorPrintJobProgressBar.qml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index 4ca3c24d87..0d159af21c 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -90,9 +90,11 @@ Item return catalog.i18nc("@label:status", "Finished") case "sent_to_printer": return catalog.i18nc("@label:status", "Preparing...") - case "aborting": + case "pre_print": + return catalog.i18nc("@label:status", "Preparing...") + case "aborting": // NOTE: Doesn't exist but maybe should someday return catalog.i18nc("@label:status", "Aborting...") - case "aborted": + case "aborted": // NOTE: Unused, see above return catalog.i18nc("@label:status", "Aborted") case "pausing": return catalog.i18nc("@label:status", "Pausing...") From 96b9c7f3ea045aaecf81fb3d79c72929f0ad8ce5 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 4 Dec 2018 11:40:56 +0100 Subject: [PATCH 0646/1039] Fix multi-argument i18n string Contributes to CL-1153 --- .../resources/qml/MonitorPrintJobProgressBar.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index 0d159af21c..88418516ed 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -78,7 +78,7 @@ Item { if (!printJob) { - return ""; + return "" } switch (printJob.state) { @@ -105,7 +105,7 @@ Item case "queued": return catalog.i18nc("@label:status", "Action required") default: - return catalog.i18nc("@label:status", "Finishes %1 at %2".arg(OutputDevice.getDateCompleted( printJob.timeRemaining ), OutputDevice.getTimeCompleted( printJob.timeRemaining ))) + return catalog.i18nc("@label:status", "Finishes %1 at %2".arg(OutputDevice.getDateCompleted( printJob.timeRemaining )).arg(OutputDevice.getTimeCompleted( printJob.timeRemaining ))) } } width: contentWidth From 692686597cf9204748a25c38fc11392712e74ae4 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 4 Dec 2018 12:07:31 +0100 Subject: [PATCH 0647/1039] Fix an issues that didn't calculate the correct height of the popup when the custom mode was selected from previous runs. Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 42 ++++++++-------- .../PrintSetupSelectorContents.qml | 49 ++++++++++--------- 2 files changed, 48 insertions(+), 43 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 82747d1c5b..df7604015e 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -25,10 +25,7 @@ Item property alias headerItem: headerItemLoader.sourceComponent // The popupItem holds the QML item that is shown when the "open" button is pressed - property var popupItem - - // The popupItem holds the QML item that is shown when the "open" button is pressed - property var componentItem + property alias popupItem: popup.contentItem property color popupBackgroundColor: UM.Theme.getColor("action_button") @@ -87,23 +84,6 @@ Item } } - onPopupItemChanged: - { - // Since we want the size of the popup to be set by the size of the content, - // we need to do it like this. - popup.width = popupItem.width + 2 * popup.padding - popup.height = popupItem.height + 2 * popup.padding - popup.contentItem = popupItem - } - - Connections - { - // Since it could be that the popup is dynamically populated, we should also take these changes into account. - target: popupItem - onWidthChanged: popup.width = popupItem.width + 2 * popup.padding - onHeightChanged: popup.height = popupItem.height + 2 * popup.padding - } - implicitHeight: 100 * screenScaleFactor implicitWidth: 400 * screenScaleFactor @@ -202,5 +182,25 @@ Item border.color: UM.Theme.getColor("lining") radius: UM.Theme.getSize("default_radius").width } + + contentItem: Item { } + + onContentItemChanged: + { + // Since we want the size of the popup to be set by the size of the content, + // we need to do it like this. + popup.width = contentItem.width + 2 * popup.padding + popup.height = contentItem.height + 2 * popup.padding + } + } + + // DO NOT MOVE UP IN THE CODE: This connection has to be here, after the definition of the Popup item. + // Apparently the order in which these are handled matters and so the height is correctly updated if this is here. + Connections + { + // Since it could be that the popup is dynamically populated, we should also take these changes into account. + target: popup.contentItem + onWidthChanged: popup.width = popup.contentItem.width + 2 * popup.padding + onHeightChanged: popup.height = popup.contentItem.height + 2 * popup.padding } } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 358cba8ad0..a2856e1fe5 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -17,9 +17,26 @@ Item width: UM.Theme.getSize("print_setup_widget").width - 2 * UM.Theme.getSize("default_margin").width height: childrenRect.height - property int currentModeIndex: -1 + enum Mode + { + Recommended = 0, + Custom = 1 + } + + // Set the current mode index to the value that is stored in the preferences or Recommended mode otherwise. + property int currentModeIndex: + { + var index = Math.round(UM.Preferences.getValue("cura/active_mode")) + + if(index != null && !isNaN(index)) + { + return index + } + return PrintSetupSelectorContents.Mode.Recommended + } onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) + // Header of the popup Rectangle { @@ -93,7 +110,9 @@ Item Item { id: contents - height: currentModeIndex == 0 ? recommendedPrintSetup.height : customPrintSetup.height + // Use the visible property instead of checking the currentModeIndex. That creates a binding that + // evaluates the new height every time the visible property changes. + height: recommendedPrintSetup.visible ? recommendedPrintSetup.height : customPrintSetup.height anchors { @@ -111,7 +130,7 @@ Item right: parent.right top: parent.top } - visible: currentModeIndex == 0 + visible: currentModeIndex == PrintSetupSelectorContents.Mode.Recommended } CustomPrintSetup @@ -123,7 +142,7 @@ Item right: parent.right top: parent.top } - visible: currentModeIndex == 1 + visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom } } @@ -160,8 +179,8 @@ Item rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Recommended") iconSource: UM.Theme.getIcon("arrow_left") - visible: currentModeIndex == 1 - onClicked: currentModeIndex = 0 + visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom + onClicked: currentModeIndex = PrintSetupSelectorContents.Mode.Recommended } Cura.SecondaryButton @@ -174,22 +193,8 @@ Item text: catalog.i18nc("@button", "Custom") iconSource: UM.Theme.getIcon("arrow_right") iconOnRightSide: true - visible: currentModeIndex == 0 - onClicked: currentModeIndex = 1 - } - } - - Component.onCompleted: - { - var index = Math.round(UM.Preferences.getValue("cura/active_mode")) - - if(index != null && !isNaN(index)) - { - currentModeIndex = index - } - else - { - currentModeIndex = 0 + visible: currentModeIndex == PrintSetupSelectorContents.Mode.Recommended + onClicked: currentModeIndex = PrintSetupSelectorContents.Mode.Custom } } } \ No newline at end of file From e159cbdb1a8124ceac8c897d39a96556ba35da5a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 4 Dec 2018 13:14:12 +0100 Subject: [PATCH 0648/1039] Rename all the references from 'popup' to 'content' Contributes to CURA-5941. --- .../SimulationViewMenuComponent.qml | 2 +- resources/qml/ExpandableComponent.qml | 82 ++++++++++--------- .../QuickConfigurationSelector.qml | 2 +- .../PrintSetupSelector/PrintSetupSelector.qml | 8 +- .../qml/PrinterSelector/MachineSelector.qml | 6 +- resources/qml/ViewsSelector.qml | 6 +- 6 files changed, 57 insertions(+), 49 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 53b64afb47..a9eb157f48 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -45,7 +45,7 @@ Cura.ExpandableComponent verticalAlignment: Text.AlignVCenter } - popupItem: Column + contentItem: Column { id: viewSettings diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index df7604015e..0b4076c04a 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -6,40 +6,48 @@ import Cura 1.0 as Cura import QtGraphicalEffects 1.0 // For the dropshadow -// The expandable component has 3 major sub components: +// The expandable component has 2 major sub components: // * The headerItem; Always visible and should hold some info about what happens if the component is expanded -// * The popupItem; The content that needs to be shown if the component is expanded. -// * The icon; An icon that is displayed on the right of the drawer. +// * The contentItem; The content that needs to be shown if the component is expanded. Item { id: base - // Enumeration with the different possible alignments of the popup with respect of the headerItem - enum PopupAlignment + // Enumeration with the different possible alignments of the content with respect of the headerItem + enum ContentAlignment { AlignLeft, AlignRight } + enum ContentType + { + Floating, + Fixed + } + // The headerItem holds the QML item that is always displayed. property alias headerItem: headerItemLoader.sourceComponent - // The popupItem holds the QML item that is shown when the "open" button is pressed - property alias popupItem: popup.contentItem + // The contentItem holds the QML item that is shown when the "open" button is pressed + property alias contentItem: content.contentItem - property color popupBackgroundColor: UM.Theme.getColor("action_button") + // Defines the type of the contents + property int contentType: ExpandableComponent.ContentType.Floating + + property color contentBackgroundColor: UM.Theme.getColor("action_button") property color headerBackgroundColor: UM.Theme.getColor("action_button") property color headerHoverColor: UM.Theme.getColor("action_button_hovered") - // Defines the alignment of the popup with respect of the headerItem, by default to the right - property int popupAlignment: ExpandableComponent.PopupAlignment.AlignRight + // Defines the alignment of the content with respect of the headerItem, by default to the right + property int contentAlignment: ExpandableComponent.ContentAlignment.AlignRight - // How much spacing is needed around the popupItem - property alias popupPadding: popup.padding + // How much spacing is needed around the contentItem + property alias contentPadding: content.padding - // How much spacing is needed for the popupItem by Y coordinate - property var popupSpacingY: 0 + // How much spacing is needed for the contentItem by Y coordinate + property var contentSpacingY: 0 // How much padding is needed around the header & button property alias headerPadding: background.padding @@ -53,7 +61,7 @@ Item property alias iconSize: collapseButton.height // Is the "drawer" open? - readonly property alias expanded: popup.visible + readonly property alias expanded: content.visible property alias expandedHighlightColor: expandedHighlight.color @@ -63,8 +71,8 @@ Item // On what side should the header corners be shown? 1 is down, 2 is left, 3 is up and 4 is right. property alias headerCornerSide: background.cornerSide - // Change the popupItem close behaviour - property alias popupClosePolicy : popup.closePolicy + // Change the contentItem close behaviour + property alias contentClosePolicy : content.closePolicy property alias headerShadowColor: shadow.color @@ -72,15 +80,15 @@ Item property int shadowOffset: 2 - function togglePopup() + function toggleContent() { - if (popup.visible) + if (content.visible) { - popup.close() + content.close() } else { - popup.open() + content.open() } } @@ -108,7 +116,7 @@ Item } } - // A highlight that is shown when the popup is expanded + // A highlight that is shown when the content is expanded Rectangle { id: expandedHighlight @@ -140,7 +148,7 @@ Item { id: mouseArea anchors.fill: parent - onClicked: togglePopup() + onClicked: toggleContent() hoverEnabled: true onEntered: background.color = headerHoverColor onExited: background.color = headerBackgroundColor @@ -163,21 +171,21 @@ Item Popup { - id: popup + id: content - // Ensure that the popup is located directly below the headerItem - y: background.height + base.shadowOffset + popupSpacingY + // Ensure that the content is located directly below the headerItem + y: background.height + base.shadowOffset + base.contentSpacingY - // Make the popup aligned with the rest, using the property popupAlignment to decide whether is right or left. + // Make the content aligned with the rest, using the property contentAlignment to decide whether is right or left. // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. - x: popupAlignment == ExpandableComponent.PopupAlignment.AlignRight ? -width + collapseButton.width + headerItemLoader.width + 3 * background.padding : 0 + x: contentAlignment == ExpandableComponent.ContentAlignment.AlignRight ? -width + collapseButton.width + headerItemLoader.width + 3 * background.padding : 0 padding: UM.Theme.getSize("default_margin").width closePolicy: Popup.CloseOnPressOutsideParent background: Cura.RoundedRectangle { cornerSide: Cura.RoundedRectangle.Direction.Down - color: popupBackgroundColor + color: contentBackgroundColor border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") radius: UM.Theme.getSize("default_radius").width @@ -187,20 +195,20 @@ Item onContentItemChanged: { - // Since we want the size of the popup to be set by the size of the content, + // Since we want the size of the content to be set by the size of the content, // we need to do it like this. - popup.width = contentItem.width + 2 * popup.padding - popup.height = contentItem.height + 2 * popup.padding + content.width = contentItem.width + 2 * content.padding + content.height = contentItem.height + 2 * content.padding } } - // DO NOT MOVE UP IN THE CODE: This connection has to be here, after the definition of the Popup item. + // DO NOT MOVE UP IN THE CODE: This connection has to be here, after the definition of the content item. // Apparently the order in which these are handled matters and so the height is correctly updated if this is here. Connections { - // Since it could be that the popup is dynamically populated, we should also take these changes into account. - target: popup.contentItem - onWidthChanged: popup.width = popup.contentItem.width + 2 * popup.padding - onHeightChanged: popup.height = popup.contentItem.height + 2 * popup.padding + // Since it could be that the content is dynamically populated, we should also take these changes into account. + target: content.contentItem + onWidthChanged: content.width = content.contentItem.width + 2 * content.padding + onHeightChanged: content.height = content.contentItem.height + 2 * content.padding } } diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index eb6800cb36..de92161bbb 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -93,7 +93,7 @@ Cura.ExpandableComponent } } - popupItem: Item + contentItem: Item { width: base.width - 2 * UM.Theme.getSize("default_margin").width height: 200 diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index f1b424f7f2..78bdbde542 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -15,10 +15,10 @@ Cura.ExpandableComponent property string disabledText: catalog.i18nc("@label:Should be short", "Off") iconSource: UM.Theme.getIcon("pencil") - popupPadding: UM.Theme.getSize("default_lining").width - popupSpacingY: UM.Theme.getSize("narrow_margin").width + contentPadding: UM.Theme.getSize("default_lining").width + contentSpacingY: UM.Theme.getSize("narrow_margin").width - popupClosePolicy: Popup.CloseOnEscape + contentClosePolicy: Popup.CloseOnEscape UM.I18nCatalog { @@ -36,5 +36,5 @@ Cura.ExpandableComponent id: extrudersModel } - popupItem: PrintSetupSelectorContents {} + contentItem: PrintSetupSelectorContents {} } \ No newline at end of file diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 15cd773c90..f742d0bef3 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -15,8 +15,8 @@ Cura.ExpandableComponent property bool isPrinterConnected: Cura.MachineManager.printerConnected property var outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - popupPadding: UM.Theme.getSize("default_lining").width - popupAlignment: Cura.ExpandableComponent.PopupAlignment.AlignLeft + contentPadding: UM.Theme.getSize("default_lining").width + contentAlignment: Cura.ExpandableComponent.ContentAlignment.AlignLeft iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") UM.I18nCatalog @@ -80,7 +80,7 @@ Cura.ExpandableComponent } } - popupItem: Item + contentItem: Item { id: popup width: UM.Theme.getSize("machine_selector_widget_content").width diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index e9fdd57177..97de60689b 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -11,8 +11,8 @@ Cura.ExpandableComponent { id: viewSelector - popupPadding: UM.Theme.getSize("default_lining").width - popupAlignment: Cura.ExpandableComponent.PopupAlignment.AlignLeft + contentPadding: UM.Theme.getSize("default_lining").width + contentAlignment: Cura.ExpandableComponent.ContentAlignment.AlignLeft iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") property var viewModel: UM.ViewModel { } @@ -70,7 +70,7 @@ Cura.ExpandableComponent } } - popupItem: Column + contentItem: Column { id: viewSelectorPopup width: viewSelector.width - 2 * viewSelector.popupPadding From 4dcce7616bb8286c265a392ed21d62fabd10e6a7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 4 Dec 2018 13:21:26 +0100 Subject: [PATCH 0649/1039] Fix some leftover renamings Contributes to CURA-5941 --- resources/qml/Account/AccountDetails.qml | 4 ++-- resources/qml/ExpandableComponent.qml | 4 ++-- .../qml/PrintSetupSelector/PrintSetupSelectorContents.qml | 2 +- resources/qml/PrinterSelector/MachineSelector.qml | 4 ++-- resources/qml/PrinterSelector/MachineSelectorButton.qml | 2 +- resources/qml/ViewsSelector.qml | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index a288426e0c..bfb23930c6 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -13,8 +13,8 @@ Column property var loggedIn: false property var profileImage: "" - padding: 2 * UM.Theme.getSize("default_margin").height - spacing: 2 * UM.Theme.getSize("default_margin").height + padding: UM.Theme.getSize("wide_margin").height + spacing: UM.Theme.getSize("wide_margin").height AvatarImage { diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 0b4076c04a..89f6cf9f25 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -139,8 +139,8 @@ Item sourceSize.width: width sourceSize.height: height visible: source != "" - width: height - height: Math.round(0.2 * base.height) + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height color: UM.Theme.getColor("text") } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index a2856e1fe5..0524a6de9e 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -93,7 +93,7 @@ Item background: Item {} - onClicked: togglePopup() // Will hide the popup item + onClicked: toggleContent() // Will hide the popup item } } diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index f742d0bef3..49b4f87267 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -134,7 +134,7 @@ Cura.ExpandableComponent text: catalog.i18nc("@button", "Add printer") onClicked: { - togglePopup() + toggleContent() Cura.Actions.addMachine.trigger() } } @@ -146,7 +146,7 @@ Cura.ExpandableComponent text: catalog.i18nc("@button", "Manage printers") onClicked: { - togglePopup() + toggleContent() Cura.Actions.configureMachines.trigger() } } diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index 369e75cede..b88af35f82 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -83,7 +83,7 @@ Button onClicked: { - togglePopup() + toggleContent() Cura.MachineManager.setActiveMachine(model.id) } diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index 97de60689b..71a29e4949 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -120,7 +120,7 @@ Cura.ExpandableComponent onClicked: { - viewSelector.togglePopup() + toggleContent() UM.Controller.setActiveView(id) } } From 47ff95b1f3cfb793b2b4af6114aa1688e864d8a3 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 4 Dec 2018 13:53:11 +0100 Subject: [PATCH 0650/1039] Set contentType to the different expandable components. Also add a color for the active state when the contentType is 'Fixed'. Contributes to CURA-5941. --- .../SimulationViewMenuComponent.qml | 2 +- resources/qml/ExpandableComponent.qml | 28 +++++++++++-------- .../QuickConfigurationSelector.qml | 1 - .../PrintSetupSelector/PrintSetupSelector.qml | 2 +- .../qml/PrinterSelector/MachineSelector.qml | 1 - resources/qml/ViewsSelector.qml | 1 - 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index a9eb157f48..9dc3b67658 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -16,7 +16,7 @@ Cura.ExpandableComponent id: base width: UM.Theme.getSize("layerview_menu_size").width - iconSource: UM.Theme.getIcon("pencil") + contentType: Cura.ExpandableComponent.ContentType.Fixed Connections { diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 89f6cf9f25..f6e340c4ea 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -30,7 +30,7 @@ Item property alias headerItem: headerItemLoader.sourceComponent // The contentItem holds the QML item that is shown when the "open" button is pressed - property alias contentItem: content.contentItem + property var contentItem: content.contentItem // Defines the type of the contents property int contentType: ExpandableComponent.ContentType.Floating @@ -38,6 +38,7 @@ Item property color contentBackgroundColor: UM.Theme.getColor("action_button") property color headerBackgroundColor: UM.Theme.getColor("action_button") + property color headerActiveColor: UM.Theme.getColor("secondary") property color headerHoverColor: UM.Theme.getColor("action_button_hovered") // Defines the alignment of the content with respect of the headerItem, by default to the right @@ -123,7 +124,7 @@ Item width: parent.width height: UM.Theme.getSize("thick_lining").height color: UM.Theme.getColor("primary") - visible: expanded + visible: contentType == ExpandableComponent.ContentType.Floating && expanded anchors.bottom: parent.bottom } @@ -138,6 +139,9 @@ Item } sourceSize.width: width sourceSize.height: height + source: contentType == ExpandableComponent.ContentType.Floating ? + (expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left")) : + UM.Theme.getIcon("pencil") visible: source != "" width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height @@ -151,7 +155,8 @@ Item onClicked: toggleContent() hoverEnabled: true onEntered: background.color = headerHoverColor - onExited: background.color = headerBackgroundColor + onExited: background.color = (contentType == ExpandableComponent.ContentType.Fixed && expanded) ? + headerActiveColor : headerBackgroundColor } } @@ -190,16 +195,15 @@ Item border.color: UM.Theme.getColor("lining") radius: UM.Theme.getSize("default_radius").width } + } - contentItem: Item { } - - onContentItemChanged: - { - // Since we want the size of the content to be set by the size of the content, - // we need to do it like this. - content.width = contentItem.width + 2 * content.padding - content.height = contentItem.height + 2 * content.padding - } + onContentItemChanged: + { + // Since we want the size of the content to be set by the size of the content, + // we need to do it like this. + content.width = contentItem.width + 2 * content.padding + content.height = contentItem.height + 2 * content.padding + content.contentItem = contentItem } // DO NOT MOVE UP IN THE CODE: This connection has to be here, after the definition of the content item. diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index de92161bbb..ea82f4fe13 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -27,7 +27,6 @@ Cura.ExpandableComponent name: "cura" } - iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") headerItem: Item { // Horizontal list that shows the extruders diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 78bdbde542..0eea697950 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -14,7 +14,7 @@ Cura.ExpandableComponent property string enabledText: catalog.i18nc("@label:Should be short", "On") property string disabledText: catalog.i18nc("@label:Should be short", "Off") - iconSource: UM.Theme.getIcon("pencil") + contentType: Cura.ExpandableComponent.ContentType.Fixed contentPadding: UM.Theme.getSize("default_lining").width contentSpacingY: UM.Theme.getSize("narrow_margin").width diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 49b4f87267..69a1ac899c 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -17,7 +17,6 @@ Cura.ExpandableComponent contentPadding: UM.Theme.getSize("default_lining").width contentAlignment: Cura.ExpandableComponent.ContentAlignment.AlignLeft - iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") UM.I18nCatalog { diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index 71a29e4949..d469202606 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -13,7 +13,6 @@ Cura.ExpandableComponent contentPadding: UM.Theme.getSize("default_lining").width contentAlignment: Cura.ExpandableComponent.ContentAlignment.AlignLeft - iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") property var viewModel: UM.ViewModel { } From 82d8410d184d0727612158bf50e45a8b13ae31a9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 13:58:54 +0100 Subject: [PATCH 0651/1039] Don't emit enabledChanged signal if it didn't change Contributes to issue CURA-5876. --- cura/Settings/ExtruderStack.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index ed758db183..d626ef06da 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -52,6 +52,8 @@ class ExtruderStack(CuraContainerStack): return super().getNextStack() def setEnabled(self, enabled: bool) -> None: + if self.getMetaDataEntry("enabled", True) == enabled: #No change. + return #Don't emit a signal then. self.setMetaDataEntry("enabled", str(enabled)) self.enabledChanged.emit() From a1f579a5288a43dd48480f565ed8c2dd514f9b47 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:01:49 +0100 Subject: [PATCH 0652/1039] Improve wording of iconOnRightSide documentation Contributes to issue CURA-5876. --- resources/qml/ActionButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index cd0a264766..116253ab7a 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -43,7 +43,7 @@ Button contentItem: Row { - //Icon if displayed on the left side. + //Left side icon. Only displayed if !iconOnRightSide. UM.RecolorImage { id: buttonIconLeft @@ -71,7 +71,7 @@ Button elide: Text.ElideRight } - //Icon if displayed on the right side. + //Right side icon. Only displayed if iconOnRightSide. UM.RecolorImage { id: buttonIconRight From 801701623eedd41681c4caf31251b2cd4bf33f84 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:04:07 +0100 Subject: [PATCH 0653/1039] Remove unnecessary top anchor in first subitem of item It already gets aligned to the top anyway. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index 8e86549e17..58b6bac089 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -22,7 +22,6 @@ Item anchors { - top: parent.top left: parent.left right: parent.right } From 759b5b58476c3d2be6c0faf5118fc052f1d6bec8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:23:41 +0100 Subject: [PATCH 0654/1039] Use anchors rather than a calculation with padding It's supposed to be slightly more efficient. Contributes to issue CURA-5876. --- .../ConfigurationMenu/ConfigurationItem.qml | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 3ea220c91e..7ba7202819 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -34,7 +34,13 @@ Button { id: extruderRow - width: parent.width - 2 * parent.padding + anchors + { + left: parent.left + leftMargin: parent.padding + right: parent.right + rightMargin: parent.padding + } height: childrenRect.height spacing: UM.Theme.getSize("default_margin").width @@ -58,7 +64,13 @@ Button id: separator visible: buildplateInformation.visible - width: parent.width - 2 * parent.padding + anchors + { + left: parent.left + leftMargin: parent.padding + right: parent.right + rightMargin: parent.padding + } height: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 color: UM.Theme.getColor("text") } @@ -66,7 +78,14 @@ Button Item { id: buildplateInformation - width: parent.width - 2 * parent.padding + + anchors + { + left: parent.left + leftMargin: parent.padding + right: parent.right + rightMargin: parent.padding + } height: childrenRect.height visible: configuration.buildplateConfiguration != "" From 7cc1f021c1333fe962a2875167f6b1750bc238fb Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:25:58 +0100 Subject: [PATCH 0655/1039] Fix right-alignment of configuration items in list The scrollbar will go on top of it now, but it looks nicer if you don't scroll. Maybe we have to make it adaptable? Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 32be97f74e..5a9f72260c 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -27,7 +27,7 @@ Column ScrollView { id: container - width: parent.width - parent.padding + width: parent.width height: Math.min(configurationList.contentHeight, 350 * screenScaleFactor) ButtonGroup @@ -58,7 +58,7 @@ Column delegate: ConfigurationItem { - width: parent.width - UM.Theme.getSize("default_margin").width + width: parent.width configuration: modelData } } From 347240410ad1885d3dc237dc7f0db1f9e249671b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:35:28 +0100 Subject: [PATCH 0656/1039] Use enumeration to check and switch state of configuration menu Instead of a string. This is a bit more restrictive. Contributes to issue CURA-5876. --- .../ConfigurationMenu/ConfigurationMenu.qml | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 79b7c9bf66..1b7dfe30e4 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -28,6 +28,12 @@ Cura.ExpandableComponent name: "cura" } + enum ConfigurationMethod + { + AUTO, + CUSTOM + } + iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") headerItem: Item { @@ -108,7 +114,7 @@ Cura.ExpandableComponent is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected //Re-evaluate. } - property var configuration_method: is_connected ? "auto" : "custom" //Auto if connected to a printer at start-up, or Custom if not. + property int configuration_method: is_connected ? ConfigurationMenu.ConfigurationMethod.AUTO : ConfigurationMenu.ConfigurationMethod.CUSTOM //Auto if connected to a printer at start-up, or Custom if not. Item { @@ -117,13 +123,13 @@ Cura.ExpandableComponent AutoConfiguration { id: autoConfiguration - visible: popupItem.configuration_method === "auto" + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.AUTO } CustomConfiguration { id: customConfiguration - visible: popupItem.configuration_method === "custom" + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.CUSTOM } } @@ -150,7 +156,7 @@ Cura.ExpandableComponent Cura.SecondaryButton { id: goToCustom - visible: popupItem.configuration_method === "auto" + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.AUTO text: catalog.i18nc("@label", "Custom") anchors @@ -162,13 +168,13 @@ Cura.ExpandableComponent iconSource: UM.Theme.getIcon("arrow_right") iconOnRightSide: true - onClicked: popupItem.configuration_method = "custom" + onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.CUSTOM } Cura.SecondaryButton { id: goToAuto - visible: popupItem.configuration_method === "custom" + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.CUSTOM text: catalog.i18nc("@label", "Configurations") anchors @@ -179,7 +185,7 @@ Cura.ExpandableComponent iconSource: UM.Theme.getIcon("arrow_left") - onClicked: popupItem.configuration_method = "auto" + onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.AUTO } } } From 2dde2438b2a984e2dabf19edcb5164934e456050 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:38:13 +0100 Subject: [PATCH 0657/1039] Remove unnecessary anchors Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/ConfigurationMenu.qml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 1b7dfe30e4..a49fe5574f 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -159,11 +159,7 @@ Cura.ExpandableComponent visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.AUTO text: catalog.i18nc("@label", "Custom") - anchors - { - right: parent.right - top: parent.top - } + anchors.right: parent.right iconSource: UM.Theme.getIcon("arrow_right") iconOnRightSide: true @@ -177,12 +173,6 @@ Cura.ExpandableComponent visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.CUSTOM text: catalog.i18nc("@label", "Configurations") - anchors - { - left: parent.left - top: parent.top - } - iconSource: UM.Theme.getIcon("arrow_left") onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.AUTO From 023100f4c3690e564d26ddf4bd6ffece955d4c38 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 4 Dec 2018 14:39:08 +0100 Subject: [PATCH 0658/1039] Changed valueError property to bool instead of var A bit more specific. Contributes to issue CURA-5876. Co-Authored-By: Ghostkeeper --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 7ff47ea16f..e28478e9e2 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -181,7 +181,7 @@ Item { id: materialSelection - property var valueError: Cura.MachineManager.activeStack != null ? Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeStack.material.id, "compatible", "") != "True" : true + property bool valueError: Cura.MachineManager.activeStack != null ? Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeStack.material.id, "compatible", "") != "True" : true property var valueWarning: !Cura.MachineManager.isActiveQualitySupported text: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.material.name : "" @@ -232,4 +232,4 @@ Item } } } -} \ No newline at end of file +} From 8a257f018486a2d4cc22ae980ea4e8dd8e5ffc57 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 4 Dec 2018 14:39:39 +0100 Subject: [PATCH 0659/1039] Change valueWarning property to bool instead of var A bit more specific. Contributes to issue CURA-5876. Co-Authored-By: Ghostkeeper --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index e28478e9e2..72b640e94a 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -182,7 +182,7 @@ Item id: materialSelection property bool valueError: Cura.MachineManager.activeStack != null ? Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeStack.material.id, "compatible", "") != "True" : true - property var valueWarning: !Cura.MachineManager.isActiveQualitySupported + property bool valueWarning: !Cura.MachineManager.isActiveQualitySupported text: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.material.name : "" tooltip: text From ef29fb0cfaaf22ccd582ad238cbc3259894fb137 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:44:12 +0100 Subject: [PATCH 0660/1039] Remove unnecessary item wrapper Contributes to issue CURA-5876. --- .../ConfigurationMenu/PrintCoreConfiguration.qml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index 8d2f0c0f7c..4064a961d5 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -16,16 +16,11 @@ Row spacing: UM.Theme.getSize("default_margin").width //Extruder icon. - Item + Cura.ExtruderIcon { - width: childrenRect.width - height: information.height - Cura.ExtruderIcon - { - materialColor: printCoreConfiguration.material.color - anchors.verticalCenter: parent.verticalCenter - extruderEnabled: printCoreConfiguration.material.name !== "" && printCoreConfiguration.hotendID !== "" - } + materialColor: printCoreConfiguration.material.color + anchors.verticalCenter: parent.verticalCenter + extruderEnabled: printCoreConfiguration.material.name !== "" && printCoreConfiguration.hotendID !== "" } Column From 2fdfdaa00b4cc7cea04e754a25ad58f056d3d684 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 14:47:34 +0100 Subject: [PATCH 0661/1039] Rename iconOnRightSide to isIconOnRightSide More accurately represents the type of value that's in this property. Contributes to issue CURA-5876. --- resources/qml/ActionButton.qml | 10 +++++----- .../qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 116253ab7a..2107264dff 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -12,7 +12,7 @@ Button { id: button property alias iconSource: buttonIconLeft.source - property var iconOnRightSide: false + property bool isIconOnRightSide: false property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.text @@ -43,7 +43,7 @@ Button contentItem: Row { - //Left side icon. Only displayed if !iconOnRightSide. + //Left side icon. Only displayed if !isIconOnRightSide. UM.RecolorImage { id: buttonIconLeft @@ -53,7 +53,7 @@ Button sourceSize.width: width sourceSize.height: height color: button.hovered ? button.textHoverColor : button.textColor - visible: source != "" && !button.iconOnRightSide + visible: source != "" && !button.isIconOnRightSide anchors.verticalCenter: parent.verticalCenter } @@ -71,7 +71,7 @@ Button elide: Text.ElideRight } - //Right side icon. Only displayed if iconOnRightSide. + //Right side icon. Only displayed if isIconOnRightSide. UM.RecolorImage { id: buttonIconRight @@ -81,7 +81,7 @@ Button sourceSize.width: width sourceSize.height: height color: buttonIconLeft.color - visible: source != "" && button.iconOnRightSide + visible: source != "" && button.isIconOnRightSide anchors.verticalCenter: buttonIconLeft.verticalCenter } } diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index a49fe5574f..f81176ab1a 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -162,7 +162,7 @@ Cura.ExpandableComponent anchors.right: parent.right iconSource: UM.Theme.getIcon("arrow_right") - iconOnRightSide: true + isIconOnRightSide: true onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.CUSTOM } From 5b4fad3c08fe089bf216f91ac2ce889c4cc16e83 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 4 Dec 2018 14:54:15 +0100 Subject: [PATCH 0662/1039] When toggling auto-slice, force a re-slice CURA-5997 --- resources/qml/ActionPanel/SliceProcessWidget.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 14e149dddb..03d91db530 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -137,6 +137,10 @@ Column { var autoSlice = UM.Preferences.getValue("general/auto_slice") prepareButtons.autoSlice = autoSlice + if(autoSlice) + { + CuraApplication.backend.forceSlice() + } } } From 02e7f904734c3d0cae1a33f0a978d3c3aa088912 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 4 Dec 2018 15:02:24 +0100 Subject: [PATCH 0663/1039] Fix module importing in USBPrinting CURA-5943 --- plugins/USBPrinting/AutoDetectBaudJob.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/USBPrinting/AutoDetectBaudJob.py b/plugins/USBPrinting/AutoDetectBaudJob.py index 6f1af6727a..78de864e57 100644 --- a/plugins/USBPrinting/AutoDetectBaudJob.py +++ b/plugins/USBPrinting/AutoDetectBaudJob.py @@ -3,8 +3,8 @@ from UM.Job import Job from UM.Logger import Logger -from plugins.USBPrinting.avr_isp import ispBase +from .avr_isp import ispBase from .avr_isp.stk500v2 import Stk500v2 from time import time, sleep From 43096c1bafc0790bf265709d46eb1b88eb7445dc Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 4 Dec 2018 15:03:43 +0100 Subject: [PATCH 0664/1039] Update USBPrinting version to 1.0.1 CURA-5943 --- plugins/USBPrinting/plugin.json | 2 +- resources/bundled_packages/cura.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/USBPrinting/plugin.json b/plugins/USBPrinting/plugin.json index 3484c8a48a..5d3cba8415 100644 --- a/plugins/USBPrinting/plugin.json +++ b/plugins/USBPrinting/plugin.json @@ -1,7 +1,7 @@ { "name": "USB printing", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "api": 5, "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", "i18n-catalog": "cura" diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index ee82b17a75..d8a7df2478 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -515,7 +515,7 @@ "package_type": "plugin", "display_name": "USB Printing", "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", - "package_version": "1.0.0", + "package_version": "1.0.1", "sdk_version": 5, "website": "https://ultimaker.com", "author": { From 4d87c464237c4c92c2aa5dfd0c4909a94f49bf92 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 15:04:51 +0100 Subject: [PATCH 0665/1039] Remove sourceSize.width: width from all RecolorImages It is now the default in Uranium. Contributes to issue CURA-5876. --- plugins/ModelChecker/ModelChecker.qml | 1 - .../PerObjectSettingsPanel.qml | 1 - .../PostProcessingPlugin/PostProcessingPlugin.qml | 4 ---- plugins/PrepareStage/PrepareMenu.qml | 1 - .../resources/qml/ToolboxDownloadsGridTile.qml | 1 - .../resources/qml/ToolboxDownloadsShowcaseTile.qml | 2 -- resources/qml/ActionButton.qml | 4 ---- .../qml/ActionPanel/PrintInformationWidget.qml | 3 --- resources/qml/Dialogs/AboutDialog.qml | 2 -- resources/qml/Dialogs/AddMachineDialog.qml | 3 +-- resources/qml/ExpandableComponent.qml | 2 -- resources/qml/ExtruderIcon.qml | 3 --- resources/qml/IconLabel.qml | 3 --- resources/qml/IconWithText.qml | 2 -- resources/qml/JobSpecs.qml | 1 - resources/qml/MainWindow/MainWindowHeader.qml | 3 --- .../Menus/ConfigurationMenu/ConfigurationItem.qml | 2 -- resources/qml/ObjectsList.qml | 3 +-- .../Preferences/Materials/MaterialsBrandSection.qml | 5 ++--- .../qml/Preferences/Materials/MaterialsSlot.qml | 2 -- .../Preferences/Materials/MaterialsTypeSection.qml | 2 -- resources/qml/PrinterSelector/MachineSelector.qml | 3 --- resources/qml/Settings/SettingCategory.qml | 13 ++++++++----- resources/qml/Settings/SettingCheckBox.qml | 4 ++-- resources/qml/Settings/SettingView.qml | 11 ++++++----- resources/qml/SidebarSimple.qml | 1 - resources/themes/cura-light/styles.qml | 5 ----- 27 files changed, 20 insertions(+), 67 deletions(-) diff --git a/plugins/ModelChecker/ModelChecker.qml b/plugins/ModelChecker/ModelChecker.qml index 5e41591d6b..437df29516 100644 --- a/plugins/ModelChecker/ModelChecker.qml +++ b/plugins/ModelChecker/ModelChecker.qml @@ -33,7 +33,6 @@ Button { width: UM.Theme.getSize("save_button_specs_icons").width; height: UM.Theme.getSize("save_button_specs_icons").height; - sourceSize.width: width; sourceSize.height: width; color: control.hovered ? UM.Theme.getColor("text_scene_hover") : UM.Theme.getColor("text_scene"); source: "model_checker.svg" diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 5d4e17a102..0e2bd88619 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -265,7 +265,6 @@ Item { anchors.verticalCenter: parent.verticalCenter width: parent.width height: width - sourceSize.width: width sourceSize.height: width color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button") source: UM.Theme.getIcon("minus") diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index bd4d361d35..3fa10c23b9 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -141,7 +141,6 @@ UM.Dialog anchors.horizontalCenter: parent.horizontalCenter width: Math.round(control.width / 2.7) height: Math.round(control.height / 2.7) - sourceSize.width: width sourceSize.height: width color: palette.text source: UM.Theme.getIcon("cross1") @@ -176,7 +175,6 @@ UM.Dialog anchors.horizontalCenter: parent.horizontalCenter width: Math.round(control.width / 2.5) height: Math.round(control.height / 2.5) - sourceSize.width: width sourceSize.height: width color: control.enabled ? palette.text : disabledPalette.text source: UM.Theme.getIcon("arrow_bottom") @@ -211,7 +209,6 @@ UM.Dialog anchors.horizontalCenter: parent.horizontalCenter width: Math.round(control.width / 2.5) height: Math.round(control.height / 2.5) - sourceSize.width: width sourceSize.height: width color: control.enabled ? palette.text : disabledPalette.text source: UM.Theme.getIcon("arrow_top") @@ -498,7 +495,6 @@ UM.Dialog anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2) height: Math.round(parent.height / 2) - sourceSize.width: width sourceSize.height: height color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") : control.pressed ? UM.Theme.getColor("action_button_active_text") : diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index abfe3080c2..fa94bc88b2 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -107,7 +107,6 @@ Item height: UM.Theme.getSize("button_icon").height color: UM.Theme.getColor("toolbar_button_text") - sourceSize.width: width sourceSize.height: height } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index be44c0f374..61374f9d99 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -52,7 +52,6 @@ Item bottom: parent.bottom right: parent.right } - sourceSize.width: width sourceSize.height: height visible: installedPackages != 0 color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index 4fb70541d2..8a2fdc8bc8 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml @@ -48,8 +48,6 @@ Rectangle right: parent.right bottomMargin: UM.Theme.getSize("default_lining").width } - sourceSize.width: width - sourceSize.height: height visible: installedPackages != 0 color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") source: "../images/installed_check.svg" diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 2107264dff..54d77f7d59 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -50,8 +50,6 @@ Button source: "" height: buttonText.height width: visible ? height : 0 - sourceSize.width: width - sourceSize.height: height color: button.hovered ? button.textHoverColor : button.textColor visible: source != "" && !button.isIconOnRightSide anchors.verticalCenter: parent.verticalCenter @@ -78,8 +76,6 @@ Button source: buttonIconLeft.source height: buttonText.height width: visible ? height : 0 - sourceSize.width: width - sourceSize.height: height color: buttonIconLeft.color visible: source != "" && button.isIconOnRightSide anchors.verticalCenter: buttonIconLeft.verticalCenter diff --git a/resources/qml/ActionPanel/PrintInformationWidget.qml b/resources/qml/ActionPanel/PrintInformationWidget.qml index 82707576e0..436649c4e1 100644 --- a/resources/qml/ActionPanel/PrintInformationWidget.qml +++ b/resources/qml/ActionPanel/PrintInformationWidget.qml @@ -18,9 +18,6 @@ UM.RecolorImage width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - sourceSize.width: width - sourceSize.height: height - color: popup.opened ? UM.Theme.getColor("primary") : UM.Theme.getColor("text_medium") MouseArea diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index 25c9bbf74b..94eca4e7c0 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -39,8 +39,6 @@ UM.Dialog source: UM.Theme.getImage("logo") - sourceSize.width: width - sourceSize.height: height anchors.top: parent.top anchors.topMargin: ((base.minimumWidth - width) / 2) | 0 anchors.horizontalCenter: parent.horizontalCenter diff --git a/resources/qml/Dialogs/AddMachineDialog.qml b/resources/qml/Dialogs/AddMachineDialog.qml index 918c717b94..f00359869c 100644 --- a/resources/qml/Dialogs/AddMachineDialog.qml +++ b/resources/qml/Dialogs/AddMachineDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -156,7 +156,6 @@ UM.Dialog anchors.rightMargin: UM.Theme.getSize("default_margin").width width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width sourceSize.height: width color: palette.windowText source: base.activeCategory == section ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right") diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index b438f0398c..9bedaa940c 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -139,8 +139,6 @@ Item verticalCenter: parent.verticalCenter margins: background.padding } - sourceSize.width: width - sourceSize.height: height visible: source != "" width: height height: Math.round(0.2 * base.height) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 742c2a9dfe..49ad73a32e 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -22,8 +22,6 @@ Item id: mainIcon anchors.fill: parent - sourceSize.width: parent.width - sourceSize.height: parent.height source: UM.Theme.getIcon("extruder_button") color: extruderEnabled ? materialColor: "gray" } @@ -64,7 +62,6 @@ Item id: disabledIcon anchors.fill: parent anchors.margins: UM.Theme.getSize("thick_lining").width - sourceSize.width: width sourceSize.height: width source: UM.Theme.getIcon("cross1") visible: !extruderEnabled diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml index 386ed0ae01..f925b6eab5 100644 --- a/resources/qml/IconLabel.qml +++ b/resources/qml/IconLabel.qml @@ -31,9 +31,6 @@ Item width: UM.Theme.getSize("section_icon").width height: width - sourceSize.width: width - sourceSize.height: height - color: label.color visible: source != "" } diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index dcb3ef7851..22599b3aed 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -37,8 +37,6 @@ Item width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - sourceSize.width: width - sourceSize.height: height color: "black" anchors diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 717d6e925b..935cb723de 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -60,7 +60,6 @@ Item { { width: UM.Theme.getSize("save_button_specs_icons").width; height: UM.Theme.getSize("save_button_specs_icons").height; - sourceSize.width: width; sourceSize.height: width; color: control.hovered ? UM.Theme.getColor("text_scene_hover") : UM.Theme.getColor("text_scene"); source: UM.Theme.getIcon("pencil"); diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 34936e9b5a..fa0594e2ae 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -54,9 +54,6 @@ Rectangle source: UM.Theme.getImage("logo") width: UM.Theme.getSize("logo").width height: UM.Theme.getSize("logo").height - - sourceSize.width: width - sourceSize.height: height } Row diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 7ba7202819..4a17e8eed8 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -95,8 +95,6 @@ Button anchors.left: parent.left width: UM.Theme.getSize("main_window_header_button_icon").width height: UM.Theme.getSize("main_window_header_button_icon").height - sourceSize.width: width - sourceSize.height: height source: UM.Theme.getIcon("buildplate") color: UM.Theme.getColor("text") } diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 8c8eaa16ae..8f45b3744f 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2017 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -55,7 +55,6 @@ Rectangle { width: control.width height: control.height - sourceSize.width: width sourceSize.height: width color: UM.Theme.getColor("setting_control_text") source: collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") diff --git a/resources/qml/Preferences/Materials/MaterialsBrandSection.qml b/resources/qml/Preferences/Materials/MaterialsBrandSection.qml index c8f391dfb0..a3a0e4708f 100644 --- a/resources/qml/Preferences/Materials/MaterialsBrandSection.qml +++ b/resources/qml/Preferences/Materials/MaterialsBrandSection.qml @@ -55,7 +55,8 @@ Rectangle text: "" implicitWidth: UM.Theme.getSize("favorites_button").width implicitHeight: UM.Theme.getSize("favorites_button").height - UM.RecolorImage { + UM.RecolorImage + { anchors { verticalCenter: parent.verticalCenter @@ -63,8 +64,6 @@ Rectangle } width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: height color: "black" source: brand_section.expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") } diff --git a/resources/qml/Preferences/Materials/MaterialsSlot.qml b/resources/qml/Preferences/Materials/MaterialsSlot.qml index a5af17f47a..a706aaf2b9 100644 --- a/resources/qml/Preferences/Materials/MaterialsSlot.qml +++ b/resources/qml/Preferences/Materials/MaterialsSlot.qml @@ -95,8 +95,6 @@ Rectangle } width: UM.Theme.getSize("favorites_button_icon").width height: UM.Theme.getSize("favorites_button_icon").height - sourceSize.width: width - sourceSize.height: height color: { if (favorite_button.hovered) diff --git a/resources/qml/Preferences/Materials/MaterialsTypeSection.qml b/resources/qml/Preferences/Materials/MaterialsTypeSection.qml index f62fc4ee16..f98c19e0b3 100644 --- a/resources/qml/Preferences/Materials/MaterialsTypeSection.qml +++ b/resources/qml/Preferences/Materials/MaterialsTypeSection.qml @@ -74,8 +74,6 @@ Rectangle } width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width - sourceSize.height: height color: "black" source: material_type_section.expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") } diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 15cd773c90..91b5591cd8 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -59,9 +59,6 @@ Cura.ExpandableComponent width: UM.Theme.getSize("printer_status_icon").width height: UM.Theme.getSize("printer_status_icon").height - sourceSize.width: width - sourceSize.height: height - color: UM.Theme.getColor("primary") visible: isNetworkPrinter && isPrinterConnected diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index aafe36c546..196b2d6b97 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -129,23 +129,26 @@ Button anchors.rightMargin: UM.Theme.getSize("default_margin").width width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width sourceSize.height: width color: { if (!base.enabled) { return UM.Theme.getColor("setting_category_disabled_text") - } else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) + } + else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) { return UM.Theme.getColor("setting_category_active_hover_text") - } else if (base.pressed || (base.checkable && base.checked)) + } + else if (base.pressed || (base.checkable && base.checked)) { return UM.Theme.getColor("setting_category_active_text") - } else if (base.hovered || base.activeFocus) + } + else if (base.hovered || base.activeFocus) { return UM.Theme.getColor("setting_category_hover_text") - } else + } + else { return UM.Theme.getColor("setting_category_text") } diff --git a/resources/qml/Settings/SettingCheckBox.qml b/resources/qml/Settings/SettingCheckBox.qml index d37754d27c..fb2d5a2f4d 100644 --- a/resources/qml/Settings/SettingCheckBox.qml +++ b/resources/qml/Settings/SettingCheckBox.qml @@ -115,12 +115,12 @@ SettingItem return UM.Theme.getColor("setting_control_border") } - UM.RecolorImage { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2.5) height: Math.round(parent.height / 2.5) - sourceSize.width: width sourceSize.height: width color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text"); source: UM.Theme.getIcon("check") diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index ef1f123953..bb624bcbde 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2017 Ultimaker B.V. -// Uranium is released under the terms of the LGPLv3 or higher. +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 import QtQuick.Controls 1.1 @@ -129,13 +129,14 @@ Item } style: ButtonStyle { - background: Item { - UM.RecolorImage { + background: Item + { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - sourceSize.width: width sourceSize.height: width color: control.enabled ? UM.Theme.getColor("setting_category_text") : UM.Theme.getColor("setting_category_disabled_text") source: UM.Theme.getIcon("menu") diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index e07810691e..fb4d52979d 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -731,7 +731,6 @@ Item { anchors.fill: parent anchors.margins: 2 * screenScaleFactor - sourceSize.width: width sourceSize.height: width source: UM.Theme.getIcon(model.icon) color: UM.Theme.getColor("quality_slider_unavailable") diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 90344d4644..aaa8ec18f1 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -73,7 +73,6 @@ QtObject anchors.rightMargin: Theme.getSize("default_margin").width width: Theme.getSize("standard_arrow").width height: Theme.getSize("standard_arrow").height - sourceSize.width: width sourceSize.height: width color: control.enabled ? Theme.getColor("setting_category_text") : Theme.getColor("setting_category_disabled_text") source: Theme.getIcon("arrow_bottom") @@ -257,7 +256,6 @@ QtObject anchors.bottomMargin: Theme.getSize("button").height - Math.round(Theme.getSize("button_icon").height / 4) width: Theme.getSize("standard_arrow").width height: Theme.getSize("standard_arrow").height - sourceSize.width: width sourceSize.height: width visible: control.menu != null; color: @@ -543,7 +541,6 @@ QtObject anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2.5) height: Math.round(parent.height / 2.5) - sourceSize.width: width sourceSize.height: width color: Theme.getColor("checkbox_mark") source: control.exclusiveGroup ? Theme.getIcon("dot") : Theme.getIcon("check") @@ -585,7 +582,6 @@ QtObject anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2.5) height: Math.round(parent.height / 2.5) - sourceSize.width: width sourceSize.height: width color: Theme.getColor("checkbox_mark") source: @@ -836,7 +832,6 @@ QtObject anchors.horizontalCenter: parent.horizontalCenter width: Math.floor(control.width / 2) height: Math.floor(control.height / 2) - sourceSize.width: width sourceSize.height: width color: { From ebb31409b80fe94db4d5638ef9244bdb6599fe1f Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 4 Dec 2018 15:10:31 +0100 Subject: [PATCH 0666/1039] Always return a string for preview icon Contributes to CL-1153 --- .../UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index b6b666cbf3..2043837ff6 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -69,7 +69,7 @@ Item { return "../svg/aborted-icon.svg" } - break; + return ""; case "pausing": return "../svg/paused-icon.svg" case "paused": From 1494daf6712cc9d028799d3fa115ec9e8f4f4b8c Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 4 Dec 2018 15:11:31 +0100 Subject: [PATCH 0667/1039] Simplify preview icon logic Contributes to CL-1153 --- .../resources/qml/MonitorPrintJobPreview.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index 2043837ff6..84d325aa32 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -65,11 +65,7 @@ Item case "error": return "../svg/aborted-icon.svg" case "wait_cleanup": - if (printJob.state == "wait_cleanup" && printJob.timeTotal > printJob.timeElapsed) - { - return "../svg/aborted-icon.svg" - } - return ""; + return printJob.timeTotal > printJob.timeElapsed ? "../svg/aborted-icon.svg" : ""; case "pausing": return "../svg/paused-icon.svg" case "paused": From 014a138fda4fbd4776c0751b21ce2549cf5da1c8 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 4 Dec 2018 15:12:00 +0100 Subject: [PATCH 0668/1039] Remove semi-colon Contributes to CL-1153 --- .../UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index 84d325aa32..ec26bbe568 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -65,7 +65,7 @@ Item case "error": return "../svg/aborted-icon.svg" case "wait_cleanup": - return printJob.timeTotal > printJob.timeElapsed ? "../svg/aborted-icon.svg" : ""; + return printJob.timeTotal > printJob.timeElapsed ? "../svg/aborted-icon.svg" : "" case "pausing": return "../svg/paused-icon.svg" case "paused": From b2238420fb2ee25d979bba5ef7015462298d340b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 4 Dec 2018 15:46:13 +0100 Subject: [PATCH 0669/1039] Ensure that reset always correctly gets set to basic The old code that simply resetted the preferences was still active, but this could cause a race condition in some situations. In those cases it would first set it to basic and then clear the preferences (thus resulting in no settings being visible) CURA-5981 --- resources/qml/Preferences/SettingVisibilityPage.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index 1b964cad0c..2edbeee960 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -25,11 +25,7 @@ UM.PreferencesPage function reset() { - UM.Preferences.resetPreference("general/visible_settings") - - // After calling this function update Setting visibility preset combobox. - // Reset should set default setting preset ("Basic") - visibilityPreset.currentIndex = 1 + settingVisibilityPresetsModel.setActivePreset("basic") } resetEnabled: true; From de78c44461d89061a5110d30d3b93066dc07bfc1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 16:43:13 +0100 Subject: [PATCH 0670/1039] Fix configuration drop-down for dark theme This actually changes the secondary colour to be darker for the dark theme, to be more in line with the general theme then. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 1 + resources/themes/cura-dark/theme.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 72b640e94a..fe2bf34e35 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -90,6 +90,7 @@ Item radius: tabBar.visible ? UM.Theme.getSize("default_radius").width : 0 border.width: tabBar.visible ? UM.Theme.getSize("default_lining").width : 0 border.color: UM.Theme.getColor("lining") + color: UM.Theme.getColor("main_background") //Remove rounding and lining at the top. Rectangle diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 078f04db1a..d9ef74ebb9 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -15,7 +15,7 @@ "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 204], "border": [127, 127, 127, 255], - "secondary": [241, 242, 242, 255], + "secondary": [95, 95, 95, 255], "main_window_header_button_text_inactive": [128, 128, 128, 255], "main_window_header_button_text_hovered": [255, 255, 255, 255], From 1544ab6cf0b5b5a746e2084dffce2da7a3172067 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 17:07:59 +0100 Subject: [PATCH 0671/1039] Explicitly enable hover on ConfigurationItem Apparently the default for this depends on some system setting. In Nallath's computer that system setting makes it false by default for some reason. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 4a17e8eed8..af2712be44 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -12,6 +12,7 @@ Button id: configurationItem property var configuration: null + hoverEnabled: true height: childrenRect.height From 780e5e16917192e8f639142e1058f399a5e291f5 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 4 Dec 2018 17:09:55 +0100 Subject: [PATCH 0672/1039] Fix binding loop in PrintCoreConfiguration Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index 4064a961d5..885f02d740 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -12,7 +12,7 @@ Row id: extruderInfo property var printCoreConfiguration - height: childrenRect.height + height: information.height spacing: UM.Theme.getSize("default_margin").width //Extruder icon. From 4ff5e43a28f3fd7479cd60defa7935f74c2f5729 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 4 Dec 2018 17:24:48 +0100 Subject: [PATCH 0673/1039] Handle Empty and Unknown material cases CURA-5982 --- plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 1e0f538d8d..e31229680c 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -608,14 +608,15 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): def _createMaterialOutputModel(self, material_data: Dict[str, Any]) -> "MaterialOutputModel": material_manager = CuraApplication.getInstance().getMaterialManager() material_group_list = material_manager.getMaterialGroupListByGUID(material_data["guid"]) - # This can happen if the connected machine has no material in one or more extruders, so we should return an - # "empty" material model. + # This can happen if the connected machine has no material in one or more extruders (if GUID is empty), or the + # material is unknown to Cura, so we should return an "empty" or "unknown" material model. if material_group_list is None: + material_name = "Empty" if len(material_data["guid"]) == 0 else "Unknown" return MaterialOutputModel(guid = material_data["guid"], type = material_data.get("type", ""), color = material_data.get("color", ""), brand = material_data.get("brand", ""), - name = material_data.get("name", "Empty") + name = material_data.get("name", material_name) ) # Sort the material groups by "is_read_only = True" first, and then the name alphabetically. From a62da4e5239b2f29d66d261d5405aa3e35f3f6d0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 09:13:48 +0100 Subject: [PATCH 0674/1039] Use setCurrentIndex instead of direct assignment This should prevent the binding from breaking and hopefully the segfault CURA-5876 --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index fe2bf34e35..2667c837ba 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -76,7 +76,7 @@ Item target: repeater.model onModelChanged: { - tabBar.currentIndex = Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) + tabBar.setCurrentIndex(Cura.ExtruderManager.activeExtruderIndex) } } } From cdb8020029bec6ee1c6c4224ff5cb02159dd810e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 5 Dec 2018 09:39:04 +0100 Subject: [PATCH 0675/1039] Add another expandable component Use one of them if the drop-panel has to act as a Popup and the other if it has to act as a standard component. Contributes to CURA-5941. --- .../SimulationViewMenuComponent.qml | 1 - resources/qml/ExpandableComponent.qml | 66 ++---- resources/qml/ExpandablePopup.qml | 204 ++++++++++++++++++ .../QuickConfigurationSelector.qml | 2 +- .../PrintSetupSelector/PrintSetupSelector.qml | 4 - .../qml/PrinterSelector/MachineSelector.qml | 4 +- resources/qml/ViewsSelector.qml | 8 +- 7 files changed, 227 insertions(+), 62 deletions(-) create mode 100644 resources/qml/ExpandablePopup.qml diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 9dc3b67658..76875a035d 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -16,7 +16,6 @@ Cura.ExpandableComponent id: base width: UM.Theme.getSize("layerview_menu_size").width - contentType: Cura.ExpandableComponent.ContentType.Fixed Connections { diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index f6e340c4ea..4f4848ea8b 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -20,20 +20,11 @@ Item AlignRight } - enum ContentType - { - Floating, - Fixed - } - // The headerItem holds the QML item that is always displayed. property alias headerItem: headerItemLoader.sourceComponent // The contentItem holds the QML item that is shown when the "open" button is pressed - property var contentItem: content.contentItem - - // Defines the type of the contents - property int contentType: ExpandableComponent.ContentType.Floating + property alias contentItem: content.contentItem property color contentBackgroundColor: UM.Theme.getColor("action_button") @@ -48,7 +39,7 @@ Item property alias contentPadding: content.padding // How much spacing is needed for the contentItem by Y coordinate - property var contentSpacingY: 0 + property var contentSpacingY: UM.Theme.getSize("narrow_margin").width // How much padding is needed around the header & button property alias headerPadding: background.padding @@ -64,17 +55,12 @@ Item // Is the "drawer" open? readonly property alias expanded: content.visible - property alias expandedHighlightColor: expandedHighlight.color - // What should the radius of the header be. This is also influenced by the headerCornerSide property alias headerRadius: background.radius // On what side should the header corners be shown? 1 is down, 2 is left, 3 is up and 4 is right. property alias headerCornerSide: background.cornerSide - // Change the contentItem close behaviour - property alias contentClosePolicy : content.closePolicy - property alias headerShadowColor: shadow.color property alias enableHeaderShadow: shadow.visible @@ -83,14 +69,7 @@ Item function toggleContent() { - if (content.visible) - { - content.close() - } - else - { - content.open() - } + content.visible = !content.visible } implicitHeight: 100 * screenScaleFactor @@ -117,17 +96,6 @@ Item } } - // A highlight that is shown when the content is expanded - Rectangle - { - id: expandedHighlight - width: parent.width - height: UM.Theme.getSize("thick_lining").height - color: UM.Theme.getColor("primary") - visible: contentType == ExpandableComponent.ContentType.Floating && expanded - anchors.bottom: parent.bottom - } - UM.RecolorImage { id: collapseButton @@ -139,9 +107,7 @@ Item } sourceSize.width: width sourceSize.height: height - source: contentType == ExpandableComponent.ContentType.Floating ? - (expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left")) : - UM.Theme.getIcon("pencil") + source: UM.Theme.getIcon("pencil") visible: source != "" width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height @@ -155,8 +121,7 @@ Item onClicked: toggleContent() hoverEnabled: true onEntered: background.color = headerHoverColor - onExited: background.color = (contentType == ExpandableComponent.ContentType.Fixed && expanded) ? - headerActiveColor : headerBackgroundColor + onExited: background.color = expanded ? headerActiveColor : headerBackgroundColor } } @@ -174,9 +139,10 @@ Item z: background.z - 1 } - Popup + Control { id: content + visible: false // Ensure that the content is located directly below the headerItem y: background.height + base.shadowOffset + base.contentSpacingY @@ -185,7 +151,6 @@ Item // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. x: contentAlignment == ExpandableComponent.ContentAlignment.AlignRight ? -width + collapseButton.width + headerItemLoader.width + 3 * background.padding : 0 padding: UM.Theme.getSize("default_margin").width - closePolicy: Popup.CloseOnPressOutsideParent background: Cura.RoundedRectangle { @@ -195,15 +160,16 @@ Item border.color: UM.Theme.getColor("lining") radius: UM.Theme.getSize("default_radius").width } - } - onContentItemChanged: - { - // Since we want the size of the content to be set by the size of the content, - // we need to do it like this. - content.width = contentItem.width + 2 * content.padding - content.height = contentItem.height + 2 * content.padding - content.contentItem = contentItem + contentItem: Item {} + + onContentItemChanged: + { + // Since we want the size of the content to be set by the size of the content, + // we need to do it like this. + content.width = contentItem.width + 2 * content.padding + content.height = contentItem.height + 2 * content.padding + } } // DO NOT MOVE UP IN THE CODE: This connection has to be here, after the definition of the content item. diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml new file mode 100644 index 0000000000..da79d9b77b --- /dev/null +++ b/resources/qml/ExpandablePopup.qml @@ -0,0 +1,204 @@ +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +import QtGraphicalEffects 1.0 // For the dropshadow + +// The expandable component has 2 major sub components: +// * The headerItem; Always visible and should hold some info about what happens if the component is expanded +// * The contentItem; The content that needs to be shown if the component is expanded. +Item +{ + id: base + + // Enumeration with the different possible alignments of the content with respect of the headerItem + enum ContentAlignment + { + AlignLeft, + AlignRight + } + + // The headerItem holds the QML item that is always displayed. + property alias headerItem: headerItemLoader.sourceComponent + + // The contentItem holds the QML item that is shown when the "open" button is pressed + property alias contentItem: content.contentItem + + property color contentBackgroundColor: UM.Theme.getColor("action_button") + + property color headerBackgroundColor: UM.Theme.getColor("action_button") + property color headerActiveColor: UM.Theme.getColor("secondary") + property color headerHoverColor: UM.Theme.getColor("action_button_hovered") + + // Defines the alignment of the content with respect of the headerItem, by default to the right + property int contentAlignment: ExpandablePopup.ContentAlignment.AlignRight + + // How much spacing is needed around the contentItem + property alias contentPadding: content.padding + + // How much padding is needed around the header & button + property alias headerPadding: background.padding + + // What icon should be displayed on the right. + property alias iconSource: collapseButton.source + + property alias iconColor: collapseButton.color + + // The icon size (it's always drawn as a square) + property alias iconSize: collapseButton.height + + // Is the "drawer" open? + readonly property alias expanded: content.visible + + property alias expandedHighlightColor: expandedHighlight.color + + // What should the radius of the header be. This is also influenced by the headerCornerSide + property alias headerRadius: background.radius + + // On what side should the header corners be shown? 1 is down, 2 is left, 3 is up and 4 is right. + property alias headerCornerSide: background.cornerSide + + // Change the contentItem close behaviour + property alias contentClosePolicy : content.closePolicy + + property alias headerShadowColor: shadow.color + + property alias enableHeaderShadow: shadow.visible + + property int shadowOffset: 2 + + function toggleContent() + { + if (content.visible) + { + content.close() + } + else + { + content.open() + } + } + + implicitHeight: 100 * screenScaleFactor + implicitWidth: 400 * screenScaleFactor + + RoundedRectangle + { + id: background + property real padding: UM.Theme.getSize("default_margin").width + + color: headerBackgroundColor + anchors.fill: parent + + Loader + { + id: headerItemLoader + anchors + { + left: parent.left + right: collapseButton.visible ? collapseButton.left : parent.right + top: parent.top + bottom: parent.bottom + margins: background.padding + } + } + + // A highlight that is shown when the content is expanded + Rectangle + { + id: expandedHighlight + width: parent.width + height: UM.Theme.getSize("thick_lining").height + color: UM.Theme.getColor("primary") + visible: expanded + anchors.bottom: parent.bottom + } + + UM.RecolorImage + { + id: collapseButton + anchors + { + right: parent.right + verticalCenter: parent.verticalCenter + margins: background.padding + } + sourceSize.width: width + sourceSize.height: height + source: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") + visible: source != "" + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + color: UM.Theme.getColor("text") + } + + MouseArea + { + id: mouseArea + anchors.fill: parent + onClicked: toggleContent() + hoverEnabled: true + onEntered: background.color = headerHoverColor + onExited: background.color = headerBackgroundColor + } + } + + DropShadow + { + id: shadow + // Don't blur the shadow + radius: 0 + anchors.fill: background + source: background + verticalOffset: base.shadowOffset + visible: true + color: UM.Theme.getColor("action_button_shadow") + // Should always be drawn behind the background. + z: background.z - 1 + } + + Popup + { + id: content + + // Ensure that the content is located directly below the headerItem + y: background.height + base.shadowOffset + + // Make the content aligned with the rest, using the property contentAlignment to decide whether is right or left. + // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. + x: contentAlignment == ExpandablePopup.ContentAlignment.AlignRight ? -width + collapseButton.width + headerItemLoader.width + 3 * background.padding : 0 + padding: UM.Theme.getSize("default_margin").width + closePolicy: Popup.CloseOnPressOutsideParent + + background: Cura.RoundedRectangle + { + cornerSide: Cura.RoundedRectangle.Direction.Down + color: contentBackgroundColor + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + radius: UM.Theme.getSize("default_radius").width + } + + contentItem: Item {} + + onContentItemChanged: + { + // Since we want the size of the content to be set by the size of the content, + // we need to do it like this. + content.width = contentItem.width + 2 * content.padding + content.height = contentItem.height + 2 * content.padding + } + } + + // DO NOT MOVE UP IN THE CODE: This connection has to be here, after the definition of the content item. + // Apparently the order in which these are handled matters and so the height is correctly updated if this is here. + Connections + { + // Since it could be that the content is dynamically populated, we should also take these changes into account. + target: content.contentItem + onWidthChanged: content.width = content.contentItem.width + 2 * content.padding + onHeightChanged: content.height = content.contentItem.height + 2 * content.padding + } +} diff --git a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml index ea82f4fe13..138a1d6669 100644 --- a/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml +++ b/resources/qml/Menus/ConfigurationMenu/QuickConfigurationSelector.qml @@ -12,7 +12,7 @@ import UM 1.2 as UM import Cura 1.0 as Cura -Cura.ExpandableComponent +Cura.ExpandablePopup { id: base diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 0eea697950..19c8067683 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -14,11 +14,7 @@ Cura.ExpandableComponent property string enabledText: catalog.i18nc("@label:Should be short", "On") property string disabledText: catalog.i18nc("@label:Should be short", "Off") - contentType: Cura.ExpandableComponent.ContentType.Fixed contentPadding: UM.Theme.getSize("default_lining").width - contentSpacingY: UM.Theme.getSize("narrow_margin").width - - contentClosePolicy: Popup.CloseOnEscape UM.I18nCatalog { diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 69a1ac899c..ef766b6030 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -7,7 +7,7 @@ import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura -Cura.ExpandableComponent +Cura.ExpandablePopup { id: machineSelector @@ -16,7 +16,7 @@ Cura.ExpandableComponent property var outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null contentPadding: UM.Theme.getSize("default_lining").width - contentAlignment: Cura.ExpandableComponent.ContentAlignment.AlignLeft + contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft UM.I18nCatalog { diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index d469202606..18d1f66759 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -7,12 +7,12 @@ import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura -Cura.ExpandableComponent +Cura.ExpandablePopup { id: viewSelector contentPadding: UM.Theme.getSize("default_lining").width - contentAlignment: Cura.ExpandableComponent.ContentAlignment.AlignLeft + contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft property var viewModel: UM.ViewModel { } @@ -72,13 +72,13 @@ Cura.ExpandableComponent contentItem: Column { id: viewSelectorPopup - width: viewSelector.width - 2 * viewSelector.popupPadding + width: viewSelector.width - 2 * viewSelector.contentPadding // For some reason the height/width of the column gets set to 0 if this is not set... Component.onCompleted: { height = implicitHeight - width = viewSelector.width - 2 * viewSelector.popupPadding + width = viewSelector.width - 2 * viewSelector.contentPadding } Repeater From 5d95d1143762a72e7cfe9c384c9d5752f6b888c2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 5 Dec 2018 09:52:43 +0100 Subject: [PATCH 0676/1039] Use setCurrentIndex to switch tabs at activeExtruderChanged This fixes a mysterious segfault. We still don't know why the segfault occurred though. All we know is that QML logs something about a binding loop on currentIndex, and Qt logs something about removing range [-1 through 0] from VisualItemModel. When the tab bar is then made visible, Cura crashes. It is a nondeterministic crash. After this change, we are not seeing it any more (but with any nondeterministic bug, it's hard to verify that it was actually fixed). Contributes to issue CURA-5876. --- .../ConfigurationMenu/CustomConfiguration.qml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 2667c837ba..18c2dabb0f 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -42,8 +42,6 @@ Item anchors.topMargin: UM.Theme.getSize("default_margin").height visible: extrudersModel.count > 1 - currentIndex: Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) - Repeater { id: repeater @@ -68,6 +66,18 @@ Item } } + //When active extruder changes for some other reason, switch tabs. + //Don't directly link currentIndex to Cura.ExtruderManager.activeExtruderIndex! + //This causes a segfault in Qt 5.11. Something with VisualItemModel removing index -1. We have to use setCurrentIndex instead. + Connections + { + target: Cura.ExtruderManager + onActiveExtruderChanged: + { + tabBar.setCurrentIndex(Cura.ExtruderManager.activeExtruderIndex); + } + } + //When the model of the extruders is rebuilt, the list of extruders is briefly emptied and rebuilt. //This causes the currentIndex of the tab to be in an invalid position which resets it to 0. //Therefore we need to change it back to what it was: The active extruder index. From 700ae4bebb2218610fbf0095f57e7aabb81e52ba Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 10:48:06 +0100 Subject: [PATCH 0677/1039] Removed super spammy logging CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 562a964f01..2b78581deb 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -491,11 +491,8 @@ class Toolbox(QObject, Extension): def canUpdate(self, package_id: str) -> bool: local_package = self._package_manager.getInstalledPackageInfo(package_id) if local_package is None: - Logger.log("i", "Could not find package [%s] as installed in the package manager, fall back to check the old plugins", - package_id) local_package = self.getOldPluginPackageMetadata(package_id) if local_package is None: - Logger.log("i", "Could not find package [%s] in the old plugins", package_id) return False remote_package = self.getRemotePackage(package_id) From 978a01e4c89873b42909991ae5ecc49988beab33 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 10:51:05 +0100 Subject: [PATCH 0678/1039] Fix typing & codestyle CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 2b78581deb..1fe7c961ba 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -31,8 +31,8 @@ i18n_catalog = i18nCatalog("cura") ## The Toolbox class is responsible of communicating with the server through the API class Toolbox(QObject, Extension): - DEFAULT_CLOUD_API_ROOT = "https://api.ultimaker.com" #type: str - DEFAULT_CLOUD_API_VERSION = 1 #type: int + DEFAULT_CLOUD_API_ROOT = "https://api.ultimaker.com" # type: str + DEFAULT_CLOUD_API_VERSION = 1 # type: int def __init__(self, application: CuraApplication) -> None: super().__init__() @@ -192,9 +192,9 @@ class Toolbox(QObject, Extension): return self.DEFAULT_CLOUD_API_ROOT if not hasattr(cura.CuraVersion, "CuraCloudAPIRoot"): # type: ignore return self.DEFAULT_CLOUD_API_ROOT - if not cura.CuraVersion.CuraCloudAPIRoot: # type: ignore + if not cura.CuraVersion.CuraCloudAPIRoot: # type: ignore return self.DEFAULT_CLOUD_API_ROOT - return cura.CuraVersion.CuraCloudAPIRoot # type: ignore + return cura.CuraVersion.CuraCloudAPIRoot # type: ignore # Get the cloud API version from CuraVersion def _getCloudAPIVersion(self) -> int: @@ -202,9 +202,9 @@ class Toolbox(QObject, Extension): return self.DEFAULT_CLOUD_API_VERSION if not hasattr(cura.CuraVersion, "CuraCloudAPIVersion"): # type: ignore return self.DEFAULT_CLOUD_API_VERSION - if not cura.CuraVersion.CuraCloudAPIVersion: # type: ignore + if not cura.CuraVersion.CuraCloudAPIVersion: # type: ignore return self.DEFAULT_CLOUD_API_VERSION - return cura.CuraVersion.CuraCloudAPIVersion # type: ignore + return cura.CuraVersion.CuraCloudAPIVersion # type: ignore # Get the packages version depending on Cura version settings. def _getSDKVersion(self) -> Union[int, str]: @@ -231,12 +231,6 @@ class Toolbox(QObject, Extension): # Make remote requests: self._makeRequestByType("packages") self._makeRequestByType("authors") - # TODO: Uncomment in the future when the tag-filtered api calls work in the cloud server - # self._makeRequestByType("plugins_showcase") - # self._makeRequestByType("plugins_available") - # self._makeRequestByType("materials_showcase") - # self._makeRequestByType("materials_available") - # self._makeRequestByType("materials_generic") # Gather installed packages: self._updateInstalledModels() @@ -281,7 +275,7 @@ class Toolbox(QObject, Extension): "description": plugin_data["plugin"]["description"] } return formatted - except: + except KeyError: Logger.log("w", "Unable to convert plugin meta data %s", str(plugin_data)) return None From d9135ac72fa9aa4aa155179fb44e57cda2d1ad96 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 11:06:14 +0100 Subject: [PATCH 0679/1039] Fix more codestyle issues CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 62 +++++++++++++++------------------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 1fe7c961ba..b6cfafe40c 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -559,34 +559,30 @@ class Toolbox(QObject, Extension): # Check for plugins that were installed with the old plugin browser def isOldPlugin(self, plugin_id: str) -> bool: - if plugin_id in self._old_plugin_ids: - return True - return False + return plugin_id in self._old_plugin_ids def getOldPluginPackageMetadata(self, plugin_id: str) -> Optional[Dict[str, Any]]: return self._old_plugin_metadata.get(plugin_id) - def loadingComplete(self) -> bool: + def isLoadingComplete(self) -> bool: populated = 0 - for list in self._metadata.items(): - if len(list) > 0: + for metadata_list in self._metadata.items(): + if metadata_list: populated += 1 - if populated == len(self._metadata.items()): - return True - return False + return populated == len(self._metadata.items()) # Make API Calls # -------------------------------------------------------------------------- - def _makeRequestByType(self, type: str) -> None: - Logger.log("i", "Marketplace: Requesting %s metadata from server.", type) - request = QNetworkRequest(self._request_urls[type]) + def _makeRequestByType(self, request_type: str) -> None: + Logger.log("i", "Requesting %s metadata from server.", request_type) + request = QNetworkRequest(self._request_urls[request_type]) request.setRawHeader(*self._request_header) if self._network_manager: self._network_manager.get(request) @pyqtSlot(str) def startDownload(self, url: str) -> None: - Logger.log("i", "Marketplace: Attempting to download & install package from %s.", url) + Logger.log("i", "Attempting to download & install package from %s.", url) url = QUrl(url) self._download_request = QNetworkRequest(url) if hasattr(QNetworkRequest, "FollowRedirectsAttribute"): @@ -603,7 +599,7 @@ class Toolbox(QObject, Extension): @pyqtSlot() def cancelDownload(self) -> None: - Logger.log("i", "Marketplace: User cancelled the download of a package.") + Logger.log("i", "User cancelled the download of a package.") self.resetDownload() def resetDownload(self) -> None: @@ -647,10 +643,10 @@ class Toolbox(QObject, Extension): ] if reply.operation() == QNetworkAccessManager.GetOperation: - for type, url in self._request_urls.items(): + for response_type, url in self._request_urls.items(): # HACK: Do nothing because we'll handle these from the "packages" call - if type in do_not_handle: + if response_type in do_not_handle: continue if reply.url() == url: @@ -665,38 +661,35 @@ class Toolbox(QObject, Extension): return # Create model and apply metadata: - if not self._models[type]: - Logger.log("e", "Could not find the %s model.", type) + if not self._models[response_type]: + Logger.log("e", "Could not find the %s model.", response_type) break - self._metadata[type] = json_data["data"] - self._models[type].setMetadata(self._metadata[type]) + self._metadata[response_type] = json_data["data"] + self._models[response_type].setMetadata(self._metadata[response_type]) # Do some auto filtering # TODO: Make multiple API calls in the future to handle this - if type is "packages": - self._models[type].setFilter({"type": "plugin"}) + if response_type is "packages": + self._models[response_type].setFilter({"type": "plugin"}) self.buildMaterialsModels() self.buildPluginsModels() - if type is "authors": - self._models[type].setFilter({"package_types": "material"}) - if type is "materials_generic": - self._models[type].setFilter({"tags": "generic"}) + if response_type is "authors": + self._models[response_type].setFilter({"package_types": "material"}) + if response_type is "materials_generic": + self._models[response_type].setFilter({"tags": "generic"}) self.metadataChanged.emit() - if self.loadingComplete() is True: + if self.isLoadingComplete(): self.setViewPage("overview") - return except json.decoder.JSONDecodeError: - Logger.log("w", "Marketplace: Received invalid JSON for %s.", type) + Logger.log("w", "Received invalid JSON for %s.", response_type) break else: self.setViewPage("errored") self.resetDownload() - return - else: # Ignore any operation that is not a get operation pass @@ -717,10 +710,10 @@ class Toolbox(QObject, Extension): self._onDownloadComplete(file_path) def _onDownloadComplete(self, file_path: str) -> None: - Logger.log("i", "Marketplace: Download complete.") + Logger.log("i", "Download complete.") package_info = self._package_manager.getPackageInfo(file_path) if not package_info: - Logger.log("w", "Marketplace: Package file [%s] was not a valid CuraPackage.", file_path) + Logger.log("w", "Package file [%s] was not a valid CuraPackage.", file_path) return license_content = self._package_manager.getPackageLicense(file_path) @@ -729,7 +722,6 @@ class Toolbox(QObject, Extension): return self.install(file_path) - return # Getter & Setters for Properties: # -------------------------------------------------------------------------- @@ -847,7 +839,7 @@ class Toolbox(QObject, Extension): self._metadata["materials_available"] = [] self._metadata["materials_generic"] = [] - processed_authors = [] # type: List[str] + processed_authors = [] # type: List[str] for item in self._metadata["packages"]: if item["package_type"] == "material": From abcc621cc62120a0f9f1e5f32599f8356e607dc2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 11:29:44 +0100 Subject: [PATCH 0680/1039] Added missing typing --- plugins/Toolbox/src/AuthorsModel.py | 43 ++++++++++++++-------------- plugins/Toolbox/src/PackagesModel.py | 2 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/plugins/Toolbox/src/AuthorsModel.py b/plugins/Toolbox/src/AuthorsModel.py index bea3893504..6f4b5bd280 100644 --- a/plugins/Toolbox/src/AuthorsModel.py +++ b/plugins/Toolbox/src/AuthorsModel.py @@ -2,18 +2,19 @@ # Cura is released under the terms of the LGPLv3 or higher. import re -from typing import Dict +from typing import Dict, List, Optional, Union from PyQt5.QtCore import Qt, pyqtProperty, pyqtSignal from UM.Qt.ListModel import ListModel + ## Model that holds cura packages. By setting the filter property the instances held by this model can be changed. class AuthorsModel(ListModel): - def __init__(self, parent = None): + def __init__(self, parent = None) -> None: super().__init__(parent) - self._metadata = None + self._metadata = None # type: Optional[List[Dict[str, Union[str, List[str], int]]]] self.addRoleName(Qt.UserRole + 1, "id") self.addRoleName(Qt.UserRole + 2, "name") @@ -25,39 +26,39 @@ class AuthorsModel(ListModel): self.addRoleName(Qt.UserRole + 8, "description") # List of filters for queries. The result is the union of the each list of results. - self._filter = {} # type: Dict[str,str] + self._filter = {} # type: Dict[str, str] - def setMetadata(self, data): + def setMetadata(self, data: List[Dict[str, Union[str, List[str], int]]]): self._metadata = data self._update() - def _update(self): - items = [] + def _update(self) -> None: + items = [] # type: List[Dict[str, Union[str, List[str], int, None]]] if not self._metadata: - self.setItems([]) + self.setItems(items) return for author in self._metadata: items.append({ - "id": author["author_id"], - "name": author["display_name"], - "email": author["email"] if "email" in author else None, - "website": author["website"], - "package_count": author["package_count"] if "package_count" in author else 0, - "package_types": author["package_types"] if "package_types" in author else [], - "icon_url": author["icon_url"] if "icon_url" in author else None, - "description": "Material and quality profiles from {author_name}".format(author_name = author["display_name"]) + "id": author.get("author_id"), + "name": author.get("display_name"), + "email": author.get("email"), + "website": author.get("website"), + "package_count": author.get("package_count", 0), + "package_types": author.get("package_types", []), + "icon_url": author.get("icon_url"), + "description": "Material and quality profiles from {author_name}".format(author_name = author.get("display_name", "")) }) # Filter on all the key-word arguments. for key, value in self._filter.items(): if key is "package_types": - key_filter = lambda item, value = value: value in item["package_types"] + key_filter = lambda item, value = value: value in item["package_types"] # type: ignore elif "*" in value: - key_filter = lambda item, key = key, value = value: self._matchRegExp(item, key, value) + key_filter = lambda item, key = key, value = value: self._matchRegExp(item, key, value) # type: ignore else: - key_filter = lambda item, key = key, value = value: self._matchString(item, key, value) - items = filter(key_filter, items) + key_filter = lambda item, key = key, value = value: self._matchString(item, key, value) # type: ignore + items = filter(key_filter, items) # type: ignore # Execute all filters. filtered_items = list(items) @@ -72,7 +73,7 @@ class AuthorsModel(ListModel): self._filter = filter_dict self._update() - @pyqtProperty("QVariantMap", fset = setFilter, constant = True) + @pyqtProperty("QStringMap", fset = setFilter, constant = True) def filter(self) -> Dict[str, str]: return self._filter diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py index a31facf75a..2849a29c99 100644 --- a/plugins/Toolbox/src/PackagesModel.py +++ b/plugins/Toolbox/src/PackagesModel.py @@ -33,7 +33,7 @@ class PackagesModel(ListModel): self.addRoleName(Qt.UserRole + 12, "last_updated") self.addRoleName(Qt.UserRole + 13, "is_bundled") self.addRoleName(Qt.UserRole + 14, "is_active") - self.addRoleName(Qt.UserRole + 15, "is_installed") # Scheduled pkgs are included in the model but should not be marked as actually installed + self.addRoleName(Qt.UserRole + 15, "is_installed") # Scheduled pkgs are included in the model but should not be marked as actually installed self.addRoleName(Qt.UserRole + 16, "has_configs") self.addRoleName(Qt.UserRole + 17, "supported_configs") self.addRoleName(Qt.UserRole + 18, "download_count") From e8a933331c0be8ce2086a26a982ee220282001d7 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 5 Dec 2018 12:14:18 +0100 Subject: [PATCH 0681/1039] Clean-up printer status label Contributes to CL-1153 --- .../resources/qml/MonitorPrinterCard.qml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 8659037cb8..567fff8489 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -179,13 +179,15 @@ Item color: "#414054" // TODO: Theme! font: UM.Theme.getFont("large") // 16pt, bold text: { - if (printer && printer.state == "disabled"){ + if (printer && printer.state == "disabled") + { return catalog.i18nc("@label:status", "Unavailable") } - if (printer && printer.state == "unreachable"){ - return catalog.i18nc("@label:status", "Unavailable") + if (printer && printer.state == "unreachable") + { + return catalog.i18nc("@label:status", "Unreachable") } - if (printer && !printer.activePrintJob) + if (printer && printer.state == "idle") { return catalog.i18nc("@label:status", "Idle") } From 034b1660f766211bd658127e28f0dd35809c2f6b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 5 Dec 2018 13:05:22 +0100 Subject: [PATCH 0682/1039] Adjust sizes in the custom print setup mode Contributes to CURA-5941. --- .../qml/PrintSetupSelector/Custom/CustomPrintSetup.qml | 9 +++------ .../PrintSetupSelector/PrintSetupSelectorContents.qml | 8 ++++---- resources/themes/cura-light/theme.json | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index b524bb5926..8b0f3524d7 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -11,9 +11,7 @@ import Cura 1.0 as Cura Item { id: customPrintSetup - - // TODO: Hardcoded now but UX has to decide about the height of this item - height: 480 + height: childrenRect.height + padding property real padding: UM.Theme.getSize("default_margin").width property bool multipleExtruders: extrudersModel.count > 1 @@ -93,16 +91,15 @@ Item Rectangle { + height: UM.Theme.getSize("print_setup_widget").height anchors { - top: tabBar.visible ? tabBar.bottom : globalProfileRow.bottom + top: tabBar.bottom left: parent.left leftMargin: parent.padding right: parent.right rightMargin: parent.padding - bottom: parent.bottom topMargin: -UM.Theme.getSize("default_lining").width - bottomMargin: -UM.Theme.getSize("default_lining").width } z: tabBar.z - 1 // Don't show the border when only one extruder diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 0524a6de9e..522b038423 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -28,7 +28,7 @@ Item { var index = Math.round(UM.Preferences.getValue("cura/active_mode")) - if(index != null && !isNaN(index)) + if (index != null && !isNaN(index)) { return index } @@ -150,7 +150,8 @@ Item { id: buttonsSeparator - anchors.top: contents.bottom + // The buttonsSeparator is inside the contents. This is to avoid a double line in the bottom + anchors.bottom: contents.bottom width: parent.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") @@ -162,10 +163,9 @@ Item property real padding: UM.Theme.getSize("default_margin").width height: childrenRect.height + 2 * padding - // The buttonsSeparator is inside the buttonRow. This is to avoid some weird behaviours with the scroll bar. anchors { - top: buttonsSeparator.top + top: buttonsSeparator.bottom left: parent.left right: parent.right } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 8e440757aa..f383a570a2 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -369,7 +369,7 @@ "account_button": [12, 3], - "print_setup_widget": [38.0, 42.0], + "print_setup_widget": [38.0, 30.0], "print_setup_mode_toggle": [0.0, 2.0], "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], From b1440737e641a708683c06ea12c7874dd3fb8ab7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 13:21:17 +0100 Subject: [PATCH 0683/1039] Remove a whole bunch of unused code CURA-6006 --- plugins/Toolbox/src/AuthorsModel.py | 2 +- plugins/Toolbox/src/Toolbox.py | 70 +++++++++-------------------- 2 files changed, 22 insertions(+), 50 deletions(-) diff --git a/plugins/Toolbox/src/AuthorsModel.py b/plugins/Toolbox/src/AuthorsModel.py index 6f4b5bd280..8fafda54ec 100644 --- a/plugins/Toolbox/src/AuthorsModel.py +++ b/plugins/Toolbox/src/AuthorsModel.py @@ -73,7 +73,7 @@ class AuthorsModel(ListModel): self._filter = filter_dict self._update() - @pyqtProperty("QStringMap", fset = setFilter, constant = True) + @pyqtProperty("QVariantMap", fset = setFilter, constant = True) def filter(self) -> Dict[str, str]: return self._filter diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index b6cfafe40c..5db3dd934f 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -70,13 +70,6 @@ class Toolbox(QObject, Extension): self._metadata = { "authors": [], "packages": [], - "plugins_showcase": [], - "plugins_available": [], - "plugins_installed": [], - "materials_showcase": [], - "materials_available": [], - "materials_installed": [], - "materials_generic": [] } # type: Dict[str, List[Any]] # Models: @@ -178,12 +171,7 @@ class Toolbox(QObject, Extension): ) self._request_urls = { "authors": QUrl("{base_url}/authors".format(base_url = self._api_url)), - "packages": QUrl("{base_url}/packages".format(base_url = self._api_url)), - "plugins_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)), - "plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url = self._api_url)), - "materials_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)), - "materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url = self._api_url)), - "materials_generic": QUrl("{base_url}/packages?package_type=material&tags=generic".format(base_url = self._api_url)) + "packages": QUrl("{base_url}/packages".format(base_url = self._api_url)) } # Get the API root for the packages API depending on Cura version settings. @@ -606,8 +594,8 @@ class Toolbox(QObject, Extension): if self._download_reply: try: self._download_reply.downloadProgress.disconnect(self._onDownloadProgress) - except TypeError: #Raised when the method is not connected to the signal yet. - pass #Don't need to disconnect. + except TypeError: # Raised when the method is not connected to the signal yet. + pass # Don't need to disconnect. self._download_reply.abort() self._download_reply = None self._download_request = None @@ -633,22 +621,8 @@ class Toolbox(QObject, Extension): self.resetDownload() return - # HACK: These request are not handled independently at this moment, but together from the "packages" call - do_not_handle = [ - "materials_available", - "materials_showcase", - "materials_generic", - "plugins_available", - "plugins_showcase", - ] - if reply.operation() == QNetworkAccessManager.GetOperation: for response_type, url in self._request_urls.items(): - - # HACK: Do nothing because we'll handle these from the "packages" call - if response_type in do_not_handle: - continue - if reply.url() == url: if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200: try: @@ -672,11 +646,10 @@ class Toolbox(QObject, Extension): # TODO: Make multiple API calls in the future to handle this if response_type is "packages": self._models[response_type].setFilter({"type": "plugin"}) - self.buildMaterialsModels() + self.reBuildMaterialsModels() self.buildPluginsModels() - if response_type is "authors": + elif response_type is "authors": self._models[response_type].setFilter({"package_types": "material"}) - if response_type is "materials_generic": self._models[response_type].setFilter({"tags": "generic"}) self.metadataChanged.emit() @@ -834,10 +807,10 @@ class Toolbox(QObject, Extension): # HACK(S): # -------------------------------------------------------------------------- - def buildMaterialsModels(self) -> None: - self._metadata["materials_showcase"] = [] - self._metadata["materials_available"] = [] - self._metadata["materials_generic"] = [] + def reBuildMaterialsModels(self) -> None: + materials_showcase_metadata = [] + materials_available_metadata = [] + materials_generic_metadata = [] processed_authors = [] # type: List[str] @@ -850,30 +823,29 @@ class Toolbox(QObject, Extension): # Generic materials to be in the same section if "generic" in item["tags"]: - self._metadata["materials_generic"].append(item) + materials_generic_metadata.append(item) else: if "showcase" in item["tags"]: - self._metadata["materials_showcase"].append(author) + materials_showcase_metadata.append(author) else: - self._metadata["materials_available"].append(author) + materials_available_metadata.append(author) processed_authors.append(author["author_id"]) - self._models["materials_showcase"].setMetadata(self._metadata["materials_showcase"]) - self._models["materials_available"].setMetadata(self._metadata["materials_available"]) - self._models["materials_generic"].setMetadata(self._metadata["materials_generic"]) + self._models["materials_showcase"].setMetadata(materials_showcase_metadata) + self._models["materials_available"].setMetadata(materials_available_metadata) + self._models["materials_generic"].setMetadata(materials_generic_metadata) def buildPluginsModels(self) -> None: - self._metadata["plugins_showcase"] = [] - self._metadata["plugins_available"] = [] + plugins_showcase_metadata = [] + plugins_available_metadata = [] for item in self._metadata["packages"]: if item["package_type"] == "plugin": - if "showcase" in item["tags"]: - self._metadata["plugins_showcase"].append(item) + plugins_showcase_metadata.append(item) else: - self._metadata["plugins_available"].append(item) + plugins_available_metadata.append(item) - self._models["plugins_showcase"].setMetadata(self._metadata["plugins_showcase"]) - self._models["plugins_available"].setMetadata(self._metadata["plugins_available"]) + self._models["plugins_showcase"].setMetadata(plugins_showcase_metadata) + self._models["plugins_available"].setMetadata(plugins_available_metadata) From 5b57e6bf307eb2060b6c386c054401ab0625a779 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 5 Dec 2018 13:24:34 +0100 Subject: [PATCH 0684/1039] Code style in JobSpecs --- resources/qml/JobSpecs.qml | 82 +++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 33 deletions(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 45111992c1..5f773f9b25 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -9,20 +9,27 @@ import QtQuick.Layouts 1.1 import UM 1.1 as UM import Cura 1.0 as Cura -Item { +Item +{ id: base property bool activity: CuraApplication.platformActivity property string fileBaseName: PrintInformation.baseName - UM.I18nCatalog { id: catalog; name: "cura"} + UM.I18nCatalog + { + id: catalog + name:"cura" + } height: childrenRect.height - onActivityChanged: { - if (activity == false) { + onActivityChanged: + { + if (!activity) + { //When there is no mesh in the buildplate; the printJobTextField is set to an empty string so it doesn't set an empty string as a jobName (which is later used for saving the file) - PrintInformation.baseName = '' + PrintInformation.baseName = "" } } @@ -49,21 +56,22 @@ Item { onClicked: { - printJobTextfield.selectAll(); - printJobTextfield.focus = true; + printJobTextfield.selectAll() + printJobTextfield.focus = true } + style: ButtonStyle { background: Item { UM.RecolorImage { - width: UM.Theme.getSize("save_button_specs_icons").width; - height: UM.Theme.getSize("save_button_specs_icons").height; - sourceSize.width: width; - sourceSize.height: width; - color: control.hovered ? UM.Theme.getColor("text_scene_hover") : UM.Theme.getColor("text_scene"); - source: UM.Theme.getIcon("pencil"); + width: UM.Theme.getSize("save_button_specs_icons").width + height: UM.Theme.getSize("save_button_specs_icons").height + sourceSize.width: width + sourceSize.height: width + color: control.hovered ? UM.Theme.getColor("text_scene_hover") : UM.Theme.getColor("text_scene") + source: UM.Theme.getIcon("pencil") } } } @@ -73,25 +81,31 @@ Item { { id: printJobTextfield anchors.right: printJobPencilIcon.left - anchors.rightMargin: Math.round(UM.Theme.getSize("default_margin").width / 2) + anchors.rightMargin: UM.Theme.getSize("narrow_margin").width height: UM.Theme.getSize("jobspecs_line").height width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) maximumLength: 120 property int unremovableSpacing: 5 text: PrintInformation.jobName horizontalAlignment: TextInput.AlignRight - onEditingFinished: { - var new_name = text == "" ? catalog.i18nc("@text Print job name", "Untitled") : text; - PrintInformation.setJobName(new_name, true); - printJobTextfield.focus = false; + + onEditingFinished: + { + var new_name = text == "" ? catalog.i18nc("@text Print job name", "Untitled") : text + PrintInformation.setJobName(new_name, true) + printJobTextfield.focus = false } + validator: RegExpValidator { regExp: /^[^\\\/\*\?\|\[\]]*$/ } - style: TextFieldStyle{ - textColor: UM.Theme.getColor("text_scene"); - font: UM.Theme.getFont("default_bold"); - background: Rectangle { + + style: TextFieldStyle + { + textColor: UM.Theme.getColor("text_scene") + font: UM.Theme.getFont("default_bold") + background: Rectangle + { opacity: 0 border.width: 0 } @@ -100,7 +114,8 @@ Item { } } - Row { + Row + { id: additionalComponentsRow anchors.top: jobNameRow.bottom anchors.right: parent.right @@ -117,10 +132,7 @@ Item { { return UM.Theme.getSize("default_margin").width } - else - { - return 0; - } + return 0 } height: UM.Theme.getSize("jobspecs_line").height verticalAlignment: Text.AlignVCenter @@ -129,21 +141,25 @@ Item { text: CuraApplication.getSceneBoundingBoxString } - Component.onCompleted: { + Component.onCompleted: + { base.addAdditionalComponents("jobSpecsButton") } - Connections { + Connections + { target: CuraApplication onAdditionalComponentsChanged: base.addAdditionalComponents("jobSpecsButton") } - function addAdditionalComponents (areaId) { - if(areaId == "jobSpecsButton") { - for (var component in CuraApplication.additionalComponents["jobSpecsButton"]) { + function addAdditionalComponents (areaId) + { + if (areaId == "jobSpecsButton") + { + for (var component in CuraApplication.additionalComponents["jobSpecsButton"]) + { CuraApplication.additionalComponents["jobSpecsButton"][component].parent = additionalComponentsRow } } } - } From 0e22f6b672a29c8b57309332a1f77355f151f870 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 5 Dec 2018 13:30:01 +0100 Subject: [PATCH 0685/1039] Fix an issue that caused a non-deterministic segfault Also add a topMargin only when there are tabs in the custom print setup. Contributes to CURA-5941. --- .../Custom/CustomPrintSetup.qml | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 8b0f3524d7..b28c9ceb46 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -52,8 +52,6 @@ Item rightMargin: parent.padding } - currentIndex: Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) - Repeater { id: repeater @@ -76,15 +74,27 @@ Item } } - // When the model of the extruders is rebuilt, the list of extruders is briefly emptied and rebuilt. - // This causes the currentIndex of the tab to be in an invalid position which resets it to 0. - // Therefore we need to change it back to what it was: The active extruder index. + //When active extruder changes for some other reason, switch tabs. + //Don't directly link currentIndex to Cura.ExtruderManager.activeExtruderIndex! + //This causes a segfault in Qt 5.11. Something with VisualItemModel removing index -1. We have to use setCurrentIndex instead. + Connections + { + target: Cura.ExtruderManager + onActiveExtruderChanged: + { + tabBar.setCurrentIndex(Cura.ExtruderManager.activeExtruderIndex); + } + } + + //When the model of the extruders is rebuilt, the list of extruders is briefly emptied and rebuilt. + //This causes the currentIndex of the tab to be in an invalid position which resets it to 0. + //Therefore we need to change it back to what it was: The active extruder index. Connections { target: repeater.model onModelChanged: { - tabBar.currentIndex = Math.max(Cura.ExtruderManager.activeExtruderIndex, 0) + tabBar.setCurrentIndex(Cura.ExtruderManager.activeExtruderIndex) } } } @@ -94,7 +104,7 @@ Item height: UM.Theme.getSize("print_setup_widget").height anchors { - top: tabBar.bottom + top: tabBar.visible ? tabBar.bottom : globalProfileRow.bottom left: parent.left leftMargin: parent.padding right: parent.right From 07d210483c91d77c3198548a386247fdc993df2f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 13:42:13 +0100 Subject: [PATCH 0686/1039] Greatly decrease the bloat / complexity of the toolbox There was a lot of stuff going on that didn't need to happen, so I cut those parts out in order to improve the overview. --- plugins/Toolbox/src/AuthorsModel.py | 5 +-- plugins/Toolbox/src/PackagesModel.py | 5 +-- plugins/Toolbox/src/Toolbox.py | 54 ++++++++++++++-------------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/plugins/Toolbox/src/AuthorsModel.py b/plugins/Toolbox/src/AuthorsModel.py index 8fafda54ec..877f8256ee 100644 --- a/plugins/Toolbox/src/AuthorsModel.py +++ b/plugins/Toolbox/src/AuthorsModel.py @@ -29,8 +29,9 @@ class AuthorsModel(ListModel): self._filter = {} # type: Dict[str, str] def setMetadata(self, data: List[Dict[str, Union[str, List[str], int]]]): - self._metadata = data - self._update() + if self._metadata != data: + self._metadata = data + self._update() def _update(self) -> None: items = [] # type: List[Dict[str, Union[str, List[str], int, None]]] diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py index 2849a29c99..f941804653 100644 --- a/plugins/Toolbox/src/PackagesModel.py +++ b/plugins/Toolbox/src/PackagesModel.py @@ -45,8 +45,9 @@ class PackagesModel(ListModel): self._filter = {} # type: Dict[str, str] def setMetadata(self, data): - self._metadata = data - self._update() + if self._metadata != data: + self._metadata = data + self._update() def _update(self): items = [] diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 5db3dd934f..7b1442ff3c 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -66,8 +66,8 @@ class Toolbox(QObject, Extension): self._old_plugin_ids = set() # type: Set[str] self._old_plugin_metadata = dict() # type: Dict[str, Dict[str, Any]] - # Data: - self._metadata = { + # The responses as given by the server parsed to a list. + self._server_response_data = { "authors": [], "packages": [], } # type: Dict[str, List[Any]] @@ -301,13 +301,13 @@ class Toolbox(QObject, Extension): if plugin_id not in all_plugin_package_ids) self._old_plugin_metadata = {k: v for k, v in self._old_plugin_metadata.items() if k in self._old_plugin_ids} - self._metadata["plugins_installed"] = all_packages["plugin"] + list(self._old_plugin_metadata.values()) - self._models["plugins_installed"].setMetadata(self._metadata["plugins_installed"]) + self._server_response_data["plugins_installed"] = all_packages["plugin"] + list(self._old_plugin_metadata.values()) + self._models["plugins_installed"].setMetadata(self._server_response_data["plugins_installed"]) self.metadataChanged.emit() if "material" in all_packages: - self._metadata["materials_installed"] = all_packages["material"] + self._server_response_data["materials_installed"] = all_packages["material"] # TODO: ADD MATERIALS HERE ONCE MATERIALS PORTION OF TOOLBOX IS LIVE - self._models["materials_installed"].setMetadata(self._metadata["materials_installed"]) + self._models["materials_installed"].setMetadata(self._server_response_data["materials_installed"]) self.metadataChanged.emit() @pyqtSlot(str) @@ -461,7 +461,7 @@ class Toolbox(QObject, Extension): def getRemotePackage(self, package_id: str) -> Optional[Dict]: # TODO: make the lookup in a dict, not a loop. canUpdate is called for every item. remote_package = None - for package in self._metadata["packages"]: + for package in self._server_response_data["packages"]: if package["package_id"] == package_id: remote_package = package break @@ -524,7 +524,7 @@ class Toolbox(QObject, Extension): @pyqtSlot(str, result = int) def getNumberOfInstalledPackagesByAuthor(self, author_id: str) -> int: count = 0 - for package in self._metadata["materials_installed"]: + for package in self._server_response_data["materials_installed"]: if package["author"]["author_id"] == author_id: count += 1 return count @@ -533,7 +533,7 @@ class Toolbox(QObject, Extension): @pyqtSlot(str, result = int) def getTotalNumberOfMaterialPackagesByAuthor(self, author_id: str) -> int: count = 0 - for package in self._metadata["packages"]: + for package in self._server_response_data["packages"]: if package["package_type"] == "material": if package["author"]["author_id"] == author_id: count += 1 @@ -554,10 +554,10 @@ class Toolbox(QObject, Extension): def isLoadingComplete(self) -> bool: populated = 0 - for metadata_list in self._metadata.items(): + for metadata_list in self._server_response_data.items(): if metadata_list: populated += 1 - return populated == len(self._metadata.items()) + return populated == len(self._server_response_data.items()) # Make API Calls # -------------------------------------------------------------------------- @@ -639,15 +639,13 @@ class Toolbox(QObject, Extension): Logger.log("e", "Could not find the %s model.", response_type) break - self._metadata[response_type] = json_data["data"] - self._models[response_type].setMetadata(self._metadata[response_type]) + self._server_response_data[response_type] = json_data["data"] + self._models[response_type].setMetadata(self._server_response_data[response_type]) - # Do some auto filtering - # TODO: Make multiple API calls in the future to handle this if response_type is "packages": self._models[response_type].setFilter({"type": "plugin"}) self.reBuildMaterialsModels() - self.buildPluginsModels() + self.reBuildPluginsModels() elif response_type is "authors": self._models[response_type].setFilter({"package_types": "material"}) self._models[response_type].setFilter({"tags": "generic"}) @@ -743,39 +741,39 @@ class Toolbox(QObject, Extension): # Exposed Models: # -------------------------------------------------------------------------- - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def authorsModel(self) -> AuthorsModel: return cast(AuthorsModel, self._models["authors"]) - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def packagesModel(self) -> PackagesModel: return cast(PackagesModel, self._models["packages"]) - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def pluginsShowcaseModel(self) -> PackagesModel: return cast(PackagesModel, self._models["plugins_showcase"]) - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def pluginsAvailableModel(self) -> PackagesModel: return cast(PackagesModel, self._models["plugins_available"]) - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def pluginsInstalledModel(self) -> PackagesModel: return cast(PackagesModel, self._models["plugins_installed"]) - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def materialsShowcaseModel(self) -> AuthorsModel: return cast(AuthorsModel, self._models["materials_showcase"]) - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def materialsAvailableModel(self) -> AuthorsModel: return cast(AuthorsModel, self._models["materials_available"]) - @pyqtProperty(QObject, notify = metadataChanged) + @pyqtProperty(QObject, constant=True) def materialsInstalledModel(self) -> PackagesModel: return cast(PackagesModel, self._models["materials_installed"]) - @pyqtProperty(QObject, notify=metadataChanged) + @pyqtProperty(QObject, constant=True) def materialsGenericModel(self) -> PackagesModel: return cast(PackagesModel, self._models["materials_generic"]) @@ -814,7 +812,7 @@ class Toolbox(QObject, Extension): processed_authors = [] # type: List[str] - for item in self._metadata["packages"]: + for item in self._server_response_data["packages"]: if item["package_type"] == "material": author = item["author"] @@ -836,11 +834,11 @@ class Toolbox(QObject, Extension): self._models["materials_available"].setMetadata(materials_available_metadata) self._models["materials_generic"].setMetadata(materials_generic_metadata) - def buildPluginsModels(self) -> None: + def reBuildPluginsModels(self) -> None: plugins_showcase_metadata = [] plugins_available_metadata = [] - for item in self._metadata["packages"]: + for item in self._server_response_data["packages"]: if item["package_type"] == "plugin": if "showcase" in item["tags"]: plugins_showcase_metadata.append(item) From a52f866f818324994b1a1b34f06805ffd3ed24d0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 14:03:32 +0100 Subject: [PATCH 0687/1039] Move most models out of dictionary CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 47 ++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 7b1442ff3c..ada81dbc07 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -70,21 +70,25 @@ class Toolbox(QObject, Extension): self._server_response_data = { "authors": [], "packages": [], + "plugins_installed": [], + "materials_installed": [] } # type: Dict[str, List[Any]] # Models: self._models = { "authors": AuthorsModel(self), "packages": PackagesModel(self), - "plugins_showcase": PackagesModel(self), - "plugins_available": PackagesModel(self), - "plugins_installed": PackagesModel(self), - "materials_showcase": AuthorsModel(self), - "materials_available": AuthorsModel(self), - "materials_installed": PackagesModel(self), - "materials_generic": PackagesModel(self) } # type: Dict[str, ListModel] + self._plugins_showcase_model = PackagesModel(self) + self._plugins_available_model = PackagesModel(self) + self._plugins_installed_model = PackagesModel(self) + + self._materials_showcase_model = AuthorsModel(self) + self._materials_available_model = AuthorsModel(self) + self._materials_installed_model = PackagesModel(self) + self._materials_generic_model = PackagesModel(self) + # These properties are for keeping track of the UI state: # ---------------------------------------------------------------------- # View category defines which filter to use, and therefore effectively @@ -302,12 +306,11 @@ class Toolbox(QObject, Extension): self._old_plugin_metadata = {k: v for k, v in self._old_plugin_metadata.items() if k in self._old_plugin_ids} self._server_response_data["plugins_installed"] = all_packages["plugin"] + list(self._old_plugin_metadata.values()) - self._models["plugins_installed"].setMetadata(self._server_response_data["plugins_installed"]) + self._plugins_installed_model.setMetadata(self._server_response_data["plugins_installed"]) self.metadataChanged.emit() if "material" in all_packages: self._server_response_data["materials_installed"] = all_packages["material"] - # TODO: ADD MATERIALS HERE ONCE MATERIALS PORTION OF TOOLBOX IS LIVE - self._models["materials_installed"].setMetadata(self._server_response_data["materials_installed"]) + self._materials_installed_model.setMetadata(all_packages["material"]) self.metadataChanged.emit() @pyqtSlot(str) @@ -751,31 +754,31 @@ class Toolbox(QObject, Extension): @pyqtProperty(QObject, constant=True) def pluginsShowcaseModel(self) -> PackagesModel: - return cast(PackagesModel, self._models["plugins_showcase"]) + return self._plugins_showcase_model @pyqtProperty(QObject, constant=True) def pluginsAvailableModel(self) -> PackagesModel: - return cast(PackagesModel, self._models["plugins_available"]) + return self._plugins_available_model @pyqtProperty(QObject, constant=True) def pluginsInstalledModel(self) -> PackagesModel: - return cast(PackagesModel, self._models["plugins_installed"]) + return self._plugins_installed_model @pyqtProperty(QObject, constant=True) def materialsShowcaseModel(self) -> AuthorsModel: - return cast(AuthorsModel, self._models["materials_showcase"]) + return self._materials_showcase_model @pyqtProperty(QObject, constant=True) def materialsAvailableModel(self) -> AuthorsModel: - return cast(AuthorsModel, self._models["materials_available"]) + return self._materials_available_model @pyqtProperty(QObject, constant=True) def materialsInstalledModel(self) -> PackagesModel: - return cast(PackagesModel, self._models["materials_installed"]) + return self._materials_installed_model @pyqtProperty(QObject, constant=True) def materialsGenericModel(self) -> PackagesModel: - return cast(PackagesModel, self._models["materials_generic"]) + return self._materials_generic_model # Filter Models: # -------------------------------------------------------------------------- @@ -830,9 +833,9 @@ class Toolbox(QObject, Extension): processed_authors.append(author["author_id"]) - self._models["materials_showcase"].setMetadata(materials_showcase_metadata) - self._models["materials_available"].setMetadata(materials_available_metadata) - self._models["materials_generic"].setMetadata(materials_generic_metadata) + self._materials_showcase_model.setMetadata(materials_showcase_metadata) + self._materials_available_model.setMetadata(materials_available_metadata) + self._materials_generic_model.setMetadata(materials_generic_metadata) def reBuildPluginsModels(self) -> None: plugins_showcase_metadata = [] @@ -845,5 +848,5 @@ class Toolbox(QObject, Extension): else: plugins_available_metadata.append(item) - self._models["plugins_showcase"].setMetadata(plugins_showcase_metadata) - self._models["plugins_available"].setMetadata(plugins_available_metadata) + self._plugins_showcase_model.setMetadata(plugins_showcase_metadata) + self._plugins_available_model.setMetadata(plugins_available_metadata) From d6630b68815781ba92edae3510aaf62cf77b4d0d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 14:09:55 +0100 Subject: [PATCH 0688/1039] Removed some more cases where data was duplicated and re-used for different purposes CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index ada81dbc07..f70543d5d7 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -69,16 +69,14 @@ class Toolbox(QObject, Extension): # The responses as given by the server parsed to a list. self._server_response_data = { "authors": [], - "packages": [], - "plugins_installed": [], - "materials_installed": [] + "packages": [] } # type: Dict[str, List[Any]] # Models: self._models = { "authors": AuthorsModel(self), "packages": PackagesModel(self), - } # type: Dict[str, ListModel] + } # type: Dict[str, Union[AuthorsModel, PackagesModel]] self._plugins_showcase_model = PackagesModel(self) self._plugins_available_model = PackagesModel(self) @@ -305,11 +303,9 @@ class Toolbox(QObject, Extension): if plugin_id not in all_plugin_package_ids) self._old_plugin_metadata = {k: v for k, v in self._old_plugin_metadata.items() if k in self._old_plugin_ids} - self._server_response_data["plugins_installed"] = all_packages["plugin"] + list(self._old_plugin_metadata.values()) - self._plugins_installed_model.setMetadata(self._server_response_data["plugins_installed"]) + self._plugins_installed_model.setMetadata(all_packages["plugin"] + list(self._old_plugin_metadata.values())) self.metadataChanged.emit() if "material" in all_packages: - self._server_response_data["materials_installed"] = all_packages["material"] self._materials_installed_model.setMetadata(all_packages["material"]) self.metadataChanged.emit() @@ -527,8 +523,8 @@ class Toolbox(QObject, Extension): @pyqtSlot(str, result = int) def getNumberOfInstalledPackagesByAuthor(self, author_id: str) -> int: count = 0 - for package in self._server_response_data["materials_installed"]: - if package["author"]["author_id"] == author_id: + for package in self._materials_installed_model.items: + if package["author_id"] == author_id: count += 1 return count From 5ba8820f185673f0486393187eafca826c657537 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 5 Dec 2018 14:10:51 +0100 Subject: [PATCH 0689/1039] Remove unnecessary setting height to 0 when invisible Turns out that it doesn't count for the childrenRect.height anyway when the item is invisible. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml | 2 +- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index 58b6bac089..a09d6d2ba4 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -10,7 +10,7 @@ import Cura 1.0 as Cura Item { width: parent.width - height: visible ? childrenRect.height : 0 + height: childrenRect.height Label { diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 18c2dabb0f..19b7158929 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -17,7 +17,7 @@ Item } width: parent.width - height: visible ? childrenRect.height : 0 + height: childrenRect.height Label { From 218fa3aded7ed4e4fb77bd092ca7e798ca948dae Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 5 Dec 2018 14:22:04 +0100 Subject: [PATCH 0690/1039] Align the print info to the left --- resources/qml/Cura.qml | 26 ++++---- resources/qml/JobSpecs.qml | 126 +++++++++++++++++-------------------- 2 files changed, 71 insertions(+), 81 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 3578888886..6559fafa12 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -189,16 +189,6 @@ UM.MainWindow onHideTooltip: base.hideTooltip() } - JobSpecs - { - id: jobSpecs - anchors - { - bottom: parent.bottom - bottomMargin: UM.Theme.getSize("default_margin").height - } - } - Toolbar { // The toolbar is the left bar that is populated by all the tools (which are dynamicly populated by @@ -228,6 +218,19 @@ UM.MainWindow } } + JobSpecs + { + id: jobSpecs + visible: CuraApplication.platformActivity + anchors + { + left: parent.left + bottom: viewOrientationControls.top + margins: UM.Theme.getSize("wide_margin").width + bottomMargin: UM.Theme.getSize("default_margin").width + } + } + ViewOrientationControls { id: viewOrientationControls @@ -235,9 +238,8 @@ UM.MainWindow anchors { left: parent.left - margins: UM.Theme.getSize("default_margin").width - bottom: parent.bottom + margins: UM.Theme.getSize("wide_margin").width } } diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 19b5b3f2de..97e12e15a3 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -19,9 +19,10 @@ Item UM.I18nCatalog { id: catalog - name:"cura" + name: "cura" } + width: childrenRect.width height: childrenRect.height onActivityChanged: @@ -33,82 +34,75 @@ Item } } - Rectangle + Item { id: jobNameRow anchors.top: parent.top - anchors.right: parent.right + anchors.left: parent.left height: UM.Theme.getSize("jobspecs_line").height - visible: base.activity - Item + Button { - width: parent.width - height: parent.height + id: printJobPencilIcon + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + width: UM.Theme.getSize("save_button_specs_icons").width + height: UM.Theme.getSize("save_button_specs_icons").height - Button + onClicked: { - id: printJobPencilIcon - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - width: UM.Theme.getSize("save_button_specs_icons").width - height: UM.Theme.getSize("save_button_specs_icons").height + printJobTextfield.selectAll() + printJobTextfield.focus = true + } - onClicked: + style: ButtonStyle + { + background: Item { - printJobTextfield.selectAll() - printJobTextfield.focus = true - } - - style: ButtonStyle - { - background: Item + UM.RecolorImage { - UM.RecolorImage - { - width: UM.Theme.getSize("save_button_specs_icons").width - height: UM.Theme.getSize("save_button_specs_icons").height - sourceSize.width: width - sourceSize.height: width - color: control.hovered ? UM.Theme.getColor("text_scene_hover") : UM.Theme.getColor("text_scene") - source: UM.Theme.getIcon("pencil") - } + width: UM.Theme.getSize("save_button_specs_icons").width + height: UM.Theme.getSize("save_button_specs_icons").height + sourceSize.width: width + sourceSize.height: width + color: control.hovered ? UM.Theme.getColor("text_scene_hover") : UM.Theme.getColor("text_scene") + source: UM.Theme.getIcon("pencil") } } } + } - TextField + TextField + { + id: printJobTextfield + anchors.left: printJobPencilIcon.right + anchors.leftMargin: UM.Theme.getSize("narrow_margin").width + height: UM.Theme.getSize("jobspecs_line").height + width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) + maximumLength: 120 + property int unremovableSpacing: 5 + text: PrintInformation.jobName + horizontalAlignment: TextInput.AlignLeft + + onEditingFinished: { - id: printJobTextfield - anchors.right: printJobPencilIcon.left - anchors.rightMargin: UM.Theme.getSize("narrow_margin").width - height: UM.Theme.getSize("jobspecs_line").height - width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) - maximumLength: 120 - property int unremovableSpacing: 5 - text: PrintInformation.jobName - horizontalAlignment: TextInput.AlignRight + var new_name = text == "" ? catalog.i18nc("@text Print job name", "Untitled") : text + PrintInformation.setJobName(new_name, true) + printJobTextfield.focus = false + } - onEditingFinished: + validator: RegExpValidator { + regExp: /^[^\\\/\*\?\|\[\]]*$/ + } + + style: TextFieldStyle + { + textColor: UM.Theme.getColor("text_scene") + font: UM.Theme.getFont("default_bold") + background: Rectangle { - var new_name = text == "" ? catalog.i18nc("@text Print job name", "Untitled") : text - PrintInformation.setJobName(new_name, true) - printJobTextfield.focus = false - } - - validator: RegExpValidator { - regExp: /^[^\\\/\*\?\|\[\]]*$/ - } - - style: TextFieldStyle - { - textColor: UM.Theme.getColor("text_scene") - font: UM.Theme.getFont("default_bold") - background: Rectangle - { - opacity: 0 - border.width: 0 - } + opacity: 0 + border.width: 0 } } } @@ -118,22 +112,16 @@ Item { id: additionalComponentsRow anchors.top: jobNameRow.bottom - anchors.right: parent.right + anchors.left: parent.left } Label { id: boundingSpec anchors.top: jobNameRow.bottom - anchors.right: additionalComponentsRow.left - anchors.rightMargin: - { - if (additionalComponentsRow.width > 0) - { - return UM.Theme.getSize("default_margin").width - } - return 0 - } + anchors.left: additionalComponentsRow.right + anchors.leftMargin: additionalComponentsRow.width > 0 ? UM.Theme.getSize("default_margin").width : 0 + height: UM.Theme.getSize("jobspecs_line").height verticalAlignment: Text.AlignVCenter font: UM.Theme.getFont("default_bold") From 00e95e68eb974e19ac3f6960b86965dd9ada8fbf Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 5 Dec 2018 14:26:47 +0100 Subject: [PATCH 0691/1039] Removed unneeded Marketplace tag in logging The logger does that all by itself already. CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index f70543d5d7..cd20d26eca 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -781,7 +781,7 @@ class Toolbox(QObject, Extension): @pyqtSlot(str, str, str) def filterModelByProp(self, model_type: str, filter_type: str, parameter: str) -> None: if not self._models[model_type]: - Logger.log("w", "Marketplace: Couldn't filter %s model because it doesn't exist.", model_type) + Logger.log("w", "Couldn't filter %s model because it doesn't exist.", model_type) return self._models[model_type].setFilter({filter_type: parameter}) self.filterChanged.emit() @@ -789,7 +789,7 @@ class Toolbox(QObject, Extension): @pyqtSlot(str, "QVariantMap") def setFilters(self, model_type: str, filter_dict: dict) -> None: if not self._models[model_type]: - Logger.log("w", "Marketplace: Couldn't filter %s model because it doesn't exist.", model_type) + Logger.log("w", "Couldn't filter %s model because it doesn't exist.", model_type) return self._models[model_type].setFilter(filter_dict) self.filterChanged.emit() @@ -797,7 +797,7 @@ class Toolbox(QObject, Extension): @pyqtSlot(str) def removeFilters(self, model_type: str) -> None: if not self._models[model_type]: - Logger.log("w", "Marketplace: Couldn't remove filters on %s model because it doesn't exist.", model_type) + Logger.log("w", "Couldn't remove filters on %s model because it doesn't exist.", model_type) return self._models[model_type].setFilter({}) self.filterChanged.emit() From c757bf128e9fae8895973956a671fc0bcc430b31 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 09:12:43 +0100 Subject: [PATCH 0692/1039] Adjust colors and alignments in the print info panel --- resources/qml/Cura.qml | 6 +++--- resources/qml/ExpandableComponent.qml | 2 +- resources/themes/cura-light/theme.json | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 6559fafa12..ba1230f37d 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -226,8 +226,8 @@ UM.MainWindow { left: parent.left bottom: viewOrientationControls.top - margins: UM.Theme.getSize("wide_margin").width - bottomMargin: UM.Theme.getSize("default_margin").width + margins: UM.Theme.getSize("default_margin").width + bottomMargin: UM.Theme.getSize("thin_margin").width } } @@ -239,7 +239,7 @@ UM.MainWindow { left: parent.left bottom: parent.bottom - margins: UM.Theme.getSize("wide_margin").width + margins: UM.Theme.getSize("default_margin").width } } diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 9bedaa940c..3991ed74ba 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -142,7 +142,7 @@ Item visible: source != "" width: height height: Math.round(0.2 * base.height) - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("small_button_text") } MouseArea diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 767b6eaccd..3cea54ac77 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -123,8 +123,8 @@ "text_subtext": [0, 0, 0, 255], "text_medium": [128, 128, 128, 255], "text_emphasis": [255, 255, 255, 255], - "text_scene": [31, 36, 39, 255], - "text_scene_hover": [70, 84, 113, 255], + "text_scene": [102, 102, 102, 255], + "text_scene_hover": [123, 123, 113, 255], "error": [255, 140, 0, 255], "warning": [255, 190, 35, 255], @@ -144,10 +144,10 @@ "button_text_active_hover": [255, 255, 255, 255], "small_button": [0, 0, 0, 0], - "small_button_hover": [10, 8, 80, 255], + "small_button_hover": [102, 102, 102, 255], "small_button_active": [10, 8, 80, 255], "small_button_active_hover": [10, 8, 80, 255], - "small_button_text": [171, 171, 191, 255], + "small_button_text": [102, 102, 102, 255], "small_button_text_hover": [255, 255, 255, 255], "small_button_text_active": [255, 255, 255, 255], "small_button_text_active_hover": [255, 255, 255, 255], From b0c3a4e17a558154807a7807218367cb1b158a64 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 09:25:31 +0100 Subject: [PATCH 0693/1039] Align the additional components to the right of the job specs The model checker now shows centered --- plugins/ModelChecker/ModelChecker.qml | 12 +++++++----- resources/qml/JobSpecs.qml | 21 +++++++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/plugins/ModelChecker/ModelChecker.qml b/plugins/ModelChecker/ModelChecker.qml index 437df29516..ddeed063b1 100644 --- a/plugins/ModelChecker/ModelChecker.qml +++ b/plugins/ModelChecker/ModelChecker.qml @@ -4,19 +4,19 @@ import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 -import QtQuick.Dialogs 1.1 -import QtQuick.Window 2.2 import UM 1.2 as UM -import Cura 1.0 as Cura Button { id: modelCheckerButton - UM.I18nCatalog{id: catalog; name: "cura"} + UM.I18nCatalog + { + id: catalog + name: "cura" + } visible: manager.hasWarnings tooltip: catalog.i18nc("@info:tooltip", "Some things could be problematic in this print. Click to see tips for adjustment.") @@ -25,6 +25,8 @@ Button width: UM.Theme.getSize("save_button_specs_icons").width height: UM.Theme.getSize("save_button_specs_icons").height + anchors.verticalCenter: parent ? parent.verticalCenter : undefined + style: ButtonStyle { background: Item diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 97e12e15a3..8b06ab06db 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -108,19 +108,11 @@ Item } } - Row - { - id: additionalComponentsRow - anchors.top: jobNameRow.bottom - anchors.left: parent.left - } - Label { id: boundingSpec anchors.top: jobNameRow.bottom - anchors.left: additionalComponentsRow.right - anchors.leftMargin: additionalComponentsRow.width > 0 ? UM.Theme.getSize("default_margin").width : 0 + anchors.left: parent.left height: UM.Theme.getSize("jobspecs_line").height verticalAlignment: Text.AlignVCenter @@ -129,6 +121,15 @@ Item text: CuraApplication.getSceneBoundingBoxString } + Row + { + id: additionalComponentsRow + anchors.top: boundingSpec.top + anchors.bottom: boundingSpec.bottom + anchors.left: boundingSpec.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + } + Component.onCompleted: { base.addAdditionalComponents("jobSpecsButton") @@ -140,7 +141,7 @@ Item onAdditionalComponentsChanged: base.addAdditionalComponents("jobSpecsButton") } - function addAdditionalComponents (areaId) + function addAdditionalComponents(areaId) { if (areaId == "jobSpecsButton") { From 838949dac74831e38e9f07fe7d628af7807320db Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 09:45:27 +0100 Subject: [PATCH 0694/1039] Moved qml pages of toolbox to a loader This dramatically improves the loading of the toolbox dialog CURA-6006 --- plugins/Toolbox/resources/qml/Toolbox.qml | 54 ++++++++++----------- plugins/Toolbox/src/Toolbox.py | 59 +++++++++++------------ 2 files changed, 52 insertions(+), 61 deletions(-) diff --git a/plugins/Toolbox/resources/qml/Toolbox.qml b/plugins/Toolbox/resources/qml/Toolbox.qml index 853cec399d..d3d980b0b3 100644 --- a/plugins/Toolbox/resources/qml/Toolbox.qml +++ b/plugins/Toolbox/resources/qml/Toolbox.qml @@ -44,36 +44,31 @@ Window top: header.bottom bottom: footer.top } - // TODO: This could be improved using viewFilter instead of viewCategory - ToolboxLoadingPage + + Loader { - id: viewLoading - visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "loading" - } - ToolboxErrorPage - { - id: viewErrored - visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "errored" - } - ToolboxDownloadsPage - { - id: viewDownloads - visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "overview" - } - ToolboxDetailPage - { - id: viewDetail - visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "detail" - } - ToolboxAuthorPage - { - id: viewAuthor - visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "author" - } - ToolboxInstalledPage - { - id: installedPluginList - visible: toolbox.viewCategory == "installed" + anchors.fill:parent + source: + { + if(toolbox.viewCategory == "installed") + { + return "ToolboxInstalledPage.qml" + } + + switch (toolbox.viewPage) + { + case "loading": + return "ToolboxLoadingPage.qml" + case "errored": + return "ToolboxErrorPage.qml" + case "overview": + return "ToolboxDownloadsPage.qml" + case "detail": + return "ToolboxDetailPage.qml" + case "author": + return "ToolboxAuthorPage.qml" + } + } } } @@ -95,6 +90,7 @@ Window licenseDialog.show(); } } + ToolboxLicenseDialog { id: licenseDialog diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index cd20d26eca..c8349827a9 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -622,44 +622,39 @@ class Toolbox(QObject, Extension): if reply.operation() == QNetworkAccessManager.GetOperation: for response_type, url in self._request_urls.items(): - if reply.url() == url: - if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200: - try: - json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) + if reply.url() != url: + continue - # Check for errors: - if "errors" in json_data: - for error in json_data["errors"]: - Logger.log("e", "%s", error["title"]) - return + if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200: + try: + json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.decoder.JSONDecodeError: + Logger.log("w", "Received invalid JSON for %s.", response_type) + break - # Create model and apply metadata: - if not self._models[response_type]: - Logger.log("e", "Could not find the %s model.", response_type) - break - - self._server_response_data[response_type] = json_data["data"] - self._models[response_type].setMetadata(self._server_response_data[response_type]) + # Check for errors: + if "errors" in json_data: + for error in json_data["errors"]: + Logger.log("e", "%s", error["title"]) + return - if response_type is "packages": - self._models[response_type].setFilter({"type": "plugin"}) - self.reBuildMaterialsModels() - self.reBuildPluginsModels() - elif response_type is "authors": - self._models[response_type].setFilter({"package_types": "material"}) - self._models[response_type].setFilter({"tags": "generic"}) + self._server_response_data[response_type] = json_data["data"] + self._models[response_type].setMetadata(json_data["data"]) - self.metadataChanged.emit() + if response_type is "packages": + self._models["packages"].setFilter({"type": "plugin"}) + self.reBuildMaterialsModels() + self.reBuildPluginsModels() + elif response_type is "authors": + self._models["authors"].setFilter({"tags": "generic"}) - if self.isLoadingComplete(): - self.setViewPage("overview") + self.metadataChanged.emit() - except json.decoder.JSONDecodeError: - Logger.log("w", "Received invalid JSON for %s.", response_type) - break - else: - self.setViewPage("errored") - self.resetDownload() + if self.isLoadingComplete(): + self.setViewPage("overview") + else: + self.setViewPage("errored") + self.resetDownload() else: # Ignore any operation that is not a get operation pass From 6a466c99b241035a6dc6d9cbbf174f39d51aad3d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 09:54:32 +0100 Subject: [PATCH 0695/1039] Make the progressButton use signals instead of functions Although the naming is still a bit off, it's much cleaner to use signals instead of functions. It's also more in line with how default QML components handle these kind of situations CURA-6006 --- plugins/Toolbox/resources/qml/Toolbox.qml | 2 +- .../qml/ToolboxDetailTileActions.qml | 23 ++++++++----------- .../qml/ToolboxInstalledTileActions.qml | 8 +++---- .../resources/qml/ToolboxProgressButton.qml | 12 +++++----- 4 files changed, 19 insertions(+), 26 deletions(-) diff --git a/plugins/Toolbox/resources/qml/Toolbox.qml b/plugins/Toolbox/resources/qml/Toolbox.qml index d3d980b0b3..b2bab4355a 100644 --- a/plugins/Toolbox/resources/qml/Toolbox.qml +++ b/plugins/Toolbox/resources/qml/Toolbox.qml @@ -90,7 +90,7 @@ Window licenseDialog.show(); } } - + ToolboxLicenseDialog { id: licenseDialog diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml index cd1e4cdbda..72a9d14dcd 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml @@ -18,19 +18,15 @@ Column id: installButton active: toolbox.isDownloading && toolbox.activePackage == model complete: installed - readyAction: function() + onReadyAction: { toolbox.activePackage = model toolbox.startDownload(model.download_url) } - activeAction: function() - { - toolbox.cancelDownload() - } - completeAction: function() - { - toolbox.viewCategory = "installed" - } + onActiveAction: toolbox.cancelDownload() + + onCompleteAction: toolbox.viewCategory = "installed" + // Don't allow installing while another download is running enabled: installed || !(toolbox.isDownloading && toolbox.activePackage != model) opacity: enabled ? 1.0 : 0.5 @@ -44,20 +40,19 @@ Column readyLabel: catalog.i18nc("@action:button", "Update") activeLabel: catalog.i18nc("@action:button", "Updating") completeLabel: catalog.i18nc("@action:button", "Updated") - readyAction: function() + + onReadyAction: { toolbox.activePackage = model toolbox.update(model.id) } - activeAction: function() - { - toolbox.cancelDownload() - } + onActiveAction: toolbox.cancelDownload() // Don't allow installing while another download is running enabled: !(toolbox.isDownloading && toolbox.activePackage != model) opacity: enabled ? 1.0 : 0.5 visible: canUpdate } + Connections { target: toolbox diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml index 8fd88b1cfd..621ecd96ea 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml @@ -30,15 +30,13 @@ Column readyLabel: catalog.i18nc("@action:button", "Update") activeLabel: catalog.i18nc("@action:button", "Updating") completeLabel: catalog.i18nc("@action:button", "Updated") - readyAction: function() + onReadyAction: { toolbox.activePackage = model toolbox.update(model.id) } - activeAction: function() - { - toolbox.cancelDownload() - } + onActiveAction: toolbox.cancelDownload() + // Don't allow installing while another download is running enabled: !(toolbox.isDownloading && toolbox.activePackage != model) opacity: enabled ? 1.0 : 0.5 diff --git a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml index 2744e40ec9..00b0b985f5 100644 --- a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml @@ -18,9 +18,9 @@ Item property var activeLabel: catalog.i18nc("@action:button", "Cancel") property var completeLabel: catalog.i18nc("@action:button", "Installed") - property var readyAction: null // Action when button is ready and clicked (likely install) - property var activeAction: null // Action when button is active and clicked (likely cancel) - property var completeAction: null // Action when button is complete and clicked (likely go to installed) + signal readyAction() // Action when button is ready and clicked (likely install) + signal activeAction() // Action when button is active and clicked (likely cancel) + signal completeAction() // Action when button is complete and clicked (likely go to installed) width: UM.Theme.getSize("toolbox_action_button").width height: UM.Theme.getSize("toolbox_action_button").height @@ -47,15 +47,15 @@ Item { if (complete) { - return completeAction() + completeAction() } else if (active) { - return activeAction() + activeAction() } else { - return readyAction() + readyAction() } } style: ButtonStyle From 2602d5bf02287745831d3d264bbc8e3dcda37541 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 10:46:19 +0100 Subject: [PATCH 0696/1039] Add changed checks to prevent unneeded signals from being fired CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index c8349827a9..68919cf987 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -546,7 +546,7 @@ class Toolbox(QObject, Extension): # Check for plugins that were installed with the old plugin browser def isOldPlugin(self, plugin_id: str) -> bool: - return plugin_id in self._old_plugin_ids + return plugin_id in self._old_plugin_ids def getOldPluginPackageMetadata(self, plugin_id: str) -> Optional[Dict[str, Any]]: return self._old_plugin_metadata.get(plugin_id) @@ -709,8 +709,9 @@ class Toolbox(QObject, Extension): return self._is_downloading def setActivePackage(self, package: Dict[str, Any]) -> None: - self._active_package = package - self.activePackageChanged.emit() + if self._active_package != package: + self._active_package = package + self.activePackageChanged.emit() ## The active package is the package that is currently being downloaded @pyqtProperty(QObject, fset = setActivePackage, notify = activePackageChanged) @@ -718,16 +719,18 @@ class Toolbox(QObject, Extension): return self._active_package def setViewCategory(self, category: str = "plugin") -> None: - self._view_category = category - self.viewChanged.emit() + if self._view_category != category: + self._view_category = category + self.viewChanged.emit() @pyqtProperty(str, fset = setViewCategory, notify = viewChanged) def viewCategory(self) -> str: return self._view_category def setViewPage(self, page: str = "overview") -> None: - self._view_page = page - self.viewChanged.emit() + if self._view_page != page: + self._view_page = page + self.viewChanged.emit() @pyqtProperty(str, fset = setViewPage, notify = viewChanged) def viewPage(self) -> str: From f7f3c96f81d82cead247c3ecd0d3925d79047a48 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 6 Dec 2018 10:53:40 +0100 Subject: [PATCH 0697/1039] Fix typo CURA-5941 --- .../Recommended/RecommendedAdhesionSelector.qml | 2 +- .../Recommended/RecommendedInfillDensitySelector.qml | 2 +- .../Recommended/RecommendedPrintSetup.qml | 2 +- .../Recommended/RecommendedSupportSelector.qml | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml index 3092644d4e..a5f35f333b 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml @@ -50,7 +50,7 @@ Item //: Setting enable printing build-plate adhesion helper checkbox style: UM.Theme.styles.checkbox - enabled: recommendedPrintSettup.settingsEnabled + enabled: recommendedPrintSetup.settingsEnabled visible: platformAdhesionType.properties.enabled == "True" checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 7c026ac9de..2971415948 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -189,7 +189,7 @@ Item text: catalog.i18nc("@label", "Gradual infill") style: UM.Theme.styles.checkbox - enabled: recommendedPrintSettup.settingsEnabled + enabled: recommendedPrintSetup.settingsEnabled visible: infillSteps.properties.enabled == "True" checked: parseInt(infillSteps.properties.value) > 0 diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index 618c519d31..6885f8c041 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -10,7 +10,7 @@ import Cura 1.0 as Cura Item { - id: recommendedPrintSettup + id: recommendedPrintSetup height: childrenRect.height + 2 * padding diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index da46f2a735..57e0c8ce6b 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -50,7 +50,7 @@ Item property alias _hovered: enableSupportMouseArea.containsMouse style: UM.Theme.styles.checkbox - enabled: recommendedPrintSettup.settingsEnabled + enabled: recommendedPrintSetup.settingsEnabled visible: supportEnabled.properties.enabled == "True" checked: supportEnabled.properties.value == "True" @@ -87,7 +87,7 @@ Item } style: UM.Theme.styles.combobox_color - enabled: recommendedPrintSettup.settingsEnabled + enabled: recommendedPrintSetup.settingsEnabled visible: enableSupportCheckBox.visible && (supportEnabled.properties.value == "True") && (extrudersEnabledCount.properties.value > 1) textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started @@ -127,7 +127,7 @@ Item id: supportExtruderMouseArea anchors.fill: parent hoverEnabled: true - enabled: recommendedPrintSettup.settingsEnabled + enabled: recommendedPrintSetup.settingsEnabled acceptedButtons: Qt.NoButton onEntered: { From 48e15daf6410e19fd8eb658061a925c4e714ee1b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 6 Dec 2018 11:16:42 +0100 Subject: [PATCH 0698/1039] Fix height of scroll view and make scrollable Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 2 +- .../qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index af2712be44..6ac1e6a2ad 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -14,7 +14,7 @@ Button property var configuration: null hoverEnabled: true - height: childrenRect.height + height: background.height background: Rectangle { diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 5a9f72260c..d07337f9c5 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -28,7 +28,9 @@ Column { id: container width: parent.width - height: Math.min(configurationList.contentHeight, 350 * screenScaleFactor) + height: Math.round(Math.min(configurationList.height, 350 * screenScaleFactor)) + contentHeight: configurationList.height + clip: true ButtonGroup { @@ -41,6 +43,7 @@ Column spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) width: container.width contentHeight: childrenRect.height + height: childrenRect.height section.property: "modelData.printerType" section.criteria: ViewSection.FullString From f655e6c43ee115cdad81b7683cab1902cf930258 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 11:30:59 +0100 Subject: [PATCH 0699/1039] Add a pattern in the background of the header. Adjust some main colors to the ones in the designs. --- resources/qml/Cura.qml | 65 +- resources/qml/MainWindow/MainWindowHeader.qml | 27 +- .../cura-light/images/header_pattern.svg | 1903 ++++++++++++++++- resources/themes/cura-light/theme.json | 22 +- 4 files changed, 1940 insertions(+), 77 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 3578888886..f16ae9a19b 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -88,6 +88,30 @@ UM.MainWindow window: base } + Rectangle + { + id: headerBackground + anchors + { + top: parent.top + left: parent.left + right: parent.right + } + height: stageMenu.source != "" ? Math.round(mainWindowHeader.height + stageMenu.height / 2) : mainWindowHeader.height + color: UM.Theme.getColor("main_window_header_background") + + // This is the new fancy pattern + Image + { + id: backgourndPattern + anchors.fill: parent + fillMode: Image.Tile + source: UM.Theme.getImage("header_pattern") + horizontalAlignment: Image.AlignLeft + verticalAlignment: Image.AlignTop + } + } + MainWindowHeader { id: mainWindowHeader @@ -144,44 +168,6 @@ UM.MainWindow } } - Rectangle - { - id: stageMenuBackground - anchors - { - left: parent.left - right: parent.right - top: parent.top - } - visible: stageMenu.source != "" - height: visible ? Math.round(UM.Theme.getSize("stage_menu").height / 2) : 0 - - LinearGradient - { - anchors.fill: parent - start: Qt.point(0, 0) - end: Qt.point(parent.width, 0) - gradient: Gradient - { - GradientStop - { - position: 0.0 - color: UM.Theme.getColor("main_window_header_background") - } - GradientStop - { - position: 0.5 - color: UM.Theme.getColor("main_window_header_background_gradient") - } - GradientStop - { - position: 1.0 - color: UM.Theme.getColor("main_window_header_background") - } - } - } - } - Connections { target: stageMenu.item @@ -257,7 +243,8 @@ UM.MainWindow anchors { - top: stageMenuBackground.bottom + // Align to the top of the stageMenu since the stageMenu may not exist + top: parent.top left: parent.left right: parent.right bottom: parent.bottom diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index fa0594e2ae..ae1c13d9c3 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -12,38 +12,13 @@ import QtGraphicalEffects 1.0 import "../Account" -Rectangle +Item { id: base implicitHeight: UM.Theme.getSize("main_window_header").height implicitWidth: UM.Theme.getSize("main_window_header").width - LinearGradient - { - anchors.fill: parent - start: Qt.point(0, 0) - end: Qt.point(parent.width, 0) - gradient: Gradient - { - GradientStop - { - position: 0.0 - color: UM.Theme.getColor("main_window_header_background") - } - GradientStop - { - position: 0.5 - color: UM.Theme.getColor("main_window_header_background_gradient") - } - GradientStop - { - position: 1.0 - color: UM.Theme.getColor("main_window_header_background") - } - } - } - Image { id: logo diff --git a/resources/themes/cura-light/images/header_pattern.svg b/resources/themes/cura-light/images/header_pattern.svg index 2a9de2f3e9..14ea9dc917 100644 --- a/resources/themes/cura-light/images/header_pattern.svg +++ b/resources/themes/cura-light/images/header_pattern.svg @@ -1 +1,1902 @@ -Pattern \ No newline at end of file + + + + Pattern_Cura_1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 767b6eaccd..a4ed45fb24 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -93,14 +93,14 @@ "secondary_button_hover": [228, 228, 228, 255], "secondary_button_text": [30, 102, 215, 255], - "main_window_header_background": [10, 8, 80, 255], + "main_window_header_background": [8, 7, 63, 255], "main_window_header_background_gradient": [25, 23, 91, 255], - "main_window_header_button_text_active": [10, 8, 80, 255], + "main_window_header_button_text_active": [8, 7, 63, 255], "main_window_header_button_text_inactive": [255, 255, 255, 255], "main_window_header_button_text_hovered": [255, 255, 255, 255], "main_window_header_button_background_active": [255, 255, 255, 255], "main_window_header_button_background_inactive": [255, 255, 255, 0], - "main_window_header_button_background_hovered": [255, 255, 255, 102], + "main_window_header_button_background_hovered": [117, 114, 159, 255], "account_widget_outline_active": [70, 66, 126, 255], @@ -113,7 +113,7 @@ "toolbar_background": [255, 255, 255, 255], - "printer_type_label_background": [171, 171, 191, 255], + "printer_type_label_background": [228, 228, 242, 255], "text": [0, 0, 0, 255], "text_detail": [174, 174, 174, 128], @@ -127,9 +127,9 @@ "text_scene_hover": [70, 84, 113, 255], "error": [255, 140, 0, 255], - "warning": [255, 190, 35, 255], + "warning": [245, 166, 35, 255], - "toolbar_button_text": [10, 8, 80, 255], + "toolbar_button_text": [8, 7, 63, 255], "toolbar_button_hover": [232, 242, 252, 255], "toolbar_button_active": [232, 242, 252, 255], "toolbar_button_active_hover": [232, 242, 252, 255], @@ -144,9 +144,9 @@ "button_text_active_hover": [255, 255, 255, 255], "small_button": [0, 0, 0, 0], - "small_button_hover": [10, 8, 80, 255], - "small_button_active": [10, 8, 80, 255], - "small_button_active_hover": [10, 8, 80, 255], + "small_button_hover": [8, 7, 63, 255], + "small_button_active": [8, 7, 63, 255], + "small_button_active_hover": [8, 7, 63, 255], "small_button_text": [171, 171, 191, 255], "small_button_text_hover": [255, 255, 255, 255], "small_button_text_active": [255, 255, 255, 255], @@ -222,8 +222,8 @@ "progressbar_control": [50, 130, 255, 255], "slider_groove": [223, 223, 223, 255], - "slider_groove_fill": [10, 8, 80, 255], - "slider_handle": [10, 8, 80, 255], + "slider_groove_fill": [8, 7, 63, 255], + "slider_handle": [8, 7, 63, 255], "slider_handle_active": [50, 130, 255, 255], "slider_text_background": [255, 255, 255, 255], From aab61ce8dac70c8a24ded4db31641ff67f0fb8c7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 11:35:33 +0100 Subject: [PATCH 0700/1039] Modify the header pattern to be have an empty space in the left and bottom, so when repeating the pattern it doesn't overlap. --- .../cura-light/images/header_pattern.svg | 3789 ++++++++--------- 1 file changed, 1894 insertions(+), 1895 deletions(-) diff --git a/resources/themes/cura-light/images/header_pattern.svg b/resources/themes/cura-light/images/header_pattern.svg index 14ea9dc917..eff5f01cfa 100644 --- a/resources/themes/cura-light/images/header_pattern.svg +++ b/resources/themes/cura-light/images/header_pattern.svg @@ -1,1902 +1,1901 @@ - + - Pattern_Cura_1 + Desktop HD Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 26a41c37265822414c3b79e58acce3fc2765a51a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 11:45:14 +0100 Subject: [PATCH 0701/1039] Adjust the color of the printer in the printer selector For that I needed to get rid of the IconLabel component, since in this case the color of the icon and the text is the same (and it makes sense) --- .../qml/PrinterSelector/MachineSelector.qml | 57 +++++++++++++------ resources/themes/cura-light/theme.json | 1 + 2 files changed, 41 insertions(+), 17 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 91b5591cd8..95abfd6644 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -25,29 +25,52 @@ Cura.ExpandableComponent name: "cura" } - headerItem: Cura.IconLabel + headerItem: Item { - text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName - source: - { - if (isNetworkPrinter) - { - if (machineSelector.outputDevice != null && machineSelector.outputDevice.clusterSize > 1) - { - return UM.Theme.getIcon("printer_group") - } - return UM.Theme.getIcon("printer_single") - } - return "" - } - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("text") - iconSize: UM.Theme.getSize("machine_selector_icon").width + implicitHeight: icon.height UM.RecolorImage { id: icon + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + + source: + { + if (isNetworkPrinter) + { + if (machineSelector.outputDevice != null && machineSelector.outputDevice.clusterSize > 1) + { + return UM.Theme.getIcon("printer_group") + } + return UM.Theme.getIcon("printer_single") + } + return "" + } + width: UM.Theme.getSize("machine_selector_icon").width + height: width + + color: UM.Theme.getColor("machine_selector_printer_icon") + visible: source != "" + } + + Label + { + id: label + anchors.left: icon.visible ? icon.right : parent.left + anchors.right: parent.right + anchors.leftMargin: UM.Theme.getSize("thin_margin").width + anchors.verticalCenter: icon.verticalCenter + text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName + elide: Text.ElideRight + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering + } + + UM.RecolorImage + { anchors { bottom: parent.bottom diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index a4ed45fb24..2d7e92be4d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -108,6 +108,7 @@ "machine_selector_active": [68, 72, 75, 255], "machine_selector_hover": [68, 72, 75, 255], "machine_selector_text_active": [255, 255, 255, 255], + "machine_selector_printer_icon": [8, 7, 63, 255], "action_panel_secondary": [27, 95, 202, 255], From 47626f603341dc8d71688e1722f2a498763707f6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 11:57:55 +0100 Subject: [PATCH 0702/1039] Fix the color and proportions of the cura logo in the about panel --- resources/qml/Dialogs/AboutDialog.qml | 4 +- .../themes/cura-light/images/logo_about.svg | 172 ++++++++++++++++++ 2 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 resources/themes/cura-light/images/logo_about.svg diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index 94eca4e7c0..add84614e0 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -35,9 +35,9 @@ UM.Dialog { id: logo width: (base.minimumWidth * 0.85) | 0 - height: (width * (1/4.25)) | 0 + height: (width * (UM.Theme.getSize("logo").height / UM.Theme.getSize("logo").width)) | 0 - source: UM.Theme.getImage("logo") + source: UM.Theme.getImage("logo_about") anchors.top: parent.top anchors.topMargin: ((base.minimumWidth - width) / 2) | 0 diff --git a/resources/themes/cura-light/images/logo_about.svg b/resources/themes/cura-light/images/logo_about.svg new file mode 100644 index 0000000000..34301fd6c9 --- /dev/null +++ b/resources/themes/cura-light/images/logo_about.svg @@ -0,0 +1,172 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 84c85439ff4db4db77eecc1657fcd78634eca16e Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 6 Dec 2018 12:00:26 +0100 Subject: [PATCH 0703/1039] The trigger_early_crash did not trigger early crash for testing purposes CURA-5939 --- cura/CuraApplication.py | 6 ++++-- cura_app.py | 6 ------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 47cc94f972..dfdb50515f 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -181,7 +181,6 @@ class CuraApplication(QtApplication): # Variables set from CLI self._files_to_open = [] self._use_single_instance = False - self._trigger_early_crash = False # For debug only self._single_instance = None @@ -292,7 +291,10 @@ class CuraApplication(QtApplication): sys.exit(0) self._use_single_instance = self._cli_args.single_instance - self._trigger_early_crash = self._cli_args.trigger_early_crash + # FOR TESTING ONLY + if self._cli_args.trigger_early_crash: + assert not "This crash is triggered by the trigger_early_crash command line argument." + for filename in self._cli_args.file: self._files_to_open.append(os.path.abspath(filename)) diff --git a/cura_app.py b/cura_app.py index 164e32e738..8df12d771a 100755 --- a/cura_app.py +++ b/cura_app.py @@ -17,12 +17,6 @@ parser.add_argument("--debug", default = False, help = "Turn on the debug mode by setting this option." ) -parser.add_argument("--trigger-early-crash", - dest = "trigger_early_crash", - action = "store_true", - default = False, - help = "FOR TESTING ONLY. Trigger an early crash to show the crash dialog." - ) known_args = vars(parser.parse_known_args()[0]) if not known_args["debug"]: From f1fec2f28082661e58b6fb0824521d69409bb4fb Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 6 Dec 2018 12:07:03 +0100 Subject: [PATCH 0704/1039] Theme the scroll bar We need to make this a reusable component at some point, I think. This is the first time we're using the QtQuick2 version of ScrollView. Contributes to issue CURA-5876. --- .../ConfigurationListView.qml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index d07337f9c5..e7936b69d2 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -28,10 +28,25 @@ Column { id: container width: parent.width - height: Math.round(Math.min(configurationList.height, 350 * screenScaleFactor)) + readonly property int maximumHeight: 350 * screenScaleFactor + height: Math.round(Math.min(configurationList.height, maximumHeight)) contentHeight: configurationList.height clip: true + ScrollBar.vertical.policy: (configurationList.height > maximumHeight) ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff //The AsNeeded policy also hides it when the cursor is away, and we don't want that. + ScrollBar.vertical.background: Rectangle + { + implicitWidth: UM.Theme.getSize("scrollbar").width + radius: width / 2 + color: UM.Theme.getColor("scrollbar_background") + } + ScrollBar.vertical.contentItem: Rectangle + { + implicitWidth: UM.Theme.getSize("scrollbar").width + radius: width / 2 + color: UM.Theme.getColor(parent.pressed ? "scrollbar_handle_down" : parent.hovered ? "scrollbar_handle_hover" : "scrollbar_handle") + } + ButtonGroup { buttons: configurationList.children @@ -41,7 +56,7 @@ Column { id: configurationList spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) - width: container.width + width: container.width - ((height > container.maximumHeight) ? container.ScrollBar.vertical.background.width : 0) //Make room for scroll bar if there is any. contentHeight: childrenRect.height height: childrenRect.height From e8cf9e034db4bf232f29171908e144d6455f0936 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 6 Dec 2018 13:41:50 +0100 Subject: [PATCH 0705/1039] Catch All Exception except: SystemExit, KeyboardInterrupt, GeneratorException CURA-5939 --- cura/CrashHandler.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index 46544ca0ef..d43743bc37 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -36,18 +36,14 @@ else: except ImportError: CuraDebugMode = False # [CodeStyle: Reflecting imported value] -# List of exceptions that should be considered "fatal" and abort the program. -# These are primarily some exception types that we simply cannot really recover from -# (MemoryError and SystemError) and exceptions that indicate grave errors in the -# code that cause the Python interpreter to fail (SyntaxError, ImportError). -fatal_exception_types = [ - MemoryError, - SyntaxError, - ImportError, - SystemError, +# List of exceptions that should not be considered "fatal" and abort the program. +# These are primarily some exception types that we simply skip +skip_exception_types = [ + SystemExit, + KeyboardInterrupt, + GeneratorExit ] - class CrashHandler: crash_url = "https://stats.ultimaker.com/api/cura" @@ -70,7 +66,7 @@ class CrashHandler: # If Cura has fully started, we only show fatal errors. # If Cura has not fully started yet, we always show the early crash dialog. Otherwise, Cura will just crash # without any information. - if has_started and exception_type not in fatal_exception_types: + if has_started and exception_type in skip_exception_types: return if not has_started: @@ -387,7 +383,7 @@ class CrashHandler: Application.getInstance().callLater(self._show) def _show(self): - # When the exception is not in the fatal_exception_types list, the dialog is not created, so we don't need to show it + # When the exception is in the skip_exception_types list, the dialog is not created, so we don't need to show it if self.dialog: self.dialog.exec_() os._exit(1) From 4b79770d58e4f3f608a1aa6b079f07b522262564 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 13:42:29 +0100 Subject: [PATCH 0706/1039] Align the buttons in the output process widget The menu in the output device selector has now a rounded corner. --- resources/qml/ActionButton.qml | 5 ++++- .../ActionPanel/OutputDevicesActionButton.qml | 2 ++ .../qml/ActionPanel/OutputProcessWidget.qml | 17 ++++++++++++++--- resources/themes/cura-light/styles.qml | 2 +- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 54d77f7d59..fc4a1c05f4 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -7,6 +7,7 @@ import QtQuick.Controls 2.1 import QtGraphicalEffects 1.0 // For the dropshadow import UM 1.1 as UM +import Cura 1.0 as Cura Button { @@ -16,6 +17,7 @@ Button property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius property alias tooltip: tooltip.text + property alias cornerSide: backgroundRect.cornerSide property color color: UM.Theme.getColor("primary") property color hoverColor: UM.Theme.getColor("primary_hover") @@ -82,9 +84,10 @@ Button } } - background: Rectangle + background: Cura.RoundedRectangle { id: backgroundRect + cornerSide: Cura.RoundedRectangle.Direction.All color: button.enabled ? (button.hovered ? button.hoverColor : button.color) : button.disabledColor radius: UM.Theme.getSize("action_button_radius").width border.width: UM.Theme.getSize("default_lining").width diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 12e4ac42fd..95750e6d11 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -17,6 +17,7 @@ Item id: saveToButton height: parent.height fixedWidthMode: true + cornerSide: deviceSelectionMenu.visible ? Cura.RoundedRectangle.Direction.Left : Cura.RoundedRectangle.Direction.All anchors { @@ -44,6 +45,7 @@ Item shadowEnabled: true shadowColor: UM.Theme.getColor("primary_shadow") + cornerSide: Cura.RoundedRectangle.Direction.Right anchors { diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index d1790b3791..1d1a1e44e1 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -101,16 +101,24 @@ Column } } - Row + Item { id: buttonRow - spacing: UM.Theme.getSize("default_margin").width - width: parent.width + anchors.right: parent.right + anchors.left: parent.left + height: UM.Theme.getSize("action_button").height Cura.SecondaryButton { id: previewStageShortcut + anchors + { + left: parent.left + right: outputDevicesButton.left + rightMargin: UM.Theme.getSize("default_margin").width + } + height: UM.Theme.getSize("action_button").height leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width @@ -125,6 +133,9 @@ Column Cura.OutputDevicesActionButton { + id: outputDevicesButton + + anchors.right: parent.right width: previewStageShortcut.visible ? UM.Theme.getSize("action_button").width : parent.width height: UM.Theme.getSize("action_button").height } diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index aaa8ec18f1..30cf42859a 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -145,7 +145,7 @@ QtObject text: control.text anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter - font: UM.Theme.getFont("medium_bold") + font: UM.Theme.getFont("medium") color: { if (control.checked) From 76acb13f5962d9c185dd29aa8618f13db95c588a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 13:50:58 +0100 Subject: [PATCH 0707/1039] Change the play/pause button colors --- plugins/SimulationView/SimulationViewMainComponent.qml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMainComponent.qml b/plugins/SimulationView/SimulationViewMainComponent.qml index 16b9aeaae6..16b049c921 100644 --- a/plugins/SimulationView/SimulationViewMainComponent.qml +++ b/plugins/SimulationView/SimulationViewMainComponent.qml @@ -61,10 +61,9 @@ Item iconSource: !is_simulation_playing ? "./resources/simulation_resume.svg": "./resources/simulation_pause.svg" width: UM.Theme.getSize("small_button").width height: UM.Theme.getSize("small_button").height - hoverBackgroundColor: UM.Theme.getColor("small_button_hover") - hoverColor: UM.Theme.getColor("small_button_text_hover") - color: UM.Theme.getColor("small_button_text") - iconMargin: 0.5 * UM.Theme.getSize("wide_lining").width + hoverColor: UM.Theme.getColor("slider_handle_active") + color: UM.Theme.getColor("slider_handle") + iconMargin: UM.Theme.getSize("thick_lining").width visible: !UM.SimulationView.compatibilityMode Connections From 1e699604642f69dda88185a382cae0f657580d93 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 6 Dec 2018 13:52:57 +0100 Subject: [PATCH 0708/1039] Make it possible to disable ExpandableComponent It won't show the drop-down icon then, won't do hovers and won't allow you to click on it. This will not remove the contents of the ExpandableComponent menu bar item though, so that has to be done in ConfigurationMenu.qml. Contributes to issue CURA-5876. --- resources/qml/ExpandableComponent.qml | 4 +++- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 9bedaa940c..e42aa7e4a1 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -32,6 +32,8 @@ Item property color headerBackgroundColor: UM.Theme.getColor("action_button") property color headerHoverColor: UM.Theme.getColor("action_button_hovered") + property alias enabled: mouseArea.enabled + // Defines the alignment of the popup with respect of the headerItem, by default to the right property int popupAlignment: ExpandableComponent.PopupAlignment.AlignRight @@ -139,7 +141,7 @@ Item verticalCenter: parent.verticalCenter margins: background.padding } - visible: source != "" + visible: source != "" && base.enabled width: height height: Math.round(0.2 * base.height) color: UM.Theme.getColor("text") diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index f81176ab1a..c4671d3a3a 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -45,6 +45,7 @@ Cura.ExpandableComponent orientation: ListView.Horizontal anchors.fill: parent model: extrudersModel + visible: base.enabled delegate: Item { From 298c68c93b6a5d98f7a3847849045003f001a154 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 6 Dec 2018 13:56:06 +0100 Subject: [PATCH 0709/1039] Disable configuration menu if there are no configurations This then prevents you from dropping down into an empty menu. Contributes to issue CURA-5876. --- .../ConfigurationMenu/ConfigurationMenu.qml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index c4671d3a3a..edb74d0251 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -102,6 +102,23 @@ Cura.ExpandableComponent } } + //Disable the menu if there are no materials, variants or build plates to change. + function updateEnabled() + { + var active_definition_id = Cura.MachineManager.activeMachine.definition.id; + var has_materials = Cura.ContainerManager.getContainerMetaDataEntry(active_definition_id, "has_materials"); + var has_variants = Cura.ContainerManager.getContainerMetaDataEntry(active_definition_id, "has_variants"); + var has_buildplates = Cura.ContainerManager.getContainerMetaDataEntry(active_definition_id, "has_variant_buildplates"); + base.enabled = has_materials || has_variants || has_buildplates; //Only let it drop down if there is any configuration that you could change. + } + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: base.updateEnabled(); + } + Component.onCompleted: updateEnabled(); + popupItem: Column { id: popupItem From 85f2a7e8f692e5202f4821e25ea9a9a7d79d7501 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 6 Dec 2018 14:04:21 +0100 Subject: [PATCH 0710/1039] Move visible to Rows for extruder configs CURA-5941 So the whole row, such as "material", will be shown/hiden based on whether the machine has materials. --- .../Menus/ConfigurationMenu/CustomConfiguration.qml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 19b7158929..ac40958a29 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -140,6 +140,7 @@ Item Row { height: UM.Theme.getSize("print_setup_item").height + visible: extrudersModel.count > 1 // If there is only one extruder, there is no point to enable/disable that. Label { @@ -149,7 +150,6 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth - visible: extrudersModel.count > 1 } OldControls.CheckBox @@ -158,7 +158,6 @@ Item enabled: !checked || Cura.MachineManager.numberExtrudersEnabled > 1 //Disable if it's the last enabled extruder. height: UM.Theme.getSize("setting_control").height style: UM.Theme.styles.checkbox - visible: extrudersModel.count > 1 /* Use a MouseArea to process the click on this checkbox. This is necessary because actually clicking the checkbox @@ -177,6 +176,8 @@ Item Row { height: UM.Theme.getSize("print_setup_item").height + visible: Cura.MachineManager.hasMaterials + Label { text: catalog.i18nc("@label", "Material") @@ -185,7 +186,6 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth - visible: materialSelection.visible } OldControls.ToolButton @@ -197,7 +197,6 @@ Item text: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.material.name : "" tooltip: text - visible: Cura.MachineManager.hasMaterials height: UM.Theme.getSize("setting_control").height width: selectors.controlWidth @@ -214,6 +213,7 @@ Item Row { height: UM.Theme.getSize("print_setup_item").height + visible: Cura.MachineManager.hasVariants Label { @@ -223,15 +223,13 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth - visible: variantSelection.visible } OldControls.ToolButton { id: variantSelection text: Cura.MachineManager.activeVariantName - tooltip: Cura.MachineManager.activeVariantName; - visible: Cura.MachineManager.hasVariants + tooltip: Cura.MachineManager.activeVariantName height: UM.Theme.getSize("setting_control").height width: selectors.controlWidth From 54def4edee6d743eaf43988a8b2568bebc8fee53 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 14:12:35 +0100 Subject: [PATCH 0711/1039] Revert "Moved qml pages of toolbox to a loader" This reverts commit 838949dac74831e38e9f07fe7d628af7807320db. --- plugins/Toolbox/resources/qml/Toolbox.qml | 55 +++++++++++---------- plugins/Toolbox/src/Toolbox.py | 59 ++++++++++++----------- 2 files changed, 62 insertions(+), 52 deletions(-) diff --git a/plugins/Toolbox/resources/qml/Toolbox.qml b/plugins/Toolbox/resources/qml/Toolbox.qml index b2bab4355a..7cc5a730f2 100644 --- a/plugins/Toolbox/resources/qml/Toolbox.qml +++ b/plugins/Toolbox/resources/qml/Toolbox.qml @@ -44,31 +44,36 @@ Window top: header.bottom bottom: footer.top } - - Loader + // TODO: This could be improved using viewFilter instead of viewCategory + ToolboxLoadingPage { - anchors.fill:parent - source: - { - if(toolbox.viewCategory == "installed") - { - return "ToolboxInstalledPage.qml" - } - - switch (toolbox.viewPage) - { - case "loading": - return "ToolboxLoadingPage.qml" - case "errored": - return "ToolboxErrorPage.qml" - case "overview": - return "ToolboxDownloadsPage.qml" - case "detail": - return "ToolboxDetailPage.qml" - case "author": - return "ToolboxAuthorPage.qml" - } - } + id: viewLoading + visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "loading" + } + ToolboxErrorPage + { + id: viewErrored + visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "errored" + } + ToolboxDownloadsPage + { + id: viewDownloads + visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "overview" + } + ToolboxDetailPage + { + id: viewDetail + visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "detail" + } + ToolboxAuthorPage + { + id: viewAuthor + visible: toolbox.viewCategory != "installed" && toolbox.viewPage == "author" + } + ToolboxInstalledPage + { + id: installedPluginList + visible: toolbox.viewCategory == "installed" } } @@ -90,7 +95,7 @@ Window licenseDialog.show(); } } - + ToolboxLicenseDialog { id: licenseDialog diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 68919cf987..ef67dc3c86 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -622,39 +622,44 @@ class Toolbox(QObject, Extension): if reply.operation() == QNetworkAccessManager.GetOperation: for response_type, url in self._request_urls.items(): - if reply.url() != url: - continue + if reply.url() == url: + if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200: + try: + json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) - if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200: - try: - json_data = json.loads(bytes(reply.readAll()).decode("utf-8")) - except json.decoder.JSONDecodeError: - Logger.log("w", "Received invalid JSON for %s.", response_type) - break + # Check for errors: + if "errors" in json_data: + for error in json_data["errors"]: + Logger.log("e", "%s", error["title"]) + return - # Check for errors: - if "errors" in json_data: - for error in json_data["errors"]: - Logger.log("e", "%s", error["title"]) - return + # Create model and apply metadata: + if not self._models[response_type]: + Logger.log("e", "Could not find the %s model.", response_type) + break + + self._server_response_data[response_type] = json_data["data"] + self._models[response_type].setMetadata(self._server_response_data[response_type]) - self._server_response_data[response_type] = json_data["data"] - self._models[response_type].setMetadata(json_data["data"]) + if response_type is "packages": + self._models[response_type].setFilter({"type": "plugin"}) + self.reBuildMaterialsModels() + self.reBuildPluginsModels() + elif response_type is "authors": + self._models[response_type].setFilter({"package_types": "material"}) + self._models[response_type].setFilter({"tags": "generic"}) - if response_type is "packages": - self._models["packages"].setFilter({"type": "plugin"}) - self.reBuildMaterialsModels() - self.reBuildPluginsModels() - elif response_type is "authors": - self._models["authors"].setFilter({"tags": "generic"}) + self.metadataChanged.emit() - self.metadataChanged.emit() + if self.isLoadingComplete(): + self.setViewPage("overview") - if self.isLoadingComplete(): - self.setViewPage("overview") - else: - self.setViewPage("errored") - self.resetDownload() + except json.decoder.JSONDecodeError: + Logger.log("w", "Received invalid JSON for %s.", response_type) + break + else: + self.setViewPage("errored") + self.resetDownload() else: # Ignore any operation that is not a get operation pass From 05075c44ee31902bec6c9f9167acb7d00025c030 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 14:19:34 +0100 Subject: [PATCH 0712/1039] Add renderType to some labels in the Configuration panel Contributes to CURA-5876. --- resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml | 1 + resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 5 ++++- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index a09d6d2ba4..68c56c7c4b 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -19,6 +19,7 @@ Item font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") height: contentHeight + renderType: Text.NativeRendering anchors { diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index edb74d0251..1d086acc67 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -71,6 +71,7 @@ Cura.ExpandableComponent elide: Text.ElideRight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_inactive") + renderType: Text.NativeRendering anchors { @@ -88,6 +89,7 @@ Cura.ExpandableComponent elide: Text.ElideRight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") + renderType: Text.NativeRendering anchors { @@ -155,8 +157,9 @@ Cura.ExpandableComponent { id: separator visible: buttonBar.visible + x: -popupPadding - width: parent.width + width: base.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 19b7158929..8d8f84155a 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -26,6 +26,7 @@ Item font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") height: contentHeight + renderType: Text.NativeRendering anchors { @@ -150,6 +151,7 @@ Item height: parent.height width: selectors.textWidth visible: extrudersModel.count > 1 + renderType: Text.NativeRendering } OldControls.CheckBox @@ -186,6 +188,7 @@ Item height: parent.height width: selectors.textWidth visible: materialSelection.visible + renderType: Text.NativeRendering } OldControls.ToolButton @@ -224,6 +227,7 @@ Item height: parent.height width: selectors.textWidth visible: variantSelection.visible + renderType: Text.NativeRendering } OldControls.ToolButton From 3c517d3fcce96c4f57f75bbbcf53a086d49f4055 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 6 Dec 2018 14:25:18 +0100 Subject: [PATCH 0713/1039] The top bar background overlaps settings bar --- resources/qml/Cura.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index f16ae9a19b..a75ab44b99 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -93,7 +93,7 @@ UM.MainWindow id: headerBackground anchors { - top: parent.top + top: applicationMenu.bottom left: parent.left right: parent.right } From 3ca749cdcbbc9526586d979acfa9e8ab9489bedc Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 14:31:52 +0100 Subject: [PATCH 0714/1039] Add a bunch of renderTypes to labels in the DiscoverUM3Action. --- .../resources/qml/DiscoverUM3Action.qml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml index 967adfc029..bb710127fc 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml @@ -64,6 +64,7 @@ Cura.MachineAction width: parent.width text: catalog.i18nc("@title:window", "Connect to Networked Printer") wrapMode: Text.WordWrap + renderType: Text.NativeRendering font.pointSize: 18 } @@ -72,6 +73,7 @@ Cura.MachineAction id: pageDescription width: parent.width wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: catalog.i18nc("@label", "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer.\n\nSelect your printer from the list below:") } @@ -182,6 +184,7 @@ Cura.MachineAction text: listview.model[index].name color: parent.ListView.isCurrentItem ? palette.highlightedText : palette.text elide: Text.ElideRight + renderType: Text.NativeRendering } MouseArea @@ -204,6 +207,7 @@ Cura.MachineAction anchors.left: parent.left anchors.right: parent.right wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: catalog.i18nc("@label", "If your printer is not listed, read the network printing troubleshooting guide").arg("https://ultimaker.com/en/troubleshooting"); onLinkActivated: Qt.openUrlExternally(link) } @@ -221,6 +225,7 @@ Cura.MachineAction text: base.selectedDevice ? base.selectedDevice.name : "" font: UM.Theme.getFont("large") elide: Text.ElideRight + renderType: Text.NativeRendering } Grid { @@ -231,12 +236,14 @@ Cura.MachineAction { width: Math.round(parent.width * 0.5) wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: catalog.i18nc("@label", "Type") } Label { width: Math.round(parent.width * 0.5) wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: { if(base.selectedDevice) @@ -268,24 +275,28 @@ Cura.MachineAction { width: Math.round(parent.width * 0.5) wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: catalog.i18nc("@label", "Firmware version") } Label { width: Math.round(parent.width * 0.5) wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: base.selectedDevice ? base.selectedDevice.firmwareVersion : "" } Label { width: Math.round(parent.width * 0.5) wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: catalog.i18nc("@label", "Address") } Label { width: Math.round(parent.width * 0.5) wrapMode: Text.WordWrap + renderType: Text.NativeRendering text: base.selectedDevice ? base.selectedDevice.ipAddress : "" } } @@ -294,6 +305,7 @@ Cura.MachineAction { width: parent.width wrapMode: Text.WordWrap + renderType: Text.NativeRendering text:{ // The property cluster size does not exist for older UM3 devices. if(!base.selectedDevice || base.selectedDevice.clusterSize == null || base.selectedDevice.clusterSize == 1) @@ -315,6 +327,7 @@ Cura.MachineAction { width: parent.width wrapMode: Text.WordWrap + renderType: Text.NativeRendering visible: base.selectedDevice != null && !base.completeProperties text: catalog.i18nc("@label", "The printer at this address has not yet responded." ) } @@ -358,9 +371,10 @@ Cura.MachineAction Label { - text: catalog.i18nc("@alabel","Enter the IP address or hostname of your printer on the network.") + text: catalog.i18nc("@alabel", "Enter the IP address or hostname of your printer on the network.") width: parent.width wrapMode: Text.WordWrap + renderType: Text.NativeRendering } TextField From a77ad329993ae46799376689c4908de06292c801 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 14:35:07 +0100 Subject: [PATCH 0715/1039] Move all the seperate tiles into loaders instead of the entire page Otherwise the details selection didn't work anymore and I didn't want to add more hacks. CURA-6006 --- .../resources/qml/ToolboxDetailList.qml | 7 ++++++- .../resources/qml/ToolboxDownloadsGrid.qml | 10 ++++++---- .../qml/ToolboxDownloadsShowcase.qml | 19 +++++++++++-------- .../resources/qml/ToolboxInstalledPage.qml | 12 ++++++++++-- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailList.qml b/plugins/Toolbox/resources/qml/ToolboxDetailList.qml index 2e5eae098c..1700a58ebe 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailList.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailList.qml @@ -26,10 +26,15 @@ Item } height: childrenRect.height + 2 * UM.Theme.getSize("wide_margin").height spacing: UM.Theme.getSize("default_margin").height + Repeater { model: toolbox.packagesModel - delegate: ToolboxDetailTile {} + delegate: Loader + { + asynchronous: true + source: "ToolboxDetailTile.qml" + } } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml index c586828969..3e2643938b 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml @@ -24,7 +24,7 @@ Column color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") } - GridLayout + Grid { id: grid width: parent.width - 2 * parent.padding @@ -34,10 +34,12 @@ Column Repeater { model: gridArea.model - delegate: ToolboxDownloadsGridTile + delegate: Loader { - Layout.preferredWidth: (grid.width - (grid.columns - 1) * grid.columnSpacing) / grid.columns - Layout.preferredHeight: UM.Theme.getSize("toolbox_thumbnail_small").height + asynchronous: true + width: (grid.width - (grid.columns - 1) * grid.columnSpacing) / grid.columns + height: UM.Theme.getSize("toolbox_thumbnail_small").height + source: "ToolboxDownloadsGridTile.qml" } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml index 46f5debfdd..9851128076 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml @@ -30,23 +30,26 @@ Rectangle height: childrenRect.height spacing: UM.Theme.getSize("wide_margin").width columns: 3 - anchors - { - horizontalCenter: parent.horizontalCenter - } + anchors.horizontalCenter: parent.horizontalCenter + Repeater { - model: { - if ( toolbox.viewCategory == "plugin" ) + model: + { + if (toolbox.viewCategory == "plugin") { return toolbox.pluginsShowcaseModel } - if ( toolbox.viewCategory == "material" ) + if (toolbox.viewCategory == "material") { return toolbox.materialsShowcaseModel } } - delegate: ToolboxDownloadsShowcaseTile {} + delegate: Loader + { + asynchronous: true + source: "ToolboxDownloadsShowcaseTile.qml" + } } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml index e683f89823..145e544b19 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml @@ -64,7 +64,11 @@ ScrollView { id: materialList model: toolbox.pluginsInstalledModel - delegate: ToolboxInstalledTile {} + delegate: Loader + { + asynchronous: true + source: "ToolboxInstalledTile.qml" + } } } } @@ -101,7 +105,11 @@ ScrollView { id: pluginList model: toolbox.materialsInstalledModel - delegate: ToolboxInstalledTile {} + delegate: Loader + { + asynchronous: true + source: "ToolboxInstalledTile.qml" + } } } } From 46c209a9936c1b2e52a83f743f1a3b8c58aeb2d7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 14:45:24 +0100 Subject: [PATCH 0716/1039] Add one pixel margin to the view selector. --- resources/qml/PrinterSelector/MachineSelectorList.qml | 2 +- resources/qml/ViewsSelector.qml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 5ef04b7351..54d766a6e0 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -13,7 +13,7 @@ Column Label { - text: catalog.i18nc("@label", "Network connected printers") + text: catalog.i18nc("@label", "Connected printers") visible: networkedPrintersModel.items.length > 0 leftPadding: UM.Theme.getSize("default_margin").width height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index e239ea82a0..1e42a0b3ba 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -74,6 +74,8 @@ Cura.ExpandableComponent { id: viewSelectorPopup width: viewSelector.width - 2 * viewSelector.popupPadding + leftPadding: UM.Theme.getSize("default_lining").width + rightPadding: UM.Theme.getSize("default_lining").width // For some reason the height/width of the column gets set to 0 if this is not set... Component.onCompleted: @@ -91,7 +93,7 @@ Cura.ExpandableComponent { id: viewsSelectorButton text: model.name - width: parent.width + width: parent.width - viewSelectorPopup.leftPadding - viewSelectorPopup.rightPadding height: UM.Theme.getSize("action_button").height leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width From 62c53989335d4d955be4bcb1ac07df234bbb2896 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 14:58:28 +0100 Subject: [PATCH 0717/1039] Change buttons to use either secondary or primary CURA-6006 --- .../resources/qml/ToolboxInstalledPage.qml | 12 +-- .../qml/ToolboxInstalledTileActions.qml | 42 ++------- .../resources/qml/ToolboxProgressButton.qml | 93 +------------------ 3 files changed, 16 insertions(+), 131 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml index 145e544b19..e683f89823 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml @@ -64,11 +64,7 @@ ScrollView { id: materialList model: toolbox.pluginsInstalledModel - delegate: Loader - { - asynchronous: true - source: "ToolboxInstalledTile.qml" - } + delegate: ToolboxInstalledTile {} } } } @@ -105,11 +101,7 @@ ScrollView { id: pluginList model: toolbox.materialsInstalledModel - delegate: Loader - { - asynchronous: true - source: "ToolboxInstalledTile.qml" - } + delegate: ToolboxInstalledTile {} } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml index 621ecd96ea..eb3a93f274 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml @@ -6,6 +6,8 @@ import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM +import Cura 1.0 as Cura + Column { property bool canUpdate: false @@ -43,44 +45,18 @@ Column visible: canUpdate } - Button + Cura.SecondaryButton { id: removeButton text: canDowngrade ? catalog.i18nc("@action:button", "Downgrade") : catalog.i18nc("@action:button", "Uninstall") visible: !model.is_bundled && model.is_installed enabled: !toolbox.isDownloading - style: ButtonStyle - { - background: Rectangle - { - implicitWidth: UM.Theme.getSize("toolbox_action_button").width - implicitHeight: UM.Theme.getSize("toolbox_action_button").height - color: "transparent" - border - { - width: UM.Theme.getSize("default_lining").width - color: - { - if (control.hovered) - { - return UM.Theme.getColor("primary_hover") - } - else - { - return UM.Theme.getColor("lining") - } - } - } - } - label: Label - { - text: control.text - color: UM.Theme.getColor("text") - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font: UM.Theme.getFont("default") - } - } + + width: UM.Theme.getSize("toolbox_action_button").width + height: UM.Theme.getSize("toolbox_action_button").height + + fixedWidthMode: true + onClicked: toolbox.checkPackageUsageAndUninstall(model.id) Connections { diff --git a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml index 00b0b985f5..0b574e8653 100644 --- a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml @@ -5,7 +5,7 @@ import QtQuick 2.2 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM - +import Cura 1.0 as Cura Item { @@ -25,9 +25,12 @@ Item width: UM.Theme.getSize("toolbox_action_button").width height: UM.Theme.getSize("toolbox_action_button").height - Button + Cura.PrimaryButton { id: button + width: UM.Theme.getSize("toolbox_action_button").width + height: UM.Theme.getSize("toolbox_action_button").height + fixedWidthMode: true text: { if (complete) @@ -58,92 +61,6 @@ Item readyAction() } } - style: ButtonStyle - { - background: Rectangle - { - implicitWidth: UM.Theme.getSize("toolbox_action_button").width - implicitHeight: UM.Theme.getSize("toolbox_action_button").height - color: - { - if (base.complete) - { - return "transparent" - } - else - { - if (control.hovered) - { - return UM.Theme.getColor("primary_hover") - } - else - { - return UM.Theme.getColor("primary") - } - } - } - border - { - width: - { - if (base.complete) - { - UM.Theme.getSize("default_lining").width - } - else - { - return 0 - } - } - color: - { - if (control.hovered) - { - return UM.Theme.getColor("primary_hover") - } - else - { - return UM.Theme.getColor("lining") - } - } - } - } - label: Label - { - text: control.text - color: - { - if (base.complete) - { - return UM.Theme.getColor("text") - } - else - { - if (control.hovered) - { - return UM.Theme.getColor("button_text_hover") - } - else - { - return UM.Theme.getColor("button_text") - } - } - } - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - font: - { - if (base.complete) - { - return UM.Theme.getFont("default") - } - else - { - return UM.Theme.getFont("default_bold") - } - } - } - } } AnimatedImage From b55ead8c89a331a2ce3902d2c7288587a1e675a7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 15:18:32 +0100 Subject: [PATCH 0718/1039] Fix typo Contributes to CURA-6010. --- resources/qml/Cura.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index f16ae9a19b..6a8493ff06 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -103,7 +103,7 @@ UM.MainWindow // This is the new fancy pattern Image { - id: backgourndPattern + id: backgroundPattern anchors.fill: parent fillMode: Image.Tile source: UM.Theme.getImage("header_pattern") From 4b9e6e7708b862eb30c5ddad91de6421b75f80c2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 6 Dec 2018 16:06:22 +0100 Subject: [PATCH 0719/1039] Add the linear gradient back, that I removed in a previous commit Contributes to CURA-6010. --- resources/qml/Cura.qml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 6a8493ff06..93d8bddf1e 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -98,7 +98,31 @@ UM.MainWindow right: parent.right } height: stageMenu.source != "" ? Math.round(mainWindowHeader.height + stageMenu.height / 2) : mainWindowHeader.height - color: UM.Theme.getColor("main_window_header_background") + + LinearGradient + { + anchors.fill: parent + start: Qt.point(0, 0) + end: Qt.point(parent.width, 0) + gradient: Gradient + { + GradientStop + { + position: 0.0 + color: UM.Theme.getColor("main_window_header_background") + } + GradientStop + { + position: 0.5 + color: UM.Theme.getColor("main_window_header_background_gradient") + } + GradientStop + { + position: 1.0 + color: UM.Theme.getColor("main_window_header_background") + } + } + } // This is the new fancy pattern Image From c39674cd0cbbc3cb8e71bd9ece5a72d0c4eefcd0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 6 Dec 2018 16:22:26 +0100 Subject: [PATCH 0720/1039] Use upper camel case for enum options Contributes to issue CURA-5876. --- .../ConfigurationMenu/ConfigurationMenu.qml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 1d086acc67..9bef2ca0be 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -30,8 +30,8 @@ Cura.ExpandableComponent enum ConfigurationMethod { - AUTO, - CUSTOM + Auto, + Custom } iconSource: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") @@ -134,7 +134,7 @@ Cura.ExpandableComponent is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected //Re-evaluate. } - property int configuration_method: is_connected ? ConfigurationMenu.ConfigurationMethod.AUTO : ConfigurationMenu.ConfigurationMethod.CUSTOM //Auto if connected to a printer at start-up, or Custom if not. + property int configuration_method: is_connected ? ConfigurationMenu.ConfigurationMethod.Auto : ConfigurationMenu.ConfigurationMethod.Custom //Auto if connected to a printer at start-up, or Custom if not. Item { @@ -143,13 +143,13 @@ Cura.ExpandableComponent AutoConfiguration { id: autoConfiguration - visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.AUTO + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.Auto } CustomConfiguration { id: customConfiguration - visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.CUSTOM + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.Custom } } @@ -177,7 +177,7 @@ Cura.ExpandableComponent Cura.SecondaryButton { id: goToCustom - visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.AUTO + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.Auto text: catalog.i18nc("@label", "Custom") anchors.right: parent.right @@ -185,18 +185,18 @@ Cura.ExpandableComponent iconSource: UM.Theme.getIcon("arrow_right") isIconOnRightSide: true - onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.CUSTOM + onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.Custom } Cura.SecondaryButton { id: goToAuto - visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.CUSTOM + visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.Custom text: catalog.i18nc("@label", "Configurations") iconSource: UM.Theme.getIcon("arrow_left") - onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.AUTO + onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.Auto } } } From 4e2ab163ed5dffec65a7328820e494434def97e5 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 16:24:12 +0100 Subject: [PATCH 0721/1039] Add login fequired link to packages that have the login-required tag CURA-6006 --- .../qml/ToolboxDetailTileActions.qml | 22 ++++++++++++++++++- plugins/Toolbox/src/PackagesModel.py | 2 ++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml index 72a9d14dcd..8a11b402d2 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml @@ -5,11 +5,14 @@ import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM +import Cura 1.1 as Cura Column { property bool installed: toolbox.isInstalled(model.id) property bool canUpdate: toolbox.canUpdate(model.id) + property bool loginRequired: model.login_required && !Cura.API.account.isLoggedIn + width: UM.Theme.getSize("toolbox_action_button").width spacing: UM.Theme.getSize("narrow_margin").height @@ -28,11 +31,28 @@ Column onCompleteAction: toolbox.viewCategory = "installed" // Don't allow installing while another download is running - enabled: installed || !(toolbox.isDownloading && toolbox.activePackage != model) + enabled: installed || (!(toolbox.isDownloading && toolbox.activePackage != model) && !loginRequired) opacity: enabled ? 1.0 : 0.5 visible: !updateButton.visible // Don't show when the update button is visible } + + Label + { + wrapMode: Text.WordWrap + text:"Log in is required to install" + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + linkColor: UM.Theme.getColor("text_link") + visible: loginRequired + width: installButton.width + MouseArea + { + anchors.fill: parent + onClicked:Cura.API.account.login() + } + } + ToolboxProgressButton { id: updateButton diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py index f941804653..bcc02955a2 100644 --- a/plugins/Toolbox/src/PackagesModel.py +++ b/plugins/Toolbox/src/PackagesModel.py @@ -40,6 +40,7 @@ class PackagesModel(ListModel): self.addRoleName(Qt.UserRole + 19, "tags") self.addRoleName(Qt.UserRole + 20, "links") self.addRoleName(Qt.UserRole + 21, "website") + self.addRoleName(Qt.UserRole + 22, "login_required") # List of filters for queries. The result is the union of the each list of results. self._filter = {} # type: Dict[str, str] @@ -100,6 +101,7 @@ class PackagesModel(ListModel): "tags": package["tags"] if "tags" in package else [], "links": links_dict, "website": package["website"] if "website" in package else None, + "login_required": "login-required" in package.get("tags", []) }) # Filter on all the key-word arguments. From 05b32548f38b279da211279d753016ac19ef74dd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 6 Dec 2018 16:27:56 +0100 Subject: [PATCH 0722/1039] Code style: Start comments with a space Contributes to issue CURA-5876. --- cura/Settings/ExtruderStack.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index d626ef06da..edb0e7d41f 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -52,8 +52,8 @@ class ExtruderStack(CuraContainerStack): return super().getNextStack() def setEnabled(self, enabled: bool) -> None: - if self.getMetaDataEntry("enabled", True) == enabled: #No change. - return #Don't emit a signal then. + if self.getMetaDataEntry("enabled", True) == enabled: # No change. + return # Don't emit a signal then. self.setMetaDataEntry("enabled", str(enabled)) self.enabledChanged.emit() From 4b8e3c32cbd46ef2f4ff63ca6a53654d2c22b0ec Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 16:37:47 +0100 Subject: [PATCH 0723/1039] Also show the login required if an update is needed CURA-6006 --- plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml index 8a11b402d2..37d9bce4c5 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml @@ -40,7 +40,7 @@ Column Label { wrapMode: Text.WordWrap - text:"Log in is required to install" + text: catalog.i18nc("@label:The string between and is the highlighted link", "Log in is required to install or update") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") @@ -49,7 +49,7 @@ Column MouseArea { anchors.fill: parent - onClicked:Cura.API.account.login() + onClicked: Cura.API.account.login() } } @@ -68,7 +68,7 @@ Column } onActiveAction: toolbox.cancelDownload() // Don't allow installing while another download is running - enabled: !(toolbox.isDownloading && toolbox.activePackage != model) + enabled: !(toolbox.isDownloading && toolbox.activePackage != model) && !loginRequired opacity: enabled ? 1.0 : 0.5 visible: canUpdate } From 717fb260c15b2364e28d2de6ab4200d2c148a697 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 16:58:01 +0100 Subject: [PATCH 0724/1039] Change toolbox tabs to controls2 CURA-6006 --- .../resources/qml/ToolboxTabButton.qml | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml index b671d779f8..fa4f75d6fe 100644 --- a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml @@ -2,50 +2,49 @@ // Toolbox is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 +import QtQuick.Controls 2.0 import UM 1.1 as UM Button { + id: control property bool active: false - style: ButtonStyle + hoverEnabled: true + + background: Item { - background: Rectangle + implicitWidth: UM.Theme.getSize("toolbox_header_tab").width + implicitHeight: UM.Theme.getSize("toolbox_header_tab").height + Rectangle { - color: "transparent" - implicitWidth: UM.Theme.getSize("toolbox_header_tab").width - implicitHeight: UM.Theme.getSize("toolbox_header_tab").height - Rectangle - { - visible: control.active - color: UM.Theme.getColor("toolbox_header_highlight_hover") - anchors.bottom: parent.bottom - width: parent.width - height: UM.Theme.getSize("toolbox_header_highlight").height - } - } - label: Label - { - text: control.text - color: - { - if(control.hovered) - { - return UM.Theme.getColor("toolbox_header_button_text_hovered"); - } - if(control.active) - { - return UM.Theme.getColor("toolbox_header_button_text_active"); - } - else - { - return UM.Theme.getColor("toolbox_header_button_text_inactive"); - } - } - font: control.enabled ? (control.active ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium")) : UM.Theme.getFont("default_italic") - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter + visible: control.active + color: UM.Theme.getColor("primary") + anchors.bottom: parent.bottom + width: parent.width + height: UM.Theme.getSize("toolbox_header_highlight").height } } -} + contentItem: Label + { + id: label + text: control.text + color: + { + if(control.hovered) + { + return UM.Theme.getColor("toolbox_header_button_text_hovered"); + } + if(control.active) + { + return UM.Theme.getColor("toolbox_header_button_text_active"); + } + else + { + return UM.Theme.getColor("toolbox_header_button_text_inactive"); + } + } + font: control.enabled ? (control.active ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium")) : UM.Theme.getFont("default_italic") + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + } +} \ No newline at end of file From 2c9c9d8c962607311488a9a14526fb286de543a9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 17:23:02 +0100 Subject: [PATCH 0725/1039] Handle non-happy path for downloading CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index ef67dc3c86..ab975548ce 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -671,6 +671,11 @@ class Toolbox(QObject, Extension): if bytes_sent == bytes_total: self.setIsDownloading(False) cast(QNetworkReply, self._download_reply).downloadProgress.disconnect(self._onDownloadProgress) + + # Check if the download was sucessfull + if self._download_reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: + Logger.log("w", "Failed to download package. The following error was returned: %s", json.loads(bytes(self._download_reply.readAll()).decode("utf-8"))) + return # Must not delete the temporary file on Windows self._temp_plugin_file = tempfile.NamedTemporaryFile(mode = "w+b", suffix = ".curapackage", delete = False) file_path = self._temp_plugin_file.name From d4a255c9e5779c8131ebb9743a5adf472530f99f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 17:35:58 +0100 Subject: [PATCH 0726/1039] Also add the login required label at the installed plugin list CURA-6006 --- .../qml/ToolboxDetailTileActions.qml | 1 - .../qml/ToolboxInstalledTileActions.qml | 21 +++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml index 37d9bce4c5..cc32ff032d 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml @@ -36,7 +36,6 @@ Column visible: !updateButton.visible // Don't show when the update button is visible } - Label { wrapMode: Text.WordWrap diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml index eb3a93f274..39528f6437 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml @@ -6,12 +6,13 @@ import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM -import Cura 1.0 as Cura +import Cura 1.1 as Cura Column { property bool canUpdate: false property bool canDowngrade: false + property bool loginRequired: model.login_required && !Cura.API.account.isLoggedIn width: UM.Theme.getSize("toolbox_action_button").width spacing: UM.Theme.getSize("narrow_margin").height @@ -40,11 +41,27 @@ Column onActiveAction: toolbox.cancelDownload() // Don't allow installing while another download is running - enabled: !(toolbox.isDownloading && toolbox.activePackage != model) + enabled: !(toolbox.isDownloading && toolbox.activePackage != model) && !loginRequired opacity: enabled ? 1.0 : 0.5 visible: canUpdate } + Label + { + wrapMode: Text.WordWrap + text: catalog.i18nc("@label:The string between and is the highlighted link", "Log in is required to update") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + linkColor: UM.Theme.getColor("text_link") + visible: loginRequired + width: updateButton.width + MouseArea + { + anchors.fill: parent + onClicked: Cura.API.account.login() + } + } + Cura.SecondaryButton { id: removeButton From eddf4e7f3d96296576e8124fcfd3a86e01adf7e3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 6 Dec 2018 19:38:12 +0100 Subject: [PATCH 0727/1039] Simplify QML --- .../resources/qml/ToolboxInstalledPage.qml | 33 +++++++------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml index e683f89823..738cdde323 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml @@ -21,44 +21,39 @@ ScrollView Column { spacing: UM.Theme.getSize("default_margin").height + visible: toolbox.pluginsInstalledModel.items.length > 0 + height: childrenRect.height + 4 * UM.Theme.getSize("default_margin").height + anchors { right: parent.right left: parent.left - leftMargin: UM.Theme.getSize("wide_margin").width - topMargin: UM.Theme.getSize("wide_margin").height - bottomMargin: UM.Theme.getSize("wide_margin").height + margins: UM.Theme.getSize("default_margin").width top: parent.top } - height: childrenRect.height + 4 * UM.Theme.getSize("default_margin").height + Label { - visible: toolbox.pluginsInstalledModel.items.length > 0 - width: parent.width + width: page.width text: catalog.i18nc("@title:tab", "Plugins") color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") } Rectangle { - visible: toolbox.pluginsInstalledModel.items.length > 0 color: "transparent" width: parent.width - height: childrenRect.height + 1 * UM.Theme.getSize("default_lining").width + height: childrenRect.height + UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width Column { - height: childrenRect.height anchors { top: parent.top right: parent.right left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width - rightMargin: UM.Theme.getSize("default_margin").width - topMargin: UM.Theme.getSize("default_lining").width - bottomMargin: UM.Theme.getSize("default_lining").width + margins: UM.Theme.getSize("default_margin").width } Repeater { @@ -70,32 +65,26 @@ ScrollView } Label { - visible: toolbox.materialsInstalledModel.items.length > 0 - width: page.width text: catalog.i18nc("@title:tab", "Materials") color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") } + Rectangle { - visible: toolbox.materialsInstalledModel.items.length > 0 color: "transparent" width: parent.width - height: childrenRect.height + 1 * UM.Theme.getSize("default_lining").width + height: childrenRect.height + UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width Column { - height: Math.max( UM.Theme.getSize("wide_margin").height, childrenRect.height) anchors { top: parent.top right: parent.right left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width - rightMargin: UM.Theme.getSize("default_margin").width - topMargin: UM.Theme.getSize("default_lining").width - bottomMargin: UM.Theme.getSize("default_lining").width + margins: UM.Theme.getSize("default_margin").width } Repeater { From b33ce7a50f891165fe71e964815804e2a9427f6a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 09:35:08 +0100 Subject: [PATCH 0728/1039] Fix alignment of download grid tile CURA-6006 --- plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 887140bbfa..d6eedbcde5 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -63,6 +63,8 @@ Item { width: parent.width - thumbnail.width - parent.spacing spacing: Math.floor(UM.Theme.getSize("narrow_margin").width) + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("default_margin").height Label { id: name From 2a0954f24683066f28698b03b261721fc02847b0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 09:35:53 +0100 Subject: [PATCH 0729/1039] Gracefully handle the conectionError when logging in --- cura/OAuth2/AuthorizationHelpers.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cura/OAuth2/AuthorizationHelpers.py b/cura/OAuth2/AuthorizationHelpers.py index f75ad9c9f9..762d0db069 100644 --- a/cura/OAuth2/AuthorizationHelpers.py +++ b/cura/OAuth2/AuthorizationHelpers.py @@ -81,9 +81,14 @@ class AuthorizationHelpers: # \param access_token: The encoded JWT token. # \return: Dict containing some profile data. def parseJWT(self, access_token: str) -> Optional["UserProfile"]: - token_request = requests.get("{}/check-token".format(self._settings.OAUTH_SERVER_URL), headers = { - "Authorization": "Bearer {}".format(access_token) - }) + try: + token_request = requests.get("{}/check-token".format(self._settings.OAUTH_SERVER_URL), headers = { + "Authorization": "Bearer {}".format(access_token) + }) + except ConnectionError: + # Connection was suddenly dropped. Nothing we can do about that. + Logger.logException("e", "Something failed while attempting to parse the JWT token") + return None if token_request.status_code not in (200, 201): Logger.log("w", "Could not retrieve token data from auth server: %s", token_request.text) return None From 9eb09132d66d989120d7002b212bbcd4f5816fa3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 09:38:02 +0100 Subject: [PATCH 0730/1039] Fix minor layout issue installed page CURA-6006 --- plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml index 738cdde323..3d5cd1c8d4 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml @@ -43,7 +43,7 @@ ScrollView { color: "transparent" width: parent.width - height: childrenRect.height + UM.Theme.getSize("default_lining").width + height: childrenRect.height + UM.Theme.getSize("default_margin").width border.color: UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width Column @@ -74,7 +74,7 @@ ScrollView { color: "transparent" width: parent.width - height: childrenRect.height + UM.Theme.getSize("default_lining").width + height: childrenRect.height + UM.Theme.getSize("default_margin").width border.color: UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width Column From eaf413997d0c5ca4b317a0d65b5aef5c44131627 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 09:44:09 +0100 Subject: [PATCH 0731/1039] Changed the installed button to be a secondary button CURA-6006 --- .../qml/ToolboxDetailTileActions.qml | 40 ++++++++++++------- .../resources/qml/ToolboxProgressButton.qml | 1 + 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml index cc32ff032d..848acfbf4f 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml @@ -16,24 +16,36 @@ Column width: UM.Theme.getSize("toolbox_action_button").width spacing: UM.Theme.getSize("narrow_margin").height - ToolboxProgressButton + Item { - id: installButton - active: toolbox.isDownloading && toolbox.activePackage == model - complete: installed - onReadyAction: + width: installButton.width + height: installButton.height + ToolboxProgressButton { - toolbox.activePackage = model - toolbox.startDownload(model.download_url) + id: installButton + active: toolbox.isDownloading && toolbox.activePackage == model + onReadyAction: + { + toolbox.activePackage = model + toolbox.startDownload(model.download_url) + } + onActiveAction: toolbox.cancelDownload() + + // Don't allow installing while another download is running + enabled: installed || (!(toolbox.isDownloading && toolbox.activePackage != model) && !loginRequired) + opacity: enabled ? 1.0 : 0.5 + visible: !updateButton.visible && !installed// Don't show when the update button is visible } - onActiveAction: toolbox.cancelDownload() - onCompleteAction: toolbox.viewCategory = "installed" - - // Don't allow installing while another download is running - enabled: installed || (!(toolbox.isDownloading && toolbox.activePackage != model) && !loginRequired) - opacity: enabled ? 1.0 : 0.5 - visible: !updateButton.visible // Don't show when the update button is visible + Cura.SecondaryButton + { + visible: installed + onClicked: toolbox.viewCategory = "installed" + text: catalog.i18nc("@action:button", "Installed") + fixedWidthMode: true + width: installButton.width + height: installButton.height + } } Label diff --git a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml index 0b574e8653..3ca18a52ed 100644 --- a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml @@ -7,6 +7,7 @@ import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM import Cura 1.0 as Cura +// TODO; This is in quite some need for refactoring. Item { id: base From 677edd51eea2ba87392851b2a5d01402e133e459 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 7 Dec 2018 10:55:20 +0100 Subject: [PATCH 0732/1039] Remove unnecessary visibles CURA-5941 Because the parent Rows already have it set. --- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index eb8c81f228..ec9c5d0e38 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -151,7 +151,6 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth - visible: extrudersModel.count > 1 renderType: Text.NativeRendering } @@ -189,7 +188,6 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth - visible: materialSelection.visible renderType: Text.NativeRendering } @@ -228,7 +226,6 @@ Item color: UM.Theme.getColor("text") height: parent.height width: selectors.textWidth - visible: variantSelection.visible renderType: Text.NativeRendering } From da052fbe81eb8fc5c03049e867d0d8417146aff9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 7 Dec 2018 11:21:25 +0100 Subject: [PATCH 0733/1039] Not show a tooltip in the output device selector when the popup shows up --- resources/qml/ActionPanel/OutputDevicesActionButton.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 95750e6d11..9a6c97bcff 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -55,7 +55,7 @@ Item leftPadding: UM.Theme.getSize("narrow_margin").width //Need more space than usual here for wide text. rightPadding: UM.Theme.getSize("narrow_margin").width - tooltip: catalog.i18nc("@info:tooltip", "Select the active output device") + tooltip: popup.opened ? "" : catalog.i18nc("@info:tooltip", "Select the active output device") iconSource: popup.opened ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom") color: UM.Theme.getColor("action_panel_secondary") visible: (devicesModel.deviceCount > 1) From 898fd25ddb456a3dcfba6900e2ff03d5843fb5f9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 7 Dec 2018 11:43:41 +0100 Subject: [PATCH 0734/1039] Remove the component IconLabel since we have a similar one in IconWithText Contributes to CURA-5941. --- .../qml/ActionPanel/OutputProcessWidget.qml | 5 +- .../qml/ActionPanel/SliceProcessWidget.qml | 3 +- resources/qml/IconLabel.qml | 50 ------------------- resources/qml/IconWithText.qml | 6 ++- .../PrintSetupSelectorHeader.qml | 1 - resources/qml/qmldir | 1 - 6 files changed, 7 insertions(+), 59 deletions(-) delete mode 100644 resources/qml/IconLabel.qml diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 1d1a1e44e1..3f53abf28f 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -44,7 +44,7 @@ Column rightMargin: UM.Theme.getSize("thin_margin").height } - Cura.IconLabel + Cura.IconWithText { id: estimatedTime width: parent.width @@ -54,7 +54,7 @@ Column font: UM.Theme.getFont("default_bold") } - Cura.IconLabel + Cura.IconWithText { id: estimatedCosts width: parent.width @@ -84,7 +84,6 @@ Column return totalWeights + "g · " + totalLengths.toFixed(2) + "m" } source: UM.Theme.getIcon("spool") - font: UM.Theme.getFont("default") } } diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 8f6608e15c..18caeafb40 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -52,7 +52,7 @@ Column renderType: Text.NativeRendering } - Cura.IconLabel + Cura.IconWithText { id: unableToSliceMessage width: parent.width @@ -61,7 +61,6 @@ Column text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") source: UM.Theme.getIcon("warning") color: UM.Theme.getColor("warning") - font: UM.Theme.getFont("default") } // Progress bar, only visible when the backend is in the process of slice the printjob diff --git a/resources/qml/IconLabel.qml b/resources/qml/IconLabel.qml deleted file mode 100644 index ed41fba499..0000000000 --- a/resources/qml/IconLabel.qml +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 2.3 - -import UM 1.1 as UM - -// This item will show a label with a squared icon in the left -Item -{ - id: container - - property alias text: label.text - property alias source: icon.source - property alias color: label.color - property alias font: label.font - property alias iconSize: icon.width - - implicitHeight: icon.height - - UM.RecolorImage - { - id: icon - - anchors.left: parent.left - anchors.verticalCenter: parent.verticalCenter - - source: "" - width: UM.Theme.getSize("section_icon").width - height: width - - color: label.color - visible: source != "" - } - - Label - { - id: label - anchors.left: icon.visible ? icon.right : parent.left - anchors.right: parent.right - anchors.leftMargin: UM.Theme.getSize("thin_margin").width - anchors.verticalCenter: icon.verticalCenter - text: "Empty label" - elide: Text.ElideRight - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("default") - renderType: Text.NativeRendering - } -} \ No newline at end of file diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index 22599b3aed..5530740040 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -13,9 +13,11 @@ import Cura 1.0 as Cura // It sets the icon size + half of the content as its minium width (in which case it will elide the text) Item { - property alias iconColor: icon.color property alias source: icon.source + property alias iconSize: icon.width + property alias color: label.color property alias text: label.text + property alias font: label.font property real margin: UM.Theme.getSize("narrow_margin").width @@ -37,7 +39,7 @@ Item width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - color: "black" + color: label.color anchors { diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index d4057289f6..518f3d49eb 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -43,7 +43,6 @@ RowLayout source: UM.Theme.getIcon("category_support") text: supportEnabled.properties.value == "True" ? enabledText : disabledText - UM.SettingPropertyProvider { id: supportEnabled diff --git a/resources/qml/qmldir b/resources/qml/qmldir index c19b982318..1dc21150ce 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -7,7 +7,6 @@ ActionButton 1.0 ActionButton.qml MaterialMenu 1.0 MaterialMenu.qml NozzleMenu 1.0 NozzleMenu.qml ActionPanelWidget 1.0 ActionPanelWidget.qml -IconLabel 1.0 IconLabel.qml IconWithText 1.0 IconWithText.qml OutputDevicesActionButton 1.0 OutputDevicesActionButton.qml ExpandableComponent 1.0 ExpandableComponent.qml From 1d33fe081fd30e257d9b0f5443288ad069b5f73c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 7 Dec 2018 12:07:41 +0100 Subject: [PATCH 0735/1039] Clean up the code Remove all the references to the sidebar and use the term print_setup instead. Contributes to CURA-5941. --- .../PostProcessingPlugin.qml | 2 +- .../resources/qml/UM3InfoComponents.qml | 4 +- resources/qml/Cura.qml | 2 +- .../ConfigurationMenu/CustomConfiguration.qml | 4 +- resources/qml/MonitorButton.qml | 4 +- resources/qml/MonitorSidebar.qml | 2 +- resources/qml/ObjectsList.qml | 4 +- resources/qml/PrintMonitor.qml | 2 +- .../Custom/GlobalProfileSelector.qml | 2 +- ...debarTooltip.qml => PrintSetupTooltip.qml} | 0 resources/qml/SidebarContents.qml | 43 ------------------- resources/themes/cura-light/styles.qml | 6 +-- 12 files changed, 16 insertions(+), 59 deletions(-) rename resources/qml/{SidebarTooltip.qml => PrintSetupTooltip.qml} (100%) delete mode 100644 resources/qml/SidebarContents.qml diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index 3fa10c23b9..b962f4d53b 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -412,7 +412,7 @@ UM.Dialog } } - Cura.SidebarTooltip + Cura.PrintSetupTooltip { id: tooltip } diff --git a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml index 105143c851..643c8164a7 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml @@ -29,7 +29,7 @@ Item { Button { height: UM.Theme.getSize("save_button_save_to_button").height; onClicked: Cura.MachineManager.printerOutputDevices[0].requestAuthentication(); - style: UM.Theme.styles.sidebar_action_button; + style: UM.Theme.styles.print_setup_action_button; text: catalog.i18nc("@action:button", "Request Access"); tooltip: catalog.i18nc("@info:tooltip", "Send access request to the printer"); visible: printerConnected && !printerAcceptsCommands && !authenticationRequested; @@ -38,7 +38,7 @@ Item { Button { height: UM.Theme.getSize("save_button_save_to_button").height; onClicked: connectActionDialog.show(); - style: UM.Theme.styles.sidebar_action_button; + style: UM.Theme.styles.print_setup_action_button; text: catalog.i18nc("@action:button", "Connect"); tooltip: catalog.i18nc("@info:tooltip", "Connect to a printer"); visible: !printerConnected; diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 4e609ccbed..2df79d63c9 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -309,7 +309,7 @@ UM.MainWindow } } - SidebarTooltip + PrintSetupTooltip { id: tooltip } diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index ec9c5d0e38..78f6864c97 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -204,7 +204,7 @@ Item height: UM.Theme.getSize("setting_control").height width: selectors.controlWidth - style: UM.Theme.styles.sidebar_header_button + style: UM.Theme.styles.print_setup_header_button activeFocusOnPress: true menu: Cura.MaterialMenu { @@ -237,7 +237,7 @@ Item height: UM.Theme.getSize("setting_control").height width: selectors.controlWidth - style: UM.Theme.styles.sidebar_header_button + style: UM.Theme.styles.print_setup_header_button activeFocusOnPress: true; menu: Cura.NozzleMenu { extruderIndex: Cura.ExtruderManager.activeExtruderIndex } diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index eef76bcb09..fd7d2287c4 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -309,7 +309,7 @@ Item } } - style: UM.Theme.styles.sidebar_action_button + style: UM.Theme.styles.print_setup_action_button } Button @@ -325,7 +325,7 @@ Item text: catalog.i18nc("@label", "Abort Print") onClicked: confirmationDialog.visible = true - style: UM.Theme.styles.sidebar_action_button + style: UM.Theme.styles.print_setup_action_button } MessageDialog diff --git a/resources/qml/MonitorSidebar.qml b/resources/qml/MonitorSidebar.qml index 50416e34ab..669bdbfb8f 100644 --- a/resources/qml/MonitorSidebar.qml +++ b/resources/qml/MonitorSidebar.qml @@ -173,7 +173,7 @@ Rectangle anchors.bottom: parent.bottom } - SidebarTooltip + PrintSetupTooltip { id: tooltip } diff --git a/resources/qml/ObjectsList.qml b/resources/qml/ObjectsList.qml index 8f45b3744f..fd5175fce2 100644 --- a/resources/qml/ObjectsList.qml +++ b/resources/qml/ObjectsList.qml @@ -224,7 +224,7 @@ Rectangle { id: arrangeAllBuildPlatesButton; text: catalog.i18nc("@action:button","Arrange to all build plates"); - style: UM.Theme.styles.sidebar_action_button + style: UM.Theme.styles.print_setup_action_button height: UM.Theme.getSize("objects_menu_button").height; tooltip: ''; anchors @@ -244,7 +244,7 @@ Rectangle { id: arrangeBuildPlateButton; text: catalog.i18nc("@action:button","Arrange current build plate"); - style: UM.Theme.styles.sidebar_action_button + style: UM.Theme.styles.print_setup_action_button height: UM.Theme.getSize("objects_menu_button").height; tooltip: ''; anchors diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 3cc161cbe7..4ed8daa55c 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -49,7 +49,7 @@ Rectangle property var activePrinter: connectedDevice != null ? connectedDevice.activePrinter : null property var activePrintJob: activePrinter != null ? activePrinter.activePrintJob: null - SidebarTooltip + PrintSetupTooltip { id: tooltip } diff --git a/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml index 11b2d3608b..8baaf9a7ae 100644 --- a/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml @@ -43,7 +43,7 @@ Item right: parent.right } tooltip: Cura.MachineManager.activeQualityOrQualityChangesName - style: UM.Theme.styles.sidebar_header_button + style: UM.Theme.styles.print_setup_header_button activeFocusOnPress: true menu: Cura.ProfileMenu { } diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/PrintSetupTooltip.qml similarity index 100% rename from resources/qml/SidebarTooltip.qml rename to resources/qml/PrintSetupTooltip.qml diff --git a/resources/qml/SidebarContents.qml b/resources/qml/SidebarContents.qml deleted file mode 100644 index 0b19bfe3c1..0000000000 --- a/resources/qml/SidebarContents.qml +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2016 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.7 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -StackView -{ - id: sidebarContents - - delegate: StackViewDelegate - { - function transitionFinished(properties) - { - properties.exitItem.opacity = 1 - } - - pushTransition: StackViewTransition - { - PropertyAnimation - { - target: enterItem - property: "opacity" - from: 0 - to: 1 - duration: 100 - } - PropertyAnimation - { - target: exitItem - property: "opacity" - from: 1 - to: 0 - duration: 100 - } - } - } -} \ No newline at end of file diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 18fce7f319..bcc754f4ca 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -9,7 +9,7 @@ import UM 1.1 as UM QtObject { - property Component sidebar_header_button: Component + property Component print_setup_header_button: Component { ButtonStyle { @@ -80,7 +80,7 @@ QtObject } Label { - id: sidebarComboBoxLabel + id: printSetupComboBoxLabel color: control.enabled ? Theme.getColor("setting_control_text") : Theme.getColor("setting_control_disabled_text") text: control.text; elide: Text.ElideRight; @@ -644,7 +644,7 @@ QtObject } } - property Component sidebar_action_button: Component + property Component print_setup_action_button: Component { ButtonStyle { From dfe55b8f23b90fcdac812fc97a62e22bfcf6eea9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 12:59:51 +0100 Subject: [PATCH 0736/1039] Fix height of expandable component adapting to contents Since the children don't adjust their height based on if they are visible (which would cause a binding loop) we just need to adjust the height of the total menu based on which children are visible. Easy enough. Contributes to issue CURA-5876. --- .../Menus/ConfigurationMenu/ConfigurationMenu.qml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 9bef2ca0be..5780649423 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -139,7 +139,19 @@ Cura.ExpandableComponent Item { width: parent.width - height: childrenRect.height + height: + { + var height = 0; + if(autoConfiguration.visible) + { + height += autoConfiguration.height; + } + if(customConfiguration.visible) + { + height += customConfiguration.height; + } + return height; + } AutoConfiguration { id: autoConfiguration From 6a696a57f25e0ac41091320a9abb64a3ccce37c6 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 7 Dec 2018 13:01:49 +0100 Subject: [PATCH 0737/1039] Removed unused property --- resources/qml/JobSpecs.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 8b06ab06db..c7f82b8876 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -80,7 +80,6 @@ Item height: UM.Theme.getSize("jobspecs_line").height width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) maximumLength: 120 - property int unremovableSpacing: 5 text: PrintInformation.jobName horizontalAlignment: TextInput.AlignLeft From 26be65e405f42ea806c10501a8c09793fe58a896 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 7 Dec 2018 13:29:16 +0100 Subject: [PATCH 0738/1039] Fix some other merge conflicts Contributes to CURA-6008. --- resources/qml/ExpandableComponent.qml | 3 +- resources/qml/ExpandablePopup.qml | 2 +- resources/qml/JobSpecs.qml | 1 - resources/themes/cura-light/theme.json | 81 ++++++++++++++------------ 4 files changed, 47 insertions(+), 40 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 3f30f8f386..3a03740251 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -109,10 +109,9 @@ Item } source: UM.Theme.getIcon("pencil") visible: source != "" && base.enabled -// color: UM.Theme.getColor("small_button_text") width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("small_button_text") } MouseArea diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index a1e2fb0fea..c15310f803 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -131,7 +131,7 @@ Item visible: source != "" && base.enabled width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("small_button_text") } MouseArea diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 8b06ab06db..c7f82b8876 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -80,7 +80,6 @@ Item height: UM.Theme.getSize("jobspecs_line").height width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) maximumLength: 120 - property int unremovableSpacing: 5 text: PrintInformation.jobName horizontalAlignment: TextInput.AlignLeft diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index f96a785f11..16d13b9652 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -35,7 +35,7 @@ "family": "Noto Sans" }, "default_italic": { - "size": 1.15, + "size": 1.0, "weight": 50, "italic": true, "family": "Noto Sans" @@ -80,7 +80,7 @@ "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], "border": [127, 127, 127, 255], - "secondary": [240, 240, 240, 255], + "secondary": [245, 245, 245, 255], "secondary_shadow": [216, 216, 216, 255], "primary_button": [38, 113, 231, 255], @@ -178,34 +178,34 @@ "action_button_disabled_shadow": [228, 228, 228, 255], "scrollbar_background": [255, 255, 255, 255], - "scrollbar_handle": [31, 36, 39, 255], - "scrollbar_handle_hover": [12, 159, 227, 255], - "scrollbar_handle_down": [12, 159, 227, 255], + "scrollbar_handle": [10, 8, 80, 255], + "scrollbar_handle_hover": [50, 130, 255, 255], + "scrollbar_handle_down": [50, 130, 255, 255], "setting_category": [245, 245, 245, 255], "setting_category_disabled": [255, 255, 255, 255], - "setting_category_hover": [245, 245, 245, 255], + "setting_category_hover": [232, 242, 252, 255], "setting_category_active": [245, 245, 245, 255], - "setting_category_active_hover": [245, 245, 245, 255], - "setting_category_text": [31, 36, 39, 255], + "setting_category_active_hover": [232, 242, 252, 255], + "setting_category_text": [35, 35, 35, 255], "setting_category_disabled_text": [24, 41, 77, 101], - "setting_category_hover_text": [31, 36, 39, 255], - "setting_category_active_text": [31, 36, 39, 255], - "setting_category_active_hover_text": [31, 36, 39, 255], + "setting_category_hover_text": [35, 35, 35, 255], + "setting_category_active_text": [35, 35, 35, 255], + "setting_category_active_hover_text": [35, 35, 35, 255], "setting_category_border": [245, 245, 245, 255], "setting_category_disabled_border": [245, 245, 245, 255], - "setting_category_hover_border": [12, 159, 227, 255], - "setting_category_active_border": [245, 245, 245, 255], - "setting_category_active_hover_border": [12, 159, 227, 255], + "setting_category_hover_border": [50, 130, 255, 255], + "setting_category_active_border": [50, 130, 255, 255], + "setting_category_active_hover_border": [50, 130, 255, 255], "setting_control": [255, 255, 255, 255], "setting_control_selected": [31, 36, 39, 255], "setting_control_highlight": [255, 255, 255, 255], - "setting_control_border": [127, 127, 127, 255], + "setting_control_border": [199, 199, 199, 255], "setting_control_border_highlight": [50, 130, 255, 255], - "setting_control_text": [27, 27, 27, 255], - "setting_control_depth_line": [127, 127, 127, 255], - "setting_control_button": [127, 127, 127, 255], + "setting_control_text": [35, 35, 35, 255], + "setting_control_depth_line": [199, 199, 199, 255], + "setting_control_button": [199, 199, 199, 255], "setting_control_button_hover": [70, 84, 113, 255], "setting_control_disabled": [245, 245, 245, 255], "setting_control_disabled_text": [127, 127, 127, 255], @@ -216,6 +216,7 @@ "setting_validation_warning_background": [255, 145, 62, 255], "setting_validation_warning": [127, 127, 127, 255], "setting_validation_ok": [255, 255, 255, 255], + "setting_filter_field" : [153, 153, 153, 255], "material_compatibility_warning": [0, 0, 0, 255], @@ -233,11 +234,11 @@ "checkbox": [255, 255, 255, 255], "checkbox_hover": [255, 255, 255, 255], - "checkbox_border": [64, 69, 72, 255], + "checkbox_border": [199, 199, 199, 255], "checkbox_border_hover": [50, 130, 255, 255], - "checkbox_mark": [119, 122, 124, 255], + "checkbox_mark": [50, 130, 255, 255], "checkbox_disabled": [223, 223, 223, 255], - "checkbox_text": [27, 27, 27, 255], + "checkbox_text": [35, 35, 35, 255], "tooltip": [68, 192, 255, 255], "tooltip_text": [255, 255, 255, 255], @@ -293,16 +294,16 @@ "xray_error": [255, 0, 0, 255], "layerview_ghost": [32, 32, 32, 96], - "layerview_none": [255, 255, 255, 255], - "layerview_inset_0": [255, 0, 0, 255], - "layerview_inset_x": [0, 255, 0, 255], - "layerview_skin": [255, 255, 0, 255], - "layerview_support": [0, 255, 255, 255], - "layerview_skirt": [0, 255, 255, 255], - "layerview_infill": [255, 192, 0, 255], - "layerview_support_infill": [0, 255, 255, 255], - "layerview_move_combing": [0, 0, 255, 255], - "layerview_move_retraction": [128, 128, 255, 255], + "layerview_none": [255, 255, 255, 255], + "layerview_inset_0": [255, 0, 0, 255], + "layerview_inset_x": [0, 255, 0, 255], + "layerview_skin": [255, 255, 0, 255], + "layerview_support": [0, 255, 255, 255], + "layerview_skirt": [0, 255, 255, 255], + "layerview_infill": [255, 192, 0, 255], + "layerview_support_infill": [0, 255, 255, 255], + "layerview_move_combing": [0, 0, 255, 255], + "layerview_move_retraction": [128, 128, 255, 255], "layerview_support_interface": [64, 192, 255, 255], "layerview_nozzle": [181, 166, 66, 50], @@ -356,10 +357,16 @@ "account_button": [12, 3], - "print_setup_widget": [30.0, 42.0], + "print_setup_widget": [38.0, 30.0], "print_setup_mode_toggle": [0.0, 2.0], "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], + "print_setup_widget_header": [0.0, 3.0], + "print_setup_slider_groove": [0.16, 0.16], + "print_setup_slider_handle": [1.0, 1.0], + "print_setup_slider_tickmarks": [0.32, 0.32], + "print_setup_big_item": [28, 2.5], + "print_setup_icon": [1.2, 1.2], "configuration_selector_mode_tabs": [0.0, 3.0], @@ -391,12 +398,13 @@ "extruder_icon": [2.33, 2.33], - "section": [0.0, 2.2], + "section": [0.0, 2], "section_icon": [1.6, 1.6], "section_icon_column": [2.8, 0.0], "setting": [25.0, 1.8], - "setting_control": [10.0, 2.0], + "setting_control": [11.0, 2.0], + "setting_control_radius": [0.15, 0.15], "setting_control_depth_margin": [1.4, 0.0], "setting_preferences_button_margin": [4, 0.0], "setting_control_margin": [0.0, 0.0], @@ -404,7 +412,7 @@ "setting_text_maxwidth": [40.0, 0.0], "standard_list_lineheight": [1.5, 1.5], - "standard_arrow": [0.8, 0.8], + "standard_arrow": [1.0, 1.0], "button": [4, 4], "button_icon": [2.5, 2.5], @@ -444,7 +452,8 @@ "layerview_row": [11.0, 1.5], "layerview_row_spacing": [0.0, 0.5], - "checkbox": [2.0, 2.0], + "checkbox": [1.5, 1.5], + "checkbox_radius": [0.08, 0.08], "tooltip": [20.0, 10.0], "tooltip_margins": [1.0, 1.0], From e74258c26bd1917d87e5fd4bbb1f77719eb947f8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 13:39:42 +0100 Subject: [PATCH 0739/1039] Don't show materials if printer has no materials But if the printer does have other configurations to change, do show a placeholder text to indicate that the configuration can be selected here. This also simplifies a bit of code where it would need to call an updateEnabled() function, since it turns out that these properties in Cura.MachineManager have proper signals (contrary to what was previously used, the metadata entry stuff). Contributes to issue UCRA-5876. --- .../ConfigurationMenu/ConfigurationMenu.qml | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index c282975cd3..33a317b42b 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -34,9 +34,11 @@ Cura.ExpandablePopup Custom } + enabled: Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariants || Cura.MachineManager.hasVariantBuildplates; //Only let it drop down if there is any configuration that you could change. + headerItem: Item { - // Horizontal list that shows the extruders + // Horizontal list that shows the extruders and their materials ListView { id: extrudersList @@ -44,7 +46,7 @@ Cura.ExpandablePopup orientation: ListView.Horizontal anchors.fill: parent model: extrudersModel - visible: base.enabled + visible: Cura.MachineManager.hasMaterials delegate: Item { @@ -101,24 +103,26 @@ Cura.ExpandablePopup } } } - } - //Disable the menu if there are no materials, variants or build plates to change. - function updateEnabled() - { - var active_definition_id = Cura.MachineManager.activeMachine.definition.id; - var has_materials = Cura.ContainerManager.getContainerMetaDataEntry(active_definition_id, "has_materials"); - var has_variants = Cura.ContainerManager.getContainerMetaDataEntry(active_definition_id, "has_variants"); - var has_buildplates = Cura.ContainerManager.getContainerMetaDataEntry(active_definition_id, "has_variant_buildplates"); - base.enabled = has_materials || has_variants || has_buildplates; //Only let it drop down if there is any configuration that you could change. - } + //Placeholder text if there is a configuration to select but no materials (so we can't show the materials per extruder). + Label + { + text: catalog.i18nc("@label", "Select configuration") + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering - Connections - { - target: Cura.MachineManager - onGlobalContainerChanged: base.updateEnabled(); + visible: !Cura.MachineManager.hasMaterials && (Cura.MachineManager.hasVariants || Cura.MachineManager.hasVariantBuildplates) + + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width + verticalCenter: parent.verticalCenter + } + } } - Component.onCompleted: updateEnabled(); contentItem: Column { From 15f81da95b40e1cb27a73b9f13562bc6f525f296 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 7 Dec 2018 13:47:58 +0100 Subject: [PATCH 0740/1039] Do not show the layer height in the header panel when the profile is not supported --- cura/Settings/MachineManager.py | 4 ++++ .../PrintSetupSelectorHeader.qml | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index a472cc7f09..c375ce01d1 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1536,6 +1536,10 @@ class MachineManager(QObject): name = self._current_quality_group.name return name + @pyqtProperty(bool, notify = activeQualityGroupChanged) + def hasNotSupportedQuality(self) -> bool: + return self._current_quality_group is None and self._current_quality_changes_group is None + def _updateUponMaterialMetadataChange(self) -> None: if self._global_container_stack is None: return diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index 518f3d49eb..d4287045b8 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -13,7 +13,19 @@ RowLayout Cura.IconWithText { source: UM.Theme.getIcon("category_layer_height") - text: Cura.MachineManager.activeStack ? Cura.MachineManager.activeQualityOrQualityChangesName + " " + layerHeight.properties.value + "mm" : "" + text: + { + if (Cura.MachineManager.activeStack) + { + var text = Cura.MachineManager.activeQualityOrQualityChangesName + if (!Cura.MachineManager.hasNotSupportedQuality) + { + text += " " + layerHeight.properties.value + "mm" + } + return text + } + return "" + } UM.SettingPropertyProvider { From 43a06fdc3d85e618534297d967c560cdc9783c08 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 13:49:17 +0100 Subject: [PATCH 0741/1039] Add more margin above printer type labels A bit of Gestalt. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index e7936b69d2..53969a0370 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -64,11 +64,12 @@ Column section.criteria: ViewSection.FullString section.delegate: Item { - height: printerTypeLabel.height + UM.Theme.getSize("default_margin").height + height: printerTypeLabel.height + UM.Theme.getSize("default_margin").height * 2 //Causes a default margin above the label and a default margin below the label. Cura.PrinterTypeLabel { id: printerTypeLabel text: Cura.MachineManager.getAbbreviatedMachineName(section) + anchors.verticalCenter: parent.verticalCenter //One default margin above and one below. } } From c44b74454f927714f891c254024e95679982ef20 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 14:22:39 +0100 Subject: [PATCH 0742/1039] Revert "No longer make BuildVolume set max bounds." This reverts commit 1467e703ae121c3f2fa02ee7258bdeba63f80c5c. This variable was actually used... In Uranium, by the scale tiny models feature. --- cura/BuildVolume.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index 1589f16afc..f837f5cef7 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -479,6 +479,8 @@ class BuildVolume(SceneNode): maximum = Vector(max_w - bed_adhesion_size - 1, max_h - self._raft_thickness - self._extra_z_clearance, max_d - disallowed_area_size + bed_adhesion_size - 1) ) + self._application.getController().getScene()._maximum_bounds = scale_to_max_bounds + self.updateNodeBoundaryCheck() def getBoundingBox(self) -> AxisAlignedBox: From 8e2c130416ecdf1adf21bc8d5388588442f6f6c7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 14:31:06 +0100 Subject: [PATCH 0743/1039] Use default lining style as separator for buildplate Normal colour, normal thickness. Contributes to issue CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 6ac1e6a2ad..05cac16e29 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -72,8 +72,8 @@ Button right: parent.right rightMargin: parent.padding } - height: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 - color: UM.Theme.getColor("text") + height: visible ? Math.round(UM.Theme.getSize("default_lining").height / 2) : 0 + color: UM.Theme.getColor("lining") } Item From c663681e66a42b63b1e831a1dbf967e6043f563b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 14:39:43 +0100 Subject: [PATCH 0744/1039] Simplify buildplate icon Removed all unnecessary crap added by Sketch. Contributes to issue CURA-5876. --- .../themes/cura-light/icons/buildplate.svg | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/resources/themes/cura-light/icons/buildplate.svg b/resources/themes/cura-light/icons/buildplate.svg index 9e61296958..d844b91a28 100644 --- a/resources/themes/cura-light/icons/buildplate.svg +++ b/resources/themes/cura-light/icons/buildplate.svg @@ -1,17 +1,9 @@ - - - icn_buildplate - Created with Sketch. - - - - - - - - - - + + + + + + \ No newline at end of file From 78df27369f1cc423fc3e369d22da6115fba43560 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 14:41:30 +0100 Subject: [PATCH 0745/1039] Fill buildplate icon This is according to our newest designs. Contributes to issue CURA-5876. --- resources/themes/cura-light/icons/buildplate.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/icons/buildplate.svg b/resources/themes/cura-light/icons/buildplate.svg index d844b91a28..7505c8204e 100644 --- a/resources/themes/cura-light/icons/buildplate.svg +++ b/resources/themes/cura-light/icons/buildplate.svg @@ -4,6 +4,6 @@ - + \ No newline at end of file From ffcac04f9e1bb595bc30a33ba0d9aeb327b7c45d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 15:21:53 +0100 Subject: [PATCH 0746/1039] Add printer type selector if connected to cluster If there are 2 or more printer types in your connected cluster, you can switch the printer type here. Contributes to issue CURA-5876. --- .../ConfigurationMenu/CustomConfiguration.qml | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 78f6864c97..8429e2c093 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -36,10 +36,57 @@ Item } } + //Printer type selector. + Item + { + id: printerTypeSelectorRow + visible: + { + return Cura.MachineManager.printerOutputDevices.length >= 1 //If connected... + && Cura.MachineManager.printerOutputDevices[0].connectedPrintersTypeCount != null //...and we have configuration information... + && Cura.MachineManager.printerOutputDevices[0].connectedPrintersTypeCount.length > 1; //...and there is more than one type of printer in the configuration list. + } + height: visible ? childrenRect.height : 0 + + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + top: header.bottom + topMargin: visible ? UM.Theme.getSize("default_margin").height : 0 + } + + Label + { + text: catalog.i18nc("@label", "Printer") + width: Math.round(parent.width * 0.3) - UM.Theme.getSize("default_margin").width + height: contentHeight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + anchors.verticalCenter: printerTypeSelector.verticalCenter + anchors.left: parent.left + } + + OldControls.ToolButton + { + id: printerTypeSelector + text: Cura.MachineManager.activeMachineDefinitionName + tooltip: Cura.MachineManager.activeMachineDefinitionName + height: UM.Theme.getSize("setting_control").height + width: Math.round(parent.width * 0.7) + UM.Theme.getSize("default_margin").width + anchors.right: parent.right + style: UM.Theme.styles.print_setup_header_button + + menu: Cura.PrinterTypeMenu { } + } + } + UM.TabRow { id: tabBar - anchors.top: header.bottom + anchors.top: printerTypeSelectorRow.bottom anchors.topMargin: UM.Theme.getSize("default_margin").height visible: extrudersModel.count > 1 From 6a7bbe5bdb46c3f6db301097d30e472f3b45702e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 15:31:12 +0100 Subject: [PATCH 0747/1039] Fix hiding materials if material is empty Because the loaded material profile has the name 'Empty' then. Contributes to issue CURA-5876. --- .../qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index 885f02d740..a344e31d4f 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -20,7 +20,7 @@ Row { materialColor: printCoreConfiguration.material.color anchors.verticalCenter: parent.verticalCenter - extruderEnabled: printCoreConfiguration.material.name !== "" && printCoreConfiguration.hotendID !== "" + extruderEnabled: printCoreConfiguration.material.brand !== "" && printCoreConfiguration.hotendID !== "" } Column @@ -36,7 +36,7 @@ Row } Label { - text: printCoreConfiguration.material.name ? printCoreConfiguration.material.name : " " //Use space so that the height is still correct. + text: printCoreConfiguration.material.brand ? printCoreConfiguration.material.name : " " //Use space so that the height is still correct. renderType: Text.NativeRendering elide: Text.ElideRight font: UM.Theme.getFont("default") From f4220da550ff4f5c65787b54f413415ac4dce73e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 15:31:33 +0100 Subject: [PATCH 0748/1039] Adds rough first version of rating stars It's not fully polished just yet CURA-6013 --- cura/API/Account.py | 2 +- .../Toolbox/resources/qml/RatingWidget.qml | 101 ++++++++++++++++++ .../qml/ToolboxDownloadsGridTile.qml | 10 ++ plugins/Toolbox/src/PackagesModel.py | 8 +- plugins/Toolbox/src/Toolbox.py | 53 ++++++--- .../themes/cura-light/icons/star_empty.svg | 11 ++ .../themes/cura-light/icons/star_filled.svg | 11 ++ resources/themes/cura-light/theme.json | 1 + 8 files changed, 180 insertions(+), 17 deletions(-) create mode 100644 plugins/Toolbox/resources/qml/RatingWidget.qml create mode 100644 resources/themes/cura-light/icons/star_empty.svg create mode 100644 resources/themes/cura-light/icons/star_filled.svg diff --git a/cura/API/Account.py b/cura/API/Account.py index 397e220478..be77a6307b 100644 --- a/cura/API/Account.py +++ b/cura/API/Account.py @@ -44,7 +44,7 @@ class Account(QObject): OAUTH_SERVER_URL= self._oauth_root, CALLBACK_PORT=self._callback_port, CALLBACK_URL="http://localhost:{}/callback".format(self._callback_port), - CLIENT_ID="um---------------ultimaker_cura_drive_plugin", + CLIENT_ID="um----------------------------ultimaker_cura", CLIENT_SCOPES="account.user.read drive.backup.read drive.backup.write packages.download packages.rating.read packages.rating.write", AUTH_DATA_PREFERENCE_KEY="general/ultimaker_auth_data", AUTH_SUCCESS_REDIRECT="{}/app/auth-success".format(self._oauth_root), diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml new file mode 100644 index 0000000000..424f6c91c4 --- /dev/null +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -0,0 +1,101 @@ +import QtQuick 2.2 +import QtQuick.Controls 2.0 +import UM 1.0 as UM + +Item +{ + id: ratingWidget + + property real rating: 0 + property int indexHovered: -1 + property string packageId: "" + property int numRatings: 0 + property int userRating: 0 + width: contentRow.width + height: contentRow.height + MouseArea + { + id: mouseArea + anchors.fill: parent + hoverEnabled: ratingWidget.enabled + acceptedButtons: Qt.NoButton + onExited: + { + ratingWidget.indexHovered = -1 + } + + Row + { + id: contentRow + height: childrenRect.height + Repeater + { + model: 5 // We need to get 5 stars + Button + { + id: control + hoverEnabled: true + onHoveredChanged: + { + if(hovered) + { + indexHovered = index + } + } + + property bool isStarFilled: + { + // If the entire widget is hovered, override the actual rating. + if(ratingWidget.indexHovered >= 0) + { + return indexHovered >= index + } + + if(ratingWidget.userRating > 0) + { + return userRating >= index +1 + } + + return rating >= index + 1 + } + + contentItem: Item {} + height: UM.Theme.getSize("rating_star").height + width: UM.Theme.getSize("rating_star").width + background: UM.RecolorImage + { + source: UM.Theme.getIcon(control.isStarFilled ? "star_filled" : "star_empty") + + // Unfilled stars should always have the default color. Only filled stars should change on hover + color: + { + if(!enabled) + { + return "#5a5a5a" + } + if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0) && isStarFilled) + { + return UM.Theme.getColor("primary") + } + return "#5a5a5a" + } + } + onClicked: + { + if(userRating == 0) + { + //User didn't vote yet, locally fake it + numRatings += 1 + } + userRating = index + 1 // Fake local data + toolbox.ratePackage(ratingWidget.packageId, index + 1) + } + } + } + Label + { + text: "(" + numRatings + ")" + } + } + } +} \ No newline at end of file diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index cee3f0fd20..a72411ef4b 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -84,6 +84,16 @@ Item color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("default") } + + RatingWidget + { + visible: model.type == "plugin" + packageId: model.id + rating: model.average_rating != undefined ? model.average_rating : 0 + numRatings: model.num_ratings != undefined ? model.num_ratings : 0 + userRating: model.user_rating + enabled: installedPackages != 0 + } } } MouseArea diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py index bcc02955a2..b3c388bc7c 100644 --- a/plugins/Toolbox/src/PackagesModel.py +++ b/plugins/Toolbox/src/PackagesModel.py @@ -41,6 +41,9 @@ class PackagesModel(ListModel): self.addRoleName(Qt.UserRole + 20, "links") self.addRoleName(Qt.UserRole + 21, "website") self.addRoleName(Qt.UserRole + 22, "login_required") + self.addRoleName(Qt.UserRole + 23, "average_rating") + self.addRoleName(Qt.UserRole + 24, "num_ratings") + self.addRoleName(Qt.UserRole + 25, "user_rating") # List of filters for queries. The result is the union of the each list of results. self._filter = {} # type: Dict[str, str] @@ -101,7 +104,10 @@ class PackagesModel(ListModel): "tags": package["tags"] if "tags" in package else [], "links": links_dict, "website": package["website"] if "website" in package else None, - "login_required": "login-required" in package.get("tags", []) + "login_required": "login-required" in package.get("tags", []), + "average_rating": package.get("rating", {}).get("average", 0), + "num_ratings": package.get("rating", {}).get("count", 0), + "user_rating": package.get("rating", {}).get("user", 0) }) # Filter on all the key-word arguments. diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index ab975548ce..7e35f5d1f4 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -22,7 +22,8 @@ from cura.CuraApplication import CuraApplication from .AuthorsModel import AuthorsModel from .PackagesModel import PackagesModel - +from cura.CuraVersion import CuraVersion +from cura.API import CuraAPI if TYPE_CHECKING: from cura.Settings.GlobalStack import GlobalStack @@ -50,17 +51,10 @@ class Toolbox(QObject, Extension): self._download_progress = 0 # type: float self._is_downloading = False # type: bool self._network_manager = None # type: Optional[QNetworkAccessManager] - self._request_header = [ - b"User-Agent", - str.encode( - "%s/%s (%s %s)" % ( - self._application.getApplicationName(), - self._application.getVersion(), - platform.system(), - platform.machine(), - ) - ) - ] + self._request_headers = [] # type: List[Tuple(bytes, bytes)] + self._updateRequestHeader() + + self._request_urls = {} # type: Dict[str, QUrl] self._to_update = [] # type: List[str] # Package_ids that are waiting to be updated self._old_plugin_ids = set() # type: Set[str] @@ -115,6 +109,7 @@ class Toolbox(QObject, Extension): self._restart_dialog_message = "" # type: str self._application.initializationFinished.connect(self._onAppInitialized) + self._application.getCuraAPI().account.loginStateChanged.connect(self._updateRequestHeader) # Signals: # -------------------------------------------------------------------------- @@ -134,12 +129,38 @@ class Toolbox(QObject, Extension): showLicenseDialog = pyqtSignal() uninstallVariablesChanged = pyqtSignal() + def _updateRequestHeader(self): + self._request_headers = [ + (b"User-Agent", + str.encode( + "%s/%s (%s %s)" % ( + self._application.getApplicationName(), + self._application.getVersion(), + platform.system(), + platform.machine(), + ) + )) + ] + access_token = self._application.getCuraAPI().account.accessToken + if access_token: + self._request_headers.append((b"Authorization", "Bearer {}".format(access_token).encode())) + def _resetUninstallVariables(self) -> None: self._package_id_to_uninstall = None # type: Optional[str] self._package_name_to_uninstall = "" self._package_used_materials = [] # type: List[Tuple[GlobalStack, str, str]] self._package_used_qualities = [] # type: List[Tuple[GlobalStack, str, str]] + @pyqtSlot(str, int) + def ratePackage(self, package_id: str, rating: int) -> None: + url = QUrl("{base_url}/packages/{package_id}/ratings".format(base_url=self._api_url, package_id = package_id)) + + self._rate_request = QNetworkRequest(url) + for header_name, header_value in self._request_headers: + cast(QNetworkRequest, self._rate_request).setRawHeader(header_name, header_value) + data = "{\"data\": {\"cura_version\": \"%s\", \"rating\": %i}}" % (Version(CuraVersion), rating) + self._rate_reply = cast(QNetworkAccessManager, self._network_manager).put(self._rate_request, data.encode()) + @pyqtSlot(result = str) def getLicenseDialogPluginName(self) -> str: return self._license_dialog_plugin_name @@ -563,7 +584,8 @@ class Toolbox(QObject, Extension): def _makeRequestByType(self, request_type: str) -> None: Logger.log("i", "Requesting %s metadata from server.", request_type) request = QNetworkRequest(self._request_urls[request_type]) - request.setRawHeader(*self._request_header) + for header_name, header_value in self._request_headers: + request.setRawHeader(header_name, header_value) if self._network_manager: self._network_manager.get(request) @@ -578,7 +600,8 @@ class Toolbox(QObject, Extension): if hasattr(QNetworkRequest, "RedirectPolicyAttribute"): # Patch for Qt 5.9+ cast(QNetworkRequest, self._download_request).setAttribute(QNetworkRequest.RedirectPolicyAttribute, True) - cast(QNetworkRequest, self._download_request).setRawHeader(*self._request_header) + for header_name, header_value in self._request_headers: + cast(QNetworkRequest, self._download_request).setRawHeader(header_name, header_value) self._download_reply = cast(QNetworkAccessManager, self._network_manager).get(self._download_request) self.setDownloadProgress(0) self.setIsDownloading(True) @@ -660,7 +683,7 @@ class Toolbox(QObject, Extension): else: self.setViewPage("errored") self.resetDownload() - else: + elif reply.operation() == QNetworkAccessManager.PutOperation: # Ignore any operation that is not a get operation pass diff --git a/resources/themes/cura-light/icons/star_empty.svg b/resources/themes/cura-light/icons/star_empty.svg new file mode 100644 index 0000000000..39b5791e91 --- /dev/null +++ b/resources/themes/cura-light/icons/star_empty.svg @@ -0,0 +1,11 @@ + + + + Star Copy 8 + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/icons/star_filled.svg b/resources/themes/cura-light/icons/star_filled.svg new file mode 100644 index 0000000000..d4e161f6c6 --- /dev/null +++ b/resources/themes/cura-light/icons/star_filled.svg @@ -0,0 +1,11 @@ + + + + Star Copy 7 + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 2d7e92be4d..8d8f5dd718 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -394,6 +394,7 @@ "section": [0.0, 2.2], "section_icon": [1.6, 1.6], "section_icon_column": [2.8, 0.0], + "rating_star": [1.0, 1.0], "setting": [25.0, 1.8], "setting_control": [10.0, 2.0], From 8b25e6946adb3ea763fc25f22c3226e557d4c8bd Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 15:33:44 +0100 Subject: [PATCH 0749/1039] Prevent attempting to rate when not logged in CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index a72411ef4b..283d9bc0aa 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -6,6 +6,7 @@ import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtQuick.Layouts 1.3 import UM 1.1 as UM +import Cura 1.1 as Cura Item { @@ -92,7 +93,7 @@ Item rating: model.average_rating != undefined ? model.average_rating : 0 numRatings: model.num_ratings != undefined ? model.num_ratings : 0 userRating: model.user_rating - enabled: installedPackages != 0 + enabled: installedPackages != 0 && Cura.API.account.isLoggedIn } } } From b565b111c873dd3804f2ce50193c5836850c7fe9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 15:38:08 +0100 Subject: [PATCH 0750/1039] Adjust disabled extruder colour This also introduces a more global 'disabled' colour as defined by the style guide. I hope that we can gradually transition to this one, but we'll have to adjust some colours here and there. Contributes to issue CURA-5876. --- resources/qml/ExtruderIcon.qml | 2 +- resources/themes/cura-dark/theme.json | 1 + resources/themes/cura-light/theme.json | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index 49ad73a32e..bb0b347b7e 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -23,7 +23,7 @@ Item anchors.fill: parent source: UM.Theme.getIcon("extruder_button") - color: extruderEnabled ? materialColor: "gray" + color: extruderEnabled ? materialColor: UM.Theme.getColor("disabled") } Rectangle diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index d9ef74ebb9..8540abf61a 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -35,6 +35,7 @@ "text_scene_hover": [255, 255, 255, 204], "error": [212, 31, 53, 255], + "disabled": [32, 32, 32, 255], "button": [39, 44, 48, 255], "button_hover": [39, 44, 48, 255], diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 16d13b9652..d4fb59b7a1 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -129,6 +129,7 @@ "error": [255, 140, 0, 255], "warning": [245, 166, 35, 255], + "disabled": [229, 229, 229, 255], "toolbar_button_text": [8, 7, 63, 255], "toolbar_button_hover": [232, 242, 252, 255], From fed9e2b623fcc2085a8343c479946cc4edc43c2c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 15:42:46 +0100 Subject: [PATCH 0751/1039] Move the click area of the download tile to just the icon CURA-6013 --- .../qml/ToolboxDownloadsGridTile.qml | 81 +++++++++---------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 283d9bc0aa..472f273817 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -58,13 +58,49 @@ Item color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") source: "../images/installed_check.svg" } + + MouseArea + { + anchors.fill: thumbnail + hoverEnabled: true + onEntered: thumbnail.border.color = UM.Theme.getColor("primary") + onExited: thumbnail.border.color = UM.Theme.getColor("lining") + onClicked: + { + base.selection = model + switch(toolbox.viewCategory) + { + case "material": + + // If model has a type, it must be a package + if (model.type !== undefined) + { + toolbox.viewPage = "detail" + toolbox.filterModelByProp("packages", "id", model.id) + } + else + { + toolbox.viewPage = "author" + toolbox.setFilters("packages", { + "author_id": model.id, + "type": "material" + }) + } + break + default: + toolbox.viewPage = "detail" + toolbox.filterModelByProp("packages", "id", model.id) + break + } + } + } } Column { width: parent.width - thumbnail.width - parent.spacing spacing: Math.floor(UM.Theme.getSize("narrow_margin").width) anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("default_margin").height + //anchors.topMargin: UM.Theme.getSize("default_margin").height Label { id: name @@ -97,47 +133,4 @@ Item } } } - MouseArea - { - anchors.fill: parent - hoverEnabled: true - onEntered: - { - thumbnail.border.color = UM.Theme.getColor("primary") - highlight.opacity = 0.1 - } - onExited: - { - thumbnail.border.color = UM.Theme.getColor("lining") - highlight.opacity = 0.0 - } - onClicked: - { - base.selection = model - switch(toolbox.viewCategory) - { - case "material": - - // If model has a type, it must be a package - if (model.type !== undefined) - { - toolbox.viewPage = "detail" - toolbox.filterModelByProp("packages", "id", model.id) - } - else - { - toolbox.viewPage = "author" - toolbox.setFilters("packages", { - "author_id": model.id, - "type": "material" - }) - } - break - default: - toolbox.viewPage = "detail" - toolbox.filterModelByProp("packages", "id", model.id) - break - } - } - } } From 4742db6fec2a82aa5e8d5bc95c764d0ce9d69e0b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 15:57:52 +0100 Subject: [PATCH 0752/1039] Cleanup gridTile CURA-6013 --- .../qml/ToolboxDownloadsGridTile.qml | 209 +++++++++--------- 1 file changed, 104 insertions(+), 105 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 472f273817..7ced23aee9 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -13,124 +13,123 @@ Item id: toolboxDownloadsGridTile property int packageCount: (toolbox.viewCategory == "material" && model.type === undefined) ? toolbox.getTotalNumberOfMaterialPackagesByAuthor(model.id) : 1 property int installedPackages: (toolbox.viewCategory == "material" && model.type === undefined) ? toolbox.getNumberOfInstalledPackagesByAuthor(model.id) : (toolbox.isInstalled(model.id) ? 1 : 0) - height: childrenRect.height + height: UM.Theme.getSize("toolbox_thumbnail_small").height Layout.alignment: Qt.AlignTop | Qt.AlignLeft + Rectangle { - id: highlight - anchors.fill: parent - opacity: 0.0 - color: UM.Theme.getColor("primary") - } - Row - { - width: parent.width - height: childrenRect.height - spacing: Math.floor(UM.Theme.getSize("narrow_margin").width) - Rectangle + id: thumbnail + width: UM.Theme.getSize("toolbox_thumbnail_small").width + height: UM.Theme.getSize("toolbox_thumbnail_small").height + color: "white" + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + + Image { - id: thumbnail - width: UM.Theme.getSize("toolbox_thumbnail_small").width - height: UM.Theme.getSize("toolbox_thumbnail_small").height - color: "white" - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - Image - { - anchors.centerIn: parent - width: UM.Theme.getSize("toolbox_thumbnail_small").width - UM.Theme.getSize("wide_margin").width - height: UM.Theme.getSize("toolbox_thumbnail_small").height - UM.Theme.getSize("wide_margin").width - fillMode: Image.PreserveAspectFit - source: model.icon_url || "../images/logobot.svg" - mipmap: true - } - UM.RecolorImage - { - width: (parent.width * 0.4) | 0 - height: (parent.height * 0.4) | 0 - anchors - { - bottom: parent.bottom - right: parent.right - } - sourceSize.height: height - visible: installedPackages != 0 - color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") - source: "../images/installed_check.svg" - } + anchors.centerIn: parent + width: UM.Theme.getSize("toolbox_thumbnail_small").width - UM.Theme.getSize("wide_margin").width + height: UM.Theme.getSize("toolbox_thumbnail_small").height - UM.Theme.getSize("wide_margin").width + fillMode: Image.PreserveAspectFit + source: model.icon_url || "../images/logobot.svg" + mipmap: true - MouseArea - { - anchors.fill: thumbnail - hoverEnabled: true - onEntered: thumbnail.border.color = UM.Theme.getColor("primary") - onExited: thumbnail.border.color = UM.Theme.getColor("lining") - onClicked: - { - base.selection = model - switch(toolbox.viewCategory) - { - case "material": - // If model has a type, it must be a package - if (model.type !== undefined) - { - toolbox.viewPage = "detail" - toolbox.filterModelByProp("packages", "id", model.id) - } - else - { - toolbox.viewPage = "author" - toolbox.setFilters("packages", { - "author_id": model.id, - "type": "material" - }) - } - break - default: + } + UM.RecolorImage + { + width: (parent.width * 0.4) | 0 + height: (parent.height * 0.4) | 0 + anchors + { + bottom: parent.bottom + right: parent.right + } + sourceSize.height: height + visible: installedPackages != 0 + color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") + source: "../images/installed_check.svg" + } + + MouseArea + { + anchors.fill: thumbnail + hoverEnabled: true + onEntered: thumbnail.border.color = UM.Theme.getColor("primary") + onExited: thumbnail.border.color = UM.Theme.getColor("lining") + onClicked: + { + base.selection = model + switch(toolbox.viewCategory) + { + case "material": + + // If model has a type, it must be a package + if (model.type !== undefined) + { toolbox.viewPage = "detail" toolbox.filterModelByProp("packages", "id", model.id) - break - } + } + else + { + toolbox.viewPage = "author" + toolbox.setFilters("packages", { + "author_id": model.id, + "type": "material" + }) + } + break + default: + toolbox.viewPage = "detail" + toolbox.filterModelByProp("packages", "id", model.id) + break } } } - Column + } + Item + { + anchors { - width: parent.width - thumbnail.width - parent.spacing - spacing: Math.floor(UM.Theme.getSize("narrow_margin").width) - anchors.top: parent.top - //anchors.topMargin: UM.Theme.getSize("default_margin").height - Label - { - id: name - text: model.name - width: parent.width - wrapMode: Text.WordWrap - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("default_bold") - } - Label - { - id: info - text: model.description - maximumLineCount: 2 - elide: Text.ElideRight - width: parent.width - wrapMode: Text.WordWrap - color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("default") - } + left: thumbnail.right + leftMargin: Math.floor(UM.Theme.getSize("narrow_margin").width) + right: parent.right + top: parent.top + bottom: parent.bottom + } - RatingWidget - { - visible: model.type == "plugin" - packageId: model.id - rating: model.average_rating != undefined ? model.average_rating : 0 - numRatings: model.num_ratings != undefined ? model.num_ratings : 0 - userRating: model.user_rating - enabled: installedPackages != 0 && Cura.API.account.isLoggedIn - } + Label + { + id: name + text: model.name + width: parent.width + elide: Text.ElideRight + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("default_bold") + } + Label + { + id: info + text: model.description + elide: Text.ElideRight + width: parent.width + wrapMode: Text.WordWrap + color: UM.Theme.getColor("text_medium") + font: UM.Theme.getFont("default") + anchors.top: name.bottom + anchors.bottom: rating.top + verticalAlignment: Text.AlignVCenter + } + RatingWidget + { + id: rating + visible: model.type == "plugin" + packageId: model.id + rating: model.average_rating != undefined ? model.average_rating : 0 + numRatings: model.num_ratings != undefined ? model.num_ratings : 0 + userRating: model.user_rating + enabled: installedPackages != 0 && Cura.API.account.isLoggedIn + anchors.bottom: parent.bottom } } } From 50099ab7530da3d307426c4b069ef621fd9654b6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 16:02:21 +0100 Subject: [PATCH 0753/1039] Make a few missed items themeable as well CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 2 +- plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 9e2e178b71..4e0bf67544 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -37,7 +37,7 @@ Item leftMargin: UM.Theme.getSize("wide_margin").width topMargin: UM.Theme.getSize("wide_margin").height } - color: "white" //Always a white background for image (regardless of theme). + color: UM.Theme.getColor("main_background") Image { anchors.fill: parent diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 7ced23aee9..70edee7449 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -21,7 +21,7 @@ Item id: thumbnail width: UM.Theme.getSize("toolbox_thumbnail_small").width height: UM.Theme.getSize("toolbox_thumbnail_small").height - color: "white" + color: UM.Theme.getColor("main_background") border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") From e92bd01fb28d460facdd5f0e7883267a25379aeb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 7 Dec 2018 17:28:42 +0100 Subject: [PATCH 0754/1039] Removed the rating from the download grid It felt a bit weird to already have it in the grid layout CURA-6013 --- .../qml/ToolboxDownloadsGridTile.qml | 112 +++++++++++------- plugins/Toolbox/src/PackagesModel.py | 2 +- 2 files changed, 67 insertions(+), 47 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 70edee7449..677e532827 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -16,6 +16,42 @@ Item height: UM.Theme.getSize("toolbox_thumbnail_small").height Layout.alignment: Qt.AlignTop | Qt.AlignLeft + MouseArea + { + anchors.fill: parent + hoverEnabled: true + onEntered: thumbnail.border.color = UM.Theme.getColor("primary") + onExited: thumbnail.border.color = UM.Theme.getColor("lining") + onClicked: + { + base.selection = model + switch(toolbox.viewCategory) + { + case "material": + + // If model has a type, it must be a package + if (model.type !== undefined) + { + toolbox.viewPage = "detail" + toolbox.filterModelByProp("packages", "id", model.id) + } + else + { + toolbox.viewPage = "author" + toolbox.setFilters("packages", { + "author_id": model.id, + "type": "material" + }) + } + break + default: + toolbox.viewPage = "detail" + toolbox.filterModelByProp("packages", "id", model.id) + break + } + } + } + Rectangle { id: thumbnail @@ -33,8 +69,6 @@ Item fillMode: Image.PreserveAspectFit source: model.icon_url || "../images/logobot.svg" mipmap: true - - } UM.RecolorImage { @@ -50,42 +84,6 @@ Item color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") source: "../images/installed_check.svg" } - - MouseArea - { - anchors.fill: thumbnail - hoverEnabled: true - onEntered: thumbnail.border.color = UM.Theme.getColor("primary") - onExited: thumbnail.border.color = UM.Theme.getColor("lining") - onClicked: - { - base.selection = model - switch(toolbox.viewCategory) - { - case "material": - - // If model has a type, it must be a package - if (model.type !== undefined) - { - toolbox.viewPage = "detail" - toolbox.filterModelByProp("packages", "id", model.id) - } - else - { - toolbox.viewPage = "author" - toolbox.setFilters("packages", { - "author_id": model.id, - "type": "material" - }) - } - break - default: - toolbox.viewPage = "detail" - toolbox.filterModelByProp("packages", "id", model.id) - break - } - } - } } Item { @@ -119,17 +117,39 @@ Item anchors.top: name.bottom anchors.bottom: rating.top verticalAlignment: Text.AlignVCenter + maximumLineCount: 2 } - RatingWidget + Row { id: rating - visible: model.type == "plugin" - packageId: model.id - rating: model.average_rating != undefined ? model.average_rating : 0 - numRatings: model.num_ratings != undefined ? model.num_ratings : 0 - userRating: model.user_rating - enabled: installedPackages != 0 && Cura.API.account.isLoggedIn - anchors.bottom: parent.bottom + height: UM.Theme.getSize("rating_star").height + visible: model.average_rating > 0 //Has a rating at all. + spacing: UM.Theme.getSize("thick_lining").width + anchors + { + bottom: parent.bottom + left: parent.left + right: parent.right + } + + UM.RecolorImage + { + id: starIcon + source: UM.Theme.getIcon("star_filled") + color: "#5a5a5a" + height: UM.Theme.getSize("rating_star").height + width: UM.Theme.getSize("rating_star").width + } + + Label + { + text: model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" + verticalAlignment: Text.AlignVCenter + height: starIcon.height + anchors.verticalCenter: starIcon.verticalCenter + color: starIcon.color + font: UM.Theme.getFont("small") + } } } } diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py index b3c388bc7c..3f5be3bc37 100644 --- a/plugins/Toolbox/src/PackagesModel.py +++ b/plugins/Toolbox/src/PackagesModel.py @@ -105,7 +105,7 @@ class PackagesModel(ListModel): "links": links_dict, "website": package["website"] if "website" in package else None, "login_required": "login-required" in package.get("tags", []), - "average_rating": package.get("rating", {}).get("average", 0), + "average_rating": float(package.get("rating", {}).get("average", 0)), "num_ratings": package.get("rating", {}).get("count", 0), "user_rating": package.get("rating", {}).get("user", 0) }) From 9dc8450db0aa3ba21b969f787a29a6fe775058f2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 7 Dec 2018 17:37:10 +0100 Subject: [PATCH 0755/1039] Fix typo --- .../Recommended/RecommendedQualityProfileSelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 4963f10792..15d40f545a 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -350,7 +350,7 @@ Item enabled: !Cura.SimpleModeSettingsManager.isProfileUserCreated onEntered: { - var tooltipContent = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile") + var tooltipContent = catalog.i18nc("@tooltip", "This quality profile is not available for your current material and nozzle configuration. Please change these to enable this quality profile") base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), tooltipContent) } onExited: base.hideTooltip() From 2bf641efcfef28bbdae869ab3bfb6d8d4f70d8de Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 09:09:58 +0100 Subject: [PATCH 0756/1039] Add a Cura Tooltip to show in some buttons Contributes to CURA-6004. --- resources/qml/ActionButton.qml | 8 ++-- .../ActionPanel/OutputDevicesActionButton.qml | 1 - .../qml/ActionPanel/SliceProcessWidget.qml | 1 + resources/qml/PrintSetupTooltip.qml | 5 +-- resources/qml/ToolTip.qml | 43 +++++++++++++++++++ resources/qml/ToolbarButton.qml | 7 +++ resources/qml/qmldir | 3 +- resources/themes/cura-light/theme.json | 2 +- 8 files changed, 59 insertions(+), 11 deletions(-) create mode 100644 resources/qml/ToolTip.qml diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 7177120f35..aa4d3f21c0 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -16,7 +16,7 @@ Button property alias iconSource: buttonIconLeft.source property alias textFont: buttonText.font property alias cornerRadius: backgroundRect.radius - property alias tooltip: tooltip.text + property alias tooltip: tooltip.tooltipText property alias cornerSide: backgroundRect.cornerSide property color color: UM.Theme.getColor("primary") @@ -109,11 +109,9 @@ Button z: backgroundRect.z - 1 } - ToolTip + Cura.ToolTip { id: tooltip - text: "" - delay: 500 - visible: text != "" && button.hovered + show: button.hovered } } \ No newline at end of file diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 9a6c97bcff..2858bc267c 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -55,7 +55,6 @@ Item leftPadding: UM.Theme.getSize("narrow_margin").width //Need more space than usual here for wide text. rightPadding: UM.Theme.getSize("narrow_margin").width - tooltip: popup.opened ? "" : catalog.i18nc("@info:tooltip", "Select the active output device") iconSource: popup.opened ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom") color: UM.Theme.getColor("action_panel_secondary") visible: (devicesModel.deviceCount > 1) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 18caeafb40..2d377abcd8 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -109,6 +109,7 @@ Column fixedWidthMode: true anchors.fill: parent text: catalog.i18nc("@button", "Slice") + tooltip: "Start slicing process" enabled: widget.backendState != UM.Backend.Error visible: widget.backendState == UM.Backend.NotStarted || widget.backendState == UM.Backend.Error onClicked: sliceOrStopSlicing() diff --git a/resources/qml/PrintSetupTooltip.qml b/resources/qml/PrintSetupTooltip.qml index 4fa4ef9dd7..693b703813 100644 --- a/resources/qml/PrintSetupTooltip.qml +++ b/resources/qml/PrintSetupTooltip.qml @@ -2,9 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 -import QtQuick.Controls 1.1 -import QtQuick.Controls.Styles 1.1 -import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.3 import UM 1.0 as UM @@ -57,5 +55,6 @@ UM.PointingRectangle { textFormat: Text.RichText font: UM.Theme.getFont("default"); color: UM.Theme.getColor("tooltip_text"); + renderType: Text.NativeRendering } } diff --git a/resources/qml/ToolTip.qml b/resources/qml/ToolTip.qml new file mode 100644 index 0000000000..ed71d3983b --- /dev/null +++ b/resources/qml/ToolTip.qml @@ -0,0 +1,43 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +import UM 1.0 as UM + +ToolTip +{ + // This property indicates when the tooltip has to show, for instance when a button is hovered + property bool show: false + + property alias tooltipText: tooltip.text + property var targetPoint: Qt.point(0, 0) + + id: tooltip + text: "" + delay: 500 + visible: text != "" && show + font: UM.Theme.getFont("default") + + background: UM.PointingRectangle + { + id: backgroundRect + color: UM.Theme.getColor("tooltip") + + target: Qt.point(targetPoint.x - tooltip.x, targetPoint.y - tooltip.y) + + arrowSize: UM.Theme.getSize("default_arrow").width + } + + contentItem: Label + { + id: label + text: tooltip.text + font: tooltip.font + wrapMode: Text.Wrap + textFormat: Text.RichText + color: UM.Theme.getColor("tooltip_text") + renderType: Text.NativeRendering + } +} \ No newline at end of file diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml index adff73fb7c..307d49302c 100644 --- a/resources/qml/ToolbarButton.qml +++ b/resources/qml/ToolbarButton.qml @@ -96,4 +96,11 @@ Button height: UM.Theme.getSize("button_icon").height } } + + Cura.ToolTip + { + id: tooltip + tooltipText: base.text + show: base.hovered + } } diff --git a/resources/qml/qmldir b/resources/qml/qmldir index 1dc21150ce..80e0f8be46 100644 --- a/resources/qml/qmldir +++ b/resources/qml/qmldir @@ -14,4 +14,5 @@ PrinterTypeLabel 1.0 PrinterTypeLabel.qml ViewsSelector 1.0 ViewsSelector.qml ToolbarButton 1.0 ToolbarButton.qml SettingView 1.0 SettingView.qml -ProfileMenu 1.0 ProfileMenu.qml \ No newline at end of file +ProfileMenu 1.0 ProfileMenu.qml +ToolTip 1.0 ToolTip.qml \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 16d13b9652..86201db809 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -240,7 +240,7 @@ "checkbox_disabled": [223, 223, 223, 255], "checkbox_text": [35, 35, 35, 255], - "tooltip": [68, 192, 255, 255], + "tooltip": [19, 19, 19, 255], "tooltip_text": [255, 255, 255, 255], "tool_button_border": [255, 255, 255, 0], From 9e7a52e28bd783876ae8255fc3648f4dbb7fcc4e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 09:43:50 +0100 Subject: [PATCH 0757/1039] Update the background color for the expandable component when using the close button. Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 3a03740251..4170a0942e 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -71,7 +71,15 @@ Item function toggleContent() { - content.visible = !content.visible + content.visible = !expanded + } + + // Add this binding since the background color is not updated otherwise + Binding + { + target: background + property: "color" + value: expanded ? headerActiveColor : headerBackgroundColor } implicitHeight: 100 * screenScaleFactor @@ -82,7 +90,7 @@ Item id: background property real padding: UM.Theme.getSize("default_margin").width - color: headerBackgroundColor + color: expanded ? headerActiveColor : headerBackgroundColor anchors.fill: parent Loader From 04f3601c2711426ac5b363ad51e03d468492506f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 09:54:26 +0100 Subject: [PATCH 0758/1039] Ensure that local votes are displayed right away So even before an update is received, ensure that the data is updated CURA-6013 --- .../Toolbox/resources/qml/RatingWidget.qml | 29 +++++++++++++------ .../resources/qml/ToolboxDetailPage.qml | 18 ++++++++++++ 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index 424f6c91c4..b7d07835e8 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -9,8 +9,16 @@ Item property real rating: 0 property int indexHovered: -1 property string packageId: "" + property int numRatings: 0 + + // If the widget was used to vote, but the vote isn't sent to remote yet, we do want to fake some things. + property int _numRatings: _localRating != 0 ? numRatings + 1 : numRatings + property int _localRating: 0 + onVisibleChanged: _localRating = 0 // Reset the _localRating + property int userRating: 0 + width: contentRow.width height: contentRow.height MouseArea @@ -50,7 +58,10 @@ Item { return indexHovered >= index } - + if(ratingWidget._localRating > 0) + { + return _localRating >= index +1 + } if(ratingWidget.userRating > 0) { return userRating >= index +1 @@ -73,7 +84,7 @@ Item { return "#5a5a5a" } - if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0) && isStarFilled) + if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0 || ratingWidget._localRating > 0) && isStarFilled) { return UM.Theme.getColor("primary") } @@ -82,19 +93,19 @@ Item } onClicked: { - if(userRating == 0) - { - //User didn't vote yet, locally fake it - numRatings += 1 - } - userRating = index + 1 // Fake local data + // Ensure that the local rating is updated (even though it's not on the server just yet) + _localRating = index + 1 toolbox.ratePackage(ratingWidget.packageId, index + 1) } } } Label { - text: "(" + numRatings + ")" + text: "(" + _numRatings + ")" + verticalAlignment: Text.AlignVCenter + height: parent.height + color: "#5a5a5a" + font: UM.Theme.getFont("small") } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 4e0bf67544..dd3f0a6c84 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -6,6 +6,8 @@ import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM +import Cura 1.1 as Cura + Item { id: page @@ -103,6 +105,12 @@ Item font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } + Label + { + text: catalog.i18nc("@label", "Rating") + ":" + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text_medium") + } } Column { @@ -160,6 +168,16 @@ Item font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") } + RatingWidget + { + id: rating + visible: details.type == "plugin" + packageId: details.id + rating: details.average_rating + numRatings: details.num_ratings + userRating: details.user_rating + enabled: toolbox.isInstalled(details.id) && Cura.API.account.isLoggedIn + } } Rectangle { From 8cfb9350bc2931224d4be597c3650c0b808e4e2c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 10:36:55 +0100 Subject: [PATCH 0759/1039] Add a mouse area to gather the scroll events in the settings panel Contributes to CURA-5941. --- resources/qml/Settings/SettingView.qml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 3f84296307..9904770281 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -168,8 +168,10 @@ Item style: ButtonStyle { - background: Item { - UM.RecolorImage { + background: Item + { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: UM.Theme.getSize("standard_arrow").width @@ -180,8 +182,9 @@ Item source: UM.Theme.getIcon("menu") } } - label: Label{} + label: Label {} } + menu: SettingVisibilityPresetsMenu { onShowAllSettings: @@ -192,6 +195,14 @@ Item } } + // Mouse area that gathers the scroll events to not propagate it to the main view. + MouseArea + { + anchors.fill: scrollView + acceptedButtons: Qt.AllButtons + onWheel: wheel.accepted = true + } + ScrollView { id: scrollView From 098adc45ff6464f14e6ba8c2be2deec2df17bb75 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 10:40:54 +0100 Subject: [PATCH 0760/1039] Move the rating logic outside of the rating widget That way it's easier to re-use the component if that's ever required. CURA-6013 --- plugins/Toolbox/resources/qml/RatingWidget.qml | 7 +++++-- .../Toolbox/resources/qml/ToolboxDetailPage.qml | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index b7d07835e8..f1499b61a7 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -19,6 +19,8 @@ Item property int userRating: 0 + signal rated(int rating) + width: contentRow.width height: contentRow.height MouseArea @@ -94,8 +96,9 @@ Item onClicked: { // Ensure that the local rating is updated (even though it's not on the server just yet) - _localRating = index + 1 - toolbox.ratePackage(ratingWidget.packageId, index + 1) + //_localRating = index + 1 + rated(index + 1) + } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index dd3f0a6c84..a503a9d519 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -177,6 +177,21 @@ Item numRatings: details.num_ratings userRating: details.user_rating enabled: toolbox.isInstalled(details.id) && Cura.API.account.isLoggedIn + + onRated: + { + toolbox.ratePackage(details.id, rating) + var index = toolbox.packagesModel.find("id", details.id) + if(index != -1) + { + // Found the package + toolbox.packagesModel.setProperty(index, "user_rating", rating) + toolbox.packagesModel.setProperty(index, "num_ratings", details.num_ratings + 1) + + // Hack; This is because the current selection is an outdated copy, so we need to re-copy it. + base.selection = toolbox.packagesModel.getItem(index) + } + } } } Rectangle From 99f0e9613144ceebb30159cc8fc73c6bff25f0e3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 11:01:55 +0100 Subject: [PATCH 0761/1039] Ensure that the local model is updated correctly on local vote CURA-6013 --- .../Toolbox/resources/qml/RatingWidget.qml | 22 +++----------- .../resources/qml/ToolboxDetailPage.qml | 29 +++++++++++++++---- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index f1499b61a7..fbe782b2e2 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -12,11 +12,6 @@ Item property int numRatings: 0 - // If the widget was used to vote, but the vote isn't sent to remote yet, we do want to fake some things. - property int _numRatings: _localRating != 0 ? numRatings + 1 : numRatings - property int _localRating: 0 - onVisibleChanged: _localRating = 0 // Reset the _localRating - property int userRating: 0 signal rated(int rating) @@ -60,10 +55,7 @@ Item { return indexHovered >= index } - if(ratingWidget._localRating > 0) - { - return _localRating >= index +1 - } + if(ratingWidget.userRating > 0) { return userRating >= index +1 @@ -86,25 +78,19 @@ Item { return "#5a5a5a" } - if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0 || ratingWidget._localRating > 0) && isStarFilled) + if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0) && isStarFilled) { return UM.Theme.getColor("primary") } return "#5a5a5a" } } - onClicked: - { - // Ensure that the local rating is updated (even though it's not on the server just yet) - //_localRating = index + 1 - rated(index + 1) - - } + onClicked: rated(index + 1) // Notify anyone who cares about this. } } Label { - text: "(" + _numRatings + ")" + text: "(" + numRatings + ")" verticalAlignment: Text.AlignVCenter height: parent.height color: "#5a5a5a" diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index a503a9d519..51bb218293 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -181,15 +181,34 @@ Item onRated: { toolbox.ratePackage(details.id, rating) - var index = toolbox.packagesModel.find("id", details.id) + // HACK: This is a far from optimal solution, but without major refactoring, this is the best we can + // do. Since a rework of this is scheduled, it shouldn't live that long... + var index = toolbox.pluginsAvailableModel.find("id", details.id) if(index != -1) { - // Found the package - toolbox.packagesModel.setProperty(index, "user_rating", rating) - toolbox.packagesModel.setProperty(index, "num_ratings", details.num_ratings + 1) + if(details.user_rating == 0) // User never rated before. + { + toolbox.pluginsAvailableModel.setProperty(index, "num_ratings", details.num_ratings + 1) + } + + toolbox.pluginsAvailableModel.setProperty(index, "user_rating", rating) + // Hack; This is because the current selection is an outdated copy, so we need to re-copy it. - base.selection = toolbox.packagesModel.getItem(index) + base.selection = toolbox.pluginsAvailableModel.getItem(index) + return + } + index = toolbox.pluginsShowcaseModel.find("id", details.id) + if(index != -1) + { + if(details.user_rating == 0) // User never rated before. + { + toolbox.pluginsShowcaseModel.setProperty(index, "user_rating", rating) + } + toolbox.pluginsShowcaseModel.setProperty(index, "num_ratings", details.num_ratings + 1) + + // Hack; This is because the current selection is an outdated copy, so we need to re-copy it. + base.selection = toolbox.pluginsShowcaseModel.getItem(index) } } } From 82322d857554b3685394dbee40485c59a973cf02 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 11:12:25 +0100 Subject: [PATCH 0762/1039] Show that a downloaded plugin has a user rating or not CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 677e532827..f34d982cfb 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -136,14 +136,16 @@ Item { id: starIcon source: UM.Theme.getIcon("star_filled") - color: "#5a5a5a" + color: model.user_rating == 0 ? "#5a5a5a" : UM.Theme.getColor("primary") height: UM.Theme.getSize("rating_star").height width: UM.Theme.getSize("rating_star").width } Label { - text: model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" + // If the user voted, show that value. Otherwsie show the average rating. + property real ratingtoUse: model.user_rating == 0 ? model.average_rating: model.user_rating + text: ratingtoUse.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" verticalAlignment: Text.AlignVCenter height: starIcon.height anchors.verticalCenter: starIcon.verticalCenter From 12522c929372c06ec55731ec381fed3f84bd2f8d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 11:19:44 +0100 Subject: [PATCH 0763/1039] Change hover colors of the small buttons. Contributes to CURA-5941 --- .../PrintSetupSelectorContents.qml | 4 ++-- resources/qml/Settings/SettingView.qml | 2 +- resources/qml/ViewOrientationButton.qml | 1 - resources/themes/cura-light/theme.json | 14 +++++++------- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 47d25edd54..7cd03ff74a 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -74,6 +74,7 @@ Item id: closeButton width: UM.Theme.getSize("message_close").width height: UM.Theme.getSize("message_close").height + hoverEnabled: true anchors { @@ -86,8 +87,7 @@ Item { anchors.fill: parent sourceSize.width: width - sourceSize.height: width - color: UM.Theme.getColor("message_text") + color: closeButton.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text") source: UM.Theme.getIcon("cross1") } diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 9904770281..c1b4b28d1d 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -178,7 +178,7 @@ Item height: UM.Theme.getSize("standard_arrow").height sourceSize.width: width sourceSize.height: height - color: control.enabled ? UM.Theme.getColor("setting_category_text") : UM.Theme.getColor("setting_category_disabled_text") + color: control.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text") source: UM.Theme.getIcon("menu") } } diff --git a/resources/qml/ViewOrientationButton.qml b/resources/qml/ViewOrientationButton.qml index 682fd71b4e..5371f8549b 100644 --- a/resources/qml/ViewOrientationButton.qml +++ b/resources/qml/ViewOrientationButton.qml @@ -9,7 +9,6 @@ UM.SimpleButton { width: UM.Theme.getSize("small_button").width height: UM.Theme.getSize("small_button").height - hoverBackgroundColor: UM.Theme.getColor("small_button_hover") hoverColor: UM.Theme.getColor("small_button_text_hover") color: UM.Theme.getColor("small_button_text") iconMargin: 0.5 * UM.Theme.getSize("wide_lining").width diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index d4fb59b7a1..0ef6c24bfb 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -80,7 +80,7 @@ "primary_hover": [48, 182, 231, 255], "primary_text": [255, 255, 255, 255], "border": [127, 127, 127, 255], - "secondary": [245, 245, 245, 255], + "secondary": [240, 240, 240, 255], "secondary_shadow": [216, 216, 216, 255], "primary_button": [38, 113, 231, 255], @@ -150,7 +150,7 @@ "small_button_active": [10, 8, 80, 255], "small_button_active_hover": [10, 8, 80, 255], "small_button_text": [102, 102, 102, 255], - "small_button_text_hover": [255, 255, 255, 255], + "small_button_text_hover": [8, 7, 63, 255], "small_button_text_active": [255, 255, 255, 255], "small_button_text_active_hover": [255, 255, 255, 255], @@ -183,18 +183,18 @@ "scrollbar_handle_hover": [50, 130, 255, 255], "scrollbar_handle_down": [50, 130, 255, 255], - "setting_category": [245, 245, 245, 255], + "setting_category": [240, 240, 240, 255], "setting_category_disabled": [255, 255, 255, 255], "setting_category_hover": [232, 242, 252, 255], - "setting_category_active": [245, 245, 245, 255], + "setting_category_active": [240, 240, 240, 255], "setting_category_active_hover": [232, 242, 252, 255], "setting_category_text": [35, 35, 35, 255], "setting_category_disabled_text": [24, 41, 77, 101], "setting_category_hover_text": [35, 35, 35, 255], "setting_category_active_text": [35, 35, 35, 255], "setting_category_active_hover_text": [35, 35, 35, 255], - "setting_category_border": [245, 245, 245, 255], - "setting_category_disabled_border": [245, 245, 245, 255], + "setting_category_border": [240, 240, 240, 255], + "setting_category_disabled_border": [240, 240, 240, 255], "setting_category_hover_border": [50, 130, 255, 255], "setting_category_active_border": [50, 130, 255, 255], "setting_category_active_hover_border": [50, 130, 255, 255], @@ -274,7 +274,7 @@ "z_axis": [0, 255, 0, 255], "all_axis": [255, 255, 255, 255], - "viewport_background": [245, 245, 245, 255], + "viewport_background": [250, 250, 250, 255], "volume_outline": [50, 130, 255, 255], "buildplate": [244, 244, 244, 255], "buildplate_grid": [129, 131, 134, 255], From 021c44862752905999fdd0aaf9fac3130cb3e5b2 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 11:31:18 +0100 Subject: [PATCH 0764/1039] Remove depreciated monitor tab stuff Contributes to CL-1152 --- .../resources/qml/PrintCoreConfiguration.qml | 121 ----- .../resources/qml/PrintJobInfoBlock.qml | 505 ------------------ .../resources/qml/PrintJobPreview.qml | 75 --- .../resources/qml/PrintJobTitle.qml | 59 -- .../resources/qml/PrinterCard.qml | 241 --------- .../resources/qml/PrinterCardDetails.qml | 75 --- .../resources/qml/PrinterCardProgressBar.qml | 108 ---- .../resources/qml/PrinterFamilyPill.qml | 32 -- .../resources/qml/PrinterInfoBlock.qml | 83 --- 9 files changed, 1299 deletions(-) delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrintCoreConfiguration.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrintJobPreview.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrintJobTitle.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrinterCardProgressBar.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrinterFamilyPill.qml delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/PrinterInfoBlock.qml diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintCoreConfiguration.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintCoreConfiguration.qml deleted file mode 100644 index 7bcd9ce6e4..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintCoreConfiguration.qml +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 -import UM 1.2 as UM - -Item { - id: extruderInfo; - property var printCoreConfiguration: null; - height: childrenRect.height; - width: Math.round(parent.width / 2); - - // Extruder circle - Item { - id: extruderCircle; - height: UM.Theme.getSize("monitor_extruder_circle").height; - width: UM.Theme.getSize("monitor_extruder_circle").width; - - // Loading skeleton - Rectangle { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_skeleton_fill"); - radius: Math.round(width / 2); - visible: !printCoreConfiguration; - } - - // Actual content - Rectangle { - anchors.fill: parent; - border.width: UM.Theme.getSize("monitor_thick_lining").width; - border.color: UM.Theme.getColor("monitor_lining_heavy"); - color: "transparent"; - opacity: { - if (printCoreConfiguration == null || printCoreConfiguration.activeMaterial == null || printCoreConfiguration.hotendID == null) { - return 0.5; - } - return 1; - } - radius: Math.round(width / 2); - visible: printCoreConfiguration; - - Label { - anchors.centerIn: parent; - color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("default_bold"); - text: printCoreConfiguration ? printCoreConfiguration.position + 1 : 0; - } - } - } - - // Print core and material labels - Item { - id: materialLabel - anchors { - left: extruderCircle.right; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - top: parent.top; - } - height: UM.Theme.getSize("monitor_text_line").height; - - // Loading skeleton - Rectangle { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_skeleton_fill"); - visible: !extruderInfo.printCoreConfiguration; - } - - // Actual content - Label { - anchors.fill: parent; - elide: Text.ElideRight; - color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("default"); - text: { - if (printCoreConfiguration && printCoreConfiguration.activeMaterial != undefined) { - return printCoreConfiguration.activeMaterial.name; - } - return ""; - } - visible: extruderInfo.printCoreConfiguration; - } - } - - Item { - id: printCoreLabel; - anchors { - left: extruderCircle.right; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - top: materialLabel.bottom; - topMargin: Math.floor(UM.Theme.getSize("default_margin").height/4); - } - height: UM.Theme.getSize("monitor_text_line").height; - - // Loading skeleton - Rectangle { - color: UM.Theme.getColor("monitor_skeleton_fill"); - height: parent.height; - visible: !extruderInfo.printCoreConfiguration; - width: Math.round(parent.width / 3); - } - - // Actual content - Label { - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default"); - opacity: 0.6; - text: { - if (printCoreConfiguration != undefined && printCoreConfiguration.hotendID != undefined) { - return printCoreConfiguration.hotendID; - } - return ""; - } - visible: extruderInfo.printCoreConfiguration; - } - } -} diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml deleted file mode 100644 index a611cb4ff6..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml +++ /dev/null @@ -1,505 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Dialogs 1.1 -import QtQuick.Controls 2.0 -import QtQuick.Controls.Styles 1.4 -import QtGraphicalEffects 1.0 -import QtQuick.Layouts 1.1 -import QtQuick.Dialogs 1.1 -import UM 1.3 as UM - -Item { - id: root; - property var shadowRadius: UM.Theme.getSize("monitor_shadow_radius").width; - property var shadowOffset: 2 * screenScaleFactor; - property var debug: false; - property var printJob: null; - width: parent.width; // Bubbles downward - height: childrenRect.height + shadowRadius * 2; // Bubbles upward - - UM.I18nCatalog { - id: catalog; - name: "cura"; - } - - // The actual card (white block) - Rectangle { - // 5px margin, but shifted 2px vertically because of the shadow - anchors { - bottomMargin: root.shadowRadius + root.shadowOffset; - leftMargin: root.shadowRadius; - rightMargin: root.shadowRadius; - topMargin: root.shadowRadius - root.shadowOffset; - } - color: UM.Theme.getColor("monitor_card_background"); - height: childrenRect.height; - layer.enabled: true - layer.effect: DropShadow { - radius: root.shadowRadius - verticalOffset: 2 * screenScaleFactor - color: "#3F000000" // 25% shadow - } - width: parent.width - shadowRadius * 2; - - Column { - height: childrenRect.height; - width: parent.width; - - // Main content - Item { - id: mainContent; - height: 200 * screenScaleFactor; // TODO: Theme! - width: parent.width; - - // Left content - Item { - anchors { - bottom: parent.bottom; - left: parent.left; - margins: UM.Theme.getSize("wide_margin").width; - right: parent.horizontalCenter; - top: parent.top; - } - - Item { - id: printJobName; - width: parent.width; - height: UM.Theme.getSize("monitor_text_line").height; - - Rectangle { - color: UM.Theme.getColor("monitor_skeleton_fill"); - height: parent.height; - visible: !printJob; - width: Math.round(parent.width / 3); - } - Label { - anchors.fill: parent; - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default_bold"); - text: printJob && printJob.name ? printJob.name : ""; // Supress QML warnings - visible: printJob; - } - } - - Item { - id: printJobOwnerName; - anchors { - top: printJobName.bottom; - topMargin: Math.floor(UM.Theme.getSize("default_margin").height / 2); - } - height: UM.Theme.getSize("monitor_text_line").height; - width: parent.width; - - Rectangle { - color: UM.Theme.getColor("monitor_skeleton_fill"); - height: parent.height; - visible: !printJob; - width: Math.round(parent.width / 2); - } - Label { - anchors.fill: parent; - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default"); - text: printJob ? printJob.owner : ""; // Supress QML warnings - visible: printJob; - } - } - - Item { - id: printJobPreview; - property var useUltibot: false; - anchors { - bottom: parent.bottom; - horizontalCenter: parent.horizontalCenter; - top: printJobOwnerName.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - } - width: height; - - // Skeleton - Rectangle { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_skeleton_fill"); - radius: UM.Theme.getSize("default_margin").width; - visible: !printJob; - } - - // Actual content - Image { - id: previewImage; - anchors.fill: parent; - opacity: printJob && printJob.state == "error" ? 0.5 : 1.0; - source: printJob ? printJob.previewImageUrl : ""; - visible: printJob; - } - - UM.RecolorImage { - id: ultiBotImage; - - anchors.centerIn: printJobPreview; - color: UM.Theme.getColor("monitor_placeholder_image"); - height: printJobPreview.height; - source: "../svg/ultibot.svg"; - sourceSize { - height: height; - width: width; - } - /* Since print jobs ALWAYS have an image url, we have to check if that image URL errors or - not in order to determine if we show the placeholder (ultibot) image instead. */ - visible: printJob && previewImage.status == Image.Error; - width: printJobPreview.width; - } - - UM.RecolorImage { - id: statusImage; - anchors.centerIn: printJobPreview; - color: UM.Theme.getColor("monitor_image_overlay"); - height: 0.5 * printJobPreview.height; - source: printJob && printJob.state == "error" ? "../svg/aborted-icon.svg" : ""; - sourceSize { - height: height; - width: width; - } - visible: source != ""; - width: 0.5 * printJobPreview.width; - } - } - - Label { - id: totalTimeLabel; - anchors { - bottom: parent.bottom; - right: parent.right; - } - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default"); - text: printJob ? OutputDevice.formatDuration(printJob.timeTotal) : ""; - } - } - - // Divider - Rectangle { - anchors { - horizontalCenter: parent.horizontalCenter; - verticalCenter: parent.verticalCenter; - } - color: !printJob ? UM.Theme.getColor("monitor_skeleton_fill") : UM.Theme.getColor("monitor_lining_light"); - height: parent.height - 2 * UM.Theme.getSize("default_margin").height; - width: UM.Theme.getSize("default_lining").width; - } - - // Right content - Item { - anchors { - bottom: parent.bottom; - left: parent.horizontalCenter; - margins: UM.Theme.getSize("wide_margin").width; - right: parent.right; - top: parent.top; - } - - Item { - id: targetPrinterLabel; - height: UM.Theme.getSize("monitor_text_line").height; - width: parent.width; - - Rectangle { - visible: !printJob; - color: UM.Theme.getColor("monitor_skeleton_fill"); - anchors.fill: parent; - } - - Label { - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default_bold"); - text: { - if (printJob !== null) { - if (printJob.assignedPrinter == null) { - if (printJob.state == "error") { - return catalog.i18nc("@label", "Waiting for: Unavailable printer"); - } - return catalog.i18nc("@label", "Waiting for: First available"); - } else { - return catalog.i18nc("@label", "Waiting for: ") + printJob.assignedPrinter.name; - } - } - return ""; - } - visible: printJob; - } - } - - PrinterInfoBlock { - anchors.bottom: parent.bottom; - printer: root.printJon && root.printJob.assignedPrinter; - printJob: root.printJob; - } - } - - PrintJobContextMenu { - id: contextButton; - anchors { - right: mainContent.right; - rightMargin: UM.Theme.getSize("default_margin").width * 3 + root.shadowRadius; - top: mainContent.top; - topMargin: UM.Theme.getSize("default_margin").height; - } - printJob: root.printJob; - visible: root.printJob; - } - } - - Item { - id: configChangesBox; - height: childrenRect.height; - visible: printJob && printJob.configurationChanges.length !== 0; - width: parent.width; - - // Config change toggle - Rectangle { - id: configChangeToggle; - color: { - if (configChangeToggleArea.containsMouse) { - return UM.Theme.getColor("viewport_background"); // TODO: Theme! - } else { - return "transparent"; - } - } - width: parent.width; - height: UM.Theme.getSize("default_margin").height * 4; // TODO: Theme! - anchors { - left: parent.left; - right: parent.right; - top: parent.top; - } - - Rectangle { - color: !printJob ? UM.Theme.getColor("monitor_skeleton_fill") : UM.Theme.getColor("monitor_lining_light"); - height: UM.Theme.getSize("default_lining").height; - width: parent.width; - } - - UM.RecolorImage { - anchors { - right: configChangeToggleLabel.left; - rightMargin: UM.Theme.getSize("default_margin").width; - verticalCenter: parent.verticalCenter; - } - color: UM.Theme.getColor("text"); - height: 23 * screenScaleFactor; // TODO: Theme! - source: "../svg/warning-icon.svg"; - sourceSize { - height: height; - width: width; - } - width: 23 * screenScaleFactor; // TODO: Theme! - } - - Label { - id: configChangeToggleLabel; - anchors { - horizontalCenter: parent.horizontalCenter; - verticalCenter: parent.verticalCenter; - } - color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("default"); - text: catalog.i18nc("@label", "Configuration change"); - } - - UM.RecolorImage { - anchors { - left: configChangeToggleLabel.right; - leftMargin: UM.Theme.getSize("default_margin").width; - verticalCenter: parent.verticalCenter; - } - color: UM.Theme.getColor("text"); - height: 15 * screenScaleFactor; // TODO: Theme! - source: { - if (configChangeDetails.visible) { - return UM.Theme.getIcon("arrow_top"); - } else { - return UM.Theme.getIcon("arrow_bottom"); - } - } - sourceSize { - width: width; - height: height; - } - width: 15 * screenScaleFactor; // TODO: Theme! - } - - MouseArea { - id: configChangeToggleArea; - anchors.fill: parent; - hoverEnabled: true; - onClicked: { - configChangeDetails.visible = !configChangeDetails.visible; - } - } - } - - // Config change details - Item { - id: configChangeDetails; - anchors.top: configChangeToggle.bottom; - Behavior on height { NumberAnimation { duration: 100 } } - // In case of really massive multi-line configuration changes - height: visible ? Math.max(UM.Theme.getSize("monitor_config_override_box").height, childrenRect.height) : 0; - visible: false; - width: parent.width; - - Item { - anchors { - bottomMargin: UM.Theme.getSize("wide_margin").height; - fill: parent; - leftMargin: UM.Theme.getSize("wide_margin").height * 4; - rightMargin: UM.Theme.getSize("wide_margin").height * 4; - topMargin: UM.Theme.getSize("wide_margin").height; - } - clip: true; - - Label { - anchors.fill: parent; - elide: Text.ElideRight; - color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("default"); - text: { - if (!printJob || printJob.configurationChanges.length === 0) { - return ""; - } - var topLine; - if (materialsAreKnown(printJob)) { - topLine = catalog.i18nc("@label", "The assigned printer, %1, requires the following configuration change(s):").arg(printJob.assignedPrinter.name); - } else { - topLine = catalog.i18nc("@label", "The printer %1 is assigned, but the job contains an unknown material configuration.").arg(printJob.assignedPrinter.name); - } - var result = "

    " + topLine +"

    "; - for (var i = 0; i < printJob.configurationChanges.length; i++) { - var change = printJob.configurationChanges[i]; - var text; - switch (change.typeOfChange) { - case "material_change": - text = catalog.i18nc("@label", "Change material %1 from %2 to %3.").arg(change.index + 1).arg(change.originName).arg(change.targetName); - break; - case "material_insert": - text = catalog.i18nc("@label", "Load %3 as material %1 (This cannot be overridden).").arg(change.index + 1).arg(change.targetName); - break; - case "print_core_change": - text = catalog.i18nc("@label", "Change print core %1 from %2 to %3.").arg(change.index + 1).arg(change.originName).arg(change.targetName); - break; - case "buildplate_change": - text = catalog.i18nc("@label", "Change build plate to %1 (This cannot be overridden).").arg(formatBuildPlateType(change.target_name)); - break; - default: - text = ""; - } - result += "

    " + text + "

    "; - } - return result; - } - wrapMode: Text.WordWrap; - } - - Button { - anchors { - bottom: parent.bottom; - left: parent.left; - } - background: Rectangle { - border { - color: UM.Theme.getColor("monitor_lining_heavy"); - width: UM.Theme.getSize("default_lining").width; - } - color: parent.hovered ? UM.Theme.getColor("monitor_card_background_inactive") : UM.Theme.getColor("monitor_card_background"); - implicitHeight: UM.Theme.getSize("default_margin").height * 3; - implicitWidth: UM.Theme.getSize("default_margin").height * 8; - } - contentItem: Label { - color: UM.Theme.getColor("text"); - font: UM.Theme.getFont("medium"); - horizontalAlignment: Text.AlignHCenter; - text: parent.text; - verticalAlignment: Text.AlignVCenter; - } - onClicked: { - overrideConfirmationDialog.visible = true; - } - text: catalog.i18nc("@label", "Override"); - visible: { - if (printJob && printJob.configurationChanges) { - var length = printJob.configurationChanges.length; - for (var i = 0; i < length; i++) { - var typeOfChange = printJob.configurationChanges[i].typeOfChange; - if (typeOfChange === "material_insert" || typeOfChange === "buildplate_change") { - return false; - } - } - } - return true; - } - } - } - } - - MessageDialog { - id: overrideConfirmationDialog; - Component.onCompleted: visible = false; - icon: StandardIcon.Warning; - onYes: OutputDevice.forceSendJob(printJob.key); - standardButtons: StandardButton.Yes | StandardButton.No; - text: { - if (!printJob) { - return ""; - } - var printJobName = formatPrintJobName(printJob.name); - var confirmText = catalog.i18nc("@label", "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?").arg(printJobName); - return confirmText; - } - title: catalog.i18nc("@window:title", "Override configuration configuration and start print"); - } - } - } - } - // Utils - function formatPrintJobName(name) { - var extensions = [ ".gz", ".gcode", ".ufp" ]; - for (var i = 0; i < extensions.length; i++) { - var extension = extensions[i]; - if (name.slice(-extension.length) === extension) { - name = name.substring(0, name.length - extension.length); - } - } - return name; - } - function materialsAreKnown(job) { - var conf0 = job.configuration[0]; - if (conf0 && !conf0.material.material) { - return false; - } - var conf1 = job.configuration[1]; - if (conf1 && !conf1.material.material) { - return false; - } - return true; - } - function formatBuildPlateType(buildPlateType) { - var translationText = ""; - switch (buildPlateType) { - case "glass": - translationText = catalog.i18nc("@label", "Glass"); - break; - case "aluminum": - translationText = catalog.i18nc("@label", "Aluminum"); - break; - default: - translationText = null; - } - return translationText; - } -} diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobPreview.qml deleted file mode 100644 index b1a73255f4..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobPreview.qml +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Dialogs 1.1 -import QtQuick.Controls 2.0 -import QtQuick.Controls.Styles 1.3 -import QtGraphicalEffects 1.0 -import QtQuick.Controls 1.4 as LegacyControls -import UM 1.3 as UM - -// Includes print job name, owner, and preview - -Item { - property var job: null; - property var useUltibot: false; - height: 100 * screenScaleFactor; - width: height; - - // Skeleton - Rectangle { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_skeleton_fill"); - radius: UM.Theme.getSize("default_margin").width; - visible: !job; - } - - // Actual content - Image { - id: previewImage; - visible: job; - source: job ? job.previewImageUrl : ""; - opacity: { - if (job == null) { - return 1.0; - } - var states = ["wait_cleanup", "wait_user_action", "error", "paused"]; - if (states.indexOf(job.state) !== -1) { - return 0.5; - } - return 1.0; - } - anchors.fill: parent; - } - - UM.RecolorImage { - id: ultibotImage; - anchors.centerIn: parent; - color: UM.Theme.getColor("monitor_placeholder_image"); // TODO: Theme! - height: parent.height; - source: "../svg/ultibot.svg"; - sourceSize { - height: height; - width: width; - } - /* Since print jobs ALWAYS have an image url, we have to check if that image URL errors or - not in order to determine if we show the placeholder (ultibot) image instead. */ - visible: job && previewImage.status == Image.Error; - width: parent.width; - } - - UM.RecolorImage { - id: statusImage; - anchors.centerIn: parent; - color: "black"; // TODO: Theme! - height: Math.round(0.5 * parent.height); - source: job && job.state == "error" ? "../svg/aborted-icon.svg" : ""; - sourceSize { - height: height; - width: width; - } - visible: source != ""; - width: Math.round(0.5 * parent.width); - } -} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobTitle.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobTitle.qml deleted file mode 100644 index f9f7b5ae87..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobTitle.qml +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Controls 2.0 -import UM 1.3 as UM - -Column { - property var job: null; - height: childrenRect.height; - spacing: Math.floor( UM.Theme.getSize("default_margin").height / 2); // TODO: Use explicit theme size - width: parent.width; - - Item { - id: jobName; - height: UM.Theme.getSize("monitor_text_line").height; - width: parent.width; - - // Skeleton loading - Rectangle { - color: UM.Theme.getColor("monitor_skeleton_fill"); - height: parent.height; - visible: !job; - width: Math.round(parent.width / 3); - } - - Label { - anchors.fill: parent; - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default_bold"); - text: job && job.name ? job.name : ""; - visible: job; - } - } - - Item { - id: ownerName; - height: UM.Theme.getSize("monitor_text_line").height; - width: parent.width; - - // Skeleton loading - Rectangle { - color: UM.Theme.getColor("monitor_skeleton_fill"); - height: parent.height; - visible: !job; - width: Math.round(parent.width / 2); - } - - Label { - anchors.fill: parent; - color: UM.Theme.getColor("text") - elide: Text.ElideRight; - font: UM.Theme.getFont("default"); - text: job ? job.owner : ""; - visible: job; - } - } -} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml deleted file mode 100644 index 24beaf70fe..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrinterCard.qml +++ /dev/null @@ -1,241 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Dialogs 1.1 -import QtQuick.Controls 2.0 -import QtQuick.Controls.Styles 1.3 -import QtGraphicalEffects 1.0 -import UM 1.3 as UM - -Item { - id: root; - property var shadowRadius: UM.Theme.getSize("monitor_shadow_radius").width; - property var shadowOffset: UM.Theme.getSize("monitor_shadow_offset").width; - property var printer: null; - property var collapsed: true; - height: childrenRect.height + shadowRadius * 2; // Bubbles upward - width: parent.width; // Bubbles downward - - // The actual card (white block) - Rectangle { - // 5px margin, but shifted 2px vertically because of the shadow - anchors { - bottomMargin: root.shadowRadius + root.shadowOffset; - leftMargin: root.shadowRadius; - rightMargin: root.shadowRadius; - topMargin: root.shadowRadius - root.shadowOffset; - } - color: { - if (!printer) { - return UM.Theme.getColor("monitor_card_background_inactive"); - } - if (printer.state == "disabled") { - return UM.Theme.getColor("monitor_card_background_inactive"); - } else { - return UM.Theme.getColor("monitor_card_background"); - } - } - height: childrenRect.height; - layer.effect: DropShadow { - radius: root.shadowRadius; - verticalOffset: root.shadowOffset; - color: "#3F000000"; // 25% shadow - } - layer.enabled: true - width: parent.width - 2 * shadowRadius; - - Column { - id: cardContents; - height: childrenRect.height; - width: parent.width; - - // Main card - Item { - id: mainCard; - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - } - height: 60 * screenScaleFactor + 2 * UM.Theme.getSize("default_margin").height; - width: parent.width; - - // Machine icon - Item { - id: machineIcon; - anchors.verticalCenter: parent.verticalCenter; - height: parent.height - 2 * UM.Theme.getSize("default_margin").width; - width: height; - - // Skeleton - Rectangle { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_skeleton_fill_dark"); - radius: UM.Theme.getSize("default_margin").width; - visible: !printer; - } - - // Content - UM.RecolorImage { - anchors.centerIn: parent; - color: { - if (printer && printer.activePrintJob != undefined) { - return UM.Theme.getColor("monitor_printer_icon"); - } - return UM.Theme.getColor("monitor_printer_icon_inactive"); - } - height: sourceSize.height; - source: { - if (!printer) { - return ""; - } - switch(printer.type) { - case "Ultimaker 3": - return "../svg/UM3-icon.svg"; - case "Ultimaker 3 Extended": - return "../svg/UM3x-icon.svg"; - case "Ultimaker S5": - return "../svg/UMs5-icon.svg"; - } - } - visible: printer; - width: sourceSize.width; - } - } - - // Printer info - Item { - id: printerInfo; - anchors { - left: machineIcon.right; - leftMargin: UM.Theme.getSize("wide_margin").width; - right: collapseIcon.left; - verticalCenter: machineIcon.verticalCenter; - } - height: childrenRect.height; - - // Machine name - Item { - id: machineNameLabel; - height: UM.Theme.getSize("monitor_text_line").height; - width: { - var percent = printer ? 0.75 : 0.3; - return Math.round(parent.width * percent); - } - - // Skeleton - Rectangle { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_skeleton_fill_dark"); - visible: !printer; - } - - // Actual content - Label { - anchors.fill: parent; - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default_bold"); - text: printer ? printer.name : ""; - visible: printer; - width: parent.width; - } - } - - // Job name - Item { - id: activeJobLabel; - anchors { - top: machineNameLabel.bottom; - topMargin: Math.round(UM.Theme.getSize("default_margin").height / 2); - } - height: UM.Theme.getSize("monitor_text_line").height; - width: Math.round(parent.width * 0.75); - - // Skeleton - Rectangle { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_skeleton_fill_dark"); - visible: !printer; - } - - // Actual content - Label { - anchors.fill: parent; - color: UM.Theme.getColor("monitor_text_inactive"); - elide: Text.ElideRight; - font: UM.Theme.getFont("default"); - text: { - if (!printer) { - return ""; - } - if (printer.state == "disabled") { - return catalog.i18nc("@label", "Not available"); - } else if (printer.state == "unreachable") { - return catalog.i18nc("@label", "Unreachable"); - } - if (printer.activePrintJob != null && printer.activePrintJob.name) { - return printer.activePrintJob.name; - } - return catalog.i18nc("@label", "Available"); - } - visible: printer; - } - } - } - - // Collapse icon - UM.RecolorImage { - id: collapseIcon; - anchors { - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - verticalCenter: parent.verticalCenter; - } - color: UM.Theme.getColor("text"); - height: 15 * screenScaleFactor; // TODO: Theme! - source: root.collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom"); - sourceSize { - height: height; - width: width; - } - visible: printer; - width: 15 * screenScaleFactor; // TODO: Theme! - } - - MouseArea { - anchors.fill: parent; - enabled: printer; - onClicked: { - if (model && root.collapsed) { - printerList.currentIndex = model.index; - } else { - printerList.currentIndex = -1; - } - } - } - - Connections { - target: printerList; - onCurrentIndexChanged: { - root.collapsed = printerList.currentIndex != model.index; - } - } - } - // Detailed card - PrinterCardDetails { - collapsed: root.collapsed; - printer: root.printer; - visible: root.printer; - } - - // Progress bar - PrinterCardProgressBar { - visible: printer && printer.activePrintJob != null; - width: parent.width; - } - } - } -} diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml b/plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml deleted file mode 100644 index 31da388b00..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrinterCardDetails.qml +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Dialogs 1.1 -import QtQuick.Controls 2.0 -import QtQuick.Controls.Styles 1.3 -import QtGraphicalEffects 1.0 -import QtQuick.Controls 1.4 as LegacyControls -import UM 1.3 as UM - -Item { - id: root; - property var printer: null; - property var printJob: printer ? printer.activePrintJob : null; - property var collapsed: true; - Behavior on height { NumberAnimation { duration: 100 } } - Behavior on opacity { NumberAnimation { duration: 100 } } - height: collapsed ? 0 : childrenRect.height; - opacity: collapsed ? 0 : 1; - width: parent.width; - - Column { - id: contentColumn; - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("default_margin").width; - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - } - height: childrenRect.height + UM.Theme.getSize("default_margin").height; - spacing: UM.Theme.getSize("default_margin").height; - width: parent.width; - - HorizontalLine {} - - PrinterInfoBlock { - printer: root.printer; - printJob: root.printer ? root.printer.activePrintJob : null; - } - - HorizontalLine {} - - Row { - height: childrenRect.height; - visible: root.printJob; - width: parent.width; - - PrintJobTitle { - job: root.printer ? root.printer.activePrintJob : null; - } - PrintJobContextMenu { - id: contextButton; - anchors { - right: parent.right; - rightMargin: UM.Theme.getSize("wide_margin").width; - } - printJob: root.printer ? root.printer.activePrintJob : null; - visible: printJob; - } - } - - PrintJobPreview { - anchors.horizontalCenter: parent.horizontalCenter; - job: root.printer && root.printer.activePrintJob ? root.printer.activePrintJob : null; - visible: root.printJob; - } - - CameraButton { - id: showCameraButton; - iconSource: "../svg/camera-icon.svg"; - visible: root.printer; - } - } -} diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrinterCardProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/PrinterCardProgressBar.qml deleted file mode 100644 index e86c959b8c..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrinterCardProgressBar.qml +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Controls.Styles 1.3 -import QtQuick.Controls 1.4 -import UM 1.3 as UM - -ProgressBar { - property var progress: { - if (!printer || printer.activePrintJob == null) { - return 0; - } - var result = printer.activePrintJob.timeElapsed / printer.activePrintJob.timeTotal; - if (result > 1.0) { - result = 1.0; - } - return result; - } - style: ProgressBarStyle { - property var remainingTime: { - if (!printer || printer.activePrintJob == null) { - return 0; - } - /* Sometimes total minus elapsed is less than 0. Use Math.max() to prevent remaining - time from ever being less than 0. Negative durations cause strange behavior such - as displaying "-1h -1m". */ - return Math.max(printer.activePrintJob.timeTotal - printer.activePrintJob.timeElapsed, 0); - } - property var progressText: { - if (printer === null ) { - return ""; - } - switch (printer.activePrintJob.state) { - case "wait_cleanup": - if (printer.activePrintJob.timeTotal > printer.activePrintJob.timeElapsed) { - return catalog.i18nc("@label:status", "Aborted"); - } - return catalog.i18nc("@label:status", "Finished"); - case "pre_print": - case "sent_to_printer": - return catalog.i18nc("@label:status", "Preparing"); - case "aborted": - return catalog.i18nc("@label:status", "Aborted"); - case "wait_user_action": - return catalog.i18nc("@label:status", "Aborted"); - case "pausing": - return catalog.i18nc("@label:status", "Pausing"); - case "paused": - return OutputDevice.formatDuration( remainingTime ); - case "resuming": - return catalog.i18nc("@label:status", "Resuming"); - case "queued": - return catalog.i18nc("@label:status", "Action required"); - default: - return OutputDevice.formatDuration( remainingTime ); - } - } - background: Rectangle { - color: UM.Theme.getColor("monitor_progress_background"); - implicitHeight: visible ? 24 : 0; - implicitWidth: 100; - } - progress: Rectangle { - id: progressItem; - color: { - if (! printer || !printer.activePrintJob) { - return "black"; - } - var state = printer.activePrintJob.state - var inactiveStates = [ - "pausing", - "paused", - "resuming", - "wait_cleanup" - ]; - if (inactiveStates.indexOf(state) > -1 && remainingTime > 0) { - return UM.Theme.getColor("monitor_progress_fill_inactive"); - } else { - return UM.Theme.getColor("monitor_progress_fill"); - } - } - - Label { - id: progressLabel; - anchors { - left: parent.left; - leftMargin: getTextOffset(); - } - text: progressText; - anchors.verticalCenter: parent.verticalCenter; - color: progressItem.width + progressLabel.width < control.width ? UM.Theme.getColor("text") : UM.Theme.getColor("monitor_progress_fill_text"); - width: contentWidth; - font: UM.Theme.getFont("default"); - } - - function getTextOffset() { - if (progressItem.width + progressLabel.width + 16 < control.width) { - return progressItem.width + UM.Theme.getSize("default_margin").width; - } else { - return progressItem.width - progressLabel.width - UM.Theme.getSize("default_margin").width; - } - } - } - } - value: progress; - width: parent.width; -} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrinterFamilyPill.qml b/plugins/UM3NetworkPrinting/resources/qml/PrinterFamilyPill.qml deleted file mode 100644 index 0a88b053a8..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrinterFamilyPill.qml +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.2 -import QtQuick.Controls 1.4 -import UM 1.2 as UM - -Item { - property alias text: familyNameLabel.text; - property var padding: 3 * screenScaleFactor; // TODO: Theme! - implicitHeight: familyNameLabel.contentHeight + 2 * padding; // Apply the padding to top and bottom. - implicitWidth: Math.max(48 * screenScaleFactor, familyNameLabel.contentWidth + implicitHeight); // The extra height is added to ensure the radius doesn't cut something off. - - Rectangle { - id: background; - anchors { - horizontalCenter: parent.horizontalCenter; - right: parent.right; - } - color: familyNameLabel.text.length < 1 ? UM.Theme.getColor("monitor_skeleton_fill") : UM.Theme.getColor("monitor_pill_background"); - height: parent.height; - radius: 0.5 * height; - width: parent.width; - } - - Label { - id: familyNameLabel; - anchors.centerIn: parent; - color: UM.Theme.getColor("text"); - text: ""; - } -} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/resources/qml/PrinterInfoBlock.qml deleted file mode 100644 index 92a8f1dcb3..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/PrinterInfoBlock.qml +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Dialogs 1.1 -import QtQuick.Controls 2.0 -import QtQuick.Controls.Styles 1.3 -import QtGraphicalEffects 1.0 -import QtQuick.Controls 1.4 as LegacyControls -import UM 1.3 as UM - -// Includes printer type pill and extuder configurations - -Item { - id: root; - property var printer: null; - property var printJob: null; - width: parent.width; - height: childrenRect.height; - - // Printer family pills - Row { - id: printerFamilyPills; - anchors { - left: parent.left; - right: parent.right; - } - height: childrenRect.height; - spacing: Math.round(0.5 * UM.Theme.getSize("default_margin").width); - width: parent.width; - - Repeater { - id: compatiblePills; - delegate: PrinterFamilyPill { - text: modelData; - } - model: printJob ? printJob.compatibleMachineFamilies : []; - visible: printJob; - - } - - PrinterFamilyPill { - text: printer ? printer.type : ""; - visible: !compatiblePills.visible && printer; - } - } - - // Extruder info - Row { - id: extrudersInfo; - anchors { - left: parent.left; - right: parent.right; - rightMargin: UM.Theme.getSize("default_margin").width; - top: printerFamilyPills.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - } - height: childrenRect.height; - spacing: UM.Theme.getSize("default_margin").width; - width: parent.width; - - PrintCoreConfiguration { - width: Math.round(parent.width / 2) * screenScaleFactor; - printCoreConfiguration: getExtruderConfig(0); - } - - PrintCoreConfiguration { - width: Math.round(parent.width / 2) * screenScaleFactor; - printCoreConfiguration: getExtruderConfig(1); - } - } - - function getExtruderConfig( i ) { - if (root.printJob) { - // Use more-specific print job if possible - return root.printJob.configuration.extruderConfigurations[i]; - } - if (root.printer) { - return root.printer.printerConfiguration.extruderConfigurations[i]; - } - return null; - } -} \ No newline at end of file From 0d55d023a193c651a28e69cae667d5daa0ae2548 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 11:36:03 +0100 Subject: [PATCH 0765/1039] Align the message colors with the ones in the designs. Contributes to CURA-6018. --- resources/themes/cura-light/theme.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 0ef6c24bfb..738f3e5c3f 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -248,11 +248,13 @@ "message_background": [255, 255, 255, 255], "message_shadow": [0, 0, 0, 120], - "message_border": [127, 127, 127, 255], + "message_border": [192, 193, 194, 255], "message_text": [0, 0, 0, 255], - "message_button": [50, 130, 255, 255], - "message_button_hover": [50, 130, 255, 255], - "message_button_active": [50, 130, 255, 255], + "message_close": [102, 102, 102, 255], + "message_close_hover": [8, 7, 63, 255], + "message_button": [38, 113, 231, 255], + "message_button_hover": [81, 145, 247, 255], + "message_button_active": [38, 113, 231, 255], "message_button_text": [255, 255, 255, 255], "message_button_text_hover": [255, 255, 255, 255], "message_button_text_active": [255, 255, 255, 255], @@ -478,6 +480,8 @@ "message_shadow": [0, 0], "message_margin": [0, 1.0], "message_inner_margin": [1.5, 1.5], + "message_radius": [0.25, 0.25], + "message_button_radius": [0.15, 0.15], "infill_button_margin": [0.5, 0.5], From ad7dcf6fc0700ebfdb424644fbeb8569a2f9f446 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 11:36:12 +0100 Subject: [PATCH 0766/1039] Delete ClusterControlItem.qml Contributes to CL-1152 --- .../resources/qml/ClusterControlItem.qml | 110 ------------------ 1 file changed, 110 deletions(-) delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml deleted file mode 100644 index 94e75a6de0..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterControlItem.qml +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.3 -import UM 1.3 as UM -import Cura 1.0 as Cura - -Component { - Rectangle { - id: base; - property var shadowRadius: UM.Theme.getSize("monitor_shadow_radius").width; - property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width; - anchors.fill: parent; - color: UM.Theme.getColor("main_background"); - visible: OutputDevice != null; - - UM.I18nCatalog { - id: catalog; - name: "cura"; - } - - Label { - id: printingLabel; - anchors { - left: parent.left; - leftMargin: 4 * UM.Theme.getSize("default_margin").width; - margins: 2 * UM.Theme.getSize("default_margin").width; - right: parent.right; - top: parent.top; - } - color: UM.Theme.getColor("text"); - elide: Text.ElideRight; - font: UM.Theme.getFont("large"); - text: catalog.i18nc("@label", "Printing"); - } - - Label { - id: managePrintersLabel; - anchors { - bottom: printingLabel.bottom; - right: printerScrollView.right; - rightMargin: 4 * UM.Theme.getSize("default_margin").width; - } - color: UM.Theme.getColor("primary"); // "Cura Blue" - font: UM.Theme.getFont("default"); - linkColor: UM.Theme.getColor("primary"); // "Cura Blue" - text: catalog.i18nc("@label link to connect manager", "Manage printers"); - } - - MouseArea { - anchors.fill: managePrintersLabel; - hoverEnabled: true; - onClicked: Cura.MachineManager.printerOutputDevices[0].openPrinterControlPanel(); - onEntered: managePrintersLabel.font.underline = true; - onExited: managePrintersLabel.font.underline = false; - } - - // Skeleton loading - Column { - id: skeletonLoader; - anchors { - left: parent.left; - leftMargin: UM.Theme.getSize("wide_margin").width; - right: parent.right; - rightMargin: UM.Theme.getSize("wide_margin").width; - top: printingLabel.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - } - spacing: UM.Theme.getSize("default_margin").height - 10; - visible: printerList.count === 0; - - PrinterCard { - printer: null; - } - PrinterCard { - printer: null; - } - } - - // Actual content - ScrollView { - id: printerScrollView; - anchors { - bottom: parent.bottom; - left: parent.left; - right: parent.right; - top: printingLabel.bottom; - topMargin: UM.Theme.getSize("default_margin").height; - } - style: UM.Theme.styles.scrollview; - - ListView { - id: printerList; - property var currentIndex: -1; - anchors { - fill: parent; - leftMargin: UM.Theme.getSize("wide_margin").width; - rightMargin: UM.Theme.getSize("wide_margin").width; - } - delegate: PrinterCard { - printer: modelData; - } - model: OutputDevice.printers; - spacing: UM.Theme.getSize("default_margin").height - 10; - } - } - } -} From 8a856f13d26c44668cb086729b22534b438d9a2b Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 11:36:51 +0100 Subject: [PATCH 0767/1039] Re-add config changes in monitor tab Contributes to CL-1152 --- .../resources/qml/ClusterMonitorItem.qml | 2 +- .../resources/qml/DiscoverUM3Action.qml | 2 +- .../resources/qml/HorizontalLine.qml | 12 -- .../qml/MonitorConfigOverrideDialog.qml | 131 ++++++++++++++++++ .../resources/qml/MonitorPrintJobCard.qml | 1 + .../resources/qml/MonitorPrintJobPreview.qml | 7 +- .../qml/MonitorPrintJobProgressBar.qml | 2 + .../resources/qml/MonitorPrinterCard.qml | 75 +++++++++- .../src/ClusterUM3OutputDevice.py | 10 -- 9 files changed, 210 insertions(+), 32 deletions(-) delete mode 100644 plugins/UM3NetworkPrinting/resources/qml/HorizontalLine.qml create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml index adf5ea5e1c..31b3f4d4f5 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml @@ -130,7 +130,7 @@ Component verticalCenter: externalLinkIcon.verticalCenter } color: UM.Theme.getColor("primary") - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("default") // 12pt, regular linkColor: UM.Theme.getColor("primary") text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect") } diff --git a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml index bb710127fc..e5f668c70d 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml @@ -57,7 +57,7 @@ Cura.MachineAction spacing: UM.Theme.getSize("default_margin").height SystemPalette { id: palette } - UM.I18nCatalog { id: catalog; name: "cura" } + UM.I18nCatalog { id: catalog; name:"cura" } Label { id: pageTitle diff --git a/plugins/UM3NetworkPrinting/resources/qml/HorizontalLine.qml b/plugins/UM3NetworkPrinting/resources/qml/HorizontalLine.qml deleted file mode 100644 index aeb92697ad..0000000000 --- a/plugins/UM3NetworkPrinting/resources/qml/HorizontalLine.qml +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.3 -import QtQuick.Controls 2.0 -import UM 1.3 as UM - -Rectangle { - color: UM.Theme.getColor("monitor_lining_light"); // TODO: Maybe theme separately? Maybe not. - height: UM.Theme.getSize("default_lining").height; - width: parent.width; -} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml new file mode 100644 index 0000000000..aa62afa083 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -0,0 +1,131 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.3 +import QtQuick.Controls 1.4 +import QtQuick.Layouts 1.3 +import QtQuick.Dialogs 1.2 +import UM 1.3 as UM + +UM.Dialog +{ + id: overrideConfirmationDialog + + property var printer: null + + minimumWidth: screenScaleFactor * 640; + minimumHeight: screenScaleFactor * 320; + width: minimumWidth + height: minimumHeight + title: catalog.i18nc("@title:window", "Configuration Changes") + rightButtons: + [ + Button + { + id: overrideButton + anchors.margins: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@action:button", "Override") + onClicked: + { + OutputDevice.forceSendJob(printer.activePrintJob.key) + overrideConfirmationDialog.close() + } + }, + Button + { + id: cancelButton + anchors.margins: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@action:button", "Cancel") + onClicked: + { + overrideConfirmationDialog.reject() + } + } + ] + + Label + { + anchors + { + fill: parent + leftMargin: 60 + rightMargin: 60 + topMargin: 18 + bottomMargin: 56 + } + wrapMode: Text.WordWrap + text: + { + var topLine + if (materialsAreKnown(printer.activePrintJob)) + { + topLine = catalog.i18nc("@label", "The assigned printer, %1, requires the following configuration change(s):").arg(printer.name) + } + else + { + topLine = catalog.i18nc("@label", "The printer %1 is assigned, but the job contains an unknown material configuration.").arg(printer.name) + } + var result = "

    " + topLine +"

    " + for (var i = 0; i < printer.activePrintJob.configurationChanges.length; i++) + { + var change = printer.activePrintJob.configurationChanges[i] + var text + switch (change.typeOfChange) + { + case "material_change": + text = catalog.i18nc("@label", "Change material %1 from %2 to %3.").arg(change.index + 1).arg(change.originName).arg(change.targetName) + break + case "material_insert": + text = catalog.i18nc("@label", "Load %3 as material %1 (This cannot be overridden).").arg(change.index + 1).arg(change.targetName) + break + case "print_core_change": + text = catalog.i18nc("@label", "Change print core %1 from %2 to %3.").arg(change.index + 1).arg(change.originName).arg(change.targetName) + break + case "buildplate_change": + text = catalog.i18nc("@label", "Change build plate to %1 (This cannot be overridden).").arg(formatBuildPlateType(change.target_name)) + break + default: + text = "unknown" + } + result += "

    " + text + "

    " + } + return result + } + } + // Utils + function formatPrintJobName(name) { + var extensions = [ ".gz", ".gcode", ".ufp" ]; + for (var i = 0; i < extensions.length; i++) { + var extension = extensions[i]; + if (name.slice(-extension.length) === extension) { + name = name.substring(0, name.length - extension.length); + } + } + return name; + } + function materialsAreKnown(job) { + var conf0 = job.configuration[0]; + if (conf0 && !conf0.material.material) { + return false; + } + var conf1 = job.configuration[1]; + if (conf1 && !conf1.material.material) { + return false; + } + return true; + } + function formatBuildPlateType(buildPlateType) { + var translationText = ""; + switch (buildPlateType) { + case "glass": + translationText = catalog.i18nc("@label", "Glass"); + break; + case "aluminum": + translationText = catalog.i18nc("@label", "Aluminum"); + break; + default: + translationText = null; + } + return translationText; + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index 8231870c21..5eaeff2e84 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -26,6 +26,7 @@ Item ExpandableCard { + borderColor: printJob.configurationChanges.length !== 0 ? "#f5a623" : "#EAEAEC" // TODO: Theme! headerItem: Row { height: 48 * screenScaleFactor // TODO: Theme! diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index ec26bbe568..5acd350abb 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -23,7 +23,7 @@ Item anchors.fill: parent opacity: { - if (printJob && (printJob.state == "error" || !printJob.isActive)) + if (printJob && (printJob.state == "error" || printJob.configurationChanges.length > 0 || !printJob.isActive)) { return 0.5 } @@ -60,6 +60,10 @@ Item height: 0.5 * printJobPreview.height source: { + if (printJob.configurationChanges.length > 0) + { + return "../svg/warning-icon.svg" + } switch(printJob.state) { case "error": @@ -75,6 +79,7 @@ Item default: return "" } + return "" } sourceSize { diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index 88418516ed..e646172a6c 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -88,6 +88,8 @@ Item return catalog.i18nc("@label:status", "Aborted") } return catalog.i18nc("@label:status", "Finished") + case "finished": + return catalog.i18nc("@label:status", "Finished") case "sent_to_printer": return catalog.i18nc("@label:status", "Preparing...") case "pre_print": diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 567fff8489..1676c51edf 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -3,6 +3,7 @@ import QtQuick 2.3 import QtQuick.Controls 2.0 +import QtQuick.Dialogs 1.1 import UM 1.3 as UM /** @@ -66,7 +67,7 @@ Item { verticalCenter: parent.verticalCenter } - width: 216 * screenScaleFactor // TODO: Theme! + width: 180 * screenScaleFactor // TODO: Theme! height: printerNameLabel.height + printerFamilyPill.height + 6 * screenScaleFactor // TODO: Theme! Label @@ -150,7 +151,7 @@ Item } border { - color: "#EAEAEC" // TODO: Theme! + color: printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 ? "#f5a623" : "#EAEAEC" // TODO: Theme! width: borderSize // TODO: Remove once themed } color: "white" // TODO: Theme! @@ -185,14 +186,15 @@ Item } if (printer && printer.state == "unreachable") { - return catalog.i18nc("@label:status", "Unreachable") + return catalog.i18nc("@label:status", "Unavailable") } - if (printer && printer.state == "idle") + if (printer && !printer.activePrintJob && printer.state == "idle") { return catalog.i18nc("@label:status", "Idle") } return "" } + visible: text !== "" } Item @@ -218,7 +220,7 @@ Item { verticalCenter: parent.verticalCenter } - width: 216 * screenScaleFactor // TODO: Theme! + width: 180 * screenScaleFactor // TODO: Theme! height: printerNameLabel.height + printerFamilyPill.height + 6 * screenScaleFactor // TODO: Theme! visible: printer.activePrintJob @@ -247,7 +249,7 @@ Item } color: printer.activePrintJob && printer.activePrintJob.isActive ? "#53657d" : "#babac1" // TODO: Theme! elide: Text.ElideRight - font: UM.Theme.getFont("very_small") // 12pt, regular + font: UM.Theme.getFont("default") // 12pt, regular text: printer.activePrintJob ? printer.activePrintJob.owner : "Anonymous" // TODO: I18N width: parent.width @@ -264,8 +266,67 @@ Item verticalCenter: parent.verticalCenter } printJob: printer.activePrintJob - visible: printer.activePrintJob + visible: printer.activePrintJob && printer.activePrintJob.configurationChanges.length === 0 + } + + Label + { + anchors + { + verticalCenter: parent.verticalCenter + } + font: UM.Theme.getFont("default") + text: "Requires configuration changes" + visible: printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter } } + + Button + { + id: detailsButton + anchors + { + verticalCenter: parent.verticalCenter + right: parent.right + rightMargin: 18 * screenScaleFactor // TODO: Theme! + } + background: Rectangle + { + color: "#d8d8d8" // TODO: Theme! + radius: 2 * screenScaleFactor // Todo: Theme! + Rectangle + { + anchors.fill: parent + anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme! + color: detailsButton.hovered ? "#e4e4e4" : "#f0f0f0" // TODO: Theme! + radius: 2 * screenScaleFactor // Todo: Theme! + } + } + contentItem: Label + { + anchors.fill: parent + anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme! + color: "#1e66d7" // TODO: Theme! + font: UM.Theme.getFont("medium") // 14pt, regular + text: "Details" // TODO: I18NC! + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + height: 18 * screenScaleFactor // TODO: Theme! + } + implicitHeight: 32 * screenScaleFactor // TODO: Theme! + implicitWidth: 96 * screenScaleFactor // TODO: Theme! + visible: printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 + onClicked: overrideConfirmationDialog.open() + } + } + + MonitorConfigOverrideDialog + { + id: overrideConfirmationDialog + printer: base.printer } } \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index e31229680c..292011929d 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -608,16 +608,6 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): def _createMaterialOutputModel(self, material_data: Dict[str, Any]) -> "MaterialOutputModel": material_manager = CuraApplication.getInstance().getMaterialManager() material_group_list = material_manager.getMaterialGroupListByGUID(material_data["guid"]) - # This can happen if the connected machine has no material in one or more extruders (if GUID is empty), or the - # material is unknown to Cura, so we should return an "empty" or "unknown" material model. - if material_group_list is None: - material_name = "Empty" if len(material_data["guid"]) == 0 else "Unknown" - return MaterialOutputModel(guid = material_data["guid"], - type = material_data.get("type", ""), - color = material_data.get("color", ""), - brand = material_data.get("brand", ""), - name = material_data.get("name", material_name) - ) # Sort the material groups by "is_read_only = True" first, and then the name alphabetically. read_only_material_group_list = list(filter(lambda x: x.is_read_only, material_group_list)) From dff364ee30870822158de7beaeb1faf7722f3d37 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 12:03:29 +0100 Subject: [PATCH 0768/1039] Change the panel to have also rounded rectangle in the top part Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 2 +- .../qml/PrintSetupSelector/PrintSetupSelectorContents.qml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 4170a0942e..04793653fe 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -162,7 +162,7 @@ Item background: Cura.RoundedRectangle { - cornerSide: Cura.RoundedRectangle.Direction.Down + cornerSide: Cura.RoundedRectangle.Direction.All color: contentBackgroundColor border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 7cd03ff74a..313bf0830c 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -38,11 +38,13 @@ Item // Header of the popup - Rectangle + Cura.RoundedRectangle { id: header height: UM.Theme.getSize("print_setup_widget_header").height color: UM.Theme.getColor("secondary") + cornerSide: Cura.RoundedRectangle.Direction.Up + radius: UM.Theme.getSize("default_radius").width anchors { From df4e5c40df403f76dfede9b74d358a075ff951c0 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 12:19:52 +0100 Subject: [PATCH 0769/1039] Rename ClusterMonitorItem Contributes to CL-1152 --- .../resources/qml/{ClusterMonitorItem.qml => MonitorStage.qml} | 1 + plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) rename plugins/UM3NetworkPrinting/resources/qml/{ClusterMonitorItem.qml => MonitorStage.qml} (99%) diff --git a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml similarity index 99% rename from plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml rename to plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 31b3f4d4f5..4d59e0eb6b 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ClusterMonitorItem.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -8,6 +8,7 @@ import UM 1.3 as UM import Cura 1.0 as Cura import QtGraphicalEffects 1.0 +// Root component for the monitor tab (stage) Component { Item diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 292011929d..08592df603 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -64,7 +64,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): self._print_jobs = [] # type: List[UM3PrintJobOutputModel] self._received_print_jobs = False # type: bool - self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../resources/qml/ClusterMonitorItem.qml") + self._monitor_view_qml_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../resources/qml/MonitorStage.qml") # See comments about this hack with the clusterPrintersChanged signal self.printersChanged.connect(self.clusterPrintersChanged) From 70b9a44ae42de5ae7a796285338f7abad673f984 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 13:04:02 +0100 Subject: [PATCH 0770/1039] Removed import of CuraVersion CURA-6013 --- plugins/Toolbox/src/Toolbox.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 7e35f5d1f4..b88e1aa973 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -13,7 +13,6 @@ from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkRepl from UM.Logger import Logger from UM.PluginRegistry import PluginRegistry from UM.Extension import Extension -from UM.Qt.ListModel import ListModel from UM.i18n import i18nCatalog from UM.Version import Version @@ -22,8 +21,7 @@ from cura.CuraApplication import CuraApplication from .AuthorsModel import AuthorsModel from .PackagesModel import PackagesModel -from cura.CuraVersion import CuraVersion -from cura.API import CuraAPI + if TYPE_CHECKING: from cura.Settings.GlobalStack import GlobalStack @@ -158,7 +156,7 @@ class Toolbox(QObject, Extension): self._rate_request = QNetworkRequest(url) for header_name, header_value in self._request_headers: cast(QNetworkRequest, self._rate_request).setRawHeader(header_name, header_value) - data = "{\"data\": {\"cura_version\": \"%s\", \"rating\": %i}}" % (Version(CuraVersion), rating) + data = "{\"data\": {\"cura_version\": \"%s\", \"rating\": %i}}" % (Version(self._application.getVersion()), rating) self._rate_reply = cast(QNetworkAccessManager, self._network_manager).put(self._rate_request, data.encode()) @pyqtSlot(result = str) From 1487af167b616a190e320e6d05c94fad3a3ff95b Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 10 Dec 2018 13:20:36 +0100 Subject: [PATCH 0771/1039] Disable async loading for ToolboxDetailTile CURA-6006 --- plugins/Toolbox/resources/qml/ToolboxDetailList.qml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailList.qml b/plugins/Toolbox/resources/qml/ToolboxDetailList.qml index 1700a58ebe..4e44ea7d0b 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailList.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailList.qml @@ -32,7 +32,11 @@ Item model: toolbox.packagesModel delegate: Loader { - asynchronous: true + // FIXME: When using asynchronous loading, on Mac and Windows, the tile may fail to load complete, + // leaving an empty space below the title part. We turn it off for now to make it work on Mac and + // Windows. + // Can be related to this QT bug: https://bugreports.qt.io/browse/QTBUG-50992 + asynchronous: false source: "ToolboxDetailTile.qml" } } From b745755a7d1a0b7b482add455cb20535bc265247 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 10 Dec 2018 13:22:28 +0100 Subject: [PATCH 0772/1039] Remove TODO in ToolboxProgressButton CURA-6006 This file has been refactored. --- plugins/Toolbox/resources/qml/ToolboxProgressButton.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml index 3ca18a52ed..933e3a5900 100644 --- a/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxProgressButton.qml @@ -7,7 +7,7 @@ import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM import Cura 1.0 as Cura -// TODO; This is in quite some need for refactoring. + Item { id: base From 9d1701aacbef8273f3225f26c158ceb2d6b6b8f3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 13:29:58 +0100 Subject: [PATCH 0773/1039] Removed hardcoded color CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index 8a2fdc8bc8..ceaadc110d 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml @@ -20,7 +20,7 @@ Rectangle Rectangle { id: thumbnail - color: "white" + color: UM.Theme.getColor("main_background") width: UM.Theme.getSize("toolbox_thumbnail_large").width height: UM.Theme.getSize("toolbox_thumbnail_large").height anchors From af37f51cf8aa9acd121d02d4b891d72444556350 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 13:36:06 +0100 Subject: [PATCH 0774/1039] Make the expandable content header to be a common header for every expandable component. Contributes to CURA-5941. --- .../SimulationViewMenuComponent.qml | 1 + resources/qml/ExpandableComponent.qml | 68 +++++++++++----- resources/qml/ExpandablePopup.qml | 3 + .../PrintSetupSelector/PrintSetupSelector.qml | 10 +-- .../PrintSetupSelectorContents.qml | 77 +------------------ .../PrintSetupSelectorHeader.qml | 3 + resources/themes/cura-light/theme.json | 3 +- 7 files changed, 64 insertions(+), 101 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 76875a035d..58b2bfe520 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -16,6 +16,7 @@ Cura.ExpandableComponent id: base width: UM.Theme.getSize("layerview_menu_size").width + contentHeaderTitle: catalog.i18nc("@label", "Color scheme") Connections { diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 04793653fe..3c898caeb8 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -1,3 +1,6 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.7 import QtQuick.Controls 2.3 @@ -40,6 +43,9 @@ Item // How much spacing is needed around the contentItem property alias contentPadding: content.padding + // Adds a title to the content item + property alias contentHeaderTitle: contentHeader.headerTitle + // How much spacing is needed for the contentItem by Y coordinate property var contentSpacingY: UM.Theme.getSize("narrow_margin").width @@ -55,7 +61,7 @@ Item property alias iconSize: collapseButton.height // Is the "drawer" open? - readonly property alias expanded: content.visible + readonly property alias expanded: contentContainer.visible // What should the radius of the header be. This is also influenced by the headerCornerSide property alias headerRadius: background.radius @@ -71,7 +77,7 @@ Item function toggleContent() { - content.visible = !expanded + contentContainer.visible = !expanded } // Add this binding since the background color is not updated otherwise @@ -147,10 +153,13 @@ Item z: background.z - 1 } - Control + Cura.RoundedRectangle { - id: content + id: contentContainer + visible: false + width: childrenRect.width + height: childrenRect.height // Ensure that the content is located directly below the headerItem y: background.height + base.shadowOffset + base.contentSpacingY @@ -158,25 +167,42 @@ Item // Make the content aligned with the rest, using the property contentAlignment to decide whether is right or left. // In case of right alignment, the 3x padding is due to left, right and padding between the button & text. x: contentAlignment == ExpandableComponent.ContentAlignment.AlignRight ? -width + collapseButton.width + headerItemLoader.width + 3 * background.padding : 0 - padding: UM.Theme.getSize("default_margin").width - background: Cura.RoundedRectangle + cornerSide: Cura.RoundedRectangle.Direction.All + color: contentBackgroundColor + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + radius: UM.Theme.getSize("default_radius").width + + ExpandableComponentHeader { - cornerSide: Cura.RoundedRectangle.Direction.All - color: contentBackgroundColor - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - radius: UM.Theme.getSize("default_radius").width + id: contentHeader + headerTitle: "" + anchors + { + top: parent.top + right: parent.right + left: parent.left + } + } - contentItem: Item {} - - onContentItemChanged: + Control { - // Since we want the size of the content to be set by the size of the content, - // we need to do it like this. - content.width = contentItem.width + 2 * content.padding - content.height = contentItem.height + 2 * content.padding + id: content + + anchors.top: contentHeader.bottom + padding: UM.Theme.getSize("default_margin").width + + contentItem: Item {} + + onContentItemChanged: + { + // Since we want the size of the content to be set by the size of the content, + // we need to do it like this. + content.width = contentItem.width + 2 * content.padding + content.height = contentItem.height + 2 * content.padding + } } } @@ -187,6 +213,10 @@ Item // Since it could be that the content is dynamically populated, we should also take these changes into account. target: content.contentItem onWidthChanged: content.width = content.contentItem.width + 2 * content.padding - onHeightChanged: content.height = content.contentItem.height + 2 * content.padding + onHeightChanged: + { + content.height = content.contentItem.height + 2 * content.padding + contentContainer.height = contentHeader.height + content.height + } } } diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index c15310f803..475f7f9f59 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -1,3 +1,6 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.7 import QtQuick.Controls 2.3 diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 19c8067683..01886a5ea5 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -11,10 +11,11 @@ Cura.ExpandableComponent { id: printSetupSelector - property string enabledText: catalog.i18nc("@label:Should be short", "On") - property string disabledText: catalog.i18nc("@label:Should be short", "Off") + property bool preSlicedData: PrintInformation.preSliced contentPadding: UM.Theme.getSize("default_lining").width + contentHeaderTitle: catalog.i18nc("@label", "Print settings") + enabled: !preSlicedData UM.I18nCatalog { @@ -22,10 +23,7 @@ Cura.ExpandableComponent name: "cura" } - headerItem: PrintSetupSelectorHeader - { - anchors.fill: parent - } + headerItem: PrintSetupSelectorHeader {} Cura.ExtrudersModel { diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 313bf0830c..6c678f7ce5 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -12,7 +12,7 @@ import "Custom" Item { - id: popup + id: content width: UM.Theme.getSize("print_setup_widget").width - 2 * UM.Theme.getSize("default_margin").width height: childrenRect.height @@ -36,79 +36,6 @@ Item } onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) - - // Header of the popup - Cura.RoundedRectangle - { - id: header - height: UM.Theme.getSize("print_setup_widget_header").height - color: UM.Theme.getColor("secondary") - cornerSide: Cura.RoundedRectangle.Direction.Up - radius: UM.Theme.getSize("default_radius").width - - anchors - { - top: parent.top - right: parent.right - left: parent.left - } - - Label - { - id: headerLabel - text: catalog.i18nc("@label", "Print settings") - font: UM.Theme.getFont("default") - renderType: Text.NativeRendering - verticalAlignment: Text.AlignVCenter - color: UM.Theme.getColor("text") - height: parent.height - - anchors - { - topMargin: UM.Theme.getSize("default_margin").height - left: parent.left - leftMargin: UM.Theme.getSize("default_margin").height - } - } - - Button - { - id: closeButton - width: UM.Theme.getSize("message_close").width - height: UM.Theme.getSize("message_close").height - hoverEnabled: true - - anchors - { - right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width - verticalCenter: parent.verticalCenter - } - - contentItem: UM.RecolorImage - { - anchors.fill: parent - sourceSize.width: width - color: closeButton.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text") - source: UM.Theme.getIcon("cross1") - } - - background: Item {} - - onClicked: toggleContent() // Will hide the popup item - } - } - - Rectangle - { - id: topSeparator - - anchors.bottom: header.bottom - width: parent.width - height: UM.Theme.getSize("default_lining").height - color: UM.Theme.getColor("lining") - } - Item { id: contents @@ -118,7 +45,7 @@ Item anchors { - top: header.bottom + top: parent.top left: parent.left right: parent.right } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index d4287045b8..94da5bdd6f 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -10,6 +10,9 @@ import Cura 1.0 as Cura RowLayout { + property string enabledText: catalog.i18nc("@label:Should be short", "On") + property string disabledText: catalog.i18nc("@label:Should be short", "Off") + Cura.IconWithText { source: UM.Theme.getIcon("category_layer_height") diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 0ef6c24bfb..54b41fe348 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -362,13 +362,14 @@ "print_setup_mode_toggle": [0.0, 2.0], "print_setup_item": [0.0, 2.0], "print_setup_extruder_box": [0.0, 6.0], - "print_setup_widget_header": [0.0, 3.0], "print_setup_slider_groove": [0.16, 0.16], "print_setup_slider_handle": [1.0, 1.0], "print_setup_slider_tickmarks": [0.32, 0.32], "print_setup_big_item": [28, 2.5], "print_setup_icon": [1.2, 1.2], + "expandable_component_content_header": [0.0, 3.0], + "configuration_selector_mode_tabs": [0.0, 3.0], "action_panel_widget": [25.0, 0.0], From 154c6c1ff226a820e7737dc09952043701f42069 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 13:42:33 +0100 Subject: [PATCH 0775/1039] Change the color of the setting control button to be the same as for the small buttons Contributes to CURA-5941. --- resources/themes/cura-light/theme.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 54b41fe348..5bad1cf7ae 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -205,9 +205,8 @@ "setting_control_border": [199, 199, 199, 255], "setting_control_border_highlight": [50, 130, 255, 255], "setting_control_text": [35, 35, 35, 255], - "setting_control_depth_line": [199, 199, 199, 255], - "setting_control_button": [199, 199, 199, 255], - "setting_control_button_hover": [70, 84, 113, 255], + "setting_control_button": [102, 102, 102, 255], + "setting_control_button_hover": [8, 7, 63, 255], "setting_control_disabled": [245, 245, 245, 255], "setting_control_disabled_text": [127, 127, 127, 255], "setting_control_disabled_border": [127, 127, 127, 255], From 90f822f6835471890a753dff0b5e4614d2d6e06b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 13:44:50 +0100 Subject: [PATCH 0776/1039] Add the component header that I miss in a previous commit Contributes to CURA-5941. --- resources/qml/ExpandableComponentHeader.qml | 68 +++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 resources/qml/ExpandableComponentHeader.qml diff --git a/resources/qml/ExpandableComponentHeader.qml b/resources/qml/ExpandableComponentHeader.qml new file mode 100644 index 0000000000..b1fd49cd1b --- /dev/null +++ b/resources/qml/ExpandableComponentHeader.qml @@ -0,0 +1,68 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.3 + +import UM 1.2 as UM +import Cura 1.0 as Cura + +// Header of the popup +Cura.RoundedRectangle +{ + id: header + + property alias headerTitle: headerLabel.text + + height: UM.Theme.getSize("expandable_component_content_header").height + color: UM.Theme.getColor("secondary") + cornerSide: Cura.RoundedRectangle.Direction.Up + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + radius: UM.Theme.getSize("default_radius").width + + Label + { + id: headerLabel + text: "Title" + font: UM.Theme.getFont("default") + renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter + color: UM.Theme.getColor("small_button_text") + height: parent.height + + anchors + { + topMargin: UM.Theme.getSize("default_margin").height + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").height + } + } + + Button + { + id: closeButton + width: UM.Theme.getSize("message_close").width + height: UM.Theme.getSize("message_close").height + hoverEnabled: true + + anchors + { + right: parent.right + rightMargin: UM.Theme.getSize("default_margin").width + verticalCenter: parent.verticalCenter + } + + contentItem: UM.RecolorImage + { + anchors.fill: parent + sourceSize.width: width + color: closeButton.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text") + source: UM.Theme.getIcon("cross1") + } + + background: Item {} + + onClicked: toggleContent() // Will hide the popup item + } +} \ No newline at end of file From 3f97f83c473dd015353e7ca82003042cd2d11308 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 14:17:56 +0100 Subject: [PATCH 0777/1039] Add a disabled state to the expandable components In this case, when the component is disabled, there is an optional message that will show. It works for instance when loading a gcode and the print setup panel has to be disabled. Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 70 +++++++++----- resources/qml/ExpandablePopup.qml | 96 ++++++++++++------- .../PrintSetupSelector/PrintSetupSelector.qml | 1 + 3 files changed, 110 insertions(+), 57 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 3c898caeb8..55271d99c3 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -37,6 +37,9 @@ Item property alias enabled: mouseArea.enabled + // Text to show when this component is disabled + property alias disabledText: disabledLabel.text + // Defines the alignment of the content with respect of the headerItem, by default to the right property int contentAlignment: ExpandableComponent.ContentAlignment.AlignRight @@ -85,7 +88,7 @@ Item { target: background property: "color" - value: expanded ? headerActiveColor : headerBackgroundColor + value: enabled ? (expanded ? headerActiveColor : headerBackgroundColor) : UM.Theme.getColor("disabled") } implicitHeight: 100 * screenScaleFactor @@ -96,36 +99,55 @@ Item id: background property real padding: UM.Theme.getSize("default_margin").width - color: expanded ? headerActiveColor : headerBackgroundColor + color: base.enabled ? (base.expanded ? headerActiveColor : headerBackgroundColor) : UM.Theme.getColor("disabled") anchors.fill: parent - Loader + Label { - id: headerItemLoader - anchors - { - left: parent.left - right: collapseButton.visible ? collapseButton.left : parent.right - top: parent.top - bottom: parent.bottom - margins: background.padding - } + id: disabledLabel + visible: !base.enabled + leftPadding: background.padding + text: "This component is disabled" + font: UM.Theme.getFont("default") + renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter + color: UM.Theme.getColor("text") + height: parent.height } - UM.RecolorImage + Item { - id: collapseButton - anchors + anchors.fill: parent + visible: base.enabled + + Loader { - right: parent.right - verticalCenter: parent.verticalCenter - margins: background.padding + id: headerItemLoader + anchors + { + left: parent.left + right: collapseButton.visible ? collapseButton.left : parent.right + top: parent.top + bottom: parent.bottom + margins: background.padding + } + } + + UM.RecolorImage + { + id: collapseButton + anchors + { + right: parent.right + verticalCenter: parent.verticalCenter + margins: background.padding + } + source: UM.Theme.getIcon("pencil") + visible: source != "" + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + color: UM.Theme.getColor("small_button_text") } - source: UM.Theme.getIcon("pencil") - visible: source != "" && base.enabled - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - color: UM.Theme.getColor("small_button_text") } MouseArea @@ -135,7 +157,7 @@ Item onClicked: toggleContent() hoverEnabled: true onEntered: background.color = headerHoverColor - onExited: background.color = expanded ? headerActiveColor : headerBackgroundColor + onExited: background.color = base.enabled ? (base.expanded ? headerActiveColor : headerBackgroundColor) : UM.Theme.getColor("disabled") } } diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index 475f7f9f59..75f718abf5 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -37,6 +37,9 @@ Item property alias enabled: mouseArea.enabled + // Text to show when this component is disabled + property alias disabledText: disabledLabel.text + // Defines the alignment of the content with respect of the headerItem, by default to the right property int contentAlignment: ExpandablePopup.ContentAlignment.AlignRight @@ -86,6 +89,14 @@ Item } } + // Add this binding since the background color is not updated otherwise + Binding + { + target: background + property: "color" + value: enabled ? headerBackgroundColor : UM.Theme.getColor("disabled") + } + implicitHeight: 100 * screenScaleFactor implicitWidth: 400 * screenScaleFactor @@ -94,47 +105,66 @@ Item id: background property real padding: UM.Theme.getSize("default_margin").width - color: headerBackgroundColor + color: base.enabled ? headerBackgroundColor : UM.Theme.getColor("disabled") anchors.fill: parent - Loader + Label { - id: headerItemLoader - anchors - { - left: parent.left - right: collapseButton.visible ? collapseButton.left : parent.right - top: parent.top - bottom: parent.bottom - margins: background.padding - } + id: disabledLabel + visible: !base.enabled + leftPadding: background.padding + text: "This component is disabled" + font: UM.Theme.getFont("default") + renderType: Text.NativeRendering + verticalAlignment: Text.AlignVCenter + color: UM.Theme.getColor("text") + height: parent.height } - // A highlight that is shown when the content is expanded - Rectangle + Item { - id: expandedHighlight - width: parent.width - height: UM.Theme.getSize("thick_lining").height - color: UM.Theme.getColor("primary") - visible: expanded - anchors.bottom: parent.bottom - } + anchors.fill: parent + visible: base.enabled - UM.RecolorImage - { - id: collapseButton - anchors + Loader { - right: parent.right - verticalCenter: parent.verticalCenter - margins: background.padding + id: headerItemLoader + anchors + { + left: parent.left + right: collapseButton.visible ? collapseButton.left : parent.right + top: parent.top + bottom: parent.bottom + margins: background.padding + } + } + + // A highlight that is shown when the content is expanded + Rectangle + { + id: expandedHighlight + width: parent.width + height: UM.Theme.getSize("thick_lining").height + color: UM.Theme.getColor("primary") + visible: expanded + anchors.bottom: parent.bottom + } + + UM.RecolorImage + { + id: collapseButton + anchors + { + right: parent.right + verticalCenter: parent.verticalCenter + margins: background.padding + } + source: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") + visible: source != "" + width: UM.Theme.getSize("standard_arrow").width + height: UM.Theme.getSize("standard_arrow").height + color: UM.Theme.getColor("small_button_text") } - source: expanded ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") - visible: source != "" && base.enabled - width: UM.Theme.getSize("standard_arrow").width - height: UM.Theme.getSize("standard_arrow").height - color: UM.Theme.getColor("small_button_text") } MouseArea @@ -144,7 +174,7 @@ Item onClicked: toggleContent() hoverEnabled: true onEntered: background.color = headerHoverColor - onExited: background.color = headerBackgroundColor + onExited: background.color = base.enabled ? headerBackgroundColor : UM.Theme.getColor("disabled") } } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 01886a5ea5..fe642bd3c1 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -16,6 +16,7 @@ Cura.ExpandableComponent contentPadding: UM.Theme.getSize("default_lining").width contentHeaderTitle: catalog.i18nc("@label", "Print settings") enabled: !preSlicedData + disabledText: catalog.i18nc("@label shown when we load a Gcode file", "Print setup disabled. G code file can not be modified." UM.I18nCatalog { From 437ba3848db12db4f024911c1bc6b761134f0bb0 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 14:26:20 +0100 Subject: [PATCH 0778/1039] Fix typo. Missing parenthesis Contributes to CURA-5941. --- resources/qml/PrintSetupSelector/PrintSetupSelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index fe642bd3c1..599eac957e 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -16,7 +16,7 @@ Cura.ExpandableComponent contentPadding: UM.Theme.getSize("default_lining").width contentHeaderTitle: catalog.i18nc("@label", "Print settings") enabled: !preSlicedData - disabledText: catalog.i18nc("@label shown when we load a Gcode file", "Print setup disabled. G code file can not be modified." + disabledText: catalog.i18nc("@label shown when we load a Gcode file", "Print setup disabled. G code file can not be modified.") UM.I18nCatalog { From 315bcf50c746ee6a25aed8ae95c6245d898b7525 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 14:31:49 +0100 Subject: [PATCH 0779/1039] Get some personal space up in this personal space Contributes to CL-1152 --- .../resources/qml/MonitorConfigOverrideDialog.qml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index aa62afa083..14bdd07313 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -48,10 +48,7 @@ UM.Dialog anchors { fill: parent - leftMargin: 60 - rightMargin: 60 - topMargin: 18 - bottomMargin: 56 + margins: 60 * screenScaleFactor // TODO: Theme! } wrapMode: Text.WordWrap text: From 861deaa9f74f4e3bc32db5f6c8e0628406c5e2e1 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 10 Dec 2018 14:20:19 +0100 Subject: [PATCH 0780/1039] Add renderType native for toolbox QML Labels CURA-6006 --- plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml | 8 +++++++- plugins/Toolbox/resources/qml/ToolboxBackColumn.qml | 3 ++- .../resources/qml/ToolboxCompatibilityChart.qml | 8 +++++++- .../qml/ToolboxConfirmUninstallResetDialog.qml | 3 ++- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 11 ++++++++++- plugins/Toolbox/resources/qml/ToolboxDetailTile.qml | 4 +++- .../resources/qml/ToolboxDetailTileActions.qml | 4 +++- .../Toolbox/resources/qml/ToolboxDownloadsGrid.qml | 3 ++- .../resources/qml/ToolboxDownloadsGridTile.qml | 4 +++- .../resources/qml/ToolboxDownloadsShowcase.qml | 3 ++- .../resources/qml/ToolboxDownloadsShowcaseTile.qml | 3 ++- plugins/Toolbox/resources/qml/ToolboxErrorPage.qml | 3 ++- plugins/Toolbox/resources/qml/ToolboxFooter.qml | 5 +++-- .../Toolbox/resources/qml/ToolboxInstalledPage.qml | 4 +++- .../Toolbox/resources/qml/ToolboxInstalledTile.qml | 6 +++++- .../resources/qml/ToolboxInstalledTileActions.qml | 5 ++++- .../Toolbox/resources/qml/ToolboxLicenseDialog.qml | 3 ++- plugins/Toolbox/resources/qml/ToolboxLoadingPage.qml | 3 ++- plugins/Toolbox/resources/qml/ToolboxTabButton.qml | 5 +++-- 19 files changed, 67 insertions(+), 21 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml b/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml index 9c1df0c49e..7b026566c3 100644 --- a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.3 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -59,6 +59,7 @@ Item wrapMode: Text.WordWrap width: parent.width height: UM.Theme.getSize("toolbox_property_label").height + renderType: Text.NativeRendering } Label { @@ -70,6 +71,7 @@ Item left: title.left topMargin: UM.Theme.getSize("default_margin").height } + renderType: Text.NativeRendering } Column { @@ -88,12 +90,14 @@ Item text: catalog.i18nc("@label", "Website") + ":" font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering } Label { text: catalog.i18nc("@label", "Email") + ":" font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering } } Column @@ -122,6 +126,7 @@ Item color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) + renderType: Text.NativeRendering } Label @@ -138,6 +143,7 @@ Item color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) + renderType: Text.NativeRendering } } Rectangle diff --git a/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml b/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml index 8524b7d1e5..edb1967fee 100644 --- a/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml +++ b/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -64,6 +64,7 @@ Item font: UM.Theme.getFont("default_bold") horizontalAlignment: Text.AlignRight width: control.width + renderType: Text.NativeRendering } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml index d4c0ae14eb..db4e8c628f 100644 --- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml +++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -67,6 +67,7 @@ Item wrapMode: Text.WordWrap color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering } TableView @@ -99,6 +100,7 @@ Item text: styleData.value || "" color: UM.Theme.getColor("text") font: UM.Theme.getFont("default_bold") + renderType: Text.NativeRendering } Rectangle { @@ -118,6 +120,7 @@ Item text: styleData.value || "" color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("default") + renderType: Text.NativeRendering } } itemDelegate: Item @@ -130,6 +133,7 @@ Item text: styleData.value || "" color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("default") + renderType: Text.NativeRendering } } @@ -144,6 +148,7 @@ Item elide: Text.ElideRight color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("default") + renderType: Text.NativeRendering } } @@ -232,5 +237,6 @@ Item color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) + renderType: Text.NativeRendering } } diff --git a/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml b/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml index 2c5d08aa72..e238132680 100644 --- a/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml +++ b/plugins/Toolbox/resources/qml/ToolboxConfirmUninstallResetDialog.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.10 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 @@ -66,6 +66,7 @@ UM.Dialog anchors.right: parent.right font: UM.Theme.getFont("default") wrapMode: Text.WordWrap + renderType: Text.NativeRendering } // Buttons diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 9e2e178b71..7983be8aef 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.3 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -65,6 +65,7 @@ Item wrapMode: Text.WordWrap width: parent.width height: UM.Theme.getSize("toolbox_property_label").height + renderType: Text.NativeRendering } Column @@ -84,24 +85,28 @@ Item text: catalog.i18nc("@label", "Version") + ":" font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering } Label { text: catalog.i18nc("@label", "Last updated") + ":" font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering } Label { text: catalog.i18nc("@label", "Author") + ":" font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering } Label { text: catalog.i18nc("@label", "Downloads") + ":" font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering } } Column @@ -121,6 +126,7 @@ Item text: details === null ? "" : (details.version || catalog.i18nc("@label", "Unknown")) font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") + renderType: Text.NativeRendering } Label { @@ -135,6 +141,7 @@ Item } font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") + renderType: Text.NativeRendering } Label { @@ -153,12 +160,14 @@ Item color: UM.Theme.getColor("text") linkColor: UM.Theme.getColor("text_link") onLinkActivated: Qt.openUrlExternally(link) + renderType: Text.NativeRendering } Label { text: details === null ? "" : (details.download_count || catalog.i18nc("@label", "Unknown")) font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") + renderType: Text.NativeRendering } } Rectangle diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml index 1d701543ce..43f97baf3f 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -31,6 +31,7 @@ Item wrapMode: Text.WordWrap color: UM.Theme.getColor("text") font: UM.Theme.getFont("medium_bold") + renderType: Text.NativeRendering } Label { @@ -42,6 +43,7 @@ Item wrapMode: Text.WordWrap color: UM.Theme.getColor("text") font: UM.Theme.getFont("default") + renderType: Text.NativeRendering } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml index 848acfbf4f..7160dafa2d 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailTileActions.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -57,6 +57,8 @@ Column linkColor: UM.Theme.getColor("text_link") visible: loginRequired width: installButton.width + renderType: Text.NativeRendering + MouseArea { anchors.fill: parent diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml index 3e2643938b..8e15882ae1 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtQuick.Layouts 1.3 @@ -23,6 +23,7 @@ Column width: parent.width color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering } Grid { diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index cee3f0fd20..357e9e9a72 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.3 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtQuick.Layouts 1.3 @@ -72,6 +72,7 @@ Item wrapMode: Text.WordWrap color: UM.Theme.getColor("text") font: UM.Theme.getFont("default_bold") + renderType: Text.NativeRendering } Label { @@ -83,6 +84,7 @@ Item wrapMode: Text.WordWrap color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("default") + renderType: Text.NativeRendering } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml index 9851128076..820b74554a 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -24,6 +24,7 @@ Rectangle width: parent.width color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering } Grid { diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index 8a2fdc8bc8..d1130cf63f 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtGraphicalEffects 1.0 @@ -79,6 +79,7 @@ Rectangle wrapMode: Text.WordWrap color: UM.Theme.getColor("button_text") font: UM.Theme.getFont("medium_bold") + renderType: Text.NativeRendering } } MouseArea diff --git a/plugins/Toolbox/resources/qml/ToolboxErrorPage.qml b/plugins/Toolbox/resources/qml/ToolboxErrorPage.qml index 600ae2b39f..e57e63dbb9 100644 --- a/plugins/Toolbox/resources/qml/ToolboxErrorPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxErrorPage.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 @@ -18,5 +18,6 @@ Rectangle { centerIn: parent } + renderType: Text.NativeRendering } } diff --git a/plugins/Toolbox/resources/qml/ToolboxFooter.qml b/plugins/Toolbox/resources/qml/ToolboxFooter.qml index 5c2a6577ad..2d42ca7269 100644 --- a/plugins/Toolbox/resources/qml/ToolboxFooter.qml +++ b/plugins/Toolbox/resources/qml/ToolboxFooter.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -26,7 +26,7 @@ Item right: restartButton.right rightMargin: UM.Theme.getSize("default_margin").width } - + renderType: Text.NativeRendering } Button { @@ -56,6 +56,7 @@ Item text: control.text verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter + renderType: Text.NativeRendering } } } diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml index 3d5cd1c8d4..e1d01db59a 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Dialogs 1.1 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 @@ -38,6 +38,7 @@ ScrollView text: catalog.i18nc("@title:tab", "Plugins") color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering } Rectangle { @@ -68,6 +69,7 @@ ScrollView text: catalog.i18nc("@title:tab", "Materials") color: UM.Theme.getColor("text_medium") font: UM.Theme.getFont("medium") + renderType: Text.NativeRendering } Rectangle diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml index b16564fdd2..593e024309 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -51,6 +51,7 @@ Item wrapMode: Text.WordWrap font: UM.Theme.getFont("default_bold") color: pluginInfo.color + renderType: Text.NativeRendering } Label { @@ -60,6 +61,7 @@ Item width: parent.width wrapMode: Text.WordWrap color: pluginInfo.color + renderType: Text.NativeRendering } } Column @@ -88,6 +90,7 @@ Item onLinkActivated: Qt.openUrlExternally("mailto:" + model.author_email + "?Subject=Cura: " + model.name + " Plugin") color: model.enabled ? UM.Theme.getColor("text") : UM.Theme.getColor("lining") linkColor: UM.Theme.getColor("text_link") + renderType: Text.NativeRendering } Label @@ -98,6 +101,7 @@ Item color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignLeft + renderType: Text.NativeRendering } } ToolboxInstalledTileActions diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml index 39528f6437..61af84fbe5 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledTileActions.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import UM 1.1 as UM @@ -24,6 +24,7 @@ Column font: UM.Theme.getFont("default") wrapMode: Text.WordWrap width: parent.width + renderType: Text.NativeRendering } ToolboxProgressButton @@ -55,6 +56,8 @@ Column linkColor: UM.Theme.getColor("text_link") visible: loginRequired width: updateButton.width + renderType: Text.NativeRendering + MouseArea { anchors.fill: parent diff --git a/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml b/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml index b8baf7bc83..40b22c268d 100644 --- a/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml +++ b/plugins/Toolbox/resources/qml/ToolboxLicenseDialog.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 +import QtQuick 2.10 import QtQuick.Dialogs 1.1 import QtQuick.Window 2.2 import QtQuick.Controls 1.4 @@ -32,6 +32,7 @@ UM.Dialog anchors.right: parent.right text: licenseDialog.pluginName + catalog.i18nc("@label", "This plugin contains a license.\nYou need to accept this license to install this plugin.\nDo you agree with the terms below?") wrapMode: Text.Wrap + renderType: Text.NativeRendering } TextArea { diff --git a/plugins/Toolbox/resources/qml/ToolboxLoadingPage.qml b/plugins/Toolbox/resources/qml/ToolboxLoadingPage.qml index 1ba271dcab..025239bd43 100644 --- a/plugins/Toolbox/resources/qml/ToolboxLoadingPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxLoadingPage.qml @@ -1,7 +1,7 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.7 +import QtQuick 2.10 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 @@ -18,5 +18,6 @@ Rectangle { centerIn: parent } + renderType: Text.NativeRendering } } diff --git a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml index fa4f75d6fe..5e1aeaa636 100644 --- a/plugins/Toolbox/resources/qml/ToolboxTabButton.qml +++ b/plugins/Toolbox/resources/qml/ToolboxTabButton.qml @@ -1,8 +1,8 @@ // Copyright (c) 2018 Ultimaker B.V. // Toolbox is released under the terms of the LGPLv3 or higher. -import QtQuick 2.2 -import QtQuick.Controls 2.0 +import QtQuick 2.10 +import QtQuick.Controls 2.3 import UM 1.1 as UM Button @@ -46,5 +46,6 @@ Button font: control.enabled ? (control.active ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium")) : UM.Theme.getFont("default_italic") verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter + renderType: Text.NativeRendering } } \ No newline at end of file From 69744282e6208ef959035c7237a9685d9d85b819 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 10 Dec 2018 14:37:44 +0100 Subject: [PATCH 0781/1039] Fix rounding issue in toolbox QML widget size CURA-6006 --- plugins/Toolbox/resources/qml/Toolbox.qml | 4 ++-- plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/Toolbox.qml b/plugins/Toolbox/resources/qml/Toolbox.qml index 7cc5a730f2..9ede2a6bda 100644 --- a/plugins/Toolbox/resources/qml/Toolbox.qml +++ b/plugins/Toolbox/resources/qml/Toolbox.qml @@ -14,8 +14,8 @@ Window modality: Qt.ApplicationModal flags: Qt.Dialog | Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowCloseButtonHint - width: 720 * screenScaleFactor - height: 640 * screenScaleFactor + width: Math.floor(720 * screenScaleFactor) + height: Math.floor(640 * screenScaleFactor) minimumWidth: width maximumWidth: minimumWidth minimumHeight: height diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml index 8e15882ae1..85f0ff8be4 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml @@ -38,7 +38,7 @@ Column delegate: Loader { asynchronous: true - width: (grid.width - (grid.columns - 1) * grid.columnSpacing) / grid.columns + width: Math.round((grid.width - (grid.columns - 1) * grid.columnSpacing) / grid.columns) height: UM.Theme.getSize("toolbox_thumbnail_small").height source: "ToolboxDownloadsGridTile.qml" } From df0ae20ddedf42040dee95243a5a236a0a65afea Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 14:39:15 +0100 Subject: [PATCH 0782/1039] Let's just get stepped up in here and get some personal space Contributes to CL-1152 --- .../resources/qml/MonitorConfigOverrideDialog.qml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index 14bdd07313..a283824bcf 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -48,7 +48,8 @@ UM.Dialog anchors { fill: parent - margins: 60 * screenScaleFactor // TODO: Theme! + margins: 36 * screenScaleFactor // TODO: Theme! + bottomMargin: 56 * screenScaleFactor // TODO: Theme! } wrapMode: Text.WordWrap text: @@ -62,7 +63,7 @@ UM.Dialog { topLine = catalog.i18nc("@label", "The printer %1 is assigned, but the job contains an unknown material configuration.").arg(printer.name) } - var result = "

    " + topLine +"

    " + var result = "

    " + topLine +"

    \n\n" for (var i = 0; i < printer.activePrintJob.configurationChanges.length; i++) { var change = printer.activePrintJob.configurationChanges[i] From 590e8f5eb19cff433d1d5e1926dd4bcb89f4ea76 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 14:41:15 +0100 Subject: [PATCH 0783/1039] Wrap the disabled text in case it's too long. Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 55271d99c3..74adec5bc6 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -106,13 +106,15 @@ Item { id: disabledLabel visible: !base.enabled + anchors.fill: parent leftPadding: background.padding + rightPadding: background.padding text: "This component is disabled" font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter color: UM.Theme.getColor("text") - height: parent.height + wrapMode: Text.WordWrap } Item From aa376e60da409e87f49150900570cb957dbfd610 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 14:45:11 +0100 Subject: [PATCH 0784/1039] Make the disabled text translatable Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 2 +- resources/qml/ExpandableComponentHeader.qml | 2 +- resources/qml/ExpandablePopup.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 74adec5bc6..c2b9d715d5 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -109,7 +109,7 @@ Item anchors.fill: parent leftPadding: background.padding rightPadding: background.padding - text: "This component is disabled" + text: catalog.i18nc("@label default disabled text", "This component is disabled") font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter diff --git a/resources/qml/ExpandableComponentHeader.qml b/resources/qml/ExpandableComponentHeader.qml index b1fd49cd1b..09ea262c82 100644 --- a/resources/qml/ExpandableComponentHeader.qml +++ b/resources/qml/ExpandableComponentHeader.qml @@ -24,7 +24,7 @@ Cura.RoundedRectangle Label { id: headerLabel - text: "Title" + text: "" font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index 75f718abf5..2d34b134e0 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -113,7 +113,7 @@ Item id: disabledLabel visible: !base.enabled leftPadding: background.padding - text: "This component is disabled" + text: catalog.i18nc("@label default disabled text", "This component is disabled") font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter From 2db5d2b23128be682e97ff34f5bbcf67aef1ccca Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 14:54:45 +0100 Subject: [PATCH 0785/1039] Add support for translation plurals Contributes to CL-1152 --- .../resources/qml/MonitorConfigOverrideDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index a283824bcf..127078d460 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -57,7 +57,7 @@ UM.Dialog var topLine if (materialsAreKnown(printer.activePrintJob)) { - topLine = catalog.i18nc("@label", "The assigned printer, %1, requires the following configuration change(s):").arg(printer.name) + topLine = catalog.i18ncp("@label", "The assigned printer, %1, requires the following configuration change:", "The assigned printer, %1, requires the following configuration changes:").arg(printer.name) } else { From 32f2b7ec1f293c4dde0b6575aa469e3d1c40aa8c Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 15:05:01 +0100 Subject: [PATCH 0786/1039] Fix some warnings Contributes to CL-1152 --- .../resources/qml/MonitorConfigOverrideDialog.qml | 4 ++++ .../resources/qml/MonitorPrintJobPreview.qml | 4 ++++ .../resources/qml/MonitorPrintJobProgressBar.qml | 2 +- .../UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index 127078d460..cf8326a504 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -54,6 +54,10 @@ UM.Dialog wrapMode: Text.WordWrap text: { + if (!printer.activePrintJob) + { + return "" + } var topLine if (materialsAreKnown(printer.activePrintJob)) { diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml index 5acd350abb..2f17db0c65 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobPreview.qml @@ -60,6 +60,10 @@ Item height: 0.5 * printJobPreview.height source: { + if (!printJob) + { + return "" + } if (printJob.configurationChanges.length > 0) { return "../svg/warning-icon.svg" diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml index e646172a6c..cfb7aba84d 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobProgressBar.qml @@ -55,7 +55,7 @@ Item left: progressBar.right leftMargin: 18 * screenScaleFactor // TODO: Theme! } - text: Math.round(printJob.progress * 100) + "%" + text: printJob ? Math.round(printJob.progress * 100) + "%" : "0%" color: printJob && printJob.isActive ? "#374355" : "#babac1" // TODO: Theme! width: contentWidth font: UM.Theme.getFont("medium") // 14pt, regular diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml index 02a8e7ae69..1edbf9f6a2 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml @@ -182,7 +182,7 @@ Item { abortConfirmationDialog.visible = true; popup.close(); } - text: printJob.state == "aborting" ? catalog.i18nc("@label", "Aborting...") : catalog.i18nc("@label", "Abort"); + text: printJob && printJob.state == "aborting" ? catalog.i18nc("@label", "Aborting...") : catalog.i18nc("@label", "Abort"); visible: { if (!printJob) { return false; From 028d993babdff046b9404a84271b07b00e426fef Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 15:27:51 +0100 Subject: [PATCH 0787/1039] Format .gcode.gz files too Contributes to CL-1152 --- .../resources/qml/MonitorConfigOverrideDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index cf8326a504..df3c99e0a1 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -96,7 +96,7 @@ UM.Dialog } // Utils function formatPrintJobName(name) { - var extensions = [ ".gz", ".gcode", ".ufp" ]; + var extensions = [ ".gz", ".gcode", ".gcode.gz", ".ufp" ]; for (var i = 0; i < extensions.length; i++) { var extension = extensions[i]; if (name.slice(-extension.length) === extension) { From d495ec18bb7ab42de07bfb3617c00e7598a20e9e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 15:28:20 +0100 Subject: [PATCH 0788/1039] Filter a bit more intelligently on when to check for errors CURA-6016 --- cura/Machines/MachineErrorChecker.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/cura/Machines/MachineErrorChecker.py b/cura/Machines/MachineErrorChecker.py index 06f064315b..fb11123af6 100644 --- a/cura/Machines/MachineErrorChecker.py +++ b/cura/Machines/MachineErrorChecker.py @@ -64,21 +64,21 @@ class MachineErrorChecker(QObject): def _onMachineChanged(self) -> None: if self._global_stack: - self._global_stack.propertyChanged.disconnect(self.startErrorCheck) + self._global_stack.propertyChanged.disconnect(self.startErrorCheckPropertyChanged) self._global_stack.containersChanged.disconnect(self.startErrorCheck) for extruder in self._global_stack.extruders.values(): - extruder.propertyChanged.disconnect(self.startErrorCheck) + extruder.propertyChanged.disconnect(self.startErrorCheckPropertyChanged) extruder.containersChanged.disconnect(self.startErrorCheck) self._global_stack = self._machine_manager.activeMachine if self._global_stack: - self._global_stack.propertyChanged.connect(self.startErrorCheck) + self._global_stack.propertyChanged.connect(self.startErrorCheckPropertyChanged) self._global_stack.containersChanged.connect(self.startErrorCheck) for extruder in self._global_stack.extruders.values(): - extruder.propertyChanged.connect(self.startErrorCheck) + extruder.propertyChanged.connect(self.startErrorCheckPropertyChanged) extruder.containersChanged.connect(self.startErrorCheck) hasErrorUpdated = pyqtSignal() @@ -93,6 +93,13 @@ class MachineErrorChecker(QObject): def needToWaitForResult(self) -> bool: return self._need_to_check or self._check_in_progress + # Start the error check for property changed + # this is seperate from the startErrorCheck because it ignores a number property types + def startErrorCheckPropertyChanged(self, key, property_name): + if property_name != "value": + return + self.startErrorCheck() + # Starts the error check timer to schedule a new error check. def startErrorCheck(self, *args) -> None: if not self._check_in_progress: From 04af8fbd5018d7bfdf488ddd98b1d4ccabab1bfb Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 15:33:16 +0100 Subject: [PATCH 0789/1039] Update MonitorConfigOverrideDialog.qml Contributes to CL-1152 --- .../resources/qml/MonitorConfigOverrideDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index df3c99e0a1..7f7dc24350 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -96,7 +96,7 @@ UM.Dialog } // Utils function formatPrintJobName(name) { - var extensions = [ ".gz", ".gcode", ".gcode.gz", ".ufp" ]; + var extensions = [ ".gcode.gz", ".gz", ".gcode", ".ufp" ]; for (var i = 0; i < extensions.length; i++) { var extension = extensions[i]; if (name.slice(-extension.length) === extension) { From 1cd0d26db420af72d92c5b2538caa93a44495dcb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 15:34:48 +0100 Subject: [PATCH 0790/1039] Change margins Instead of using multiplications and divisions, just use the corresponding margins. Contributes to CURA-5876. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 2 +- .../qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 05cac16e29..728a0cbe9a 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -29,7 +29,7 @@ Button id: contentColumn width: parent.width padding: UM.Theme.getSize("wide_margin").width - spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) + spacing: UM.Theme.getSize("narrow_margin").height Row { diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 53969a0370..3cc0754284 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -12,7 +12,7 @@ Column id: base property var outputDevice: null height: childrenRect.height + 2 * padding - spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) + spacing: UM.Theme.getSize("narrow_margin").height function forceModelUpdate() { @@ -55,7 +55,7 @@ Column ListView { id: configurationList - spacing: Math.round(UM.Theme.getSize("default_margin").height / 2) + spacing: UM.Theme.getSize("narrow_margin").height width: container.width - ((height > container.maximumHeight) ? container.ScrollBar.vertical.background.width : 0) //Make room for scroll bar if there is any. contentHeight: childrenRect.height height: childrenRect.height @@ -64,7 +64,7 @@ Column section.criteria: ViewSection.FullString section.delegate: Item { - height: printerTypeLabel.height + UM.Theme.getSize("default_margin").height * 2 //Causes a default margin above the label and a default margin below the label. + height: printerTypeLabel.height + UM.Theme.getSize("wide_margin").height //Causes a default margin above the label and a default margin below the label. Cura.PrinterTypeLabel { id: printerTypeLabel From 11d8831d7a9a15e3e916d5d9762bfe1f755042e5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 15:40:18 +0100 Subject: [PATCH 0791/1039] Use the capitalized version of the buildplate name --- cura/PrinterOutput/ConfigurationModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutput/ConfigurationModel.py b/cura/PrinterOutput/ConfigurationModel.py index 89e609c913..6f55aa3b1f 100644 --- a/cura/PrinterOutput/ConfigurationModel.py +++ b/cura/PrinterOutput/ConfigurationModel.py @@ -44,7 +44,7 @@ class ConfigurationModel(QObject): @pyqtProperty(str, fset = setBuildplateConfiguration, notify = configurationChanged) def buildplateConfiguration(self) -> str: - return self._buildplate_configuration + return self._buildplate_configuration.capitalize() ## This method is intended to indicate whether the configuration is valid or not. # The method checks if the mandatory fields are or not set From 0e19fa731f8bc391c3b17ab33db0197410633ef0 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 10 Dec 2018 15:47:45 +0100 Subject: [PATCH 0792/1039] Codestyle Contributes to CL-1152 --- .../qml/MonitorConfigOverrideDialog.qml | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index 7f7dc24350..1b9a03ea99 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -95,39 +95,46 @@ UM.Dialog } } // Utils - function formatPrintJobName(name) { - var extensions = [ ".gcode.gz", ".gz", ".gcode", ".ufp" ]; - for (var i = 0; i < extensions.length; i++) { - var extension = extensions[i]; - if (name.slice(-extension.length) === extension) { - name = name.substring(0, name.length - extension.length); + function formatPrintJobName(name) + { + var extensions = [ ".gcode.gz", ".gz", ".gcode", ".ufp" ] + for (var i = 0; i < extensions.length; i++) + { + var extension = extensions[i] + if (name.slice(-extension.length) === extension) + { + name = name.substring(0, name.length - extension.length) } } return name; } - function materialsAreKnown(job) { - var conf0 = job.configuration[0]; - if (conf0 && !conf0.material.material) { - return false; + function materialsAreKnown(job) + { + var conf0 = job.configuration[0] + if (conf0 && !conf0.material.material) + { + return false } - var conf1 = job.configuration[1]; - if (conf1 && !conf1.material.material) { - return false; + var conf1 = job.configuration[1] + if (conf1 && !conf1.material.material) + { + return false } - return true; + return true } - function formatBuildPlateType(buildPlateType) { - var translationText = ""; + function formatBuildPlateType(buildPlateType) + { + var translationText = "" switch (buildPlateType) { case "glass": - translationText = catalog.i18nc("@label", "Glass"); - break; + translationText = catalog.i18nc("@label", "Glass") + break case "aluminum": - translationText = catalog.i18nc("@label", "Aluminum"); - break; + translationText = catalog.i18nc("@label", "Aluminum") + break default: - translationText = null; + translationText = null } - return translationText; + return translationText } } \ No newline at end of file From 4fc4aecf17e33da689463c0d899f36a564fe2f83 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 15:48:59 +0100 Subject: [PATCH 0793/1039] Avoid the overlapping of text when the name is too long Normally I happens in other languages other than English. --- resources/qml/ViewsSelector.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index ed0b694aed..f2906f9d4c 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -60,6 +60,7 @@ Cura.ExpandablePopup { left: title.right leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right } height: parent.height elide: Text.ElideRight From 1436301d780572e976ed0c62edbebee42a404729 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 16:20:00 +0100 Subject: [PATCH 0794/1039] Ensure setActiveExtruderIndex only gets called once when switching machines CURA-6016 --- cura/Settings/ExtruderManager.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index b0bcf3b100..8fa0172305 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -83,8 +83,9 @@ class ExtruderManager(QObject): # \param index The index of the new active extruder. @pyqtSlot(int) def setActiveExtruderIndex(self, index: int) -> None: - self._active_extruder_index = index - self.activeExtruderChanged.emit() + if self._active_extruder_index != index: + self._active_extruder_index = index + self.activeExtruderChanged.emit() @pyqtProperty(int, notify = activeExtruderChanged) def activeExtruderIndex(self) -> int: @@ -344,6 +345,7 @@ class ExtruderManager(QObject): if extruders_changed: self.extrudersChanged.emit(global_stack_id) self.setActiveExtruderIndex(0) + self.activeExtruderChanged.emit() # After 3.4, all single-extrusion machines have their own extruder definition files instead of reusing # "fdmextruder". We need to check a machine here so its extruder definition is correct according to this. From 3132b1f689ad6f83479db5bd19a071e6d47bf74e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 10 Dec 2018 16:56:44 +0100 Subject: [PATCH 0795/1039] Update the extruder Model a whole lot less CURA-6016 --- cura/Settings/ExtrudersModel.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 5f10ac99d4..e19617c8ef 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -224,6 +224,6 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): "definition": "" } items.append(item) - - self.setItems(items) - self.modelChanged.emit() + if self._items != items: + self.setItems(items) + self.modelChanged.emit() From 716fedc7820c6a406d3ba431d99284e264cc5541 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 10 Dec 2018 17:06:51 +0100 Subject: [PATCH 0796/1039] Use no text by default for the disabled state of the panels Contributes to CURA-5941. --- resources/qml/ExpandableComponent.qml | 2 +- resources/qml/ExpandablePopup.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index c2b9d715d5..2b07aa7d37 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -109,7 +109,7 @@ Item anchors.fill: parent leftPadding: background.padding rightPadding: background.padding - text: catalog.i18nc("@label default disabled text", "This component is disabled") + text: "" font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index 2d34b134e0..4bf1684f18 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -113,7 +113,7 @@ Item id: disabledLabel visible: !base.enabled leftPadding: background.padding - text: catalog.i18nc("@label default disabled text", "This component is disabled") + text: "" font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter From 909f36d28ede29c0c9fc5f69db7f8941fc5a8429 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 09:24:22 +0100 Subject: [PATCH 0797/1039] Let the settingsMenu use the extruders of the active machine instead of the extruderModel The extruder model gets updated way to much (for all material changes) but we only need the number and names of the extruders, since the other menu's do this by themselves --- cura/Settings/GlobalStack.py | 16 +++++++++++++--- resources/qml/Menus/SettingsMenu.qml | 5 +++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index da1ec61254..44ceee9511 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -3,8 +3,8 @@ from collections import defaultdict import threading -from typing import Any, Dict, Optional, Set, TYPE_CHECKING -from PyQt5.QtCore import pyqtProperty, pyqtSlot +from typing import Any, Dict, Optional, Set, TYPE_CHECKING, List +from PyQt5.QtCore import pyqtProperty, pyqtSlot, pyqtSignal from UM.Decorators import override from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase @@ -42,13 +42,23 @@ class GlobalStack(CuraContainerStack): # Per thread we have our own resolving_settings, or strange things sometimes occur. self._resolving_settings = defaultdict(set) #type: Dict[str, Set[str]] # keys are thread names + extrudersChanged = pyqtSignal() + ## Get the list of extruders of this stack. # # \return The extruders registered with this stack. - @pyqtProperty("QVariantMap") + @pyqtProperty("QVariantMap", notify = extrudersChanged) def extruders(self) -> Dict[str, "ExtruderStack"]: return self._extruders + @pyqtProperty("QVariantList", notify = extrudersChanged) + def extruderList(self) -> List["ExtruderStack"]: + result_tuple_list = sorted(list(self.extruders.items()), key=lambda x: int(x[0])) + result_list = [item[1] for item in result_tuple_list] + + machine_extruder_count = self.getProperty("machine_extruder_count", "value") + return result_list[:machine_extruder_count] + @classmethod def getLoadingPriority(cls) -> int: return 2 diff --git a/resources/qml/Menus/SettingsMenu.qml b/resources/qml/Menus/SettingsMenu.qml index 79f8c5b7bf..4ea3a4d71a 100644 --- a/resources/qml/Menus/SettingsMenu.qml +++ b/resources/qml/Menus/SettingsMenu.qml @@ -16,10 +16,11 @@ Menu Instantiator { - model: Cura.ExtrudersModel { simpleNames: true } + model: Cura.MachineManager.activeMachine.extruderList + Menu { - title: model.name + title: modelData.name NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index } MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index } From bb1950525a5e67ae9ee0e7163d720e0d14b72f16 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 09:42:34 +0100 Subject: [PATCH 0798/1039] Limit the amount of times the buildplate rebuild is done CURA-6016 --- cura/BuildVolume.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cura/BuildVolume.py b/cura/BuildVolume.py index f837f5cef7..aa1f170707 100755 --- a/cura/BuildVolume.py +++ b/cura/BuildVolume.py @@ -83,7 +83,14 @@ class BuildVolume(SceneNode): " with printed models."), title = catalog.i18nc("@info:title", "Build Volume")) self._global_container_stack = None + + self._stack_change_timer = QTimer() + self._stack_change_timer.setInterval(100) + self._stack_change_timer.setSingleShot(True) + self._stack_change_timer.timeout.connect(self._onStackChangeTimerFinished) + self._application.globalContainerStackChanged.connect(self._onStackChanged) + self._onStackChanged() self._engine_ready = False @@ -105,6 +112,8 @@ class BuildVolume(SceneNode): self._setting_change_timer.setSingleShot(True) self._setting_change_timer.timeout.connect(self._onSettingChangeTimerFinished) + + # Must be after setting _build_volume_message, apparently that is used in getMachineManager. # activeQualityChanged is always emitted after setActiveVariant, setActiveMaterial and setActiveQuality. # Therefore this works. @@ -526,8 +535,11 @@ class BuildVolume(SceneNode): if extra_z != self._extra_z_clearance: self._extra_z_clearance = extra_z - ## Update the build volume visualization def _onStackChanged(self): + self._stack_change_timer.start() + + ## Update the build volume visualization + def _onStackChangeTimerFinished(self): if self._global_container_stack: self._global_container_stack.propertyChanged.disconnect(self._onSettingPropertyChanged) extruders = ExtruderManager.getInstance().getActiveExtruderStacks() From 77703e1fb8f2a0c60a56126b9ccc90d5aba8f8a3 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 09:58:23 +0100 Subject: [PATCH 0799/1039] Catch an exception from numpy that happens when loading some models --- cura/Scene/ConvexHullDecorator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cura/Scene/ConvexHullDecorator.py b/cura/Scene/ConvexHullDecorator.py index 0c03ae615b..661106dec7 100644 --- a/cura/Scene/ConvexHullDecorator.py +++ b/cura/Scene/ConvexHullDecorator.py @@ -187,7 +187,10 @@ class ConvexHullDecorator(SceneNodeDecorator): for child in self._node.getChildren(): child_hull = child.callDecoration("_compute2DConvexHull") if child_hull: - points = numpy.append(points, child_hull.getPoints(), axis = 0) + try: + points = numpy.append(points, child_hull.getPoints(), axis = 0) + except ValueError: + pass if points.size < 3: return None From 4dab33d41babdb0d961d3d1bcb54479b5e8c3691 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 10:44:30 +0100 Subject: [PATCH 0800/1039] Remove the fancy snowflakes pattern --- resources/qml/Cura.qml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 3e019cdcd5..a4faa27b67 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -123,17 +123,6 @@ UM.MainWindow } } } - - // This is the new fancy pattern - Image - { - id: backgroundPattern - anchors.fill: parent - fillMode: Image.Tile - source: UM.Theme.getImage("header_pattern") - horizontalAlignment: Image.AlignLeft - verticalAlignment: Image.AlignTop - } } MainWindowHeader From 0f357e1078b6a30a5b3ddda88bbc9fcd736f0bb4 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 11 Dec 2018 10:51:05 +0100 Subject: [PATCH 0801/1039] Replace fix for 'None' materials This was fixed in 4.0 and accidentally got reverted when merging another branch in. Contributes to CL-1160 --- .../UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 08592df603..60474156a8 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -609,6 +609,17 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): material_manager = CuraApplication.getInstance().getMaterialManager() material_group_list = material_manager.getMaterialGroupListByGUID(material_data["guid"]) + # This can happen if the connected machine has no material in one or more extruders (if GUID is empty), or the + # material is unknown to Cura, so we should return an "empty" or "unknown" material model. + if material_group_list is None: + material_name = "Empty" if len(material_data["guid"]) == 0 else "Unknown" + return MaterialOutputModel(guid = material_data["guid"], + type = material_data.get("type", ""), + color = material_data.get("color", ""), + brand = material_data.get("brand", ""), + name = material_data.get("name", material_name) + ) + # Sort the material groups by "is_read_only = True" first, and then the name alphabetically. read_only_material_group_list = list(filter(lambda x: x.is_read_only, material_group_list)) non_read_only_material_group_list = list(filter(lambda x: not x.is_read_only, material_group_list)) From f67ac8d7c4f937a323f8b1a520abfaecad5b438a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 10:59:17 +0100 Subject: [PATCH 0802/1039] Update far less agressively for the material models CURA-6016 --- cura/Machines/Models/BaseMaterialsModel.py | 14 ++++++++++---- cura/Machines/Models/FavoriteMaterialsModel.py | 5 +---- cura/Machines/Models/GenericMaterialsModel.py | 3 --- cura/Machines/Models/MaterialBrandsModel.py | 4 ---- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/cura/Machines/Models/BaseMaterialsModel.py b/cura/Machines/Models/BaseMaterialsModel.py index ef2e760330..3cd92bb6b4 100644 --- a/cura/Machines/Models/BaseMaterialsModel.py +++ b/cura/Machines/Models/BaseMaterialsModel.py @@ -1,5 +1,6 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Optional, Dict, Set from PyQt5.QtCore import Qt, pyqtSignal, pyqtProperty from UM.Qt.ListModel import ListModel @@ -9,6 +10,9 @@ from UM.Qt.ListModel import ListModel # Those 2 models are used by the material drop down menu to show generic materials and branded materials separately. # The extruder position defined here is being used to bound a menu to the correct extruder. This is used in the top # bar menu "Settings" -> "Extruder nr" -> "Material" -> this menu +from cura.Machines.MaterialNode import MaterialNode + + class BaseMaterialsModel(ListModel): extruderPositionChanged = pyqtSignal() @@ -54,8 +58,8 @@ class BaseMaterialsModel(ListModel): self._extruder_position = 0 self._extruder_stack = None - self._available_materials = None - self._favorite_ids = None + self._available_materials = None # type: Optional[Dict[str, MaterialNode]] + self._favorite_ids = set() # type: Set(str) def _updateExtruderStack(self): global_stack = self._machine_manager.activeMachine @@ -102,8 +106,10 @@ class BaseMaterialsModel(ListModel): return False extruder_stack = global_stack.extruders[extruder_position] - - self._available_materials = self._material_manager.getAvailableMaterialsForMachineExtruder(global_stack, extruder_stack) + available_materials = self._material_manager.getAvailableMaterialsForMachineExtruder(global_stack, extruder_stack) + if available_materials == self._available_materials: + return False + self._available_materials = available_materials if self._available_materials is None: return False diff --git a/cura/Machines/Models/FavoriteMaterialsModel.py b/cura/Machines/Models/FavoriteMaterialsModel.py index 18fe310c44..cc273e55ce 100644 --- a/cura/Machines/Models/FavoriteMaterialsModel.py +++ b/cura/Machines/Models/FavoriteMaterialsModel.py @@ -4,17 +4,14 @@ from UM.Logger import Logger from cura.Machines.Models.BaseMaterialsModel import BaseMaterialsModel -class FavoriteMaterialsModel(BaseMaterialsModel): +class FavoriteMaterialsModel(BaseMaterialsModel): def __init__(self, parent = None): super().__init__(parent) self._update() def _update(self): - - # Perform standard check and reset if the check fails if not self._canUpdate(): - self.setItems([]) return # Get updated list of favorites diff --git a/cura/Machines/Models/GenericMaterialsModel.py b/cura/Machines/Models/GenericMaterialsModel.py index c276b865bf..8f41dd6a70 100644 --- a/cura/Machines/Models/GenericMaterialsModel.py +++ b/cura/Machines/Models/GenericMaterialsModel.py @@ -11,10 +11,7 @@ class GenericMaterialsModel(BaseMaterialsModel): self._update() def _update(self): - - # Perform standard check and reset if the check fails if not self._canUpdate(): - self.setItems([]) return # Get updated list of favorites diff --git a/cura/Machines/Models/MaterialBrandsModel.py b/cura/Machines/Models/MaterialBrandsModel.py index 458e4d9b47..ac82cf6670 100644 --- a/cura/Machines/Models/MaterialBrandsModel.py +++ b/cura/Machines/Models/MaterialBrandsModel.py @@ -28,12 +28,8 @@ class MaterialBrandsModel(BaseMaterialsModel): self._update() def _update(self): - - # Perform standard check and reset if the check fails if not self._canUpdate(): - self.setItems([]) return - # Get updated list of favorites self._favorite_ids = self._material_manager.getFavorites() From 4b6f4af44eeef9b0d39c3161d7e577d66d57388c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 11:10:45 +0100 Subject: [PATCH 0803/1039] Close the expandable panel when it becomes disabled It happens when it's open and the user loads a GCode. Contributes to CURA-5941 --- resources/qml/ExpandableComponent.qml | 18 +++++++++++++++++- resources/qml/ExpandablePopup.qml | 15 ++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index 2b07aa7d37..afe15bcb1d 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -88,7 +88,23 @@ Item { target: background property: "color" - value: enabled ? (expanded ? headerActiveColor : headerBackgroundColor) : UM.Theme.getColor("disabled") + value: + { + return base.enabled ? (expanded ? headerActiveColor : headerBackgroundColor) : UM.Theme.getColor("disabled") + } + } + + // The panel needs to close when it becomes disabled + Connections + { + target: base + onEnabledChanged: + { + if (!base.enabled && expanded) + { + toggleContent() + } + } } implicitHeight: 100 * screenScaleFactor diff --git a/resources/qml/ExpandablePopup.qml b/resources/qml/ExpandablePopup.qml index 4bf1684f18..2d2665373e 100644 --- a/resources/qml/ExpandablePopup.qml +++ b/resources/qml/ExpandablePopup.qml @@ -94,7 +94,20 @@ Item { target: background property: "color" - value: enabled ? headerBackgroundColor : UM.Theme.getColor("disabled") + value: base.enabled ? headerBackgroundColor : UM.Theme.getColor("disabled") + } + + // The panel needs to close when it becomes disabled + Connections + { + target: base + onEnabledChanged: + { + if (!base.enabled && expanded) + { + toggleContent() + } + } } implicitHeight: 100 * screenScaleFactor From 2b2e8ebb31ffaacdcd6cac3851585de94af556c4 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 11:37:01 +0100 Subject: [PATCH 0804/1039] Add some safety checks when checking for the guid of the material Don't crash if the guid doesn't exist. Contributes to CL-1160. --- .../UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 60474156a8..d39cf6e41c 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -607,13 +607,18 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): def _createMaterialOutputModel(self, material_data: Dict[str, Any]) -> "MaterialOutputModel": material_manager = CuraApplication.getInstance().getMaterialManager() - material_group_list = material_manager.getMaterialGroupListByGUID(material_data["guid"]) + material_group_list = None + + # Avoid crashing if there is no "guid" field in the metadata + material_guid = material_data.get("guid") + if material_guid: + material_group_list = material_manager.getMaterialGroupListByGUID(material_guid) # This can happen if the connected machine has no material in one or more extruders (if GUID is empty), or the # material is unknown to Cura, so we should return an "empty" or "unknown" material model. if material_group_list is None: - material_name = "Empty" if len(material_data["guid"]) == 0 else "Unknown" - return MaterialOutputModel(guid = material_data["guid"], + material_name = "Empty" if len(material_data.get("guid", "") == 0 else "Unknown" + return MaterialOutputModel(guid = material_data.get("guid", ""), type = material_data.get("type", ""), color = material_data.get("color", ""), brand = material_data.get("brand", ""), From 1c373b720541691f4bd8d9e20a93b5596de04c32 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 11 Dec 2018 11:51:13 +0100 Subject: [PATCH 0805/1039] Improve config override text Contributes to CL-1152 --- .../resources/qml/MonitorConfigOverrideDialog.qml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml index 1b9a03ea99..6a32310dd5 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorConfigOverrideDialog.qml @@ -61,7 +61,7 @@ UM.Dialog var topLine if (materialsAreKnown(printer.activePrintJob)) { - topLine = catalog.i18ncp("@label", "The assigned printer, %1, requires the following configuration change:", "The assigned printer, %1, requires the following configuration changes:").arg(printer.name) + topLine = catalog.i18ncp("@label", "The assigned printer, %1, requires the following configuration change:", "The assigned printer, %1, requires the following configuration changes:", printer.activePrintJob.configurationChanges.length).arg(printer.name) } else { @@ -89,8 +89,10 @@ UM.Dialog default: text = "unknown" } - result += "

    " + text + "

    " + result += "

    " + text + "

    \n\n" } + var bottomLine = catalog.i18nc("@label", "Override will use the specified settings with the existing printer configuration. This may result in a failed print.") + result += "

    " + bottomLine + "

    \n\n" return result } } From 70b0d16fa4827f74632e8b57e3c01db0ed3aabdf Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 11:53:26 +0100 Subject: [PATCH 0806/1039] Fix typo Missing parenthesis. Contributes to CL-1160. --- plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index d39cf6e41c..275087447e 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -617,7 +617,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): # This can happen if the connected machine has no material in one or more extruders (if GUID is empty), or the # material is unknown to Cura, so we should return an "empty" or "unknown" material model. if material_group_list is None: - material_name = "Empty" if len(material_data.get("guid", "") == 0 else "Unknown" + material_name = "Empty" if len(material_data.get("guid", "")) == 0 else "Unknown" return MaterialOutputModel(guid = material_data.get("guid", ""), type = material_data.get("type", ""), color = material_data.get("color", ""), From 4949f39c34e6ffee888fb9eed49181879c02b9d1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 12:10:32 +0100 Subject: [PATCH 0807/1039] Add translatable strings to empty and unknown material Contributes to CL-1160. --- .../UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 275087447e..ef890fc4ed 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -617,7 +617,8 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): # This can happen if the connected machine has no material in one or more extruders (if GUID is empty), or the # material is unknown to Cura, so we should return an "empty" or "unknown" material model. if material_group_list is None: - material_name = "Empty" if len(material_data.get("guid", "")) == 0 else "Unknown" + material_name = i18n_catalog.i18nc("@label:material", "Empty") if len(material_data.get("guid", "")) == 0 \ + else i18n_catalog.i18nc("@label:material", "Unknown") return MaterialOutputModel(guid = material_data.get("guid", ""), type = material_data.get("type", ""), color = material_data.get("color", ""), @@ -649,9 +650,10 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): color = material_data["color"] brand = material_data["brand"] material_type = material_data["material"] - name = "Empty" if material_data["material"] == "empty" else "Unknown" - return MaterialOutputModel(guid=material_data["guid"], type=material_type, - brand=brand, color=color, name=name) + name = i18n_catalog.i18nc("@label:material", "Empty") if material_data["material"] == "empty" \ + else i18n_catalog.i18nc("@label:material", "Unknown") + return MaterialOutputModel(guid = material_data["guid"], type = material_type, + brand = brand, color = color, name = name) def _updatePrinter(self, printer: PrinterOutputModel, data: Dict[str, Any]) -> None: # For some unknown reason the cluster wants UUID for everything, except for sending a job directly to a printer. From 6c70543d11bdc37ab658e53686882bcd5a6e4452 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 12:46:11 +0100 Subject: [PATCH 0808/1039] Only set the containerID when the dialog is visible This prevents unneeded updates CURA-6016 --- resources/qml/Dialogs/WorkspaceSummaryDialog.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/Dialogs/WorkspaceSummaryDialog.qml b/resources/qml/Dialogs/WorkspaceSummaryDialog.qml index 1b3a7aac55..35630bd19b 100644 --- a/resources/qml/Dialogs/WorkspaceSummaryDialog.qml +++ b/resources/qml/Dialogs/WorkspaceSummaryDialog.qml @@ -11,6 +11,7 @@ import Cura 1.0 as Cura UM.Dialog { + id: base title: catalog.i18nc("@title:window", "Save Project") minimumWidth: 500 * screenScaleFactor @@ -49,7 +50,7 @@ UM.Dialog UM.SettingDefinitionsModel { id: definitionsModel - containerId: Cura.MachineManager.activeDefinitionId + containerId: base.visible ? Cura.MachineManager.activeDefinitionId: "" showAll: true exclude: ["command_line_settings"] showAncestors: true From 75ff03f3c8e55c2d2a651da0f36b3d0ee6c0fb8f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 13:13:20 +0100 Subject: [PATCH 0809/1039] Use setState instead of emitting the backend state CURA-6016 --- .../CuraEngineBackend/CuraEngineBackend.py | 38 +++++++++---------- plugins/CuraEngineBackend/StartSliceJob.py | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 58bc74f3f1..7ede6b6736 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -203,7 +203,7 @@ class CuraEngineBackend(QObject, Backend): @pyqtSlot() def stopSlicing(self) -> None: - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) if self._slicing: # We were already slicing. Stop the old job. self._terminate() self._createSocket() @@ -322,7 +322,7 @@ class CuraEngineBackend(QObject, Backend): self._start_slice_job = None if job.isCancelled() or job.getError() or job.getResult() == StartJobResult.Error: - self.backendStateChange.emit(BackendState.Error) + self.setState(BackendState.Error) self.backendError.emit(job) return @@ -331,10 +331,10 @@ class CuraEngineBackend(QObject, Backend): self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current material as it is incompatible with the selected machine or configuration."), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() - self.backendStateChange.emit(BackendState.Error) + self.setState(BackendState.Error) self.backendError.emit(job) else: - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) return if job.getResult() == StartJobResult.SettingError: @@ -362,10 +362,10 @@ class CuraEngineBackend(QObject, Backend): self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current settings. The following settings have errors: {0}").format(", ".join(error_labels)), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() - self.backendStateChange.emit(BackendState.Error) + self.setState(BackendState.Error) self.backendError.emit(job) else: - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) return elif job.getResult() == StartJobResult.ObjectSettingError: @@ -386,7 +386,7 @@ class CuraEngineBackend(QObject, Backend): self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice due to some per-model settings. The following settings have errors on one or more models: {error_labels}").format(error_labels = ", ".join(errors.values())), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() - self.backendStateChange.emit(BackendState.Error) + self.setState(BackendState.Error) self.backendError.emit(job) return @@ -395,16 +395,16 @@ class CuraEngineBackend(QObject, Backend): self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice because the prime tower or prime position(s) are invalid."), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() - self.backendStateChange.emit(BackendState.Error) + self.setState(BackendState.Error) self.backendError.emit(job) else: - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) if job.getResult() == StartJobResult.ObjectsWithDisabledExtruder: self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice because there are objects associated with disabled Extruder %s." % job.getMessage()), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() - self.backendStateChange.emit(BackendState.Error) + self.setState(BackendState.Error) self.backendError.emit(job) return @@ -413,10 +413,10 @@ class CuraEngineBackend(QObject, Backend): self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() - self.backendStateChange.emit(BackendState.Error) + self.setState(BackendState.Error) self.backendError.emit(job) else: - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) self._invokeSlice() return @@ -424,7 +424,7 @@ class CuraEngineBackend(QObject, Backend): self._socket.sendMessage(job.getSliceMessage()) # Notify the user that it's now up to the backend to do it's job - self.backendStateChange.emit(BackendState.Processing) + self.setState(BackendState.Processing) if self._slice_start_time: Logger.log("d", "Sending slice message took %s seconds", time() - self._slice_start_time ) @@ -442,7 +442,7 @@ class CuraEngineBackend(QObject, Backend): for node in DepthFirstIterator(self._scene.getRoot()): #type: ignore #Ignore type error because iter() should get called automatically by Python syntax. if node.callDecoration("isBlockSlicing"): enable_timer = False - self.backendStateChange.emit(BackendState.Disabled) + self.setState(BackendState.Disabled) self._is_disabled = True gcode_list = node.callDecoration("getGCodeList") if gcode_list is not None: @@ -451,7 +451,7 @@ class CuraEngineBackend(QObject, Backend): if self._use_timer == enable_timer: return self._use_timer if enable_timer: - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) self.enableTimer() return True else: @@ -518,7 +518,7 @@ class CuraEngineBackend(QObject, Backend): self._build_plates_to_be_sliced.append(build_plate_number) self.printDurationMessage.emit(source_build_plate_number, {}, []) self.processingProgress.emit(0.0) - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) # if not self._use_timer: # With manually having to slice, we want to clear the old invalid layer data. self._clearLayerData(build_plate_changed) @@ -567,7 +567,7 @@ class CuraEngineBackend(QObject, Backend): self.stopSlicing() self.markSliceAll() self.processingProgress.emit(0.0) - self.backendStateChange.emit(BackendState.NotStarted) + self.setState(BackendState.NotStarted) if not self._use_timer: # With manually having to slice, we want to clear the old invalid layer data. self._clearLayerData() @@ -613,7 +613,7 @@ class CuraEngineBackend(QObject, Backend): # \param message The protobuf message containing the slicing progress. def _onProgressMessage(self, message: Arcus.PythonMessage) -> None: self.processingProgress.emit(message.amount) - self.backendStateChange.emit(BackendState.Processing) + self.setState(BackendState.Processing) def _invokeSlice(self) -> None: if self._use_timer: @@ -632,7 +632,7 @@ class CuraEngineBackend(QObject, Backend): # # \param message The protobuf message signalling that slicing is finished. def _onSlicingFinishedMessage(self, message: Arcus.PythonMessage) -> None: - self.backendStateChange.emit(BackendState.Done) + self.setState(BackendState.Done) self.processingProgress.emit(1.0) gcode_list = self._scene.gcode_dict[self._start_slice_job_build_plate] #type: ignore #Because we generate this attribute dynamically. diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 9679360ad5..d3882a1209 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -323,7 +323,7 @@ class StartSliceJob(Job): value = stack.getProperty(key, "value") result[key] = value Job.yieldThread() - + result["print_bed_temperature"] = result["material_bed_temperature"] # Renamed settings. result["print_temperature"] = result["material_print_temperature"] result["time"] = time.strftime("%H:%M:%S") #Some extra settings. From 4baf0d1bdb8c9aeab709cde37f400ae7db304543 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 13:49:20 +0100 Subject: [PATCH 0810/1039] Always show average rating CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index f34d982cfb..f217d901b8 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -143,9 +143,7 @@ Item Label { - // If the user voted, show that value. Otherwsie show the average rating. - property real ratingtoUse: model.user_rating == 0 ? model.average_rating: model.user_rating - text: ratingtoUse.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" + text: model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" verticalAlignment: Text.AlignVCenter height: starIcon.height anchors.verticalCenter: starIcon.verticalCenter From 30057e2fcd4c1b6370178d24db903d84e83b0619 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 13:49:45 +0100 Subject: [PATCH 0811/1039] Use user_rating instead of user In the end it was implemented as user_rating (and not as user) CURA-6013 --- plugins/Toolbox/src/PackagesModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py index 3f5be3bc37..d94fdf6bb7 100644 --- a/plugins/Toolbox/src/PackagesModel.py +++ b/plugins/Toolbox/src/PackagesModel.py @@ -107,7 +107,7 @@ class PackagesModel(ListModel): "login_required": "login-required" in package.get("tags", []), "average_rating": float(package.get("rating", {}).get("average", 0)), "num_ratings": package.get("rating", {}).get("count", 0), - "user_rating": package.get("rating", {}).get("user", 0) + "user_rating": package.get("rating", {}).get("user_rating", 0) }) # Filter on all the key-word arguments. From faa3f42acc6f88a63b26443b6edd500061689e93 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 13:53:05 +0100 Subject: [PATCH 0812/1039] Modify the header in the simulation view menu component This is needed to align with the designs. --- .../SimulationViewMenuComponent.qml | 40 ++++++++++++++----- resources/qml/ViewsSelector.qml | 2 +- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 58b2bfe520..ed615bf4f6 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -35,14 +35,36 @@ Cura.ExpandableComponent } } - headerItem: Label + headerItem: Item { - id: layerViewTypesLabel - text: catalog.i18nc("@label", "Color scheme") - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("setting_control_text") - height: base.height - verticalAlignment: Text.AlignVCenter + Label + { + id: colorSchemeLabel + text: catalog.i18nc("@label", "Color scheme") + verticalAlignment: Text.AlignVCenter + height: parent.height + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text_medium") + renderType: Text.NativeRendering + } + + Label + { + text: layerTypeCombobox.currentText + verticalAlignment: Text.AlignVCenter + anchors + { + left: colorSchemeLabel.right + leftMargin: UM.Theme.getSize("default_margin").width + right: parent.right + } + height: parent.height + elide: Text.ElideRight + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering + } } contentItem: Column @@ -125,7 +147,7 @@ Cura.ExpandableComponent Label { id: compatibilityModeLabel - text: catalog.i18nc("@label","Compatibility Mode") + text: catalog.i18nc("@label", "Compatibility Mode") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") visible: UM.SimulationView.compatibilityMode @@ -136,7 +158,7 @@ Cura.ExpandableComponent Item // Spacer { - height: Math.round(UM.Theme.getSize("default_margin").width / 2) + height: UM.Theme.getSize("narrow_margin").width width: width } diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index f2906f9d4c..0e2598a0d8 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -43,7 +43,7 @@ Cura.ExpandablePopup Label { id: title - text: catalog.i18nc("@button", "View types") + text: catalog.i18nc("@label", "View types") verticalAlignment: Text.AlignVCenter height: parent.height elide: Text.ElideRight From db56aa028ca24e92ce8366063066f4fef466b6a6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 13:59:36 +0100 Subject: [PATCH 0813/1039] Change the swatch from a circle to the extruder icon --- plugins/SimulationView/SimulationViewMenuComponent.qml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index ed615bf4f6..c2e9b0d6fa 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -183,17 +183,16 @@ Cura.ExpandableComponent style: UM.Theme.styles.checkbox - Rectangle + + UM.RecolorImage { + id: swatch anchors.verticalCenter: parent.verticalCenter anchors.right: extrudersModelCheckBox.right width: UM.Theme.getSize("layerview_legend_size").width height: UM.Theme.getSize("layerview_legend_size").height + source: UM.Theme.getIcon("extruder_button") color: model.color - radius: Math.round(width / 2) - border.width: UM.Theme.getSize("default_lining").width - border.color: UM.Theme.getColor("lining") - visible: !viewSettings.show_legend && !viewSettings.show_gradient } Label From 7a5701b00121e3a481e6f7dbd496c3250a299018 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 14:12:34 +0100 Subject: [PATCH 0814/1039] Made smallrating widget re-usable Also added it to the details page CURA-6013 --- .../resources/qml/SmallRatingWidget.qml | 33 +++++ .../resources/qml/ToolboxDetailPage.qml | 114 +++++++++--------- .../qml/ToolboxDownloadsGridTile.qml | 24 +--- 3 files changed, 94 insertions(+), 77 deletions(-) create mode 100644 plugins/Toolbox/resources/qml/SmallRatingWidget.qml diff --git a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml new file mode 100644 index 0000000000..f69e9349cf --- /dev/null +++ b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml @@ -0,0 +1,33 @@ +import QtQuick 2.3 +import QtQuick.Controls 1.4 +import UM 1.1 as UM +import Cura 1.1 as Cura + + + +Row +{ + id: rating + height: UM.Theme.getSize("rating_star").height + visible: model.average_rating > 0 //Has a rating at all. + spacing: UM.Theme.getSize("thick_lining").width + + UM.RecolorImage + { + id: starIcon + source: UM.Theme.getIcon("star_filled") + color: model.user_rating == 0 ? "#5a5a5a" : UM.Theme.getColor("primary") + height: UM.Theme.getSize("rating_star").height + width: UM.Theme.getSize("rating_star").width + } + + Label + { + text: model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" + verticalAlignment: Text.AlignVCenter + height: starIcon.height + anchors.verticalCenter: starIcon.verticalCenter + color: starIcon.color + font: UM.Theme.getFont("small") + } +} \ No newline at end of file diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 51bb218293..4adbaa2435 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -57,16 +57,22 @@ Item top: thumbnail.top left: thumbnail.right leftMargin: UM.Theme.getSize("default_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("wide_margin").width bottomMargin: UM.Theme.getSize("default_margin").height } text: details === null ? "" : (details.name || "") font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") wrapMode: Text.WordWrap - width: parent.width - height: UM.Theme.getSize("toolbox_property_label").height + width: properties.width + values.width + height: contentHeight + } + + SmallRatingWidget + { + anchors.left: title.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + anchors.verticalCenter: title.verticalCenter + property var model: details } Column @@ -82,6 +88,12 @@ Item width: childrenRect.width height: childrenRect.height Label + { + text: catalog.i18nc("@label", "Rating") + ":" + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text_medium") + } + Label { text: catalog.i18nc("@label", "Version") + ":" font: UM.Theme.getFont("default") @@ -105,12 +117,6 @@ Item font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") } - Label - { - text: catalog.i18nc("@label", "Rating") + ":" - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text_medium") - } } Column { @@ -124,50 +130,6 @@ Item } spacing: Math.floor(UM.Theme.getSize("narrow_margin").height) height: childrenRect.height - Label - { - text: details === null ? "" : (details.version || catalog.i18nc("@label", "Unknown")) - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - Label - { - text: - { - if (details === null) - { - return "" - } - var date = new Date(details.last_updated) - return date.toLocaleString(UM.Preferences.getValue("general/language")) - } - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } - Label - { - text: - { - if (details === null) - { - return "" - } - else - { - return "" + details.author_name + "" - } - } - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - linkColor: UM.Theme.getColor("text_link") - onLinkActivated: Qt.openUrlExternally(link) - } - Label - { - text: details === null ? "" : (details.download_count || catalog.i18nc("@label", "Unknown")) - font: UM.Theme.getFont("default") - color: UM.Theme.getColor("text") - } RatingWidget { id: rating @@ -212,6 +174,50 @@ Item } } } + Label + { + text: details === null ? "" : (details.version || catalog.i18nc("@label", "Unknown")) + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + Label + { + text: + { + if (details === null) + { + return "" + } + var date = new Date(details.last_updated) + return date.toLocaleString(UM.Preferences.getValue("general/language")) + } + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } + Label + { + text: + { + if (details === null) + { + return "" + } + else + { + return "" + details.author_name + "" + } + } + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + linkColor: UM.Theme.getColor("text_link") + onLinkActivated: Qt.openUrlExternally(link) + } + Label + { + text: details === null ? "" : (details.download_count || catalog.i18nc("@label", "Unknown")) + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + } } Rectangle { diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index f217d901b8..8cd8f2ffef 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -119,37 +119,15 @@ Item verticalAlignment: Text.AlignVCenter maximumLineCount: 2 } - Row + SmallRatingWidget { id: rating - height: UM.Theme.getSize("rating_star").height - visible: model.average_rating > 0 //Has a rating at all. - spacing: UM.Theme.getSize("thick_lining").width anchors { bottom: parent.bottom left: parent.left right: parent.right } - - UM.RecolorImage - { - id: starIcon - source: UM.Theme.getIcon("star_filled") - color: model.user_rating == 0 ? "#5a5a5a" : UM.Theme.getColor("primary") - height: UM.Theme.getSize("rating_star").height - width: UM.Theme.getSize("rating_star").width - } - - Label - { - text: model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" - verticalAlignment: Text.AlignVCenter - height: starIcon.height - anchors.verticalCenter: starIcon.verticalCenter - color: starIcon.color - font: UM.Theme.getFont("small") - } } } } From 742fc34e75305cbefdb339ef6fa08f239c538f61 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 14:31:12 +0100 Subject: [PATCH 0815/1039] Change labels in the layer view legend --- plugins/SimulationView/SimulationViewMenuComponent.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index c2e9b0d6fa..95d7d20006 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -222,25 +222,25 @@ Cura.ExpandableComponent Component.onCompleted: { typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Travels"), + label: catalog.i18nc("@label", "Travels"), initialValue: viewSettings.show_travel_moves, preference: "layerview/show_travel_moves", colorId: "layerview_move_combing" }); typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Helpers"), + label: catalog.i18nc("@label", "Helpers"), initialValue: viewSettings.show_helpers, preference: "layerview/show_helpers", colorId: "layerview_support" }); typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Shell"), + label: catalog.i18nc("@label", "Shell"), initialValue: viewSettings.show_skin, preference: "layerview/show_skin", colorId: "layerview_inset_0" }); typesLegendModel.append({ - label: catalog.i18nc("@label", "Show Infill"), + label: catalog.i18nc("@label", "Infill"), initialValue: viewSettings.show_infill, preference: "layerview/show_infill", colorId: "layerview_infill" From fcaa23ed0ae2c168ff405ce7d9a66acf1ae19351 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 11 Dec 2018 15:16:21 +0100 Subject: [PATCH 0816/1039] Added smallRating widget to featured plugins CURA-6013 --- .../resources/qml/SmallRatingWidget.qml | 4 +- .../qml/ToolboxDownloadsShowcaseTile.qml | 103 +++++++----------- 2 files changed, 43 insertions(+), 64 deletions(-) diff --git a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml index f69e9349cf..0b93131cfd 100644 --- a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml +++ b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml @@ -11,7 +11,7 @@ Row height: UM.Theme.getSize("rating_star").height visible: model.average_rating > 0 //Has a rating at all. spacing: UM.Theme.getSize("thick_lining").width - + width: starIcon.width + spacing + numRatingsLabel.width UM.RecolorImage { id: starIcon @@ -23,9 +23,11 @@ Row Label { + id: numRatingsLabel text: model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" verticalAlignment: Text.AlignVCenter height: starIcon.height + width: contentWidth anchors.verticalCenter: starIcon.verticalCenter color: starIcon.color font: UM.Theme.getFont("small") diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index ceaadc110d..3e09654173 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml @@ -13,90 +13,67 @@ Rectangle property int installedPackages: toolbox.viewCategory == "material" ? toolbox.getNumberOfInstalledPackagesByAuthor(model.id) : (toolbox.isInstalled(model.id) ? 1 : 0) id: tileBase width: UM.Theme.getSize("toolbox_thumbnail_large").width + (2 * UM.Theme.getSize("default_lining").width) - height: thumbnail.height + packageNameBackground.height + (2 * UM.Theme.getSize("default_lining").width) + height: thumbnail.height + packageName.height + rating.height + UM.Theme.getSize("default_margin").width border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") - color: "transparent" - Rectangle + color: UM.Theme.getColor("main_background") + Image { id: thumbnail - color: UM.Theme.getColor("main_background") - width: UM.Theme.getSize("toolbox_thumbnail_large").width - height: UM.Theme.getSize("toolbox_thumbnail_large").height + height: UM.Theme.getSize("toolbox_thumbnail_large").height - 4 * UM.Theme.getSize("default_margin").height + width: UM.Theme.getSize("toolbox_thumbnail_large").height - 4 * UM.Theme.getSize("default_margin").height + fillMode: Image.PreserveAspectFit + source: model.icon_url || "../images/logobot.svg" + mipmap: true anchors { top: parent.top + topMargin: UM.Theme.getSize("default_margin").height horizontalCenter: parent.horizontalCenter - topMargin: UM.Theme.getSize("default_lining").width - } - Image - { - anchors.centerIn: parent - width: UM.Theme.getSize("toolbox_thumbnail_large").width - 2 * UM.Theme.getSize("default_margin").width - height: UM.Theme.getSize("toolbox_thumbnail_large").height - 2 * UM.Theme.getSize("default_margin").height - fillMode: Image.PreserveAspectFit - source: model.icon_url || "../images/logobot.svg" - mipmap: true - } - UM.RecolorImage - { - width: (parent.width * 0.3) | 0 - height: (parent.height * 0.3) | 0 - anchors - { - bottom: parent.bottom - right: parent.right - bottomMargin: UM.Theme.getSize("default_lining").width - } - visible: installedPackages != 0 - color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") - source: "../images/installed_check.svg" } } - Rectangle + Label { - id: packageNameBackground - color: UM.Theme.getColor("primary") + id: packageName + text: model.name anchors { - top: thumbnail.bottom horizontalCenter: parent.horizontalCenter + top: thumbnail.bottom } + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter height: UM.Theme.getSize("toolbox_heading_label").height width: parent.width - Label - { - id: packageName - text: model.name - anchors - { - horizontalCenter: parent.horizontalCenter - } - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - height: UM.Theme.getSize("toolbox_heading_label").height - width: parent.width - wrapMode: Text.WordWrap - color: UM.Theme.getColor("button_text") - font: UM.Theme.getFont("medium_bold") - } + wrapMode: Text.WordWrap + font: UM.Theme.getFont("medium_bold") } + UM.RecolorImage + { + width: (parent.width * 0.20) | 0 + height: (parent.height * 0.20) | 0 + anchors + { + bottom: parent.bottom + right: parent.right + bottomMargin: UM.Theme.getSize("default_lining").width + } + visible: installedPackages != 0 + color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") + source: "../images/installed_check.svg" + } + + SmallRatingWidget + { + id: rating + anchors.bottom: parent.bottom + anchors.bottomMargin: UM.Theme.getSize("narrow_margin").height + anchors.horizontalCenter: parent.horizontalCenter + } + MouseArea { anchors.fill: parent - hoverEnabled: true - onEntered: - { - packageName.color = UM.Theme.getColor("button_text_hover") - packageNameBackground.color = UM.Theme.getColor("primary_hover") - tileBase.border.color = UM.Theme.getColor("primary_hover") - } - onExited: - { - packageName.color = UM.Theme.getColor("button_text") - packageNameBackground.color = UM.Theme.getColor("primary") - tileBase.border.color = UM.Theme.getColor("lining") - } onClicked: { base.selection = model From c804610fa6ab8cad1b52b34666200c2026ef3732 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 15:19:40 +0100 Subject: [PATCH 0817/1039] Make the stage menu in the preview using 85 percent of the total width in order to prevent the print setup panel to be in the middle --- plugins/PreviewStage/PreviewMenu.qml | 92 +++++++++++-------- .../SimulationViewMenuComponent.qml | 1 - resources/themes/cura-light/theme.json | 4 +- 3 files changed, 54 insertions(+), 43 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 1543536160..4e1fbac837 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -2,6 +2,7 @@ // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 +import QtQuick.Layouts 1.1 import QtQuick.Controls 2.3 import UM 1.3 as UM @@ -19,56 +20,67 @@ Item name: "cura" } - - Row + // Item to ensure that all of the buttons are nicely centered. + Item { - id: stageMenuRow - anchors.centerIn: parent + anchors.horizontalCenter: parent.horizontalCenter + width: stageMenuRow.width height: parent.height - Cura.ViewsSelector + RowLayout { - id: viewsSelector + id: stageMenuRow + width: Math.round(0.85 * previewMenu.width) height: parent.height - width: UM.Theme.getSize("views_selector").width - headerCornerSide: Cura.RoundedRectangle.Direction.Left - } + spacing: 0 - // Separator line - Rectangle - { - height: parent.height - // If there is no viewPanel, we only need a single spacer, so hide this one. - visible: viewPanel.source != "" - width: visible ? UM.Theme.getSize("default_lining").width : 0 + Cura.ViewsSelector + { + id: viewsSelector + headerCornerSide: Cura.RoundedRectangle.Direction.Left + Layout.minimumWidth: UM.Theme.getSize("views_selector").width + Layout.maximumWidth: UM.Theme.getSize("views_selector").width + Layout.fillWidth: true + Layout.fillHeight: true + } - color: UM.Theme.getColor("lining") - } + // Separator line + Rectangle + { + height: parent.height + // If there is no viewPanel, we only need a single spacer, so hide this one. + visible: viewPanel.source != "" + width: UM.Theme.getSize("default_lining").width - Loader - { - id: viewPanel - height: parent.height - width: childrenRect.width - source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" - } + color: UM.Theme.getColor("lining") + } - // Separator line - Rectangle - { - height: parent.height - width: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("lining") - } + Loader + { + id: viewPanel + Layout.fillHeight: true + Layout.fillWidth: true + Layout.preferredWidth: stageMenuRow.width - viewsSelector.width - printSetupSelectorItem.width - 2 * UM.Theme.getSize("default_lining").width + source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" + } - Item - { - id: printSetupSelectorItem - // This is a work around to prevent the printSetupSelector from having to be re-loaded every time - // a stage switch is done. - children: [printSetupSelector] - height: childrenRect.height - width: childrenRect.width + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } + + Item + { + id: printSetupSelectorItem + // This is a work around to prevent the printSetupSelector from having to be re-loaded every time + // a stage switch is done. + children: [printSetupSelector] + height: childrenRect.height + width: childrenRect.width + } } } } diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 95d7d20006..9f43252126 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -15,7 +15,6 @@ Cura.ExpandableComponent { id: base - width: UM.Theme.getSize("layerview_menu_size").width contentHeaderTitle: catalog.i18nc("@label", "Color scheme") Connections diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 3dc216ad70..0c17a34e9a 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -380,7 +380,7 @@ "machine_selector_widget_content": [25.0, 32.0], "machine_selector_icon": [2.66, 2.66], - "views_selector": [16.0, 4.5], + "views_selector": [23.0, 4.0], "printer_type_label": [3.5, 1.5], @@ -450,7 +450,7 @@ "slider_handle": [1.5, 1.5], "slider_layerview_size": [1.0, 26.0], - "layerview_menu_size": [15, 20], + "layerview_menu_size": [16.0, 4.0], "layerview_legend_size": [1.0, 1.0], "layerview_row": [11.0, 1.5], "layerview_row_spacing": [0.0, 0.5], From daeb86bdb1ec55400b86edc14ec76c66cba4dfbd Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 11 Dec 2018 15:55:03 +0100 Subject: [PATCH 0818/1039] Use short printer family tags Contributes to CL-1173 --- .../resources/qml/MonitorPrintJobCard.qml | 1 + .../resources/qml/MonitorPrinterPill.qml | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index 5eaeff2e84..d8c5d1ec28 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -97,6 +97,7 @@ Item return "" } visible: printJob + width: 120 * screenScaleFactor // TODO: Theme! // FIXED-LINE-HEIGHT: height: 18 * screenScaleFactor // TODO: Theme! diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml index cd78f1b11f..94d9c7e7d0 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml @@ -12,7 +12,19 @@ import UM 1.2 as UM Item { // The printer name - property alias text: printerNameLabel.text; + property var text: "" + property var tagText: { + switch(text) { + case "Ultimaker 3": + return "UM 3" + case "Ultimaker 3 Extended": + return "UM 3 EXT" + case "Ultimaker S5": + return "UM S5" + default: + return "" + } + } implicitHeight: 18 * screenScaleFactor // TODO: Theme! implicitWidth: printerNameLabel.contentWidth + 12 // TODO: Theme! @@ -28,7 +40,7 @@ Item id: printerNameLabel anchors.centerIn: parent color: "#535369" // TODO: Theme! - text: "" + text: tagText font.pointSize: 10 } } \ No newline at end of file From b993a7b0d92c8d1d357d639716aab280bb8f0da0 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 16:05:24 +0100 Subject: [PATCH 0819/1039] Change the header color and font in the configuration popup Also fix some alignments with the printer type selector. Contributes to CURA-5876. --- resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml | 5 ++--- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index 68c56c7c4b..2e8be05fef 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -16,8 +16,8 @@ Item { id: header text: catalog.i18nc("@header", "Configurations") - font: UM.Theme.getFont("large") - color: UM.Theme.getColor("text") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("small_button_text") height: contentHeight renderType: Text.NativeRendering @@ -31,7 +31,6 @@ Item ConfigurationListView { anchors.top: header.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").width width: parent.width outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 8429e2c093..cbe4263e33 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -23,8 +23,8 @@ Item { id: header text: catalog.i18nc("@header", "Custom") - font: UM.Theme.getFont("large") - color: UM.Theme.getColor("text") + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("small_button_text") height: contentHeight renderType: Text.NativeRendering @@ -51,9 +51,7 @@ Item anchors { left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width top: header.bottom topMargin: visible ? UM.Theme.getSize("default_margin").height : 0 } From f99c788eb63bef4035ce7694c3a94b77277e40ad Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 16:35:59 +0100 Subject: [PATCH 0820/1039] Change some colors for the arrows in some setting selectors Contributes to CURA-5876. --- resources/qml/ActionButton.qml | 2 +- .../ConfigurationMenu/ConfigurationItem.qml | 4 ++-- .../ConfigurationMenu/CustomConfiguration.qml | 12 +++++----- resources/qml/PrinterOutput/ExtruderBox.qml | 2 +- resources/qml/PrinterOutput/HeatedBedBox.qml | 2 +- .../qml/PrinterOutput/MonitorSection.qml | 2 +- .../PrinterSelector/MachineSelectorButton.qml | 2 +- resources/qml/Settings/SettingCategory.qml | 23 ++----------------- resources/qml/Settings/SettingComboBox.qml | 2 +- resources/qml/Settings/SettingExtruder.qml | 2 +- .../qml/Settings/SettingOptionalExtruder.qml | 2 +- resources/qml/ViewsSelector.qml | 2 +- resources/themes/cura-light/styles.qml | 10 ++++---- resources/themes/cura-light/theme.json | 15 ------------ 14 files changed, 24 insertions(+), 58 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 7177120f35..c3d39e8251 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -62,7 +62,7 @@ Button id: buttonText text: button.text color: button.enabled ? (button.hovered ? button.textHoverColor : button.textColor): button.textDisabledColor - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") visible: text != "" renderType: Text.NativeRendering anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 728a0cbe9a..9dae075b48 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -20,8 +20,8 @@ Button { height: childrenRect.height color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - border.color: (parent.checked || parent.hovered) ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") - border.width: parent.checked ? UM.Theme.getSize("thick_lining").width : UM.Theme.getSize("default_lining").width + border.color: parent.checked ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") + border.width: UM.Theme.getSize("default_lining").width radius: UM.Theme.getSize("default_radius").width Column diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index cbe4263e33..7181f841d1 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -60,7 +60,7 @@ Item { text: catalog.i18nc("@label", "Printer") width: Math.round(parent.width * 0.3) - UM.Theme.getSize("default_margin").width - height: contentHeight +// height: contentHeight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") anchors.verticalCenter: printerTypeSelector.verticalCenter @@ -72,7 +72,7 @@ Item id: printerTypeSelector text: Cura.MachineManager.activeMachineDefinitionName tooltip: Cura.MachineManager.activeMachineDefinitionName - height: UM.Theme.getSize("setting_control").height + height: UM.Theme.getSize("print_setup_big_item").height width: Math.round(parent.width * 0.7) + UM.Theme.getSize("default_margin").width anchors.right: parent.right style: UM.Theme.styles.print_setup_header_button @@ -222,7 +222,7 @@ Item Row { - height: UM.Theme.getSize("print_setup_item").height + height: UM.Theme.getSize("print_setup_big_item").height visible: Cura.MachineManager.hasMaterials Label @@ -246,7 +246,7 @@ Item text: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.material.name : "" tooltip: text - height: UM.Theme.getSize("setting_control").height + height: UM.Theme.getSize("print_setup_big_item").height width: selectors.controlWidth style: UM.Theme.styles.print_setup_header_button @@ -260,7 +260,7 @@ Item Row { - height: UM.Theme.getSize("print_setup_item").height + height: UM.Theme.getSize("print_setup_big_item").height visible: Cura.MachineManager.hasVariants Label @@ -280,7 +280,7 @@ Item text: Cura.MachineManager.activeVariantName tooltip: Cura.MachineManager.activeVariantName - height: UM.Theme.getSize("setting_control").height + height: UM.Theme.getSize("print_setup_big_item").height width: selectors.controlWidth style: UM.Theme.styles.print_setup_header_button activeFocusOnPress: true; diff --git a/resources/qml/PrinterOutput/ExtruderBox.qml b/resources/qml/PrinterOutput/ExtruderBox.qml index 247bb3a27d..9ba78f778f 100644 --- a/resources/qml/PrinterOutput/ExtruderBox.qml +++ b/resources/qml/PrinterOutput/ExtruderBox.qml @@ -326,7 +326,7 @@ Item return UM.Theme.getColor("action_button_text"); } } - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") text: { if(extruderModel == null) diff --git a/resources/qml/PrinterOutput/HeatedBedBox.qml b/resources/qml/PrinterOutput/HeatedBedBox.qml index 33cf5cd1e2..ac541f707c 100644 --- a/resources/qml/PrinterOutput/HeatedBedBox.qml +++ b/resources/qml/PrinterOutput/HeatedBedBox.qml @@ -320,7 +320,7 @@ Item return UM.Theme.getColor("action_button_text"); } } - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") text: { if(printerModel == null) diff --git a/resources/qml/PrinterOutput/MonitorSection.qml b/resources/qml/PrinterOutput/MonitorSection.qml index 7ef89dabf7..1d9df777b6 100644 --- a/resources/qml/PrinterOutput/MonitorSection.qml +++ b/resources/qml/PrinterOutput/MonitorSection.qml @@ -27,7 +27,7 @@ Item anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width text: label - font: UM.Theme.getFont("setting_category") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("setting_category_text") } } diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index b88af35f82..39e63d27c3 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -42,7 +42,7 @@ Button } text: machineSelectorButton.text color: UM.Theme.getColor("text") - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") visible: text != "" renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 5676bcedf9..da731bcd55 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -73,7 +73,7 @@ Button text: definition.label textFormat: Text.PlainText renderType: Text.NativeRendering - font: UM.Theme.getFont("setting_category") + font: UM.Theme.getFont("default") color: { if (!base.enabled) @@ -106,26 +106,7 @@ Button width: UM.Theme.getSize("standard_arrow").width height: UM.Theme.getSize("standard_arrow").height sourceSize.height: width - color: - { - if (!base.enabled) - { - return UM.Theme.getColor("setting_category_disabled_text") - } - else if ((base.hovered || base.activeFocus) && base.checkable && base.checked) - { - return UM.Theme.getColor("setting_category_active_hover_text") - } - else if (base.pressed || (base.checkable && base.checked)) - { - return UM.Theme.getColor("setting_category_active_text") - } - else if (base.hovered || base.activeFocus) - { - return UM.Theme.getColor("setting_category_hover_text") - } - return UM.Theme.getColor("setting_category_text") - } + color: UM.Theme.getColor("setting_control_button") source: base.checked ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_left") } } diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index 13d2a0eb8f..a287e0c3ce 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -63,7 +63,7 @@ SettingItem sourceSize.width: width + 5 * screenScaleFactor sourceSize.height: width + 5 * screenScaleFactor - color: UM.Theme.getColor("setting_control_text") + color: UM.Theme.getColor("setting_control_button") } contentItem: Label diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index e1fedd9274..a6c1beb3e5 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -105,7 +105,7 @@ SettingItem sourceSize.width: width + 5 * screenScaleFactor sourceSize.height: width + 5 * screenScaleFactor - color: UM.Theme.getColor("setting_control_text"); + color: UM.Theme.getColor("setting_control_button"); } background: Rectangle diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 200a3f64f1..aa843e2719 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -102,7 +102,7 @@ SettingItem sourceSize.width: width + 5 * screenScaleFactor sourceSize.height: width + 5 * screenScaleFactor - color: UM.Theme.getColor("setting_control_text"); + color: UM.Theme.getColor("setting_control_button"); } background: Rectangle diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index f2906f9d4c..58749c09f2 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -105,7 +105,7 @@ Cura.ExpandablePopup id: buttonText text: viewsSelectorButton.text color: UM.Theme.getColor("text") - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter elide: Text.ElideRight diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index bcc754f4ca..42b63e84f7 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -75,7 +75,7 @@ QtObject width: Theme.getSize("standard_arrow").width height: Theme.getSize("standard_arrow").height sourceSize.height: width - color: control.enabled ? Theme.getColor("setting_category_text") : Theme.getColor("setting_category_disabled_text") + color: control.enabled ? Theme.getColor("setting_control_button") : Theme.getColor("setting_category_disabled_text") source: Theme.getIcon("arrow_bottom") } Label @@ -208,7 +208,7 @@ QtObject anchors.verticalCenter: parent.verticalCenter; text: control.text; - font: Theme.getFont("button_tooltip"); + font: Theme.getFont("default"); color: Theme.getColor("tooltip_text"); } } @@ -446,7 +446,7 @@ QtObject sourceSize.width: width + 5 * screenScaleFactor sourceSize.height: width + 5 * screenScaleFactor - color: Theme.getColor("setting_control_text"); + color: Theme.getColor("setting_control_button"); } } } @@ -513,7 +513,7 @@ QtObject sourceSize.width: width + 5 * screenScaleFactor sourceSize.height: width + 5 * screenScaleFactor - color: UM.Theme.getColor("setting_control_text") + color: UM.Theme.getColor("setting_control_button") } } } @@ -716,7 +716,7 @@ QtObject return UM.Theme.getColor("action_button_text"); } } - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") text: control.text } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 3dc216ad70..f812d4245f 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -49,21 +49,6 @@ "size": 0.7, "weight": 50, "family": "Noto Sans" - }, - "button_tooltip": { - "size": 1.0, - "weight": 50, - "family": "Noto Sans" - }, - "setting_category": { - "size": 1.15, - "weight": 63, - "family": "Noto Sans" - }, - "action_button": { - "size": 1.15, - "weight": 50, - "family": "Noto Sans" } }, From 1ababf38ad1cd50946ebca15a72e971e949223a7 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 11 Dec 2018 16:42:44 +0100 Subject: [PATCH 0821/1039] Use full printer name if no tag is known Contributes to CL-1173 --- plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml index 94d9c7e7d0..80a089cc2a 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterPill.qml @@ -22,7 +22,7 @@ Item case "Ultimaker S5": return "UM S5" default: - return "" + return text } } From ed8292c47243c0329c3b2bed04a49acc15b79852 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 11 Dec 2018 17:00:02 +0100 Subject: [PATCH 0822/1039] Adjust size and margins of the icon in the action button Contributes to CURA-5876. --- resources/qml/ActionButton.qml | 5 +++-- .../qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 +- resources/themes/cura-light/theme.json | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index c3d39e8251..3a9552cd9c 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -43,12 +43,13 @@ Button contentItem: Row { + spacing: UM.Theme.getSize("narrow_margin").width //Left side icon. Only displayed if !isIconOnRightSide. UM.RecolorImage { id: buttonIconLeft source: "" - height: buttonText.height + height: UM.Theme.getSize("action_button_icon").height width: visible ? height : 0 sourceSize.width: width sourceSize.height: height @@ -76,7 +77,7 @@ Button { id: buttonIconRight source: buttonIconLeft.source - height: buttonText.height + height: UM.Theme.getSize("action_button_icon").height width: visible ? height : 0 sourceSize.width: width sourceSize.height: height diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 7181f841d1..4d6d80c1b4 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -60,7 +60,7 @@ Item { text: catalog.i18nc("@label", "Printer") width: Math.round(parent.width * 0.3) - UM.Theme.getSize("default_margin").width -// height: contentHeight + height: contentHeight font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") anchors.verticalCenter: printerTypeSelector.verticalCenter diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index f812d4245f..b4d0ab7092 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -407,6 +407,7 @@ "button_lining": [0, 0], "action_button": [15.0, 3.0], + "action_button_icon": [1.0, 1.0], "action_button_radius": [0.15, 0.15], "small_button": [2, 2], From b413b4cdb69fd3f6c46f93c3797c92bd9abc53b8 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 11 Dec 2018 17:21:14 +0100 Subject: [PATCH 0823/1039] Correct a typo in typing. [CURA-6016] --- cura/Machines/Models/BaseMaterialsModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/BaseMaterialsModel.py b/cura/Machines/Models/BaseMaterialsModel.py index 3cd92bb6b4..629e5c2b48 100644 --- a/cura/Machines/Models/BaseMaterialsModel.py +++ b/cura/Machines/Models/BaseMaterialsModel.py @@ -59,7 +59,7 @@ class BaseMaterialsModel(ListModel): self._extruder_stack = None self._available_materials = None # type: Optional[Dict[str, MaterialNode]] - self._favorite_ids = set() # type: Set(str) + self._favorite_ids = set() # type: Set[str] def _updateExtruderStack(self): global_stack = self._machine_manager.activeMachine From 0b6841e5d9ba0af192866c1dbe0cec21c14debe1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 09:19:43 +0100 Subject: [PATCH 0824/1039] Revert "Use the capitalized version of the buildplate name" This reverts commit 11d8831d7a9a15e3e916d5d9762bfe1f755042e5. Contributes to CURA-6021. --- cura/PrinterOutput/ConfigurationModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutput/ConfigurationModel.py b/cura/PrinterOutput/ConfigurationModel.py index 6f55aa3b1f..89e609c913 100644 --- a/cura/PrinterOutput/ConfigurationModel.py +++ b/cura/PrinterOutput/ConfigurationModel.py @@ -44,7 +44,7 @@ class ConfigurationModel(QObject): @pyqtProperty(str, fset = setBuildplateConfiguration, notify = configurationChanged) def buildplateConfiguration(self) -> str: - return self._buildplate_configuration.capitalize() + return self._buildplate_configuration ## This method is intended to indicate whether the configuration is valid or not. # The method checks if the mandatory fields are or not set From 4d57aa8ea42096dde3ef1db3f370e672ebd89b2b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 12 Dec 2018 09:28:15 +0100 Subject: [PATCH 0825/1039] Simplify the rating widget CURA-6013 --- plugins/Toolbox/resources/qml/RatingWidget.qml | 10 ---------- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 2 -- 2 files changed, 12 deletions(-) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index fbe782b2e2..355b99c0c4 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -10,8 +10,6 @@ Item property int indexHovered: -1 property string packageId: "" - property int numRatings: 0 - property int userRating: 0 signal rated(int rating) @@ -88,14 +86,6 @@ Item onClicked: rated(index + 1) // Notify anyone who cares about this. } } - Label - { - text: "(" + numRatings + ")" - verticalAlignment: Text.AlignVCenter - height: parent.height - color: "#5a5a5a" - font: UM.Theme.getFont("small") - } } } } \ No newline at end of file diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 4adbaa2435..52af1d6ddf 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -135,8 +135,6 @@ Item id: rating visible: details.type == "plugin" packageId: details.id - rating: details.average_rating - numRatings: details.num_ratings userRating: details.user_rating enabled: toolbox.isInstalled(details.id) && Cura.API.account.isLoggedIn From a6dbba709088c93b110abd874b82785eb612f4f7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 12 Dec 2018 09:41:35 +0100 Subject: [PATCH 0826/1039] Minor UI tweaks CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 52af1d6ddf..1d977883f9 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -26,7 +26,7 @@ Item right: parent.right rightMargin: UM.Theme.getSize("wide_margin").width } - height: UM.Theme.getSize("toolbox_detail_header").height + height: childrenRect.height + 3 * UM.Theme.getSize("default_margin").width Rectangle { id: thumbnail @@ -62,8 +62,7 @@ Item text: details === null ? "" : (details.name || "") font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") - wrapMode: Text.WordWrap - width: properties.width + values.width + width: contentWidth height: contentHeight } From 95f70a75d8629663dd42b2fdac148407cc993ed9 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 12 Dec 2018 10:39:56 +0100 Subject: [PATCH 0827/1039] Ensure that package name has margins in showcase tile CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index 3e09654173..ca0226b39d 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml @@ -44,7 +44,7 @@ Rectangle verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter height: UM.Theme.getSize("toolbox_heading_label").height - width: parent.width + width: parent.width - UM.Theme.getSize("default_margin").width wrapMode: Text.WordWrap font: UM.Theme.getFont("medium_bold") } From 31331e36d2fa6468973f1f1d26ae7df3d8c0d6a9 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 09:19:43 +0100 Subject: [PATCH 0828/1039] Revert "Use the capitalized version of the buildplate name" This reverts commit 11d8831d7a9a15e3e916d5d9762bfe1f755042e5. Contributes to CURA-6021. --- cura/PrinterOutput/ConfigurationModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutput/ConfigurationModel.py b/cura/PrinterOutput/ConfigurationModel.py index 6f55aa3b1f..89e609c913 100644 --- a/cura/PrinterOutput/ConfigurationModel.py +++ b/cura/PrinterOutput/ConfigurationModel.py @@ -44,7 +44,7 @@ class ConfigurationModel(QObject): @pyqtProperty(str, fset = setBuildplateConfiguration, notify = configurationChanged) def buildplateConfiguration(self) -> str: - return self._buildplate_configuration.capitalize() + return self._buildplate_configuration ## This method is intended to indicate whether the configuration is valid or not. # The method checks if the mandatory fields are or not set From f302a76d3aedf38e051e692f59246d406a1295d9 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 12 Dec 2018 10:47:15 +0100 Subject: [PATCH 0829/1039] Fix typing issue in Toolbox CURA-6006 --- plugins/Toolbox/src/Toolbox.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index ab975548ce..d957b7aae1 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -670,7 +670,8 @@ class Toolbox(QObject, Extension): self.setDownloadProgress(new_progress) if bytes_sent == bytes_total: self.setIsDownloading(False) - cast(QNetworkReply, self._download_reply).downloadProgress.disconnect(self._onDownloadProgress) + self._download_reply = cast(QNetworkReply, self._download_reply) + self._download_reply.downloadProgress.disconnect(self._onDownloadProgress) # Check if the download was sucessfull if self._download_reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) != 200: From 5fd0f2b5f69e8f0597b4550a828a88da16eb8621 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 12 Dec 2018 11:09:58 +0100 Subject: [PATCH 0830/1039] Add tooltip to rating if the rating is disabled This makes it clearer what the user needs to do in order to rate (install package or login) CURA-6013 --- plugins/Toolbox/resources/qml/RatingWidget.qml | 16 ++++++++++------ .../Toolbox/resources/qml/ToolboxDetailPage.qml | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index 355b99c0c4..9d9eb8bca8 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -1,7 +1,7 @@ -import QtQuick 2.2 -import QtQuick.Controls 2.0 +import QtQuick 2.7 +import QtQuick.Controls 2.1 import UM 1.0 as UM - +import Cura 1.1 as Cura Item { id: ratingWidget @@ -11,6 +11,7 @@ Item property string packageId: "" property int userRating: 0 + property bool canRate: false signal rated(int rating) @@ -20,7 +21,7 @@ Item { id: mouseArea anchors.fill: parent - hoverEnabled: ratingWidget.enabled + hoverEnabled: ratingWidget.canRate acceptedButtons: Qt.NoButton onExited: { @@ -40,12 +41,15 @@ Item hoverEnabled: true onHoveredChanged: { - if(hovered) + if(hovered && ratingWidget.canRate) { indexHovered = index } } + ToolTip.visible: control.hovered && !ratingWidget.canRate + ToolTip.text: !Cura.API.account.isLoggedIn ? catalog.i18nc("@label", "You need to login first before you can rate"): catalog.i18nc("@label", "You need to install the package before you can rate") + property bool isStarFilled: { // If the entire widget is hovered, override the actual rating. @@ -72,7 +76,7 @@ Item // Unfilled stars should always have the default color. Only filled stars should change on hover color: { - if(!enabled) + if(!ratingWidget.canRate) { return "#5a5a5a" } diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 1d977883f9..d0608be4de 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -135,7 +135,7 @@ Item visible: details.type == "plugin" packageId: details.id userRating: details.user_rating - enabled: toolbox.isInstalled(details.id) && Cura.API.account.isLoggedIn + canRate: toolbox.isInstalled(details.id) && Cura.API.account.isLoggedIn onRated: { From a6a16a682dd6995c7b84e597710765c3e21cd0a1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 11:17:44 +0100 Subject: [PATCH 0831/1039] Fix some alignments Also modify a bit the code in the ConfigurationItem, trying to get rid of a binding loop, but I couldn't (so weird) Contributes to CURA-5876. --- .../ConfigurationMenu/AutoConfiguration.qml | 1 + .../ConfigurationMenu/ConfigurationItem.qml | 167 +++++++++--------- .../ConfigurationListView.qml | 3 +- .../ConfigurationMenu/ConfigurationMenu.qml | 25 +-- resources/themes/cura-light/theme.json | 1 + 5 files changed, 98 insertions(+), 99 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index 2e8be05fef..a3ed5040b7 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -31,6 +31,7 @@ Item ConfigurationListView { anchors.top: header.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").width width: parent.width outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 9dae075b48..a73cd3b46c 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -14,120 +14,115 @@ Button property var configuration: null hoverEnabled: true - height: background.height - background: Rectangle { - height: childrenRect.height color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") border.color: parent.checked ? UM.Theme.getColor("primary") : UM.Theme.getColor("lining") border.width: UM.Theme.getSize("default_lining").width radius: UM.Theme.getSize("default_radius").width + } - Column + contentItem: Column + { + id: contentColumn + width: parent.width + padding: UM.Theme.getSize("default_margin").width + spacing: UM.Theme.getSize("narrow_margin").height + + Row { - id: contentColumn - width: parent.width - padding: UM.Theme.getSize("wide_margin").width - spacing: UM.Theme.getSize("narrow_margin").height + id: extruderRow - Row + anchors { - id: extruderRow - - anchors - { - left: parent.left - leftMargin: parent.padding - right: parent.right - rightMargin: parent.padding - } - height: childrenRect.height - - spacing: UM.Theme.getSize("default_margin").width - - Repeater - { - id: repeater - height: childrenRect.height - model: configuration.extruderConfigurations - delegate: PrintCoreConfiguration - { - width: Math.round(parent.width / 2) - printCoreConfiguration: modelData - } - } + left: parent.left + leftMargin: 2 * parent.padding + right: parent.right + rightMargin: 2 * parent.padding } - //Buildplate row separator - Rectangle + spacing: UM.Theme.getSize("default_margin").width + + Repeater { - id: separator - - visible: buildplateInformation.visible - anchors + id: repeater + model: configuration.extruderConfigurations + delegate: PrintCoreConfiguration { - left: parent.left - leftMargin: parent.padding - right: parent.right - rightMargin: parent.padding - } - height: visible ? Math.round(UM.Theme.getSize("default_lining").height / 2) : 0 - color: UM.Theme.getColor("lining") - } - - Item - { - id: buildplateInformation - - anchors - { - left: parent.left - leftMargin: parent.padding - right: parent.right - rightMargin: parent.padding - } - height: childrenRect.height - visible: configuration.buildplateConfiguration != "" - - UM.RecolorImage - { - id: buildplateIcon - anchors.left: parent.left - width: UM.Theme.getSize("main_window_header_button_icon").width - height: UM.Theme.getSize("main_window_header_button_icon").height - source: UM.Theme.getIcon("buildplate") - color: UM.Theme.getColor("text") - } - - Label - { - id: buildplateLabel - anchors.left: buildplateIcon.right - anchors.verticalCenter: buildplateIcon.verticalCenter - anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").height / 2) - text: configuration.buildplateConfiguration - renderType: Text.NativeRendering - color: UM.Theme.getColor("text") + width: Math.round(parent.width / 2) + printCoreConfiguration: modelData } } } - Connections + //Buildplate row separator + Rectangle { - target: Cura.MachineManager - onCurrentConfigurationChanged: + id: separator + + visible: buildplateInformation.visible + anchors { - configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) + left: parent.left + leftMargin: 2 * parent.padding + right: parent.right + rightMargin: 2 * parent.padding } + height: visible ? Math.round(UM.Theme.getSize("default_lining").height / 2) : 0 + color: UM.Theme.getColor("lining") } - Component.onCompleted: + Item + { + id: buildplateInformation + + anchors + { + left: parent.left + leftMargin: 2 * parent.padding + right: parent.right + rightMargin: 2 * parent.padding + } + height: childrenRect.height + visible: configuration.buildplateConfiguration != "" + + UM.RecolorImage + { + id: buildplateIcon + anchors.left: parent.left + width: UM.Theme.getSize("main_window_header_button_icon").width + height: UM.Theme.getSize("main_window_header_button_icon").height + source: UM.Theme.getIcon("buildplate") + color: UM.Theme.getColor("text") + } + + Label + { + id: buildplateLabel + anchors.left: buildplateIcon.right + anchors.verticalCenter: buildplateIcon.verticalCenter + anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").height / 2) + text: configuration.buildplateConfiguration + renderType: Text.NativeRendering + color: UM.Theme.getColor("text") + } + } + } + + Connections + { + target: Cura.MachineManager + onCurrentConfigurationChanged: { configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) } } + Component.onCompleted: + { + configurationItem.checked = Cura.MachineManager.matchesConfiguration(configuration) + } + onClicked: { Cura.MachineManager.applyRemoteConfiguration(configuration) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 3cc0754284..d7ffa0d8ff 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -11,7 +11,7 @@ Column { id: base property var outputDevice: null - height: childrenRect.height + 2 * padding + height: childrenRect.height + padding spacing: UM.Theme.getSize("narrow_margin").height function forceModelUpdate() @@ -57,7 +57,6 @@ Column id: configurationList spacing: UM.Theme.getSize("narrow_margin").height width: container.width - ((height > container.maximumHeight) ? container.ScrollBar.vertical.background.width : 0) //Make room for scroll bar if there is any. - contentHeight: childrenRect.height height: childrenRect.height section.property: "modelData.printerType" diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 33a317b42b..2165f001f9 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -34,6 +34,8 @@ Cura.ExpandablePopup Custom } + contentPadding: UM.Theme.getSize("default_lining").width + contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft enabled: Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariants || Cura.MachineManager.hasVariantBuildplates; //Only let it drop down if there is any configuration that you could change. headerItem: Item @@ -127,8 +129,9 @@ Cura.ExpandablePopup contentItem: Column { id: popupItem - width: base.width - 2 * UM.Theme.getSize("default_margin").width + width: UM.Theme.getSize("configuration_selector").width height: implicitHeight //Required because ExpandableComponent will try to use this to determine the size of the background of the pop-up. + padding: UM.Theme.getSize("default_margin").height spacing: UM.Theme.getSize("default_margin").height property bool is_connected: false //If current machine is connected to a printer. Only evaluated upon making popup visible. @@ -141,19 +144,19 @@ Cura.ExpandablePopup Item { - width: parent.width + width: parent.width - 2 * parent.padding height: { - var height = 0; - if(autoConfiguration.visible) + var height = 0 + if (autoConfiguration.visible) { - height += autoConfiguration.height; + height += autoConfiguration.height } - if(customConfiguration.visible) + if (customConfiguration.visible) { - height += customConfiguration.height; + height += customConfiguration.height } - return height; + return height } AutoConfiguration { @@ -172,9 +175,9 @@ Cura.ExpandablePopup { id: separator visible: buttonBar.visible - x: -contentPadding + x: -parent.padding - width: base.width + width: parent.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") @@ -186,7 +189,7 @@ Cura.ExpandablePopup id: buttonBar visible: popupItem.is_connected //Switching only makes sense if the "auto" part is possible. - width: parent.width + width: parent.width - 2 * parent.padding height: childrenRect.height Cura.SecondaryButton diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index b4d0ab7092..201703c6be 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -356,6 +356,7 @@ "expandable_component_content_header": [0.0, 3.0], + "configuration_selector": [38.0, 4.0], "configuration_selector_mode_tabs": [0.0, 3.0], "action_panel_widget": [25.0, 0.0], From b1244b6bde57b158dc0629dcd66f32644582487e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 11:22:35 +0100 Subject: [PATCH 0832/1039] Remove file MonitorSidebar It's not used anymore. Contributes to CURA-5876. --- resources/qml/MonitorSidebar.qml | 212 ------------------------------- 1 file changed, 212 deletions(-) delete mode 100644 resources/qml/MonitorSidebar.qml diff --git a/resources/qml/MonitorSidebar.qml b/resources/qml/MonitorSidebar.qml deleted file mode 100644 index 669bdbfb8f..0000000000 --- a/resources/qml/MonitorSidebar.qml +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright (c) 2018 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. - -import QtQuick 2.10 -import QtQuick.Controls 2.0 -import QtQuick.Layouts 1.3 - -import UM 1.2 as UM -import Cura 1.0 as Cura - -import "Menus" -import "Menus/ConfigurationMenu" - - -Rectangle -{ - id: base - - property int currentModeIndex - property bool hideSettings: PrintInformation.preSliced - property bool hideView: Cura.MachineManager.activeMachineName == "" - - // Is there an output device for this printer? - property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" - property bool printerConnected: Cura.MachineManager.printerConnected - property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands - property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - - property variant printDuration: PrintInformation.currentPrintTime - property variant printMaterialLengths: PrintInformation.materialLengths - property variant printMaterialWeights: PrintInformation.materialWeights - property variant printMaterialCosts: PrintInformation.materialCosts - property variant printMaterialNames: PrintInformation.materialNames - - color: UM.Theme.getColor("main_background") - UM.I18nCatalog { id: catalog; name: "cura"} - - Timer { - id: tooltipDelayTimer - interval: 500 - repeat: false - property var item - property string text - - onTriggered: - { - base.showTooltip(base, {x: 0, y: item.y}, text); - } - } - - function showTooltip(item, position, text) - { - tooltip.text = text; - position = item.mapToItem(base, position.x - UM.Theme.getSize("default_arrow").width, position.y); - tooltip.show(position); - } - - function hideTooltip() - { - tooltip.hide(); - } - - function strPadLeft(string, pad, length) { - return (new Array(length + 1).join(pad) + string).slice(-length); - } - - function getPrettyTime(time) - { - var hours = Math.floor(time / 3600) - time -= hours * 3600 - var minutes = Math.floor(time / 60); - time -= minutes * 60 - var seconds = Math.floor(time); - - var finalTime = strPadLeft(hours, "0", 2) + ":" + strPadLeft(minutes, "0", 2) + ":" + strPadLeft(seconds, "0", 2); - return finalTime; - } - - MouseArea - { - anchors.fill: parent - acceptedButtons: Qt.AllButtons - - onWheel: - { - wheel.accepted = true; - } - } - - MachineSelector - { - id: machineSelection - width: base.width - configSelection.width - separator.width - height: UM.Theme.getSize("stage_menu").height - anchors.top: base.top - anchors.left: parent.left - } - - Rectangle - { - id: separator - visible: configSelection.visible - width: visible ? Math.round(UM.Theme.getSize("thick_lining").height / 2) : 0 - height: UM.Theme.getSize("stage_menu").height - color: UM.Theme.getColor("thick_lining") - anchors.left: machineSelection.right - } - - CustomConfigurationSelector - { - id: configSelection - visible: isNetworkPrinter && printerConnected - width: visible ? Math.round(base.width * 0.15) : 0 - height: UM.Theme.getSize("stage_menu").height - anchors.top: base.top - anchors.right: parent.right - } - - Loader - { - id: controlItem - anchors.bottom: footerSeparator.top - anchors.top: machineSelection.bottom - anchors.left: base.left - anchors.right: base.right - sourceComponent: - { - if(connectedPrinter != null) - { - if(connectedPrinter.controlItem != null) - { - return connectedPrinter.controlItem - } - } - return null - } - } - - Loader - { - anchors.bottom: footerSeparator.top - anchors.top: machineSelection.bottom - anchors.left: base.left - anchors.right: base.right - source: - { - if(controlItem.sourceComponent == null) - { - return "PrintMonitor.qml" - } - else - { - return "" - } - } - } - - Rectangle - { - id: footerSeparator - width: parent.width - height: UM.Theme.getSize("wide_lining").height - color: UM.Theme.getColor("wide_lining") - anchors.bottom: monitorButton.top - anchors.bottomMargin: UM.Theme.getSize("thick_margin").height - } - - // MonitorButton is actually the bottom footer panel. - MonitorButton - { - id: monitorButton - implicitWidth: base.width - anchors.bottom: parent.bottom - } - - PrintSetupTooltip - { - id: tooltip - } - - UM.SettingPropertyProvider - { - id: machineExtruderCount - - containerStack: Cura.MachineManager.activeMachine - key: "machine_extruder_count" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - UM.SettingPropertyProvider - { - id: machineHeatedBed - - containerStack: Cura.MachineManager.activeMachine - key: "machine_heated_bed" - watchedProperties: [ "value" ] - storeIndex: 0 - } - - // Make the ConfigurationSelector react when the global container changes, otherwise if Cura is not connected to the printer, - // switching printers make no reaction - Connections - { - target: Cura.MachineManager - onGlobalContainerChanged: - { - base.isNetworkPrinter = Cura.MachineManager.activeMachineNetworkKey != "" - base.printerConnected = Cura.MachineManager.printerOutputDevices.length != 0 - } - } -} From dbf91fca7f42e34111134d5e794267c1f917ee09 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 12 Dec 2018 11:40:51 +0100 Subject: [PATCH 0833/1039] Re-added hover on showcase tiles CURA-6013 --- .../qml/ToolboxDownloadsShowcaseTile.qml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index ca0226b39d..73d3acc76f 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml @@ -51,12 +51,11 @@ Rectangle UM.RecolorImage { width: (parent.width * 0.20) | 0 - height: (parent.height * 0.20) | 0 + height: width anchors { - bottom: parent.bottom + bottom: bottomBorder.top right: parent.right - bottomMargin: UM.Theme.getSize("default_lining").width } visible: installedPackages != 0 color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border") @@ -70,10 +69,21 @@ Rectangle anchors.bottomMargin: UM.Theme.getSize("narrow_margin").height anchors.horizontalCenter: parent.horizontalCenter } + Rectangle + { + id: bottomBorder + color: UM.Theme.getColor("primary") + anchors.bottom: parent.bottom + width: parent.width + height: UM.Theme.getSize("toolbox_header_highlight").height + } MouseArea { anchors.fill: parent + hoverEnabled: true + onEntered: tileBase.border.color = UM.Theme.getColor("primary") + onExited: tileBase.border.color = UM.Theme.getColor("lining") onClicked: { base.selection = model From 901c19e270e3c3258e734b14c1f2433135f99695 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 12 Dec 2018 11:52:04 +0100 Subject: [PATCH 0834/1039] Prevent QML warning CURA-6013 --- plugins/Toolbox/resources/qml/SmallRatingWidget.qml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml index 0b93131cfd..439a7baec0 100644 --- a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml +++ b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml @@ -3,8 +3,6 @@ import QtQuick.Controls 1.4 import UM 1.1 as UM import Cura 1.1 as Cura - - Row { id: rating @@ -24,7 +22,7 @@ Row Label { id: numRatingsLabel - text: model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")" + text: model.average_rating != undefined ? model.average_rating.toFixed(1) + " (" + model.num_ratings + " " + catalog.i18nc("@label", "ratings") + ")": "" verticalAlignment: Text.AlignVCenter height: starIcon.height width: contentWidth From 4ba448077e59791e655a497196ef65aaaae5e3c1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 13:33:46 +0100 Subject: [PATCH 0835/1039] Add an empty state, when there are no configurations, showing a label indicating that the list is empty Contributes to CURA-5876. --- .../ConfigurationListView.qml | 18 ++++++++++++++---- .../ConfigurationMenu/ConfigurationMenu.qml | 12 ++++++------ resources/themes/cura-light/theme.json | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index d7ffa0d8ff..7943bba81d 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -7,16 +7,15 @@ import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura -Column +Item { id: base property var outputDevice: null - height: childrenRect.height + padding - spacing: UM.Theme.getSize("narrow_margin").height + height: childrenRect.height function forceModelUpdate() { - // FIXME For now the model should be removed and then created again, otherwise changes in the printer don't automatically update the UI + // FIXME For now the model has to be removed and then created again, otherwise changes in the printer don't automatically update the UI configurationList.model = [] if (outputDevice) { @@ -24,6 +23,17 @@ Column } } + // This component will appear when there is no configurations (e.g. when loosing connection) + Label + { + width: parent.width + visible: configurationList.model.length == 0 + text: "Configuration list empty. Probably because of lost connection" // TODO change this to a proper component + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + renderType: Text.NativeRendering + } + ScrollView { id: container diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 2165f001f9..e04c04f83b 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -35,7 +35,6 @@ Cura.ExpandablePopup } contentPadding: UM.Theme.getSize("default_lining").width - contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft enabled: Cura.MachineManager.hasMaterials || Cura.MachineManager.hasVariants || Cura.MachineManager.hasVariantBuildplates; //Only let it drop down if there is any configuration that you could change. headerItem: Item @@ -130,18 +129,19 @@ Cura.ExpandablePopup { id: popupItem width: UM.Theme.getSize("configuration_selector").width - height: implicitHeight //Required because ExpandableComponent will try to use this to determine the size of the background of the pop-up. + height: implicitHeight // Required because ExpandableComponent will try to use this to determine the size of the background of the pop-up. padding: UM.Theme.getSize("default_margin").height spacing: UM.Theme.getSize("default_margin").height - property bool is_connected: false //If current machine is connected to a printer. Only evaluated upon making popup visible. + property bool is_connected: false // If current machine is connected to a printer. Only evaluated upon making popup visible. + property int configuration_method: ConfigurationMenu.ConfigurationMethod.Custom // Type of configuration being used. Only evaluated upon making popup visible. + onVisibleChanged: { - is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected //Re-evaluate. + is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected // Re-evaluate. + configuration_method = is_connected ? ConfigurationMenu.ConfigurationMethod.Auto : ConfigurationMenu.ConfigurationMethod.Custom // Auto if connected to a printer at start-up, or Custom if not. } - property int configuration_method: is_connected ? ConfigurationMenu.ConfigurationMethod.Auto : ConfigurationMenu.ConfigurationMethod.Custom //Auto if connected to a printer at start-up, or Custom if not. - Item { width: parent.width - 2 * parent.padding diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 201703c6be..413d547d5d 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -356,7 +356,7 @@ "expandable_component_content_header": [0.0, 3.0], - "configuration_selector": [38.0, 4.0], + "configuration_selector": [35.0, 4.0], "configuration_selector_mode_tabs": [0.0, 3.0], "action_panel_widget": [25.0, 0.0], From 1d3da3244f593a978693e9bb8030bc01177032bb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 14:09:15 +0100 Subject: [PATCH 0836/1039] Remember the previous selected method in the configuration The current behavior now is to open the configuration panel in the previous state, in case it was manually selected. That means that after selecting a printer, the manual state is reset so it will open the auto configuration if it is a connected printer. It will open the custom state in case it's not connected or the printer has no connection. Contributes to CURA-5876. --- .../ConfigurationMenu/ConfigurationMenu.qml | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index e04c04f83b..6aea5b9009 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -135,11 +135,15 @@ Cura.ExpandablePopup property bool is_connected: false // If current machine is connected to a printer. Only evaluated upon making popup visible. property int configuration_method: ConfigurationMenu.ConfigurationMethod.Custom // Type of configuration being used. Only evaluated upon making popup visible. + property int manual_selected_method: -1 // It stores the configuration method selected by the user. By default the selected method is onVisibleChanged: { is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected // Re-evaluate. - configuration_method = is_connected ? ConfigurationMenu.ConfigurationMethod.Auto : ConfigurationMenu.ConfigurationMethod.Custom // Auto if connected to a printer at start-up, or Custom if not. + + // If the printer is not connected, we switch always to the custom mode. If is connected instead, the auto mode + // or the previous state is selected + configuration_method = is_connected ? (manual_selected_method == -1 ? ConfigurationMenu.ConfigurationMethod.Auto : manual_selected_method) : ConfigurationMenu.ConfigurationMethod.Custom } Item @@ -158,6 +162,7 @@ Cura.ExpandablePopup } return height } + AutoConfiguration { id: autoConfiguration @@ -203,7 +208,11 @@ Cura.ExpandablePopup iconSource: UM.Theme.getIcon("arrow_right") isIconOnRightSide: true - onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.Custom + onClicked: + { + popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.Custom + popupItem.manual_selected_method = popupItem.configuration_method + } } Cura.SecondaryButton @@ -214,8 +223,18 @@ Cura.ExpandablePopup iconSource: UM.Theme.getIcon("arrow_left") - onClicked: popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.Auto + onClicked: + { + popupItem.configuration_method = ConfigurationMenu.ConfigurationMethod.Auto + popupItem.manual_selected_method = popupItem.configuration_method + } } } } + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: popupItem.manual_selected_method = -1 // When switching printers, reset the value of the manual selected method + } } From 17173aba0637b1a2ea22692ff3935801bb62c1a2 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 17:04:17 +0100 Subject: [PATCH 0837/1039] Add a component to show when no configurations are available because lack of connection. Contributes to CURA-5876. --- .../qml/ActionPanel/OutputProcessWidget.qml | 2 - .../qml/ActionPanel/SliceProcessWidget.qml | 2 +- resources/qml/IconWithText.qml | 3 +- .../ConfigurationListView.qml | 37 ++++++++++++--- .../qml/PrinterSelector/MachineSelector.qml | 47 +++++-------------- resources/themes/cura-light/icons/warning.svg | 13 +++-- resources/themes/cura-light/theme.json | 2 +- 7 files changed, 56 insertions(+), 50 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 3f53abf28f..5ac777e2ad 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -119,8 +119,6 @@ Column } height: UM.Theme.getSize("action_button").height - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Preview") onClicked: UM.Controller.setActiveStage("PreviewStage") diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 18caeafb40..3756d0d452 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -60,7 +60,7 @@ Column text: catalog.i18nc("@label:PrintjobStatus", "Unable to Slice") source: UM.Theme.getIcon("warning") - color: UM.Theme.getColor("warning") + iconColor: UM.Theme.getColor("warning") } // Progress bar, only visible when the backend is in the process of slice the printjob diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index 5530740040..9fd527b27e 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -15,6 +15,7 @@ Item { property alias source: icon.source property alias iconSize: icon.width + property alias iconColor: icon.color property alias color: label.color property alias text: label.text property alias font: label.font @@ -37,7 +38,7 @@ Item { id: icon width: UM.Theme.getSize("section_icon").width - height: UM.Theme.getSize("section_icon").height + height: width color: label.color diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 7943bba81d..3ddbb49fe8 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -23,15 +23,40 @@ Item } } - // This component will appear when there is no configurations (e.g. when loosing connection) - Label + // This component will appear when there is no configurations (e.g. when losing connection) + Item { width: parent.width visible: configurationList.model.length == 0 - text: "Configuration list empty. Probably because of lost connection" // TODO change this to a proper component - horizontalAlignment: Text.AlignHCenter - wrapMode: Text.WordWrap - renderType: Text.NativeRendering + height: label.height + 2 * UM.Theme.getSize("default_margin").height + anchors.top: parent.top + anchors.topMargin: UM.Theme.getSize("default_margin").height + + UM.RecolorImage + { + id: icon + + anchors.left: parent.left + anchors.verticalCenter: label.verticalCenter + + source: UM.Theme.getIcon("warning") + color: UM.Theme.getColor("warning") + width: UM.Theme.getSize("section_icon").width + height: width + } + + Label + { + id: label + anchors.left: icon.right + anchors.right: parent.right + anchors.leftMargin: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@label", "The configurations are not available because the printer is disconnected.") + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("default") + renderType: Text.NativeRendering + wrapMode: Text.WordWrap + } } ScrollView diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 7cda4f1d2e..db9c38b9f1 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -24,49 +24,24 @@ Cura.ExpandablePopup name: "cura" } - headerItem: Item + headerItem: Cura.IconWithText { - implicitHeight: icon.height - - UM.RecolorImage + text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName + source: { - id: icon - - anchors.left: parent.left - anchors.verticalCenter: parent.verticalCenter - - source: + if (isNetworkPrinter) { - if (isNetworkPrinter) + if (machineSelector.outputDevice != null && machineSelector.outputDevice.clusterSize > 1) { - if (machineSelector.outputDevice != null && machineSelector.outputDevice.clusterSize > 1) - { - return UM.Theme.getIcon("printer_group") - } - return UM.Theme.getIcon("printer_single") + return UM.Theme.getIcon("printer_group") } - return "" + return UM.Theme.getIcon("printer_single") } - width: UM.Theme.getSize("machine_selector_icon").width - height: width - - color: UM.Theme.getColor("machine_selector_printer_icon") - visible: source != "" - } - - Label - { - id: label - anchors.left: icon.visible ? icon.right : parent.left - anchors.right: parent.right - anchors.leftMargin: UM.Theme.getSize("thin_margin").width - anchors.verticalCenter: icon.verticalCenter - text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName - elide: Text.ElideRight - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("medium") - renderType: Text.NativeRendering + return "" } + font: UM.Theme.getFont("medium") + iconColor: UM.Theme.getColor("machine_selector_printer_icon") + iconSize: UM.Theme.getSize("machine_selector_icon").width UM.RecolorImage { diff --git a/resources/themes/cura-light/icons/warning.svg b/resources/themes/cura-light/icons/warning.svg index ae8a7a6430..14b7d797d0 100644 --- a/resources/themes/cura-light/icons/warning.svg +++ b/resources/themes/cura-light/icons/warning.svg @@ -1,4 +1,11 @@ - - - + + + + Icon/warning-s + Created with Sketch. + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 413d547d5d..1a9dec5deb 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -101,7 +101,7 @@ "printer_type_label_background": [228, 228, 242, 255], - "text": [0, 0, 0, 255], + "text": [25, 25, 25, 255], "text_detail": [174, 174, 174, 128], "text_link": [50, 130, 255, 255], "text_inactive": [174, 174, 174, 255], From a1d7fa893da138f241fd1cc74895ec8e5d928eb6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 17:26:13 +0100 Subject: [PATCH 0838/1039] Change the style for the toolbuttons that appear in the popup panel of some tools Contributes to CURA-6024 --- resources/themes/cura-light/styles.qml | 94 ++++++-------------------- resources/themes/cura-light/theme.json | 2 - 2 files changed, 20 insertions(+), 76 deletions(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index bcc754f4ca..c940052668 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -177,8 +177,8 @@ QtObject { background: Item { - implicitWidth: Theme.getSize("button").width; - implicitHeight: Theme.getSize("button").height; + implicitWidth: Theme.getSize("button").width + implicitHeight: Theme.getSize("button").height UM.PointingRectangle { @@ -205,20 +205,20 @@ QtObject id: button_tip anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter; + anchors.verticalCenter: parent.verticalCenter text: control.text; - font: Theme.getFont("button_tooltip"); - color: Theme.getColor("tooltip_text"); + font: Theme.getFont("button_tooltip") + color: Theme.getColor("tooltip_text") } } Rectangle { - id: buttonFace; + id: buttonFace - anchors.fill: parent; - property bool down: control.pressed || (control.checkable && control.checked); + anchors.fill: parent + property bool down: control.pressed || (control.checkable && control.checked) color: { @@ -228,58 +228,22 @@ QtObject } else if(control.checkable && control.checked && control.hovered) { - return Theme.getColor("button_active_hover"); + return Theme.getColor("toolbar_button_active_hover") } else if(control.pressed || (control.checkable && control.checked)) { - return Theme.getColor("button_active"); + return Theme.getColor("toolbar_button_active") } else if(control.hovered) { - return Theme.getColor("button_hover"); - } - else - { - return Theme.getColor("button"); + return Theme.getColor("toolbar_button_hover") } + return Theme.getColor("toolbar_background") } Behavior on color { ColorAnimation { duration: 50; } } - border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? 2 * screenScaleFactor : 0 - border.color: Theme.getColor("tool_button_border") - - UM.RecolorImage - { - id: tool_button_arrow - anchors.right: parent.right; - anchors.rightMargin: Theme.getSize("button").width - Math.round(Theme.getSize("button_icon").width / 4) - anchors.bottom: parent.bottom; - anchors.bottomMargin: Theme.getSize("button").height - Math.round(Theme.getSize("button_icon").height / 4) - width: Theme.getSize("standard_arrow").width - height: Theme.getSize("standard_arrow").height - sourceSize.height: width - visible: control.menu != null; - color: - { - if(control.checkable && control.checked && control.hovered) - { - return Theme.getColor("button_text_active_hover"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("button_text_active"); - } - else if(control.hovered) - { - return Theme.getColor("button_text_hover"); - } - else - { - return Theme.getColor("button_text"); - } - } - source: Theme.getIcon("arrow_bottom") - } + border.width: (control.hasOwnProperty("needBorder") && control.needBorder) ? Theme.getSize("default_lining").width : 0 + border.color: Theme.getColor("lining") } } @@ -287,30 +251,12 @@ QtObject { UM.RecolorImage { - anchors.centerIn: parent; - opacity: !control.enabled ? 0.2 : 1.0 - source: control.iconSource; - width: Theme.getSize("button_icon").width; - height: Theme.getSize("button_icon").height; - color: - { - if(control.checkable && control.checked && control.hovered) - { - return Theme.getColor("button_text_active_hover"); - } - else if(control.pressed || (control.checkable && control.checked)) - { - return Theme.getColor("button_text_active"); - } - else if(control.hovered) - { - return Theme.getColor("button_text_hover"); - } - else - { - return Theme.getColor("button_text"); - } - } + anchors.centerIn: parent + opacity: control.enabled ? 1.0 : 0.2 + source: control.iconSource + width: Theme.getSize("button_icon").width + height: Theme.getSize("button_icon").height + color: Theme.getColor("toolbar_button_text") sourceSize: Theme.getSize("button_icon") } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 3dc216ad70..59596e9a3f 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -243,8 +243,6 @@ "tooltip": [68, 192, 255, 255], "tooltip_text": [255, 255, 255, 255], - "tool_button_border": [255, 255, 255, 0], - "message_background": [255, 255, 255, 255], "message_shadow": [0, 0, 0, 120], "message_border": [192, 193, 194, 255], From 77ede1ae6bbd6c1a53b6682640fb754f186eee42 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 12 Dec 2018 17:50:21 +0100 Subject: [PATCH 0839/1039] Unify the fonts to only have 8 instead of 13. Contributes to CURA-6025. --- .../PostProcessingPlugin.qml | 4 +- .../resources/qml/ToolboxAuthorPage.qml | 2 +- .../resources/qml/ToolboxDetailPage.qml | 2 +- .../resources/qml/DiscoverUM3Action.qml | 2 +- .../resources/qml/MonitorPrinterCard.qml | 6 +-- .../resources/qml/MonitorStage.qml | 2 +- resources/qml/Account/AccountDetails.qml | 2 +- resources/qml/ActionButton.qml | 2 +- resources/qml/Dialogs/AboutDialog.qml | 2 +- resources/qml/ExtruderIcon.qml | 2 +- .../ConfigurationMenu/AutoConfiguration.qml | 2 +- .../ConfigurationMenu/CustomConfiguration.qml | 2 +- resources/qml/MonitorButton.qml | 4 +- resources/qml/Preferences/MachinesPage.qml | 2 +- .../Materials/MaterialsDetailsPanel.qml | 2 +- resources/qml/Preferences/ProfilesPage.qml | 2 +- resources/qml/PrinterOutput/ExtruderBox.qml | 4 +- resources/qml/PrinterOutput/HeatedBedBox.qml | 4 +- .../qml/PrinterOutput/MonitorSection.qml | 2 +- .../qml/PrinterOutput/OutputDeviceHeader.qml | 2 +- .../PrinterSelector/MachineSelectorButton.qml | 2 +- resources/qml/Settings/SettingCategory.qml | 2 +- resources/qml/ViewsSelector.qml | 2 +- resources/themes/cura-light/styles.qml | 6 +-- resources/themes/cura-light/theme.json | 38 +++++-------------- 25 files changed, 41 insertions(+), 61 deletions(-) diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index b962f4d53b..580bb8c878 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -61,7 +61,7 @@ UM.Dialog anchors.leftMargin: base.textMargin anchors.right: parent.right anchors.rightMargin: base.textMargin - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") elide: Text.ElideRight } ListView @@ -276,7 +276,7 @@ UM.Dialog anchors.rightMargin: base.textMargin elide: Text.ElideRight height: 20 * screenScaleFactor - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("text") } diff --git a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml b/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml index 7b026566c3..b653f1a73b 100644 --- a/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxAuthorPage.qml @@ -55,7 +55,7 @@ Item bottomMargin: UM.Theme.getSize("default_margin").height } text: details.name || "" - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") wrapMode: Text.WordWrap width: parent.width height: UM.Theme.getSize("toolbox_property_label").height diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 7983be8aef..fa91fa4884 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -60,7 +60,7 @@ Item bottomMargin: UM.Theme.getSize("default_margin").height } text: details === null ? "" : (details.name || "") - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("text") wrapMode: Text.WordWrap width: parent.width diff --git a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml index e5f668c70d..65fe859772 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml @@ -223,7 +223,7 @@ Cura.MachineAction width: parent.width wrapMode: Text.WordWrap text: base.selectedDevice ? base.selectedDevice.name : "" - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") elide: Text.ElideRight renderType: Text.NativeRendering } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 1676c51edf..67a8af727a 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -76,7 +76,7 @@ Item text: printer && printer.name ? printer.name : "" color: "#414054" // TODO: Theme! elide: Text.ElideRight - font: UM.Theme.getFont("large") // 16pt, bold + font: UM.Theme.getFont("large_bold") // 16pt, bold width: parent.width // FIXED-LINE-HEIGHT: @@ -178,7 +178,7 @@ Item verticalCenter: parent.verticalCenter } color: "#414054" // TODO: Theme! - font: UM.Theme.getFont("large") // 16pt, bold + font: UM.Theme.getFont("large_bold") // 16pt, bold text: { if (printer && printer.state == "disabled") { @@ -229,7 +229,7 @@ Item id: printerJobNameLabel color: printer.activePrintJob && printer.activePrintJob.isActive ? "#414054" : "#babac1" // TODO: Theme! elide: Text.ElideRight - font: UM.Theme.getFont("large") // 16pt, bold + font: UM.Theme.getFont("large_bold") // 16pt, bold text: base.printer.activePrintJob ? base.printer.activePrintJob.name : "Untitled" // TODO: I18N width: parent.width diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 4d59e0eb6b..0008295301 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -97,7 +97,7 @@ Component top: parent.top } color: UM.Theme.getColor("text") - font: UM.Theme.getFont("large_nonbold") + font: UM.Theme.getFont("large") text: catalog.i18nc("@label", "Queued") } diff --git a/resources/qml/Account/AccountDetails.qml b/resources/qml/Account/AccountDetails.qml index bfb23930c6..45f822e41f 100644 --- a/resources/qml/Account/AccountDetails.qml +++ b/resources/qml/Account/AccountDetails.qml @@ -44,7 +44,7 @@ Column horizontalAlignment: Text.AlignHCenter renderType: Text.NativeRendering text: loggedIn ? profile["username"] : catalog.i18nc("@label", "Please log in or create an account to\nenjoy all features of Ultimaker Cura.") - font: loggedIn ? UM.Theme.getFont("large") : UM.Theme.getFont("default") + font: loggedIn ? UM.Theme.getFont("large_bold") : UM.Theme.getFont("default") color: UM.Theme.getColor("text") } diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 7177120f35..c3d39e8251 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -62,7 +62,7 @@ Button id: buttonText text: button.text color: button.enabled ? (button.hovered ? button.textHoverColor : button.textColor): button.textDisabledColor - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") visible: text != "" renderType: Text.NativeRendering anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index add84614e0..ac115a0e5f 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -51,7 +51,7 @@ UM.Dialog id: version text: catalog.i18nc("@label","version: %1").arg(UM.Application.version) - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("text") anchors.right : logo.right anchors.top: logo.bottom diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index bb0b347b7e..0ab9df308e 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -48,7 +48,7 @@ Item id: extruderNumberText anchors.centerIn: parent text: index + 1 - font: UM.Theme.getFont("very_small") + font: UM.Theme.getFont("small") width: contentWidth height: contentHeight visible: extruderEnabled diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index 68c56c7c4b..af229e4cc0 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -16,7 +16,7 @@ Item { id: header text: catalog.i18nc("@header", "Configurations") - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("text") height: contentHeight renderType: Text.NativeRendering diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 8429e2c093..8f38edfe5b 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -23,7 +23,7 @@ Item { id: header text: catalog.i18nc("@header", "Custom") - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("text") height: contentHeight renderType: Text.NativeRendering diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index fd7d2287c4..99640b1059 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -168,7 +168,7 @@ Item anchors.leftMargin: UM.Theme.getSize("thick_margin").width color: base.statusColor - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") text: statusText } @@ -179,7 +179,7 @@ Item anchors.right: progressBar.right color: base.statusColor - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") text: Math.round(progress) + "%" visible: showProgress } diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index bc75b9bc72..de65579cd3 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -70,7 +70,7 @@ UM.ManagementPage { id: machineName text: base.currentItem && base.currentItem.name ? base.currentItem.name : "" - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") width: parent.width elide: Text.ElideRight } diff --git a/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml b/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml index 92970f40e2..eb4a63250f 100644 --- a/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml +++ b/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml @@ -65,7 +65,7 @@ Item Label { text: materialProperties.name - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") } } diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index d7ffbb3152..70f9881b1e 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -471,7 +471,7 @@ Item Label { text: base.currentItemName - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") } } diff --git a/resources/qml/PrinterOutput/ExtruderBox.qml b/resources/qml/PrinterOutput/ExtruderBox.qml index 247bb3a27d..a19c02b0dd 100644 --- a/resources/qml/PrinterOutput/ExtruderBox.qml +++ b/resources/qml/PrinterOutput/ExtruderBox.qml @@ -80,7 +80,7 @@ Item id: extruderCurrentTemperature text: Math.round(extruderModel.hotendTemperature) + "°C" color: UM.Theme.getColor("text") - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") anchors.right: extruderTargetTemperature.left anchors.top: parent.top anchors.margins: UM.Theme.getSize("default_margin").width @@ -326,7 +326,7 @@ Item return UM.Theme.getColor("action_button_text"); } } - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") text: { if(extruderModel == null) diff --git a/resources/qml/PrinterOutput/HeatedBedBox.qml b/resources/qml/PrinterOutput/HeatedBedBox.qml index 33cf5cd1e2..77421c8aad 100644 --- a/resources/qml/PrinterOutput/HeatedBedBox.qml +++ b/resources/qml/PrinterOutput/HeatedBedBox.qml @@ -67,7 +67,7 @@ Item { id: bedCurrentTemperature text: printerModel != null ? printerModel.bedTemperature + "°C" : "" - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("text") anchors.right: bedTargetTemperature.left anchors.top: parent.top @@ -320,7 +320,7 @@ Item return UM.Theme.getColor("action_button_text"); } } - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") text: { if(printerModel == null) diff --git a/resources/qml/PrinterOutput/MonitorSection.qml b/resources/qml/PrinterOutput/MonitorSection.qml index 7ef89dabf7..63b4b385e5 100644 --- a/resources/qml/PrinterOutput/MonitorSection.qml +++ b/resources/qml/PrinterOutput/MonitorSection.qml @@ -27,7 +27,7 @@ Item anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width text: label - font: UM.Theme.getFont("setting_category") + font: UM.Theme.getFont("medium_bold") color: UM.Theme.getColor("setting_category_text") } } diff --git a/resources/qml/PrinterOutput/OutputDeviceHeader.qml b/resources/qml/PrinterOutput/OutputDeviceHeader.qml index 16280eab5f..47f855266b 100644 --- a/resources/qml/PrinterOutput/OutputDeviceHeader.qml +++ b/resources/qml/PrinterOutput/OutputDeviceHeader.qml @@ -31,7 +31,7 @@ Item Label { id: outputDeviceNameLabel - font: UM.Theme.getFont("large") + font: UM.Theme.getFont("large_bold") color: UM.Theme.getColor("text") anchors.left: parent.left anchors.top: parent.top diff --git a/resources/qml/PrinterSelector/MachineSelectorButton.qml b/resources/qml/PrinterSelector/MachineSelectorButton.qml index b88af35f82..39e63d27c3 100644 --- a/resources/qml/PrinterSelector/MachineSelectorButton.qml +++ b/resources/qml/PrinterSelector/MachineSelectorButton.qml @@ -42,7 +42,7 @@ Button } text: machineSelectorButton.text color: UM.Theme.getColor("text") - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") visible: text != "" renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter diff --git a/resources/qml/Settings/SettingCategory.qml b/resources/qml/Settings/SettingCategory.qml index 5676bcedf9..93627dcb52 100644 --- a/resources/qml/Settings/SettingCategory.qml +++ b/resources/qml/Settings/SettingCategory.qml @@ -73,7 +73,7 @@ Button text: definition.label textFormat: Text.PlainText renderType: Text.NativeRendering - font: UM.Theme.getFont("setting_category") + font: UM.Theme.getFont("medium_bold") color: { if (!base.enabled) diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index f2906f9d4c..58749c09f2 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -105,7 +105,7 @@ Cura.ExpandablePopup id: buttonText text: viewsSelectorButton.text color: UM.Theme.getColor("text") - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter elide: Text.ElideRight diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index bcc754f4ca..86f4100687 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -208,8 +208,8 @@ QtObject anchors.verticalCenter: parent.verticalCenter; text: control.text; - font: Theme.getFont("button_tooltip"); - color: Theme.getColor("tooltip_text"); + font: Theme.getFont("default") + color: Theme.getColor("tooltip_text") } } @@ -716,7 +716,7 @@ QtObject return UM.Theme.getColor("action_button_text"); } } - font: UM.Theme.getFont("action_button") + font: UM.Theme.getFont("medium") text: control.text } } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 3dc216ad70..9cfae3b311 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -6,63 +6,43 @@ "fonts": { "large": { "size": 1.35, - "weight": 63, + "weight": 40, "family": "Noto Sans" }, - "large_nonbold": { + "large_bold": { "size": 1.35, - "weight": 50, + "weight": 60, "family": "Noto Sans" }, "medium": { "size": 1.16, - "weight": 50, + "weight": 40, "family": "Noto Sans" }, "medium_bold": { "size": 1.16, - "weight": 63, + "weight": 60, "family": "Noto Sans" }, "default": { "size": 1.0, - "weight": 50, + "weight": 40, "family": "Noto Sans" }, "default_bold": { "size": 1.0, - "weight": 63, + "weight": 60, "family": "Noto Sans" }, "default_italic": { "size": 1.0, - "weight": 50, + "weight": 40, "italic": true, "family": "Noto Sans" }, "small": { - "size": 0.85, - "weight": 50, - "family": "Noto Sans" - }, - "very_small": { "size": 0.7, - "weight": 50, - "family": "Noto Sans" - }, - "button_tooltip": { - "size": 1.0, - "weight": 50, - "family": "Noto Sans" - }, - "setting_category": { - "size": 1.15, - "weight": 63, - "family": "Noto Sans" - }, - "action_button": { - "size": 1.15, - "weight": 50, + "weight": 40, "family": "Noto Sans" } }, From e7fe7571aafdb89f24af2a687ca13e067b07d425 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 13 Dec 2018 09:02:14 +0100 Subject: [PATCH 0840/1039] Change the behaviour of the output device selector Now the behavior is the following: - The active output device is the one that shows up in the button (same as before) - The list of the output devices don't show the active device - When clicking in one item of the list, it becomes the active output and automatically it performs the action. Contributes to CURA-6026. --- .../qml/ActionPanel/OutputDevicesActionButton.qml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index 9a6c97bcff..b56f50b9a9 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -12,6 +12,12 @@ Item { id: widget + function requestWriteToDevice() + { + UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName, + { "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats }); + } + Cura.PrimaryButton { id: saveToButton @@ -32,9 +38,8 @@ Item onClicked: { - forceActiveFocus(); - UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName, - { "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats }); + forceActiveFocus() + widget.requestWriteToDevice() } } @@ -81,6 +86,7 @@ Item delegate: Cura.ActionButton { text: model.description + visible: model.id != UM.OutputDeviceManager.activeDevice // Don't show the active device in the list color: "transparent" cornerRadius: 0 hoverColor: UM.Theme.getColor("primary") @@ -88,6 +94,7 @@ Item onClicked: { UM.OutputDeviceManager.setActiveDevice(model.id) + widget.requestWriteToDevice() popup.close() } } From 121af7ad6085096bb9c8bbae4643516de342eb93 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 13 Dec 2018 09:41:07 +0100 Subject: [PATCH 0841/1039] Reuse the primary button in the toolbox for the "Quit Cura" button --- .../Toolbox/resources/qml/ToolboxFooter.qml | 36 ++++++------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxFooter.qml b/plugins/Toolbox/resources/qml/ToolboxFooter.qml index 2d42ca7269..6f46e939ff 100644 --- a/plugins/Toolbox/resources/qml/ToolboxFooter.qml +++ b/plugins/Toolbox/resources/qml/ToolboxFooter.qml @@ -2,21 +2,23 @@ // Toolbox is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 -import QtQuick.Controls 1.4 -import QtQuick.Controls.Styles 1.4 +import QtQuick.Controls 2.3 + import UM 1.1 as UM +import Cura 1.0 as Cura Item { id: footer width: parent.width anchors.bottom: parent.bottom - height: visible ? Math.floor(UM.Theme.getSize("toolbox_footer").height) : 0 + height: visible ? UM.Theme.getSize("toolbox_footer").height : 0 + Label { text: catalog.i18nc("@info", "You will need to restart Cura before changes in packages have effect.") color: UM.Theme.getColor("text") - height: Math.floor(UM.Theme.getSize("toolbox_footer_button").height) + height: UM.Theme.getSize("toolbox_footer_button").height verticalAlignment: Text.AlignVCenter anchors { @@ -28,10 +30,10 @@ Item } renderType: Text.NativeRendering } - Button + + Cura.PrimaryButton { id: restartButton - text: catalog.i18nc("@info:button", "Quit Cura") anchors { top: parent.top @@ -39,27 +41,11 @@ Item right: parent.right rightMargin: UM.Theme.getSize("wide_margin").width } - iconName: "dialog-restart" + height: UM.Theme.getSize("toolbox_footer_button").height + text: catalog.i18nc("@info:button", "Quit Cura") onClicked: toolbox.restart() - style: ButtonStyle - { - background: Rectangle - { - implicitWidth: UM.Theme.getSize("toolbox_footer_button").width - implicitHeight: Math.floor(UM.Theme.getSize("toolbox_footer_button").height) - color: control.hovered ? UM.Theme.getColor("primary_hover") : UM.Theme.getColor("primary") - } - label: Label - { - color: UM.Theme.getColor("button_text") - font: UM.Theme.getFont("default_bold") - text: control.text - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - renderType: Text.NativeRendering - } - } } + ToolboxShadow { visible: footer.visible From 0a6c1a7c14e2d67ec8879ec2dc24e2acbade0c1d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 13 Dec 2018 13:12:57 +0100 Subject: [PATCH 0842/1039] Fix CLIENT_ID (again) It got messed up in a merge again. Ugh. --- cura/API/Account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/API/Account.py b/cura/API/Account.py index 397e220478..be77a6307b 100644 --- a/cura/API/Account.py +++ b/cura/API/Account.py @@ -44,7 +44,7 @@ class Account(QObject): OAUTH_SERVER_URL= self._oauth_root, CALLBACK_PORT=self._callback_port, CALLBACK_URL="http://localhost:{}/callback".format(self._callback_port), - CLIENT_ID="um---------------ultimaker_cura_drive_plugin", + CLIENT_ID="um----------------------------ultimaker_cura", CLIENT_SCOPES="account.user.read drive.backup.read drive.backup.write packages.download packages.rating.read packages.rating.write", AUTH_DATA_PREFERENCE_KEY="general/ultimaker_auth_data", AUTH_SUCCESS_REDIRECT="{}/app/auth-success".format(self._oauth_root), From 2cf80b457820595cee714f012f3e9b46ef1c6348 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 12 Dec 2018 09:57:25 +0100 Subject: [PATCH 0843/1039] Remove unused simpleNames flag CURA-6015 --- cura/Settings/ExtrudersModel.py | 17 ----------------- .../resources/qml/UM3InfoComponents.qml | 4 +--- resources/qml/PrintMonitor.qml | 1 - 3 files changed, 1 insertion(+), 21 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index e19617c8ef..84d40cea6e 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -78,8 +78,6 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): self._update_extruder_timer.setSingleShot(True) self._update_extruder_timer.timeout.connect(self.__updateExtruders) - self._simple_names = False - self._active_machine_extruders = [] # type: Iterable[ExtruderStack] self._add_optional_extruder = False @@ -101,21 +99,6 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): def addOptionalExtruder(self): return self._add_optional_extruder - ## Set the simpleNames property. - def setSimpleNames(self, simple_names): - if simple_names != self._simple_names: - self._simple_names = simple_names - self.simpleNamesChanged.emit() - self._updateExtruders() - - ## Emitted when the simpleNames property changes. - simpleNamesChanged = pyqtSignal() - - ## Whether or not the model should show all definitions regardless of visibility. - @pyqtProperty(bool, fset = setSimpleNames, notify = simpleNamesChanged) - def simpleNames(self): - return self._simple_names - ## Links to the stack-changed signal of the new extruders when an extruder # is swapped out or added in the current machine. # diff --git a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml index 643c8164a7..0ee8880c36 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml @@ -83,9 +83,7 @@ Item { Column { Repeater { - model: Cura.ExtrudersModel { - simpleNames: true; - } + model: Cura.ExtrudersModel { } Label { text: model.name; diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 4ed8daa55c..316dcad653 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -63,7 +63,6 @@ Rectangle Cura.ExtrudersModel { id: extrudersModel - simpleNames: true } OutputDeviceHeader From 620790ae3de03113f23eafc0e1374fad7d222eb7 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 12 Dec 2018 11:08:33 +0100 Subject: [PATCH 0844/1039] Reduce the creations of ExtrudersModels CURA-6015 --- cura/CuraApplication.py | 15 +++++++++++++++ .../MachineSettingsAction.qml | 2 +- .../SimulationViewMenuComponent.qml | 2 +- plugins/SolidView/SolidView.py | 6 ++++-- .../resources/qml/UM3InfoComponents.qml | 2 +- .../Menus/ConfigurationMenu/ConfigurationMenu.qml | 5 +---- resources/qml/Menus/ContextMenu.qml | 2 +- resources/qml/Preferences/ProfilesPage.qml | 2 +- resources/qml/PrintMonitor.qml | 5 +---- .../Custom/CustomPrintSetup.qml | 5 +---- .../qml/PrintSetupSelector/PrintSetupSelector.qml | 5 +---- .../Recommended/RecommendedSupportSelector.qml | 5 +++-- resources/qml/Settings/SettingExtruder.qml | 9 +++++++-- .../qml/Settings/SettingOptionalExtruder.qml | 8 +++++--- resources/qml/Toolbar.qml | 5 +---- 15 files changed, 44 insertions(+), 34 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7e11fd4d59..55e37617d5 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -205,6 +205,8 @@ class CuraApplication(QtApplication): self._container_manager = None self._object_manager = None + self._extruders_model = None + self._extruders_model_with_optional = None self._build_plate_model = None self._multi_build_plate_model = None self._setting_visibility_presets_model = None @@ -862,6 +864,19 @@ class CuraApplication(QtApplication): self._object_manager = ObjectsModel.createObjectsModel() return self._object_manager + @pyqtSlot(result = QObject) + def getExtrudersModel(self, *args) -> "ExtrudersModel": + if self._extruders_model is None: + self._extruders_model = ExtrudersModel(self) + return self._extruders_model + + @pyqtSlot(result = QObject) + def getExtrudersModelWithOptional(self, *args) -> "ExtrudersModel": + if self._extruders_model_with_optional is None: + self._extruders_model_with_optional = ExtrudersModel(self) + self._extruders_model_with_optional.setAddOptionalExtruder(True) + return self._extruders_model_with_optional + @pyqtSlot(result = QObject) def getMultiBuildPlateModel(self, *args) -> MultiBuildPlateModel: if self._multi_build_plate_model is None: diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index c88a721a84..d8efe6f8b8 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -13,7 +13,7 @@ import Cura 1.0 as Cura Cura.MachineAction { id: base - property var extrudersModel: Cura.ExtrudersModel{} + property var extrudersModel: CuraApplication.getExtrudersModel() property int extruderTabsCount: 0 property var activeMachineId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.id : "" diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index 9f43252126..eec254c0dd 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -163,7 +163,7 @@ Cura.ExpandableComponent Repeater { - model: Cura.ExtrudersModel{} + model: CuraApplication.getExtrudersModel() CheckBox { diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index b9ad5c8829..797d6dabec 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -12,7 +12,6 @@ from UM.Math.Color import Color from UM.View.GL.OpenGL import OpenGL from cura.Settings.ExtruderManager import ExtruderManager -from cura.Settings.ExtrudersModel import ExtrudersModel import math @@ -29,13 +28,16 @@ class SolidView(View): self._non_printing_shader = None self._support_mesh_shader = None - self._extruders_model = ExtrudersModel() + self._extruders_model = None self._theme = None def beginRendering(self): scene = self.getController().getScene() renderer = self.getRenderer() + if not self._extruders_model: + self._extruders_model = Application.getInstance().getExtrudersModel() + if not self._theme: self._theme = Application.getInstance().getTheme() diff --git a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml index 0ee8880c36..42e3b7d160 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml @@ -83,7 +83,7 @@ Item { Column { Repeater { - model: Cura.ExtrudersModel { } + model: CuraApplication.getExtrudersModel() Label { text: model.name; diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 33a317b42b..d95dd9ebfa 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -17,10 +17,7 @@ Cura.ExpandablePopup { id: base - Cura.ExtrudersModel - { - id: extrudersModel - } + property var extrudersModel: CuraApplication.getExtrudersModel() UM.I18nCatalog { diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml index 1ea402d815..cb10d50ce8 100644 --- a/resources/qml/Menus/ContextMenu.qml +++ b/resources/qml/Menus/ContextMenu.qml @@ -27,7 +27,7 @@ Menu MenuItem { id: extruderHeader; text: catalog.i18ncp("@label", "Print Selected Model With:", "Print Selected Models With:", UM.Selection.selectionCount); enabled: false; visible: base.shouldShowExtruders } Instantiator { - model: Cura.ExtrudersModel { id: extrudersModel } + model: CuraApplication.getExtrudersModel() MenuItem { text: "%1: %2 - %3".arg(model.name).arg(model.material).arg(model.variant) visible: base.shouldShowExtruders diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index d7ffbb3152..7fb17b7aa1 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -16,7 +16,7 @@ Item property QtObject qualityManager: CuraApplication.getQualityManager() property var resetEnabled: false // Keep PreferencesDialog happy - property var extrudersModel: Cura.ExtrudersModel {} + property var extrudersModel: CuraApplication.getExtrudersModel() UM.I18nCatalog { id: catalog; name: "cura"; } diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 316dcad653..6d8edf0deb 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -60,10 +60,7 @@ Rectangle anchors.fill: parent - Cura.ExtrudersModel - { - id: extrudersModel - } + property var extrudersModel: CuraApplication.getExtrudersModel() OutputDeviceHeader { diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index b28c9ceb46..27de8df835 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -16,10 +16,7 @@ Item property real padding: UM.Theme.getSize("default_margin").width property bool multipleExtruders: extrudersModel.count > 1 - Cura.ExtrudersModel - { - id: extrudersModel - } + property var extrudersModel: CuraApplication.getExtrudersModel() // Profile selector row GlobalProfileSelector diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 599eac957e..2d4d7f6cf1 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -26,10 +26,7 @@ Cura.ExpandableComponent headerItem: PrintSetupSelectorHeader {} - Cura.ExtrudersModel - { - id: extrudersModel - } + property var extrudersModel: CuraApplication.getExtrudersModel() contentItem: PrintSetupSelectorContents {} } \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 57e0c8ce6b..87fb664713 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -156,9 +156,10 @@ Item } //: Model used to populate the extrudelModel - Cura.ExtrudersModel + property var extruders: CuraApplication.getExtrudersModel() + Connections { - id: extruders + target: extruders onModelChanged: populateExtruderModel() } diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index e1fedd9274..024eb17639 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -17,11 +17,16 @@ SettingItem id: control anchors.fill: parent - model: Cura.ExtrudersModel + property var extrudersModel: CuraApplication.getExtrudersModel() + + model: extrudersModel + + Connections { + target: extrudersModel onModelChanged: { - control.color = getItem(control.currentIndex).color + control.color = extrudersModel.getItem(control.currentIndex).color } } diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 200a3f64f1..d9ec1f07c4 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -17,10 +17,12 @@ SettingItem id: control anchors.fill: parent - model: Cura.ExtrudersModel + model: CuraApplication.getExtrudersModelWithOptional() + + Connections { - onModelChanged: control.color = getItem(control.currentIndex).color - addOptionalExtruder: true + target: model + onModelChanged: control.color = model.getItem(control.currentIndex).color } textRole: "name" diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 1e335472d4..1df516a315 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -144,10 +144,7 @@ Item } } - Cura.ExtrudersModel - { - id: extrudersModel - } + property var extrudersModel: CuraApplication.getExtrudersModel() UM.PointingRectangle { From 935f7a2512e14e361903155acbfc7198fa881512 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 12 Dec 2018 11:09:22 +0100 Subject: [PATCH 0845/1039] Remove unused imports CURA-6015 --- cura/Settings/ExtrudersModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 84d40cea6e..b7fa659554 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -1,7 +1,7 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot, pyqtProperty, QTimer +from PyQt5.QtCore import Qt, pyqtSignal, pyqtProperty, QTimer from typing import Iterable from UM.i18n import i18nCatalog From df0b1c6c7735757e73317881fdc1f3b461cdabbd Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 12 Dec 2018 11:10:22 +0100 Subject: [PATCH 0846/1039] Fix ExtruderManager creation in MachineManager CURA-6015 --- cura/Settings/MachineManager.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index c375ce01d1..e26b82e487 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -88,12 +88,14 @@ class MachineManager(QObject): self._onGlobalContainerChanged() - ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderStackChanged) + extruder_manager = self._application.getExtruderManager() + + extruder_manager.activeExtruderChanged.connect(self._onActiveExtruderStackChanged) self._onActiveExtruderStackChanged() - ExtruderManager.getInstance().activeExtruderChanged.connect(self.activeMaterialChanged) - ExtruderManager.getInstance().activeExtruderChanged.connect(self.activeVariantChanged) - ExtruderManager.getInstance().activeExtruderChanged.connect(self.activeQualityChanged) + extruder_manager.activeExtruderChanged.connect(self.activeMaterialChanged) + extruder_manager.activeExtruderChanged.connect(self.activeVariantChanged) + extruder_manager.activeExtruderChanged.connect(self.activeQualityChanged) self.globalContainerChanged.connect(self.activeStackChanged) self.globalValueChanged.connect(self.activeStackValueChanged) From d879cab91ae2030a2aeb7a32c772dce7cfaf28e8 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 13 Dec 2018 13:49:06 +0100 Subject: [PATCH 0847/1039] Add all fields for optional extruder in ExtruderModel CURA-6015 --- cura/Settings/ExtrudersModel.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index b7fa659554..076cebf60d 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -204,7 +204,12 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): "enabled": True, "color": "#ffffff", "index": -1, - "definition": "" + "definition": "", + "material": "", + "variant": "", + "stack": None, + "material_brand": "", + "color_name": "", } items.append(item) if self._items != items: From 8021c8e44900aa89ae4254b09e17be2179165b18 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 13 Dec 2018 13:49:45 +0100 Subject: [PATCH 0848/1039] Fix errors in SettingOptionalExtruder.qml CURA-6015 --- resources/qml/Settings/SettingOptionalExtruder.qml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index d9ec1f07c4..aabf808d83 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -12,17 +12,24 @@ SettingItem id: base property var focusItem: control + // Somehow if we directory set control.model to CuraApplication.getExtrudersModelWithOptional() + // and in the Connections.onModelChanged use control.model as a reference, it will complain about + // non-existing properties such as "onModelChanged" and "getItem". I guess if we access the model + // via "control.model", it gives back a generic/abstract model instance. To avoid this, we add + // this extra property to keep the ExtrudersModel and use this in the rest of the code. + property var extrudersWithOptionalModel: CuraApplication.getExtrudersModelWithOptional() + contents: ComboBox { id: control anchors.fill: parent - model: CuraApplication.getExtrudersModelWithOptional() + model: base.extrudersWithOptionalModel Connections { - target: model - onModelChanged: control.color = model.getItem(control.currentIndex).color + target: base.extrudersWithOptionalModel + onModelChanged: control.color = base.extrudersWithOptionalModel.getItem(control.currentIndex).color } textRole: "name" From a1a9b058f5e874f0ab41871afc94a7ac712badd0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 13 Dec 2018 14:28:32 +0100 Subject: [PATCH 0849/1039] Let header listen to activeStageId instead of the model CURA-6028 --- resources/qml/MainWindow/MainWindowHeader.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index ae1c13d9c3..6cb7370ec2 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -54,7 +54,8 @@ Item { text: model.name.toUpperCase() checkable: true - checked: model.active + checked: model.id == UM.Controller.activeStage.stageId + anchors.verticalCenter: parent.verticalCenter exclusiveGroup: mainWindowHeaderMenuGroup style: UM.Theme.styles.main_window_header_tab From c4700b27522dafa6d2164ea08b2215e1f738e013 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 13 Dec 2018 14:30:00 +0100 Subject: [PATCH 0850/1039] Also update the model if the data changed CURA-6028 --- .../Recommended/RecommendedQualityProfileSelector.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 15d40f545a..349c6dbb57 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -39,6 +39,7 @@ Item { target: Cura.QualityProfilesDropDownMenuModel onItemsChanged: qualityModel.update() + onDataChanged: qualityModel.update() } Connections { From 17f0c12858ae2a3cf6466e8e5bc900338d22f444 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 13 Dec 2018 14:31:34 +0100 Subject: [PATCH 0851/1039] Make the middle component to have zero width if there is no component to fill the gap. Contributes to CURA-6020. --- plugins/PreviewStage/PreviewMenu.qml | 95 +++++++++++++--------------- 1 file changed, 44 insertions(+), 51 deletions(-) diff --git a/plugins/PreviewStage/PreviewMenu.qml b/plugins/PreviewStage/PreviewMenu.qml index 4e1fbac837..62f814aac9 100644 --- a/plugins/PreviewStage/PreviewMenu.qml +++ b/plugins/PreviewStage/PreviewMenu.qml @@ -20,67 +20,60 @@ Item name: "cura" } - // Item to ensure that all of the buttons are nicely centered. - Item + Row { - anchors.horizontalCenter: parent.horizontalCenter - width: stageMenuRow.width + id: stageMenuRow + anchors.centerIn: parent height: parent.height + width: childrenRect.width - RowLayout + // We want this row to have a preferred with equals to the 85% of the parent + property int preferredWidth: Math.round(0.85 * previewMenu.width) + + Cura.ViewsSelector { - id: stageMenuRow - width: Math.round(0.85 * previewMenu.width) + id: viewsSelector height: parent.height - spacing: 0 + width: UM.Theme.getSize("views_selector").width + headerCornerSide: Cura.RoundedRectangle.Direction.Left + } - Cura.ViewsSelector - { - id: viewsSelector - headerCornerSide: Cura.RoundedRectangle.Direction.Left - Layout.minimumWidth: UM.Theme.getSize("views_selector").width - Layout.maximumWidth: UM.Theme.getSize("views_selector").width - Layout.fillWidth: true - Layout.fillHeight: true - } + // Separator line + Rectangle + { + height: parent.height + // If there is no viewPanel, we only need a single spacer, so hide this one. + visible: viewPanel.source != "" + width: visible ? UM.Theme.getSize("default_lining").width : 0 - // Separator line - Rectangle - { - height: parent.height - // If there is no viewPanel, we only need a single spacer, so hide this one. - visible: viewPanel.source != "" - width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } - color: UM.Theme.getColor("lining") - } + // This component will grow freely up to complete the preferredWidth of the row. + Loader + { + id: viewPanel + height: parent.height + width: source != "" ? (stageMenuRow.preferredWidth - viewsSelector.width - printSetupSelectorItem.width - 2 * UM.Theme.getSize("default_lining").width) : 0 + source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" + } - Loader - { - id: viewPanel - Layout.fillHeight: true - Layout.fillWidth: true - Layout.preferredWidth: stageMenuRow.width - viewsSelector.width - printSetupSelectorItem.width - 2 * UM.Theme.getSize("default_lining").width - source: UM.Controller.activeView != null && UM.Controller.activeView.stageMenuComponent != null ? UM.Controller.activeView.stageMenuComponent : "" - } + // Separator line + Rectangle + { + height: parent.height + width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("lining") + } - // Separator line - Rectangle - { - height: parent.height - width: UM.Theme.getSize("default_lining").width - color: UM.Theme.getColor("lining") - } - - Item - { - id: printSetupSelectorItem - // This is a work around to prevent the printSetupSelector from having to be re-loaded every time - // a stage switch is done. - children: [printSetupSelector] - height: childrenRect.height - width: childrenRect.width - } + Item + { + id: printSetupSelectorItem + // This is a work around to prevent the printSetupSelector from having to be re-loaded every time + // a stage switch is done. + children: [printSetupSelector] + height: childrenRect.height + width: childrenRect.width } } } From 8091b2810c2feb04af81c8deef362688ed26eea4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 13 Dec 2018 14:36:58 +0100 Subject: [PATCH 0852/1039] Apply suggestions from code review Change some margins for the corresponding absolute values instead of adding formulas. Contributes to CURA-5876. Co-Authored-By: diegopradogesto --- .../ConfigurationMenu/ConfigurationItem.qml | 16 ++++++++-------- .../ConfigurationMenu/ConfigurationListView.qml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index a73cd3b46c..862e1475a9 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -36,9 +36,9 @@ Button anchors { left: parent.left - leftMargin: 2 * parent.padding + leftMargin: UM.Theme.getSize("wide_margin").width right: parent.right - rightMargin: 2 * parent.padding + rightMargin: UM.Theme.getSize("wide_margin").width } spacing: UM.Theme.getSize("default_margin").width @@ -64,9 +64,9 @@ Button anchors { left: parent.left - leftMargin: 2 * parent.padding + leftMargin: UM.Theme.getSize("wide_margin").width right: parent.right - rightMargin: 2 * parent.padding + rightMargin: UM.Theme.getSize("wide_margin").width } height: visible ? Math.round(UM.Theme.getSize("default_lining").height / 2) : 0 color: UM.Theme.getColor("lining") @@ -79,9 +79,9 @@ Button anchors { left: parent.left - leftMargin: 2 * parent.padding + leftMargin: UM.Theme.getSize("wide_margin").width right: parent.right - rightMargin: 2 * parent.padding + rightMargin: UM.Theme.getSize("wide_margin").width } height: childrenRect.height visible: configuration.buildplateConfiguration != "" @@ -101,7 +101,7 @@ Button id: buildplateLabel anchors.left: buildplateIcon.right anchors.verticalCenter: buildplateIcon.verticalCenter - anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").height / 2) + anchors.leftMargin: UM.Theme.getSize("narrow_margin").height text: configuration.buildplateConfiguration renderType: Text.NativeRendering color: UM.Theme.getColor("text") @@ -127,4 +127,4 @@ Button { Cura.MachineManager.applyRemoteConfiguration(configuration) } -} \ No newline at end of file +} diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 3ddbb49fe8..684e575bfd 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -28,7 +28,7 @@ Item { width: parent.width visible: configurationList.model.length == 0 - height: label.height + 2 * UM.Theme.getSize("default_margin").height + height: label.height + UM.Theme.getSize("wide_margin").height anchors.top: parent.top anchors.topMargin: UM.Theme.getSize("default_margin").height @@ -134,4 +134,4 @@ Item forceModelUpdate() } } -} \ No newline at end of file +} From b48eedfb805fd8ed6aa3accb4658622dcd57ef43 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 13 Dec 2018 15:15:22 +0100 Subject: [PATCH 0853/1039] Modify color for the progress bar in the messages. --- resources/themes/cura-light/theme.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 1a7d377fa7..6d76004739 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -255,8 +255,8 @@ "message_button_text": [255, 255, 255, 255], "message_button_text_hover": [255, 255, 255, 255], "message_button_text_active": [255, 255, 255, 255], - "message_progressbar_background": [200, 200, 200, 255], - "message_progressbar_control": [77, 182, 226, 255], + "message_progressbar_background": [245, 245, 245, 255], + "message_progressbar_control": [50, 130, 255, 255], "tool_panel_background": [255, 255, 255, 255], From 3225512851f61f0ac9f18ae6322f8eeb2c3bfd79 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 13 Dec 2018 15:48:03 +0100 Subject: [PATCH 0854/1039] Fix typing CURA-6013 --- plugins/Toolbox/src/Toolbox.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index 715c105bad..05669e55d8 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -49,7 +49,7 @@ class Toolbox(QObject, Extension): self._download_progress = 0 # type: float self._is_downloading = False # type: bool self._network_manager = None # type: Optional[QNetworkAccessManager] - self._request_headers = [] # type: List[Tuple(bytes, bytes)] + self._request_headers = [] # type: List[Tuple[bytes, bytes]] self._updateRequestHeader() From 1b3cb323344cd6c75ec160ca936a1aff379ad64f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 13 Dec 2018 15:59:15 +0100 Subject: [PATCH 0855/1039] Fix the simulation view not being selected as default CURA-6028 --- resources/qml/ViewsSelector.qml | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index 0e2598a0d8..d91412cad0 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -14,24 +14,31 @@ Cura.ExpandablePopup contentPadding: UM.Theme.getSize("default_lining").width contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft - property var viewModel: UM.ViewModel { } - - property var activeView: + property var viewModel: UM.ViewModel { - for (var i = 0; i < viewModel.count; i++) + onDataChanged: updateActiveView() + } + + + property var activeView: null + + function updateActiveView() + { + for (var index in viewModel.items) { - if (viewModel.items[i].active) + + if (viewModel.items[index].active) { - return viewModel.items[i] + activeView = viewModel.items[index] + return } } - return null + activeView = null } Component.onCompleted: { - // Nothing was active, so just return the first one (the list is sorted by priority, so the most - // important one should be returned) + updateActiveView() if (activeView == null) { UM.Controller.setActiveView(viewModel.getItem(0).id) From 973970a89505fea4cb3e0f4d003c8360b2b2353e Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 12 Dec 2018 09:53:26 +0100 Subject: [PATCH 0856/1039] Every print ouput device should define its connection type(usb, network, cluster and etc) CURA-6011 --- .../NetworkedPrinterOutputDevice.py | 6 ++--- cura/PrinterOutputDevice.py | 19 ++++++++++++++- .../resources/qml/DiscoverUM3Action.qml | 2 +- .../src/ClusterUM3OutputDevice.py | 3 ++- .../src/DiscoverUM3Action.py | 23 ++++++++++++------- .../src/LegacyUM3OutputDevice.py | 3 ++- plugins/USBPrinting/USBPrinterOutputDevice.py | 4 ++-- .../PrinterSelector/MachineSelectorList.qml | 2 +- 8 files changed, 44 insertions(+), 18 deletions(-) diff --git a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py index 9a3be936a2..c288596f0c 100644 --- a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py +++ b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py @@ -6,7 +6,7 @@ from UM.Logger import Logger from UM.Scene.SceneNode import SceneNode #For typing. from cura.CuraApplication import CuraApplication -from cura.PrinterOutputDevice import PrinterOutputDevice, ConnectionState +from cura.PrinterOutputDevice import PrinterOutputDevice, ConnectionState, ConnectionType from PyQt5.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager, QNetworkReply, QAuthenticator from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, QUrl, QCoreApplication @@ -28,8 +28,8 @@ class AuthState(IntEnum): class NetworkedPrinterOutputDevice(PrinterOutputDevice): authenticationStateChanged = pyqtSignal() - def __init__(self, device_id, address: str, properties: Dict[bytes, bytes], parent: QObject = None) -> None: - super().__init__(device_id = device_id, parent = parent) + def __init__(self, device_id, address: str, properties: Dict[bytes, bytes], connection_type: ConnectionType = ConnectionType.networkConnection, parent: QObject = None) -> None: + super().__init__(device_id = device_id, connection_type = connection_type, parent = parent) self._manager = None # type: Optional[QNetworkAccessManager] self._last_manager_create_time = None # type: Optional[float] self._recreate_network_manager_time = 30 diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 99c48189cc..3a72fba4e3 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -34,6 +34,12 @@ class ConnectionState(IntEnum): busy = 3 error = 4 +class ConnectionType(IntEnum): + none = 0 + usbConnection = 1 + networkConnection = 2 + clusterConnection = 3 + cloudConnection = 4 ## Printer output device adds extra interface options on top of output device. # @@ -62,7 +68,7 @@ class PrinterOutputDevice(QObject, OutputDevice): # Signal to indicate that the configuration of one of the printers has changed. uniqueConfigurationsChanged = pyqtSignal() - def __init__(self, device_id: str, parent: QObject = None) -> None: + def __init__(self, device_id: str, connection_type: ConnectionType, parent: QObject = None) -> None: super().__init__(device_id = device_id, parent = parent) # type: ignore # MyPy complains with the multiple inheritance self._printers = [] # type: List[PrinterOutputModel] @@ -84,6 +90,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._update_timer.timeout.connect(self._update) self._connection_state = ConnectionState.closed #type: ConnectionState + self._connection_type = connection_type self._firmware_updater = None #type: Optional[FirmwareUpdater] self._firmware_name = None #type: Optional[str] @@ -117,6 +124,16 @@ class PrinterOutputDevice(QObject, OutputDevice): self._connection_state = connection_state self.connectionStateChanged.emit(self._id) + def checkConnectionType(self, connection_type: ConnectionType) -> bool: + return connection_type == self._connection_type + + def getConnectionType(self) -> ConnectionType: + return self._connection_type + + def setConnectionType(self, new_connection_type: ConnectionType) -> None: + if self._connection_type != new_connection_type: + self._connection_type = new_connection_type + @pyqtProperty(str, notify = connectionStateChanged) def connectionState(self) -> ConnectionState: return self._connection_state diff --git a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml index e5f668c70d..2c9ab2df03 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml @@ -28,7 +28,7 @@ Cura.MachineAction // Check if there is another instance with the same key if (!manager.existsKey(printerKey)) { - manager.setKey(printerKey) + manager.setKey(base.selectedDevice) manager.setGroupName(printerName) // TODO To change when the groups have a name completed() } diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index ef890fc4ed..206654ff88 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -22,6 +22,7 @@ from cura.PrinterOutput.ExtruderConfigurationModel import ExtruderConfigurationM from cura.PrinterOutput.NetworkedPrinterOutputDevice import NetworkedPrinterOutputDevice, AuthState from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel from cura.PrinterOutput.MaterialOutputModel import MaterialOutputModel +from cura.PrinterOutputDevice import ConnectionType from .ClusterUM3PrinterOutputController import ClusterUM3PrinterOutputController from .SendMaterialJob import SendMaterialJob @@ -54,7 +55,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): clusterPrintersChanged = pyqtSignal() def __init__(self, device_id, address, properties, parent = None) -> None: - super().__init__(device_id = device_id, address = address, properties=properties, parent = parent) + super().__init__(device_id = device_id, address = address, properties=properties, connection_type = ConnectionType.clusterConnection, parent = parent) self._api_prefix = "/cluster-api/v1/" self._number_of_extruders = 2 diff --git a/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py b/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py index be83e04585..9cd21de036 100644 --- a/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py +++ b/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py @@ -3,7 +3,7 @@ import os.path import time -from typing import cast, Optional +from typing import Optional from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot, QObject @@ -13,6 +13,7 @@ from UM.i18n import i18nCatalog from cura.CuraApplication import CuraApplication from cura.MachineAction import MachineAction +from cura.PrinterOutputDevice import PrinterOutputDevice from .UM3OutputDevicePlugin import UM3OutputDevicePlugin @@ -116,22 +117,28 @@ class DiscoverUM3Action(MachineAction): # Ensure that the connection states are refreshed. self._network_plugin.reCheckConnections() - @pyqtSlot(str) - def setKey(self, key: str) -> None: - Logger.log("d", "Attempting to set the network key of the active machine to %s", key) + @pyqtSlot(QObject) + def setKey(self, printer_device: Optional[PrinterOutputDevice]) -> None: + Logger.log("d", "Attempting to set the network key of the active machine to %s", printer_device.key) global_container_stack = CuraApplication.getInstance().getGlobalContainerStack() if global_container_stack: meta_data = global_container_stack.getMetaData() if "um_network_key" in meta_data: previous_network_key= meta_data["um_network_key"] - global_container_stack.setMetaDataEntry("um_network_key", key) + global_container_stack.setMetaDataEntry("um_network_key", printer_device.key) # Delete old authentication data. - Logger.log("d", "Removing old authentication id %s for device %s", global_container_stack.getMetaDataEntry("network_authentication_id", None), key) + Logger.log("d", "Removing old authentication id %s for device %s", global_container_stack.getMetaDataEntry("network_authentication_id", None), printer_device.key) global_container_stack.removeMetaDataEntry("network_authentication_id") global_container_stack.removeMetaDataEntry("network_authentication_key") - CuraApplication.getInstance().getMachineManager().replaceContainersMetadata(key = "um_network_key", value = previous_network_key, new_value = key) + CuraApplication.getInstance().getMachineManager().replaceContainersMetadata(key = "um_network_key", value = previous_network_key, new_value = printer_device.key) + + if "um_connection_type" in meta_data: + previous_connection_type = meta_data["um_connection_type"] + global_container_stack.setMetaDataEntry("um_connection_type", printer_device.getConnectionType().value) + CuraApplication.getInstance().getMachineManager().replaceContainersMetadata(key = "um_connection_type", value = previous_connection_type, new_value = printer_device.getConnectionType().value) else: - global_container_stack.setMetaDataEntry("um_network_key", key) + global_container_stack.setMetaDataEntry("um_network_key", printer_device.key) + global_container_stack.setMetaDataEntry("um_connection_type", printer_device.getConnectionType().value) if self._network_plugin: # Ensure that the connection states are refreshed. diff --git a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py index 18af22e72f..0ae9e8a004 100644 --- a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py @@ -7,6 +7,7 @@ from cura.PrinterOutput.NetworkedPrinterOutputDevice import NetworkedPrinterOutp from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel from cura.PrinterOutput.PrintJobOutputModel import PrintJobOutputModel from cura.PrinterOutput.MaterialOutputModel import MaterialOutputModel +from cura.PrinterOutputDevice import ConnectionType from cura.Settings.ContainerManager import ContainerManager from cura.Settings.ExtruderManager import ExtruderManager @@ -43,7 +44,7 @@ i18n_catalog = i18nCatalog("cura") # 5. As a final step, we verify the authentication, as this forces the QT manager to setup the authenticator. class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice): def __init__(self, device_id, address: str, properties, parent = None) -> None: - super().__init__(device_id = device_id, address = address, properties = properties, parent = parent) + super().__init__(device_id = device_id, address = address, properties = properties, connection_type = ConnectionType.networkConnection, parent = parent) self._api_prefix = "/api/v1/" self._number_of_extruders = 2 diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 1d42e70366..a8cb240b03 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -7,7 +7,7 @@ from UM.i18n import i18nCatalog from UM.Qt.Duration import DurationFormat from cura.CuraApplication import CuraApplication -from cura.PrinterOutputDevice import PrinterOutputDevice, ConnectionState +from cura.PrinterOutputDevice import PrinterOutputDevice, ConnectionState, ConnectionType from cura.PrinterOutput.PrinterOutputModel import PrinterOutputModel from cura.PrinterOutput.PrintJobOutputModel import PrintJobOutputModel from cura.PrinterOutput.GenericOutputController import GenericOutputController @@ -29,7 +29,7 @@ catalog = i18nCatalog("cura") class USBPrinterOutputDevice(PrinterOutputDevice): def __init__(self, serial_port: str, baud_rate: Optional[int] = None) -> None: - super().__init__(serial_port) + super().__init__(serial_port, connection_type=ConnectionType.usbConnection) self.setName(catalog.i18nc("@item:inmenu", "USB printing")) self.setShortDescription(catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print via USB")) self.setDescription(catalog.i18nc("@info:tooltip", "Print via USB")) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 54d766a6e0..3324b9948b 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -32,7 +32,7 @@ Column id: networkedPrintersModel filter: { - "type": "machine", "um_network_key": "*", "hidden": "False" + "type": "machine", "um_network_key": "*", "hidden": "False", "um_connection_type": "[2,3,4]" } } From d48e89e22432ae9146c404a745d785af9491da37 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 13 Dec 2018 16:32:48 +0100 Subject: [PATCH 0857/1039] Prevent the parent of printSetupSelector from being set to null If it's parent gets set to null it will break the focus, which we need for the binding updates. CURA-5941 --- resources/qml/Cura.qml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index a4faa27b67..cf6f36a492 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -278,6 +278,14 @@ UM.MainWindow height: UM.Theme.getSize("stage_menu").height source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : "" + + // HACK: This is to ensure that the parent never gets set to null, as this wreaks havoc on the focus. + function onParentDestroyed() + { + printSetupSelector.parent = stageMenu + printSetupSelector.visible = false + } + // The printSetupSelector is defined here so that the setting list doesn't need to get re-instantiated // Every time the stage is changed. property var printSetupSelector: Cura.PrintSetupSelector @@ -285,6 +293,11 @@ UM.MainWindow width: UM.Theme.getSize("print_setup_widget").width height: UM.Theme.getSize("stage_menu").height headerCornerSide: RoundedRectangle.Direction.Right + onParentChanged: + { + visible = parent != stageMenu + parent.Component.destruction.connect(stageMenu.onParentDestroyed) + } } } From 3f3cd5e33443ebe1f01671f5c08e3397c85fd962 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 13 Dec 2018 16:32:27 +0100 Subject: [PATCH 0858/1039] Remove broken load of PrepareSidebar.qml This file no longer exists. Loading it gives a warning. --- cura/Stages/CuraStage.py | 4 ---- plugins/PrepareStage/PrepareStage.py | 6 +----- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/cura/Stages/CuraStage.py b/cura/Stages/CuraStage.py index e8537fb6b9..844b0d0768 100644 --- a/cura/Stages/CuraStage.py +++ b/cura/Stages/CuraStage.py @@ -24,10 +24,6 @@ class CuraStage(Stage): def mainComponent(self) -> QUrl: return self.getDisplayComponent("main") - @pyqtProperty(QUrl, constant = True) - def sidebarComponent(self) -> QUrl: - return self.getDisplayComponent("sidebar") - @pyqtProperty(QUrl, constant = True) def stageMenuComponent(self) -> QUrl: return self.getDisplayComponent("menu") \ No newline at end of file diff --git a/plugins/PrepareStage/PrepareStage.py b/plugins/PrepareStage/PrepareStage.py index b22f3385b8..b0f862dc48 100644 --- a/plugins/PrepareStage/PrepareStage.py +++ b/plugins/PrepareStage/PrepareStage.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import os.path from UM.Application import Application @@ -15,9 +15,5 @@ class PrepareStage(CuraStage): Application.getInstance().engineCreatedSignal.connect(self._engineCreated) def _engineCreated(self): - sidebar_component_path = os.path.join(Resources.getPath(Application.getInstance().ResourceTypes.QmlFiles), - "PrepareSidebar.qml") - menu_component_path = os.path.join(PluginRegistry.getInstance().getPluginPath("PrepareStage"), "PrepareMenu.qml") self.addDisplayComponent("menu", menu_component_path) - self.addDisplayComponent("sidebar", sidebar_component_path) From 012ee0c02a66ef4e1bbbc5dde6aee8d8fec9988a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 13 Dec 2018 16:44:49 +0100 Subject: [PATCH 0859/1039] Use the MouseArea trick to assure that the binding still works for the checked property of the button. Contributes to CURA-6028. --- resources/qml/MainWindow/MainWindowHeader.qml | 8 +++++++- resources/qml/ViewsSelector.qml | 3 --- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 6cb7370ec2..793df42da0 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -60,11 +60,17 @@ Item exclusiveGroup: mainWindowHeaderMenuGroup style: UM.Theme.styles.main_window_header_tab height: UM.Theme.getSize("main_window_header_button").height - onClicked: UM.Controller.setActiveStage(model.id) iconSource: model.stage.iconSource property color overlayColor: "transparent" property string overlayIconSource: "" + + // This is a trick to assure the activeStage is correctly changed. It doesn't work propertly if done in the onClicked (see CURA-6028) + MouseArea + { + anchors.fill: parent + onClicked: UM.Controller.setActiveStage(model.id) + } } } diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index d91412cad0..06d2e662b5 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -19,14 +19,12 @@ Cura.ExpandablePopup onDataChanged: updateActiveView() } - property var activeView: null function updateActiveView() { for (var index in viewModel.items) { - if (viewModel.items[index].active) { activeView = viewModel.items[index] @@ -38,7 +36,6 @@ Cura.ExpandablePopup Component.onCompleted: { - updateActiveView() if (activeView == null) { UM.Controller.setActiveView(viewModel.getItem(0).id) From 3d4da94b36593505a4e86f41e46999f9660337f1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 13 Dec 2018 16:49:27 +0100 Subject: [PATCH 0860/1039] Remove obsolete description detail about old Cura versions This setting had a detail in the description about how the setting used to behave in old Cura versions. Let's remove it since it is not relevant any more. Fixes #4536. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c015ab8ccb..f39e267354 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3385,7 +3385,7 @@ "retraction_combing": { "label": "Combing Mode", - "description": "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas and also to only comb within the infill. Note that the 'Within Infill' option behaves exactly like the 'Not in Skin' option in earlier Cura releases.", + "description": "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas or to only comb within the infill.", "type": "enum", "options": { From 473160a102c902bd4161d3b7d4027414a71c144a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 13 Dec 2018 17:02:13 +0100 Subject: [PATCH 0861/1039] Add a check for null to avoid warnings in the logs. --- resources/qml/MainWindow/MainWindowHeader.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 793df42da0..8f6957d9cd 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -54,7 +54,7 @@ Item { text: model.name.toUpperCase() checkable: true - checked: model.id == UM.Controller.activeStage.stageId + checked: UM.Controller.activeStage != null ? model.id == UM.Controller.activeStage.stageId : false anchors.verticalCenter: parent.verticalCenter exclusiveGroup: mainWindowHeaderMenuGroup From 856c1dcb20d42a624bfc367ca135042d7404953f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 13 Dec 2018 17:21:07 +0100 Subject: [PATCH 0862/1039] Also disconnect the signal for the old parent of printSetupSelector --- resources/qml/Cura.qml | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index cf6f36a492..ff5a603fda 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -278,29 +278,33 @@ UM.MainWindow height: UM.Theme.getSize("stage_menu").height source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : "" - // HACK: This is to ensure that the parent never gets set to null, as this wreaks havoc on the focus. function onParentDestroyed() { printSetupSelector.parent = stageMenu printSetupSelector.visible = false } + property item oldParent: null // The printSetupSelector is defined here so that the setting list doesn't need to get re-instantiated // Every time the stage is changed. property var printSetupSelector: Cura.PrintSetupSelector { - width: UM.Theme.getSize("print_setup_widget").width - height: UM.Theme.getSize("stage_menu").height - headerCornerSide: RoundedRectangle.Direction.Right - onParentChanged: - { - visible = parent != stageMenu - parent.Component.destruction.connect(stageMenu.onParentDestroyed) - } + width: UM.Theme.getSize("print_setup_widget").width + height: UM.Theme.getSize("stage_menu").height + headerCornerSide: RoundedRectangle.Direction.Right + onParentChanged: + { + if(stageMenu.oldParent !=null) + { + stageMenu.oldParent.Component.destruction.disconnect(stageMenu.onParentDestroyed) + } + stageMenu.oldParent = parent + visible = parent != stageMenu + parent.Component.destruction.connect(stageMenu.onParentDestroyed) + } } } - UM.MessageStack { anchors From 8dc2a41fb7af876a2f4c041fd68482f131b4385c Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 13 Dec 2018 17:27:16 +0100 Subject: [PATCH 0863/1039] Typo, wrong item type, "item" CURA-5941 --- resources/qml/Cura.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index ff5a603fda..2b6f989e0b 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -284,7 +284,7 @@ UM.MainWindow printSetupSelector.parent = stageMenu printSetupSelector.visible = false } - property item oldParent: null + property Item oldParent: null // The printSetupSelector is defined here so that the setting list doesn't need to get re-instantiated // Every time the stage is changed. From 6bf39a32a941dfc4ef96a3f250527c04d9060541 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 09:56:06 +0100 Subject: [PATCH 0864/1039] Rename Enum names to camal cases CURA-6011 --- .../NetworkedPrinterOutputDevice.py | 10 +++---- cura/PrinterOutputDevice.py | 26 ++++++++++--------- .../src/ClusterUM3OutputDevice.py | 2 +- .../src/LegacyUM3OutputDevice.py | 2 +- plugins/USBPrinting/USBPrinterOutputDevice.py | 8 +++--- .../USBPrinterOutputDeviceManager.py | 2 +- 6 files changed, 26 insertions(+), 24 deletions(-) diff --git a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py index c288596f0c..14f1364601 100644 --- a/cura/PrinterOutput/NetworkedPrinterOutputDevice.py +++ b/cura/PrinterOutput/NetworkedPrinterOutputDevice.py @@ -28,7 +28,7 @@ class AuthState(IntEnum): class NetworkedPrinterOutputDevice(PrinterOutputDevice): authenticationStateChanged = pyqtSignal() - def __init__(self, device_id, address: str, properties: Dict[bytes, bytes], connection_type: ConnectionType = ConnectionType.networkConnection, parent: QObject = None) -> None: + def __init__(self, device_id, address: str, properties: Dict[bytes, bytes], connection_type: ConnectionType = ConnectionType.NetworkConnection, parent: QObject = None) -> None: super().__init__(device_id = device_id, connection_type = connection_type, parent = parent) self._manager = None # type: Optional[QNetworkAccessManager] self._last_manager_create_time = None # type: Optional[float] @@ -125,7 +125,7 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): if self._connection_state_before_timeout is None: self._connection_state_before_timeout = self._connection_state - self.setConnectionState(ConnectionState.closed) + self.setConnectionState(ConnectionState.Closed) # We need to check if the manager needs to be re-created. If we don't, we get some issues when OSX goes to # sleep. @@ -133,7 +133,7 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): if self._last_manager_create_time is None or time() - self._last_manager_create_time > self._recreate_network_manager_time: self._createNetworkManager() assert(self._manager is not None) - elif self._connection_state == ConnectionState.closed: + elif self._connection_state == ConnectionState.Closed: # Go out of timeout. if self._connection_state_before_timeout is not None: # sanity check, but it should never be None here self.setConnectionState(self._connection_state_before_timeout) @@ -285,8 +285,8 @@ class NetworkedPrinterOutputDevice(PrinterOutputDevice): self._last_response_time = time() - if self._connection_state == ConnectionState.connecting: - self.setConnectionState(ConnectionState.connected) + if self._connection_state == ConnectionState.Connecting: + self.setConnectionState(ConnectionState.Connected) callback_key = reply.url().toString() + str(reply.operation()) try: diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 3a72fba4e3..51be3c0465 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -28,18 +28,20 @@ i18n_catalog = i18nCatalog("cura") ## The current processing state of the backend. class ConnectionState(IntEnum): - closed = 0 - connecting = 1 - connected = 2 - busy = 3 + Closed = 0 + Connecting = 1 + Connected = 2 + Busy = 3 error = 4 + class ConnectionType(IntEnum): none = 0 - usbConnection = 1 - networkConnection = 2 - clusterConnection = 3 - cloudConnection = 4 + UsbConnection = 1 + NetworkConnection = 2 + ClusterConnection = 3 + CloudConnection = 4 + ## Printer output device adds extra interface options on top of output device. # @@ -89,7 +91,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._update_timer.setSingleShot(False) self._update_timer.timeout.connect(self._update) - self._connection_state = ConnectionState.closed #type: ConnectionState + self._connection_state = ConnectionState.Closed #type: ConnectionState self._connection_type = connection_type self._firmware_updater = None #type: Optional[FirmwareUpdater] @@ -117,7 +119,7 @@ class PrinterOutputDevice(QObject, OutputDevice): callback(QMessageBox.Yes) def isConnected(self) -> bool: - return self._connection_state != ConnectionState.closed and self._connection_state != ConnectionState.error + return self._connection_state != ConnectionState.Closed and self._connection_state != ConnectionState.error def setConnectionState(self, connection_state: ConnectionState) -> None: if self._connection_state != connection_state: @@ -191,13 +193,13 @@ class PrinterOutputDevice(QObject, OutputDevice): ## Attempt to establish connection def connect(self) -> None: - self.setConnectionState(ConnectionState.connecting) + self.setConnectionState(ConnectionState.Connecting) self._update_timer.start() ## Attempt to close the connection def close(self) -> None: self._update_timer.stop() - self.setConnectionState(ConnectionState.closed) + self.setConnectionState(ConnectionState.Closed) ## Ensure that close gets called when object is destroyed def __del__(self) -> None: diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 206654ff88..d85cbeb27b 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -55,7 +55,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): clusterPrintersChanged = pyqtSignal() def __init__(self, device_id, address, properties, parent = None) -> None: - super().__init__(device_id = device_id, address = address, properties=properties, connection_type = ConnectionType.clusterConnection, parent = parent) + super().__init__(device_id = device_id, address = address, properties=properties, connection_type = ConnectionType.ClusterConnection, parent = parent) self._api_prefix = "/cluster-api/v1/" self._number_of_extruders = 2 diff --git a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py index 0ae9e8a004..3ce0460d6b 100644 --- a/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/LegacyUM3OutputDevice.py @@ -44,7 +44,7 @@ i18n_catalog = i18nCatalog("cura") # 5. As a final step, we verify the authentication, as this forces the QT manager to setup the authenticator. class LegacyUM3OutputDevice(NetworkedPrinterOutputDevice): def __init__(self, device_id, address: str, properties, parent = None) -> None: - super().__init__(device_id = device_id, address = address, properties = properties, connection_type = ConnectionType.networkConnection, parent = parent) + super().__init__(device_id = device_id, address = address, properties = properties, connection_type = ConnectionType.NetworkConnection, parent = parent) self._api_prefix = "/api/v1/" self._number_of_extruders = 2 diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index a8cb240b03..08cf29baf4 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -29,7 +29,7 @@ catalog = i18nCatalog("cura") class USBPrinterOutputDevice(PrinterOutputDevice): def __init__(self, serial_port: str, baud_rate: Optional[int] = None) -> None: - super().__init__(serial_port, connection_type=ConnectionType.usbConnection) + super().__init__(serial_port, connection_type=ConnectionType.UsbConnection) self.setName(catalog.i18nc("@item:inmenu", "USB printing")) self.setShortDescription(catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print via USB")) self.setDescription(catalog.i18nc("@info:tooltip", "Print via USB")) @@ -179,7 +179,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): return CuraApplication.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerStackChanged) self._onGlobalContainerStackChanged() - self.setConnectionState(ConnectionState.connected) + self.setConnectionState(ConnectionState.Connected) self._update_thread.start() def _onGlobalContainerStackChanged(self): @@ -208,7 +208,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._sendCommand(command) def _sendCommand(self, command: Union[str, bytes]): - if self._serial is None or self._connection_state != ConnectionState.connected: + if self._serial is None or self._connection_state != ConnectionState.Connected: return new_command = cast(bytes, command) if type(command) is bytes else cast(str, command).encode() # type: bytes @@ -222,7 +222,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._command_received.set() def _update(self): - while self._connection_state == ConnectionState.connected and self._serial is not None: + while self._connection_state == ConnectionState.Connected and self._serial is not None: try: line = self._serial.readline() except: diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index bd207d9d96..d4c0d1828e 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -66,7 +66,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin): return changed_device = self._usb_output_devices[serial_port] - if changed_device.connectionState == ConnectionState.connected: + if changed_device.connectionState == ConnectionState.Connected: self.getOutputDeviceManager().addOutputDevice(changed_device) else: self.getOutputDeviceManager().removeOutputDevice(serial_port) From 0aa49270ebb53521b3364ce5ab795b51d3e3adba Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 09:57:40 +0100 Subject: [PATCH 0865/1039] Remove unused function checkConnectionType() CURA-6011 --- cura/PrinterOutputDevice.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 51be3c0465..dce470f442 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -126,9 +126,6 @@ class PrinterOutputDevice(QObject, OutputDevice): self._connection_state = connection_state self.connectionStateChanged.emit(self._id) - def checkConnectionType(self, connection_type: ConnectionType) -> bool: - return connection_type == self._connection_type - def getConnectionType(self) -> ConnectionType: return self._connection_type From 644944bc4171a98b9abd8ee54493d967d6732779 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 10:00:18 +0100 Subject: [PATCH 0866/1039] Remove unused function setConnectionType() CURA-6011 --- cura/PrinterOutputDevice.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index dce470f442..0b2f10c570 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -129,10 +129,6 @@ class PrinterOutputDevice(QObject, OutputDevice): def getConnectionType(self) -> ConnectionType: return self._connection_type - def setConnectionType(self, new_connection_type: ConnectionType) -> None: - if self._connection_type != new_connection_type: - self._connection_type = new_connection_type - @pyqtProperty(str, notify = connectionStateChanged) def connectionState(self) -> ConnectionState: return self._connection_state From 3e1993d87679c0d29f3df5cc1a14962b32ccb18a Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 10:10:54 +0100 Subject: [PATCH 0867/1039] Rename Enum name to camal cases CURA-6011 --- cura/PrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 0b2f10c570..f6d15f5a4a 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -32,7 +32,7 @@ class ConnectionState(IntEnum): Connecting = 1 Connected = 2 Busy = 3 - error = 4 + Error = 4 class ConnectionType(IntEnum): From bb1bf14a0182710ebb5c08fcbc8248e8d67c711e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 10:46:31 +0100 Subject: [PATCH 0868/1039] Prevent rating when user is not logged in CURA-6013 --- plugins/Toolbox/resources/qml/RatingWidget.qml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index 9d9eb8bca8..2623d13c0e 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -25,7 +25,10 @@ Item acceptedButtons: Qt.NoButton onExited: { - ratingWidget.indexHovered = -1 + if(ratingWidget.canRate) + { + ratingWidget.indexHovered = -1 + } } Row @@ -87,7 +90,13 @@ Item return "#5a5a5a" } } - onClicked: rated(index + 1) // Notify anyone who cares about this. + onClicked: + { + if(ratingWidget.canRate) + { + rated(index + 1) // Notify anyone who cares about this. + } + } } } } From 8bb8ae8652d1abb7f153aa8bcd309dd183b2b262 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 10:48:23 +0100 Subject: [PATCH 0869/1039] Rename ConnectionType.none to ConnectionType.Unknown CURA-6011 Cannot use None --- cura/PrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index f6d15f5a4a..b664e30d0b 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -36,7 +36,7 @@ class ConnectionState(IntEnum): class ConnectionType(IntEnum): - none = 0 + Unknown = 0 UsbConnection = 1 NetworkConnection = 2 ClusterConnection = 3 From 99cee1dfe766b16b5a9b0cedf3c439ca7ded39b5 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 10:54:52 +0100 Subject: [PATCH 0870/1039] Use double-quotes for custom type hinting in functions CURA-6011 --- cura/PrinterOutputDevice.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index b664e30d0b..2db03a4e87 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -70,7 +70,7 @@ class PrinterOutputDevice(QObject, OutputDevice): # Signal to indicate that the configuration of one of the printers has changed. uniqueConfigurationsChanged = pyqtSignal() - def __init__(self, device_id: str, connection_type: ConnectionType, parent: QObject = None) -> None: + def __init__(self, device_id: str, connection_type: "ConnectionType", parent: QObject = None) -> None: super().__init__(device_id = device_id, parent = parent) # type: ignore # MyPy complains with the multiple inheritance self._printers = [] # type: List[PrinterOutputModel] @@ -119,18 +119,18 @@ class PrinterOutputDevice(QObject, OutputDevice): callback(QMessageBox.Yes) def isConnected(self) -> bool: - return self._connection_state != ConnectionState.Closed and self._connection_state != ConnectionState.error + return self._connection_state != ConnectionState.Closed and self._connection_state != ConnectionState.Error - def setConnectionState(self, connection_state: ConnectionState) -> None: + def setConnectionState(self, connection_state: "ConnectionState") -> None: if self._connection_state != connection_state: self._connection_state = connection_state self.connectionStateChanged.emit(self._id) - def getConnectionType(self) -> ConnectionType: + def getConnectionType(self) -> "ConnectionType": return self._connection_type @pyqtProperty(str, notify = connectionStateChanged) - def connectionState(self) -> ConnectionState: + def connectionState(self) -> "ConnectionState": return self._connection_state def _update(self) -> None: From aba3b6dd8ee66ea05273e8f0ec74ae7a9c06611b Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 10:55:34 +0100 Subject: [PATCH 0871/1039] Rename setKey() and add docs CURA-6011 --- .../resources/qml/DiscoverUM3Action.qml | 2 +- plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml index 2c9ab2df03..80b5c2f99e 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml @@ -28,7 +28,7 @@ Cura.MachineAction // Check if there is another instance with the same key if (!manager.existsKey(printerKey)) { - manager.setKey(base.selectedDevice) + manager.associateActiveMachineWithPrinterDevice(base.selectedDevice) manager.setGroupName(printerName) // TODO To change when the groups have a name completed() } diff --git a/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py b/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py index 9cd21de036..2e59810317 100644 --- a/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py +++ b/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py @@ -3,7 +3,7 @@ import os.path import time -from typing import Optional +from typing import Optional, TYPE_CHECKING from PyQt5.QtCore import pyqtSignal, pyqtProperty, pyqtSlot, QObject @@ -13,10 +13,12 @@ from UM.i18n import i18nCatalog from cura.CuraApplication import CuraApplication from cura.MachineAction import MachineAction -from cura.PrinterOutputDevice import PrinterOutputDevice from .UM3OutputDevicePlugin import UM3OutputDevicePlugin +if TYPE_CHECKING: + from cura.PrinterOutputDevice import PrinterOutputDevice + catalog = i18nCatalog("cura") @@ -117,8 +119,10 @@ class DiscoverUM3Action(MachineAction): # Ensure that the connection states are refreshed. self._network_plugin.reCheckConnections() + # Associates the currently active machine with the given printer device. The network connection information will be + # stored into the metadata of the currently active machine. @pyqtSlot(QObject) - def setKey(self, printer_device: Optional[PrinterOutputDevice]) -> None: + def associateActiveMachineWithPrinterDevice(self, printer_device: Optional["PrinterOutputDevice"]) -> None: Logger.log("d", "Attempting to set the network key of the active machine to %s", printer_device.key) global_container_stack = CuraApplication.getInstance().getGlobalContainerStack() if global_container_stack: From 450f301c8c1211684db866eee9e1d8573a4d8665 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 10:56:13 +0100 Subject: [PATCH 0872/1039] Fix binding loop CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 0e183c2860..95c3a20e1e 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -57,7 +57,6 @@ Item top: thumbnail.top left: thumbnail.right leftMargin: UM.Theme.getSize("default_margin").width - bottomMargin: UM.Theme.getSize("default_margin").height } text: details === null ? "" : (details.name || "") font: UM.Theme.getFont("large") @@ -226,13 +225,6 @@ Item renderType: Text.NativeRendering } } - Rectangle - { - color: UM.Theme.getColor("lining") - width: parent.width - height: UM.Theme.getSize("default_lining").height - anchors.bottom: parent.bottom - } } ToolboxDetailList { From 7616f9c97db92a7b213bd45232bb419e51581436 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 10:59:59 +0100 Subject: [PATCH 0873/1039] Make hardcoded color themeable CURA-6013 --- plugins/Toolbox/resources/qml/RatingWidget.qml | 4 ++-- plugins/Toolbox/resources/qml/SmallRatingWidget.qml | 2 +- resources/themes/cura-light/theme.json | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index 2623d13c0e..3dcae6d602 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -81,13 +81,13 @@ Item { if(!ratingWidget.canRate) { - return "#5a5a5a" + return UM.Theme.getColor("rating_star") } if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0) && isStarFilled) { return UM.Theme.getColor("primary") } - return "#5a5a5a" + return UM.Theme.getColor("rating_star") } } onClicked: diff --git a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml index 439a7baec0..bab219d294 100644 --- a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml +++ b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml @@ -14,7 +14,7 @@ Row { id: starIcon source: UM.Theme.getIcon("star_filled") - color: model.user_rating == 0 ? "#5a5a5a" : UM.Theme.getColor("primary") + color: model.user_rating == 0 ? UM.Theme.getColor("rating_star") : UM.Theme.getColor("primary") height: UM.Theme.getSize("rating_star").height width: UM.Theme.getSize("rating_star").width } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 969f5666a6..16f885c0b5 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -160,6 +160,8 @@ "extruder_button_material_border": [255, 255, 255, 255], + "rating_star": [90, 90, 90, 255], + "sync_button_text": [120, 120, 120, 255], "sync_button_text_hovered": [0, 0, 0, 255], From edd4f6e1faa7062299d832ceac2e412a3aec23b6 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 11:02:10 +0100 Subject: [PATCH 0874/1039] Fix some minor QML warnings CURA-6013 --- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 95c3a20e1e..92b9fb1198 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -138,8 +138,8 @@ Item { id: rating visible: details.type == "plugin" - packageId: details.id - userRating: details.user_rating + packageId: details.id != undefined ? details.id: "" + userRating: details.user_rating != undefined ? details.user_rating: 0 canRate: toolbox.isInstalled(details.id) && Cura.API.account.isLoggedIn onRated: From 5e4e52e6fc8fc912e9c43492f418cb77a6c12655 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 11:09:48 +0100 Subject: [PATCH 0875/1039] Fix blue square being shown in selector if no icon is set CURA-5876 --- resources/qml/PrinterSelector/MachineSelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index db9c38b9f1..fb8f0a58e1 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -41,7 +41,7 @@ Cura.ExpandablePopup } font: UM.Theme.getFont("medium") iconColor: UM.Theme.getColor("machine_selector_printer_icon") - iconSize: UM.Theme.getSize("machine_selector_icon").width + iconSize: source != "" ? UM.Theme.getSize("machine_selector_icon").width: 0 UM.RecolorImage { From 4252b956039f4875e63735944ee8d1f36d5c1cb8 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 11:28:18 +0100 Subject: [PATCH 0876/1039] Make ConnectionType Enum type accessible to QML CURA-6011 --- cura/CuraApplication.py | 3 +++ cura/PrinterOutputDevice.py | 8 +++++++- resources/qml/PrinterSelector/MachineSelectorList.qml | 9 ++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7e11fd4d59..a50d7d55c8 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -113,6 +113,7 @@ from cura.Settings.CuraFormulaFunctions import CuraFormulaFunctions from cura.ObjectsModel import ObjectsModel +from cura.PrinterOutputDevice import PrinterOutputDevice from cura.PrinterOutput.NetworkMJPGImage import NetworkMJPGImage from UM.FlameProfiler import pyqtSlot @@ -975,6 +976,8 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, "ContainerManager", ContainerManager.getInstance) qmlRegisterType(SidebarCustomMenuItemsModel, "Cura", 1, 0, "SidebarCustomMenuItemsModel") + qmlRegisterType(PrinterOutputDevice, "Cura", 1, 0, "PrinterOutputDevice") + from cura.API import CuraAPI qmlRegisterSingletonType(CuraAPI, "Cura", 1, 1, "API", self.getCuraAPI) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 2db03a4e87..298c690b01 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -4,7 +4,7 @@ from UM.Decorators import deprecated from UM.i18n import i18nCatalog from UM.OutputDevice.OutputDevice import OutputDevice -from PyQt5.QtCore import pyqtProperty, pyqtSignal, QObject, QTimer, QUrl +from PyQt5.QtCore import pyqtProperty, pyqtSignal, QObject, QTimer, QUrl, Q_ENUMS from PyQt5.QtWidgets import QMessageBox from UM.Logger import Logger @@ -54,6 +54,12 @@ class ConnectionType(IntEnum): # For all other uses it should be used in the same way as a "regular" OutputDevice. @signalemitter class PrinterOutputDevice(QObject, OutputDevice): + + # Put ConnectionType here with Q_ENUMS() so it can be registered as a QML type and accessible via QML, and there is + # no need to remember what those Enum integer values mean. + ConnectionType = ConnectionType + Q_ENUMS(ConnectionType) + printersChanged = pyqtSignal() connectionStateChanged = pyqtSignal(str) acceptsCommandsChanged = pyqtSignal() diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 3324b9948b..bc3fe105a2 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -30,9 +30,16 @@ Column model: UM.ContainerStacksModel { id: networkedPrintersModel + property var umConnectionTypes: [Cura.PrinterOutputDevice.NetworkConnection, + Cura.PrinterOutputDevice.ClusterConnection, + Cura.PrinterOutputDevice.CloudConnection + ] filter: { - "type": "machine", "um_network_key": "*", "hidden": "False", "um_connection_type": "[2,3,4]" + "type": "machine", + "um_network_key": "*", + "hidden": "False", + "um_connection_type": "[" + umConnectionTypes.join(",") + "]" } } From 15cd2a926975403ad0e225ffa0b2e63beadcab1b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 11:36:40 +0100 Subject: [PATCH 0877/1039] Changed textColor of recommended infill slider text to be themed. This is required to make the dark theme work correctly --- .../Recommended/RecommendedInfillDensitySelector.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 2971415948..0da53cc1c1 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -144,6 +144,7 @@ Item anchors.horizontalCenter: parent.horizontalCenter y: UM.Theme.getSize("thin_margin").height renderType: Text.NativeRendering + color: UM.Theme.getColor("quality_slider_available") } } } From a18203b2864358dfcde1206bf51250e523e6af91 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 11:37:30 +0100 Subject: [PATCH 0878/1039] Fix typing CURA-6011 --- cura/PrinterOutputDevice.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 298c690b01..ed65d5d700 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -57,7 +57,6 @@ class PrinterOutputDevice(QObject, OutputDevice): # Put ConnectionType here with Q_ENUMS() so it can be registered as a QML type and accessible via QML, and there is # no need to remember what those Enum integer values mean. - ConnectionType = ConnectionType Q_ENUMS(ConnectionType) printersChanged = pyqtSignal() From 6a3ac9955162885c81859354d366d82cad40e42f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 11:59:22 +0100 Subject: [PATCH 0879/1039] Ensure that all icons use the same color from theme. Also added some fixes for the dark theme --- plugins/PrepareStage/PrepareMenu.qml | 2 +- resources/qml/ActionPanel/PrintInformationWidget.qml | 2 +- resources/qml/IconWithText.qml | 4 ++-- resources/qml/Toolbar.qml | 2 +- resources/themes/cura-dark/theme.json | 6 ++++++ resources/themes/cura-light/theme.json | 2 ++ 6 files changed, 13 insertions(+), 5 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index b7980bc30b..b62d65254d 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -100,7 +100,7 @@ Item source: UM.Theme.getIcon("load") width: UM.Theme.getSize("button_icon").width height: UM.Theme.getSize("button_icon").height - color: UM.Theme.getColor("toolbar_button_text") + color: UM.Theme.getColor("icon") sourceSize.height: height } diff --git a/resources/qml/ActionPanel/PrintInformationWidget.qml b/resources/qml/ActionPanel/PrintInformationWidget.qml index 554273a818..0826e2c715 100644 --- a/resources/qml/ActionPanel/PrintInformationWidget.qml +++ b/resources/qml/ActionPanel/PrintInformationWidget.qml @@ -15,7 +15,7 @@ UM.RecolorImage width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - color: popup.opened ? UM.Theme.getColor("primary") : UM.Theme.getColor("text_medium") + color: UM.Theme.getColor("icon") MouseArea { diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index 5530740040..f9220380f2 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -18,7 +18,7 @@ Item property alias color: label.color property alias text: label.text property alias font: label.font - + property alias iconColor: icon.color property real margin: UM.Theme.getSize("narrow_margin").width // These properties can be used in combination with layouts. @@ -39,7 +39,7 @@ Item width: UM.Theme.getSize("section_icon").width height: UM.Theme.getSize("section_icon").height - color: label.color + color: UM.Theme.getColor("icon") anchors { diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index 1e335472d4..c3c4c1cd6d 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -67,7 +67,7 @@ Item toolItem: UM.RecolorImage { source: UM.Theme.getIcon(model.icon) != "" ? UM.Theme.getIcon(model.icon) : "file:///" + model.location + "/" + model.icon - color: UM.Theme.getColor("toolbar_button_text") + color: UM.Theme.getColor("icon") sourceSize: UM.Theme.getSize("button_icon") } diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 8540abf61a..2fa96c8897 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -17,6 +17,12 @@ "border": [127, 127, 127, 255], "secondary": [95, 95, 95, 255], + "icon": [204, 204, 204, 255], + "toolbar_background": [39, 44, 48, 255], + "toolbar_button_active": [95, 95, 95, 255], + "toolbar_button_hover": [95, 95, 95, 255], + "toolbar_button_active_hover": [95, 95, 95, 255], + "main_window_header_button_text_inactive": [128, 128, 128, 255], "main_window_header_button_text_hovered": [255, 255, 255, 255], diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 6d76004739..b64190dd23 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -83,6 +83,8 @@ "secondary": [240, 240, 240, 255], "secondary_shadow": [216, 216, 216, 255], + "icon": [8, 7, 63, 255], + "primary_button": [38, 113, 231, 255], "primary_button_shadow": [27, 95, 202, 255], "primary_button_hover": [81, 145, 247, 255], From c3aca8907cdfe83439b863912dcf3291142980dc Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 12:02:52 +0100 Subject: [PATCH 0880/1039] Fix extruder number not being visible in dark theme --- resources/qml/ExtruderIcon.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index bb0b347b7e..c44b6e0fa3 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -49,6 +49,7 @@ Item anchors.centerIn: parent text: index + 1 font: UM.Theme.getFont("very_small") + color: UM.Theme.getColor("text") width: contentWidth height: contentHeight visible: extruderEnabled From a02bccf74d587793796c1737de455e74856cdff8 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 13:00:03 +0100 Subject: [PATCH 0881/1039] Fix NozzleModel to work with new ListModel data update CURA-6015 ListModels should not modify items directly. All ListModels should use setItems() and the insertions/removals/modifications will be done in setItems() itself. --- cura/Machines/Models/NozzleModel.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/cura/Machines/Models/NozzleModel.py b/cura/Machines/Models/NozzleModel.py index 9d97106d6b..785ff5b9b9 100644 --- a/cura/Machines/Models/NozzleModel.py +++ b/cura/Machines/Models/NozzleModel.py @@ -33,8 +33,6 @@ class NozzleModel(ListModel): def _update(self): Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__)) - self.items.clear() - global_stack = self._machine_manager.activeMachine if global_stack is None: self.setItems([]) From 8a4a1c9d49ab684a8bfdadfd87166fb494463277 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 14 Dec 2018 13:18:00 +0100 Subject: [PATCH 0882/1039] Don't let print info take space if invisible This way there is a little bit more space for the text 'No time estimation available', which was previously abbreviated to 'No time estimation availa...'. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 2 +- resources/qml/ActionPanel/PrintInformationWidget.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 3f53abf28f..ad5a708898 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -41,7 +41,7 @@ Column { left: parent.left right: printInformationPanel.left - rightMargin: UM.Theme.getSize("thin_margin").height + rightMargin: printInformationPanel.visible ? UM.Theme.getSize("thin_margin").width : 0 } Cura.IconWithText diff --git a/resources/qml/ActionPanel/PrintInformationWidget.qml b/resources/qml/ActionPanel/PrintInformationWidget.qml index 0826e2c715..2e108b05d7 100644 --- a/resources/qml/ActionPanel/PrintInformationWidget.qml +++ b/resources/qml/ActionPanel/PrintInformationWidget.qml @@ -12,7 +12,7 @@ UM.RecolorImage id: widget source: UM.Theme.getIcon("info") - width: UM.Theme.getSize("section_icon").width + width: visible ? UM.Theme.getSize("section_icon").width : 0 height: UM.Theme.getSize("section_icon").height color: UM.Theme.getColor("icon") From a010823a4e39902d0bfadb807edeb180e649b108 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 14 Dec 2018 13:20:43 +0100 Subject: [PATCH 0883/1039] Fix warning when active stage is not yet instantiated Edit: Originally this was more or less the same fix as what Diego just did at the same time, which caused a merge conflict, but I think my solution is more elegant than the ternary operator that was originally there so I'm keeping mine. --- resources/qml/MainWindow/MainWindowHeader.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 8f6957d9cd..eecf2a1e73 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -54,7 +54,7 @@ Item { text: model.name.toUpperCase() checkable: true - checked: UM.Controller.activeStage != null ? model.id == UM.Controller.activeStage.stageId : false + checked: UM.Controller.activeStage !== null && model.id == UM.Controller.activeStage.stageId anchors.verticalCenter: parent.verticalCenter exclusiveGroup: mainWindowHeaderMenuGroup From d379f9477508ad1c248ba308d551e5f3bb97909b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 13:23:28 +0100 Subject: [PATCH 0884/1039] Make the dark theme a bit more readable --- resources/qml/ExtruderIcon.qml | 2 +- .../qml/PrintSetupSelector/Custom/CustomPrintSetup.qml | 2 ++ resources/themes/cura-dark/theme.json | 10 +++++----- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index c44b6e0fa3..fcc49c9040 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -49,7 +49,7 @@ Item anchors.centerIn: parent text: index + 1 font: UM.Theme.getFont("very_small") - color: UM.Theme.getColor("text") + color: UM.Theme.getColor("text") width: contentWidth height: contentHeight visible: extruderEnabled diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index b28c9ceb46..26ca4deec6 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -113,9 +113,11 @@ Item } z: tabBar.z - 1 // Don't show the border when only one extruder + border.color: tabBar.visible ? UM.Theme.getColor("lining") : "transparent" border.width: UM.Theme.getSize("default_lining").width + color: UM.Theme.getColor("main_background") Cura.SettingView { anchors diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 2fa96c8897..cade342488 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -99,11 +99,11 @@ "scrollbar_handle_hover": [255, 255, 255, 255], "scrollbar_handle_down": [255, 255, 255, 255], - "setting_category": [39, 44, 48, 255], - "setting_category_disabled": [39, 44, 48, 255], - "setting_category_hover": [39, 44, 48, 255], - "setting_category_active": [39, 44, 48, 255], - "setting_category_active_hover": [39, 44, 48, 255], + "setting_category": [75, 80, 83, 255], + "setting_category_disabled": [75, 80, 83, 255], + "setting_category_hover": [75, 80, 83, 255], + "setting_category_active": [75, 80, 83, 255], + "setting_category_active_hover": [75, 80, 83, 255], "setting_category_text": [255, 255, 255, 152], "setting_category_disabled_text": [255, 255, 255, 101], "setting_category_hover_text": [255, 255, 255, 204], From 475b008310376d0e26fe7649aef870baa0a366e1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 14 Dec 2018 13:27:26 +0100 Subject: [PATCH 0885/1039] Reduce minimum window size slightly This way it just fits on the screen of a 13 inch MacBook Air. --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index b64190dd23..965fe63179 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -349,7 +349,7 @@ }, "sizes": { - "window_minimum_size": [106, 66], + "window_minimum_size": [100, 60], "main_window_header": [0.0, 4.0], "main_window_header_button": [8, 2.35], From 7fc5742b7f328b0a46b1708526eaf8bf3f5aba33 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 15:01:40 +0100 Subject: [PATCH 0886/1039] Add monitor carousel Contributes to CL-1151 --- .../resources/qml/MonitorCarousel.qml | 231 ++++++++++++++++++ .../resources/qml/MonitorPrinterCard.qml | 2 +- .../resources/qml/MonitorStage.qml | 21 +- 3 files changed, 235 insertions(+), 19 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml new file mode 100644 index 0000000000..7d56b2f294 --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -0,0 +1,231 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.3 +import QtQuick.Controls 2.0 +import QtGraphicalEffects 1.0 +import UM 1.3 as UM + +Item +{ + id: base + + property var currentIndex: 0 + property var tileWidth: 834 * screenScaleFactor // TODO: Theme! + property var tileHeight: 216 * screenScaleFactor // TODO: Theme! + property var tileSpacing: 60 * screenScaleFactor // TODO: Theme! + property var maxOffset: (OutputDevice.printers.length - 1) * (tileWidth + tileSpacing) + + height: centerSection.height + width: maximumWidth + + Item + { + id: leftHint + anchors + { + right: leftButton.left + rightMargin: 12 * screenScaleFactor + left: parent.left + } + height: parent.height + z: 10 + LinearGradient + { + anchors.fill: parent + start: Qt.point(0, 0) + end: Qt.point(leftHint.width, 0) + gradient: Gradient + { + GradientStop + { + position: 0.0 + color: "#fff6f6f6" + } + GradientStop + { + position: 1.0 + color: "#00f6f6f6" + } + } + } + } + + Button + { + id: leftButton + anchors + { + verticalCenter: parent.verticalCenter + right: centerSection.left + rightMargin: 12 * screenScaleFactor + } + width: 36 * screenScaleFactor // TODO: Theme! + height: 72 * screenScaleFactor // TODO: Theme! + visible: currentIndex > 0 + z: 10 + onClicked: navigateTo(currentIndex - 1) + background: Rectangle + { + color: "#ffffff" // TODO: Theme! + border.width: 1 * screenScaleFactor // TODO: Theme! + border.color: "#cccccc" // TODO: Theme! + radius: 2 * screenScaleFactor // TODO: Theme! + } + contentItem: Item + { + anchors.fill: parent + UM.RecolorImage + { + anchors.centerIn: parent + width: 18 + height: 18 + sourceSize.width: 18 + sourceSize.height: 18 + color: "#666666" // TODO: Theme! + source: UM.Theme.getIcon("arrow_left") + } + } + } + + Item + { + id: centerSection + anchors + { + verticalCenter: parent.verticalCenter + horizontalCenter: parent.horizontalCenter + } + width: tileWidth + height: tiles.height + z: 1 + + Row + { + id: tiles + height: childrenRect.height + width: 5 * tileWidth + 4 * tileSpacing + x: 0 + z: 0 + Behavior on x { NumberAnimation { duration: 100 } } + spacing: 60 * screenScaleFactor // TODO: Theme! + + Repeater + { + model: OutputDevice.printers + MonitorPrinterCard + { + printer: modelData + } + } + } + } + + Button + { + id: rightButton + anchors + { + verticalCenter: parent.verticalCenter + left: centerSection.right + leftMargin: 12 * screenScaleFactor + } + width: 36 * screenScaleFactor // TODO: Theme! + height: 72 * screenScaleFactor // TODO: Theme! + z: 10 + visible: currentIndex < OutputDevice.printers.length - 1 + onClicked: navigateTo(currentIndex + 1) + background: Rectangle + { + color: "#ffffff" // TODO: Theme! + border.width: 1 * screenScaleFactor // TODO: Theme! + border.color: "#cccccc" // TODO: Theme! + radius: 2 * screenScaleFactor // TODO: Theme! + } + contentItem: Item + { + anchors.fill: parent + UM.RecolorImage + { + anchors.centerIn: parent + width: 18 + height: 18 + sourceSize.width: 18 + sourceSize.height: 18 + color: "#666666" // TODO: Theme! + source: UM.Theme.getIcon("arrow_right") + } + } + } + + Item + { + id: rightHint + anchors + { + left: rightButton.right + leftMargin: 12 * screenScaleFactor + right: parent.right + } + height: centerSection.height + z: 10 + + LinearGradient + { + anchors.fill: parent + start: Qt.point(0, 0) + end: Qt.point(rightHint.width, 0) + gradient: Gradient + { + GradientStop + { + position: 0.0 + color: "#00f6f6f6" + } + GradientStop + { + position: 1.0 + color: "#fff6f6f6" + } + } + } + } + + Item + { + id: navigationDots + anchors + { + horizontalCenter: centerSection.horizontalCenter + top: centerSection.bottom + topMargin: 36 * screenScaleFactor // TODO: Theme! + } + Row + { + spacing: 8 * screenScaleFactor // TODO: Theme! + Repeater + { + model: OutputDevice.printers + Button + { + background: Rectangle + { + color: model.index == currentIndex ? "#777777" : "#d8d8d8" // TODO: Theme! + radius: Math.floor(width / 2) + width: 12 * screenScaleFactor // TODO: Theme! + height: width + } + onClicked: navigateTo(model.index) + } + } + } + } + + function navigateTo( i ) { + if (i >= 0 && i < OutputDevice.printers.length) + { + tiles.x = -1 * i * (tileWidth + tileSpacing) + currentIndex = i + } + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 1676c51edf..cfeb77cc89 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -26,7 +26,7 @@ Item property var borderSize: 1 * screenScaleFactor // TODO: Theme, and remove from here width: 834 * screenScaleFactor // TODO: Theme! - height: 216 * screenScaleFactor // TODO: Theme! + height: childrenRect.height // Printer portion Rectangle diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 4d59e0eb6b..f77cfee1ef 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -48,32 +48,17 @@ Component } } - ScrollView + Item { id: printers anchors { - left: queue.left - right: queue.right top: parent.top topMargin: 48 * screenScaleFactor // TODO: Theme! } + width: parent.width height: 264 * screenScaleFactor // TODO: Theme! - - Row - { - spacing: 60 * screenScaleFactor // TODO: Theme! - - Repeater - { - model: OutputDevice.printers - - MonitorPrinterCard - { - printer: modelData - } - } - } + MonitorCarousel {} } Item From 3a74511d231d573e7ed910fb8d51080265740ac4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 14 Dec 2018 15:01:56 +0100 Subject: [PATCH 0887/1039] Remove padding from views selector This padding made it break the height of the item for some reason. I guess that is a Qt bug. In any case, the padding shouldn't be there either since the lining is on the inside of the child buttons so the padding only causes a gap to appear on the left and right sides, which looks weird. Contributes to issue CURA-6029. --- resources/qml/ViewsSelector.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index 06d2e662b5..acde7d1f71 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -78,8 +78,6 @@ Cura.ExpandablePopup { id: viewSelectorPopup width: viewSelector.width - 2 * viewSelector.contentPadding - leftPadding: UM.Theme.getSize("default_lining").width - rightPadding: UM.Theme.getSize("default_lining").width // For some reason the height/width of the column gets set to 0 if this is not set... Component.onCompleted: From 5d0da580b9a65c76b9bf21c4d7bcf4470133c1dd Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 15:04:22 +0100 Subject: [PATCH 0888/1039] Fix border colors --- plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml | 2 +- .../UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml | 2 +- .../UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml index 0877a15f00..7778c4e1a2 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml @@ -16,7 +16,7 @@ Item property bool expanded: false property var borderWidth: 1 - property color borderColor: "#EAEAEC" + property color borderColor: "#CCCCCC" property color headerBackgroundColor: "white" property color headerHoverColor: "#f5f5f5" property color drawerBackgroundColor: "white" diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml index d8c5d1ec28..f431ef1c52 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml @@ -26,7 +26,7 @@ Item ExpandableCard { - borderColor: printJob.configurationChanges.length !== 0 ? "#f5a623" : "#EAEAEC" // TODO: Theme! + borderColor: printJob.configurationChanges.length !== 0 ? "#f5a623" : "#CCCCCC" // TODO: Theme! headerItem: Row { height: 48 * screenScaleFactor // TODO: Theme! diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index cfeb77cc89..038f0535f0 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -34,7 +34,7 @@ Item id: printerInfo border { - color: "#EAEAEC" // TODO: Theme! + color: "#CCCCCC" // TODO: Theme! width: borderSize // TODO: Remove once themed } color: "white" // TODO: Theme! @@ -151,7 +151,7 @@ Item } border { - color: printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 ? "#f5a623" : "#EAEAEC" // TODO: Theme! + color: printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 ? "#f5a623" : "#CCCCCC" // TODO: Theme! width: borderSize // TODO: Remove once themed } color: "white" // TODO: Theme! From b2ea597543f58db9e447167f38389e58425237f9 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 15:10:34 +0100 Subject: [PATCH 0889/1039] Fix button color Contributes to CL-1151 --- plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index 7d56b2f294..49d35f794f 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -82,7 +82,7 @@ Item height: 18 sourceSize.width: 18 sourceSize.height: 18 - color: "#666666" // TODO: Theme! + color: "#152950" // TODO: Theme! source: UM.Theme.getIcon("arrow_left") } } @@ -152,7 +152,7 @@ Item height: 18 sourceSize.width: 18 sourceSize.height: 18 - color: "#666666" // TODO: Theme! + color: "#152950" // TODO: Theme! source: UM.Theme.getIcon("arrow_right") } } From ae695b77e6ad8e9ea882c2b20e6ec4922fa6603a Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 14 Dec 2018 15:23:56 +0100 Subject: [PATCH 0890/1039] Add native rendering for QML Label CURA-6013 --- plugins/Toolbox/resources/qml/SmallRatingWidget.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml index bab219d294..686058f4e8 100644 --- a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml +++ b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml @@ -29,5 +29,6 @@ Row anchors.verticalCenter: starIcon.verticalCenter color: starIcon.color font: UM.Theme.getFont("small") + renderType: Text.NativeRendering } } \ No newline at end of file From 2f6a274c0e2b78064fb9ae8a3c6f7766f8623e1a Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 15:27:55 +0100 Subject: [PATCH 0891/1039] Small style improvements Contributes to CL-1151 --- .../resources/qml/ExpandableCard.qml | 2 +- .../resources/qml/MonitorCarousel.qml | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml index 7778c4e1a2..f86135ae62 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/ExpandableCard.qml @@ -18,7 +18,7 @@ Item property var borderWidth: 1 property color borderColor: "#CCCCCC" property color headerBackgroundColor: "white" - property color headerHoverColor: "#f5f5f5" + property color headerHoverColor: "#e8f2fc" property color drawerBackgroundColor: "white" property alias headerItem: header.children property alias drawerItem: drawer.children diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index 49d35f794f..cd7c6f177f 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -63,11 +63,12 @@ Item width: 36 * screenScaleFactor // TODO: Theme! height: 72 * screenScaleFactor // TODO: Theme! visible: currentIndex > 0 + hoverEnabled: true z: 10 onClicked: navigateTo(currentIndex - 1) background: Rectangle { - color: "#ffffff" // TODO: Theme! + color: leftButton.hovered ? "#e8f2fc" : "#ffffff" // TODO: Theme! border.width: 1 * screenScaleFactor // TODO: Theme! border.color: "#cccccc" // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme! @@ -79,9 +80,9 @@ Item { anchors.centerIn: parent width: 18 - height: 18 - sourceSize.width: 18 - sourceSize.height: 18 + height: width + sourceSize.width: width + sourceSize.height: width color: "#152950" // TODO: Theme! source: UM.Theme.getIcon("arrow_left") } @@ -135,9 +136,10 @@ Item z: 10 visible: currentIndex < OutputDevice.printers.length - 1 onClicked: navigateTo(currentIndex + 1) + hoverEnabled: true background: Rectangle { - color: "#ffffff" // TODO: Theme! + color: rightButton.hovered ? "#e8f2fc" : "#ffffff" // TODO: Theme! border.width: 1 * screenScaleFactor // TODO: Theme! border.color: "#cccccc" // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme! @@ -149,9 +151,9 @@ Item { anchors.centerIn: parent width: 18 - height: 18 - sourceSize.width: 18 - sourceSize.height: 18 + height: width + sourceSize.width: width + sourceSize.height: width color: "#152950" // TODO: Theme! source: UM.Theme.getIcon("arrow_right") } From 3bd5d141ab74b9e41f85510add3168604c13f5a8 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 15:39:17 +0100 Subject: [PATCH 0892/1039] Add easing and make animation less snappy and awesome Contributes to CL-1151 --- .../UM3NetworkPrinting/resources/qml/MonitorCarousel.qml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index cd7c6f177f..988008dc31 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -108,7 +108,14 @@ Item width: 5 * tileWidth + 4 * tileSpacing x: 0 z: 0 - Behavior on x { NumberAnimation { duration: 100 } } + Behavior on x + { + NumberAnimation + { + duration: 200 + easing.type: Easing.InOutCubic + } + } spacing: 60 * screenScaleFactor // TODO: Theme! Repeater From 30168103b726fb2d49d7d4cc1d563b9a302757a6 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 15:47:36 +0100 Subject: [PATCH 0893/1039] Update MonitorStage.qml --- plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index f77cfee1ef..22badfc8ac 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -15,9 +15,6 @@ Component { id: monitorFrame - property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight") - property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width - height: maximumHeight onVisibleChanged: { @@ -39,11 +36,11 @@ Component gradient: Gradient { GradientStop { position: 0.0 - color: "#f6f6f6" + color: "#f6f6f6" // TODO: Theme! } GradientStop { position: 1.0 - color: "#ffffff" + color: "#ffffff" // TODO: Theme! } } } From 3766effa81dc111d70c0d7ff4563936ec92fc5c4 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 16:04:31 +0100 Subject: [PATCH 0894/1039] Quick fix to prevent monitor stage from overlapping header --- plugins/MonitorStage/MonitorMain.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 1f287fc0fa..1f52ceea51 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -16,6 +16,7 @@ Item color: UM.Theme.getColor("viewport_overlay") anchors.fill: parent + anchors.topMargin: Math.round(stageMenu.height / 2) MouseArea { anchors.fill: parent @@ -29,8 +30,7 @@ Item id: monitorViewComponent anchors.fill: parent - - height: parent.height + anchors.topMargin: Math.round(stageMenu.height / 2) property real maximumWidth: parent.width property real maximumHeight: parent.height From 2789a0fdc43a2eb4c32f2c434ac23b22a83eef1f Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 16:13:35 +0100 Subject: [PATCH 0895/1039] Revert "Quick fix to prevent monitor stage from overlapping header" This reverts commit 3766effa81dc111d70c0d7ff4563936ec92fc5c4. --- plugins/MonitorStage/MonitorMain.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 1f52ceea51..1f287fc0fa 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -16,7 +16,6 @@ Item color: UM.Theme.getColor("viewport_overlay") anchors.fill: parent - anchors.topMargin: Math.round(stageMenu.height / 2) MouseArea { anchors.fill: parent @@ -30,7 +29,8 @@ Item id: monitorViewComponent anchors.fill: parent - anchors.topMargin: Math.round(stageMenu.height / 2) + + height: parent.height property real maximumWidth: parent.width property real maximumHeight: parent.height From ffccbcea2fbe91bef2becc71a90b5d09bf840203 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 16:13:49 +0100 Subject: [PATCH 0896/1039] Anchor to bottom of header background --- resources/qml/Cura.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 2b6f989e0b..573d75e5fa 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -252,7 +252,7 @@ UM.MainWindow anchors { // Align to the top of the stageMenu since the stageMenu may not exist - top: parent.top + top: headerBackground.top left: parent.left right: parent.right bottom: parent.bottom From 9146a775a4c3ae4b83cd7f62d2bf0d945e9caab1 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 14 Dec 2018 16:17:05 +0100 Subject: [PATCH 0897/1039] After resetting the custom settings the quality slider did not update selected value CURA-6028 --- cura/Settings/SimpleModeSettingsManager.py | 11 ++++++----- .../RecommendedQualityProfileSelector.qml | 12 +++++++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py index fce43243bd..210a5794d4 100644 --- a/cura/Settings/SimpleModeSettingsManager.py +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -1,7 +1,7 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty +from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot from UM.Application import Application @@ -16,12 +16,12 @@ class SimpleModeSettingsManager(QObject): self._is_profile_user_created = False # True when profile was custom created by user self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileCustomized) - self._machine_manager.activeQualityGroupChanged.connect(self._updateIsProfileUserCreated) - self._machine_manager.activeQualityChangesGroupChanged.connect(self._updateIsProfileUserCreated) + self._machine_manager.activeQualityGroupChanged.connect(self.updateIsProfileUserCreated) + self._machine_manager.activeQualityChangesGroupChanged.connect(self.updateIsProfileUserCreated) # update on create as the activeQualityChanged signal is emitted before this manager is created when Cura starts self._updateIsProfileCustomized() - self._updateIsProfileUserCreated() + self.updateIsProfileUserCreated() isProfileCustomizedChanged = pyqtSignal() isProfileUserCreatedChanged = pyqtSignal() @@ -61,7 +61,8 @@ class SimpleModeSettingsManager(QObject): def isProfileUserCreated(self): return self._is_profile_user_created - def _updateIsProfileUserCreated(self): + @pyqtSlot() + def updateIsProfileUserCreated(self) -> None: quality_changes_keys = set() if not self._machine_manager.activeMachine: diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 349c6dbb57..e6b3f1b9eb 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -39,7 +39,17 @@ Item { target: Cura.QualityProfilesDropDownMenuModel onItemsChanged: qualityModel.update() - onDataChanged: qualityModel.update() + onDataChanged: + { + // If a custom profile is selected and then a user decides to change any of setting the slider should show + // the reset button. After clicking the reset button the QualityProfilesDropDownMenuModel(ListModel) is + // updated before the property isProfileCustomized is called to update. + if (Cura.SimpleModeSettingsManager.isProfileCustomized) + { + Cura.SimpleModeSettingsManager.updateIsProfileUserCreated() + } + qualityModel.update() + } } Connections { From 74af11d609f7e927f14de92af619a06121cc35ed Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 16:20:08 +0100 Subject: [PATCH 0898/1039] Anchor loader to stage menu vertical center --- resources/qml/Cura.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 573d75e5fa..8ab943b93b 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -252,7 +252,7 @@ UM.MainWindow anchors { // Align to the top of the stageMenu since the stageMenu may not exist - top: headerBackground.top + top: stageMenu.source ? stageMenu.verticalCenter : parent.top left: parent.left right: parent.right bottom: parent.bottom From ef6f666c3e07b0b9c5fd4ab85023d2a9d29433c2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 16:41:07 +0100 Subject: [PATCH 0899/1039] Remove duplicate alias definition Yay. Merges. --- resources/qml/IconWithText.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index dd522031c1..24b6dc7fe2 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -19,7 +19,6 @@ Item property alias color: label.color property alias text: label.text property alias font: label.font - property alias iconColor: icon.color property real margin: UM.Theme.getSize("narrow_margin").width // These properties can be used in combination with layouts. From e877b47e22cb95b2534a7121db73914d4a321d93 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 16:55:48 +0100 Subject: [PATCH 0900/1039] Disable printer cards which are not in focus Contributes to CL-1151 --- .../resources/qml/CameraButton.qml | 18 +++++++++++++----- .../resources/qml/MonitorCarousel.qml | 1 + .../resources/qml/MonitorPrinterCard.qml | 9 ++++++++- .../resources/qml/PrintJobContextMenu.qml | 5 +++-- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml b/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml index 618dbed81c..6f054f9c19 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/CameraButton.qml @@ -8,11 +8,13 @@ import UM 1.3 as UM import Cura 1.0 as Cura Rectangle { + id: base property var iconSource: null; color: "#0a0850" // TODO: Theme! height: width; radius: Math.round(0.5 * width); width: 24 * screenScaleFactor; + property var enabled: true UM.RecolorImage { id: icon; @@ -29,12 +31,18 @@ Rectangle { MouseArea { id: clickArea; anchors.fill: parent; - hoverEnabled: true; + hoverEnabled: base.enabled onClicked: { - if (OutputDevice.activeCameraUrl != "") { - OutputDevice.setActiveCameraUrl(""); - } else { - OutputDevice.setActiveCameraUrl(modelData.cameraUrl); + if (base.enabled) + { + if (OutputDevice.activeCameraUrl != "") + { + OutputDevice.setActiveCameraUrl("") + } + else + { + OutputDevice.setActiveCameraUrl(modelData.cameraUrl) + } } } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index 988008dc31..952ec1e162 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -124,6 +124,7 @@ Item MonitorPrinterCard { printer: modelData + enabled: model.index == currentIndex } } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 038f0535f0..2ca37a7e13 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -25,6 +25,11 @@ Item property var borderSize: 1 * screenScaleFactor // TODO: Theme, and remove from here + // If the printer card's controls are enabled. This is used by the carousel + // to prevent opening the context menu or camera while the printer card is not + // "in focus" + property var enabled: true + width: 834 * screenScaleFactor // TODO: Theme! height: childrenRect.height @@ -124,6 +129,7 @@ Item printJob: printer.activePrintJob width: 36 * screenScaleFactor // TODO: Theme! height: 36 * screenScaleFactor // TODO: Theme! + enabled: base.enabled } CameraButton { @@ -136,6 +142,7 @@ Item bottomMargin: 20 * screenScaleFactor // TODO: Theme! } iconSource: "../svg/icons/camera.svg" + enabled: base.enabled } } @@ -320,7 +327,7 @@ Item implicitHeight: 32 * screenScaleFactor // TODO: Theme! implicitWidth: 96 * screenScaleFactor // TODO: Theme! visible: printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 - onClicked: overrideConfirmationDialog.open() + onClicked: base.enabled ? overrideConfirmationDialog.open() : {} } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml index 1edbf9f6a2..5c5c892dad 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobContextMenu.qml @@ -13,6 +13,7 @@ Item { property var printJob: null; property var started: isStarted(printJob); property var assigned: isAssigned(printJob); + property var enabled: true Button { id: button; @@ -31,8 +32,8 @@ Item { verticalAlignment: Text.AlignVCenter; } height: width; - hoverEnabled: true; - onClicked: parent.switchPopupState(); + hoverEnabled: base.enabled + onClicked: base.enabled ? parent.switchPopupState() : {} text: "\u22EE"; //Unicode; Three stacked points. visible: { if (!printJob) { From 331cd730f11c4b5a486fe7a5e1474c54b0d054fd Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Fri, 14 Dec 2018 16:56:20 +0100 Subject: [PATCH 0901/1039] Improve visual hint that side cards are not in focus Contributes to CL-1151 --- plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index 952ec1e162..ea1449ac8d 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -45,7 +45,7 @@ Item GradientStop { position: 1.0 - color: "#00f6f6f6" + color: "#66f6f6f6" } } } @@ -190,7 +190,7 @@ Item GradientStop { position: 0.0 - color: "#00f6f6f6" + color: "#66f6f6f6" } GradientStop { From 226d05246877a95c46c0799160cbd0015bff714c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 17:10:58 +0100 Subject: [PATCH 0902/1039] Move the machines from machinelist into their own model CURA-6011 --- cura/CuraApplication.py | 2 + cura/PrintersModel.py | 65 ++++++++++++++++ .../src/UM3OutputDevicePlugin.py | 1 + .../qml/PrinterSelector/MachineSelector.qml | 6 ++ .../PrinterSelector/MachineSelectorList.qml | 76 ++++++------------- 5 files changed, 97 insertions(+), 53 deletions(-) create mode 100644 cura/PrintersModel.py diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index a50d7d55c8..c773dae998 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -51,6 +51,7 @@ from cura.Arranging.ArrangeObjectsJob import ArrangeObjectsJob from cura.Arranging.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob from cura.Arranging.ShapeArray import ShapeArray from cura.MultiplyObjectsJob import MultiplyObjectsJob +from cura.PrintersModel import PrintersModel from cura.Scene.ConvexHullDecorator import ConvexHullDecorator from cura.Operations.SetParentOperation import SetParentOperation from cura.Scene.SliceableObjectDecorator import SliceableObjectDecorator @@ -955,6 +956,7 @@ class CuraApplication(QtApplication): qmlRegisterType(MultiBuildPlateModel, "Cura", 1, 0, "MultiBuildPlateModel") qmlRegisterType(InstanceContainer, "Cura", 1, 0, "InstanceContainer") qmlRegisterType(ExtrudersModel, "Cura", 1, 0, "ExtrudersModel") + qmlRegisterType(PrintersModel, "Cura", 1, 0, "PrintersModel") qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel") qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel") diff --git a/cura/PrintersModel.py b/cura/PrintersModel.py new file mode 100644 index 0000000000..83471a2e2a --- /dev/null +++ b/cura/PrintersModel.py @@ -0,0 +1,65 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Qt.ListModel import ListModel + +from PyQt5.QtCore import pyqtProperty, Qt, pyqtSignal + +from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.ContainerStack import ContainerStack + +from cura.PrinterOutputDevice import ConnectionType + +from cura.Settings.GlobalStack import GlobalStack + +class PrintersModel(ListModel): + NameRole = Qt.UserRole + 1 + IdRole = Qt.UserRole + 2 + HasRemoteConnectionRole = Qt.UserRole + 3 + ConnectionTypeRole = Qt.UserRole + 4 + MetaDataRole = Qt.UserRole + 5 + + def __init__(self, parent = None): + super().__init__(parent) + self.addRoleName(self.NameRole, "name") + self.addRoleName(self.IdRole, "id") + self.addRoleName(self.HasRemoteConnectionRole, "hasRemoteConnection") + self.addRoleName(self.ConnectionTypeRole, "connectionType") + self.addRoleName(self.MetaDataRole, "metadata") + self._container_stacks = [] + + # Listen to changes + ContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) + ContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged) + ContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) + self._filter_dict = {} + self._update() + + ## Handler for container added/removed events from registry + def _onContainerChanged(self, container): + # We only need to update when the added / removed container GlobalStack + if isinstance(container, GlobalStack): + self._update() + + ## Handler for container name change events. + def _onContainerNameChanged(self): + self._update() + + def _update(self) -> None: + items = [] + for container in self._container_stacks: + container.nameChanged.disconnect(self._onContainerNameChanged) + + container_stacks = ContainerRegistry.getInstance().findContainerStacks(type = "machine") + + for container_stack in container_stacks: + connection_type = container_stack.getMetaDataEntry("connection_type") + has_remote_connection = connection_type in [str(ConnectionType.NetworkConnection), str(ConnectionType.CloudConnection), str(ConnectionType.ClusterConnection)] + + # TODO: Remove reference to connect group name. + items.append({"name": container_stack.getMetaDataEntry("connect_group_name", container_stack.getName()), + "id": container_stack.getId(), + "hasRemoteConnection": has_remote_connection, + "connectionType": connection_type}) + items.sort(key=lambda i: not i["hasRemoteConnection"]) + self.setItems(items) \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py index b96c508d70..43290c8e44 100644 --- a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py @@ -283,6 +283,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin): global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack and device.getId() == global_container_stack.getMetaDataEntry("um_network_key"): + global_container_stack.setMetaDataEntry("connection_type", str(device.getConnectionType())) device.connect() device.connectionStateChanged.connect(self._onDeviceConnectionStateChanged) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 7cda4f1d2e..6e120e89c7 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -123,6 +123,12 @@ Cura.ExpandablePopup scroll.height = Math.min(height, maximumHeight) popup.height = scroll.height + buttonRow.height } + Component.onCompleted: + { + scroll.height = Math.min(height, maximumHeight) + popup.height = scroll.height + buttonRow.height + } + } } diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index bc3fe105a2..b157f9a4f6 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -7,46 +7,48 @@ import QtQuick.Controls 2.3 import UM 1.2 as UM import Cura 1.0 as Cura -Column +ListView { - id: machineSelectorList + id: listView + height: childrenRect.height + width: 200 + model: Cura.PrintersModel {} + section.property: "hasRemoteConnection" - Label + section.delegate: Label { - text: catalog.i18nc("@label", "Connected printers") - visible: networkedPrintersModel.items.length > 0 + text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Preset printers") + width: parent.width leftPadding: UM.Theme.getSize("default_margin").width - height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 renderType: Text.NativeRendering font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text_medium") verticalAlignment: Text.AlignVCenter } + delegate: MachineSelectorButton + { + text: model.name + width: listView.width + } +} + /* + + + Repeater { id: networkedPrinters - model: UM.ContainerStacksModel + model: Cura.PrintersModel { id: networkedPrintersModel - property var umConnectionTypes: [Cura.PrinterOutputDevice.NetworkConnection, - Cura.PrinterOutputDevice.ClusterConnection, - Cura.PrinterOutputDevice.CloudConnection - ] - filter: - { - "type": "machine", - "um_network_key": "*", - "hidden": "False", - "um_connection_type": "[" + umConnectionTypes.join(",") + "]" - } } delegate: MachineSelectorButton { - text: model.metadata["connect_group_name"] - checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] + text: model.name //model.metadata["connect_group_name"] + //checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null Connections @@ -55,37 +57,5 @@ Column onActiveMachineNetworkGroupNameChanged: checked = Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] } } - } + }*/ - Label - { - text: catalog.i18nc("@label", "Preset printers") - visible: virtualPrintersModel.items.length > 0 - leftPadding: UM.Theme.getSize("default_margin").width - height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 - renderType: Text.NativeRendering - font: UM.Theme.getFont("medium") - color: UM.Theme.getColor("text_medium") - verticalAlignment: Text.AlignVCenter - } - - Repeater - { - id: virtualPrinters - - model: UM.ContainerStacksModel - { - id: virtualPrintersModel - filter: - { - "type": "machine", "um_network_key": null - } - } - - delegate: MachineSelectorButton - { - text: model.name - checked: Cura.MachineManager.activeMachineId == model.id - } - } -} \ No newline at end of file From b8a4d8e80d39c81dbb2670e3236709a3ad4df4ba Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 14 Dec 2018 17:14:56 +0100 Subject: [PATCH 0903/1039] Remove the cluster connection type CURA-6011 --- cura/PrinterOutputDevice.py | 3 +-- cura/PrintersModel.py | 2 +- plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index ed65d5d700..b33993f150 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -39,8 +39,7 @@ class ConnectionType(IntEnum): Unknown = 0 UsbConnection = 1 NetworkConnection = 2 - ClusterConnection = 3 - CloudConnection = 4 + CloudConnection = 3 ## Printer output device adds extra interface options on top of output device. diff --git a/cura/PrintersModel.py b/cura/PrintersModel.py index 83471a2e2a..26b65409c5 100644 --- a/cura/PrintersModel.py +++ b/cura/PrintersModel.py @@ -54,7 +54,7 @@ class PrintersModel(ListModel): for container_stack in container_stacks: connection_type = container_stack.getMetaDataEntry("connection_type") - has_remote_connection = connection_type in [str(ConnectionType.NetworkConnection), str(ConnectionType.CloudConnection), str(ConnectionType.ClusterConnection)] + has_remote_connection = connection_type in [str(ConnectionType.NetworkConnection), str(ConnectionType.CloudConnection)] # TODO: Remove reference to connect group name. items.append({"name": container_stack.getMetaDataEntry("connect_group_name", container_stack.getName()), diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index d85cbeb27b..bebccc54e3 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -55,7 +55,7 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): clusterPrintersChanged = pyqtSignal() def __init__(self, device_id, address, properties, parent = None) -> None: - super().__init__(device_id = device_id, address = address, properties=properties, connection_type = ConnectionType.ClusterConnection, parent = parent) + super().__init__(device_id = device_id, address = address, properties=properties, connection_type = ConnectionType.NetworkConnection, parent = parent) self._api_prefix = "/cluster-api/v1/" self._number_of_extruders = 2 From c235f339ae9e59b2c54a9054028a456658c306f1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 14 Dec 2018 17:29:02 +0100 Subject: [PATCH 0904/1039] Increment API version to 6 All plug-ins now have to re-check whether they are still compatible with the current version of Cura. Contributes to issue CURA-6019. --- cura/CuraApplication.py | 2 +- plugins/3MFReader/plugin.json | 2 +- plugins/3MFWriter/plugin.json | 2 +- plugins/ChangeLogPlugin/plugin.json | 2 +- plugins/CuraEngineBackend/plugin.json | 2 +- plugins/CuraProfileReader/plugin.json | 2 +- plugins/CuraProfileWriter/plugin.json | 2 +- plugins/FirmwareUpdateChecker/plugin.json | 2 +- plugins/FirmwareUpdater/plugin.json | 2 +- plugins/GCodeGzReader/plugin.json | 2 +- plugins/GCodeGzWriter/plugin.json | 2 +- plugins/GCodeProfileReader/plugin.json | 2 +- plugins/GCodeReader/plugin.json | 4 ++-- plugins/GCodeWriter/plugin.json | 2 +- plugins/ImageReader/plugin.json | 2 +- plugins/LegacyProfileReader/plugin.json | 2 +- plugins/MachineSettingsAction/plugin.json | 2 +- plugins/ModelChecker/plugin.json | 2 +- plugins/MonitorStage/plugin.json | 2 +- plugins/PerObjectSettingsTool/plugin.json | 2 +- plugins/PostProcessingPlugin/plugin.json | 2 +- plugins/PrepareStage/plugin.json | 2 +- plugins/PreviewStage/plugin.json | 2 +- plugins/RemovableDriveOutputDevice/plugin.json | 2 +- plugins/SimulationView/plugin.json | 2 +- plugins/SliceInfoPlugin/plugin.json | 2 +- plugins/SolidView/plugin.json | 2 +- plugins/SupportEraser/plugin.json | 2 +- plugins/Toolbox/plugin.json | 2 +- plugins/UFPWriter/plugin.json | 2 +- plugins/UM3NetworkPrinting/plugin.json | 2 +- plugins/USBPrinting/plugin.json | 2 +- plugins/UltimakerMachineActions/plugin.json | 2 +- plugins/UserAgreement/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json | 2 +- plugins/X3DReader/plugin.json | 2 +- plugins/XRayView/plugin.json | 2 +- plugins/XmlMaterialProfile/plugin.json | 2 +- 46 files changed, 47 insertions(+), 47 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 55e37617d5..726197de10 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -134,7 +134,7 @@ except ImportError: CuraVersion = "master" # [CodeStyle: Reflecting imported value] CuraBuildType = "" CuraDebugMode = False - CuraSDKVersion = "5.0.0" + CuraSDKVersion = "6.0.0" class CuraApplication(QtApplication): diff --git a/plugins/3MFReader/plugin.json b/plugins/3MFReader/plugin.json index 5e41975752..d7160e166a 100644 --- a/plugins/3MFReader/plugin.json +++ b/plugins/3MFReader/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides support for reading 3MF files.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/3MFWriter/plugin.json b/plugins/3MFWriter/plugin.json index 9ec4fb0c20..865c3bf026 100644 --- a/plugins/3MFWriter/plugin.json +++ b/plugins/3MFWriter/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides support for writing 3MF files.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/ChangeLogPlugin/plugin.json b/plugins/ChangeLogPlugin/plugin.json index e09a08564a..04d5ce7c51 100644 --- a/plugins/ChangeLogPlugin/plugin.json +++ b/plugins/ChangeLogPlugin/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Shows changes since latest checked version.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/CuraEngineBackend/plugin.json b/plugins/CuraEngineBackend/plugin.json index 111698d8d1..25db9abefd 100644 --- a/plugins/CuraEngineBackend/plugin.json +++ b/plugins/CuraEngineBackend/plugin.json @@ -2,7 +2,7 @@ "name": "CuraEngine Backend", "author": "Ultimaker B.V.", "description": "Provides the link to the CuraEngine slicing backend.", - "api": 5, + "api": "6.0", "version": "1.0.0", "i18n-catalog": "cura" } diff --git a/plugins/CuraProfileReader/plugin.json b/plugins/CuraProfileReader/plugin.json index 66a2a6a56b..adbf376b72 100644 --- a/plugins/CuraProfileReader/plugin.json +++ b/plugins/CuraProfileReader/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides support for importing Cura profiles.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/CuraProfileWriter/plugin.json b/plugins/CuraProfileWriter/plugin.json index 16c8c34152..d576f517de 100644 --- a/plugins/CuraProfileWriter/plugin.json +++ b/plugins/CuraProfileWriter/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides support for exporting Cura profiles.", - "api": 5, + "api": "6.0", "i18n-catalog":"cura" } diff --git a/plugins/FirmwareUpdateChecker/plugin.json b/plugins/FirmwareUpdateChecker/plugin.json index cbbd41e420..4b77a53a62 100644 --- a/plugins/FirmwareUpdateChecker/plugin.json +++ b/plugins/FirmwareUpdateChecker/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Checks for firmware updates.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/FirmwareUpdater/plugin.json b/plugins/FirmwareUpdater/plugin.json index 3e09eab2b5..4098759630 100644 --- a/plugins/FirmwareUpdater/plugin.json +++ b/plugins/FirmwareUpdater/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides a machine actions for updating firmware.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/GCodeGzReader/plugin.json b/plugins/GCodeGzReader/plugin.json index 3bd6a4097d..cea1d0f55c 100644 --- a/plugins/GCodeGzReader/plugin.json +++ b/plugins/GCodeGzReader/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Reads g-code from a compressed archive.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/GCodeGzWriter/plugin.json b/plugins/GCodeGzWriter/plugin.json index 4c6497317b..d725b2649d 100644 --- a/plugins/GCodeGzWriter/plugin.json +++ b/plugins/GCodeGzWriter/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Writes g-code to a compressed archive.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/GCodeProfileReader/plugin.json b/plugins/GCodeProfileReader/plugin.json index 9677628c85..12d8a276da 100644 --- a/plugins/GCodeProfileReader/plugin.json +++ b/plugins/GCodeProfileReader/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides support for importing profiles from g-code files.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/GCodeReader/plugin.json b/plugins/GCodeReader/plugin.json index 75b4d0cd4f..351d6cbc31 100644 --- a/plugins/GCodeReader/plugin.json +++ b/plugins/GCodeReader/plugin.json @@ -1,8 +1,8 @@ { "name": "G-code Reader", - "author": "Victor Larchenko", + "author": "Victor Larchenko, Ultimaker", "version": "1.0.0", "description": "Allows loading and displaying G-code files.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/GCodeWriter/plugin.json b/plugins/GCodeWriter/plugin.json index 3bbbab8b95..78b63a582f 100644 --- a/plugins/GCodeWriter/plugin.json +++ b/plugins/GCodeWriter/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Writes g-code to a file.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/ImageReader/plugin.json b/plugins/ImageReader/plugin.json index 08195863e8..001da0822b 100644 --- a/plugins/ImageReader/plugin.json +++ b/plugins/ImageReader/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Enables ability to generate printable geometry from 2D image files.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/LegacyProfileReader/plugin.json b/plugins/LegacyProfileReader/plugin.json index 179f5444e0..2cd1e9ca2c 100644 --- a/plugins/LegacyProfileReader/plugin.json +++ b/plugins/LegacyProfileReader/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides support for importing profiles from legacy Cura versions.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/MachineSettingsAction/plugin.json b/plugins/MachineSettingsAction/plugin.json index 571658e40a..4587729a9a 100644 --- a/plugins/MachineSettingsAction/plugin.json +++ b/plugins/MachineSettingsAction/plugin.json @@ -3,6 +3,6 @@ "author": "fieldOfView", "version": "1.0.0", "description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/ModelChecker/plugin.json b/plugins/ModelChecker/plugin.json index 3753c0cc88..a210c3bf9f 100644 --- a/plugins/ModelChecker/plugin.json +++ b/plugins/ModelChecker/plugin.json @@ -2,7 +2,7 @@ "name": "Model Checker", "author": "Ultimaker B.V.", "version": "0.1", - "api": 5, + "api": "6.0", "description": "Checks models and print configuration for possible printing issues and give suggestions.", "i18n-catalog": "cura" } diff --git a/plugins/MonitorStage/plugin.json b/plugins/MonitorStage/plugin.json index 88b53840e0..71fc10c5ce 100644 --- a/plugins/MonitorStage/plugin.json +++ b/plugins/MonitorStage/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides a monitor stage in Cura.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } \ No newline at end of file diff --git a/plugins/PerObjectSettingsTool/plugin.json b/plugins/PerObjectSettingsTool/plugin.json index 15fde63387..e5bdc5d3da 100644 --- a/plugins/PerObjectSettingsTool/plugin.json +++ b/plugins/PerObjectSettingsTool/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides the Per Model Settings.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/PostProcessingPlugin/plugin.json b/plugins/PostProcessingPlugin/plugin.json index fea061e93b..ad60312af0 100644 --- a/plugins/PostProcessingPlugin/plugin.json +++ b/plugins/PostProcessingPlugin/plugin.json @@ -2,7 +2,7 @@ "name": "Post Processing", "author": "Ultimaker", "version": "2.2", - "api": 5, + "api": "6.0", "description": "Extension that allows for user created scripts for post processing", "catalog": "cura" } \ No newline at end of file diff --git a/plugins/PrepareStage/plugin.json b/plugins/PrepareStage/plugin.json index f0464313c7..e948b96f6f 100644 --- a/plugins/PrepareStage/plugin.json +++ b/plugins/PrepareStage/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides a prepare stage in Cura.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } \ No newline at end of file diff --git a/plugins/PreviewStage/plugin.json b/plugins/PreviewStage/plugin.json index 9349da2b0e..c9c13fe341 100644 --- a/plugins/PreviewStage/plugin.json +++ b/plugins/PreviewStage/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides a preview stage in Cura.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } \ No newline at end of file diff --git a/plugins/RemovableDriveOutputDevice/plugin.json b/plugins/RemovableDriveOutputDevice/plugin.json index 36bb9ae186..48cd60596c 100644 --- a/plugins/RemovableDriveOutputDevice/plugin.json +++ b/plugins/RemovableDriveOutputDevice/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "description": "Provides removable drive hotplugging and writing support.", "version": "1.0.0", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/SimulationView/plugin.json b/plugins/SimulationView/plugin.json index 93df98068f..dcfbeb305e 100644 --- a/plugins/SimulationView/plugin.json +++ b/plugins/SimulationView/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides the Simulation view.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/SliceInfoPlugin/plugin.json b/plugins/SliceInfoPlugin/plugin.json index 939e5ff235..c2d78e8d78 100644 --- a/plugins/SliceInfoPlugin/plugin.json +++ b/plugins/SliceInfoPlugin/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Submits anonymous slice info. Can be disabled through preferences.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/SolidView/plugin.json b/plugins/SolidView/plugin.json index e70ec224dd..c66e41a7aa 100644 --- a/plugins/SolidView/plugin.json +++ b/plugins/SolidView/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides a normal solid mesh view.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } \ No newline at end of file diff --git a/plugins/SupportEraser/plugin.json b/plugins/SupportEraser/plugin.json index 7af35e0fb5..dc624ecd77 100644 --- a/plugins/SupportEraser/plugin.json +++ b/plugins/SupportEraser/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Creates an eraser mesh to block the printing of support in certain places", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/Toolbox/plugin.json b/plugins/Toolbox/plugin.json index 2557185524..91e9561327 100644 --- a/plugins/Toolbox/plugin.json +++ b/plugins/Toolbox/plugin.json @@ -2,6 +2,6 @@ "name": "Toolbox", "author": "Ultimaker B.V.", "version": "1.0.0", - "api": 5, + "api": "6.0", "description": "Find, manage and install new Cura packages." } diff --git a/plugins/UFPWriter/plugin.json b/plugins/UFPWriter/plugin.json index ab590353e0..b4e05d9346 100644 --- a/plugins/UFPWriter/plugin.json +++ b/plugins/UFPWriter/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides support for writing Ultimaker Format Packages.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/plugin.json b/plugins/UM3NetworkPrinting/plugin.json index d415338374..def02562db 100644 --- a/plugins/UM3NetworkPrinting/plugin.json +++ b/plugins/UM3NetworkPrinting/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "description": "Manages network connections to Ultimaker 3 printers.", "version": "1.0.0", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/USBPrinting/plugin.json b/plugins/USBPrinting/plugin.json index 5d3cba8415..3a58abe7e7 100644 --- a/plugins/USBPrinting/plugin.json +++ b/plugins/USBPrinting/plugin.json @@ -2,7 +2,7 @@ "name": "USB printing", "author": "Ultimaker B.V.", "version": "1.0.1", - "api": 5, + "api": "6.0", "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", "i18n-catalog": "cura" } diff --git a/plugins/UltimakerMachineActions/plugin.json b/plugins/UltimakerMachineActions/plugin.json index b60c7df88e..fc1eb242fe 100644 --- a/plugins/UltimakerMachineActions/plugin.json +++ b/plugins/UltimakerMachineActions/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/UserAgreement/plugin.json b/plugins/UserAgreement/plugin.json index 50a2aa0441..7781e383d6 100644 --- a/plugins/UserAgreement/plugin.json +++ b/plugins/UserAgreement/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Ask the user once if he/she agrees with our license.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json b/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json index 463fcdc941..e732c43813 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 2.1 to Cura 2.2.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json b/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json index e7a0b1c559..2b344ce5d3 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 2.2 to Cura 2.4.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json b/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json index 3029539887..8691ebfc67 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 2.5 to Cura 2.6.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json b/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json index 225da67235..c7124eada6 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 2.6 to Cura 2.7.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json b/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json index 9a139851ec..ce8f4a6d44 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 2.7 to Cura 3.0.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json index cf42b3f6cd..f94f3dfe30 100644 --- a/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 3.0 to Cura 3.1.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json b/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json index f9cc968dae..0bbc237436 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 3.2 to Cura 3.3.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json b/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json index f5ba7235d1..5f83695245 100644 --- a/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 3.3 to Cura 3.4.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json b/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json index b73001b683..f95cb7be87 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Upgrades configurations from Cura 3.4 to Cura 3.5.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/X3DReader/plugin.json b/plugins/X3DReader/plugin.json index 9ee09e43df..4052ac6605 100644 --- a/plugins/X3DReader/plugin.json +++ b/plugins/X3DReader/plugin.json @@ -3,6 +3,6 @@ "author": "Seva Alekseyev", "version": "0.5.0", "description": "Provides support for reading X3D files.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/XRayView/plugin.json b/plugins/XRayView/plugin.json index 576dec4656..4d8e42bae3 100644 --- a/plugins/XRayView/plugin.json +++ b/plugins/XRayView/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides the X-Ray view.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/XmlMaterialProfile/plugin.json b/plugins/XmlMaterialProfile/plugin.json index 4b2901c375..d172d49f87 100644 --- a/plugins/XmlMaterialProfile/plugin.json +++ b/plugins/XmlMaterialProfile/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "version": "1.0.0", "description": "Provides capabilities to read and write XML-based material profiles.", - "api": 5, + "api": "6.0", "i18n-catalog": "cura" } From 36ccef420926b0bc38b94c701e5e92405747071d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 17 Dec 2018 09:08:32 +0100 Subject: [PATCH 0905/1039] Remove duplicate iconColor property in the IconWithText component Probably it was a mistake in a merge conflict --- resources/qml/IconWithText.qml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index dd522031c1..97983dd7ce 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -19,7 +19,6 @@ Item property alias color: label.color property alias text: label.text property alias font: label.font - property alias iconColor: icon.color property real margin: UM.Theme.getSize("narrow_margin").width // These properties can be used in combination with layouts. @@ -40,7 +39,7 @@ Item width: UM.Theme.getSize("section_icon").width height: width - color: UM.Theme.getColor("icon") + color: label.color anchors { From 328f32615369f0a5e0bd2c4729fb5fe9dfc7c4ae Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 17 Dec 2018 09:15:47 +0100 Subject: [PATCH 0906/1039] Use a specific color for the icons --- resources/qml/IconWithText.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml index 97983dd7ce..24b6dc7fe2 100644 --- a/resources/qml/IconWithText.qml +++ b/resources/qml/IconWithText.qml @@ -39,7 +39,7 @@ Item width: UM.Theme.getSize("section_icon").width height: width - color: label.color + color: UM.Theme.getColor("icon") anchors { From 77deabf6d4d2f6ceee9bb536c53b8516acb08f7c Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 17 Dec 2018 09:43:24 +0100 Subject: [PATCH 0907/1039] Code style --- .../resources/qml/MonitorStage.qml | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 4d59e0eb6b..150bc49254 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -34,14 +34,18 @@ Component name: "cura" } - LinearGradient { + LinearGradient + { anchors.fill: parent - gradient: Gradient { - GradientStop { + gradient: Gradient + { + GradientStop + { position: 0.0 color: "#f6f6f6" } - GradientStop { + GradientStop + { position: 1.0 color: "#ffffff" } @@ -81,7 +85,8 @@ Component id: queue width: Math.min(834 * screenScaleFactor, maximumWidth) - anchors { + anchors + { bottom: parent.bottom horizontalCenter: parent.horizontalCenter top: printers.bottom @@ -210,7 +215,8 @@ Component ScrollView { id: queuedPrintJobs - anchors { + anchors + { bottom: parent.bottom horizontalCenter: parent.horizontalCenter top: printJobQueueHeadings.bottom @@ -239,7 +245,8 @@ Component } } - PrinterVideoStream { + PrinterVideoStream + { anchors.fill: parent cameraUrl: OutputDevice.activeCameraUrl visible: OutputDevice.activeCameraUrl != "" From 8d6a281070e1fb222324edaa2a99230c347aa540 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 17 Dec 2018 09:58:38 +0100 Subject: [PATCH 0908/1039] Increment SDK version in bundled packages file And increment the version number of every package. Contributes to issue CURA-6019. --- resources/bundled_packages/cura.json | 364 +++++++++++++-------------- 1 file changed, 182 insertions(+), 182 deletions(-) diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index 384b7d0412..c32b94af3f 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -5,8 +5,8 @@ "package_type": "plugin", "display_name": "3MF Reader", "description": "Provides support for reading 3MF files.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -22,8 +22,8 @@ "package_type": "plugin", "display_name": "3MF Writer", "description": "Provides support for writing 3MF files.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -39,8 +39,8 @@ "package_type": "plugin", "display_name": "Change Log", "description": "Shows changes since latest checked version.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -56,8 +56,8 @@ "package_type": "plugin", "display_name": "CuraEngine Backend", "description": "Provides the link to the CuraEngine slicing backend.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -73,8 +73,8 @@ "package_type": "plugin", "display_name": "Cura Profile Reader", "description": "Provides support for importing Cura profiles.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -90,8 +90,8 @@ "package_type": "plugin", "display_name": "Cura Profile Writer", "description": "Provides support for exporting Cura profiles.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -107,8 +107,8 @@ "package_type": "plugin", "display_name": "Firmware Update Checker", "description": "Checks for firmware updates.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -124,8 +124,8 @@ "package_type": "plugin", "display_name": "Firmware Updater", "description": "Provides a machine actions for updating firmware.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -141,8 +141,8 @@ "package_type": "plugin", "display_name": "Compressed G-code Reader", "description": "Reads g-code from a compressed archive.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -158,8 +158,8 @@ "package_type": "plugin", "display_name": "Compressed G-code Writer", "description": "Writes g-code to a compressed archive.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -175,8 +175,8 @@ "package_type": "plugin", "display_name": "G-Code Profile Reader", "description": "Provides support for importing profiles from g-code files.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -192,8 +192,8 @@ "package_type": "plugin", "display_name": "G-Code Reader", "description": "Allows loading and displaying G-code files.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "VictorLarchenko", @@ -209,8 +209,8 @@ "package_type": "plugin", "display_name": "G-Code Writer", "description": "Writes g-code to a file.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -226,8 +226,8 @@ "package_type": "plugin", "display_name": "Image Reader", "description": "Enables ability to generate printable geometry from 2D image files.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -243,8 +243,8 @@ "package_type": "plugin", "display_name": "Legacy Cura Profile Reader", "description": "Provides support for importing profiles from legacy Cura versions.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -260,8 +260,8 @@ "package_type": "plugin", "display_name": "Machine Settings Action", "description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "fieldOfView", @@ -277,8 +277,8 @@ "package_type": "plugin", "display_name": "Model Checker", "description": "Checks models and print configuration for possible printing issues and give suggestions.", - "package_version": "0.1.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -294,8 +294,8 @@ "package_type": "plugin", "display_name": "Monitor Stage", "description": "Provides a monitor stage in Cura.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -311,8 +311,8 @@ "package_type": "plugin", "display_name": "Per-Object Settings Tool", "description": "Provides the per-model settings.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -328,8 +328,8 @@ "package_type": "plugin", "display_name": "Post Processing", "description": "Extension that allows for user created scripts for post processing.", - "package_version": "2.2.0", - "sdk_version": 5, + "package_version": "2.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -345,8 +345,8 @@ "package_type": "plugin", "display_name": "Prepare Stage", "description": "Provides a prepare stage in Cura.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -362,8 +362,8 @@ "package_type": "plugin", "display_name": "Preview Stage", "description": "Provides a preview stage in Cura.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -379,8 +379,8 @@ "package_type": "plugin", "display_name": "Removable Drive Output Device", "description": "Provides removable drive hotplugging and writing support.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -396,8 +396,8 @@ "package_type": "plugin", "display_name": "Simulation View", "description": "Provides the Simulation view.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -413,8 +413,8 @@ "package_type": "plugin", "display_name": "Slice Info", "description": "Submits anonymous slice info. Can be disabled through preferences.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -430,8 +430,8 @@ "package_type": "plugin", "display_name": "Solid View", "description": "Provides a normal solid mesh view.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -447,8 +447,8 @@ "package_type": "plugin", "display_name": "Support Eraser Tool", "description": "Creates an eraser mesh to block the printing of support in certain places.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -464,8 +464,8 @@ "package_type": "plugin", "display_name": "Toolbox", "description": "Find, manage and install new Cura packages.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -481,8 +481,8 @@ "package_type": "plugin", "display_name": "UFP Writer", "description": "Provides support for writing Ultimaker Format Packages.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -498,8 +498,8 @@ "package_type": "plugin", "display_name": "Ultimaker Machine Actions", "description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -515,8 +515,8 @@ "package_type": "plugin", "display_name": "UM3 Network Printing", "description": "Manages network connections to Ultimaker 3 printers.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -532,8 +532,8 @@ "package_type": "plugin", "display_name": "USB Printing", "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", - "package_version": "1.0.1", - "sdk_version": 5, + "package_version": "1.0.2", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -549,8 +549,8 @@ "package_type": "plugin", "display_name": "User Agreement", "description": "Ask the user once if he/she agrees with our license.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -566,8 +566,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 2.1 to 2.2", "description": "Upgrades configurations from Cura 2.1 to Cura 2.2.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -583,8 +583,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 2.2 to 2.4", "description": "Upgrades configurations from Cura 2.2 to Cura 2.4.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -600,8 +600,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 2.5 to 2.6", "description": "Upgrades configurations from Cura 2.5 to Cura 2.6.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -617,8 +617,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 2.6 to 2.7", "description": "Upgrades configurations from Cura 2.6 to Cura 2.7.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -634,8 +634,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 2.7 to 3.0", "description": "Upgrades configurations from Cura 2.7 to Cura 3.0.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -651,8 +651,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 3.0 to 3.1", "description": "Upgrades configurations from Cura 3.0 to Cura 3.1.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -668,8 +668,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 3.2 to 3.3", "description": "Upgrades configurations from Cura 3.2 to Cura 3.3.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -685,8 +685,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 3.3 to 3.4", "description": "Upgrades configurations from Cura 3.3 to Cura 3.4.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -702,8 +702,8 @@ "package_type": "plugin", "display_name": "Version Upgrade 3.4 to 3.5", "description": "Upgrades configurations from Cura 3.4 to Cura 3.5.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -719,8 +719,8 @@ "package_type": "plugin", "display_name": "X3D Reader", "description": "Provides support for reading X3D files.", - "package_version": "0.5.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "SevaAlekseyev", @@ -736,8 +736,8 @@ "package_type": "plugin", "display_name": "XML Material Profiles", "description": "Provides capabilities to read and write XML-based material profiles.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -753,8 +753,8 @@ "package_type": "plugin", "display_name": "X-Ray View", "description": "Provides the X-Ray view.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", @@ -770,8 +770,8 @@ "package_type": "material", "display_name": "Generic ABS", "description": "The generic ABS profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -788,8 +788,8 @@ "package_type": "material", "display_name": "Generic BAM", "description": "The generic BAM profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -806,8 +806,8 @@ "package_type": "material", "display_name": "Generic CFF CPE", "description": "The generic CFF CPE profile which other profiles can be based upon.", - "package_version": "1.1.0", - "sdk_version": 5, + "package_version": "1.1.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -824,8 +824,8 @@ "package_type": "material", "display_name": "Generic CFF PA", "description": "The generic CFF PA profile which other profiles can be based upon.", - "package_version": "1.1.0", - "sdk_version": 5, + "package_version": "1.1.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -842,8 +842,8 @@ "package_type": "material", "display_name": "Generic CPE", "description": "The generic CPE profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -860,8 +860,8 @@ "package_type": "material", "display_name": "Generic CPE+", "description": "The generic CPE+ profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -878,8 +878,8 @@ "package_type": "material", "display_name": "Generic GFF CPE", "description": "The generic GFF CPE profile which other profiles can be based upon.", - "package_version": "1.1.0", - "sdk_version": 5, + "package_version": "1.1.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -896,8 +896,8 @@ "package_type": "material", "display_name": "Generic GFF PA", "description": "The generic GFF PA profile which other profiles can be based upon.", - "package_version": "1.1.0", - "sdk_version": 5, + "package_version": "1.1.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -914,8 +914,8 @@ "package_type": "material", "display_name": "Generic HIPS", "description": "The generic HIPS profile which other profiles can be based upon.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -932,8 +932,8 @@ "package_type": "material", "display_name": "Generic Nylon", "description": "The generic Nylon profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -950,8 +950,8 @@ "package_type": "material", "display_name": "Generic PC", "description": "The generic PC profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -968,8 +968,8 @@ "package_type": "material", "display_name": "Generic PETG", "description": "The generic PETG profile which other profiles can be based upon.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -986,8 +986,8 @@ "package_type": "material", "display_name": "Generic PLA", "description": "The generic PLA profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1004,8 +1004,8 @@ "package_type": "material", "display_name": "Generic PP", "description": "The generic PP profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1022,8 +1022,8 @@ "package_type": "material", "display_name": "Generic PVA", "description": "The generic PVA profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1040,8 +1040,8 @@ "package_type": "material", "display_name": "Generic Tough PLA", "description": "The generic Tough PLA profile which other profiles can be based upon.", - "package_version": "1.0.1", - "sdk_version": 5, + "package_version": "1.0.2", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1058,8 +1058,8 @@ "package_type": "material", "display_name": "Generic TPU", "description": "The generic TPU profile which other profiles can be based upon.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://github.com/Ultimaker/fdm_materials", "author": { "author_id": "Generic", @@ -1076,8 +1076,8 @@ "package_type": "material", "display_name": "Dagoma Chromatik PLA", "description": "Filament testé et approuvé pour les imprimantes 3D Dagoma. Chromatik est l'idéal pour débuter et suivre les tutoriels premiers pas. Il vous offre qualité et résistance pour chacune de vos impressions.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://dagoma.fr/boutique/filaments.html", "author": { "author_id": "Dagoma", @@ -1093,8 +1093,8 @@ "package_type": "material", "display_name": "FABtotum ABS", "description": "This material is easy to be extruded but it is not the simplest to use. It is one of the most used in 3D printing to get very well finished objects. It is not sustainable and its smoke can be dangerous if inhaled. The reason to prefer this filament to PLA is mainly because of its precision and mechanical specs. ABS (for plastic) stands for Acrylonitrile Butadiene Styrene and it is a thermoplastic which is widely used in everyday objects. It can be printed with any FFF 3D printer which can get to high temperatures as it must be extruded in a range between 220° and 245°, so it’s compatible with all versions of the FABtotum Personal fabricator.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=40", "author": { "author_id": "FABtotum", @@ -1110,8 +1110,8 @@ "package_type": "material", "display_name": "FABtotum Nylon", "description": "When 3D printing started this material was not listed among the extrudable filaments. It is flexible as well as resistant to tractions. It is well known for its uses in textile but also in industries which require a strong and flexible material. There are different kinds of Nylon: 3D printing mostly uses Nylon 6 and Nylon 6.6, which are the most common. It requires higher temperatures to be printed, so a 3D printer must be able to reach them (around 240°C): the FABtotum, of course, can.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=53", "author": { "author_id": "FABtotum", @@ -1127,8 +1127,8 @@ "package_type": "material", "display_name": "FABtotum PLA", "description": "It is the most common filament used for 3D printing. It is studied to be bio-degradable as it comes from corn starch’s sugar mainly. It is completely made of renewable sources and has no footprint on polluting. PLA stands for PolyLactic Acid and it is a thermoplastic that today is still considered the easiest material to be 3D printed. It can be extruded at lower temperatures: the standard range of FABtotum’s one is between 185° and 195°.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=39", "author": { "author_id": "FABtotum", @@ -1144,8 +1144,8 @@ "package_type": "material", "display_name": "FABtotum TPU Shore 98A", "description": "", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=66", "author": { "author_id": "FABtotum", @@ -1161,8 +1161,8 @@ "package_type": "material", "display_name": "Fiberlogy HD PLA", "description": "With our HD PLA you have many more options. You can use this material in two ways. Choose the one you like best. You can use it as a normal PLA and get prints characterized by a very good adhesion between the layers and high precision. You can also make your prints acquire similar properties to that of ABS – better impact resistance and high temperature resistance. All you need is an oven. Yes, an oven! By annealing our HD PLA in an oven, in accordance with the manual, you will avoid all the inconveniences of printing with ABS, such as unpleasant odour or hazardous fumes.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "http://fiberlogy.com/en/fiberlogy-filaments/filament-hd-pla/", "author": { "author_id": "Fiberlogy", @@ -1178,8 +1178,8 @@ "package_type": "material", "display_name": "Filo3D PLA", "description": "Fast, safe and reliable printing. PLA is ideal for the fast and reliable printing of parts and prototypes with a great surface quality.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://dagoma.fr", "author": { "author_id": "Dagoma", @@ -1195,8 +1195,8 @@ "package_type": "material", "display_name": "IMADE3D JellyBOX PETG", "description": "", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "http://shop.imade3d.com/filament.html", "author": { "author_id": "IMADE3D", @@ -1212,8 +1212,8 @@ "package_type": "material", "display_name": "IMADE3D JellyBOX PLA", "description": "", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "http://shop.imade3d.com/filament.html", "author": { "author_id": "IMADE3D", @@ -1229,8 +1229,8 @@ "package_type": "material", "display_name": "Octofiber PLA", "description": "PLA material from Octofiber.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://nl.octofiber.com/3d-printing-filament/pla.html", "author": { "author_id": "Octofiber", @@ -1246,8 +1246,8 @@ "package_type": "material", "display_name": "PolyFlex™ PLA", "description": "PolyFlex™ is a highly flexible yet easy to print 3D printing material. Featuring good elasticity and a large strain-to- failure, PolyFlex™ opens up a completely new realm of applications.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "http://www.polymaker.com/shop/polyflex/", "author": { "author_id": "Polymaker", @@ -1263,8 +1263,8 @@ "package_type": "material", "display_name": "PolyMax™ PLA", "description": "PolyMax™ PLA is a 3D printing material with excellent mechanical properties and printing quality. PolyMax™ PLA has an impact resistance of up to nine times that of regular PLA, and better overall mechanical properties than ABS.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "http://www.polymaker.com/shop/polymax/", "author": { "author_id": "Polymaker", @@ -1280,8 +1280,8 @@ "package_type": "material", "display_name": "PolyPlus™ PLA True Colour", "description": "PolyPlus™ PLA is a premium PLA designed for all desktop FDM/FFF 3D printers. It is produced with our patented Jam-Free™ technology that ensures consistent extrusion and prevents jams.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "http://www.polymaker.com/shop/polyplus-true-colour/", "author": { "author_id": "Polymaker", @@ -1297,8 +1297,8 @@ "package_type": "material", "display_name": "PolyWood™ PLA", "description": "PolyWood™ is a wood mimic printing material that contains no actual wood ensuring a clean Jam-Free™ printing experience.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "http://www.polymaker.com/shop/polywood/", "author": { "author_id": "Polymaker", @@ -1314,8 +1314,8 @@ "package_type": "material", "display_name": "Ultimaker ABS", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1333,8 +1333,8 @@ "package_type": "material", "display_name": "Ultimaker Breakaway", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/breakaway", "author": { "author_id": "UltimakerPackages", @@ -1352,8 +1352,8 @@ "package_type": "material", "display_name": "Ultimaker CPE", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1371,8 +1371,8 @@ "package_type": "material", "display_name": "Ultimaker CPE+", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/cpe", "author": { "author_id": "UltimakerPackages", @@ -1390,8 +1390,8 @@ "package_type": "material", "display_name": "Ultimaker Nylon", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1409,8 +1409,8 @@ "package_type": "material", "display_name": "Ultimaker PC", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/pc", "author": { "author_id": "UltimakerPackages", @@ -1428,8 +1428,8 @@ "package_type": "material", "display_name": "Ultimaker PLA", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1447,8 +1447,8 @@ "package_type": "material", "display_name": "Ultimaker PP", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/pp", "author": { "author_id": "UltimakerPackages", @@ -1466,8 +1466,8 @@ "package_type": "material", "display_name": "Ultimaker PVA", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", @@ -1485,8 +1485,8 @@ "package_type": "material", "display_name": "Ultimaker TPU 95A", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.0", - "sdk_version": 5, + "package_version": "1.2.1", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/tpu-95a", "author": { "author_id": "UltimakerPackages", @@ -1504,8 +1504,8 @@ "package_type": "material", "display_name": "Ultimaker Tough PLA", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.0.2", - "sdk_version": 5, + "package_version": "1.0.3", + "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/tough-pla", "author": { "author_id": "UltimakerPackages", @@ -1523,8 +1523,8 @@ "package_type": "material", "display_name": "Vertex Delta ABS", "description": "ABS material and quality files for the Delta Vertex K8800.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1540,8 +1540,8 @@ "package_type": "material", "display_name": "Vertex Delta PET", "description": "ABS material and quality files for the Delta Vertex K8800.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1557,8 +1557,8 @@ "package_type": "material", "display_name": "Vertex Delta PLA", "description": "ABS material and quality files for the Delta Vertex K8800.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", @@ -1574,8 +1574,8 @@ "package_type": "material", "display_name": "Vertex Delta TPU", "description": "ABS material and quality files for the Delta Vertex K8800.", - "package_version": "1.0.0", - "sdk_version": 5, + "package_version": "1.0.1", + "sdk_version": "6.0", "website": "https://vertex3dprinter.eu", "author": { "author_id": "Velleman", From ff1a0e30f6f9dbebad72e90079df1ee23c42c437 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 17 Dec 2018 10:42:41 +0100 Subject: [PATCH 0909/1039] Code style & comments --- plugins/MonitorStage/MonitorMain.qml | 2 +- plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 1f287fc0fa..8f113735ee 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -35,6 +35,6 @@ Item property real maximumWidth: parent.width property real maximumHeight: parent.height - sourceComponent: Cura.MachineManager.printerOutputDevices.length > 0 ? Cura.MachineManager.printerOutputDevices[0].monitorItem: null + sourceComponent: Cura.MachineManager.printerOutputDevices.length > 0 ? Cura.MachineManager.printerOutputDevices[0].monitorItem : null } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 150bc49254..98ca715108 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -42,12 +42,12 @@ Component GradientStop { position: 0.0 - color: "#f6f6f6" + color: "#f6f6f6" // TODO: Theme! } GradientStop { position: 1.0 - color: "#ffffff" + color: "#ffffff" // TODO: Theme! } } } From cbd8e72bd5061547573bad6c847110268b5ec64a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 17 Dec 2018 10:42:52 +0100 Subject: [PATCH 0910/1039] Add fixed width to the preview button Doing that, the elide will work. Also increase the size of the panel a bit so it will fit better in other languages. Adding also the tooltip in case the text is too long in other languages. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 2 ++ resources/themes/cura-light/theme.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index b6aa9289f5..eb6dc5b417 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -120,6 +120,8 @@ Column height: UM.Theme.getSize("action_button").height text: catalog.i18nc("@button", "Preview") + tooltip: text + fixedWidthMode: true onClicked: UM.Controller.setActiveStage("PreviewStage") visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage" diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 2ff014bd31..ea6c92b479 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -361,7 +361,7 @@ "configuration_selector": [35.0, 4.0], "configuration_selector_mode_tabs": [0.0, 3.0], - "action_panel_widget": [25.0, 0.0], + "action_panel_widget": [26.0, 0.0], "action_panel_information_widget": [20.0, 0.0], "machine_selector_widget": [20.0, 4.0], From 938287095f3c2705b97df881feba30924733f291 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 10:47:14 +0100 Subject: [PATCH 0911/1039] Use connection type instead of um_network_key to see if a printer has a network connection CURA-6011 --- cura/Settings/MachineManager.py | 9 ++++++++- .../qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 2 +- resources/qml/MonitorSidebar.qml | 4 ++-- resources/qml/PrinterSelector/MachineSelector.qml | 2 +- resources/qml/PrinterSelector/MachineSelectorList.qml | 1 + 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index c375ce01d1..342f53aac6 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -23,7 +23,7 @@ from UM.Settings.SettingFunction import SettingFunction from UM.Signal import postponeSignals, CompressTechnique from cura.Machines.QualityManager import getMachineDefinitionIDForQualitySearch -from cura.PrinterOutputDevice import PrinterOutputDevice +from cura.PrinterOutputDevice import PrinterOutputDevice, ConnectionType from cura.PrinterOutput.ConfigurationModel import ConfigurationModel from cura.PrinterOutput.ExtruderConfigurationModel import ExtruderConfigurationModel from cura.PrinterOutput.MaterialOutputModel import MaterialOutputModel @@ -521,6 +521,13 @@ class MachineManager(QObject): def printerConnected(self): return bool(self._printer_output_devices) + @pyqtProperty(bool, notify=printerConnectedStatusChanged) + def activeMachineHasRemoteConnection(self) -> bool: + if self._global_container_stack: + connection_type = self._global_container_stack.getMetaDataEntry("connection_type") + return connection_type in [ConnectionType.NetworkConnection, ConnectionType.CloudConnection] + return False + @pyqtProperty(str, notify = printerConnectedStatusChanged) def activeMachineNetworkKey(self) -> str: if self._global_container_stack: diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 33a317b42b..8e9c276c0d 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -134,7 +134,7 @@ Cura.ExpandablePopup property bool is_connected: false //If current machine is connected to a printer. Only evaluated upon making popup visible. onVisibleChanged: { - is_connected = Cura.MachineManager.activeMachineNetworkKey !== "" && Cura.MachineManager.printerConnected //Re-evaluate. + is_connected = Cura.MachineManager.activeMachineHasRemoteConnection && Cura.MachineManager.printerConnected //Re-evaluate. } property int configuration_method: is_connected ? ConfigurationMenu.ConfigurationMethod.Auto : ConfigurationMenu.ConfigurationMethod.Custom //Auto if connected to a printer at start-up, or Custom if not. diff --git a/resources/qml/MonitorSidebar.qml b/resources/qml/MonitorSidebar.qml index 669bdbfb8f..70ee60377d 100644 --- a/resources/qml/MonitorSidebar.qml +++ b/resources/qml/MonitorSidebar.qml @@ -21,7 +21,7 @@ Rectangle property bool hideView: Cura.MachineManager.activeMachineName == "" // Is there an output device for this printer? - property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" + property bool isNetworkPrinter: Cura.MachineManager.activeMachineHasRemoteConnection property bool printerConnected: Cura.MachineManager.printerConnected property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null @@ -205,7 +205,7 @@ Rectangle target: Cura.MachineManager onGlobalContainerChanged: { - base.isNetworkPrinter = Cura.MachineManager.activeMachineNetworkKey != "" + base.isNetworkPrinter = Cura.MachineManager.activeMachineHasRemoteConnection base.printerConnected = Cura.MachineManager.printerOutputDevices.length != 0 } } diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 6e120e89c7..8a7b87f409 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -11,7 +11,7 @@ Cura.ExpandablePopup { id: machineSelector - property bool isNetworkPrinter: Cura.MachineManager.activeMachineNetworkKey != "" + property bool isNetworkPrinter: Cura.MachineManager.activeMachineHasRemoteConnection property bool isPrinterConnected: Cura.MachineManager.printerConnected property var outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index b157f9a4f6..e0dc6f5e44 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -30,6 +30,7 @@ ListView { text: model.name width: listView.width + outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null } } /* From ed4d339deec699098ac70971edbd44d3d56a269d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 17 Dec 2018 11:00:49 +0100 Subject: [PATCH 0912/1039] Change the margin in the view orientation buttons to aling the pixels correctly --- resources/qml/ViewOrientationButton.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ViewOrientationButton.qml b/resources/qml/ViewOrientationButton.qml index 5371f8549b..5d72de9a8d 100644 --- a/resources/qml/ViewOrientationButton.qml +++ b/resources/qml/ViewOrientationButton.qml @@ -11,5 +11,5 @@ UM.SimpleButton height: UM.Theme.getSize("small_button").height hoverColor: UM.Theme.getColor("small_button_text_hover") color: UM.Theme.getColor("small_button_text") - iconMargin: 0.5 * UM.Theme.getSize("wide_lining").width + iconMargin: UM.Theme.getSize("thick_lining").width } \ No newline at end of file From 6178f9ddf62e193865558f7ac8e4e2975c57a316 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 17 Dec 2018 11:49:09 +0100 Subject: [PATCH 0913/1039] Improve code style and line lengths --- .../resources/qml/UM3InfoComponents.qml | 40 +++++++++++++++++-- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml index 42e3b7d160..320201e165 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/UM3InfoComponents.qml @@ -13,8 +13,40 @@ Item { property string activeQualityDefinitionId: Cura.MachineManager.activeQualityDefinitionId; property bool isUM3: activeQualityDefinitionId == "ultimaker3" || activeQualityDefinitionId.match("ultimaker_") != null; property bool printerConnected: Cura.MachineManager.printerConnected; - property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands; - property bool authenticationRequested: printerConnected && (Cura.MachineManager.printerOutputDevices[0].authenticationState == 2 || Cura.MachineManager.printerOutputDevices[0].authenticationState == 5); // AuthState.AuthenticationRequested or AuthenticationReceived. + property bool printerAcceptsCommands: + { + if (printerConnected && Cura.MachineManager.printerOutputDevices[0]) + { + return Cura.MachineManager.printerOutputDevices[0].acceptsCommands + } + return false + } + property bool authenticationRequested: + { + if (printerConnected && Cura.MachineManager.printerOutputDevices[0]) + { + var device = Cura.MachineManager.printerOutputDevices[0] + // AuthState.AuthenticationRequested or AuthState.AuthenticationReceived + return device.authenticationState == 2 || device.authenticationState == 5 + } + return false + } + property var materialNames: + { + if (printerConnected && Cura.MachineManager.printerOutputDevices[0]) + { + return Cura.MachineManager.printerOutputDevices[0].materialNames + } + return null + } + property var hotendIds: + { + if (printerConnected && Cura.MachineManager.printerOutputDevices[0]) + { + return Cura.MachineManager.printerOutputDevices[0].hotendIds + } + return null + } UM.I18nCatalog { id: catalog; @@ -94,7 +126,7 @@ Item { Column { Repeater { id: nozzleColumn; - model: printerConnected ? Cura.MachineManager.printerOutputDevices[0].hotendIds : null; + model: hotendIds Label { text: nozzleColumn.model[index]; @@ -105,7 +137,7 @@ Item { Column { Repeater { id: materialColumn; - model: printerConnected ? Cura.MachineManager.printerOutputDevices[0].materialNames : null; + model: materialNames Label { text: materialColumn.model[index]; From ab83af3a0353bc308a5d417ebbaa7d0bc24b446a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 17 Dec 2018 12:20:30 +0100 Subject: [PATCH 0914/1039] Fix code-style --- cura/Settings/SimpleModeSettingsManager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py index 210a5794d4..b22aea15ea 100644 --- a/cura/Settings/SimpleModeSettingsManager.py +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -1,5 +1,6 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from typing import Set from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty, pyqtSlot @@ -63,10 +64,10 @@ class SimpleModeSettingsManager(QObject): @pyqtSlot() def updateIsProfileUserCreated(self) -> None: - quality_changes_keys = set() + quality_changes_keys = set() # type: Set[str] if not self._machine_manager.activeMachine: - return False + return global_stack = self._machine_manager.activeMachine From 6992fd299159dd7775a3406c5c798f5e00bbda62 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 17 Dec 2018 13:03:17 +0100 Subject: [PATCH 0915/1039] Update plugin versions to match package versions CURA-6019 --- plugins/3MFReader/plugin.json | 2 +- plugins/3MFWriter/plugin.json | 2 +- plugins/ChangeLogPlugin/plugin.json | 2 +- plugins/CuraEngineBackend/plugin.json | 2 +- plugins/CuraProfileReader/plugin.json | 2 +- plugins/CuraProfileWriter/plugin.json | 2 +- plugins/FirmwareUpdateChecker/plugin.json | 2 +- plugins/FirmwareUpdater/plugin.json | 2 +- plugins/GCodeGzReader/plugin.json | 2 +- plugins/GCodeGzWriter/plugin.json | 2 +- plugins/GCodeProfileReader/plugin.json | 2 +- plugins/GCodeReader/plugin.json | 2 +- plugins/GCodeWriter/plugin.json | 2 +- plugins/ImageReader/plugin.json | 2 +- plugins/LegacyProfileReader/plugin.json | 2 +- plugins/MachineSettingsAction/plugin.json | 2 +- plugins/ModelChecker/plugin.json | 2 +- plugins/MonitorStage/plugin.json | 2 +- plugins/PerObjectSettingsTool/plugin.json | 2 +- plugins/PostProcessingPlugin/plugin.json | 2 +- plugins/PrepareStage/plugin.json | 2 +- plugins/PreviewStage/plugin.json | 2 +- plugins/RemovableDriveOutputDevice/plugin.json | 2 +- plugins/SimulationView/plugin.json | 2 +- plugins/SliceInfoPlugin/plugin.json | 2 +- plugins/SolidView/plugin.json | 2 +- plugins/SupportEraser/plugin.json | 2 +- plugins/Toolbox/plugin.json | 2 +- plugins/UFPWriter/plugin.json | 2 +- plugins/UM3NetworkPrinting/plugin.json | 2 +- plugins/USBPrinting/plugin.json | 2 +- plugins/UltimakerMachineActions/plugin.json | 2 +- plugins/UserAgreement/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json | 2 +- plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json | 2 +- plugins/X3DReader/plugin.json | 2 +- plugins/XRayView/plugin.json | 2 +- plugins/XmlMaterialProfile/plugin.json | 2 +- 45 files changed, 45 insertions(+), 45 deletions(-) diff --git a/plugins/3MFReader/plugin.json b/plugins/3MFReader/plugin.json index d7160e166a..5af21a7033 100644 --- a/plugins/3MFReader/plugin.json +++ b/plugins/3MFReader/plugin.json @@ -1,7 +1,7 @@ { "name": "3MF Reader", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides support for reading 3MF files.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/3MFWriter/plugin.json b/plugins/3MFWriter/plugin.json index 865c3bf026..3820ebd2e7 100644 --- a/plugins/3MFWriter/plugin.json +++ b/plugins/3MFWriter/plugin.json @@ -1,7 +1,7 @@ { "name": "3MF Writer", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides support for writing 3MF files.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/ChangeLogPlugin/plugin.json b/plugins/ChangeLogPlugin/plugin.json index 04d5ce7c51..92041d1543 100644 --- a/plugins/ChangeLogPlugin/plugin.json +++ b/plugins/ChangeLogPlugin/plugin.json @@ -1,7 +1,7 @@ { "name": "Changelog", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Shows changes since latest checked version.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/CuraEngineBackend/plugin.json b/plugins/CuraEngineBackend/plugin.json index 25db9abefd..28f0e294e7 100644 --- a/plugins/CuraEngineBackend/plugin.json +++ b/plugins/CuraEngineBackend/plugin.json @@ -3,6 +3,6 @@ "author": "Ultimaker B.V.", "description": "Provides the link to the CuraEngine slicing backend.", "api": "6.0", - "version": "1.0.0", + "version": "1.0.1", "i18n-catalog": "cura" } diff --git a/plugins/CuraProfileReader/plugin.json b/plugins/CuraProfileReader/plugin.json index adbf376b72..169fb43360 100644 --- a/plugins/CuraProfileReader/plugin.json +++ b/plugins/CuraProfileReader/plugin.json @@ -1,7 +1,7 @@ { "name": "Cura Profile Reader", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides support for importing Cura profiles.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/CuraProfileWriter/plugin.json b/plugins/CuraProfileWriter/plugin.json index d576f517de..9627c754d7 100644 --- a/plugins/CuraProfileWriter/plugin.json +++ b/plugins/CuraProfileWriter/plugin.json @@ -1,7 +1,7 @@ { "name": "Cura Profile Writer", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides support for exporting Cura profiles.", "api": "6.0", "i18n-catalog":"cura" diff --git a/plugins/FirmwareUpdateChecker/plugin.json b/plugins/FirmwareUpdateChecker/plugin.json index 4b77a53a62..6c55d77fd8 100644 --- a/plugins/FirmwareUpdateChecker/plugin.json +++ b/plugins/FirmwareUpdateChecker/plugin.json @@ -1,7 +1,7 @@ { "name": "Firmware Update Checker", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Checks for firmware updates.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/FirmwareUpdater/plugin.json b/plugins/FirmwareUpdater/plugin.json index 4098759630..c1034e5e42 100644 --- a/plugins/FirmwareUpdater/plugin.json +++ b/plugins/FirmwareUpdater/plugin.json @@ -1,7 +1,7 @@ { "name": "Firmware Updater", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides a machine actions for updating firmware.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/GCodeGzReader/plugin.json b/plugins/GCodeGzReader/plugin.json index cea1d0f55c..d4f281682f 100644 --- a/plugins/GCodeGzReader/plugin.json +++ b/plugins/GCodeGzReader/plugin.json @@ -1,7 +1,7 @@ { "name": "Compressed G-code Reader", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Reads g-code from a compressed archive.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/GCodeGzWriter/plugin.json b/plugins/GCodeGzWriter/plugin.json index d725b2649d..b0e6f8d605 100644 --- a/plugins/GCodeGzWriter/plugin.json +++ b/plugins/GCodeGzWriter/plugin.json @@ -1,7 +1,7 @@ { "name": "Compressed G-code Writer", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Writes g-code to a compressed archive.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/GCodeProfileReader/plugin.json b/plugins/GCodeProfileReader/plugin.json index 12d8a276da..af1c2d1827 100644 --- a/plugins/GCodeProfileReader/plugin.json +++ b/plugins/GCodeProfileReader/plugin.json @@ -1,7 +1,7 @@ { "name": "G-code Profile Reader", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides support for importing profiles from g-code files.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/GCodeReader/plugin.json b/plugins/GCodeReader/plugin.json index 351d6cbc31..bbc94fa917 100644 --- a/plugins/GCodeReader/plugin.json +++ b/plugins/GCodeReader/plugin.json @@ -1,7 +1,7 @@ { "name": "G-code Reader", "author": "Victor Larchenko, Ultimaker", - "version": "1.0.0", + "version": "1.0.1", "description": "Allows loading and displaying G-code files.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/GCodeWriter/plugin.json b/plugins/GCodeWriter/plugin.json index 78b63a582f..f3a95ddb78 100644 --- a/plugins/GCodeWriter/plugin.json +++ b/plugins/GCodeWriter/plugin.json @@ -1,7 +1,7 @@ { "name": "G-code Writer", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Writes g-code to a file.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/ImageReader/plugin.json b/plugins/ImageReader/plugin.json index 001da0822b..d966537d99 100644 --- a/plugins/ImageReader/plugin.json +++ b/plugins/ImageReader/plugin.json @@ -1,7 +1,7 @@ { "name": "Image Reader", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Enables ability to generate printable geometry from 2D image files.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/LegacyProfileReader/plugin.json b/plugins/LegacyProfileReader/plugin.json index 2cd1e9ca2c..2f5264ad37 100644 --- a/plugins/LegacyProfileReader/plugin.json +++ b/plugins/LegacyProfileReader/plugin.json @@ -1,7 +1,7 @@ { "name": "Legacy Cura Profile Reader", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides support for importing profiles from legacy Cura versions.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/MachineSettingsAction/plugin.json b/plugins/MachineSettingsAction/plugin.json index 4587729a9a..d734c1adf5 100644 --- a/plugins/MachineSettingsAction/plugin.json +++ b/plugins/MachineSettingsAction/plugin.json @@ -1,7 +1,7 @@ { "name": "Machine Settings action", "author": "fieldOfView", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/ModelChecker/plugin.json b/plugins/ModelChecker/plugin.json index a210c3bf9f..59be5bbf0a 100644 --- a/plugins/ModelChecker/plugin.json +++ b/plugins/ModelChecker/plugin.json @@ -1,7 +1,7 @@ { "name": "Model Checker", "author": "Ultimaker B.V.", - "version": "0.1", + "version": "1.0.1", "api": "6.0", "description": "Checks models and print configuration for possible printing issues and give suggestions.", "i18n-catalog": "cura" diff --git a/plugins/MonitorStage/plugin.json b/plugins/MonitorStage/plugin.json index 71fc10c5ce..95e4b86f36 100644 --- a/plugins/MonitorStage/plugin.json +++ b/plugins/MonitorStage/plugin.json @@ -1,7 +1,7 @@ { "name": "Monitor Stage", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides a monitor stage in Cura.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/PerObjectSettingsTool/plugin.json b/plugins/PerObjectSettingsTool/plugin.json index e5bdc5d3da..f272abf06a 100644 --- a/plugins/PerObjectSettingsTool/plugin.json +++ b/plugins/PerObjectSettingsTool/plugin.json @@ -1,7 +1,7 @@ { "name": "Per Model Settings Tool", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides the Per Model Settings.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/PostProcessingPlugin/plugin.json b/plugins/PostProcessingPlugin/plugin.json index ad60312af0..1e73133c53 100644 --- a/plugins/PostProcessingPlugin/plugin.json +++ b/plugins/PostProcessingPlugin/plugin.json @@ -1,7 +1,7 @@ { "name": "Post Processing", "author": "Ultimaker", - "version": "2.2", + "version": "2.2.1", "api": "6.0", "description": "Extension that allows for user created scripts for post processing", "catalog": "cura" diff --git a/plugins/PrepareStage/plugin.json b/plugins/PrepareStage/plugin.json index e948b96f6f..dc5c68ce16 100644 --- a/plugins/PrepareStage/plugin.json +++ b/plugins/PrepareStage/plugin.json @@ -1,7 +1,7 @@ { "name": "Prepare Stage", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides a prepare stage in Cura.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/PreviewStage/plugin.json b/plugins/PreviewStage/plugin.json index c9c13fe341..e1e4288bae 100644 --- a/plugins/PreviewStage/plugin.json +++ b/plugins/PreviewStage/plugin.json @@ -1,7 +1,7 @@ { "name": "Preview Stage", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides a preview stage in Cura.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/RemovableDriveOutputDevice/plugin.json b/plugins/RemovableDriveOutputDevice/plugin.json index 48cd60596c..5523d6b1c1 100644 --- a/plugins/RemovableDriveOutputDevice/plugin.json +++ b/plugins/RemovableDriveOutputDevice/plugin.json @@ -2,7 +2,7 @@ "name": "Removable Drive Output Device Plugin", "author": "Ultimaker B.V.", "description": "Provides removable drive hotplugging and writing support.", - "version": "1.0.0", + "version": "1.0.1", "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/SimulationView/plugin.json b/plugins/SimulationView/plugin.json index dcfbeb305e..3ccf91b9e6 100644 --- a/plugins/SimulationView/plugin.json +++ b/plugins/SimulationView/plugin.json @@ -1,7 +1,7 @@ { "name": "Simulation View", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides the Simulation view.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/SliceInfoPlugin/plugin.json b/plugins/SliceInfoPlugin/plugin.json index c2d78e8d78..8ff0e194fb 100644 --- a/plugins/SliceInfoPlugin/plugin.json +++ b/plugins/SliceInfoPlugin/plugin.json @@ -1,7 +1,7 @@ { "name": "Slice info", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Submits anonymous slice info. Can be disabled through preferences.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/SolidView/plugin.json b/plugins/SolidView/plugin.json index c66e41a7aa..b3f62221c5 100644 --- a/plugins/SolidView/plugin.json +++ b/plugins/SolidView/plugin.json @@ -1,7 +1,7 @@ { "name": "Solid View", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides a normal solid mesh view.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/SupportEraser/plugin.json b/plugins/SupportEraser/plugin.json index dc624ecd77..fa6d6d230e 100644 --- a/plugins/SupportEraser/plugin.json +++ b/plugins/SupportEraser/plugin.json @@ -1,7 +1,7 @@ { "name": "Support Eraser", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Creates an eraser mesh to block the printing of support in certain places", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/Toolbox/plugin.json b/plugins/Toolbox/plugin.json index 91e9561327..61dc0429f5 100644 --- a/plugins/Toolbox/plugin.json +++ b/plugins/Toolbox/plugin.json @@ -1,7 +1,7 @@ { "name": "Toolbox", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "api": "6.0", "description": "Find, manage and install new Cura packages." } diff --git a/plugins/UFPWriter/plugin.json b/plugins/UFPWriter/plugin.json index b4e05d9346..288d6acf77 100644 --- a/plugins/UFPWriter/plugin.json +++ b/plugins/UFPWriter/plugin.json @@ -1,7 +1,7 @@ { "name": "UFP Writer", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides support for writing Ultimaker Format Packages.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/UM3NetworkPrinting/plugin.json b/plugins/UM3NetworkPrinting/plugin.json index def02562db..088b4dae6a 100644 --- a/plugins/UM3NetworkPrinting/plugin.json +++ b/plugins/UM3NetworkPrinting/plugin.json @@ -2,7 +2,7 @@ "name": "UM3 Network Connection", "author": "Ultimaker B.V.", "description": "Manages network connections to Ultimaker 3 printers.", - "version": "1.0.0", + "version": "1.0.1", "api": "6.0", "i18n-catalog": "cura" } diff --git a/plugins/USBPrinting/plugin.json b/plugins/USBPrinting/plugin.json index 3a58abe7e7..45971d858b 100644 --- a/plugins/USBPrinting/plugin.json +++ b/plugins/USBPrinting/plugin.json @@ -1,7 +1,7 @@ { "name": "USB printing", "author": "Ultimaker B.V.", - "version": "1.0.1", + "version": "1.0.2", "api": "6.0", "description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.", "i18n-catalog": "cura" diff --git a/plugins/UltimakerMachineActions/plugin.json b/plugins/UltimakerMachineActions/plugin.json index fc1eb242fe..3e3e0af9b0 100644 --- a/plugins/UltimakerMachineActions/plugin.json +++ b/plugins/UltimakerMachineActions/plugin.json @@ -1,7 +1,7 @@ { "name": "Ultimaker machine actions", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/UserAgreement/plugin.json b/plugins/UserAgreement/plugin.json index 7781e383d6..b172d1f9a2 100644 --- a/plugins/UserAgreement/plugin.json +++ b/plugins/UserAgreement/plugin.json @@ -1,7 +1,7 @@ { "name": "UserAgreement", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Ask the user once if he/she agrees with our license.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json b/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json index e732c43813..cad94c2eb5 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 2.1 to 2.2", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 2.1 to Cura 2.2.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json b/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json index 2b344ce5d3..7da1e7a56d 100644 --- a/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade22to24/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 2.2 to 2.4", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 2.2 to Cura 2.4.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json b/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json index 8691ebfc67..e1f0a47685 100644 --- a/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade25to26/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 2.5 to 2.6", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 2.5 to Cura 2.6.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json b/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json index c7124eada6..6cdbd64cbb 100644 --- a/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade26to27/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 2.6 to 2.7", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 2.6 to Cura 2.7.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json b/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json index ce8f4a6d44..885d741a8c 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 2.7 to 3.0", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 2.7 to Cura 3.0.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json index f94f3dfe30..d5f22649c1 100644 --- a/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 3.0 to 3.1", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 3.0 to Cura 3.1.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json b/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json index 0bbc237436..eb489169e0 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 3.2 to 3.3", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 3.2 to Cura 3.3.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json b/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json index 5f83695245..9649010643 100644 --- a/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade33to34/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 3.3 to 3.4", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 3.3 to Cura 3.4.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json b/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json index f95cb7be87..02635ec606 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json @@ -1,7 +1,7 @@ { "name": "Version Upgrade 3.4 to 3.5", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Upgrades configurations from Cura 3.4 to Cura 3.5.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/X3DReader/plugin.json b/plugins/X3DReader/plugin.json index 4052ac6605..1fc14104ed 100644 --- a/plugins/X3DReader/plugin.json +++ b/plugins/X3DReader/plugin.json @@ -1,7 +1,7 @@ { "name": "X3D Reader", "author": "Seva Alekseyev", - "version": "0.5.0", + "version": "1.0.1", "description": "Provides support for reading X3D files.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/XRayView/plugin.json b/plugins/XRayView/plugin.json index 4d8e42bae3..71cc165b6c 100644 --- a/plugins/XRayView/plugin.json +++ b/plugins/XRayView/plugin.json @@ -1,7 +1,7 @@ { "name": "X-Ray View", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides the X-Ray view.", "api": "6.0", "i18n-catalog": "cura" diff --git a/plugins/XmlMaterialProfile/plugin.json b/plugins/XmlMaterialProfile/plugin.json index d172d49f87..bb1db82fa4 100644 --- a/plugins/XmlMaterialProfile/plugin.json +++ b/plugins/XmlMaterialProfile/plugin.json @@ -1,7 +1,7 @@ { "name": "Material Profiles", "author": "Ultimaker B.V.", - "version": "1.0.0", + "version": "1.0.1", "description": "Provides capabilities to read and write XML-based material profiles.", "api": "6.0", "i18n-catalog": "cura" From ee74b9f89f04f8bfaaf71ab852a2abea8b9be250 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 13:09:01 +0100 Subject: [PATCH 0916/1039] Once the connectiontype is recovered, it's converted to a string So we need to check if that's the case. CURA-6011 --- cura/Settings/MachineManager.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 342f53aac6..db43207cc9 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -525,10 +525,9 @@ class MachineManager(QObject): def activeMachineHasRemoteConnection(self) -> bool: if self._global_container_stack: connection_type = self._global_container_stack.getMetaDataEntry("connection_type") - return connection_type in [ConnectionType.NetworkConnection, ConnectionType.CloudConnection] + return connection_type in [str(ConnectionType.NetworkConnection), str(ConnectionType.CloudConnection)] return False - @pyqtProperty(str, notify = printerConnectedStatusChanged) def activeMachineNetworkKey(self) -> str: if self._global_container_stack: return self._global_container_stack.getMetaDataEntry("um_network_key", "") @@ -756,7 +755,7 @@ class MachineManager(QObject): self.setActiveMachine(other_machine_stacks[0]["id"]) metadata = CuraContainerRegistry.getInstance().findContainerStacksMetadata(id = machine_id)[0] - network_key = metadata["um_network_key"] if "um_network_key" in metadata else None + network_key = metadata.get("um_network_key", None) ExtruderManager.getInstance().removeMachineExtruders(machine_id) containers = CuraContainerRegistry.getInstance().findInstanceContainersMetadata(type = "user", machine = machine_id) for container in containers: From aad7540366e6b7b71619574f77961499493fd4f8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 13:31:38 +0100 Subject: [PATCH 0917/1039] Fix situation where multiple connect configurations would cause issues CURA-6011 --- cura/PrintersModel.py | 6 +++- cura/Settings/MachineManager.py | 11 ++++--- .../PrinterSelector/MachineSelectorList.qml | 32 +++++-------------- 3 files changed, 19 insertions(+), 30 deletions(-) diff --git a/cura/PrintersModel.py b/cura/PrintersModel.py index 26b65409c5..0c58d9bf8c 100644 --- a/cura/PrintersModel.py +++ b/cura/PrintersModel.py @@ -56,10 +56,14 @@ class PrintersModel(ListModel): connection_type = container_stack.getMetaDataEntry("connection_type") has_remote_connection = connection_type in [str(ConnectionType.NetworkConnection), str(ConnectionType.CloudConnection)] + if container_stack.getMetaDataEntry("hidden", False) in ["True", True]: + continue + # TODO: Remove reference to connect group name. items.append({"name": container_stack.getMetaDataEntry("connect_group_name", container_stack.getName()), "id": container_stack.getId(), "hasRemoteConnection": has_remote_connection, - "connectionType": connection_type}) + "connectionType": connection_type, + "metadata": container_stack.getMetaData().copy()}) items.sort(key=lambda i: not i["hasRemoteConnection"]) self.setItems(items) \ No newline at end of file diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index db43207cc9..c51c26f1b9 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1321,17 +1321,18 @@ class MachineManager(QObject): # Get the definition id corresponding to this machine name machine_definition_id = CuraContainerRegistry.getInstance().findDefinitionContainers(name = machine_name)[0].getId() # Try to find a machine with the same network key - new_machine = self.getMachine(machine_definition_id, metadata_filter = {"um_network_key": self.activeMachineNetworkKey}) + new_machine = self.getMachine(machine_definition_id, metadata_filter = {"um_network_key": self.activeMachineNetworkKey()}) # If there is no machine, then create a new one and set it to the non-hidden instance if not new_machine: new_machine = CuraStackBuilder.createMachine(machine_definition_id + "_sync", machine_definition_id) if not new_machine: return - new_machine.setMetaDataEntry("um_network_key", self.activeMachineNetworkKey) + new_machine.setMetaDataEntry("um_network_key", self.activeMachineNetworkKey()) new_machine.setMetaDataEntry("connect_group_name", self.activeMachineNetworkGroupName) new_machine.setMetaDataEntry("hidden", False) + new_machine.setMetaDataEntry("connection_type", self._global_container_stack.getMetaDataEntry("connection_type")) else: - Logger.log("i", "Found a %s with the key %s. Let's use it!", machine_name, self.activeMachineNetworkKey) + Logger.log("i", "Found a %s with the key %s. Let's use it!", machine_name, self.activeMachineNetworkKey()) new_machine.setMetaDataEntry("hidden", False) # Set the current printer instance to hidden (the metadata entry must exist) @@ -1391,10 +1392,10 @@ class MachineManager(QObject): # After updating from 3.2 to 3.3 some group names may be temporary. If there is a mismatch in the name of the group # then all the container stacks are updated, both the current and the hidden ones. def checkCorrectGroupName(self, device_id: str, group_name: str) -> None: - if self._global_container_stack and device_id == self.activeMachineNetworkKey: + if self._global_container_stack and device_id == self.activeMachineNetworkKey(): # Check if the connect_group_name is correct. If not, update all the containers connected to the same printer if self.activeMachineNetworkGroupName != group_name: - metadata_filter = {"um_network_key": self.activeMachineNetworkKey} + metadata_filter = {"um_network_key": self.activeMachineNetworkKey()} containers = CuraContainerRegistry.getInstance().findContainerStacks(type = "machine", **metadata_filter) for container in containers: container.setMetaDataEntry("connect_group_name", group_name) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index e0dc6f5e44..52cea0ea80 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -31,32 +31,16 @@ ListView text: model.name width: listView.width outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - } -} - /* - - - Repeater - { - id: networkedPrinters - - model: Cura.PrintersModel + checked: { - id: networkedPrintersModel - } - - delegate: MachineSelectorButton - { - text: model.name //model.metadata["connect_group_name"] - //checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] - outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null - - Connections + // If the machine has a remote connection + var result = Cura.MachineManager.activeMachineId == model.id + if (Cura.MachineManager.activeMachineHasRemoteConnection) { - target: Cura.MachineManager - onActiveMachineNetworkGroupNameChanged: checked = Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] + result |= Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] } + return result } - }*/ - + } +} \ No newline at end of file From cb6e4ff2d1a0f26ed8849c45cd97b0f15d8dab36 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 17 Dec 2018 14:05:28 +0100 Subject: [PATCH 0918/1039] Organize MonitorStage.qml better --- .../resources/qml/MonitorQueue.qml | 167 ++++++++++++++++++ .../resources/qml/MonitorStage.qml | 159 +---------------- 2 files changed, 169 insertions(+), 157 deletions(-) create mode 100644 plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml new file mode 100644 index 0000000000..884dbabc2f --- /dev/null +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml @@ -0,0 +1,167 @@ +// Copyright (c) 2018 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 +import UM 1.3 as UM +import Cura 1.0 as Cura + +/** + * This component contains the print job queue, extracted from the primary + * MonitorStage.qml file not for reusability but simply to keep it lean and more + * readable. + */ +Item +{ + Label + { + id: queuedLabel + anchors + { + left: queuedPrintJobs.left + top: parent.top + } + color: UM.Theme.getColor("text") + font: UM.Theme.getFont("large_nonbold") + text: catalog.i18nc("@label", "Queued") + } + + Item + { + id: manageQueueLabel + anchors + { + right: queuedPrintJobs.right + verticalCenter: queuedLabel.verticalCenter + } + height: 18 * screenScaleFactor // TODO: Theme! + width: childrenRect.width + + UM.RecolorImage + { + id: externalLinkIcon + anchors.verticalCenter: manageQueueLabel.verticalCenter + color: UM.Theme.getColor("primary") + source: "../svg/icons/external_link.svg" + width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) + height: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) + } + Label + { + id: manageQueueText + anchors + { + left: externalLinkIcon.right + leftMargin: 6 * screenScaleFactor // TODO: Theme! + verticalCenter: externalLinkIcon.verticalCenter + } + color: UM.Theme.getColor("primary") + font: UM.Theme.getFont("default") // 12pt, regular + linkColor: UM.Theme.getColor("primary") + text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect") + } + } + + MouseArea + { + anchors.fill: manageQueueLabel + hoverEnabled: true + onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel() + onEntered: + { + manageQueueText.font.underline = true + } + onExited: + { + manageQueueText.font.underline = false + } + } + + Row + { + id: printJobQueueHeadings + anchors + { + left: queuedPrintJobs.left + leftMargin: 6 * screenScaleFactor // TODO: Theme! + top: queuedLabel.bottom + topMargin: 24 * screenScaleFactor // TODO: Theme! + } + spacing: 18 * screenScaleFactor // TODO: Theme! + + Label + { + text: catalog.i18nc("@label", "Print jobs") + color: "#666666" + elide: Text.ElideRight + font: UM.Theme.getFont("medium") // 14pt, regular + anchors.verticalCenter: parent.verticalCenter + width: 284 * screenScaleFactor // TODO: Theme! (Should match column size) + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + + Label + { + text: catalog.i18nc("@label", "Total print time") + color: "#666666" + elide: Text.ElideRight + font: UM.Theme.getFont("medium") // 14pt, regular + anchors.verticalCenter: parent.verticalCenter + width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + + Label + { + text: catalog.i18nc("@label", "Waiting for") + color: "#666666" + elide: Text.ElideRight + font: UM.Theme.getFont("medium") // 14pt, regular + anchors.verticalCenter: parent.verticalCenter + width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) + + // FIXED-LINE-HEIGHT: + height: 18 * screenScaleFactor // TODO: Theme! + verticalAlignment: Text.AlignVCenter + } + } + + ScrollView + { + id: queuedPrintJobs + anchors + { + bottom: parent.bottom + horizontalCenter: parent.horizontalCenter + top: printJobQueueHeadings.bottom + topMargin: 12 * screenScaleFactor // TODO: Theme! + } + style: UM.Theme.styles.scrollview + visible: OutputDevice.receivedPrintJobs + width: parent.width + + ListView + { + id: printJobList + anchors.fill: parent + delegate: MonitorPrintJobCard + { + anchors + { + left: parent.left + right: parent.right + } + printJob: modelData + } + model: OutputDevice.queuedPrintJobs + spacing: 6 // TODO: Theme! + } + } +} \ No newline at end of file diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 98ca715108..0333e1447c 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -8,16 +8,13 @@ import UM 1.3 as UM import Cura 1.0 as Cura import QtGraphicalEffects 1.0 -// Root component for the monitor tab (stage) +// This is the root component for the monitor stage. Component { Item { id: monitorFrame - property var emphasisColor: UM.Theme.getColor("setting_control_border_highlight") - property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width - height: maximumHeight onVisibleChanged: { @@ -80,11 +77,10 @@ Component } } - Item + MonitorQueue { id: queue width: Math.min(834 * screenScaleFactor, maximumWidth) - anchors { bottom: parent.bottom @@ -92,157 +88,6 @@ Component top: printers.bottom topMargin: 48 * screenScaleFactor // TODO: Theme! } - - Label - { - id: queuedLabel - anchors - { - left: queuedPrintJobs.left - top: parent.top - } - color: UM.Theme.getColor("text") - font: UM.Theme.getFont("large_nonbold") - text: catalog.i18nc("@label", "Queued") - } - - Item - { - id: manageQueueLabel - anchors - { - right: queuedPrintJobs.right - verticalCenter: queuedLabel.verticalCenter - } - height: 18 * screenScaleFactor // TODO: Theme! - width: childrenRect.width - - UM.RecolorImage - { - id: externalLinkIcon - anchors.verticalCenter: manageQueueLabel.verticalCenter - color: UM.Theme.getColor("primary") - source: "../svg/icons/external_link.svg" - width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) - height: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) - } - Label - { - id: manageQueueText - anchors - { - left: externalLinkIcon.right - leftMargin: 6 * screenScaleFactor // TODO: Theme! - verticalCenter: externalLinkIcon.verticalCenter - } - color: UM.Theme.getColor("primary") - font: UM.Theme.getFont("default") // 12pt, regular - linkColor: UM.Theme.getColor("primary") - text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect") - } - } - - MouseArea - { - anchors.fill: manageQueueLabel - hoverEnabled: true - onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel() - onEntered: - { - manageQueueText.font.underline = true - } - onExited: - { - manageQueueText.font.underline = false - } - } - - Row - { - id: printJobQueueHeadings - anchors - { - left: queuedPrintJobs.left - leftMargin: 6 * screenScaleFactor // TODO: Theme! - top: queuedLabel.bottom - topMargin: 24 * screenScaleFactor // TODO: Theme! - } - spacing: 18 * screenScaleFactor // TODO: Theme! - - Label - { - text: catalog.i18nc("@label", "Print jobs") - color: "#666666" - elide: Text.ElideRight - font: UM.Theme.getFont("medium") // 14pt, regular - anchors.verticalCenter: parent.verticalCenter - width: 284 * screenScaleFactor // TODO: Theme! (Should match column size) - - // FIXED-LINE-HEIGHT: - height: 18 * screenScaleFactor // TODO: Theme! - verticalAlignment: Text.AlignVCenter - } - - Label - { - text: catalog.i18nc("@label", "Total print time") - color: "#666666" - elide: Text.ElideRight - font: UM.Theme.getFont("medium") // 14pt, regular - anchors.verticalCenter: parent.verticalCenter - width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) - - // FIXED-LINE-HEIGHT: - height: 18 * screenScaleFactor // TODO: Theme! - verticalAlignment: Text.AlignVCenter - } - - Label - { - text: catalog.i18nc("@label", "Waiting for") - color: "#666666" - elide: Text.ElideRight - font: UM.Theme.getFont("medium") // 14pt, regular - anchors.verticalCenter: parent.verticalCenter - width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) - - // FIXED-LINE-HEIGHT: - height: 18 * screenScaleFactor // TODO: Theme! - verticalAlignment: Text.AlignVCenter - } - } - - ScrollView - { - id: queuedPrintJobs - anchors - { - bottom: parent.bottom - horizontalCenter: parent.horizontalCenter - top: printJobQueueHeadings.bottom - topMargin: 12 * screenScaleFactor // TODO: Theme! - } - style: UM.Theme.styles.scrollview - visible: OutputDevice.receivedPrintJobs - width: parent.width - - ListView - { - id: printJobList - anchors.fill: parent - delegate: MonitorPrintJobCard - { - anchors - { - left: parent.left - right: parent.right - } - printJob: modelData - } - model: OutputDevice.queuedPrintJobs - spacing: 6 - } - } } PrinterVideoStream From 53da111617d9363784e3363659653496ebd4c734 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 15:21:48 +0100 Subject: [PATCH 0919/1039] Change "Rating" to "Your rating" --- plugins/Toolbox/resources/qml/ToolboxDetailPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml index 92b9fb1198..b9b36cd878 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDetailPage.qml @@ -88,7 +88,7 @@ Item height: childrenRect.height Label { - text: catalog.i18nc("@label", "Rating") + ":" + text: catalog.i18nc("@label", "Your rating") + ":" font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_medium") renderType: Text.NativeRendering From 135219365423e588303c5bf30e6e94c851bfd4cd Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 15:26:10 +0100 Subject: [PATCH 0920/1039] Ensure that the sourceSize is set correctly --- plugins/Toolbox/resources/qml/RatingWidget.qml | 2 ++ plugins/Toolbox/resources/qml/SmallRatingWidget.qml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/Toolbox/resources/qml/RatingWidget.qml b/plugins/Toolbox/resources/qml/RatingWidget.qml index 3dcae6d602..441cf238f7 100644 --- a/plugins/Toolbox/resources/qml/RatingWidget.qml +++ b/plugins/Toolbox/resources/qml/RatingWidget.qml @@ -75,6 +75,8 @@ Item background: UM.RecolorImage { source: UM.Theme.getIcon(control.isStarFilled ? "star_filled" : "star_empty") + sourceSize.width: width + sourceSize.height: height // Unfilled stars should always have the default color. Only filled stars should change on hover color: diff --git a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml index 686058f4e8..4950ea9242 100644 --- a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml +++ b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml @@ -17,6 +17,8 @@ Row color: model.user_rating == 0 ? UM.Theme.getColor("rating_star") : UM.Theme.getColor("primary") height: UM.Theme.getSize("rating_star").height width: UM.Theme.getSize("rating_star").width + sourceSize.height: height + sourceSize.width: width } Label From 4d135c13bb8dc5f6971d07eb6682962433826b55 Mon Sep 17 00:00:00 2001 From: alekseisasin Date: Mon, 17 Dec 2018 16:46:02 +0100 Subject: [PATCH 0921/1039] Cura used wrong firmware version for UMO+. The firmware was from UMO. The reason of this issue because it used a heated firmware from his parent(UMO) printer. To avoid this case we need to define externally the firmware_hbk_file property in umo+ defintion file CURA-5994 --- resources/definitions/ultimaker_original_plus.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker_original_plus.def.json b/resources/definitions/ultimaker_original_plus.def.json index 5ad7ae66e8..bdb8a3d788 100644 --- a/resources/definitions/ultimaker_original_plus.def.json +++ b/resources/definitions/ultimaker_original_plus.def.json @@ -16,7 +16,8 @@ { "0": "ultimaker_original_plus_extruder_0" }, - "firmware_file": "MarlinUltimaker-UMOP-{baudrate}.hex" + "firmware_file": "MarlinUltimaker-UMOP-{baudrate}.hex", + "firmware_hbk_file": "MarlinUltimaker-UMOP-{baudrate}.hex" }, "overrides": { From 5c697ab5bed61ad4169db31ac676cdd2f056d9c8 Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Mon, 17 Dec 2018 16:58:51 +0100 Subject: [PATCH 0922/1039] Make hints clickable Contributes to CL-1151 --- .../resources/qml/MonitorCarousel.qml | 46 +++++++++++-------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index ea1449ac8d..476e3c2aa1 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -25,7 +25,7 @@ Item anchors { right: leftButton.left - rightMargin: 12 * screenScaleFactor + rightMargin: 12 * screenScaleFactor // TODO: Theme! left: parent.left } height: parent.height @@ -40,15 +40,20 @@ Item GradientStop { position: 0.0 - color: "#fff6f6f6" + color: "#fff6f6f6" // TODO: Theme! } GradientStop { position: 1.0 - color: "#66f6f6f6" + color: "#66f6f6f6" // TODO: Theme! } } } + MouseArea + { + anchors.fill: parent + onClicked: navigateTo(currentIndex - 1) + } } Button @@ -58,7 +63,7 @@ Item { verticalCenter: parent.verticalCenter right: centerSection.left - rightMargin: 12 * screenScaleFactor + rightMargin: 12 * screenScaleFactor // TODO: Theme! } width: 36 * screenScaleFactor // TODO: Theme! height: 72 * screenScaleFactor // TODO: Theme! @@ -79,10 +84,10 @@ Item UM.RecolorImage { anchors.centerIn: parent - width: 18 - height: width - sourceSize.width: width - sourceSize.height: width + width: 18 // TODO: Theme! + height: width // TODO: Theme! + sourceSize.width: width // TODO: Theme! + sourceSize.height: width // TODO: Theme! color: "#152950" // TODO: Theme! source: UM.Theme.getIcon("arrow_left") } @@ -105,7 +110,7 @@ Item { id: tiles height: childrenRect.height - width: 5 * tileWidth + 4 * tileSpacing + width: 5 * tileWidth + 4 * tileSpacing // TODO: Theme! x: 0 z: 0 Behavior on x @@ -137,7 +142,7 @@ Item { verticalCenter: parent.verticalCenter left: centerSection.right - leftMargin: 12 * screenScaleFactor + leftMargin: 12 * screenScaleFactor // TODO: Theme! } width: 36 * screenScaleFactor // TODO: Theme! height: 72 * screenScaleFactor // TODO: Theme! @@ -158,10 +163,10 @@ Item UM.RecolorImage { anchors.centerIn: parent - width: 18 - height: width - sourceSize.width: width - sourceSize.height: width + width: 18 // TODO: Theme! + height: width // TODO: Theme! + sourceSize.width: width // TODO: Theme! + sourceSize.height: width // TODO: Theme! color: "#152950" // TODO: Theme! source: UM.Theme.getIcon("arrow_right") } @@ -174,7 +179,7 @@ Item anchors { left: rightButton.right - leftMargin: 12 * screenScaleFactor + leftMargin: 12 * screenScaleFactor // TODO: Theme! right: parent.right } height: centerSection.height @@ -190,15 +195,20 @@ Item GradientStop { position: 0.0 - color: "#66f6f6f6" + color: "#66f6f6f6" // TODO: Theme! } GradientStop { position: 1.0 - color: "#fff6f6f6" + color: "#fff6f6f6" // TODO: Theme! } } } + MouseArea + { + anchors.fill: parent + onClicked: navigateTo(currentIndex + 1) + } } Item @@ -223,7 +233,7 @@ Item color: model.index == currentIndex ? "#777777" : "#d8d8d8" // TODO: Theme! radius: Math.floor(width / 2) width: 12 * screenScaleFactor // TODO: Theme! - height: width + height: width // TODO: Theme! } onClicked: navigateTo(model.index) } From d6212d5a398d19bf72d9a718b316270629dcef52 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 17 Dec 2018 17:29:24 +0100 Subject: [PATCH 0923/1039] Add elide in the showcase title and reduce the height a bit so there are only 2 lines for the title. --- plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml | 1 + resources/themes/cura-light/theme.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml index bb4f34163d..c8c1e56c82 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcaseTile.qml @@ -47,6 +47,7 @@ Rectangle height: UM.Theme.getSize("toolbox_heading_label").height width: parent.width - UM.Theme.getSize("default_margin").width wrapMode: Text.WordWrap + elide: Text.ElideRight font: UM.Theme.getFont("medium_bold") } UM.RecolorImage diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index ea6c92b479..83a51e5431 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -495,7 +495,7 @@ "toolbox_back_button": [4.0, 2.0], "toolbox_installed_tile": [1.0, 8.0], "toolbox_property_label": [1.0, 2.0], - "toolbox_heading_label": [1.0, 4.0], + "toolbox_heading_label": [1.0, 3.8], "toolbox_header": [1.0, 4.0], "toolbox_header_highlight": [0.25, 0.25], "toolbox_progress_bar": [8.0, 0.5], From 0e294481ff9e2ffa4e2dbe24dda5b527a74a0fcc Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 17:32:11 +0100 Subject: [PATCH 0924/1039] Improve readability of printer_type_label for dark theme --- resources/themes/cura-dark/theme.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index cade342488..537fccbc5c 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -40,6 +40,8 @@ "text_scene": [255, 255, 255, 162], "text_scene_hover": [255, 255, 255, 204], + "printer_type_label_background": [95, 95, 95, 255], + "error": [212, 31, 53, 255], "disabled": [32, 32, 32, 255], From 3f7c9227340a57f1d031910a34ff6e23221c9fb8 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 17:37:12 +0100 Subject: [PATCH 0925/1039] Add missing type for g-code reader --- plugins/GCodeReader/FlavorParser.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/GCodeReader/FlavorParser.py b/plugins/GCodeReader/FlavorParser.py index 6fe2cb5260..baf21d47ce 100644 --- a/plugins/GCodeReader/FlavorParser.py +++ b/plugins/GCodeReader/FlavorParser.py @@ -364,6 +364,8 @@ class FlavorParser: self._layer_type = LayerPolygon.SupportType elif type == "FILL": self._layer_type = LayerPolygon.InfillType + elif type == "SUPPORT-INTERFACE": + self._layer_type = LayerPolygon.SupportInterfaceType else: Logger.log("w", "Encountered a unknown type (%s) while parsing g-code.", type) From 7d6e698f431c24126d0521b408bd2dafb79788ec Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 17 Dec 2018 17:37:21 +0100 Subject: [PATCH 0926/1039] Fix (USB) print monitor in dark theme --- plugins/USBPrinting/MonitorItem.qml | 2 ++ resources/qml/PrintMonitor.qml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/USBPrinting/MonitorItem.qml b/plugins/USBPrinting/MonitorItem.qml index 8041698ef0..c86353f814 100644 --- a/plugins/USBPrinting/MonitorItem.qml +++ b/plugins/USBPrinting/MonitorItem.qml @@ -13,6 +13,8 @@ Component { Rectangle { + color: UM.Theme.getColor("main_background") + anchors.right: parent.right width: parent.width * 0.3 anchors.top: parent.top diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 6d8edf0deb..d44acf0adb 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -12,7 +12,7 @@ import Cura 1.0 as Cura import "PrinterOutput" -Rectangle +Item { id: base UM.I18nCatalog { id: catalog; name: "cura"} From d395c38436712979639747c202741f788dbd388d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 17 Dec 2018 17:47:33 +0100 Subject: [PATCH 0927/1039] Removed collapse / expand all I don't think it ever worked. --- resources/qml/Settings/SettingView.qml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index c1b4b28d1d..972cbcdbb1 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -558,17 +558,6 @@ Item onTriggered: Cura.Actions.configureSettingVisibility.trigger(contextMenu); } - MenuSeparator {} - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Collapse All") - onTriggered: definitionsModel.collapseAll() - } - MenuItem - { - text: catalog.i18nc("@action:inmenu", "Expand All") - onTriggered: definitionsModel.expandRecursive() - } } UM.SettingPropertyProvider From 62d20ac773b617e1ed0fe0a43ce05913ca59b789 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 17 Dec 2018 17:55:40 +0100 Subject: [PATCH 0928/1039] Change the base color of the tooltips to align with the designs Contributes to CURA-6004. --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 83a51e5431..2b9ce3d218 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -229,7 +229,7 @@ "checkbox_disabled": [223, 223, 223, 255], "checkbox_text": [35, 35, 35, 255], - "tooltip": [68, 192, 255, 255], + "tooltip": [25, 25, 25, 255], "tooltip_text": [255, 255, 255, 255], "message_background": [255, 255, 255, 255], From 6017c2b4d2cd52110856e3cb835638a40458a6b6 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 18 Dec 2018 08:55:55 +0100 Subject: [PATCH 0929/1039] Replace isProfileUserCreated with hasCustomQuality CURA-6028 --- cura/Settings/MachineManager.py | 4 +++ cura/Settings/SimpleModeSettingsManager.py | 32 ------------------- .../RecommendedQualityProfileSelector.qml | 23 ++++--------- 3 files changed, 10 insertions(+), 49 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e26b82e487..5e0bbea1ee 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1529,6 +1529,10 @@ class MachineManager(QObject): def activeQualityChangesGroup(self) -> Optional["QualityChangesGroup"]: return self._current_quality_changes_group + @pyqtProperty(bool, notify = activeQualityChangesGroupChanged) + def hasCustomQuality(self) -> bool: + return self._current_quality_changes_group is not None + @pyqtProperty(str, notify = activeQualityGroupChanged) def activeQualityOrQualityChangesName(self) -> str: name = empty_quality_container.getName() diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py index b22aea15ea..b1896a9205 100644 --- a/cura/Settings/SimpleModeSettingsManager.py +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -17,15 +17,11 @@ class SimpleModeSettingsManager(QObject): self._is_profile_user_created = False # True when profile was custom created by user self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileCustomized) - self._machine_manager.activeQualityGroupChanged.connect(self.updateIsProfileUserCreated) - self._machine_manager.activeQualityChangesGroupChanged.connect(self.updateIsProfileUserCreated) # update on create as the activeQualityChanged signal is emitted before this manager is created when Cura starts self._updateIsProfileCustomized() - self.updateIsProfileUserCreated() isProfileCustomizedChanged = pyqtSignal() - isProfileUserCreatedChanged = pyqtSignal() @pyqtProperty(bool, notify = isProfileCustomizedChanged) def isProfileCustomized(self): @@ -58,34 +54,6 @@ class SimpleModeSettingsManager(QObject): self._is_profile_customized = has_customized_user_settings self.isProfileCustomizedChanged.emit() - @pyqtProperty(bool, notify = isProfileUserCreatedChanged) - def isProfileUserCreated(self): - return self._is_profile_user_created - - @pyqtSlot() - def updateIsProfileUserCreated(self) -> None: - quality_changes_keys = set() # type: Set[str] - - if not self._machine_manager.activeMachine: - return - - global_stack = self._machine_manager.activeMachine - - # check quality changes settings in the global stack - quality_changes_keys.update(global_stack.qualityChanges.getAllKeys()) - - # check quality changes settings in the extruder stacks - if global_stack.extruders: - for extruder_stack in global_stack.extruders.values(): - quality_changes_keys.update(extruder_stack.qualityChanges.getAllKeys()) - - # check if the qualityChanges container is not empty (meaning it is a user created profile) - has_quality_changes = len(quality_changes_keys) > 0 - - if has_quality_changes != self._is_profile_user_created: - self._is_profile_user_created = has_quality_changes - self.isProfileUserCreatedChanged.emit() - # These are the settings included in the Simple ("Recommended") Mode, so only when the other settings have been # changed, we consider it as a user customized profile in the Simple ("Recommended") Mode. __ignored_custom_setting_keys = ["support_enable", diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index e6b3f1b9eb..1e71134404 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -39,17 +39,6 @@ Item { target: Cura.QualityProfilesDropDownMenuModel onItemsChanged: qualityModel.update() - onDataChanged: - { - // If a custom profile is selected and then a user decides to change any of setting the slider should show - // the reset button. After clicking the reset button the QualityProfilesDropDownMenuModel(ListModel) is - // updated before the property isProfileCustomized is called to update. - if (Cura.SimpleModeSettingsManager.isProfileCustomized) - { - Cura.SimpleModeSettingsManager.updateIsProfileUserCreated() - } - qualityModel.update() - } } Connections { @@ -97,7 +86,7 @@ Item if (Cura.MachineManager.activeQualityType == qualityItem.quality_type) { // set to -1 when switching to user created profile so all ticks are clickable - if (Cura.SimpleModeSettingsManager.isProfileUserCreated) + if (Cura.MachineManager.hasCustomQuality) { qualityModel.qualitySliderActiveIndex = -1 } @@ -192,7 +181,7 @@ Item { id: customisedSettings - visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.SimpleModeSettingsManager.isProfileUserCreated + visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.MachineManager.hasCustomQuality height: visible ? UM.Theme.getSize("print_setup_icon").height : 0 width: height anchors @@ -358,7 +347,7 @@ Item { anchors.fill: parent hoverEnabled: true - enabled: !Cura.SimpleModeSettingsManager.isProfileUserCreated + enabled: !Cura.MachineManager.hasCustomQuality onEntered: { var tooltipContent = catalog.i18nc("@tooltip", "This quality profile is not available for your current material and nozzle configuration. Please change these to enable this quality profile") @@ -417,7 +406,7 @@ Item implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width implicitHeight: implicitWidth radius: Math.round(implicitWidth / 2) - visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.MachineManager.hasCustomQuality && qualityModel.existingQualityProfile } } @@ -441,7 +430,7 @@ Item anchors.fill: parent hoverEnabled: true acceptedButtons: Qt.NoButton - enabled: !Cura.SimpleModeSettingsManager.isProfileUserCreated + enabled: !Cura.MachineManager.hasCustomQuality } } @@ -451,7 +440,7 @@ Item { anchors.fill: parent hoverEnabled: true - visible: Cura.SimpleModeSettingsManager.isProfileUserCreated + visible: Cura.MachineManager.hasCustomQuality onEntered: { From 9f52a52ea3ee9e497c8b7dc220a9077ad7c64c59 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 18 Dec 2018 09:32:11 +0100 Subject: [PATCH 0930/1039] Fix ExtruderModel reference in machine settings dialog --- .../MachineSettingsAction.qml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index d8efe6f8b8..a9900070a8 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -14,20 +14,9 @@ Cura.MachineAction { id: base property var extrudersModel: CuraApplication.getExtrudersModel() - property int extruderTabsCount: 0 property var activeMachineId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.id : "" - Connections - { - target: base.extrudersModel - onModelChanged: - { - var extruderCount = base.extrudersModel.count; - base.extruderTabsCount = extruderCount; - } - } - Connections { target: dialog ? dialog : null @@ -357,11 +346,11 @@ Cura.MachineAction Repeater { id: extruderTabsRepeater - model: base.extruderTabsCount + model: base.extrudersModel Tab { - title: base.extrudersModel.getItem(index).name + title: model.name anchors.margins: UM.Theme.getSize("default_margin").width Column From 84a7f2e5a2d1ec96f74ffb15b9b08f053af44198 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 18 Dec 2018 09:40:08 +0100 Subject: [PATCH 0931/1039] Fix review comments CURA-6011 --- cura/PrintersModel.py | 2 +- cura/Settings/MachineManager.py | 4 ++-- plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py | 10 +++++----- .../UM3NetworkPrinting/src/UM3OutputDevicePlugin.py | 2 +- plugins/USBPrinting/USBPrinterOutputDevice.py | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/cura/PrintersModel.py b/cura/PrintersModel.py index 0c58d9bf8c..8b5d2f6cc9 100644 --- a/cura/PrintersModel.py +++ b/cura/PrintersModel.py @@ -54,7 +54,7 @@ class PrintersModel(ListModel): for container_stack in container_stacks: connection_type = container_stack.getMetaDataEntry("connection_type") - has_remote_connection = connection_type in [str(ConnectionType.NetworkConnection), str(ConnectionType.CloudConnection)] + has_remote_connection = connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value] if container_stack.getMetaDataEntry("hidden", False) in ["True", True]: continue diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index c51c26f1b9..e1ae0d761c 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -521,11 +521,11 @@ class MachineManager(QObject): def printerConnected(self): return bool(self._printer_output_devices) - @pyqtProperty(bool, notify=printerConnectedStatusChanged) + @pyqtProperty(bool, notify = printerConnectedStatusChanged) def activeMachineHasRemoteConnection(self) -> bool: if self._global_container_stack: connection_type = self._global_container_stack.getMetaDataEntry("connection_type") - return connection_type in [str(ConnectionType.NetworkConnection), str(ConnectionType.CloudConnection)] + return connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value] return False def activeMachineNetworkKey(self) -> str: diff --git a/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py b/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py index 2e59810317..6ce99e4891 100644 --- a/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py +++ b/plugins/UM3NetworkPrinting/src/DiscoverUM3Action.py @@ -136,13 +136,13 @@ class DiscoverUM3Action(MachineAction): global_container_stack.removeMetaDataEntry("network_authentication_key") CuraApplication.getInstance().getMachineManager().replaceContainersMetadata(key = "um_network_key", value = previous_network_key, new_value = printer_device.key) - if "um_connection_type" in meta_data: - previous_connection_type = meta_data["um_connection_type"] - global_container_stack.setMetaDataEntry("um_connection_type", printer_device.getConnectionType().value) - CuraApplication.getInstance().getMachineManager().replaceContainersMetadata(key = "um_connection_type", value = previous_connection_type, new_value = printer_device.getConnectionType().value) + if "connection_type" in meta_data: + previous_connection_type = meta_data["connection_type"] + global_container_stack.setMetaDataEntry("connection_type", printer_device.getConnectionType().value) + CuraApplication.getInstance().getMachineManager().replaceContainersMetadata(key = "connection_type", value = previous_connection_type, new_value = printer_device.getConnectionType().value) else: global_container_stack.setMetaDataEntry("um_network_key", printer_device.key) - global_container_stack.setMetaDataEntry("um_connection_type", printer_device.getConnectionType().value) + global_container_stack.setMetaDataEntry("connection_type", printer_device.getConnectionType().value) if self._network_plugin: # Ensure that the connection states are refreshed. diff --git a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py index 43290c8e44..80212fcf00 100644 --- a/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/src/UM3OutputDevicePlugin.py @@ -283,7 +283,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin): global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack and device.getId() == global_container_stack.getMetaDataEntry("um_network_key"): - global_container_stack.setMetaDataEntry("connection_type", str(device.getConnectionType())) + global_container_stack.setMetaDataEntry("connection_type", device.getConnectionType().value) device.connect() device.connectionStateChanged.connect(self._onDeviceConnectionStateChanged) diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 08cf29baf4..19a703e605 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -29,7 +29,7 @@ catalog = i18nCatalog("cura") class USBPrinterOutputDevice(PrinterOutputDevice): def __init__(self, serial_port: str, baud_rate: Optional[int] = None) -> None: - super().__init__(serial_port, connection_type=ConnectionType.UsbConnection) + super().__init__(serial_port, connection_type = ConnectionType.UsbConnection) self.setName(catalog.i18nc("@item:inmenu", "USB printing")) self.setShortDescription(catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print via USB")) self.setDescription(catalog.i18nc("@info:tooltip", "Print via USB")) From aa0c8c75ee40373b1b2faac4055b72b06164d3ee Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 18 Dec 2018 09:45:26 +0100 Subject: [PATCH 0932/1039] Add a sane default to connection type CURA-6011 --- cura/PrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index b33993f150..3102d73bb0 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -74,7 +74,7 @@ class PrinterOutputDevice(QObject, OutputDevice): # Signal to indicate that the configuration of one of the printers has changed. uniqueConfigurationsChanged = pyqtSignal() - def __init__(self, device_id: str, connection_type: "ConnectionType", parent: QObject = None) -> None: + def __init__(self, device_id: str, connection_type: "ConnectionType" = ConnectionType.Unknown, parent: QObject = None) -> None: super().__init__(device_id = device_id, parent = parent) # type: ignore # MyPy complains with the multiple inheritance self._printers = [] # type: List[PrinterOutputModel] From be9d35d45f63d5a3c6896abcfca1a74165ec0f1b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 18 Dec 2018 09:47:51 +0100 Subject: [PATCH 0933/1039] Fix some minor layout issues CURA-6011 --- resources/qml/PrinterSelector/MachineSelectorList.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 52cea0ea80..ea8068fa95 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -11,7 +11,6 @@ ListView { id: listView height: childrenRect.height - width: 200 model: Cura.PrintersModel {} section.property: "hasRemoteConnection" @@ -19,6 +18,7 @@ ListView { text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Preset printers") width: parent.width + height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 leftPadding: UM.Theme.getSize("default_margin").width renderType: Text.NativeRendering font: UM.Theme.getFont("medium") From cc462ef3a609be1df9ee0fb9d94ce4a541db2183 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 18 Dec 2018 10:29:44 +0100 Subject: [PATCH 0934/1039] Add a placeholder for a pattern in the header, if the theme wants to add one. --- resources/qml/Cura.qml | 11 + .../cura-light/images/header_pattern.svg | 1901 ----------------- 2 files changed, 11 insertions(+), 1901 deletions(-) delete mode 100644 resources/themes/cura-light/images/header_pattern.svg diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 8ab943b93b..8a34c7e219 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -123,6 +123,17 @@ UM.MainWindow } } } + + // This is a placehoder for adding a pattern in the header + Image + { + id: backgroundPattern + anchors.fill: parent + fillMode: Image.Tile + source: UM.Theme.getImage("header_pattern") + horizontalAlignment: Image.AlignLeft + verticalAlignment: Image.AlignTop + } } MainWindowHeader diff --git a/resources/themes/cura-light/images/header_pattern.svg b/resources/themes/cura-light/images/header_pattern.svg deleted file mode 100644 index eff5f01cfa..0000000000 --- a/resources/themes/cura-light/images/header_pattern.svg +++ /dev/null @@ -1,1901 +0,0 @@ - - - - Desktop HD - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From dff9a3dfb24301d27e6ef53365bd4786d9d926a9 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 18 Dec 2018 10:52:11 +0100 Subject: [PATCH 0935/1039] Fix None problem in project loading --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 9ee2ef0dd4..55296979b5 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -794,7 +794,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # Clear all existing containers quality_changes_info.global_info.container.clear() for container_info in quality_changes_info.extruder_info_dict.values(): - container_info.container.clear() + if container_info.container: + container_info.container.clear() # Loop over everything and override the existing containers global_info = quality_changes_info.global_info From 9b6e52a5be95471b96baa4fe53f674c719f37b00 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 18 Dec 2018 13:08:18 +0100 Subject: [PATCH 0936/1039] Make monitor item background themable --- plugins/USBPrinting/MonitorItem.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/USBPrinting/MonitorItem.qml b/plugins/USBPrinting/MonitorItem.qml index 8041698ef0..14b1402e50 100644 --- a/plugins/USBPrinting/MonitorItem.qml +++ b/plugins/USBPrinting/MonitorItem.qml @@ -17,6 +17,7 @@ Component width: parent.width * 0.3 anchors.top: parent.top anchors.bottom: parent.bottom + color: UM.Theme.getColor("main_background") Cura.PrintMonitor { From 627c647fbcca9555807770fa640fa69b47c9877c Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Tue, 18 Dec 2018 13:17:25 +0100 Subject: [PATCH 0937/1039] Center navigation dots Contributes to CL-1151 --- .../resources/qml/MonitorCarousel.qml | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index 476e3c2aa1..a3e2517b45 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -211,7 +211,7 @@ Item } } - Item + Row { id: navigationDots anchors @@ -220,23 +220,20 @@ Item top: centerSection.bottom topMargin: 36 * screenScaleFactor // TODO: Theme! } - Row + spacing: 8 * screenScaleFactor // TODO: Theme! + Repeater { - spacing: 8 * screenScaleFactor // TODO: Theme! - Repeater + model: OutputDevice.printers + Button { - model: OutputDevice.printers - Button + background: Rectangle { - background: Rectangle - { - color: model.index == currentIndex ? "#777777" : "#d8d8d8" // TODO: Theme! - radius: Math.floor(width / 2) - width: 12 * screenScaleFactor // TODO: Theme! - height: width // TODO: Theme! - } - onClicked: navigateTo(model.index) + color: model.index == currentIndex ? "#777777" : "#d8d8d8" // TODO: Theme! + radius: Math.floor(width / 2) + width: 12 * screenScaleFactor // TODO: Theme! + height: width // TODO: Theme! } + onClicked: navigateTo(model.index) } } } From 279812e4ff356170463dbf0e693e86689a063945 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 18 Dec 2018 13:55:12 +0100 Subject: [PATCH 0938/1039] Round width of buttons They were getting rendered a bit weird if your pixel scale was not an integer (for me it's 1.25). --- resources/qml/Preferences/MachinesPage.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index bc75b9bc72..4acefdb493 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2016 Ultimaker B.V. +// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -91,7 +91,7 @@ UM.ManagementPage Item { - width: childrenRect.width + 2 * screenScaleFactor + width: Math.round(childrenRect.width + 2 * screenScaleFactor) height: childrenRect.height Button { From 1ac5403c21a6b55f372f19329328ef618ecf03fb Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 18 Dec 2018 15:52:26 +0100 Subject: [PATCH 0939/1039] Remove extruder tabs from tabView CURA-6036 --- .../MachineSettingsAction/MachineSettingsAction.qml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index a9900070a8..60dd31dcae 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -348,6 +348,17 @@ Cura.MachineAction id: extruderTabsRepeater model: base.extrudersModel + + onItemAdded: + { + settingsTabs.addTab(index + 1, item) + } + + onItemRemoved: + { + settingsTabs.removeTab(index + 1) + } + Tab { title: model.name From 1b11164340d93ee6f955a6b710dd2dbe3865489a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 18 Dec 2018 16:09:19 +0100 Subject: [PATCH 0940/1039] Remove unused import and add documentation --- cura/Machines/Models/FavoriteMaterialsModel.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cura/Machines/Models/FavoriteMaterialsModel.py b/cura/Machines/Models/FavoriteMaterialsModel.py index cc273e55ce..98a2a01597 100644 --- a/cura/Machines/Models/FavoriteMaterialsModel.py +++ b/cura/Machines/Models/FavoriteMaterialsModel.py @@ -1,10 +1,9 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from UM.Logger import Logger from cura.Machines.Models.BaseMaterialsModel import BaseMaterialsModel - +## Model that shows the list of favorite materials. class FavoriteMaterialsModel(BaseMaterialsModel): def __init__(self, parent = None): super().__init__(parent) From c66257bf4d42c5649606de352cf41496bd7a90dd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 18 Dec 2018 16:18:01 +0100 Subject: [PATCH 0941/1039] Use item instead of transparent rectangle This is faster to render. Contributes to issue CURA-6032. --- .../qml/Preferences/Materials/MaterialsBrandSection.qml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/resources/qml/Preferences/Materials/MaterialsBrandSection.qml b/resources/qml/Preferences/Materials/MaterialsBrandSection.qml index a3a0e4708f..c40693e343 100644 --- a/resources/qml/Preferences/Materials/MaterialsBrandSection.qml +++ b/resources/qml/Preferences/Materials/MaterialsBrandSection.qml @@ -1,5 +1,5 @@ // Copyright (c) 2018 Ultimaker B.V. -// Uranium is released under the terms of the LGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 import QtQuick.Controls 1.4 @@ -69,11 +69,7 @@ Rectangle } style: ButtonStyle { - background: Rectangle - { - anchors.fill: parent - color: "transparent" - } + background: Item { } } } } From 7cf1df74354022c5cceba84ae8ab304ad0d16b1e Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 18 Dec 2018 16:19:21 +0100 Subject: [PATCH 0942/1039] Remove back Cura.ExtrudersModel{}, because if retrieve the model from backend the tabs cannot be removed after model update. The QML bug CURA-6036 --- .../MachineSettingsAction.qml | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index 60dd31dcae..ef8fda224a 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -13,10 +13,22 @@ import Cura 1.0 as Cura Cura.MachineAction { id: base - property var extrudersModel: CuraApplication.getExtrudersModel() + property var extrudersModel: Cura.ExtrudersModel{} // Do not retrieve the Model from a backend. Otherwise the tabs + // in tabView will not removed/updated. Probably QML bug + property int extruderTabsCount: 0 property var activeMachineId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.id : "" + Connections + { + target: base.extrudersModel + onModelChanged: + { + var extruderCount = base.extrudersModel.count; + base.extruderTabsCount = extruderCount; + } + } + Connections { target: dialog ? dialog : null @@ -346,22 +358,11 @@ Cura.MachineAction Repeater { id: extruderTabsRepeater - model: base.extrudersModel - - - onItemAdded: - { - settingsTabs.addTab(index + 1, item) - } - - onItemRemoved: - { - settingsTabs.removeTab(index + 1) - } + model: base.extruderTabsCount Tab { - title: model.name + title: base.extrudersModel.getItem(index).name anchors.margins: UM.Theme.getSize("default_margin").width Column From c0c45519a06847d49a745dd2d23537350b937710 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 18 Dec 2018 16:49:41 +0100 Subject: [PATCH 0943/1039] Change another useless rectangle into an item It's more efficient to render. Also changed some code style. Contributes to issue CURA-6032. --- .../qml/Preferences/Materials/MaterialsSlot.qml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/resources/qml/Preferences/Materials/MaterialsSlot.qml b/resources/qml/Preferences/Materials/MaterialsSlot.qml index a706aaf2b9..fb3cb9607d 100644 --- a/resources/qml/Preferences/Materials/MaterialsSlot.qml +++ b/resources/qml/Preferences/Materials/MaterialsSlot.qml @@ -1,5 +1,5 @@ // Copyright (c) 2018 Ultimaker B.V. -// Uranium is released under the terms of the LGPLv3 or higher. +// Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 import QtQuick.Controls 1.4 @@ -70,7 +70,8 @@ Rectangle } onClicked: { - if (materialSlot.is_favorite) { + if (materialSlot.is_favorite) + { base.materialManager.removeFavorite(material.root_material_id) materialSlot.is_favorite = false return @@ -81,13 +82,10 @@ Rectangle } style: ButtonStyle { - background: Rectangle - { - anchors.fill: parent - color: "transparent" - } + background: Item { } } - UM.RecolorImage { + UM.RecolorImage + { anchors { verticalCenter: favorite_button.verticalCenter From 6600cea632c9e3cdb925407ff4c7eecf745b40e3 Mon Sep 17 00:00:00 2001 From: susisstrolch Date: Tue, 18 Dec 2018 16:51:16 +0100 Subject: [PATCH 0944/1039] Add missing baudrate to USB connection. Extend the baudrate list by 500.000bd to also detect Vertex Delta 3D (K8800). Fixes #4952 --- plugins/USBPrinting/AutoDetectBaudJob.py | 2 +- plugins/USBPrinting/USBPrinterOutputDevice.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/USBPrinting/AutoDetectBaudJob.py b/plugins/USBPrinting/AutoDetectBaudJob.py index 78de864e57..2fa0af1795 100644 --- a/plugins/USBPrinting/AutoDetectBaudJob.py +++ b/plugins/USBPrinting/AutoDetectBaudJob.py @@ -18,7 +18,7 @@ class AutoDetectBaudJob(Job): def __init__(self, serial_port: int) -> None: super().__init__() self._serial_port = serial_port - self._all_baud_rates = [115200, 250000, 230400, 57600, 38400, 19200, 9600] + self._all_baud_rates = [115200, 250000, 500000, 230400, 57600, 38400, 19200, 9600] def run(self) -> None: Logger.log("d", "Auto detect baud rate started.") diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 19a703e605..89903b06f4 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -49,7 +49,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._baud_rate = baud_rate - self._all_baud_rates = [115200, 250000, 230400, 57600, 38400, 19200, 9600] + self._all_baud_rates = [115200, 250000, 500000, 230400, 57600, 38400, 19200, 9600] # Instead of using a timer, we really need the update to be as a thread, as reading from serial can block. self._update_thread = Thread(target = self._update, daemon = True) From 66ed9ed201dd3873c98fda46508243e4902a41ce Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 18 Dec 2018 16:52:04 +0100 Subject: [PATCH 0945/1039] Remove optimisation that broke updates of models upon metadata change If the metadata changed, such as whether a material was favourite or not, then the materials models were not updating any more because the actual list of available materials was still the same. I've removed this optimisation and tested performance locally. It seems to be slightly slower (though that might be placebo or measurement error). However most of the performance boost of cura-6016 was resulting from different changes there so the interface still seems to be quite a lot faster than what it used to be. Contributes to issue CURA-6032. --- cura/Machines/Models/BaseMaterialsModel.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cura/Machines/Models/BaseMaterialsModel.py b/cura/Machines/Models/BaseMaterialsModel.py index 629e5c2b48..212e4fcf1e 100644 --- a/cura/Machines/Models/BaseMaterialsModel.py +++ b/cura/Machines/Models/BaseMaterialsModel.py @@ -106,10 +106,7 @@ class BaseMaterialsModel(ListModel): return False extruder_stack = global_stack.extruders[extruder_position] - available_materials = self._material_manager.getAvailableMaterialsForMachineExtruder(global_stack, extruder_stack) - if available_materials == self._available_materials: - return False - self._available_materials = available_materials + self._available_materials = self._material_manager.getAvailableMaterialsForMachineExtruder(global_stack, extruder_stack) if self._available_materials is None: return False From 6987d5ff782c53253c1b85b9f280ee4b9b328b59 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 19 Dec 2018 09:33:46 +0100 Subject: [PATCH 0946/1039] Add a radius to the printer type label --- resources/qml/PrinterTypeLabel.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/PrinterTypeLabel.qml b/resources/qml/PrinterTypeLabel.qml index 7feae32e16..cfc9e56513 100644 --- a/resources/qml/PrinterTypeLabel.qml +++ b/resources/qml/PrinterTypeLabel.qml @@ -19,6 +19,7 @@ Item { anchors.fill: parent color: UM.Theme.getColor("printer_type_label_background") + radius: UM.Theme.getSize("checkbox_radius").width } Label From 382286509f6cc5b1af6093b7e3b003965e955958 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 19 Dec 2018 09:49:12 +0100 Subject: [PATCH 0947/1039] Change the buildplate information to use a reusable component Boy scouting. Contributes to CURA-6025. --- .../ConfigurationMenu/ConfigurationItem.qml | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 728a0cbe9a..7e1b7e5af7 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -90,25 +90,13 @@ Button height: childrenRect.height visible: configuration.buildplateConfiguration != "" - UM.RecolorImage - { - id: buildplateIcon - anchors.left: parent.left - width: UM.Theme.getSize("main_window_header_button_icon").width - height: UM.Theme.getSize("main_window_header_button_icon").height - source: UM.Theme.getIcon("buildplate") - color: UM.Theme.getColor("text") - } - - Label + // Show the type of buildplate. The first letter is capitalized + Cura.IconWithText { id: buildplateLabel - anchors.left: buildplateIcon.right - anchors.verticalCenter: buildplateIcon.verticalCenter - anchors.leftMargin: Math.round(UM.Theme.getSize("default_margin").height / 2) - text: configuration.buildplateConfiguration - renderType: Text.NativeRendering - color: UM.Theme.getColor("text") + source: UM.Theme.getIcon("buildplate") + text: configuration.buildplateConfiguration.charAt(0).toUpperCase() + configuration.buildplateConfiguration.substr(1) + anchors.left: parent.left } } } From f1c28498a67aa73f93ada591bfdcb01c7ec14e59 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 19 Dec 2018 11:00:00 +0100 Subject: [PATCH 0948/1039] Display 0 if there are no measurements for minimum values Don't display max float then. --- plugins/SimulationView/SimulationView.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 6a0ffc1666..ae01b7cdb0 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -342,12 +342,16 @@ class SimulationView(CuraView): return self._extruder_count def getMinFeedrate(self) -> float: + if abs(self._min_feedrate - sys.float_info.max) < 10: # Some lenience due to floating point rounding. + return 0.0 # If it's still max-float, there are no measurements. Use 0 then. return self._min_feedrate def getMaxFeedrate(self) -> float: return self._max_feedrate def getMinThickness(self) -> float: + if abs(self._min_thickness - sys.float_info.max) < 10: # Some lenience due to floating point rounding. + return 0.0 # If it's still max-float, there are no measurements. Use 0 then. return self._min_thickness def getMaxThickness(self) -> float: From 142ac56d78e2bcb91eff8fffb0341be736d3461f Mon Sep 17 00:00:00 2001 From: Ian Paschal Date: Wed, 19 Dec 2018 11:26:38 +0100 Subject: [PATCH 0949/1039] Add keyboard navigation for printer carousel --- .../UM3NetworkPrinting/resources/qml/MonitorCarousel.qml | 4 ++++ .../UM3NetworkPrinting/resources/qml/MonitorStage.qml | 9 ++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml index a3e2517b45..eccd93c578 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorCarousel.qml @@ -18,6 +18,10 @@ Item height: centerSection.height width: maximumWidth + + // Enable keyboard navigation + Keys.onLeftPressed: navigateTo(currentIndex - 1) + Keys.onRightPressed: navigateTo(currentIndex + 1) Item { diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index b80c6a3661..8b1a11cb4d 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -24,6 +24,11 @@ Component } } width: maximumWidth + + // Enable keyboard navigation. NOTE: This is done here so that we can also potentially + // forward to the queue items in the future. (Deleting selected print job, etc.) + Keys.forwardTo: carousel + Component.onCompleted: forceActiveFocus() UM.I18nCatalog { @@ -59,7 +64,9 @@ Component } width: parent.width height: 264 * screenScaleFactor // TODO: Theme! - MonitorCarousel {} + MonitorCarousel { + id: carousel + } } MonitorQueue From 56d0a52faccb3cc0cd5ecd8701b342a530395ed3 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 19 Dec 2018 11:51:46 +0100 Subject: [PATCH 0950/1039] Documentation and code style --- plugins/SimulationView/SimulationViewMenuComponent.qml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index eec254c0dd..fe32fe9eb1 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -358,7 +358,7 @@ Cura.ExpandableComponent width: parent.width height: UM.Theme.getSize("layerview_row").height - Label + Label //Minimum value. { text: { @@ -383,9 +383,10 @@ Cura.ExpandableComponent renderType: Text.NativeRendering } - Label + Label //Unit in the middle. { - text: { + text: + { if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) { // Feedrate selected @@ -407,7 +408,7 @@ Cura.ExpandableComponent font: UM.Theme.getFont("default") } - Label + Label //Maximum value. { text: { if (UM.SimulationView.layerActivity && CuraApplication.platformActivity) From acabd06542ea4907d503055bba6174c19a5ab89e Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 19 Dec 2018 12:32:18 +0100 Subject: [PATCH 0951/1039] Change the large_nonbold to large in one remaining component Contributes to CURA-6025. --- plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml index 884dbabc2f..f2a0e785b8 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml @@ -23,7 +23,7 @@ Item top: parent.top } color: UM.Theme.getColor("text") - font: UM.Theme.getFont("large_nonbold") + font: UM.Theme.getFont("large") text: catalog.i18nc("@label", "Queued") } From 9acaf9abd772643de75a51d4a8c47878c8ee2079 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 19 Dec 2018 13:30:25 +0100 Subject: [PATCH 0952/1039] Disable dropping of files into cura when monitor stage is active. CURA-6038 --- plugins/MonitorStage/MonitorMain.qml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/MonitorStage/MonitorMain.qml b/plugins/MonitorStage/MonitorMain.qml index 8f113735ee..34cf4ad801 100644 --- a/plugins/MonitorStage/MonitorMain.qml +++ b/plugins/MonitorStage/MonitorMain.qml @@ -16,12 +16,20 @@ Item color: UM.Theme.getColor("viewport_overlay") anchors.fill: parent + + // This mouse area is to prevent mouse clicks to be passed onto the scene. MouseArea { anchors.fill: parent acceptedButtons: Qt.AllButtons onWheel: wheel.accepted = true } + + // Disable dropping files into Cura when the monitor page is active + DropArea + { + anchors.fill: parent + } } Loader From 9e867f8077e95bec3fe15567983813433e42e5ef Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 19 Dec 2018 13:53:34 +0100 Subject: [PATCH 0953/1039] Fix the codestyle and cleanup the QML a bit CURA-6043 --- .../PostProcessingPlugin.qml | 103 +++++++++++------- 1 file changed, 63 insertions(+), 40 deletions(-) diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index b962f4d53b..5862259be5 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -25,7 +25,7 @@ UM.Dialog { if(!visible) //Whenever the window is closed (either via the "Close" button or the X on the window frame), we want to update it in the stack. { - manager.writeScriptsToStack(); + manager.writeScriptsToStack() } } @@ -67,12 +67,17 @@ UM.Dialog ListView { id: activeScriptsList - anchors.top: activeScriptsHeader.bottom - anchors.topMargin: base.textMargin - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - anchors.right: parent.right - anchors.rightMargin: base.textMargin + + anchors + { + top: activeScriptsHeader.bottom + left: parent.left + right: parent.right + rightMargin: base.textMargin + topMargin: base.textMargin + leftMargin: UM.Theme.getSize("default_margin").width + } + height: childrenRect.height model: manager.scriptList delegate: Item @@ -84,8 +89,12 @@ UM.Dialog id: activeScriptButton text: manager.getScriptLabelByKey(modelData.toString()) exclusiveGroup: selectedScriptGroup + width: parent.width + height: UM.Theme.getSize("setting").height checkable: true - checked: { + + checked: + { if (manager.selectedScriptIndex == index) { base.activeScriptName = manager.getScriptLabelByKey(modelData.toString()) @@ -102,8 +111,7 @@ UM.Dialog manager.setSelectedScriptIndex(index) base.activeScriptName = manager.getScriptLabelByKey(modelData.toString()) } - width: parent.width - height: UM.Theme.getSize("setting").height + style: ButtonStyle { background: Rectangle @@ -121,6 +129,7 @@ UM.Dialog } } } + Button { id: removeButton @@ -249,8 +258,8 @@ UM.Dialog onTriggered: manager.addScriptToList(modelData.toString()) } - onObjectAdded: scriptsMenu.insertItem(index, object); - onObjectRemoved: scriptsMenu.removeItem(object); + onObjectAdded: scriptsMenu.insertItem(index, object) + onObjectRemoved: scriptsMenu.removeItem(object) } } } @@ -268,12 +277,16 @@ UM.Dialog { id: scriptSpecsHeader text: manager.selectedScriptIndex == -1 ? catalog.i18nc("@label", "Settings") : base.activeScriptName - anchors.top: parent.top - anchors.topMargin: base.textMargin - anchors.left: parent.left - anchors.leftMargin: base.textMargin - anchors.right: parent.right - anchors.rightMargin: base.textMargin + anchors + { + top: parent.top + topMargin: base.textMargin + left: parent.left + leftMargin: base.textMargin + right: parent.right + rightMargin: base.textMargin + } + elide: Text.ElideRight height: 20 * screenScaleFactor font: UM.Theme.getFont("large") @@ -283,11 +296,15 @@ UM.Dialog ScrollView { id: scrollView - anchors.top: scriptSpecsHeader.bottom - anchors.topMargin: settingsPanel.textMargin - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom + anchors + { + top: scriptSpecsHeader.bottom + topMargin: settingsPanel.textMargin + left: parent.left + right: parent.right + bottom: parent.bottom + } + visible: manager.selectedScriptDefinitionId != "" style: UM.Theme.styles.scrollview; @@ -297,7 +314,7 @@ UM.Dialog spacing: UM.Theme.getSize("default_lining").height model: UM.SettingDefinitionsModel { - id: definitionsModel; + id: definitionsModel containerId: manager.selectedScriptDefinitionId showAll: true } @@ -327,8 +344,10 @@ UM.Dialog } Behavior on height { NumberAnimation { duration: 100 } } opacity: provider.properties.enabled == "True" ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 100 } } enabled: opacity > 0 + property var definition: model property var settingDefinitionsModel: definitionsModel property var propertyProvider: provider @@ -339,7 +358,8 @@ UM.Dialog //causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely. asynchronous: model.type != "enum" && model.type != "extruder" - onLoaded: { + onLoaded: + { settingLoader.item.showRevertButton = false settingLoader.item.showInheritButton = false settingLoader.item.showLinkedSettingIcon = false @@ -395,18 +415,14 @@ UM.Dialog onShowTooltip: { - tooltip.text = text; - var position = settingLoader.mapToItem(settingsPanel, settingsPanel.x, 0); - tooltip.show(position); + tooltip.text = text + var position = settingLoader.mapToItem(settingsPanel, settingsPanel.x, 0) + tooltip.show(position) tooltip.target.x = position.x + 1 } - onHideTooltip: - { - tooltip.hide(); - } + onHideTooltip: tooltip.hide() } - } } } @@ -459,6 +475,7 @@ UM.Dialog Cura.SettingUnknown { } } } + rightButtons: Button { text: catalog.i18nc("@action:button", "Close") @@ -466,7 +483,8 @@ UM.Dialog onClicked: dialog.accept() } - Button { + Button + { objectName: "postProcessingSaveAreaButton" visible: activeScriptsList.count > 0 height: UM.Theme.getSize("save_button_save_to_button").height @@ -474,8 +492,10 @@ UM.Dialog tooltip: catalog.i18nc("@info:tooltip", "Change active post-processing scripts") onClicked: dialog.show() - style: ButtonStyle { - background: Rectangle { + style: ButtonStyle + { + background: Rectangle + { id: deviceSelectionIcon border.width: UM.Theme.getSize("default_lining").width border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") : @@ -485,12 +505,15 @@ UM.Dialog control.pressed ? UM.Theme.getColor("action_button_active") : control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") Behavior on color { ColorAnimation { duration: 50; } } + anchors.left: parent.left - anchors.leftMargin: Math.round(UM.Theme.getSize("save_button_text_margin").width / 2); + anchors.leftMargin: Math.round(UM.Theme.getSize("save_button_text_margin").width / 2) + width: parent.height height: parent.height - UM.RecolorImage { + UM.RecolorImage + { anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter width: Math.round(parent.width / 2) @@ -498,11 +521,11 @@ UM.Dialog sourceSize.height: height color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") : control.pressed ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text"); + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text") source: "postprocessing.svg" } } - label: Label{ } + label: Label { } } } } \ No newline at end of file From a5134001e98934576969eb1815b228ed92f885f9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 19 Dec 2018 13:03:59 +0100 Subject: [PATCH 0954/1039] Sort unique printer types So that they appear in a consistent order everywhere. --- cura/PrinterOutputDevice.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index 3102d73bb0..aeeb0381b2 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -230,7 +230,7 @@ class PrinterOutputDevice(QObject, OutputDevice): # Returns the unique configurations of the printers within this output device @pyqtProperty("QStringList", notify = uniqueConfigurationsChanged) def uniquePrinterTypes(self) -> List[str]: - return list(set([configuration.printerType for configuration in self._unique_configurations])) + return list(sorted(set([configuration.printerType for configuration in self._unique_configurations]))) def _onPrintersChanged(self) -> None: for printer in self._printers: From c0835f3a2fa8541de9b74fe715882e5e2993076f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 19 Dec 2018 13:04:37 +0100 Subject: [PATCH 0955/1039] Code style Just something I boyscouted while working on something else. --- resources/qml/Menus/NetworkPrinterMenu.qml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/NetworkPrinterMenu.qml b/resources/qml/Menus/NetworkPrinterMenu.qml index 07a22202e4..166e45f3b9 100644 --- a/resources/qml/Menus/NetworkPrinterMenu.qml +++ b/resources/qml/Menus/NetworkPrinterMenu.qml @@ -7,11 +7,14 @@ import QtQuick.Controls 1.4 import UM 1.2 as UM import Cura 1.0 as Cura -Instantiator { - model: UM.ContainerStacksModel { +Instantiator +{ + model: UM.ContainerStacksModel + { filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} } - MenuItem { + MenuItem + { // TODO: Use printer_group icon when it's a cluster. Not use it for now since it doesn't look as expected // iconSource: UM.Theme.getIcon("printer_single") text: model.metadata["connect_group_name"] From f2719ef582093f857e171678052507409f8958c0 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 19 Dec 2018 14:09:07 +0100 Subject: [PATCH 0956/1039] Fix identation for postProcessing plugin settings CURA-6043 --- .../PostProcessingPlugin/PostProcessingPlugin.qml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index 5862259be5..09fda8d454 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -301,6 +301,7 @@ UM.Dialog top: scriptSpecsHeader.bottom topMargin: settingsPanel.textMargin left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width right: parent.right bottom: parent.bottom } @@ -318,7 +319,8 @@ UM.Dialog containerId: manager.selectedScriptDefinitionId showAll: true } - delegate:Loader + + delegate: Loader { id: settingLoader @@ -329,18 +331,17 @@ UM.Dialog { if(model.type != undefined) { - return UM.Theme.getSize("section").height; + return UM.Theme.getSize("section").height } else { - return 0; + return 0 } } else { - return 0; + return 0 } - } Behavior on height { NumberAnimation { duration: 100 } } opacity: provider.properties.enabled == "True" ? 1 : 0 @@ -363,7 +364,7 @@ UM.Dialog settingLoader.item.showRevertButton = false settingLoader.item.showInheritButton = false settingLoader.item.showLinkedSettingIcon = false - settingLoader.item.doDepthIndentation = true + settingLoader.item.doDepthIndentation = false settingLoader.item.doQualityUserSettingEmphasis = false } From 3953c7bb3a4400f7e49fe3ee53052e317b341f62 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 19 Dec 2018 14:24:02 +0100 Subject: [PATCH 0957/1039] Added Tooltip alignment CURA-6004 --- resources/qml/ActionButton.qml | 2 ++ .../qml/ActionPanel/OutputProcessWidget.qml | 2 ++ resources/qml/ToolTip.qml | 29 +++++++++++++++++-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 675cbb588e..9ceade6a57 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -31,6 +31,8 @@ Button property alias shadowColor: shadow.color property alias shadowEnabled: shadow.visible + property alias toolTipContentAlignment: tooltip.contentAlignment + // This property is used to indicate whether the button has a fixed width or the width would depend on the contents // Be careful when using fixedWidthMode, the translated texts can be too long that they won't fit. In any case, // we elide the text to the right so the text will be cut off with the three dots at the end. diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index eb6dc5b417..03fa00d504 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -123,6 +123,8 @@ Column tooltip: text fixedWidthMode: true + toolTipContentAlignment: Cura.ToolTip.ContentAlignment.AlignLeft + onClicked: UM.Controller.setActiveStage("PreviewStage") visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage" diff --git a/resources/qml/ToolTip.qml b/resources/qml/ToolTip.qml index ed71d3983b..5e7d436d70 100644 --- a/resources/qml/ToolTip.qml +++ b/resources/qml/ToolTip.qml @@ -5,14 +5,26 @@ import QtQuick 2.7 import QtQuick.Controls 2.3 import UM 1.0 as UM +import Cura 1.0 as Cura ToolTip { + + enum ContentAlignment + { + AlignLeft, + AlignRight + } + // This property indicates when the tooltip has to show, for instance when a button is hovered property bool show: false + // Defines the alignment of the content, by default to the left + property int contentAlignment: Cura.ToolTip.ContentAlignment.AlignRight + property alias tooltipText: tooltip.text - property var targetPoint: Qt.point(0, 0) + property var targetPoint: Qt.point(parent.x, y + Math.round(height/2)) + id: tooltip text: "" @@ -20,13 +32,24 @@ ToolTip visible: text != "" && show font: UM.Theme.getFont("default") + x: + { + if (contentAlignment == Cura.ToolTip.ContentAlignment.AlignLeft) + { + return (label.width + Math.round(UM.Theme.getSize("default_arrow").width * 1.2) + padding * 2) * -1 + } + return parent.width + Math.round(UM.Theme.getSize("default_arrow").width * 1.2 + padding) + } + + y: Math.round(parent.height / 2 - label.height / 2 ) - padding + + padding: 2 + background: UM.PointingRectangle { id: backgroundRect color: UM.Theme.getColor("tooltip") - target: Qt.point(targetPoint.x - tooltip.x, targetPoint.y - tooltip.y) - arrowSize: UM.Theme.getSize("default_arrow").width } From d891d30ab8df3b528902102b12dba6de7298eacc Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 19 Dec 2018 15:51:32 +0100 Subject: [PATCH 0958/1039] The Cura logo in left top corner is not displayed properly. CURA-6044 --- resources/qml/MainWindow/MainWindowHeader.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index eecf2a1e73..971b275bd8 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -29,6 +29,8 @@ Item source: UM.Theme.getImage("logo") width: UM.Theme.getSize("logo").width height: UM.Theme.getSize("logo").height + + mipmap: true } Row From 8bff0d17e8b2b15e67d5da8f02bda41ea0fe3576 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 20 Dec 2018 09:43:01 +0100 Subject: [PATCH 0959/1039] Prevent the backend attempting to reslice everytime a preference changed --- plugins/CuraEngineBackend/CuraEngineBackend.py | 1 + resources/qml/ActionPanel/SliceProcessWidget.qml | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 7ede6b6736..1830a30b30 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -229,6 +229,7 @@ class CuraEngineBackend(QObject, Backend): if not self._build_plates_to_be_sliced: self.processingProgress.emit(1.0) Logger.log("w", "Slice unnecessary, nothing has changed that needs reslicing.") + self.setState(BackendState.Done) return if self._process_layers_job: diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 3756d0d452..b80c24e7b7 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -134,10 +134,14 @@ Column onPreferenceChanged: { var autoSlice = UM.Preferences.getValue("general/auto_slice") - prepareButtons.autoSlice = autoSlice - if(autoSlice) + print(prepareButtons.autoSlice, autoSlice) + if(prepareButtons.autoSlice != autoSlice) { - CuraApplication.backend.forceSlice() + prepareButtons.autoSlice = autoSlice + if(autoSlice) + { + CuraApplication.backend.forceSlice() + } } } } From a9f4b70b5cf35be3b8dec8f99178a73d12ebd571 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 20 Dec 2018 09:53:58 +0100 Subject: [PATCH 0960/1039] Emit 'number of extruders changed' signal after add machine. [CURA-6045] --- cura/Settings/MachineManager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index cd8ca09447..2185bbce9d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -299,6 +299,7 @@ class MachineManager(QObject): self.activeMaterialChanged.emit() self.rootMaterialChanged.emit() + self.numberExtrudersEnabledChanged.emit() def _onContainersChanged(self, container: ContainerInterface) -> None: self._instance_container_timer.start() From dc473dc78d63c15a62dfd5a197162f43b0780b8f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 20 Dec 2018 11:09:02 +0100 Subject: [PATCH 0961/1039] Add missing typing for setting visibility preset model --- .../Models/SettingVisibilityPresetsModel.py | 35 +++++++++++++------ .../qml/ActionPanel/SliceProcessWidget.qml | 1 - 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/cura/Machines/Models/SettingVisibilityPresetsModel.py b/cura/Machines/Models/SettingVisibilityPresetsModel.py index 79131521f2..baa8e3ed29 100644 --- a/cura/Machines/Models/SettingVisibilityPresetsModel.py +++ b/cura/Machines/Models/SettingVisibilityPresetsModel.py @@ -6,6 +6,7 @@ from typing import Optional, List from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject from UM.Logger import Logger +from UM.Preferences import Preferences from UM.Resources import Resources from UM.i18n import i18nCatalog @@ -18,14 +19,20 @@ class SettingVisibilityPresetsModel(QObject): onItemsChanged = pyqtSignal() activePresetChanged = pyqtSignal() - def __init__(self, preferences, parent = None): + def __init__(self, preferences: Preferences, parent = None) -> None: super().__init__(parent) self._items = [] # type: List[SettingVisibilityPreset] + self._custom_preset = SettingVisibilityPreset(preset_id = "custom", name = "Custom selection", weight = -100) + self._populate() basic_item = self.getVisibilityPresetById("basic") - basic_visibile_settings = ";".join(basic_item.settings) + if basic_item is not None: + basic_visibile_settings = ";".join(basic_item.settings) + else: + Logger.log("w", "Unable to find the basic visiblity preset.") + basic_visibile_settings = "" self._preferences = preferences @@ -42,7 +49,8 @@ class SettingVisibilityPresetsModel(QObject): visible_settings = self._preferences.getValue("general/visible_settings") if not visible_settings: - self._preferences.setValue("general/visible_settings", ";".join(self._active_preset_item.settings)) + new_visible_settings = self._active_preset_item.settings if self._active_preset_item is not None else [] + self._preferences.setValue("general/visible_settings", ";".join(new_visible_settings)) else: self._onPreferencesChanged("general/visible_settings") @@ -59,9 +67,7 @@ class SettingVisibilityPresetsModel(QObject): def _populate(self) -> None: from cura.CuraApplication import CuraApplication items = [] # type: List[SettingVisibilityPreset] - - custom_preset = SettingVisibilityPreset(preset_id="custom", name ="Custom selection", weight = -100) - items.append(custom_preset) + items.append(self._custom_preset) for file_path in Resources.getAllResourcesOfType(CuraApplication.ResourceTypes.SettingVisibilityPreset): setting_visibility_preset = SettingVisibilityPreset() try: @@ -77,7 +83,7 @@ class SettingVisibilityPresetsModel(QObject): self.setItems(items) @pyqtProperty("QVariantList", notify = onItemsChanged) - def items(self): + def items(self) -> List[SettingVisibilityPreset]: return self._items def setItems(self, items: List[SettingVisibilityPreset]) -> None: @@ -87,7 +93,7 @@ class SettingVisibilityPresetsModel(QObject): @pyqtSlot(str) def setActivePreset(self, preset_id: str) -> None: - if preset_id == self._active_preset_item.presetId: + if self._active_preset_item is not None and preset_id == self._active_preset_item.presetId: Logger.log("d", "Same setting visibility preset [%s] selected, do nothing.", preset_id) return @@ -96,7 +102,7 @@ class SettingVisibilityPresetsModel(QObject): Logger.log("w", "Tried to set active preset to unknown id [%s]", preset_id) return - need_to_save_to_custom = self._active_preset_item.presetId == "custom" and preset_id != "custom" + need_to_save_to_custom = self._active_preset_item is None or (self._active_preset_item.presetId == "custom" and preset_id != "custom") if need_to_save_to_custom: # Save the current visibility settings to custom current_visibility_string = self._preferences.getValue("general/visible_settings") @@ -117,7 +123,9 @@ class SettingVisibilityPresetsModel(QObject): @pyqtProperty(str, notify = activePresetChanged) def activePreset(self) -> str: - return self._active_preset_item.presetId + if self._active_preset_item is not None: + return self._active_preset_item.presetId + return "" def _onPreferencesChanged(self, name: str) -> None: if name != "general/visible_settings": @@ -149,7 +157,12 @@ class SettingVisibilityPresetsModel(QObject): else: item_to_set = matching_preset_item + # If we didn't find a matching preset, fallback to custom. + if item_to_set is None: + item_to_set = self._custom_preset + if self._active_preset_item is None or self._active_preset_item.presetId != item_to_set.presetId: self._active_preset_item = item_to_set - self._preferences.setValue("cura/active_setting_visibility_preset", self._active_preset_item.presetId) + if self._active_preset_item is not None: + self._preferences.setValue("cura/active_setting_visibility_preset", self._active_preset_item.presetId) self.activePresetChanged.emit() diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index b80c24e7b7..462d685fd4 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -134,7 +134,6 @@ Column onPreferenceChanged: { var autoSlice = UM.Preferences.getValue("general/auto_slice") - print(prepareButtons.autoSlice, autoSlice) if(prepareButtons.autoSlice != autoSlice) { prepareButtons.autoSlice = autoSlice From 36efa171c68dd7b0beb5771b1f29be1680127a99 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 20 Dec 2018 11:31:01 +0100 Subject: [PATCH 0962/1039] Add a bit more logging to the authorization service --- cura/OAuth2/AuthorizationService.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index 4355891139..a055254891 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -83,9 +83,11 @@ class AuthorizationService: if not self.getUserProfile(): # We check if we can get the user profile. # If we can't get it, that means the access token (JWT) was invalid or expired. + Logger.log("w", "Unable to get the user profile.") return None if self._auth_data is None: + Logger.log("d", "No auth data to retrieve the access_token from") return None return self._auth_data.access_token From 9ffc03925469aaaebceebd7d7931ab377e2f5d95 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 20 Dec 2018 14:01:12 +0100 Subject: [PATCH 0963/1039] Fix logo aliasing CURA-6044 --- plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py | 2 +- resources/qml/MainWindow/MainWindowHeader.qml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py index 006b21bc48..b55ea5ebaf 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py @@ -47,7 +47,7 @@ def getMetaData() -> Dict[str, Any]: }, "user": { "get_version": upgrade.getCfgVersion, - "location": {"./user"} + "location": {"./user", "./materials/*"} }, "variant": { "get_version": upgrade.getCfgVersion, diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index 971b275bd8..e3b7e199fa 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -30,7 +30,8 @@ Item width: UM.Theme.getSize("logo").width height: UM.Theme.getSize("logo").height - mipmap: true + sourceSize.width: width + sourceSize.height: height } Row From f3a0b44d5ebfb7a69d54cf1610a50eeec0285941 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 20 Dec 2018 14:24:00 +0100 Subject: [PATCH 0964/1039] Simplify is_favorite condition No stupid ternary operators necessary. Contributes to issue CURA-6032. --- resources/qml/Preferences/Materials/MaterialsSlot.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/Materials/MaterialsSlot.qml b/resources/qml/Preferences/Materials/MaterialsSlot.qml index fb3cb9607d..7c891dc65f 100644 --- a/resources/qml/Preferences/Materials/MaterialsSlot.qml +++ b/resources/qml/Preferences/Materials/MaterialsSlot.qml @@ -15,7 +15,7 @@ Rectangle id: materialSlot property var material: null property var hovered: false - property var is_favorite: material != null ? material.is_favorite : false + property var is_favorite: material != null && material.is_favorite height: UM.Theme.getSize("favorites_row").height width: parent.width From 5bf260f5247f1367d0bf100514d596f4b8d4cfee Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 20 Dec 2018 14:25:52 +0100 Subject: [PATCH 0965/1039] Don't break binding of is_favorite upon clicking star We shouldn't override it here because doing that causes the binding to break. Just remove the favourite and let the model update itself, thus removing the star. Contributes to issue CURA-6032. --- resources/qml/Preferences/Materials/MaterialsSlot.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/qml/Preferences/Materials/MaterialsSlot.qml b/resources/qml/Preferences/Materials/MaterialsSlot.qml index 7c891dc65f..2f4847103b 100644 --- a/resources/qml/Preferences/Materials/MaterialsSlot.qml +++ b/resources/qml/Preferences/Materials/MaterialsSlot.qml @@ -73,11 +73,9 @@ Rectangle if (materialSlot.is_favorite) { base.materialManager.removeFavorite(material.root_material_id) - materialSlot.is_favorite = false return } base.materialManager.addFavorite(material.root_material_id) - materialSlot.is_favorite = true return } style: ButtonStyle From 3f599bd06f817ad39aaeb9d50b6939760e5505ea Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 20 Dec 2018 16:31:57 +0100 Subject: [PATCH 0966/1039] Ensure that the tooltip text is translated CURA-6004 --- resources/qml/ActionPanel/SliceProcessWidget.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index ab5e224c90..79c0186443 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -109,7 +109,7 @@ Column fixedWidthMode: true anchors.fill: parent text: catalog.i18nc("@button", "Slice") - tooltip: "Start slicing process" + tooltip: catalog.i18nc("@label", "Start the slicing process") enabled: widget.backendState != UM.Backend.Error visible: widget.backendState == UM.Backend.NotStarted || widget.backendState == UM.Backend.Error onClicked: sliceOrStopSlicing() From 0965d909c09bdc27acb6c04084f35a7d5fac6ed5 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 20 Dec 2018 16:41:26 +0100 Subject: [PATCH 0967/1039] Remove the show property from the tooltip This was a bit of a weird setup, so i removed it. This way the tooltip can be used in the same way as the regular tooltip (by simply setting the visibility) CURA-6004 --- resources/qml/ActionButton.qml | 2 +- resources/qml/ToolTip.qml | 11 ++++------- resources/qml/ToolbarButton.qml | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/resources/qml/ActionButton.qml b/resources/qml/ActionButton.qml index 9ceade6a57..6cab04e5ec 100644 --- a/resources/qml/ActionButton.qml +++ b/resources/qml/ActionButton.qml @@ -115,6 +115,6 @@ Button Cura.ToolTip { id: tooltip - show: button.hovered + visible: button.hovered } } \ No newline at end of file diff --git a/resources/qml/ToolTip.qml b/resources/qml/ToolTip.qml index 5e7d436d70..87586f76d8 100644 --- a/resources/qml/ToolTip.qml +++ b/resources/qml/ToolTip.qml @@ -9,28 +9,25 @@ import Cura 1.0 as Cura ToolTip { - enum ContentAlignment { AlignLeft, AlignRight } - // This property indicates when the tooltip has to show, for instance when a button is hovered - property bool show: false - // Defines the alignment of the content, by default to the left property int contentAlignment: Cura.ToolTip.ContentAlignment.AlignRight property alias tooltipText: tooltip.text property var targetPoint: Qt.point(parent.x, y + Math.round(height/2)) - id: tooltip text: "" delay: 500 - visible: text != "" && show font: UM.Theme.getFont("default") + + // If the text is not set, just set the height to 0 to prevent it from showing + height: text != "" ? label.contentHeight + 2 * UM.Theme.getSize("thin_margin").width: 0 x: { @@ -43,7 +40,7 @@ ToolTip y: Math.round(parent.height / 2 - label.height / 2 ) - padding - padding: 2 + padding: UM.Theme.getSize("thin_margin").width background: UM.PointingRectangle { diff --git a/resources/qml/ToolbarButton.qml b/resources/qml/ToolbarButton.qml index 307d49302c..b3f84bba1d 100644 --- a/resources/qml/ToolbarButton.qml +++ b/resources/qml/ToolbarButton.qml @@ -101,6 +101,6 @@ Button { id: tooltip tooltipText: base.text - show: base.hovered + visible: base.hovered } } From 7cfb29e337ae47884c0faf80be7394ea19ddb604 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 20 Dec 2018 18:12:40 +0100 Subject: [PATCH 0968/1039] If a connected printer has a selected material which is unknown for Cura then show a message for downloading it from Marketplace CURA-6033 --- .../ConfigurationMenu/ConfigurationItem.qml | 104 +++++++++++++++++- 1 file changed, 102 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 862e1475a9..16d683adca 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -14,6 +14,23 @@ Button property var configuration: null hoverEnabled: true + property bool isValidMaterial: + { + var extruderConfigurations = configuration.extruderConfigurations + + for (var index = 0; index < extruderConfigurations.length; index++) + { + var name = extruderConfigurations[index].material.brand ? extruderConfigurations[index].material.name : "" + + if (name == "" || name == "Unknown") + { + hoverEnabled = false + return false + } + } + return true + } + background: Rectangle { color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") @@ -40,19 +57,102 @@ Button right: parent.right rightMargin: UM.Theme.getSize("wide_margin").width } - + height: childrenRect.height spacing: UM.Theme.getSize("default_margin").width Repeater { id: repeater - model: configuration.extruderConfigurations + model: + { + if (configurationItem.isValidMaterial) + { + return configuration.extruderConfigurations + } + return [] + } + delegate: PrintCoreConfiguration { width: Math.round(parent.width / 2) printCoreConfiguration: modelData } } + + // Unknown material + Rectangle + { + id: unknownMaterial + height: unknownMaterialMessage.height + UM.Theme.getSize("thin_margin").width / 2 + width: parent.width + + anchors.top: parent.top + anchors.topMargin: + { + return UM.Theme.getSize("thin_margin").width / 2 + } + + visible: !configurationItem.isValidMaterial + + UM.RecolorImage + { + id: icon + anchors.verticalCenter: unknownMaterialMessage.verticalCenter + + source: UM.Theme.getIcon("warning") + color: UM.Theme.getColor("warning") + width: UM.Theme.getSize("section_icon").width + height: width + } + + Label + { + id: unknownMaterialMessage + text: + { + var extruderConfigurations = configuration.extruderConfigurations + var unknownMaterials = [] + for (var index = 0; index < extruderConfigurations.length; index++) + { + var name = extruderConfigurations[index].material.brand ? extruderConfigurations[index].material.name : "" + + if (name == "" || name == "Unknown") + { + unknownMaterials.push(extruderConfigurations[index].material.brand ? extruderConfigurations[index].material.brand : "Unknown Brand") + } + } + + unknownMaterials = "" + unknownMaterials + "" + var draftResult = catalog.i18nc("@label", "This configuration is not available because %1 is not recognized. Please visit %2 to download the correct material profile."); + var result = draftResult.arg(unknownMaterials).arg("" + catalog.i18nc("@label","Marketplace") + " ") + + return result + } + width: extruderRow.width + + anchors.left: icon.right + anchors.right: unknownMaterial.right + anchors.leftMargin: UM.Theme.getSize("wide_margin").height + anchors.top: unknownMaterial.top + + wrapMode: Text.WordWrap + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + verticalAlignment: Text.AlignVCenter + linkColor: UM.Theme.getColor("text_link") + + onLinkActivated: + { + Cura.Actions.browsePackages.trigger() + } + } + + MouseArea { + anchors.fill: parent + cursorShape: unknownMaterialMessage.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor + acceptedButtons: Qt.NoButton + } + } } //Buildplate row separator From 9430c421ebcf202caca4c6dda40af920678e396d Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 20 Dec 2018 18:19:59 +0100 Subject: [PATCH 0969/1039] Code refactor CURA-6033 --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 16d683adca..4cf0437098 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -87,10 +87,7 @@ Button width: parent.width anchors.top: parent.top - anchors.topMargin: - { - return UM.Theme.getSize("thin_margin").width / 2 - } + anchors.topMargin: UM.Theme.getSize("thin_margin").width / 2 visible: !configurationItem.isValidMaterial From 81a6531f47f3b7356146827f27a8bf430b93a94e Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 20 Dec 2018 20:37:48 +0100 Subject: [PATCH 0970/1039] Fix range slider label position in LayerSlider.qml. --- plugins/SimulationView/LayerSlider.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/SimulationView/LayerSlider.qml b/plugins/SimulationView/LayerSlider.qml index 42b8cf0ba0..88f298d1f5 100644 --- a/plugins/SimulationView/LayerSlider.qml +++ b/plugins/SimulationView/LayerSlider.qml @@ -163,9 +163,9 @@ Item id: rangleHandleLabel height: sliderRoot.handleSize + UM.Theme.getSize("default_margin").height - x: parent.x + parent.width + UM.Theme.getSize("default_margin").width + x: parent.x - width - UM.Theme.getSize("default_margin").width anchors.verticalCenter: parent.verticalCenter - target: Qt.point(sliderRoot.width + width, y + height / 2) + target: Qt.point(sliderRoot.width, y + height / 2) visible: sliderRoot.activeHandle == parent // custom properties From e51b5993d334e424fe97278d317f7dce37a76d83 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 20 Dec 2018 21:56:27 +0100 Subject: [PATCH 0971/1039] Don't create system tray icon in headless mode --- cura/CuraApplication.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 9ec2435f0b..4e02be87f5 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -434,7 +434,8 @@ class CuraApplication(QtApplication): def startSplashWindowPhase(self) -> None: super().startSplashWindowPhase() - self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png"))) + if not self.getIsHeadLess(): + self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png"))) self.setRequiredPlugins([ # Misc.: From 75fbdf2c94a5e0f004dbecaba71447cb491a87e0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 21 Dec 2018 10:40:37 +0100 Subject: [PATCH 0972/1039] Expand error message for cases when extruders are disabled It is also unable to slice models that are on extruders that are disabled. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 1830a30b30..cf00035e3b 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -411,7 +411,7 @@ class CuraEngineBackend(QObject, Backend): if job.getResult() == StartJobResult.NothingToSlice: if self._application.platformActivity: - self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."), + self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume or are assigned to a disabled extruder. Please scale or rotate models to fit, or enable an extruder."), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() self.setState(BackendState.Error) From 81e356ea1b3ce7e19b0ec211f337e75038369d53 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 11:20:09 +0100 Subject: [PATCH 0973/1039] Switch out the containersModel for the more specific printersModel --- resources/qml/Menus/LocalPrinterMenu.qml | 20 +++++++++++--------- resources/qml/Menus/NetworkPrinterMenu.qml | 14 +++++--------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/resources/qml/Menus/LocalPrinterMenu.qml b/resources/qml/Menus/LocalPrinterMenu.qml index 0bdd4f33b9..e7c5037814 100644 --- a/resources/qml/Menus/LocalPrinterMenu.qml +++ b/resources/qml/Menus/LocalPrinterMenu.qml @@ -7,16 +7,18 @@ import QtQuick.Controls 1.4 import UM 1.2 as UM import Cura 1.0 as Cura -Instantiator { - model: UM.ContainerStacksModel { - filter: {"type": "machine", "um_network_key": null} - } - MenuItem { - text: model.name; - checkable: true; +Instantiator +{ + model: Cura.PrintersModel {} + + MenuItem + { + text: model.name + checkable: true checked: Cura.MachineManager.activeMachineId == model.id - exclusiveGroup: group; - onTriggered: Cura.MachineManager.setActiveMachine(model.id); + exclusiveGroup: group + visible: !model.hasRemoteConnection + onTriggered: Cura.MachineManager.setActiveMachine(model.id) } onObjectAdded: menu.insertItem(index, object) onObjectRemoved: menu.removeItem(object) diff --git a/resources/qml/Menus/NetworkPrinterMenu.qml b/resources/qml/Menus/NetworkPrinterMenu.qml index 166e45f3b9..8c607bc5ae 100644 --- a/resources/qml/Menus/NetworkPrinterMenu.qml +++ b/resources/qml/Menus/NetworkPrinterMenu.qml @@ -9,19 +9,15 @@ import Cura 1.0 as Cura Instantiator { - model: UM.ContainerStacksModel - { - filter: {"type": "machine", "um_network_key": "*", "hidden": "False"} - } + model: Cura.PrintersModel {} MenuItem { - // TODO: Use printer_group icon when it's a cluster. Not use it for now since it doesn't look as expected -// iconSource: UM.Theme.getIcon("printer_single") text: model.metadata["connect_group_name"] - checkable: true; + checkable: true + visible: model.hasRemoteConnection checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"] - exclusiveGroup: group; - onTriggered: Cura.MachineManager.setActiveMachine(model.id); + exclusiveGroup: group + onTriggered: Cura.MachineManager.setActiveMachine(model.id) } onObjectAdded: menu.insertItem(index, object) onObjectRemoved: menu.removeItem(object) From a5500b028f9d5f43688822d1ba8427868baeb833 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 21 Dec 2018 11:50:30 +0100 Subject: [PATCH 0974/1039] Use HTTPS for Help links The Ultimaker website doesn't even accept anything else any more. --- cura/CuraActions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index 49f7e740a9..ebb1523f13 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -36,12 +36,12 @@ class CuraActions(QObject): # Starting a web browser from a signal handler connected to a menu will crash on windows. # So instead, defer the call to the next run of the event loop, since that does work. # Note that weirdly enough, only signal handlers that open a web browser fail like that. - event = CallFunctionEvent(self._openUrl, [QUrl("http://ultimaker.com/en/support/software")], {}) + event = CallFunctionEvent(self._openUrl, [QUrl("https://ultimaker.com/en/support/software")], {}) cura.CuraApplication.CuraApplication.getInstance().functionEvent(event) @pyqtSlot() def openBugReportPage(self) -> None: - event = CallFunctionEvent(self._openUrl, [QUrl("http://github.com/Ultimaker/Cura/issues")], {}) + event = CallFunctionEvent(self._openUrl, [QUrl("https://github.com/Ultimaker/Cura/issues")], {}) cura.CuraApplication.CuraApplication.getInstance().functionEvent(event) ## Reset camera position and direction to default From 7269065cca3bcd16bb4689095d2d6e54dbe80544 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 11:54:11 +0100 Subject: [PATCH 0975/1039] Only clear the stored optimized layer data if the slice started --- plugins/CuraEngineBackend/CuraEngineBackend.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index cf00035e3b..f12a5b1222 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -86,8 +86,8 @@ class CuraEngineBackend(QObject, Backend): self._layer_view_active = False #type: bool self._onActiveViewChanged() - self._stored_layer_data = [] #type: List[Arcus.PythonMessage] - self._stored_optimized_layer_data = {} #type: Dict[int, List[Arcus.PythonMessage]] # key is build plate number, then arrays are stored until they go to the ProcessSlicesLayersJob + self._stored_layer_data = [] # type: List[Arcus.PythonMessage] + self._stored_optimized_layer_data = {} # type: Dict[int, List[Arcus.PythonMessage]] # key is build plate number, then arrays are stored until they go to the ProcessSlicesLayersJob self._scene = self._application.getController().getScene() #type: Scene self._scene.sceneChanged.connect(self._onSceneChanged) @@ -246,7 +246,7 @@ class CuraEngineBackend(QObject, Backend): num_objects = self._numObjectsPerBuildPlate() self._stored_layer_data = [] - self._stored_optimized_layer_data[build_plate_to_be_sliced] = [] + if build_plate_to_be_sliced not in num_objects or num_objects[build_plate_to_be_sliced] == 0: self._scene.gcode_dict[build_plate_to_be_sliced] = [] #type: ignore #Because we created this attribute above. @@ -254,7 +254,7 @@ class CuraEngineBackend(QObject, Backend): if self._build_plates_to_be_sliced: self.slice() return - + self._stored_optimized_layer_data[build_plate_to_be_sliced] = [] if self._application.getPrintInformation() and build_plate_to_be_sliced == active_build_plate: self._application.getPrintInformation().setToZeroPrintInformation(build_plate_to_be_sliced) From 07f0433751ad9f97e4169c60b46ce57f6010d671 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 21 Dec 2018 11:58:57 +0100 Subject: [PATCH 0976/1039] Correct link to manual They changed this on the website, breaking all previous releases of Cura in the process. --- cura/CuraActions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/CuraActions.py b/cura/CuraActions.py index ebb1523f13..91e0966fed 100644 --- a/cura/CuraActions.py +++ b/cura/CuraActions.py @@ -36,7 +36,7 @@ class CuraActions(QObject): # Starting a web browser from a signal handler connected to a menu will crash on windows. # So instead, defer the call to the next run of the event loop, since that does work. # Note that weirdly enough, only signal handlers that open a web browser fail like that. - event = CallFunctionEvent(self._openUrl, [QUrl("https://ultimaker.com/en/support/software")], {}) + event = CallFunctionEvent(self._openUrl, [QUrl("https://ultimaker.com/en/resources/manuals/software")], {}) cura.CuraApplication.CuraApplication.getInstance().functionEvent(event) @pyqtSlot() From 01783e7f685cda2a24ce6a0de846ab7cca79d17d Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 21 Dec 2018 13:54:01 +0100 Subject: [PATCH 0977/1039] Check material name instead of material brand CURA-6033 --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 4cf0437098..9e2fed0767 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -20,7 +20,7 @@ Button for (var index = 0; index < extruderConfigurations.length; index++) { - var name = extruderConfigurations[index].material.brand ? extruderConfigurations[index].material.name : "" + var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : "" if (name == "" || name == "Unknown") { @@ -111,7 +111,7 @@ Button var unknownMaterials = [] for (var index = 0; index < extruderConfigurations.length; index++) { - var name = extruderConfigurations[index].material.brand ? extruderConfigurations[index].material.name : "" + var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : "" if (name == "" || name == "Unknown") { From 766fc2293e1e5e635fdf0d5b2b5fbb75071df816 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 14:35:41 +0100 Subject: [PATCH 0978/1039] Fix visibility for machine icon in dark theme --- resources/themes/cura-dark/theme.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 537fccbc5c..6b29073475 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -28,6 +28,7 @@ "machine_selector_bar": [39, 44, 48, 255], "machine_selector_active": [39, 44, 48, 255], + "machine_selector_printer_icon": [204, 204, 204, 255], "text": [255, 255, 255, 204], "text_detail": [255, 255, 255, 172], From c8994102da49ac08f3fcd041df12c7ffaa12eb88 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 21 Dec 2018 14:44:25 +0100 Subject: [PATCH 0979/1039] Use short for each javascript function CURA-6033 --- .../qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 9e2fed0767..b23bcc4b8c 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -18,7 +18,7 @@ Button { var extruderConfigurations = configuration.extruderConfigurations - for (var index = 0; index < extruderConfigurations.length; index++) + for (var index in extruderConfigurations) { var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : "" @@ -109,7 +109,7 @@ Button { var extruderConfigurations = configuration.extruderConfigurations var unknownMaterials = [] - for (var index = 0; index < extruderConfigurations.length; index++) + for (var index in extruderConfigurations) { var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : "" @@ -144,7 +144,8 @@ Button } } - MouseArea { + MouseArea + { anchors.fill: parent cursorShape: unknownMaterialMessage.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor acceptedButtons: Qt.NoButton From 33c97fcf4a5c7958dd3d899811dde6d52bcde114 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 15:09:09 +0100 Subject: [PATCH 0980/1039] Updated typing --- cura/CuraApplication.py | 89 +++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 4e02be87f5..49b0026b39 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -4,7 +4,7 @@ import os import sys import time -from typing import cast, TYPE_CHECKING, Optional, Callable +from typing import cast, TYPE_CHECKING, Optional, Callable, List import numpy @@ -665,12 +665,12 @@ class CuraApplication(QtApplication): ## Handle loading of all plugin types (and the backend explicitly) # \sa PluginRegistry - def _loadPlugins(self): + def _loadPlugins(self) -> None: self._plugin_registry.addType("profile_reader", self._addProfileReader) self._plugin_registry.addType("profile_writer", self._addProfileWriter) if Platform.isLinux(): - lib_suffixes = {"", "64", "32", "x32"} #A few common ones on different distributions. + lib_suffixes = {"", "64", "32", "x32"} # A few common ones on different distributions. else: lib_suffixes = {""} for suffix in lib_suffixes: @@ -1267,62 +1267,75 @@ class CuraApplication(QtApplication): ## Arrange all objects. @pyqtSlot() - def arrangeObjectsToAllBuildPlates(self): - nodes = [] - for node in DepthFirstIterator(self.getController().getScene().getRoot()): + def arrangeObjectsToAllBuildPlates(self) -> None: + nodes_to_arrange = [] + for node in DepthFirstIterator(self.getController().getScene().getRoot()): # type: ignore if not isinstance(node, SceneNode): continue + if not node.getMeshData() and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. - if node.getParent() and node.getParent().callDecoration("isGroup"): - continue # Grouped nodes don't need resetting as their parent (the group) is resetted) + + parent_node = node.getParent() + if parent_node and parent_node.callDecoration("isGroup"): + continue # Grouped nodes don't need resetting as their parent (the group) is reset) + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue # i.e. node with layer data + + bounding_box = node.getBoundingBox() # Skip nodes that are too big - if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: - nodes.append(node) - job = ArrangeObjectsAllBuildPlatesJob(nodes) + if bounding_box is None or bounding_box.width < self._volume.getBoundingBox().width or bounding_box.depth < self._volume.getBoundingBox().depth: + nodes_to_arrange.append(node) + job = ArrangeObjectsAllBuildPlatesJob(nodes_to_arrange) job.start() self.getCuraSceneController().setActiveBuildPlate(0) # Select first build plate # Single build plate @pyqtSlot() - def arrangeAll(self): - nodes = [] + def arrangeAll(self) -> None: + nodes_to_arrange = [] active_build_plate = self.getMultiBuildPlateModel().activeBuildPlate - for node in DepthFirstIterator(self.getController().getScene().getRoot()): + for node in DepthFirstIterator(self.getController().getScene().getRoot()): # type: ignore if not isinstance(node, SceneNode): continue + if not node.getMeshData() and not node.callDecoration("isGroup"): continue # Node that doesnt have a mesh and is not a group. - if node.getParent() and node.getParent().callDecoration("isGroup"): + + parent_node = node.getParent() + if parent_node and parent_node.callDecoration("isGroup"): continue # Grouped nodes don't need resetting as their parent (the group) is resetted) + if not node.isSelectable(): continue # i.e. node with layer data + if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"): continue # i.e. node with layer data + if node.callDecoration("getBuildPlateNumber") == active_build_plate: # Skip nodes that are too big - if node.getBoundingBox().width < self._volume.getBoundingBox().width or node.getBoundingBox().depth < self._volume.getBoundingBox().depth: - nodes.append(node) - self.arrange(nodes, fixed_nodes = []) + bounding_box = node.getBoundingBox() + if bounding_box is None or bounding_box.width < self._volume.getBoundingBox().width or bounding_box.depth < self._volume.getBoundingBox().depth: + nodes_to_arrange.append(node) + self.arrange(nodes_to_arrange, fixed_nodes = []) ## Arrange a set of nodes given a set of fixed nodes # \param nodes nodes that we have to place # \param fixed_nodes nodes that are placed in the arranger before finding spots for nodes - def arrange(self, nodes, fixed_nodes): + def arrange(self, nodes: List[SceneNode], fixed_nodes: List[SceneNode]) -> None: min_offset = self.getBuildVolume().getEdgeDisallowedSize() + 2 # Allow for some rounding errors job = ArrangeObjectsJob(nodes, fixed_nodes, min_offset = max(min_offset, 8)) job.start() ## Reload all mesh data on the screen from file. @pyqtSlot() - def reloadAll(self): + def reloadAll(self) -> None: Logger.log("i", "Reloading all loaded mesh data.") nodes = [] has_merged_nodes = False - for node in DepthFirstIterator(self.getController().getScene().getRoot()): - if not isinstance(node, CuraSceneNode) or not node.getMeshData() : + for node in DepthFirstIterator(self.getController().getScene().getRoot()): # type: ignore + if not isinstance(node, CuraSceneNode) or not node.getMeshData(): if node.getName() == "MergedMesh": has_merged_nodes = True continue @@ -1336,7 +1349,7 @@ class CuraApplication(QtApplication): file_name = node.getMeshData().getFileName() if file_name: job = ReadMeshJob(file_name) - job._node = node + job._node = node # type: ignore job.finished.connect(self._reloadMeshFinished) if has_merged_nodes: job.finished.connect(self.updateOriginOfMergedMeshes) @@ -1345,20 +1358,8 @@ class CuraApplication(QtApplication): else: Logger.log("w", "Unable to reload data because we don't have a filename.") - - ## Get logging data of the backend engine - # \returns \type{string} Logging data - @pyqtSlot(result = str) - def getEngineLog(self): - log = "" - - for entry in self.getBackend().getLog(): - log += entry.decode() - - return log - @pyqtSlot("QStringList") - def setExpandedCategories(self, categories): + def setExpandedCategories(self, categories: List[str]) -> None: categories = list(set(categories)) categories.sort() joined = ";".join(categories) @@ -1369,7 +1370,7 @@ class CuraApplication(QtApplication): expandedCategoriesChanged = pyqtSignal() @pyqtProperty("QStringList", notify = expandedCategoriesChanged) - def expandedCategories(self): + def expandedCategories(self) -> List[str]: return self.getPreferences().getValue("cura/categories_expanded").split(";") @pyqtSlot() @@ -1419,13 +1420,12 @@ class CuraApplication(QtApplication): ## Updates origin position of all merged meshes - # \param jobNode \type{Job} empty object which passed which is required by JobQueue - def updateOriginOfMergedMeshes(self, jobNode): + def updateOriginOfMergedMeshes(self, _): group_nodes = [] for node in DepthFirstIterator(self.getController().getScene().getRoot()): if isinstance(node, CuraSceneNode) and node.getName() == "MergedMesh": - #checking by name might be not enough, the merged mesh should has "GroupDecorator" decorator + # Checking by name might be not enough, the merged mesh should has "GroupDecorator" decorator for decorator in node.getDecorators(): if isinstance(decorator, GroupDecorator): group_nodes.append(node) @@ -1469,7 +1469,7 @@ class CuraApplication(QtApplication): @pyqtSlot() - def groupSelected(self): + def groupSelected(self) -> None: # Create a group-node group_node = CuraSceneNode() group_decorator = GroupDecorator() @@ -1485,7 +1485,8 @@ class CuraApplication(QtApplication): # Remove nodes that are directly parented to another selected node from the selection so they remain parented selected_nodes = Selection.getAllSelectedObjects().copy() for node in selected_nodes: - if node.getParent() in selected_nodes and not node.getParent().callDecoration("isGroup"): + parent = node.getParent() + if parent is not None and node in selected_nodes and not node.callDecoration("isGroup"): Selection.remove(node) # Move selected nodes into the group-node @@ -1497,7 +1498,7 @@ class CuraApplication(QtApplication): Selection.add(group_node) @pyqtSlot() - def ungroupSelected(self): + def ungroupSelected(self) -> None: selected_objects = Selection.getAllSelectedObjects().copy() for node in selected_objects: if node.callDecoration("isGroup"): @@ -1520,7 +1521,7 @@ class CuraApplication(QtApplication): # Note: The group removes itself from the scene once all its children have left it, # see GroupDecorator._onChildrenChanged - def _createSplashScreen(self): + def _createSplashScreen(self) -> Optional[CuraSplashScreen.CuraSplashScreen]: if self._is_headless: return None return CuraSplashScreen.CuraSplashScreen() From 4ab79f963ab8e38096cb53b1c11c3c7b1db17edc Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 15:10:14 +0100 Subject: [PATCH 0981/1039] Remove deprecated functions --- cura/CuraApplication.py | 82 ----------------------------------------- 1 file changed, 82 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 49b0026b39..4a1023f69e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1106,88 +1106,6 @@ class CuraApplication(QtApplication): self._platform_activity = True if count > 0 else False self.activityChanged.emit() - # Remove all selected objects from the scene. - @pyqtSlot() - @deprecated("Moved to CuraActions", "2.6") - def deleteSelection(self): - if not self.getController().getToolsEnabled(): - return - removed_group_nodes = [] - op = GroupedOperation() - nodes = Selection.getAllSelectedObjects() - for node in nodes: - op.addOperation(RemoveSceneNodeOperation(node)) - group_node = node.getParent() - if group_node and group_node.callDecoration("isGroup") and group_node not in removed_group_nodes: - remaining_nodes_in_group = list(set(group_node.getChildren()) - set(nodes)) - if len(remaining_nodes_in_group) == 1: - removed_group_nodes.append(group_node) - op.addOperation(SetParentOperation(remaining_nodes_in_group[0], group_node.getParent())) - op.addOperation(RemoveSceneNodeOperation(group_node)) - op.push() - - ## Remove an object from the scene. - # Note that this only removes an object if it is selected. - @pyqtSlot("quint64") - @deprecated("Use deleteSelection instead", "2.6") - def deleteObject(self, object_id): - if not self.getController().getToolsEnabled(): - return - - node = self.getController().getScene().findObject(object_id) - - if not node and object_id != 0: # Workaround for tool handles overlapping the selected object - node = Selection.getSelectedObject(0) - - if node: - op = GroupedOperation() - op.addOperation(RemoveSceneNodeOperation(node)) - - group_node = node.getParent() - if group_node: - # Note that at this point the node has not yet been deleted - if len(group_node.getChildren()) <= 2 and group_node.callDecoration("isGroup"): - op.addOperation(SetParentOperation(group_node.getChildren()[0], group_node.getParent())) - op.addOperation(RemoveSceneNodeOperation(group_node)) - - op.push() - - ## Create a number of copies of existing object. - # \param object_id - # \param count number of copies - # \param min_offset minimum offset to other objects. - @pyqtSlot("quint64", int) - @deprecated("Use CuraActions::multiplySelection", "2.6") - def multiplyObject(self, object_id, count, min_offset = 8): - node = self.getController().getScene().findObject(object_id) - if not node: - node = Selection.getSelectedObject(0) - - while node.getParent() and node.getParent().callDecoration("isGroup"): - node = node.getParent() - - job = MultiplyObjectsJob([node], count, min_offset) - job.start() - return - - ## Center object on platform. - @pyqtSlot("quint64") - @deprecated("Use CuraActions::centerSelection", "2.6") - def centerObject(self, object_id): - node = self.getController().getScene().findObject(object_id) - if not node and object_id != 0: # Workaround for tool handles overlapping the selected object - node = Selection.getSelectedObject(0) - - if not node: - return - - if node.getParent() and node.getParent().callDecoration("isGroup"): - node = node.getParent() - - if node: - op = SetTransformOperation(node, Vector()) - op.push() - ## Select all nodes containing mesh data in the scene. @pyqtSlot() def selectAll(self): From e8ea742cf6c9cb533604fd7741a94381a33b27d7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 21 Dec 2018 16:27:38 +0100 Subject: [PATCH 0982/1039] Retain binding with isValidMaterial on hover So that if a material becomes valid, it updates this property. Contributes to issue CURA-6033. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index b23bcc4b8c..31569c58d2 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -12,7 +12,7 @@ Button id: configurationItem property var configuration: null - hoverEnabled: true + hoverEnabled: isValidMaterial property bool isValidMaterial: { @@ -24,7 +24,6 @@ Button if (name == "" || name == "Unknown") { - hoverEnabled = false return false } } From 5e9854454185fee9490b0d9aa996d36f65b7e2fd Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 21 Dec 2018 16:33:16 +0100 Subject: [PATCH 0983/1039] Don't change the model depending on isValidMaterial That would cause a circular dependency in a way. Contributes to issue CURA-6033. --- .../qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 31569c58d2..6a17353459 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -62,19 +62,13 @@ Button Repeater { id: repeater - model: - { - if (configurationItem.isValidMaterial) - { - return configuration.extruderConfigurations - } - return [] - } + model: configuration.extruderConfigurations delegate: PrintCoreConfiguration { width: Math.round(parent.width / 2) printCoreConfiguration: modelData + visible: configurationItem.isValidMaterial } } From a720cca5b6f279696e398e96abe919491c12775e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 21 Dec 2018 16:40:24 +0100 Subject: [PATCH 0984/1039] Fix background colour for dark theme The default colour for Rectangle is white. So this Rectangle, not defining a colour, became white. Instead we should use an Item, which cannot have a background colour and thus becomes transparent, making the background colour the same as the button below, which was intended. It's also slightly faster to render. Contributes to issue CURA-6033. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 6a17353459..81f2183488 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -73,7 +73,7 @@ Button } // Unknown material - Rectangle + Item { id: unknownMaterial height: unknownMaterialMessage.height + UM.Theme.getSize("thin_margin").width / 2 From 2277a3d316ae2ded6c8f6df18e43de9277181e38 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 21 Dec 2018 16:43:45 +0100 Subject: [PATCH 0985/1039] Prevent syncing with invalid configurations Contributes to issue CURA-6033. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 81f2183488..75a1b21186 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -216,6 +216,9 @@ Button onClicked: { - Cura.MachineManager.applyRemoteConfiguration(configuration) + if(isValidMaterial) + { + Cura.MachineManager.applyRemoteConfiguration(configuration); + } } } From 85f10e7c4f9bc48afd2fe43903e565b128e03189 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 16:57:52 +0100 Subject: [PATCH 0986/1039] Prevent some unneeded calling of signals --- cura/Settings/ExtruderManager.py | 4 +++- cura/Settings/MachineManager.py | 1 - cura/Settings/SettingInheritanceManager.py | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 8fa0172305..6e462031dc 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -344,7 +344,9 @@ class ExtruderManager(QObject): self._fixSingleExtrusionMachineExtruderDefinition(global_stack) if extruders_changed: self.extrudersChanged.emit(global_stack_id) - self.setActiveExtruderIndex(0) + + # Set it directly instead of using setActiveExtruder, since we want to force the signal to emitted. + self._active_extruder_index = 0 self.activeExtruderChanged.emit() # After 3.4, all single-extrusion machines have their own extruder definition files instead of reusing diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 2185bbce9d..755d05d71e 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -385,7 +385,6 @@ class MachineManager(QObject): self._application.setGlobalContainerStack(global_stack) ExtruderManager.getInstance()._globalContainerStackChanged() self._initMachineState(global_stack) - self._onGlobalContainerChanged() self.__emitChangedSignals() diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 12b541c3d8..3815d85e81 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -249,7 +249,6 @@ class SettingInheritanceManager(QObject): if self._global_container_stack: self._global_container_stack.containersChanged.connect(self._onContainersChanged) self._global_container_stack.propertyChanged.connect(self._onPropertyChanged) - self._onActiveExtruderChanged() def _onContainersChanged(self, container): self._update_timer.start() From f627560751761f25b75733412b91a14cd2357e1e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 17:12:07 +0100 Subject: [PATCH 0987/1039] Add timer to QualityProfilesDropdownMenuModel to prevent unneeded updates It's the same old trick we've pulled off quite often, so this should be pretty safe --- .../Models/QualityProfilesDropDownMenuModel.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py index 747882b041..7ccc886bfe 100644 --- a/cura/Machines/Models/QualityProfilesDropDownMenuModel.py +++ b/cura/Machines/Models/QualityProfilesDropDownMenuModel.py @@ -1,7 +1,7 @@ # Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt5.QtCore import Qt +from PyQt5.QtCore import Qt, QTimer from UM.Application import Application from UM.Logger import Logger @@ -39,15 +39,23 @@ class QualityProfilesDropDownMenuModel(ListModel): self._machine_manager = self._application.getMachineManager() self._quality_manager = Application.getInstance().getQualityManager() - self._application.globalContainerStackChanged.connect(self._update) - self._machine_manager.activeQualityGroupChanged.connect(self._update) - self._machine_manager.extruderChanged.connect(self._update) - self._quality_manager.qualitiesUpdated.connect(self._update) + self._application.globalContainerStackChanged.connect(self._onChange) + self._machine_manager.activeQualityGroupChanged.connect(self._onChange) + self._machine_manager.extruderChanged.connect(self._onChange) + self._quality_manager.qualitiesUpdated.connect(self._onChange) self._layer_height_unit = "" # This is cached + self._update_timer = QTimer() # type: QTimer + self._update_timer.setInterval(100) + self._update_timer.setSingleShot(True) + self._update_timer.timeout.connect(self._update) + self._update() + def _onChange(self) -> None: + self._update_timer.start() + def _update(self): Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__)) From e4af883f251ee8e0e6be9db6ab9d5afa18a5652a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 21 Dec 2018 18:19:34 +0100 Subject: [PATCH 0988/1039] Add missing signal --- cura/Settings/GlobalStack.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 44ceee9511..8dba0f5204 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -97,6 +97,7 @@ class GlobalStack(CuraContainerStack): return self._extruders[position] = extruder + self.extrudersChanged.emit() Logger.log("i", "Extruder[%s] added to [%s] at position [%s]", extruder.id, self.id, position) ## Overridden from ContainerStack From 42058a2e8ff8d35c3adb89fbf324fbe353b3576d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 24 Dec 2018 09:37:17 +0100 Subject: [PATCH 0989/1039] Revert "Prevent some unneeded calling of signals" This reverts commit 85f10e7c4f9bc48afd2fe43903e565b128e03189. The second time you start Cura, it won't slice due to the number of extruders being wrong. --- cura/Settings/ExtruderManager.py | 4 +--- cura/Settings/MachineManager.py | 1 + cura/Settings/SettingInheritanceManager.py | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 6e462031dc..8fa0172305 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -344,9 +344,7 @@ class ExtruderManager(QObject): self._fixSingleExtrusionMachineExtruderDefinition(global_stack) if extruders_changed: self.extrudersChanged.emit(global_stack_id) - - # Set it directly instead of using setActiveExtruder, since we want to force the signal to emitted. - self._active_extruder_index = 0 + self.setActiveExtruderIndex(0) self.activeExtruderChanged.emit() # After 3.4, all single-extrusion machines have their own extruder definition files instead of reusing diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 755d05d71e..2185bbce9d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -385,6 +385,7 @@ class MachineManager(QObject): self._application.setGlobalContainerStack(global_stack) ExtruderManager.getInstance()._globalContainerStackChanged() self._initMachineState(global_stack) + self._onGlobalContainerChanged() self.__emitChangedSignals() diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 3815d85e81..12b541c3d8 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -249,6 +249,7 @@ class SettingInheritanceManager(QObject): if self._global_container_stack: self._global_container_stack.containersChanged.connect(self._onContainersChanged) self._global_container_stack.propertyChanged.connect(self._onPropertyChanged) + self._onActiveExtruderChanged() def _onContainersChanged(self, container): self._update_timer.start() From c6f4cb492761f1b80e71021d322ed78852e8af5f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 24 Dec 2018 15:31:47 +0100 Subject: [PATCH 0990/1039] Make the settings panel resizable You can now drag the bottom side of the panel to make it bigger or smaller. Contributes to issue CURA-6054. --- cura/CuraApplication.py | 2 +- .../Custom/CustomPrintSetup.qml | 5 +- .../PrintSetupSelectorContents.qml | 48 ++++++++++++++++++- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 9ec2435f0b..905c367cd1 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -499,7 +499,7 @@ class CuraApplication(QtApplication): preferences.addPreference("cura/choice_on_profile_override", "always_ask") preferences.addPreference("cura/choice_on_open_project", "always_ask") preferences.addPreference("cura/use_multi_build_plate", False) - + preferences.addPreference("view/settings_list_height", 600) preferences.addPreference("cura/currency", "€") preferences.addPreference("cura/material_settings", "{}") diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 51eb14a441..98bb5c0405 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -11,7 +11,6 @@ import Cura 1.0 as Cura Item { id: customPrintSetup - height: childrenRect.height + padding property real padding: UM.Theme.getSize("default_margin").width property bool multipleExtruders: extrudersModel.count > 1 @@ -98,15 +97,15 @@ Item Rectangle { - height: UM.Theme.getSize("print_setup_widget").height anchors { top: tabBar.visible ? tabBar.bottom : globalProfileRow.bottom + topMargin: -UM.Theme.getSize("default_lining").width left: parent.left leftMargin: parent.padding right: parent.right rightMargin: parent.padding - topMargin: -UM.Theme.getSize("default_lining").width + bottom: parent.bottom } z: tabBar.z - 1 // Don't show the border when only one extruder diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 6c678f7ce5..52c2807b81 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -15,7 +15,7 @@ Item id: content width: UM.Theme.getSize("print_setup_widget").width - 2 * UM.Theme.getSize("default_margin").width - height: childrenRect.height + height: contents.height + buttonRow.height enum Mode { @@ -71,6 +71,15 @@ Item right: parent.right top: parent.top } + height: UM.Preferences.getValue("view/settings_list_height") - UM.Theme.getSize("default_margin").height + Connections + { + target: UM.Preferences + onPreferenceChanged: + { + customPrintSetup.height = UM.Preferences.getValue("view/settings_list_height"); + } + } visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom } } @@ -94,13 +103,14 @@ Item anchors { - top: buttonsSeparator.bottom + bottom: parent.bottom left: parent.left right: parent.right } Cura.SecondaryButton { + id: recommendedButton anchors.top: parent.top anchors.left: parent.left anchors.margins: parent.padding @@ -125,5 +135,39 @@ Item visible: currentModeIndex == PrintSetupSelectorContents.Mode.Recommended onClicked: currentModeIndex = PrintSetupSelectorContents.Mode.Custom } + + //Invisible area at the bottom with which you can resize the panel. + MouseArea + { + anchors + { + left: parent.left + right: parent.right + bottom: parent.bottom + top: recommendedButton.bottom + topMargin: UM.Theme.getSize("default_lining").height + } + cursorShape: Qt.SplitVCursor + visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom + drag + { + target: parent + axis: Drag.YAxis + } + onMouseYChanged: + { + if(drag.active) + { + // position of mouse relative to dropdown align vertical centre of mouse area to cursor + // v------------------------------v v------------v + var h = mouseY + buttonRow.y + content.y - height / 2 | 0; + if(h < 200 * screenScaleFactor) //Enforce a minimum size. + { + h = 200 * screenScaleFactor; + } + UM.Preferences.setValue("view/settings_list_height", h); + } + } + } } } \ No newline at end of file From b7a23399f5bac16e0275647b23564558ada9185e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 24 Dec 2018 15:37:48 +0100 Subject: [PATCH 0991/1039] Move action panel in front of settings panel The settings panel can now be so long that they overlap (if the user so chooses). This causes the action panel to be hidden behind the settings. We'd prefer to show the action panel in front, always. Contributes to issue CURA-6054. --- resources/qml/ActionPanel/ActionPanelWidget.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/ActionPanel/ActionPanelWidget.qml b/resources/qml/ActionPanel/ActionPanelWidget.qml index a1cd81e9e9..1d9ee95548 100644 --- a/resources/qml/ActionPanel/ActionPanelWidget.qml +++ b/resources/qml/ActionPanel/ActionPanelWidget.qml @@ -23,6 +23,7 @@ Rectangle border.width: UM.Theme.getSize("default_lining").width border.color: UM.Theme.getColor("lining") radius: UM.Theme.getSize("default_radius").width + z: 10 property bool outputAvailable: UM.Backend.state == UM.Backend.Done || UM.Backend.state == UM.Backend.Disabled From c6c09a83271d368e68afec1ce106b246b770f1f4 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 24 Dec 2018 16:16:23 +0100 Subject: [PATCH 0992/1039] Limit height of settings drop-down to window size It seems to be very hard to limit it to not overlap with the action panel. Well, going out of the window is a bigger problem so at least we can fix that. Contributes to issue CURA-6054. --- .../qml/PrintSetupSelector/PrintSetupSelectorContents.qml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 52c2807b81..35c5f008b6 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -165,6 +165,14 @@ Item { h = 200 * screenScaleFactor; } + + //Absolute mouse Y position in the window, to prevent it from going outside the window. + var mouse_absolute_y = mapToGlobal(mouseX, mouseY).y - UM.Preferences.getValue("general/window_top"); + if(mouse_absolute_y > base.height) + { + h -= mouse_absolute_y - base.height; + } + UM.Preferences.setValue("view/settings_list_height", h); } } From f2a32e62fc8ab19b1dad9352a3a8e9aca965e149 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 27 Dec 2018 11:06:09 +0100 Subject: [PATCH 0993/1039] Rename 'Protected profiles' to 'Default profiles' We agreed that it looks better, especially when listed right above 'Custom profiles'. --- resources/qml/Preferences/ProfilesPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index 7fb17b7aa1..d20519b361 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -408,7 +408,7 @@ Item { anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_lining").width - text: section == "true" ? catalog.i18nc("@label", "Protected profiles") : catalog.i18nc("@label", "Custom profiles") + text: section == "true" ? catalog.i18nc("@label", "Default profiles") : catalog.i18nc("@label", "Custom profiles") font.bold: true } } From 02f7a1476524dd39d2ac775ff1139a509a1bf856 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 27 Dec 2018 11:28:02 +0100 Subject: [PATCH 0994/1039] Fix ordering of a bunch of profiles --- resources/bundled_packages/cura.json | 4 ++-- resources/quality/abax_pri3/apri3_pla_fast.inst.cfg | 2 +- resources/quality/abax_pri5/apri5_pla_fast.inst.cfg | 2 +- resources/quality/abax_titan/atitan_pla_fast.inst.cfg | 2 +- .../anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg | 2 +- .../quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg | 2 +- .../anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg | 2 +- resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg | 2 +- resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg | 2 +- resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg | 2 +- .../anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg | 2 +- .../anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg | 2 +- .../anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg | 2 +- .../anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg | 2 +- .../anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg | 2 +- .../anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg | 2 +- .../anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg | 2 +- .../quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg | 2 +- .../anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg | 2 +- .../quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg | 2 +- .../quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg | 2 +- .../quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg | 2 +- .../quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg | 2 +- .../quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg | 2 +- .../quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg | 2 +- .../cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg | 2 +- .../cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg | 2 +- .../quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg | 2 +- .../quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg | 2 +- .../quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg | 2 +- .../quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_global_High_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg | 2 +- resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg | 2 +- resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg | 2 +- .../malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg | 2 +- .../malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg | 2 +- .../malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg | 2 +- ...monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_high.inst.cfg | 2 +- resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg | 2 +- resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg | 2 +- 85 files changed, 86 insertions(+), 86 deletions(-) diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index c32b94af3f..99b8cd35a0 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -356,7 +356,7 @@ } } }, - "PreviewStage": { + "PreviewStage": { "package_info": { "package_id": "PreviewStage", "package_type": "plugin", @@ -1409,7 +1409,7 @@ "package_type": "material", "display_name": "Ultimaker PC", "description": "Example package for material and quality profiles for Ultimaker materials.", - "package_version": "1.2.1", + "package_version": "1.2.2", "sdk_version": "6.0", "website": "https://ultimaker.com/products/materials/pc", "author": { diff --git a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg index 1d406e4387..ebb506a222 100644 --- a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg @@ -7,7 +7,7 @@ definition = abax_pri3 setting_version = 5 type = quality quality_type = normal -weight = -1 +weight = 0 material = generic_pla [values] diff --git a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg index 6d0fdd40d2..f278788c68 100644 --- a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg @@ -7,7 +7,7 @@ definition = abax_pri5 setting_version = 5 type = quality quality_type = normal -weight = -1 +weight = 0 material = generic_pla [values] diff --git a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg index 71740ede84..997e77041d 100644 --- a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg @@ -7,7 +7,7 @@ definition = abax_titan setting_version = 5 type = quality quality_type = normal -weight = -1 +weight = 0 material = generic_pla [values] diff --git a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg index f5baa55029..9bb11389d2 100644 --- a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg +++ b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 material = generic_abs [values] diff --git a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg index bd613c6aad..4a09e0ee7c 100644 --- a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg +++ b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = high -weight = 2 +weight = 1 material = generic_abs [values] diff --git a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg index 7cff1db4d2..f415cb379f 100644 --- a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg +++ b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = normal -weight = 1 +weight = 0 material = generic_abs [values] diff --git a/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg b/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg index c0114e3d6c..56810934c7 100644 --- a/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg +++ b/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 global_quality = True [values] diff --git a/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg b/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg index 4a0993412a..4f35669ae2 100644 --- a/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg +++ b/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = high -weight = 2 +weight = 1 global_quality = True [values] diff --git a/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg b/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg index eeb1d699e4..778764f005 100644 --- a/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg +++ b/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = normal -weight = 1 +weight = 0 global_quality = True [values] diff --git a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg index 3cd0226bd4..59b727e7be 100644 --- a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg +++ b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 material = generic_hips [values] diff --git a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg index ff5c6bee2f..1ddfe9ee4b 100644 --- a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg +++ b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = high -weight = 2 +weight = 1 material = generic_hips [values] diff --git a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg index c4701ae246..829392ad1f 100644 --- a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg +++ b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = normal -weight = 1 +weight = 0 material = generic_hips [values] diff --git a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg index 5e0c3e204a..028fe5d8a7 100644 --- a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg +++ b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 material = generic_petg [values] diff --git a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg index 57a89c4ec2..73eb73fe16 100644 --- a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg +++ b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = high -weight = 2 +weight = 1 material = generic_petg [values] diff --git a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg index 14a4607ceb..3ed9e5e707 100644 --- a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg +++ b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = normal -weight = 1 +weight = 0 material = generic_petg [values] diff --git a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg index eae9e3b5ef..fef5f88f97 100644 --- a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg +++ b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 material = generic_pla [values] diff --git a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg index c856fc66a7..edfa07067b 100644 --- a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg +++ b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = high -weight = 2 +weight = 1 material = generic_pla [values] diff --git a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg index be33bfe53a..e90bac1a0b 100644 --- a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg +++ b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_4max setting_version = 5 type = quality quality_type = normal -weight = 1 +weight = 0 material = generic_pla [values] diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index e94b9f01d1..b4f8ba78ed 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_i3_mega setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 global_quality = True [values] diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index c8c4bf9a81..c727764c5d 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_i3_mega setting_version = 5 type = quality quality_type = high -weight = 2 +weight = 1 global_quality = True [values] diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index 399c3ebc55..beb7d98b8e 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -7,7 +7,7 @@ definition = anycubic_i3_mega setting_version = 5 type = quality quality_type = normal -weight = 1 +weight = 0 global_quality = True [values] diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg index f74918ef4f..f0b4581b90 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_abs variant = 0.25mm thermoplastic extruder diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg index ab72092035..5ee76e8e2b 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_abs variant = 0.4mm thermoplastic extruder diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg index 9eea2177a8..82a980538c 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_abs variant = 0.8mm thermoplastic extruder diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg index 8215eb2f50..50dc4d42a0 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = dsm_arnitel2045_175 variant = 0.4mm thermoplastic extruder diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg index 0cf82847a0..08d1cf709e 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_hips variant = 0.25mm thermoplastic extruder diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg index 8101fb6dd8..18daa16d97 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_hips variant = 0.4mm thermoplastic extruder diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg index 0b019d555f..5afc358d51 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_hips variant = 0.8mm thermoplastic extruder diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg index e0100d37ec..b8d17bcc8f 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_nylon variant = 0.25mm thermoplastic extruder diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg index 7d899ae927..b208462ed7 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_nylon variant = 0.4mm thermoplastic extruder diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg index 95be159ff2..3c51389cc8 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_nylon variant = 0.8mm thermoplastic extruder diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg index 248517d769..cca1922fa1 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_pc variant = 0.25mm thermoplastic extruder diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg index a0b71f1f0a..6dc8225f82 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_pc variant = 0.4mm thermoplastic extruder diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg index 173ad406f3..b47f7f1ded 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_pc variant = 0.8mm thermoplastic extruder diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg index 019af9d905..d9f358360d 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_petg variant = 0.25mm thermoplastic extruder diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg index ed17ccce31..f5269d4e88 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_petg variant = 0.4mm thermoplastic extruder diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg index 08f918f59b..ef4b5428c0 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_petg variant = 0.8mm thermoplastic extruder diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg index 6525991986..940432e07e 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_pva variant = 0.25mm thermoplastic extruder diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg index e7267735e4..9a0e279e6a 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_pva variant = 0.4mm thermoplastic extruder diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg index a6c0a89fcc..1d8cd52d0d 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg @@ -7,7 +7,7 @@ definition = cartesio setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_pva variant = 0.8mm thermoplastic extruder diff --git a/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg index c196209553..d407b66762 100644 --- a/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = deltacomb setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 material = generic_abs [values] diff --git a/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg index d6d853466a..b56b222eb1 100755 --- a/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = deltacomb setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 global_quality = True [values] diff --git a/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg index 774b8969c0..440bac36e9 100644 --- a/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = deltacomb setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 material = generic_pla [values] diff --git a/resources/quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg index 7fd2ab2296..4bd83d5950 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_pla_dual_normal.inst.cfg @@ -7,7 +7,7 @@ definition = gmax15plus_dual setting_version = 5 type = quality quality_type = normal -weight = -1 +weight = 0 [values] layer_height = 0.2 diff --git a/resources/quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg index decafac241..e85a70d069 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_pla_dual_thin.inst.cfg @@ -7,7 +7,7 @@ definition = gmax15plus_dual setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 [values] layer_height = 0.16 diff --git a/resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg index ddf5a4c491..afecc2ef58 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_pla_normal.inst.cfg @@ -7,7 +7,7 @@ definition = gmax15plus setting_version = 5 type = quality quality_type = normal -weight = -1 +weight = 0 [values] layer_height = 0.2 diff --git a/resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg index d119539d32..41d32cb6b9 100644 --- a/resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_pla_thin.inst.cfg @@ -7,7 +7,7 @@ definition = gmax15plus setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 [values] layer_height = 0.16 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg index 373908b2bd..a3d8bd4579 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg @@ -7,7 +7,7 @@ definition = malyan_m200 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 material = generic_abs [values] diff --git a/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg index 42c670920f..a3013a68fb 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = malyan_m200 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 global_quality = True [values] diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg index 2f33760afa..e0305105af 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg @@ -7,5 +7,5 @@ definition = malyan_m200 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 material = generic_petg diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg index 7d96a9f56d..a79d253e49 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg @@ -7,7 +7,7 @@ definition = malyan_m200 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 material = generic_pla [values] diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg index 279f58d64f..21d1215dca 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg @@ -7,7 +7,7 @@ definition = monoprice_select_mini_v2 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 material = generic_abs [values] diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg index 79d9c8abb9..36aa5a9a37 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = monoprice_select_mini_v2 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 global_quality = True [values] diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg index 8f568d3948..40f6a9f53d 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg @@ -7,5 +7,5 @@ definition = monoprice_select_mini_v2 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 material = generic_nylon diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg index 23b72a3a3b..5202565894 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg @@ -7,7 +7,7 @@ definition = monoprice_select_mini_v2 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 material = generic_pc [values] diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg index 99874f0571..a9f891692a 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg @@ -7,5 +7,5 @@ definition = monoprice_select_mini_v2 setting_version = 5 type = quality quality_type = verydraft -weight = -4 +weight = -3 material = generic_petg diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg index 9f64ce57f0..f8458ce63b 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg @@ -7,5 +7,5 @@ definition = monoprice_select_mini_v2 setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 material = generic_pla diff --git a/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg index 2d21b1f7e0..53abc477ae 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai setting_version = 5 type = quality quality_type = draft -weight = 4 +weight = -2 [values] layer_height = 0.1 diff --git a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg index cf67591ab2..89d0aa2980 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg index eca5070eb9..8f225271d6 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker2_plus setting_version = 5 type = quality quality_type = high -weight = -1 +weight = 1 material = generic_cpe variant = 0.25 mm diff --git a/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg index ade183d14a..c47efcfb7d 100644 --- a/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker2_plus setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 global_quality = True [values] diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index 2bba1be3d4..f0da3e678d 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker2_plus setting_version = 5 type = quality quality_type = fast -weight = -2 +weight = -1 material = generic_pp variant = 0.8 mm diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg index 15f7577bdb..586eb04dd8 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker2_plus setting_version = 5 type = quality quality_type = draft -weight = -3 +weight = -2 material = generic_pp variant = 0.8 mm diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg index c2bb6d4988..80be29ed85 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker3 setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 material = generic_pc variant = AA 0.8 is_experimental = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index e815b673d1..149712dde9 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker3 setting_version = 5 type = quality quality_type = superdraft -weight = -2 +weight = -4 material = generic_pc variant = AA 0.8 is_experimental = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index c50cee576d..7311cc43a6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker3 setting_version = 5 type = quality quality_type = verydraft -weight = -1 +weight = -3 material = generic_pc variant = AA 0.8 is_experimental = True diff --git a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg index ce5497bd39..a1fa758163 100644 --- a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker3 setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 global_quality = True [values] diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg index c24aa9a98d..378028694b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 material = generic_pc variant = AA 0.8 is_experimental = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg index 5fc306b1f1..a179d6b7c9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = superdraft -weight = -2 +weight = -4 material = generic_pc variant = AA 0.8 is_experimental = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg index 996adf5be7..b474cb23d9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = verydraft -weight = -1 +weight = -3 material = generic_pc variant = AA 0.8 is_experimental = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg index 6fdd22c6b0..a313ac56fc 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = draft -weight = 0 +weight = -2 material = generic_pc variant = AA 0.8 buildplate = Aluminum diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg index 689652dc06..f1c1762d2c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = superdraft -weight = -2 +weight = -4 material = generic_pc variant = AA 0.8 buildplate = Aluminum diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg index 0480ee5620..399c139412 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = verydraft -weight = -1 +weight = -3 material = generic_pc variant = AA 0.8 buildplate = Aluminum diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg index 99b4b142fa..feb8891d26 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = draft -weight = -3 +weight = -2 material = generic_cffcpe variant = CC 0.6 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg index 80c383aa8d..980ded99e9 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = draft -weight = -3 +weight = -2 material = generic_cffpa variant = CC 0.6 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg index c94d239c81..331c5e6d73 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = draft -weight = -3 +weight = -2 material = generic_gffcpe variant = CC 0.6 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg index e7d4d1955b..0e90d6df78 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = draft -weight = -3 +weight = -2 material = generic_gffpa variant = CC 0.6 diff --git a/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg index cd1c269b1d..96005a48da 100644 --- a/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker_s5 setting_version = 5 type = quality quality_type = high -weight = 0 +weight = 1 global_quality = True [values] diff --git a/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg index 58e13b22c5..b8bc7eb628 100644 --- a/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg @@ -7,7 +7,7 @@ definition = zyyx_agile setting_version = 5 type = quality quality_type = fine -weight = 3 +weight = 1 global_quality = True [values] diff --git a/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg index cb4e042e7b..3f934b0114 100644 --- a/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg @@ -7,7 +7,7 @@ definition = zyyx_agile setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 global_quality = True [values] diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg index 6654889c10..d69bc930e9 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg @@ -7,7 +7,7 @@ definition = zyyx_agile setting_version = 5 type = quality quality_type = fine -weight = 3 +weight = 1 material = generic_tpu [values] diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg index f56355100c..d717f11528 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg @@ -7,7 +7,7 @@ definition = zyyx_agile setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_tpu [values] diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg index 64c7d4afc8..44b722ac32 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg @@ -7,7 +7,7 @@ definition = zyyx_agile setting_version = 5 type = quality quality_type = fine -weight = 3 +weight = 1 material = generic_pla [values] diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg index dbdd600ece..01424a9422 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg @@ -7,7 +7,7 @@ definition = zyyx_agile setting_version = 5 type = quality quality_type = normal -weight = 2 +weight = 0 material = generic_pla [values] From abe684c1bda37bb1ca7c7f82dd07b6720a5d22c1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 27 Dec 2018 13:08:25 +0100 Subject: [PATCH 0995/1039] Use Item instead of rectangle without defined colour Item should be faster to render. Contributes to issue CURA-6056. --- resources/qml/Preferences/Materials/MaterialsBrandSection.qml | 2 +- resources/qml/Preferences/Materials/MaterialsTypeSection.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/Materials/MaterialsBrandSection.qml b/resources/qml/Preferences/Materials/MaterialsBrandSection.qml index c40693e343..c976233805 100644 --- a/resources/qml/Preferences/Materials/MaterialsBrandSection.qml +++ b/resources/qml/Preferences/Materials/MaterialsBrandSection.qml @@ -10,7 +10,7 @@ import QtQuick.Dialogs 1.2 import UM 1.2 as UM import Cura 1.0 as Cura -Rectangle +Item { id: brand_section diff --git a/resources/qml/Preferences/Materials/MaterialsTypeSection.qml b/resources/qml/Preferences/Materials/MaterialsTypeSection.qml index f98c19e0b3..8f34217cce 100644 --- a/resources/qml/Preferences/Materials/MaterialsTypeSection.qml +++ b/resources/qml/Preferences/Materials/MaterialsTypeSection.qml @@ -10,7 +10,7 @@ import QtQuick.Dialogs 1.2 import UM 1.2 as UM import Cura 1.0 as Cura -Rectangle +Item { id: material_type_section property var materialType From 88d6e0bcaf29f14df298ce0b63224be56bbdc81a Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 27 Dec 2018 16:27:26 +0100 Subject: [PATCH 0996/1039] Correct inst.cfg version Contributes to issue CURA-5848. --- resources/variants/gmax15plus_025_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_dual_025_e3d.inst.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/variants/gmax15plus_025_e3d.inst.cfg b/resources/variants/gmax15plus_025_e3d.inst.cfg index f106b13be1..8a6b37067d 100644 --- a/resources/variants/gmax15plus_025_e3d.inst.cfg +++ b/resources/variants/gmax15plus_025_e3d.inst.cfg @@ -1,6 +1,6 @@ [general] name = 0.25mm E3D (Difficult) -version = 2 +version = 4 definition = gmax15plus [metadata] diff --git a/resources/variants/gmax15plus_dual_025_e3d.inst.cfg b/resources/variants/gmax15plus_dual_025_e3d.inst.cfg index d5f6457902..750a5381b3 100644 --- a/resources/variants/gmax15plus_dual_025_e3d.inst.cfg +++ b/resources/variants/gmax15plus_dual_025_e3d.inst.cfg @@ -1,6 +1,6 @@ [general] name = 0.25mm E3D (Difficult) -version = 2 +version = 4 definition = gmax15plus_dual [metadata] From 139ab2e0bb0bed3661d70a945105a2a75a5c1341 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 27 Dec 2018 16:39:05 +0100 Subject: [PATCH 0997/1039] Increment setting_version to 6 Because Cura 4.1 is going to have a version upgrade to change the stack files. Contributes to issue CURA-5848. --- cura/CuraApplication.py | 2 +- resources/quality/abax_pri3/apri3_pla_fast.inst.cfg | 2 +- resources/quality/abax_pri3/apri3_pla_high.inst.cfg | 2 +- resources/quality/abax_pri3/apri3_pla_normal.inst.cfg | 2 +- resources/quality/abax_pri5/apri5_pla_fast.inst.cfg | 2 +- resources/quality/abax_pri5/apri5_pla_high.inst.cfg | 2 +- resources/quality/abax_pri5/apri5_pla_normal.inst.cfg | 2 +- resources/quality/abax_titan/atitan_pla_fast.inst.cfg | 2 +- resources/quality/abax_titan/atitan_pla_high.inst.cfg | 2 +- resources/quality/abax_titan/atitan_pla_normal.inst.cfg | 2 +- .../quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg | 2 +- .../quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg | 2 +- .../quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg | 2 +- resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg | 2 +- resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg | 2 +- resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg | 2 +- .../anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg | 2 +- .../quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg | 2 +- .../anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg | 2 +- .../anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg | 2 +- .../quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg | 2 +- .../anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg | 2 +- .../quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg | 2 +- .../quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg | 2 +- .../quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg | 2 +- .../quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg | 2 +- .../quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg | 2 +- .../quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg | 2 +- .../quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg | 2 +- resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg | 2 +- .../builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg | 2 +- .../builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg | 2 +- resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_PET_Normal_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg | 2 +- resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg | 2 +- resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_global_Coarse_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_global_High_Quality.inst.cfg | 2 +- .../quality/builder_premium/bp_global_Normal_Quality.inst.cfg | 2 +- resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg | 2 +- .../quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg | 2 +- resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg | 2 +- resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg | 2 +- resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg | 2 +- .../quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg | 2 +- resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg | 2 +- resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg | 2 +- .../cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg | 2 +- .../cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg | 2 +- .../quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg | 2 +- .../cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg | 2 +- .../quality/cartesio/cartesio_global_High_Quality.inst.cfg | 2 +- .../quality/cartesio/cartesio_global_Normal_Quality.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg | 2 +- resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg | 2 +- .../cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg | 2 +- resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg | 2 +- .../quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg | 2 +- .../cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg | 2 +- .../quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg | 2 +- .../quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg | 2 +- resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg | 2 +- resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg | 2 +- .../cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg | 2 +- resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg | 2 +- .../quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg | 2 +- .../quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg | 2 +- .../quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg | 2 +- resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg | 2 +- resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg | 2 +- .../quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg | 2 +- resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg | 2 +- resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg | 2 +- resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg | 2 +- .../quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg | 2 +- resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg | 2 +- resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg | 2 +- resources/quality/coarse.inst.cfg | 2 +- resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg | 2 +- resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg | 2 +- .../quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg | 2 +- resources/quality/dagoma/dagoma_global_fast.inst.cfg | 2 +- resources/quality/dagoma/dagoma_global_fine.inst.cfg | 2 +- resources/quality/dagoma/dagoma_global_standard.inst.cfg | 2 +- resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg | 2 +- resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg | 2 +- resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg | 2 +- resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg | 2 +- resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg | 2 +- resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_abs_Draft_Quality.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_abs_Fast_Quality.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_abs_Normal_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_abs_Verydraft_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_global_Draft_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_global_Fast_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_global_High_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_global_Normal_Quality.inst.cfg | 2 +- .../deltacomb/deltacomb_global_Verydraft_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_pla_Draft_Quality.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_pla_Fast_Quality.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_pla_Normal_Quality.inst.cfg | 2 +- .../quality/deltacomb/deltacomb_pla_Verydraft_Quality.inst.cfg | 2 +- resources/quality/draft.inst.cfg | 2 +- resources/quality/extra_coarse.inst.cfg | 2 +- resources/quality/extra_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_abs_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_pla_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg | 2 +- resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg | 2 +- resources/quality/fast.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg | 2 +- .../gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg | 2 +- resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg | 2 +- resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg | 2 +- resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg | 2 +- .../quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg | 2 +- resources/quality/high.inst.cfg | 2 +- .../quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg | 2 +- .../imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg | 2 +- .../quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg | 2 +- .../imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg | 2 +- .../quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg | 2 +- .../imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg | 2 +- .../quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg | 2 +- .../imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg | 2 +- .../quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg | 2 +- .../imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg | 2 +- .../quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg | 2 +- .../imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg | 2 +- .../quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg | 2 +- .../quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg | 2 +- .../quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg | 2 +- .../imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg | 2 +- .../quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg | 2 +- .../quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg | 2 +- .../quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg | 2 +- resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg | 2 +- .../quality/malyan_m200/abs/malyan_m200_abs_draft.inst.cfg | 2 +- resources/quality/malyan_m200/abs/malyan_m200_abs_fast.inst.cfg | 2 +- resources/quality/malyan_m200/abs/malyan_m200_abs_high.inst.cfg | 2 +- .../quality/malyan_m200/abs/malyan_m200_abs_normal.inst.cfg | 2 +- .../quality/malyan_m200/abs/malyan_m200_abs_superdraft.inst.cfg | 2 +- .../malyan_m200/abs/malyan_m200_abs_thickerdraft.inst.cfg | 2 +- .../quality/malyan_m200/abs/malyan_m200_abs_ultra.inst.cfg | 2 +- .../quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_Draft_Quality.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_Fast_Quality.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_High_Quality.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_Normal_Quality.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_SuperDraft_Quality.inst.cfg | 2 +- .../malyan_m200_global_ThickerDraft_Quality.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_Ultra_Quality.inst.cfg | 2 +- .../malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg | 2 +- .../quality/malyan_m200/petg/malyan_m200_petg_draft.inst.cfg | 2 +- .../quality/malyan_m200/petg/malyan_m200_petg_fast.inst.cfg | 2 +- .../quality/malyan_m200/petg/malyan_m200_petg_high.inst.cfg | 2 +- .../quality/malyan_m200/petg/malyan_m200_petg_normal.inst.cfg | 2 +- .../malyan_m200/petg/malyan_m200_petg_superdraft.inst.cfg | 2 +- .../malyan_m200/petg/malyan_m200_petg_thickerdraft.inst.cfg | 2 +- .../quality/malyan_m200/petg/malyan_m200_petg_ultra.inst.cfg | 2 +- .../malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg | 2 +- .../quality/malyan_m200/pla/malyan_m200_pla_draft.inst.cfg | 2 +- resources/quality/malyan_m200/pla/malyan_m200_pla_fast.inst.cfg | 2 +- resources/quality/malyan_m200/pla/malyan_m200_pla_high.inst.cfg | 2 +- .../quality/malyan_m200/pla/malyan_m200_pla_normal.inst.cfg | 2 +- .../quality/malyan_m200/pla/malyan_m200_pla_superdraft.inst.cfg | 2 +- .../malyan_m200/pla/malyan_m200_pla_thickerdraft.inst.cfg | 2 +- .../quality/malyan_m200/pla/malyan_m200_pla_ultra.inst.cfg | 2 +- .../quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_draft.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_fast.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_high.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_normal.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_superdraft.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_thickerdraft.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_ultra.inst.cfg | 2 +- .../abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg | 2 +- .../monoprice_select_mini_v2_global_Draft_Quality.inst.cfg | 2 +- .../monoprice_select_mini_v2_global_Fast_Quality.inst.cfg | 2 +- .../monoprice_select_mini_v2_global_High_Quality.inst.cfg | 2 +- .../monoprice_select_mini_v2_global_Normal_Quality.inst.cfg | 2 +- .../monoprice_select_mini_v2_global_SuperDraft_Quality.inst.cfg | 2 +- ...onoprice_select_mini_v2_global_ThickerDraft_Quality.inst.cfg | 2 +- .../monoprice_select_mini_v2_global_Ultra_Quality.inst.cfg | 2 +- .../monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_draft.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_fast.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_high.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_normal.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_superdraft.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_thickerdraft.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_ultra.inst.cfg | 2 +- .../nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_draft.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_fast.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_high.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_normal.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_superdraft.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_thickerdraft.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_ultra.inst.cfg | 2 +- .../pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_draft.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_fast.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_high.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_normal.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_superdraft.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_thickerdraft.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_ultra.inst.cfg | 2 +- .../petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_draft.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_fast.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_high.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_normal.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_superdraft.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_thickerdraft.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_ultra.inst.cfg | 2 +- .../pla/monoprice_select_mini_v2_pla_verydraft.inst.cfg | 2 +- resources/quality/normal.inst.cfg | 2 +- resources/quality/peopoly_moai/peopoly_moai_coarse.inst.cfg | 2 +- resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg | 2 +- resources/quality/peopoly_moai/peopoly_moai_extra_high.inst.cfg | 2 +- resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg | 2 +- resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg | 2 +- .../quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg | 2 +- resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg | 2 +- .../quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg | 2 +- resources/quality/tizyx_k25/tizyx_k25_normal.inst.cfg | 2 +- resources/quality/ultimaker2/um2_draft.inst.cfg | 2 +- resources/quality/ultimaker2/um2_fast.inst.cfg | 2 +- resources/quality/ultimaker2/um2_high.inst.cfg | 2 +- resources/quality/ultimaker2/um2_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg | 2 +- resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_global_Coarse_Quality.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_global_Draft_Quality.inst.cfg | 2 +- .../ultimaker2_plus/um2p_global_Extra_Coarse_Quality.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_global_Fast_Quality.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_global_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg | 2 +- .../quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg | 2 +- resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.25_TPLA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg | 2 +- resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg | 2 +- resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg | 2 +- .../quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg | 2 +- .../ultimaker_original/umo_global_Coarse_Quality.inst.cfg | 2 +- .../ultimaker_original/umo_global_Draft_Quality.inst.cfg | 2 +- .../ultimaker_original/umo_global_Extra_Coarse_Quality.inst.cfg | 2 +- .../quality/ultimaker_original/umo_global_Fast_Quality.inst.cfg | 2 +- .../quality/ultimaker_original/umo_global_High_Quality.inst.cfg | 2 +- .../ultimaker_original/umo_global_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_ABS_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_Nylon_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_PLA_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.25_TPLA_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_BAM_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_BAM_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_BAM_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_ABS_High_Quality.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_ABS_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_PC_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_PC_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_PC_High_Quality.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_PC_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_PP_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.4_aluminum_PP_Fast_Print.inst.cfg | 2 +- .../um_s5_aa0.4_aluminum_PP_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_PLA_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PLA_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PLA_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_TPLA_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_TPLA_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Draft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_ABS_Superdraft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_ABS_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_aa0.8_aluminum_PP_Draft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_PP_Superdraft_Print.inst.cfg | 2 +- .../um_s5_aa0.8_aluminum_PP_Verydraft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg | 2 +- .../ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_global_Draft_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_global_Fast_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg | 2 +- .../quality/ultimaker_s5/um_s5_global_Normal_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_global_Superdraft_Quality.inst.cfg | 2 +- .../ultimaker_s5/um_s5_global_Verydraft_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_ABS_Extreme_Quality.inst.cfg | 2 +- .../quality/vertex_delta_k8800/k8800_ABS_High_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_ABS_Normal_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_Global_Extreme_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_Global_High_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_Global_Normal_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_PET_Extreme_Quality.inst.cfg | 2 +- .../quality/vertex_delta_k8800/k8800_PET_High_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_PET_Normal_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_PLA_Extreme_Quality.inst.cfg | 2 +- .../quality/vertex_delta_k8800/k8800_PLA_High_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_PLA_Normal_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_TPU_Extreme_Quality.inst.cfg | 2 +- .../quality/vertex_delta_k8800/k8800_TPU_High_Quality.inst.cfg | 2 +- .../vertex_delta_k8800/k8800_TPU_Normal_Quality.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_global_fast.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg | 2 +- resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg | 2 +- resources/variants/cartesio_0.25.inst.cfg | 2 +- resources/variants/cartesio_0.4.inst.cfg | 2 +- resources/variants/cartesio_0.8.inst.cfg | 2 +- resources/variants/fabtotum_hyb35.inst.cfg | 2 +- resources/variants/fabtotum_lite04.inst.cfg | 2 +- resources/variants/fabtotum_lite06.inst.cfg | 2 +- resources/variants/fabtotum_pro02.inst.cfg | 2 +- resources/variants/fabtotum_pro04.inst.cfg | 2 +- resources/variants/fabtotum_pro06.inst.cfg | 2 +- resources/variants/fabtotum_pro08.inst.cfg | 2 +- resources/variants/felixtec4_0.25.inst.cfg | 2 +- resources/variants/felixtec4_0.35.inst.cfg | 2 +- resources/variants/felixtec4_0.50.inst.cfg | 2 +- resources/variants/felixtec4_0.70.inst.cfg | 2 +- resources/variants/gmax15plus_025_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_04_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_05_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_05_jhead.inst.cfg | 2 +- resources/variants/gmax15plus_06_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_08_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_10_jhead.inst.cfg | 2 +- resources/variants/gmax15plus_12_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_dual_025_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_dual_04_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_dual_05_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_dual_05_jhead.inst.cfg | 2 +- resources/variants/gmax15plus_dual_06_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_dual_08_e3d.inst.cfg | 2 +- resources/variants/gmax15plus_dual_10_jhead.inst.cfg | 2 +- resources/variants/imade3d_jellybox_0.4.inst.cfg | 2 +- resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg | 2 +- resources/variants/tizyx_k25_0.2.inst.cfg | 2 +- resources/variants/tizyx_k25_0.3.inst.cfg | 2 +- resources/variants/tizyx_k25_0.4.inst.cfg | 2 +- resources/variants/tizyx_k25_0.5.inst.cfg | 2 +- resources/variants/tizyx_k25_0.6.inst.cfg | 2 +- resources/variants/tizyx_k25_0.8.inst.cfg | 2 +- resources/variants/tizyx_k25_1.0.inst.cfg | 2 +- resources/variants/ultimaker2_0.25.inst.cfg | 2 +- resources/variants/ultimaker2_0.4.inst.cfg | 2 +- resources/variants/ultimaker2_0.6.inst.cfg | 2 +- resources/variants/ultimaker2_0.8.inst.cfg | 2 +- resources/variants/ultimaker2_extended_0.25.inst.cfg | 2 +- resources/variants/ultimaker2_extended_0.4.inst.cfg | 2 +- resources/variants/ultimaker2_extended_0.6.inst.cfg | 2 +- resources/variants/ultimaker2_extended_0.8.inst.cfg | 2 +- resources/variants/ultimaker2_extended_plus_0.25.inst.cfg | 2 +- resources/variants/ultimaker2_extended_plus_0.4.inst.cfg | 2 +- resources/variants/ultimaker2_extended_plus_0.6.inst.cfg | 2 +- resources/variants/ultimaker2_extended_plus_0.8.inst.cfg | 2 +- resources/variants/ultimaker2_plus_0.25.inst.cfg | 2 +- resources/variants/ultimaker2_plus_0.4.inst.cfg | 2 +- resources/variants/ultimaker2_plus_0.6.inst.cfg | 2 +- resources/variants/ultimaker2_plus_0.8.inst.cfg | 2 +- resources/variants/ultimaker3_aa0.25.inst.cfg | 2 +- resources/variants/ultimaker3_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_aa04.inst.cfg | 2 +- resources/variants/ultimaker3_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker3_bb04.inst.cfg | 2 +- resources/variants/ultimaker3_extended_aa0.25.inst.cfg | 2 +- resources/variants/ultimaker3_extended_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_aa04.inst.cfg | 2 +- resources/variants/ultimaker3_extended_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker3_extended_bb04.inst.cfg | 2 +- resources/variants/ultimaker_s5_aa0.25.inst.cfg | 2 +- resources/variants/ultimaker_s5_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker_s5_aa04.inst.cfg | 2 +- resources/variants/ultimaker_s5_aluminum.inst.cfg | 2 +- resources/variants/ultimaker_s5_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker_s5_bb04.inst.cfg | 2 +- resources/variants/ultimaker_s5_cc06.inst.cfg | 2 +- resources/variants/ultimaker_s5_glass.inst.cfg | 2 +- 648 files changed, 648 insertions(+), 648 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 4a1023f69e..032a56ae40 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -143,7 +143,7 @@ class CuraApplication(QtApplication): # SettingVersion represents the set of settings available in the machine/extruder definitions. # You need to make sure that this version number needs to be increased if there is any non-backwards-compatible # changes of the settings. - SettingVersion = 5 + SettingVersion = 6 Created = False diff --git a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg index ebb506a222..1ca2674e1f 100644 --- a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = abax_pri3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg index 20d2c024aa..e9e8d53a03 100644 --- a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = abax_pri3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg index 0a4d1f1c62..40399c9548 100644 --- a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = abax_pri3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg index f278788c68..c6d20f70da 100644 --- a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = abax_pri5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg index 212c92e7d1..99bd10d654 100644 --- a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = abax_pri5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg index 8a1338f28c..55e0a7755a 100644 --- a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = abax_pri5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg index 997e77041d..6a2a49b555 100644 --- a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = abax_titan [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/abax_titan/atitan_pla_high.inst.cfg b/resources/quality/abax_titan/atitan_pla_high.inst.cfg index 73cd31f3fd..7dd5833297 100644 --- a/resources/quality/abax_titan/atitan_pla_high.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = abax_titan [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg index c356e197ce..b6aae46c6d 100644 --- a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = abax_titan [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg index 9bb11389d2..e12954b6bc 100644 --- a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg +++ b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg index 4a09e0ee7c..0218b87a63 100644 --- a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg +++ b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg index f415cb379f..f686855364 100644 --- a/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg +++ b/resources/quality/anycubic_4max/abs/anycubic_4max_abs_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg b/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg index 56810934c7..d9dc632c16 100644 --- a/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg +++ b/resources/quality/anycubic_4max/anycubic_4max_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg b/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg index 4f35669ae2..55b5833c3f 100644 --- a/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg +++ b/resources/quality/anycubic_4max/anycubic_4max_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg b/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg index 778764f005..45c6f19f8b 100644 --- a/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg +++ b/resources/quality/anycubic_4max/anycubic_4max_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg index 59b727e7be..97c19b7083 100644 --- a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg +++ b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg index 1ddfe9ee4b..cfa727bcb8 100644 --- a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg +++ b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg index 829392ad1f..f4372939f5 100644 --- a/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg +++ b/resources/quality/anycubic_4max/hips/anycubic_4max_hips_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg index 028fe5d8a7..124bd487b0 100644 --- a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg +++ b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg index 73eb73fe16..eeaaac6270 100644 --- a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg +++ b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg index 3ed9e5e707..ec0579015a 100644 --- a/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg +++ b/resources/quality/anycubic_4max/petg/anycubic_4max_petg_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg index fef5f88f97..b72ce43e29 100644 --- a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg +++ b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg index edfa07067b..4386159a66 100644 --- a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg +++ b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg index e90bac1a0b..9998fff2ad 100644 --- a/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg +++ b/resources/quality/anycubic_4max/pla/anycubic_4max_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = anycubic_4max [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg index b4f8ba78ed..ba99d30de6 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = anycubic_i3_mega [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg index c727764c5d..b1092b115c 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = anycubic_i3_mega [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg index beb7d98b8e..d088d650a0 100644 --- a/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg +++ b/resources/quality/anycubic_i3_mega/anycubic_i3_mega_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = anycubic_i3_mega [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg index 10c8bc553f..491d24c919 100644 --- a/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -1 diff --git a/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg index b09ceb8872..3ff0f07ac1 100644 --- a/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High Quality definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg index c2425a6d86..cf67185706 100644 --- a/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg index 038fd02fff..aedb45a2b1 100644 --- a/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -1 diff --git a/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg index e9512e30f8..08fb395a36 100644 --- a/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High Quality definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg index fb6ec6c89f..008de91758 100644 --- a/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg index 572e83d4b3..0e2c26812b 100644 --- a/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -1 diff --git a/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg index f4a45dd43a..8217ca9156 100644 --- a/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High Quality definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg index d927ab0851..48b2df0cae 100644 --- a/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg index fc877df05d..6834cbb2c4 100644 --- a/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -1 diff --git a/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg index 586133a500..9fc5426cf9 100644 --- a/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High Quality definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg index e84b2eaa87..161bee24df 100644 --- a/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg index f661e58b6d..149b938bac 100644 --- a/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -1 diff --git a/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg index 31b9c094df..ba310a0890 100644 --- a/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High Quality definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg index 8c3ca85124..4ab949957f 100644 --- a/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg index a1d80774a1..9a85c924ee 100644 --- a/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -1 diff --git a/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg index 465ea6090a..ca2f8c843f 100644 --- a/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High Quality definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg index e872561b90..3b24f9963d 100644 --- a/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = builder_premium_small [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg index 5626ed58de..f19635331d 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg index f0b4581b90..14babfa93d 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg index d4dd85b09d..99e1290c77 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg index 5ee76e8e2b..32c306ba71 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg index d15efb770f..5496468fd6 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = 3 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg index 7467da765f..360397ddc9 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = 4 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg index caa6b71a4a..82e0afa853 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg index 82a980538c..20ba9b777d 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg index 17f2acd8d1..fa89b4c3aa 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg index 50dc4d42a0..63abbf1cc5 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg index f92fc49981..7ce1111dd8 100644 --- a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -3 diff --git a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg index 1681e83279..0369c74e2a 100644 --- a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = -4 diff --git a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg index 95d1f3b37e..dafe5ef621 100644 --- a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg index 6bb348282e..100da3c70a 100644 --- a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg index 3e212b2446..93e04e1514 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg index 08d1cf709e..ba3f88ce13 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg index a9664cf9d1..91b1627650 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg index 18daa16d97..a2f817aef2 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg index f009383ad8..6b84c5e864 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = 3 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg index 1adbbb0fb9..16f299813b 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = 4 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg index d3e6df227f..686759bc4d 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg index 5afc358d51..654564f291 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg index 9eb5d5c4e9..bd2dca940f 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg index b8d17bcc8f..55d22623bb 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg index d4b261b99f..05e9abbe8f 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg index b208462ed7..51327c844a 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg index 21e6d357b0..279e2d98bf 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = 3 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg index 15128584e1..69f9a8caad 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = 4 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg index 1d78bd0f1d..ff4d152ef2 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg index 3c51389cc8..f181244796 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg index c45194e18b..15c7f17451 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg index cca1922fa1..91676e65f0 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg index 8c46693c91..73e1ff6bc5 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg index 6dc8225f82..d217756cb4 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg index 04f01db6ba..cba868e95e 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = 3 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg index 53e21ec4d0..4aff24ed02 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = 4 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg index 0b2b9dcb26..f00e83f63e 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg index b47f7f1ded..2f8ed80751 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg index 9dc7adfc88..3c8dcc7af6 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg index d9f358360d..7aedc76af9 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg index 93388787e6..3788a4dd51 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg index f5269d4e88..4805ca55bb 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg index 754c55caf5..d7d6e35a3c 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = 3 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg index 81b1de32a2..784bd0d6af 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = 4 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg index 86e93c8a32..bced328a9c 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg index ef4b5428c0..2a9da4f164 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg index 4841f9f368..15456a0b78 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg index 3ba36f9436..bfa792f133 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg index 7c785a750a..e64b67b59b 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg index b24394daf0..704a974b63 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg index 6443f2d526..b8ff99c256 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -3 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg index 51a93f76d9..da613e6e1a 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = -4 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg index 2f72d9d158..05c0f72686 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg index 431f7c0fff..8434f4abc6 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg index fe21c17e22..7df550917f 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg index 940432e07e..1f1d9549fb 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg index cdf8f8cae7..faf1633ce2 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg index 9a0e279e6a..1dc24190c6 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg index fc35e14fc6..35b2d1690d 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = 3 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg index 0e1b8b1241..3d41308a5d 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = 4 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg index 249cf6485e..0293ee9acb 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg index 1d8cd52d0d..ae3d51a03f 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = cartesio [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/coarse.inst.cfg b/resources/quality/coarse.inst.cfg index e9b8156a70..77b9004aa6 100644 --- a/resources/quality/coarse.inst.cfg +++ b/resources/quality/coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = fdmprinter [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -3 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg index a302f5b513..b12a92dc1c 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = dagoma_discoeasy200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg index b26eb1d910..055b3e30d6 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_pla_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = dagoma_discoeasy200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg index 9ec56f696a..7c244b3f18 100644 --- a/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_discoeasy200_pla_standard.inst.cfg @@ -4,7 +4,7 @@ name = Standard definition = dagoma_discoeasy200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/dagoma/dagoma_global_fast.inst.cfg b/resources/quality/dagoma/dagoma_global_fast.inst.cfg index 28569387f2..f0d312e0a7 100644 --- a/resources/quality/dagoma/dagoma_global_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_global_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = dagoma_discoeasy200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/dagoma/dagoma_global_fine.inst.cfg b/resources/quality/dagoma/dagoma_global_fine.inst.cfg index 1f7d577c1b..bf0a173ec3 100644 --- a/resources/quality/dagoma/dagoma_global_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_global_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = dagoma_discoeasy200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/dagoma/dagoma_global_standard.inst.cfg b/resources/quality/dagoma/dagoma_global_standard.inst.cfg index 167062c1d7..afeb925e96 100644 --- a/resources/quality/dagoma/dagoma_global_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_global_standard.inst.cfg @@ -4,7 +4,7 @@ name = Standard definition = dagoma_discoeasy200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg index d87c913eb6..8387ff2401 100644 --- a/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_magis_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = dagoma_magis [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg index d046726e0e..60c0cae7ec 100644 --- a/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_magis_pla_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = dagoma_magis [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg index 39961ea93b..b406d43cb1 100644 --- a/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_magis_pla_standard.inst.cfg @@ -4,7 +4,7 @@ name = Standard definition = dagoma_magis [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg b/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg index efdf2f7d32..c0e8d7fe94 100644 --- a/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg +++ b/resources/quality/dagoma/dagoma_neva_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = dagoma_neva [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg b/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg index 50915db112..b6d6966c81 100644 --- a/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg +++ b/resources/quality/dagoma/dagoma_neva_pla_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = dagoma_neva [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg b/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg index ed67800eac..eff587c908 100644 --- a/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg +++ b/resources/quality/dagoma/dagoma_neva_pla_standard.inst.cfg @@ -4,7 +4,7 @@ name = Standard definition = dagoma_neva [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/deltacomb/deltacomb_abs_Draft_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_Draft_Quality.inst.cfg index f540400575..9316a84175 100644 --- a/resources/quality/deltacomb/deltacomb_abs_Draft_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fast (beta) definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/deltacomb/deltacomb_abs_Fast_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_Fast_Quality.inst.cfg index 2214813913..a2c67ff890 100644 --- a/resources/quality/deltacomb/deltacomb_abs_Fast_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal (beta) definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg index d407b66762..be428bb8f4 100644 --- a/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine (beta) definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/deltacomb/deltacomb_abs_Normal_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_Normal_Quality.inst.cfg index 332e1890c6..1f4184f3ad 100644 --- a/resources/quality/deltacomb/deltacomb_abs_Normal_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine (beta) definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/deltacomb/deltacomb_abs_Verydraft_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_Verydraft_Quality.inst.cfg index 674174c0bd..37925e0e4c 100644 --- a/resources/quality/deltacomb/deltacomb_abs_Verydraft_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_Verydraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast (beta) definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/deltacomb/deltacomb_global_Draft_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_global_Draft_Quality.inst.cfg index f8887810d5..072f0435f6 100755 --- a/resources/quality/deltacomb/deltacomb_global_Draft_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_global_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/deltacomb/deltacomb_global_Fast_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_global_Fast_Quality.inst.cfg index 99030a084b..eef96e35b8 100755 --- a/resources/quality/deltacomb/deltacomb_global_Fast_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_global_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg index b56b222eb1..becd10ea65 100755 --- a/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/deltacomb/deltacomb_global_Normal_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_global_Normal_Quality.inst.cfg index a3bafadeec..4c95c74cfa 100755 --- a/resources/quality/deltacomb/deltacomb_global_Normal_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/deltacomb/deltacomb_global_Verydraft_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_global_Verydraft_Quality.inst.cfg index 84c6e66f61..0ba6ca588f 100755 --- a/resources/quality/deltacomb/deltacomb_global_Verydraft_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_global_Verydraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/deltacomb/deltacomb_pla_Draft_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_Draft_Quality.inst.cfg index c4f884486e..e0e695570d 100644 --- a/resources/quality/deltacomb/deltacomb_pla_Draft_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/deltacomb/deltacomb_pla_Fast_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_Fast_Quality.inst.cfg index 714d4e3517..3f43871a8f 100644 --- a/resources/quality/deltacomb/deltacomb_pla_Fast_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg index 440bac36e9..b3924431af 100644 --- a/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/deltacomb/deltacomb_pla_Normal_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_Normal_Quality.inst.cfg index 58470ed650..98ec4f46cd 100644 --- a/resources/quality/deltacomb/deltacomb_pla_Normal_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/deltacomb/deltacomb_pla_Verydraft_Quality.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_Verydraft_Quality.inst.cfg index 9c00877c24..f67a2d8a26 100644 --- a/resources/quality/deltacomb/deltacomb_pla_Verydraft_Quality.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_Verydraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = deltacomb [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/draft.inst.cfg b/resources/quality/draft.inst.cfg index ac1d9ec52f..a605b9c83c 100644 --- a/resources/quality/draft.inst.cfg +++ b/resources/quality/draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = fdmprinter [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/extra_coarse.inst.cfg b/resources/quality/extra_coarse.inst.cfg index 2a1a203d22..bf22b7ac3c 100644 --- a/resources/quality/extra_coarse.inst.cfg +++ b/resources/quality/extra_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse definition = fdmprinter [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = -4 diff --git a/resources/quality/extra_fast.inst.cfg b/resources/quality/extra_fast.inst.cfg index da890f1653..eb1e7b3a42 100644 --- a/resources/quality/extra_fast.inst.cfg +++ b/resources/quality/extra_fast.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = fdmprinter [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg index 95e8b93b36..036d49a94f 100644 --- a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg @@ -4,7 +4,7 @@ definition = fabtotum name = Fast Quality [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg index baedf0ed2b..f3d6f33952 100644 --- a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg @@ -4,7 +4,7 @@ definition = fabtotum name = High Quality [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg index 58933486ee..d01599a392 100644 --- a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg @@ -4,7 +4,7 @@ definition = fabtotum name = Normal Quality [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg index 00f0737227..1f0c050126 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast Quality definition = fabtotum [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg index bd7f32c9ba..4e234f62f8 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg @@ -4,7 +4,7 @@ name = High Quality definition = fabtotum [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg index 6a450e7ffe..67998dea38 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal Quality definition = fabtotum [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg index afac0b0884..e27477e8de 100644 --- a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg @@ -4,7 +4,7 @@ definition = fabtotum name = Fast Quality [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg index 89dc6d9b33..bab6d5fc82 100644 --- a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg @@ -4,7 +4,7 @@ definition = fabtotum name = High Quality [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg index e5496a13d4..7bd3bc024e 100644 --- a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg @@ -4,7 +4,7 @@ definition = fabtotum name = Normal Quality [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg index 7917c92514..5668d4a5b9 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg @@ -5,7 +5,7 @@ name = Fast Quality [metadata] type = quality -setting_version = 5 +setting_version = 6 material = generic_tpu quality_type = fast weight = -1 diff --git a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg index 1c31967d79..6af9e88f00 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg @@ -5,7 +5,7 @@ name = High Quality [metadata] type = quality -setting_version = 5 +setting_version = 6 material = generic_tpu quality_type = high weight = 1 diff --git a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg index 0a3821f953..13faf5bc2f 100644 --- a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg @@ -5,7 +5,7 @@ name = Normal Quality [metadata] type = quality -setting_version = 5 +setting_version = 6 material = generic_tpu quality_type = normal weight = 0 diff --git a/resources/quality/fast.inst.cfg b/resources/quality/fast.inst.cfg index 7568c42e8f..94a7961320 100644 --- a/resources/quality/fast.inst.cfg +++ b/resources/quality/fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = fdmprinter [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg index 63af72a6b1..3c9c9c0dfd 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_normal.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Dual Normal Layers definition = gmax15plus_dual [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg index 94a15bfa2b..24740362af 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thick.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Dual Thick Layers definition = gmax15plus_dual [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = course weight = -2 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg index 3a69778d89..845a1c2c39 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_thin.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Dual Thin Layers definition = gmax15plus_dual [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg index a35e951c32..4dbd81255a 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_dual_very_thick.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Dual Very Thick Layers definition = gmax15plus_dual [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra_course weight = -3 diff --git a/resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg index 5d52a8149e..8b91006184 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_normal.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Normal Layers definition = gmax15plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg index 8b01d1a166..c5ef9fdf83 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_thick.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Thick Layers definition = gmax15plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = course weight = -2 diff --git a/resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg index a097e9a981..b3a2ed8d82 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_thin.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Thin Layers definition = gmax15plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg b/resources/quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg index 36f78673c2..5ebcf5e12d 100644 --- a/resources/quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg +++ b/resources/quality/gmax15plus/gmax15plus_global_very_thick.inst.cfg @@ -4,7 +4,7 @@ name = gMax 1.5+ Very Thick Layers definition = gmax15plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra_course weight = -3 diff --git a/resources/quality/high.inst.cfg b/resources/quality/high.inst.cfg index 1b687bf5e4..2ef1aba9e1 100644 --- a/resources/quality/high.inst.cfg +++ b/resources/quality/high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = fdmprinter [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg index 6a50e24678..e299e675e0 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg index 2c8a43874a..7123c6440a 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg index 264c95c933..297531f989 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg @@ -4,7 +4,7 @@ name = Medium definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg index dfdfc2458c..d15c4a3b2d 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg @@ -4,7 +4,7 @@ name = Medium definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg index 68eec0c753..9ff4e6d49e 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg index 46f81d0c1a..88635bb56d 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg index f614b7cc3c..89dcca901c 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg index 5525899ea7..c7fd702eeb 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg index 28b4307cea..7f030b53e2 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg @@ -4,7 +4,7 @@ name = Medium definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg index 52a8594505..2759a24a8d 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg @@ -4,7 +4,7 @@ name = Medium definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg index bf3d409050..b74b9434b7 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg @@ -4,7 +4,7 @@ name = UltraFine definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultrahigh weight = 2 diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg index 676ea84825..21df5445ab 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg @@ -4,7 +4,7 @@ name = UltraFine definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultrahigh weight = 2 diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg index 819501c727..1c6ef69145 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg index 0f312aa62d..702c5182c9 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg index 25d0e65d74..87256a9af7 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_normal.inst.cfg @@ -4,7 +4,7 @@ name = Medium definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg b/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg index ebe5ab620c..ffa7ed4550 100644 --- a/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg +++ b/resources/quality/imade3d_jellybox/imade3d_jellybox_ultrafine.inst.cfg @@ -4,7 +4,7 @@ name = UltraFine definition = imade3d_jellybox [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultrahigh weight = 2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg index edba5e79ce..e4b6411ef6 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -3 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg index 899af00b78..faeaee854d 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg index 9b7ae123df..1ee9821018 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg index 96888821e3..c47239ee4a 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg @@ -4,7 +4,7 @@ name = Low definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg index c8f27f6a8f..8eac1515ca 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg index a121d921cc..e51e3f6cd8 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -3 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg index 211da57f0c..f3d9aa9409 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg index 5879a76012..92d1a98e2b 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg index 0b437327d8..3fa48b32a6 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg @@ -4,7 +4,7 @@ name = Low definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg index ca5ac5bd0e..277ddc7ec5 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = kemiq_q2_beta [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg index cd6ee5356e..e73ff9b982 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = kemiq_q2_gama [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -3 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg index 345fdc2f0d..0175eb8ffa 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = kemiq_q2_gama [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg index bafc8f0016..415fbef684 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = kemiq_q2_gama [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg index c8aa72def2..94aa963911 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg @@ -4,7 +4,7 @@ name = Low definition = kemiq_q2_gama [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg index 62c43104e1..cc69216ecd 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = kemiq_q2_gama [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_draft.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_draft.inst.cfg index 5bb967b78a..d54f0071cd 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_draft.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_fast.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_fast.inst.cfg index 30641b863a..bdd9a1ccb8 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_fast.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_high.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_high.inst.cfg index 746b579c70..7a4722d599 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_high.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_normal.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_normal.inst.cfg index e4ab115bc5..4cd3f34466 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_normal.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_superdraft.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_superdraft.inst.cfg index d8a7607c5c..bd349b6d72 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_superdraft.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_thickerdraft.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_thickerdraft.inst.cfg index 44cad5a198..a01282748b 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_thickerdraft.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_ultra.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_ultra.inst.cfg index 995074f330..ac82e263a7 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_ultra.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg b/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg index a3d8bd4579..5e3afcb633 100644 --- a/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg +++ b/resources/quality/malyan_m200/abs/malyan_m200_abs_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/malyan_m200/malyan_m200_global_Draft_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_Draft_Quality.inst.cfg index e53aa86a94..aa1f30d0b3 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_Draft_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/malyan_m200/malyan_m200_global_Fast_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_Fast_Quality.inst.cfg index 4379d9fdcb..8cbbdac2e4 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_Fast_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/malyan_m200/malyan_m200_global_High_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_High_Quality.inst.cfg index a9a5720e14..a56a5771d8 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_High_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/malyan_m200/malyan_m200_global_Normal_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_Normal_Quality.inst.cfg index 96b982e86a..f24faf98f0 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_Normal_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/malyan_m200/malyan_m200_global_SuperDraft_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_SuperDraft_Quality.inst.cfg index 0550efd603..ff0d97b1cc 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_SuperDraft_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_SuperDraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/malyan_m200/malyan_m200_global_ThickerDraft_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_ThickerDraft_Quality.inst.cfg index 9a0454fc75..623b48acff 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_ThickerDraft_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_ThickerDraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/malyan_m200/malyan_m200_global_Ultra_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_Ultra_Quality.inst.cfg index 76eaa3463f..ec04f9055b 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_Ultra_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_Ultra_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg b/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg index a3013a68fb..85b5d0df6b 100644 --- a/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg +++ b/resources/quality/malyan_m200/malyan_m200_global_VeryDraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_draft.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_draft.inst.cfg index 96144c193f..6f36402470 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_draft.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_fast.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_fast.inst.cfg index f390034a1f..ff14d6a96e 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_fast.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_high.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_high.inst.cfg index 693c6efc08..74ab347def 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_high.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_normal.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_normal.inst.cfg index 09c5c2b14d..0862f96460 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_normal.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_superdraft.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_superdraft.inst.cfg index 0faec6b357..df50ebcc42 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_superdraft.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_thickerdraft.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_thickerdraft.inst.cfg index 988082f783..3697573e0e 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_thickerdraft.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_ultra.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_ultra.inst.cfg index 4eb84672e7..c9858b63c7 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_ultra.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg b/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg index e0305105af..b88d57ab76 100644 --- a/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg +++ b/resources/quality/malyan_m200/petg/malyan_m200_petg_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_draft.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_draft.inst.cfg index 9a26d1b2a1..7a3af8285a 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_draft.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_fast.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_fast.inst.cfg index ef4d002ce3..f813e062dd 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_fast.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_high.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_high.inst.cfg index 6ff347a7cc..5fe854ddab 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_high.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_normal.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_normal.inst.cfg index b6aa938b94..cce3508550 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_normal.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_superdraft.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_superdraft.inst.cfg index 8a4b63691f..477256a933 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_superdraft.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_thickerdraft.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_thickerdraft.inst.cfg index 98a8363c85..1841b91d3d 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_thickerdraft.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_ultra.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_ultra.inst.cfg index 5a334bd9c1..24717cda19 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_ultra.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg b/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg index a79d253e49..9e638d67c5 100644 --- a/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg +++ b/resources/quality/malyan_m200/pla/malyan_m200_pla_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = malyan_m200 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_draft.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_draft.inst.cfg index ef579a567e..e8959a1235 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_draft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_fast.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_fast.inst.cfg index 33296bf677..256eea1976 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_fast.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_high.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_high.inst.cfg index e282847f14..6d0250121f 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_high.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_normal.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_normal.inst.cfg index 2979f574a4..88c12a38f0 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_normal.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_superdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_superdraft.inst.cfg index 2d4d3c7461..2eacd312f4 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_superdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_thickerdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_thickerdraft.inst.cfg index ed43dec3ae..4b311bcfed 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_thickerdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_ultra.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_ultra.inst.cfg index eb556fe862..e9857b76b3 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_ultra.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = 2 diff --git a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg index 21d1215dca..aa29220d34 100644 --- a/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/abs/monoprice_select_mini_v2_abs_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Draft_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Draft_Quality.inst.cfg index 1d81d7535e..add2590cce 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Draft_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Fast_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Fast_Quality.inst.cfg index 6a5a041244..2feddbd32a 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Fast_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_High_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_High_Quality.inst.cfg index 65925a1ea4..263bd8544c 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_High_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Normal_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Normal_Quality.inst.cfg index 0ac150c117..52e2ec79f3 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Normal_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_SuperDraft_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_SuperDraft_Quality.inst.cfg index b02910cf12..dfbd2d4d3d 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_SuperDraft_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_SuperDraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_ThickerDraft_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_ThickerDraft_Quality.inst.cfg index 46434555ad..f05617c4f0 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_ThickerDraft_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_ThickerDraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Ultra_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Ultra_Quality.inst.cfg index dfb4942b29..e6d835d683 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Ultra_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_Ultra_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg index 36aa5a9a37..f44b085be1 100644 --- a/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/monoprice_select_mini_v2_global_VeryDraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_draft.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_draft.inst.cfg index 4d7d1cd848..c7701b56d3 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_draft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_fast.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_fast.inst.cfg index 1a18df9651..dbe3b03148 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_fast.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_high.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_high.inst.cfg index ac0ca29caa..4612b19638 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_high.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_normal.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_normal.inst.cfg index 32c5e33f0d..7b887afb8d 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_normal.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_superdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_superdraft.inst.cfg index 26f260f861..c696c71fd5 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_superdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_thickerdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_thickerdraft.inst.cfg index b5bcc7d455..c561bcda04 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_thickerdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_ultra.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_ultra.inst.cfg index 6fc41e34b6..e16e044708 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_ultra.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg index 40f6a9f53d..9bf829c778 100644 --- a/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/nylon/monoprice_select_mini_v2_nylon_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_draft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_draft.inst.cfg index 76b210eba1..6cc27cd3e8 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_draft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_fast.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_fast.inst.cfg index 53a099f42d..95ef667be9 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_fast.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_high.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_high.inst.cfg index 1a6193fbaf..c874fc5c42 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_high.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_normal.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_normal.inst.cfg index 72e94d1828..62fb4046aa 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_normal.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_superdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_superdraft.inst.cfg index 13914d07e7..e1c88805e7 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_superdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_thickerdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_thickerdraft.inst.cfg index d02a793b25..0cec8831bf 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_thickerdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_ultra.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_ultra.inst.cfg index 41b3821727..6aaf8680f5 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_ultra.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg index 5202565894..7a63b896c3 100644 --- a/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pc/monoprice_select_mini_v2_pc_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_draft.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_draft.inst.cfg index c2c8889127..4e31a46fbd 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_draft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_fast.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_fast.inst.cfg index 881311d395..e0d7d393c5 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_fast.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_high.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_high.inst.cfg index f9f1e169cb..64451b0788 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_high.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_normal.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_normal.inst.cfg index 026279f012..1f5b6c956c 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_normal.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_superdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_superdraft.inst.cfg index 3ff71bf416..9b269ee95b 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_superdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_thickerdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_thickerdraft.inst.cfg index 5524ec59ea..e180b50a89 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_thickerdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_ultra.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_ultra.inst.cfg index 99d1da45c7..fe77254c56 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_ultra.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg index a9f891692a..9505b2b15b 100644 --- a/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/petg/monoprice_select_mini_v2_petg_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_draft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_draft.inst.cfg index a64020a89e..8333cd10ac 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_draft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_fast.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_fast.inst.cfg index 994d6ff0fd..ab83dacbe8 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_fast.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = 0 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg index f8458ce63b..13f31a614e 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_high.inst.cfg @@ -4,7 +4,7 @@ name = Finer definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_normal.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_normal.inst.cfg index afbc03d5af..57fb63fdea 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_normal.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_superdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_superdraft.inst.cfg index ec30cfe2b9..77c3a18b54 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_superdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_superdraft.inst.cfg @@ -4,7 +4,7 @@ name = Lowest Quality Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -5 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_thickerdraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_thickerdraft.inst.cfg index 916285385d..52b871217b 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_thickerdraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_thickerdraft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = thickerdraft weight = -3 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_ultra.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_ultra.inst.cfg index 5d627b6d35..36ef492905 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_ultra.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_ultra.inst.cfg @@ -4,7 +4,7 @@ name = Ultra Fine definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = ultra weight = 2 diff --git a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_verydraft.inst.cfg b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_verydraft.inst.cfg index 9f22fb3692..e1d636b2b1 100644 --- a/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_verydraft.inst.cfg +++ b/resources/quality/monoprice_select_mini_v2/pla/monoprice_select_mini_v2_pla_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Low Detail Draft definition = monoprice_select_mini_v2 [metadata] -setting_version = 5 +setting_version = 6 type = quality material = generic_pla weight = 0 diff --git a/resources/quality/normal.inst.cfg b/resources/quality/normal.inst.cfg index f32c87bc60..02b9ebf621 100644 --- a/resources/quality/normal.inst.cfg +++ b/resources/quality/normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = fdmprinter [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/peopoly_moai/peopoly_moai_coarse.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_coarse.inst.cfg index ac4f9ee81d..9ca6cec759 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_coarse.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_coarse.inst.cfg @@ -4,7 +4,7 @@ name = Coarse definition = peopoly_moai [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = 3 diff --git a/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg index 53abc477ae..72953e5305 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = peopoly_moai [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/peopoly_moai/peopoly_moai_extra_high.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_extra_high.inst.cfg index 796c2cff3c..30d41aa7f8 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_extra_high.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_extra_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra High definition = peopoly_moai [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra_high weight = 0 diff --git a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg index b36163d9f1..37442ed20c 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = peopoly_moai [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg index 89d0aa2980..33bb5673ae 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = peopoly_moai [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg index be83533e0b..13f12ef643 100644 --- a/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = tevo_blackwidow [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg index 5ca8a6e4ef..0f0ccf64c6 100644 --- a/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_high.inst.cfg @@ -4,7 +4,7 @@ name = High definition = tevo_blackwidow [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg b/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg index f542952fab..ebd5997027 100644 --- a/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg +++ b/resources/quality/tevo_blackwidow/tevo_blackwidow_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = tevo_blackwidow [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/tizyx_k25/tizyx_k25_normal.inst.cfg b/resources/quality/tizyx_k25/tizyx_k25_normal.inst.cfg index 8b066f139f..f259ad1b34 100644 --- a/resources/quality/tizyx_k25/tizyx_k25_normal.inst.cfg +++ b/resources/quality/tizyx_k25/tizyx_k25_normal.inst.cfg @@ -5,7 +5,7 @@ definition = tizyx_k25 [metadata] quality_type = normal -setting_version = 5 +setting_version = 6 type = quality global_quality = True diff --git a/resources/quality/ultimaker2/um2_draft.inst.cfg b/resources/quality/ultimaker2/um2_draft.inst.cfg index 8c34d2c09d..7d38ba6bf4 100644 --- a/resources/quality/ultimaker2/um2_draft.inst.cfg +++ b/resources/quality/ultimaker2/um2_draft.inst.cfg @@ -4,7 +4,7 @@ name = Draft definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2/um2_fast.inst.cfg b/resources/quality/ultimaker2/um2_fast.inst.cfg index 084ed05f92..39cd4da4ef 100644 --- a/resources/quality/ultimaker2/um2_fast.inst.cfg +++ b/resources/quality/ultimaker2/um2_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2/um2_high.inst.cfg b/resources/quality/ultimaker2/um2_high.inst.cfg index 83bb6bb972..142440d53e 100644 --- a/resources/quality/ultimaker2/um2_high.inst.cfg +++ b/resources/quality/ultimaker2/um2_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2/um2_normal.inst.cfg b/resources/quality/ultimaker2/um2_normal.inst.cfg index febee8581f..b5a87f07f3 100644 --- a/resources/quality/ultimaker2/um2_normal.inst.cfg +++ b/resources/quality/ultimaker2/um2_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg index ff830ae660..d27a136765 100644 --- a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg index 94ea62a7ca..5bc62e5fd0 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg index 03de437ee2..2847ab8c15 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg index 836d866eab..009fcf7877 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg index de55623c0f..7c492f2ec0 100644 --- a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg index c96260d52f..1b6cee0e1d 100644 --- a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg index 886daf58e2..f55567f986 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg index b727acc510..63904632dc 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg index 20e217315b..f76efeb7b2 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg index 853a87c751..fd7dfc86a7 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg index 6d3ef94b9d..aba3222412 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg index 7b39ce966a..23618e2e1d 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg index 8f225271d6..db184abe54 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg index 1e181e23d1..2dc076b012 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg index 9ffb8a05bb..300d5242e2 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg index ee7101f2ec..17a9f1a579 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg index d2de84eae6..6807a1a86a 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg index 581dc0368d..7a15ed53ec 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg index 7549c0081d..cc68478dd8 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg index b1e5552562..0d0e0e2043 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg index 616f13f110..e08a7fc357 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg index d28dc76af8..7c8589f09e 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg index 1c4fa746ad..1c42d28128 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg index e40d6efc58..072081e092 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_global_Coarse_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_global_Coarse_Quality.inst.cfg index a10cb4030c..2a4fe17a24 100644 --- a/resources/quality/ultimaker2_plus/um2p_global_Coarse_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_global_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse Quality definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -4 diff --git a/resources/quality/ultimaker2_plus/um2p_global_Draft_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_global_Draft_Quality.inst.cfg index 5645bbee0b..bdf79827b2 100644 --- a/resources/quality/ultimaker2_plus/um2p_global_Draft_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_global_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Draft Quality definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_global_Extra_Coarse_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_global_Extra_Coarse_Quality.inst.cfg index d9afc804ba..e5338c0e34 100644 --- a/resources/quality/ultimaker2_plus/um2p_global_Extra_Coarse_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_global_Extra_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse Quality definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = -3 diff --git a/resources/quality/ultimaker2_plus/um2p_global_Fast_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_global_Fast_Quality.inst.cfg index 7fd6d54c87..453def0668 100644 --- a/resources/quality/ultimaker2_plus/um2p_global_Fast_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_global_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg index c47efcfb7d..20b9e7ba16 100644 --- a/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_global_Normal_Quality.inst.cfg b/resources/quality/ultimaker2_plus/um2p_global_Normal_Quality.inst.cfg index 76c7b8163c..c901687f22 100644 --- a/resources/quality/ultimaker2_plus/um2p_global_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg index 2cab693c74..512f9e499b 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg index f61a29a35a..ce607f7a83 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg index 341dc7422f..7b06d5205c 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg index 63bc156e15..b65f694e11 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg index 8aea23fb50..6caa1d2e82 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg index 28ccd6ffcf..3dad97297f 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg index f868313ba9..fe5749aeff 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg index c30d849553..3e16229ad1 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg index 08b60eeb20..0195a6170f 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg index dbc36f0c25..fe15f050c7 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg index 18f299b64d..1268e4f5a5 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg index 9ebb46c4d3..31a55131bd 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg index 47f84fe790..a4b0e7865e 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg index 2c857435c5..9fef7be2f8 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg index 6450d9fe56..cfbd0795ab 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg index 91c990712e..fd24f29c40 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg index 4266bcd46b..8e320bef25 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg index b995c92922..94d7a22965 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg index a9e4917fa2..aee8437e39 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg index 2fec539e2f..f1e709495b 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index f0da3e678d..0e84d2c2e4 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg index 586eb04dd8..905c147e41 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg index e0c016abee..47bf078c2f 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg index 127f281913..d8543f1f8a 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg index c39ea9cec3..1983878a79 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg index 5139a1fea8..dda9fd3891 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg index 4e81b4f39e..922366d716 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg index 04dc2ec79b..3535bc4cba 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg index 4d585b54c1..f24c53aaee 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg index 8dbca3cd05..a59c404754 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg index bee345e302..6f9734511b 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.25_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_TPLA_Normal_Quality.inst.cfg index 768864bfef..af9bea762a 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_TPLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg index 8877912a33..a6ba0a666b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg index 926cfd6995..4bd04e36af 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 4e79728945..6ef2fa3cb4 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index 3bded3b97c..e0862a137c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg index df7f0fdf02..3de7252b86 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg index cf330dc984..28bce4eb15 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg index 705c9c4105..0f15931e59 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg index 4e94789a6b..c27fc027fb 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg index d93915d721..6a035522f1 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg index 082152c50f..3387430d26 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg index 889b94e001..8d0283a20f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg index 1891a274c8..a8d5c26315 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg index e4cfdb67fc..e4b4e2e21b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg index cec4b950cf..3964608aec 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg index 892083b264..b0e7234c90 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg index 2e4b8f8dcc..5bfa29fd61 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg index 9b271c47cd..eaec1cdbdb 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg index 16c0b6febb..7a0a04b6c2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg index 17661efbb8..8b18ee20df 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg index 96acf403a5..fafb839f17 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg index f9159b5fca..57527f928c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg index d175e99ad6..37e31c5863 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg index 557a449022..0961b3ccd6 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index 16626dc544..c24c2cacdf 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index 7f50a2a6f0..d20a06a94a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index 507afc5526..bd365c56ae 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index 05febab06d..a291357e58 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index 4efa5199cb..6dbb444454 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index ad03df5d86..60c304794b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index d8d51dd716..92d53d6295 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg index 9959a39457..6d8c6690a2 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg index 5c68557e9b..c8fbe827e3 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg index 90556ea487..d1a1bc994c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index 9b9dca3a16..13bc7c0b7e 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index e6233a8184..cb3692a84f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index e725615854..a5264ce6ec 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg index e71ea07531..474b24a462 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg index 39aa103631..e9c4f9e3e9 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg index 3a08643086..213298653a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg index fc4acf3cb0..bb2aa2d6ef 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 36b3ef603f..98086b2bf1 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index 14e08cb14d..0684b9ac1e 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg index 170643275c..05294737b6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg index 5b3cb52f18..555d6da1bf 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg index fff96ba9fc..da71c679ff 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg index e9b0873716..ab11f0fe86 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg index 7518acc7f0..46f5a87a1b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg index 040632efec..12d96e9f7d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg index 80be29ed85..8005618066 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index 149712dde9..601a68ef46 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index 7311cc43a6..0d5b579846 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast - Experimental definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index 9b861030d8..c5000b0a43 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index 42a499f22c..e03663bc2b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index d1f3937244..06bf4cf224 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index 19496565bc..b577ba8185 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index aeee3b4e09..c0917a9e8e 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index fcd4fcd999..00eb39a400 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg index 3f679870fd..30ce94000f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg index 17dbd1faf9..ea3525c7ee 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg index 624496a9ec..1027f52b38 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPLA_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 90b5103f20..83fb56a84d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index a9fab40d4e..36e38654db 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index e2ced0a364..96b1406adb 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg index 7010d292b2..a41b0c0210 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg index 325609362f..d7a8885bf9 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg index a0507299fb..be4eedadc8 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg index 086f811b36..ae576790a8 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg index 28556ca7bf..247e7f12c6 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg index 9ad5499f18..8a4c0cc992 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg index e616214704..c931e6ad5d 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg index a421203220..b95ddb1aa9 100644 --- a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg index 2ecf7526a2..3510a05343 100644 --- a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg index a1fa758163..55fe2bdfda 100644 --- a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg index afadda378a..cffacfd312 100644 --- a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg index f88f5df85f..5fd966bb9f 100644 --- a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg index df626dc724..7e65a6c4c4 100644 --- a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_original/umo_global_Coarse_Quality.inst.cfg b/resources/quality/ultimaker_original/umo_global_Coarse_Quality.inst.cfg index 34f3a2a901..6125d0f687 100644 --- a/resources/quality/ultimaker_original/umo_global_Coarse_Quality.inst.cfg +++ b/resources/quality/ultimaker_original/umo_global_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Coarse Quality definition = ultimaker_original [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = coarse weight = -3 diff --git a/resources/quality/ultimaker_original/umo_global_Draft_Quality.inst.cfg b/resources/quality/ultimaker_original/umo_global_Draft_Quality.inst.cfg index ed8c0ddb97..ebabe4dd46 100644 --- a/resources/quality/ultimaker_original/umo_global_Draft_Quality.inst.cfg +++ b/resources/quality/ultimaker_original/umo_global_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Draft Quality definition = ultimaker_original [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_original/umo_global_Extra_Coarse_Quality.inst.cfg b/resources/quality/ultimaker_original/umo_global_Extra_Coarse_Quality.inst.cfg index 1ad10ac4db..b625ec45ea 100644 --- a/resources/quality/ultimaker_original/umo_global_Extra_Coarse_Quality.inst.cfg +++ b/resources/quality/ultimaker_original/umo_global_Extra_Coarse_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Coarse Quality definition = ultimaker_original [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extra coarse weight = -4 diff --git a/resources/quality/ultimaker_original/umo_global_Fast_Quality.inst.cfg b/resources/quality/ultimaker_original/umo_global_Fast_Quality.inst.cfg index 6c83239164..e2bceeae7e 100644 --- a/resources/quality/ultimaker_original/umo_global_Fast_Quality.inst.cfg +++ b/resources/quality/ultimaker_original/umo_global_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_original [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_original/umo_global_High_Quality.inst.cfg b/resources/quality/ultimaker_original/umo_global_High_Quality.inst.cfg index 19752f07bf..883048f557 100644 --- a/resources/quality/ultimaker_original/umo_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_original/umo_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_original [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_original/umo_global_Normal_Quality.inst.cfg b/resources/quality/ultimaker_original/umo_global_Normal_Quality.inst.cfg index a7dedc9b88..2cec4bfbda 100644 --- a/resources/quality/ultimaker_original/umo_global_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_original/umo_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_original [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_ABS_Normal_Quality.inst.cfg index f2e05b08e8..be8e56d133 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_ABS_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg index c15311d104..3eaeda67d5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_Nylon_Normal_Quality.inst.cfg index 3a8ed8e773..9407fb72b0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_Nylon_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg index 53c319d6e6..7cde76a1e1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PC_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PLA_Normal_Quality.inst.cfg index a06f2158fe..ab45d82a3b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg index b4d34cc392..1474cad5c1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_TPLA_Normal_Quality.inst.cfg index e9628225bc..ea4375b854 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_TPLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg index b86c61b3a2..6d26c2bb97 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg index f3c099724a..e2e8bd82e5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg index 8d016a2ee4..fc39383f04 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg index 6ce623b66e..8ec7e6453b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_ABS_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Draft_Print.inst.cfg index 254afbc109..93665c36de 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Fast_Print.inst.cfg index 39bedce77f..478df58f43 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Normal_Quality.inst.cfg index c87d590650..e936d0f131 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_BAM_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg index 627302e0ab..da639d22c9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg index cda8d85211..2c2eb99fb0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg index 3ce76bf6be..20fbcd9430 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg index d402b663c6..e40949fc7d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg index 505cd952d2..7ccfe4f786 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg index cc5df0abb9..f12c90bc05 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg index c81dc0f5a7..04957025f1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg index 7d29f8fb7c..b0a5fb820f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg index 991ad30a5a..1a198f3e03 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg index 695ce2c8fb..e6b882d2af 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg index e55867efe5..292ef73a4c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg index 41e28c51d5..2b71a01e0d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg index 5d03e1c980..e27a6894e3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg index b630ab6232..db1ecee3bc 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg index 1c080c3b47..ca80494f3d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg index 79ce686da5..d2d5171fed 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PC_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg index c7a4864328..9bf58d4f39 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg index 42048fa297..017bf46bd8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg index b7ad8bd5c4..314f7fe0bb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg index 911fa9a0a8..2bb0d31d76 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg index 68558bcf93..8b8bdfd999 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg index 1145d1900f..0fd70e5973 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg index c0b094f0a2..0d683a9f87 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg index 280e5c4bfb..df45c190e1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg index 304c170b55..96b77ebca9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg index cd5c598d4f..3a2cf495a3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg index 2522c0f20f..2d93d1e980 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg index 9b4ab52543..30a1e0c29f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg index 35cf66a93b..3b57900a46 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg index 4357d765df..368bfd9e48 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_TPU_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Draft_Print.inst.cfg index c8d64f9dcb..a2b7aa7b87 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Fast_Print.inst.cfg index c7fa604e89..8e82e27210 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_High_Quality.inst.cfg index 187023d3c0..7e4f17cbf1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Normal_Quality.inst.cfg index 81cb27f060..959d9241c7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_ABS_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg index 4a55f5d24c..c9083cf2ab 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg index 730e058212..9d7663b6e1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg index e6921e63d8..ba796da940 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg index a4eec45e38..96ec8d9e36 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPEP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg index 4f085f10a6..bae8b09016 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg index 2580bf952d..f585c2a787 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg index d6f07c37a5..a580a27176 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg index 6032ff3845..3db4053d2a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_CPE_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Draft_Print.inst.cfg index f05ecddc25..e86c3b363b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Fast_Print.inst.cfg index 6103519f1c..0da88626b6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_High_Quality.inst.cfg index 130afb8c91..d7552ba921 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Normal_Quality.inst.cfg index 9e1bf394d4..638ce2323e 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PC_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Draft_Print.inst.cfg index 6124dff257..c0ca84281d 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Fast_Print.inst.cfg index 2791e9f5d5..43b77f6492 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Normal_Quality.inst.cfg index f78b4048fb..04abd0d18b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_aluminum_PP_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg index 911fc6e78e..fb786c7759 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg index 0fcdac4a85..cfacaebad0 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg index e3346bbd1d..18ce266cd6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg index d126dddaad..a4a7a5e08c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg index dd8b20652a..e4f330099b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg index bc107422f1..0685b27b8a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg index 7cb69ba3eb..a57bde98b1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg index 6c323fe602..2f0851d9fb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg index a0380ecc0e..6ccca75b44 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg index 2108839d3f..5d04892443 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg index 0702d174a0..5c31e26bd6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg index d02d410ed6..d04482c94c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg index 378028694b..97afe62e07 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg index a179d6b7c9..3f296c0300 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg index b474cb23d9..5eec532f22 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PC_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Draft_Print.inst.cfg index 7db4e96311..1410290859 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Superdraft_Print.inst.cfg index c59f015b5d..2c65968d77 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Verydraft_Print.inst.cfg index 6fdff8bf8d..9b6e7c2ed9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg index fee58b367d..c5b01ab1b1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg index aaa810e864..5c83f24395 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg index 5b8aa6d2e1..f182d5c6cb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PP_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Draft_Print.inst.cfg index 50dead746b..5b39508f3c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Superdraft_Print.inst.cfg index 0bdb088f8c..b07a78419a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg index c7cb5902a2..46a61bb79f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPLA_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg index e8276d54c5..088414fa34 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg index 7da73a200d..d74309c476 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg index 60dbbf38e6..deb2b55dbb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Draft_Print.inst.cfg index 37dceff349..062fcfdd5b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Superdraft_Print.inst.cfg index eac339baa8..38c341af28 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Verydraft_Print.inst.cfg index 590496df0f..8a38bb9aa3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_ABS_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg index 50091a6fb4..d9dd09c7b6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg index b9c9ef6611..bc6a04ae55 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg index be2cc62b08..b384bd7083 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPEP_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg index 0d0ed8f8b2..28409d4181 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg index a163e0c735..33c5d73a59 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg index 2137cf740b..8db23c11c2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_CPE_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg index a313ac56fc..c0af70748a 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast - Experimental definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg index f1c1762d2c..bba2dfa92f 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg index 399c139412..3987c01ecc 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PC_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Draft_Print.inst.cfg index b80af1b75f..5a2c3005c9 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Superdraft_Print.inst.cfg index 970e0971a9..aaa8cbfcd3 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Verydraft_Print.inst.cfg index e51ba3207b..782cadce6b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_aluminum_PP_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg index 73639be0b6..34b078278c 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg index 5da25be32d..5677c5931c 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Fast_Print.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg index 36634af2c8..b9e32cb7c5 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg index f76c4c944a..081ee2261e 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.4_PVA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg index e4e3ab772a..0193081db6 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg index 5e78e51014..121b32f903 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg index 5af09aebcc..f0296c9279 100644 --- a/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg index feb8891d26..35da5b113e 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFCPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg index 980ded99e9..67400daf9f 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_CFFPA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg index 331c5e6d73..0c4f55bddf 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFCPE_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg index 0e90d6df78..8a6f9d2ac8 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.6_GFFPA_Draft_Print.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_global_Draft_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_global_Draft_Quality.inst.cfg index ed5303637b..f0121fa4d7 100644 --- a/resources/quality/ultimaker_s5/um_s5_global_Draft_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_global_Draft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = draft weight = -2 diff --git a/resources/quality/ultimaker_s5/um_s5_global_Fast_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_global_Fast_Quality.inst.cfg index ee9c6a8409..b9bb0beff6 100644 --- a/resources/quality/ultimaker_s5/um_s5_global_Fast_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_global_Fast_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = -1 diff --git a/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg index 96005a48da..aa2420e465 100644 --- a/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/ultimaker_s5/um_s5_global_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_global_Normal_Quality.inst.cfg index 099ba7c584..8bb8f7f282 100644 --- a/resources/quality/ultimaker_s5/um_s5_global_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_global_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_global_Superdraft_Quality.inst.cfg index 4c0bd40bd1..ec46668b61 100644 --- a/resources/quality/ultimaker_s5/um_s5_global_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_global_Superdraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Sprint definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = superdraft weight = -4 diff --git a/resources/quality/ultimaker_s5/um_s5_global_Verydraft_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_global_Verydraft_Quality.inst.cfg index ec4ec910ff..dd6c7bb4b8 100644 --- a/resources/quality/ultimaker_s5/um_s5_global_Verydraft_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_global_Verydraft_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extra Fast definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = verydraft weight = -3 diff --git a/resources/quality/vertex_delta_k8800/k8800_ABS_Extreme_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_ABS_Extreme_Quality.inst.cfg index 70aac3f666..370cc149a2 100644 --- a/resources/quality/vertex_delta_k8800/k8800_ABS_Extreme_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_ABS_Extreme_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extreme definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extreme weight = 2 diff --git a/resources/quality/vertex_delta_k8800/k8800_ABS_High_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_ABS_High_Quality.inst.cfg index 564b330132..6c96b47169 100644 --- a/resources/quality/vertex_delta_k8800/k8800_ABS_High_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_ABS_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/vertex_delta_k8800/k8800_ABS_Normal_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_ABS_Normal_Quality.inst.cfg index e2f740a60a..19150baab9 100644 --- a/resources/quality/vertex_delta_k8800/k8800_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_ABS_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/vertex_delta_k8800/k8800_Global_Extreme_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_Global_Extreme_Quality.inst.cfg index 48e80b5512..00d626d72c 100644 --- a/resources/quality/vertex_delta_k8800/k8800_Global_Extreme_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_Global_Extreme_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extreme definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extreme weight = 2 diff --git a/resources/quality/vertex_delta_k8800/k8800_Global_High_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_Global_High_Quality.inst.cfg index 496144772c..0bd519affe 100644 --- a/resources/quality/vertex_delta_k8800/k8800_Global_High_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_Global_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/vertex_delta_k8800/k8800_Global_Normal_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_Global_Normal_Quality.inst.cfg index 75ae5f15e6..2b18891998 100644 --- a/resources/quality/vertex_delta_k8800/k8800_Global_Normal_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_Global_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/vertex_delta_k8800/k8800_PET_Extreme_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_PET_Extreme_Quality.inst.cfg index 8309106d9f..8715e573ab 100644 --- a/resources/quality/vertex_delta_k8800/k8800_PET_Extreme_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_PET_Extreme_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extreme definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extreme weight = 2 diff --git a/resources/quality/vertex_delta_k8800/k8800_PET_High_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_PET_High_Quality.inst.cfg index 6efaa3299f..0c94cc5ca4 100644 --- a/resources/quality/vertex_delta_k8800/k8800_PET_High_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_PET_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/vertex_delta_k8800/k8800_PET_Normal_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_PET_Normal_Quality.inst.cfg index bd3b0c35fb..40698f134d 100644 --- a/resources/quality/vertex_delta_k8800/k8800_PET_Normal_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_PET_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/vertex_delta_k8800/k8800_PLA_Extreme_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_PLA_Extreme_Quality.inst.cfg index d10b4c3f8d..f81c82fa9b 100644 --- a/resources/quality/vertex_delta_k8800/k8800_PLA_Extreme_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_PLA_Extreme_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extreme definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extreme weight = 2 diff --git a/resources/quality/vertex_delta_k8800/k8800_PLA_High_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_PLA_High_Quality.inst.cfg index ede77b0dfe..e4b4771b0e 100644 --- a/resources/quality/vertex_delta_k8800/k8800_PLA_High_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_PLA_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/vertex_delta_k8800/k8800_PLA_Normal_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_PLA_Normal_Quality.inst.cfg index a75cff6968..41950da7a1 100644 --- a/resources/quality/vertex_delta_k8800/k8800_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_PLA_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/vertex_delta_k8800/k8800_TPU_Extreme_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_TPU_Extreme_Quality.inst.cfg index bee6b3bf11..32077f6cc1 100644 --- a/resources/quality/vertex_delta_k8800/k8800_TPU_Extreme_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_TPU_Extreme_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Extreme definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = extreme weight = 2 diff --git a/resources/quality/vertex_delta_k8800/k8800_TPU_High_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_TPU_High_Quality.inst.cfg index 8b0f87cc77..a7ef7d8cc8 100644 --- a/resources/quality/vertex_delta_k8800/k8800_TPU_High_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_TPU_High_Quality.inst.cfg @@ -4,7 +4,7 @@ name = High definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = high weight = 1 diff --git a/resources/quality/vertex_delta_k8800/k8800_TPU_Normal_Quality.inst.cfg b/resources/quality/vertex_delta_k8800/k8800_TPU_Normal_Quality.inst.cfg index bd4e04744f..17a09f366f 100644 --- a/resources/quality/vertex_delta_k8800/k8800_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/vertex_delta_k8800/k8800_TPU_Normal_Quality.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = vertex_delta_k8800 [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/zyyx/zyyx_agile_global_fast.inst.cfg b/resources/quality/zyyx/zyyx_agile_global_fast.inst.cfg index 67e350b39e..19cda650d3 100644 --- a/resources/quality/zyyx/zyyx_agile_global_fast.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_global_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = 1 diff --git a/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg index b8bc7eb628..f2f127f483 100644 --- a/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_global_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fine weight = 1 diff --git a/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg index 3f934b0114..d9cbdc691e 100644 --- a/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_global_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg index 188bdd25e5..d6f715c09f 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = 1 diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg index d69bc930e9..a0aa1996ac 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fine weight = 1 diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg index d717f11528..a70b1dd19a 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg index 7ae4be06b0..5b32c3f07b 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg @@ -4,7 +4,7 @@ name = Fast definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fast weight = 1 diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg index 44b722ac32..a3849bf5e2 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg @@ -4,7 +4,7 @@ name = Fine definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = fine weight = 1 diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg index 01424a9422..d126308660 100644 --- a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg +++ b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg @@ -4,7 +4,7 @@ name = Normal definition = zyyx_agile [metadata] -setting_version = 5 +setting_version = 6 type = quality quality_type = normal weight = 0 diff --git a/resources/variants/cartesio_0.25.inst.cfg b/resources/variants/cartesio_0.25.inst.cfg index b3aae8a393..53048622f2 100644 --- a/resources/variants/cartesio_0.25.inst.cfg +++ b/resources/variants/cartesio_0.25.inst.cfg @@ -5,7 +5,7 @@ definition = cartesio [metadata] author = Cartesio -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/cartesio_0.4.inst.cfg b/resources/variants/cartesio_0.4.inst.cfg index 5cea5823c4..3ad6b3f3d9 100644 --- a/resources/variants/cartesio_0.4.inst.cfg +++ b/resources/variants/cartesio_0.4.inst.cfg @@ -5,7 +5,7 @@ definition = cartesio [metadata] author = Cartesio -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/cartesio_0.8.inst.cfg b/resources/variants/cartesio_0.8.inst.cfg index b4009cf9ed..f19c4d58d4 100644 --- a/resources/variants/cartesio_0.8.inst.cfg +++ b/resources/variants/cartesio_0.8.inst.cfg @@ -5,7 +5,7 @@ definition = cartesio [metadata] author = Cartesio -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/fabtotum_hyb35.inst.cfg b/resources/variants/fabtotum_hyb35.inst.cfg index d3f0077792..5ed9eca26a 100644 --- a/resources/variants/fabtotum_hyb35.inst.cfg +++ b/resources/variants/fabtotum_hyb35.inst.cfg @@ -5,7 +5,7 @@ definition = fabtotum [metadata] author = FABtotum -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/fabtotum_lite04.inst.cfg b/resources/variants/fabtotum_lite04.inst.cfg index 226c136564..7b52bf5c29 100644 --- a/resources/variants/fabtotum_lite04.inst.cfg +++ b/resources/variants/fabtotum_lite04.inst.cfg @@ -5,7 +5,7 @@ definition = fabtotum [metadata] author = FABtotum -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/fabtotum_lite06.inst.cfg b/resources/variants/fabtotum_lite06.inst.cfg index 62e3014b60..f518f60ce9 100644 --- a/resources/variants/fabtotum_lite06.inst.cfg +++ b/resources/variants/fabtotum_lite06.inst.cfg @@ -5,7 +5,7 @@ definition = fabtotum [metadata] author = FABtotum -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/fabtotum_pro02.inst.cfg b/resources/variants/fabtotum_pro02.inst.cfg index 3e4661ee2c..897bd5aea9 100644 --- a/resources/variants/fabtotum_pro02.inst.cfg +++ b/resources/variants/fabtotum_pro02.inst.cfg @@ -5,7 +5,7 @@ definition = fabtotum [metadata] author = FABtotum -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/fabtotum_pro04.inst.cfg b/resources/variants/fabtotum_pro04.inst.cfg index 3fe140f8be..d27be2f3b8 100644 --- a/resources/variants/fabtotum_pro04.inst.cfg +++ b/resources/variants/fabtotum_pro04.inst.cfg @@ -5,7 +5,7 @@ definition = fabtotum [metadata] author = FABtotum -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/fabtotum_pro06.inst.cfg b/resources/variants/fabtotum_pro06.inst.cfg index fcb5c71ef0..25b9d7c710 100644 --- a/resources/variants/fabtotum_pro06.inst.cfg +++ b/resources/variants/fabtotum_pro06.inst.cfg @@ -5,7 +5,7 @@ definition = fabtotum [metadata] author = FABtotum -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/fabtotum_pro08.inst.cfg b/resources/variants/fabtotum_pro08.inst.cfg index bef04734eb..627e26e2a2 100644 --- a/resources/variants/fabtotum_pro08.inst.cfg +++ b/resources/variants/fabtotum_pro08.inst.cfg @@ -5,7 +5,7 @@ definition = fabtotum [metadata] author = FABtotum -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/felixtec4_0.25.inst.cfg b/resources/variants/felixtec4_0.25.inst.cfg index 7d8bca94b0..3dda15171b 100644 --- a/resources/variants/felixtec4_0.25.inst.cfg +++ b/resources/variants/felixtec4_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = felixtec4dual [metadata] author = kerog777 type = variant -setting_version = 5 +setting_version = 6 hardware_type = nozzle [values] diff --git a/resources/variants/felixtec4_0.35.inst.cfg b/resources/variants/felixtec4_0.35.inst.cfg index f061aa1cbc..db79c3bad4 100644 --- a/resources/variants/felixtec4_0.35.inst.cfg +++ b/resources/variants/felixtec4_0.35.inst.cfg @@ -6,7 +6,7 @@ definition = felixtec4dual [metadata] author = kerog777 type = variant -setting_version = 5 +setting_version = 6 hardware_type = nozzle [values] diff --git a/resources/variants/felixtec4_0.50.inst.cfg b/resources/variants/felixtec4_0.50.inst.cfg index 3c68c42dae..6d52881ee5 100644 --- a/resources/variants/felixtec4_0.50.inst.cfg +++ b/resources/variants/felixtec4_0.50.inst.cfg @@ -7,7 +7,7 @@ definition = felixtec4dual author = kerog777 type = variant hardware_type = nozzle -setting_version = 5 +setting_version = 6 [values] machine_nozzle_size = 0.5 diff --git a/resources/variants/felixtec4_0.70.inst.cfg b/resources/variants/felixtec4_0.70.inst.cfg index 3a52644714..4edeebbc84 100644 --- a/resources/variants/felixtec4_0.70.inst.cfg +++ b/resources/variants/felixtec4_0.70.inst.cfg @@ -7,7 +7,7 @@ definition = felixtec4dual author = kerog777 type = variant hardware_type = nozzle -setting_version = 5 +setting_version = 6 [values] machine_nozzle_size = 0.70 diff --git a/resources/variants/gmax15plus_025_e3d.inst.cfg b/resources/variants/gmax15plus_025_e3d.inst.cfg index 8a6b37067d..a085be0526 100644 --- a/resources/variants/gmax15plus_025_e3d.inst.cfg +++ b/resources/variants/gmax15plus_025_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_04_e3d.inst.cfg b/resources/variants/gmax15plus_04_e3d.inst.cfg index 48fe7ada16..05473dafd2 100644 --- a/resources/variants/gmax15plus_04_e3d.inst.cfg +++ b/resources/variants/gmax15plus_04_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_05_e3d.inst.cfg b/resources/variants/gmax15plus_05_e3d.inst.cfg index 0bb9517da8..f3324382ba 100644 --- a/resources/variants/gmax15plus_05_e3d.inst.cfg +++ b/resources/variants/gmax15plus_05_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_05_jhead.inst.cfg b/resources/variants/gmax15plus_05_jhead.inst.cfg index 6d0b084969..d480b47367 100644 --- a/resources/variants/gmax15plus_05_jhead.inst.cfg +++ b/resources/variants/gmax15plus_05_jhead.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_06_e3d.inst.cfg b/resources/variants/gmax15plus_06_e3d.inst.cfg index 3a372b20c9..732870f044 100644 --- a/resources/variants/gmax15plus_06_e3d.inst.cfg +++ b/resources/variants/gmax15plus_06_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_08_e3d.inst.cfg b/resources/variants/gmax15plus_08_e3d.inst.cfg index 39eeef748e..0c4137a018 100644 --- a/resources/variants/gmax15plus_08_e3d.inst.cfg +++ b/resources/variants/gmax15plus_08_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_10_jhead.inst.cfg b/resources/variants/gmax15plus_10_jhead.inst.cfg index 37d2546d2a..8ae93fc93c 100644 --- a/resources/variants/gmax15plus_10_jhead.inst.cfg +++ b/resources/variants/gmax15plus_10_jhead.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_12_e3d.inst.cfg b/resources/variants/gmax15plus_12_e3d.inst.cfg index 57052dd0f8..016f48c1a3 100644 --- a/resources/variants/gmax15plus_12_e3d.inst.cfg +++ b/resources/variants/gmax15plus_12_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_dual_025_e3d.inst.cfg b/resources/variants/gmax15plus_dual_025_e3d.inst.cfg index 750a5381b3..185166d3b5 100644 --- a/resources/variants/gmax15plus_dual_025_e3d.inst.cfg +++ b/resources/variants/gmax15plus_dual_025_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus_dual [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_dual_04_e3d.inst.cfg b/resources/variants/gmax15plus_dual_04_e3d.inst.cfg index 809227a62c..1c534f13e0 100644 --- a/resources/variants/gmax15plus_dual_04_e3d.inst.cfg +++ b/resources/variants/gmax15plus_dual_04_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus_dual [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_dual_05_e3d.inst.cfg b/resources/variants/gmax15plus_dual_05_e3d.inst.cfg index 05d9a88d54..f1d67509a9 100644 --- a/resources/variants/gmax15plus_dual_05_e3d.inst.cfg +++ b/resources/variants/gmax15plus_dual_05_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus_dual [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_dual_05_jhead.inst.cfg b/resources/variants/gmax15plus_dual_05_jhead.inst.cfg index 54a237e848..bc72c4ae20 100644 --- a/resources/variants/gmax15plus_dual_05_jhead.inst.cfg +++ b/resources/variants/gmax15plus_dual_05_jhead.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus_dual [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_dual_06_e3d.inst.cfg b/resources/variants/gmax15plus_dual_06_e3d.inst.cfg index 39c41be968..545cfcb238 100644 --- a/resources/variants/gmax15plus_dual_06_e3d.inst.cfg +++ b/resources/variants/gmax15plus_dual_06_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus_dual [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_dual_08_e3d.inst.cfg b/resources/variants/gmax15plus_dual_08_e3d.inst.cfg index 1f2d7b9790..1923aac7f7 100644 --- a/resources/variants/gmax15plus_dual_08_e3d.inst.cfg +++ b/resources/variants/gmax15plus_dual_08_e3d.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus_dual [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/gmax15plus_dual_10_jhead.inst.cfg b/resources/variants/gmax15plus_dual_10_jhead.inst.cfg index ee0c8fa948..de0776ad9b 100644 --- a/resources/variants/gmax15plus_dual_10_jhead.inst.cfg +++ b/resources/variants/gmax15plus_dual_10_jhead.inst.cfg @@ -5,7 +5,7 @@ definition = gmax15plus_dual [metadata] author = gcreate -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/imade3d_jellybox_0.4.inst.cfg b/resources/variants/imade3d_jellybox_0.4.inst.cfg index 2bd0f578cf..1623e6755c 100644 --- a/resources/variants/imade3d_jellybox_0.4.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4.inst.cfg @@ -5,7 +5,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg index 6a93cdf13d..2f1cb002b4 100644 --- a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg @@ -5,7 +5,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/tizyx_k25_0.2.inst.cfg b/resources/variants/tizyx_k25_0.2.inst.cfg index cd9f1bcbd1..c616579911 100644 --- a/resources/variants/tizyx_k25_0.2.inst.cfg +++ b/resources/variants/tizyx_k25_0.2.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = tizyx_k25 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/tizyx_k25_0.3.inst.cfg b/resources/variants/tizyx_k25_0.3.inst.cfg index 8b34d23bf6..180d831cca 100644 --- a/resources/variants/tizyx_k25_0.3.inst.cfg +++ b/resources/variants/tizyx_k25_0.3.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = tizyx_k25 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/tizyx_k25_0.4.inst.cfg b/resources/variants/tizyx_k25_0.4.inst.cfg index c147eb0ad0..07ef3ca8ed 100644 --- a/resources/variants/tizyx_k25_0.4.inst.cfg +++ b/resources/variants/tizyx_k25_0.4.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = tizyx_k25 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/tizyx_k25_0.5.inst.cfg b/resources/variants/tizyx_k25_0.5.inst.cfg index 14102fb2c7..a09a207e7a 100644 --- a/resources/variants/tizyx_k25_0.5.inst.cfg +++ b/resources/variants/tizyx_k25_0.5.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = tizyx_k25 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/tizyx_k25_0.6.inst.cfg b/resources/variants/tizyx_k25_0.6.inst.cfg index 00f69f71f4..751cf8e794 100644 --- a/resources/variants/tizyx_k25_0.6.inst.cfg +++ b/resources/variants/tizyx_k25_0.6.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = tizyx_k25 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/tizyx_k25_0.8.inst.cfg b/resources/variants/tizyx_k25_0.8.inst.cfg index c80f5e70d2..cca0986ed5 100644 --- a/resources/variants/tizyx_k25_0.8.inst.cfg +++ b/resources/variants/tizyx_k25_0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = tizyx_k25 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/tizyx_k25_1.0.inst.cfg b/resources/variants/tizyx_k25_1.0.inst.cfg index ce8593b1e8..d99948c26c 100644 --- a/resources/variants/tizyx_k25_1.0.inst.cfg +++ b/resources/variants/tizyx_k25_1.0.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = tizyx_k25 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_0.25.inst.cfg b/resources/variants/ultimaker2_0.25.inst.cfg index a58b4d9a56..004cdaf671 100644 --- a/resources/variants/ultimaker2_0.25.inst.cfg +++ b/resources/variants/ultimaker2_0.25.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_0.4.inst.cfg b/resources/variants/ultimaker2_0.4.inst.cfg index 46845d974e..607d0c4f29 100644 --- a/resources/variants/ultimaker2_0.4.inst.cfg +++ b/resources/variants/ultimaker2_0.4.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_0.6.inst.cfg b/resources/variants/ultimaker2_0.6.inst.cfg index f9ab1f1358..1ddc07817b 100644 --- a/resources/variants/ultimaker2_0.6.inst.cfg +++ b/resources/variants/ultimaker2_0.6.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_0.8.inst.cfg b/resources/variants/ultimaker2_0.8.inst.cfg index 3d9c273783..938b472c2c 100644 --- a/resources/variants/ultimaker2_0.8.inst.cfg +++ b/resources/variants/ultimaker2_0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_0.25.inst.cfg b/resources/variants/ultimaker2_extended_0.25.inst.cfg index f5471fc505..45546c55aa 100644 --- a/resources/variants/ultimaker2_extended_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.25.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_0.4.inst.cfg b/resources/variants/ultimaker2_extended_0.4.inst.cfg index a7d03f2408..fb3d8c1116 100644 --- a/resources/variants/ultimaker2_extended_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.4.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_0.6.inst.cfg b/resources/variants/ultimaker2_extended_0.6.inst.cfg index 25c180e07e..50f7dc04c6 100644 --- a/resources/variants/ultimaker2_extended_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.6.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_0.8.inst.cfg b/resources/variants/ultimaker2_extended_0.8.inst.cfg index c33f483da3..178737dbd5 100644 --- a/resources/variants/ultimaker2_extended_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg index c65940251c..7e67824d16 100644 --- a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg index 7493f2af44..1150c6127c 100644 --- a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg index c4a3ab6340..fbdef77918 100644 --- a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg index e77ec2a5c2..106537e0a7 100644 --- a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_extended_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_plus_0.25.inst.cfg b/resources/variants/ultimaker2_plus_0.25.inst.cfg index 7fd7f3980f..c07b80c246 100644 --- a/resources/variants/ultimaker2_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.25.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_plus_0.4.inst.cfg b/resources/variants/ultimaker2_plus_0.4.inst.cfg index 3b54e0cdef..623fffbeb9 100644 --- a/resources/variants/ultimaker2_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.4.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_plus_0.6.inst.cfg b/resources/variants/ultimaker2_plus_0.6.inst.cfg index d8fea055e5..b57fa81dfe 100644 --- a/resources/variants/ultimaker2_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.6.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker2_plus_0.8.inst.cfg b/resources/variants/ultimaker2_plus_0.8.inst.cfg index 3ae902ac2f..702ec2ef31 100644 --- a/resources/variants/ultimaker2_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker2_plus [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_aa0.25.inst.cfg b/resources/variants/ultimaker3_aa0.25.inst.cfg index b46fdf5dfb..fc8cc3b090 100644 --- a/resources/variants/ultimaker3_aa0.25.inst.cfg +++ b/resources/variants/ultimaker3_aa0.25.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index 56740233dd..308bed6fcb 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_aa04.inst.cfg b/resources/variants/ultimaker3_aa04.inst.cfg index ce91e89d26..25230cd30b 100644 --- a/resources/variants/ultimaker3_aa04.inst.cfg +++ b/resources/variants/ultimaker3_aa04.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index ace0bf3a94..5ccf2816ff 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_bb04.inst.cfg b/resources/variants/ultimaker3_bb04.inst.cfg index d571cabc9b..d919e5aab7 100644 --- a/resources/variants/ultimaker3_bb04.inst.cfg +++ b/resources/variants/ultimaker3_bb04.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_extended_aa0.25.inst.cfg b/resources/variants/ultimaker3_extended_aa0.25.inst.cfg index 714b017653..ce0f20fa7e 100644 --- a/resources/variants/ultimaker3_extended_aa0.25.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.25.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index f72c96b551..f209508875 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_extended_aa04.inst.cfg b/resources/variants/ultimaker3_extended_aa04.inst.cfg index f354784fc6..714d19051f 100644 --- a/resources/variants/ultimaker3_extended_aa04.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa04.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index fe760c93b8..528c7f70ec 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker3_extended_bb04.inst.cfg b/resources/variants/ultimaker3_extended_bb04.inst.cfg index 742dc9896e..5ee562ee38 100644 --- a/resources/variants/ultimaker3_extended_bb04.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb04.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker3_extended [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker_s5_aa0.25.inst.cfg b/resources/variants/ultimaker_s5_aa0.25.inst.cfg index 643513faad..ebdb096b6f 100644 --- a/resources/variants/ultimaker_s5_aa0.25.inst.cfg +++ b/resources/variants/ultimaker_s5_aa0.25.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker_s5_aa0.8.inst.cfg b/resources/variants/ultimaker_s5_aa0.8.inst.cfg index eca8c400d0..d8ff1c020e 100644 --- a/resources/variants/ultimaker_s5_aa0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_aa0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker_s5_aa04.inst.cfg b/resources/variants/ultimaker_s5_aa04.inst.cfg index b5b694d0c1..ac377e3e78 100644 --- a/resources/variants/ultimaker_s5_aa04.inst.cfg +++ b/resources/variants/ultimaker_s5_aa04.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker_s5_aluminum.inst.cfg b/resources/variants/ultimaker_s5_aluminum.inst.cfg index 1018b7e5ab..ca457bd7e7 100644 --- a/resources/variants/ultimaker_s5_aluminum.inst.cfg +++ b/resources/variants/ultimaker_s5_aluminum.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = buildplate diff --git a/resources/variants/ultimaker_s5_bb0.8.inst.cfg b/resources/variants/ultimaker_s5_bb0.8.inst.cfg index c1c5c1a10b..bb7f2d1420 100644 --- a/resources/variants/ultimaker_s5_bb0.8.inst.cfg +++ b/resources/variants/ultimaker_s5_bb0.8.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker_s5_bb04.inst.cfg b/resources/variants/ultimaker_s5_bb04.inst.cfg index b5ff8d51f6..cda1036507 100644 --- a/resources/variants/ultimaker_s5_bb04.inst.cfg +++ b/resources/variants/ultimaker_s5_bb04.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker_s5_cc06.inst.cfg b/resources/variants/ultimaker_s5_cc06.inst.cfg index 7adf7ab7a0..afbeb44462 100644 --- a/resources/variants/ultimaker_s5_cc06.inst.cfg +++ b/resources/variants/ultimaker_s5_cc06.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = nozzle diff --git a/resources/variants/ultimaker_s5_glass.inst.cfg b/resources/variants/ultimaker_s5_glass.inst.cfg index d74eb3c6c9..e7431c933f 100644 --- a/resources/variants/ultimaker_s5_glass.inst.cfg +++ b/resources/variants/ultimaker_s5_glass.inst.cfg @@ -4,7 +4,7 @@ version = 4 definition = ultimaker_s5 [metadata] -setting_version = 5 +setting_version = 6 type = variant hardware_type = buildplate From 265a1b3fa0bf472da347328a46996df7f11a2527 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 27 Dec 2018 16:50:05 +0100 Subject: [PATCH 0998/1039] Add version upgrade plug-in for 4.0 to 4.1 This currently only updates the stack files, but all files have to be upgraded because of that stupid setting_version. Contributes to issue CURA-5848. --- .../VersionUpgrade34to35.py | 4 +- .../VersionUpgrade34to35/plugin.json | 2 +- .../VersionUpgrade40to41.py | 86 +++++++++++++++++++ .../VersionUpgrade40to41/__init__.py | 39 +++++++++ .../VersionUpgrade40to41/plugin.json | 8 ++ 5 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade40to41/__init__.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade40to41/plugin.json diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py b/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py index d930b6e217..8e45d7cf73 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/VersionUpgrade34to35.py @@ -63,9 +63,9 @@ _RENAMED_MATERIAL_PROFILES = { ## Upgrades configurations from the state they were in at version 3.4 to the # state they should be in at version 3.5. class VersionUpgrade34to35(VersionUpgrade): - ## Gets the version number from a CFG file in Uranium's 3.3 format. + ## Gets the version number from a CFG file in Uranium's 3.4 format. # - # Since the format may change, this is implemented for the 3.3 format only + # Since the format may change, this is implemented for the 3.4 format only # and needs to be included in the version upgrade system rather than # globally in Uranium. # diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json b/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json index 02635ec606..71b13ee5a9 100644 --- a/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json +++ b/plugins/VersionUpgrade/VersionUpgrade34to35/plugin.json @@ -1,4 +1,4 @@ - { +{ "name": "Version Upgrade 3.4 to 3.5", "author": "Ultimaker B.V.", "version": "1.0.1", diff --git a/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py b/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py new file mode 100644 index 0000000000..ac54b7c8e0 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade40to41/VersionUpgrade40to41.py @@ -0,0 +1,86 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import configparser +import io +from typing import Dict, List, Tuple + +from UM.VersionUpgrade import VersionUpgrade + +_renamed_quality_profiles = { + "gmax15plus_pla_dual_normal": "gmax15plus_global_dual_normal", + "gmax15plus_pla_dual_thick": "gmax15plus_global_dual_thick", + "gmax15plus_pla_dual_thin": "gmax15plus_global_dual_thin", + "gmax15plus_pla_dual_very_thick": "gmax15plus_global_dual_very_thick", + "gmax15plus_pla_normal": "gmax15plus_global_normal", + "gmax15plus_pla_thick": "gmax15plus_global_thick", + "gmax15plus_pla_thin": "gmax15plus_global_thin", + "gmax15plus_pla_very_thick": "gmax15plus_global_very_thick" +} # type: Dict[str, str] + +## Upgrades configurations from the state they were in at version 4.0 to the +# state they should be in at version 4.1. +class VersionUpgrade40to41(VersionUpgrade): + ## Gets the version number from a CFG file in Uranium's 4.0 format. + # + # Since the format may change, this is implemented for the 4.0 format only + # and needs to be included in the version upgrade system rather than + # globally in Uranium. + # + # \param serialised The serialised form of a CFG file. + # \return The version number stored in the CFG file. + # \raises ValueError The format of the version number in the file is + # incorrect. + # \raises KeyError The format of the file is incorrect. + def getCfgVersion(self, serialised: str) -> int: + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialised) + format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. + setting_version = int(parser.get("metadata", "setting_version", fallback = "0")) + return format_version * 1000000 + setting_version + + ## Upgrades instance containers to have the new version + # number. + def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialized) + + # Update version number. + parser["general"]["version"] = "4" + parser["metadata"]["setting_version"] = "6" + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] + + ## Upgrades Preferences to have the new version number. + def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialized) + + # Update version number. + parser["general"]["version"] = "6" + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "6" + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] + + ## Upgrades stacks to have the new version number. + def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]: + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialized) + + # Update version number. + parser["general"]["version"] = "4" + parser["metadata"]["setting_version"] = "6" + + #Update the name of the quality profile. + if parser["containers"]["4"] in _renamed_quality_profiles: + parser["containers"]["4"] = _renamed_quality_profiles[parser["containers"]["4"]] + + result = io.StringIO() + parser.write(result) + return [filename], [result.getvalue()] \ No newline at end of file diff --git a/plugins/VersionUpgrade/VersionUpgrade40to41/__init__.py b/plugins/VersionUpgrade/VersionUpgrade40to41/__init__.py new file mode 100644 index 0000000000..757a7a51c0 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade40to41/__init__.py @@ -0,0 +1,39 @@ +# Copyright (c) 2018 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from typing import Any, Dict, TYPE_CHECKING + +from . import VersionUpgrade40to41 + +if TYPE_CHECKING: + from UM.Application import Application + +upgrade = VersionUpgrade40to41.VersionUpgrade40to41() + +def getMetaData() -> Dict[str, Any]: + return { + "version_upgrade": { + # From To Upgrade function + ("machine_stack", 4000005): ("machine_stack", 4000006, upgrade.upgradeStack), + ("extruder_train", 4000005): ("extruder_train", 4000006, upgrade.upgradeStack), + ("preferences", 6000005): ("preferences", 6000006, upgrade.upgradePreferences), + ("definition_changes", 4000005): ("definition_changes", 4000006, upgrade.upgradeInstanceContainer), + ("quality_changes", 4000005): ("quality_changes", 4000006, upgrade.upgradeInstanceContainer), + ("quality", 4000005): ("quality", 4000006, upgrade.upgradeInstanceContainer), + ("user", 4000005): ("user", 4000006, upgrade.upgradeInstanceContainer), + }, + "sources": { + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} + }, + "extruder_train": { + "get_version": upgrade.getCfgVersion, + "location": {"./extruders"} + } + } + } + + +def register(app: "Application") -> Dict[str, Any]: + return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade40to41/plugin.json b/plugins/VersionUpgrade/VersionUpgrade40to41/plugin.json new file mode 100644 index 0000000000..b1c6d75669 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade40to41/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Version Upgrade 4.0 to 4.1", + "author": "Ultimaker B.V.", + "version": "1.0.1", + "description": "Upgrades configurations from Cura 4.0 to Cura 4.1.", + "api": "6.0", + "i18n-catalog": "cura" +} From 52d97dfbd21bfc0d190955734163a702cefdfe86 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 09:32:16 +0100 Subject: [PATCH 0999/1039] Change back the behavior of the output device selector to the old way Although the new way was discussed with our UXers, we got a number of reports that it was confusing. I also accidentally started a print while using it --- resources/qml/ActionPanel/OutputDevicesActionButton.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/ActionPanel/OutputDevicesActionButton.qml b/resources/qml/ActionPanel/OutputDevicesActionButton.qml index fc0f9b8303..3bfaab0fc1 100644 --- a/resources/qml/ActionPanel/OutputDevicesActionButton.qml +++ b/resources/qml/ActionPanel/OutputDevicesActionButton.qml @@ -93,7 +93,6 @@ Item onClicked: { UM.OutputDeviceManager.setActiveDevice(model.id) - widget.requestWriteToDevice() popup.close() } } From a16e40650754f45f178cdc33f0ef9076863cd55b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 11:01:30 +0100 Subject: [PATCH 1000/1039] Properly display the full type + brand of unknown material CURA-6033 --- .../src/ClusterUM3OutputDevice.py | 3 ++- .../ConfigurationMenu/ConfigurationItem.qml | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index bebccc54e3..5e8aaa9fa9 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -620,8 +620,9 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): if material_group_list is None: material_name = i18n_catalog.i18nc("@label:material", "Empty") if len(material_data.get("guid", "")) == 0 \ else i18n_catalog.i18nc("@label:material", "Unknown") + return MaterialOutputModel(guid = material_data.get("guid", ""), - type = material_data.get("type", ""), + type = material_data.get("material", ""), color = material_data.get("color", ""), brand = material_data.get("brand", ""), name = material_data.get("name", material_name) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 75a1b21186..51ba77d012 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -105,10 +105,22 @@ Button for (var index in extruderConfigurations) { var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : "" - if (name == "" || name == "Unknown") { - unknownMaterials.push(extruderConfigurations[index].material.brand ? extruderConfigurations[index].material.brand : "Unknown Brand") + var materialType = extruderConfigurations[index].material.type + if (extruderConfigurations[index].material.type == "") + { + materialType = "Unknown" + } + + var brand = extruderConfigurations[index].material.brand + if (brand == "") + { + brand = "Unknown" + } + + name = materialType + " (" + brand + ")" + unknownMaterials.push(name) } } From c333899d18dd7ecb548ca1066e7eb22127c66dff Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 11:09:10 +0100 Subject: [PATCH 1001/1039] Fix reference to renamed file --- plugins/SimulationView/SimulationView.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index ae01b7cdb0..3b2db2efac 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -50,7 +50,7 @@ catalog = i18nCatalog("cura") ## View used to display g-code paths. class SimulationView(CuraView): - # Must match SimulationView.qml + # Must match SimulationViewMenuComponent.qml LAYER_VIEW_TYPE_MATERIAL_TYPE = 0 LAYER_VIEW_TYPE_LINE_TYPE = 1 LAYER_VIEW_TYPE_FEEDRATE = 2 From fd9b29fee2558e9e387d2cdb9f74fed5c69bbf53 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 11:09:39 +0100 Subject: [PATCH 1002/1039] Rename printersModel to GlobalStacksModel This is a better description for the model anyway. CURA-6011 --- cura/CuraApplication.py | 4 ++-- cura/{PrintersModel.py => GlobalStacksModel.py} | 3 ++- resources/qml/Menus/LocalPrinterMenu.qml | 2 +- resources/qml/Menus/NetworkPrinterMenu.qml | 2 +- resources/qml/PrinterSelector/MachineSelectorList.qml | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) rename cura/{PrintersModel.py => GlobalStacksModel.py} (97%) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 905c367cd1..0edf6c1899 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -51,7 +51,7 @@ from cura.Arranging.ArrangeObjectsJob import ArrangeObjectsJob from cura.Arranging.ArrangeObjectsAllBuildPlatesJob import ArrangeObjectsAllBuildPlatesJob from cura.Arranging.ShapeArray import ShapeArray from cura.MultiplyObjectsJob import MultiplyObjectsJob -from cura.PrintersModel import PrintersModel +from cura.GlobalStacksModel import GlobalStacksModel from cura.Scene.ConvexHullDecorator import ConvexHullDecorator from cura.Operations.SetParentOperation import SetParentOperation from cura.Scene.SliceableObjectDecorator import SliceableObjectDecorator @@ -971,7 +971,7 @@ class CuraApplication(QtApplication): qmlRegisterType(MultiBuildPlateModel, "Cura", 1, 0, "MultiBuildPlateModel") qmlRegisterType(InstanceContainer, "Cura", 1, 0, "InstanceContainer") qmlRegisterType(ExtrudersModel, "Cura", 1, 0, "ExtrudersModel") - qmlRegisterType(PrintersModel, "Cura", 1, 0, "PrintersModel") + qmlRegisterType(GlobalStacksModel, "Cura", 1, 0, "GlobalStacksModel") qmlRegisterType(FavoriteMaterialsModel, "Cura", 1, 0, "FavoriteMaterialsModel") qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel") diff --git a/cura/PrintersModel.py b/cura/GlobalStacksModel.py similarity index 97% rename from cura/PrintersModel.py rename to cura/GlobalStacksModel.py index 8b5d2f6cc9..8ae6b05291 100644 --- a/cura/PrintersModel.py +++ b/cura/GlobalStacksModel.py @@ -12,7 +12,8 @@ from cura.PrinterOutputDevice import ConnectionType from cura.Settings.GlobalStack import GlobalStack -class PrintersModel(ListModel): + +class GlobalStacksModel(ListModel): NameRole = Qt.UserRole + 1 IdRole = Qt.UserRole + 2 HasRemoteConnectionRole = Qt.UserRole + 3 diff --git a/resources/qml/Menus/LocalPrinterMenu.qml b/resources/qml/Menus/LocalPrinterMenu.qml index e7c5037814..4da1de2abf 100644 --- a/resources/qml/Menus/LocalPrinterMenu.qml +++ b/resources/qml/Menus/LocalPrinterMenu.qml @@ -9,7 +9,7 @@ import Cura 1.0 as Cura Instantiator { - model: Cura.PrintersModel {} + model: Cura.GlobalStacksModel {} MenuItem { diff --git a/resources/qml/Menus/NetworkPrinterMenu.qml b/resources/qml/Menus/NetworkPrinterMenu.qml index 8c607bc5ae..3cb0aae016 100644 --- a/resources/qml/Menus/NetworkPrinterMenu.qml +++ b/resources/qml/Menus/NetworkPrinterMenu.qml @@ -9,7 +9,7 @@ import Cura 1.0 as Cura Instantiator { - model: Cura.PrintersModel {} + model: Cura.GlobalStacksModel {} MenuItem { text: model.metadata["connect_group_name"] diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index ea8068fa95..62ecf48cc5 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -11,7 +11,7 @@ ListView { id: listView height: childrenRect.height - model: Cura.PrintersModel {} + model: Cura.GlobalStacksModel {} section.property: "hasRemoteConnection" section.delegate: Label From 1277fbabc588634a78b6544f10abdcbc16f9c8ad Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 11:15:03 +0100 Subject: [PATCH 1003/1039] Fix connection type not always being seen correctly CURA-6011 --- cura/GlobalStacksModel.py | 3 +-- cura/Settings/MachineManager.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cura/GlobalStacksModel.py b/cura/GlobalStacksModel.py index 8ae6b05291..b0052900cd 100644 --- a/cura/GlobalStacksModel.py +++ b/cura/GlobalStacksModel.py @@ -54,9 +54,8 @@ class GlobalStacksModel(ListModel): container_stacks = ContainerRegistry.getInstance().findContainerStacks(type = "machine") for container_stack in container_stacks: - connection_type = container_stack.getMetaDataEntry("connection_type") + connection_type = int(container_stack.getMetaDataEntry("connection_type", "-1")) has_remote_connection = connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value] - if container_stack.getMetaDataEntry("hidden", False) in ["True", True]: continue diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 2185bbce9d..5b99b73b3c 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -527,7 +527,7 @@ class MachineManager(QObject): @pyqtProperty(bool, notify = printerConnectedStatusChanged) def activeMachineHasRemoteConnection(self) -> bool: if self._global_container_stack: - connection_type = self._global_container_stack.getMetaDataEntry("connection_type") + connection_type = int(self._global_container_stack.getMetaDataEntry("connection_type", "-1")) return connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value] return False From 89040b6d8f9957d41b92c7b88bc78f6fb25fca2e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 11:18:17 +0100 Subject: [PATCH 1004/1039] Remove unneeded nameChanged signal connection CURA-6011 --- cura/GlobalStacksModel.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cura/GlobalStacksModel.py b/cura/GlobalStacksModel.py index b0052900cd..3ad110b7d0 100644 --- a/cura/GlobalStacksModel.py +++ b/cura/GlobalStacksModel.py @@ -42,14 +42,8 @@ class GlobalStacksModel(ListModel): if isinstance(container, GlobalStack): self._update() - ## Handler for container name change events. - def _onContainerNameChanged(self): - self._update() - def _update(self) -> None: items = [] - for container in self._container_stacks: - container.nameChanged.disconnect(self._onContainerNameChanged) container_stacks = ContainerRegistry.getInstance().findContainerStacks(type = "machine") From d9d1c93bd08d262a52aafe61024498ea4421f9a3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 11:25:23 +0100 Subject: [PATCH 1005/1039] Use "NotConnected" as default for the connection state CURA-6011 --- cura/GlobalStacksModel.py | 2 +- cura/PrinterOutputDevice.py | 4 ++-- cura/Settings/MachineManager.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cura/GlobalStacksModel.py b/cura/GlobalStacksModel.py index 3ad110b7d0..939809151d 100644 --- a/cura/GlobalStacksModel.py +++ b/cura/GlobalStacksModel.py @@ -48,7 +48,7 @@ class GlobalStacksModel(ListModel): container_stacks = ContainerRegistry.getInstance().findContainerStacks(type = "machine") for container_stack in container_stacks: - connection_type = int(container_stack.getMetaDataEntry("connection_type", "-1")) + connection_type = int(container_stack.getMetaDataEntry("connection_type", ConnectionType.NotConnected.value)) has_remote_connection = connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value] if container_stack.getMetaDataEntry("hidden", False) in ["True", True]: continue diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index aeeb0381b2..99e8835c2f 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -36,7 +36,7 @@ class ConnectionState(IntEnum): class ConnectionType(IntEnum): - Unknown = 0 + NotConnected = 0 UsbConnection = 1 NetworkConnection = 2 CloudConnection = 3 @@ -74,7 +74,7 @@ class PrinterOutputDevice(QObject, OutputDevice): # Signal to indicate that the configuration of one of the printers has changed. uniqueConfigurationsChanged = pyqtSignal() - def __init__(self, device_id: str, connection_type: "ConnectionType" = ConnectionType.Unknown, parent: QObject = None) -> None: + def __init__(self, device_id: str, connection_type: "ConnectionType" = ConnectionType.NotConnected, parent: QObject = None) -> None: super().__init__(device_id = device_id, parent = parent) # type: ignore # MyPy complains with the multiple inheritance self._printers = [] # type: List[PrinterOutputModel] diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 5b99b73b3c..32b83ead28 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -527,7 +527,7 @@ class MachineManager(QObject): @pyqtProperty(bool, notify = printerConnectedStatusChanged) def activeMachineHasRemoteConnection(self) -> bool: if self._global_container_stack: - connection_type = int(self._global_container_stack.getMetaDataEntry("connection_type", "-1")) + connection_type = int(self._global_container_stack.getMetaDataEntry("connection_type", ConnectionType.NotConnected.value)) return connection_type in [ConnectionType.NetworkConnection.value, ConnectionType.CloudConnection.value] return False From b5c406dc43930f2eca4fe866e07cc96cbb237b98 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:11:24 +0100 Subject: [PATCH 1006/1039] Make default font size slightly smaller In accordance with the designs. Contributes to issue CURA-6025. --- resources/themes/cura-light/theme.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 5be1de1cfb..b14fdf0b4f 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -25,17 +25,17 @@ "family": "Noto Sans" }, "default": { - "size": 1.0, + "size": 0.95, "weight": 40, "family": "Noto Sans" }, "default_bold": { - "size": 1.0, + "size": 0.95, "weight": 60, "family": "Noto Sans" }, "default_italic": { - "size": 1.0, + "size": 0.95, "weight": 40, "italic": true, "family": "Noto Sans" From 8dbebaa23c0ba8132e0245a62221cababb6bf3b4 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 13:14:08 +0100 Subject: [PATCH 1007/1039] Ensure that the machine selector list scales properly The old implementation directly listend to the height (instead of childrenRect). This caused issues, since other things apart from adding / removing machines could influence the height. CURA-6060 --- resources/qml/PrinterSelector/MachineSelector.qml | 8 +++++--- resources/qml/PrinterSelector/MachineSelectorList.qml | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 28e01c7ae9..9f0d3b4ac6 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -93,14 +93,16 @@ Cura.ExpandablePopup width: scroll.width - scroll.leftPadding - scroll.rightPadding property real maximumHeight: UM.Theme.getSize("machine_selector_widget_content").height - buttonRow.height - onHeightChanged: + // We use an extra property here, since we only want to to be informed about the content size changes. + onContentHeightChanged: { - scroll.height = Math.min(height, maximumHeight) + scroll.height = Math.min(contentHeight, maximumHeight) popup.height = scroll.height + buttonRow.height } + Component.onCompleted: { - scroll.height = Math.min(height, maximumHeight) + scroll.height = Math.min(contentHeight, maximumHeight) popup.height = scroll.height + buttonRow.height } diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 62ecf48cc5..604e0f668d 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -10,9 +10,9 @@ import Cura 1.0 as Cura ListView { id: listView - height: childrenRect.height model: Cura.GlobalStacksModel {} section.property: "hasRemoteConnection" + property real contentHeight: childrenRect.height section.delegate: Label { From c6fb0d70af8877f840f6cbbc8348eaa4dc63b8de Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:22:53 +0100 Subject: [PATCH 1008/1039] Use medium font size for everything in stage menu Except the material manufacturer, which should remain default. Contributes to issue CURA-6025. --- plugins/SimulationView/SimulationViewMenuComponent.qml | 4 ++-- resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml | 4 ++-- resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml | 4 ++++ resources/qml/ViewsSelector.qml | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/SimulationView/SimulationViewMenuComponent.qml b/plugins/SimulationView/SimulationViewMenuComponent.qml index fe32fe9eb1..4c952d4c43 100644 --- a/plugins/SimulationView/SimulationViewMenuComponent.qml +++ b/plugins/SimulationView/SimulationViewMenuComponent.qml @@ -43,7 +43,7 @@ Cura.ExpandableComponent verticalAlignment: Text.AlignVCenter height: parent.height elide: Text.ElideRight - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text_medium") renderType: Text.NativeRendering } @@ -60,7 +60,7 @@ Cura.ExpandableComponent } height: parent.height elide: Text.ElideRight - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") renderType: Text.NativeRendering } diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml index 207b65afc7..3001efac54 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml @@ -86,7 +86,7 @@ Cura.ExpandablePopup { text: model.material elide: Text.ElideRight - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") renderType: Text.NativeRendering @@ -107,7 +107,7 @@ Cura.ExpandablePopup { text: catalog.i18nc("@label", "Select configuration") elide: Text.ElideRight - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") renderType: Text.NativeRendering diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index 94da5bdd6f..5ae9488cd3 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -29,6 +29,7 @@ RowLayout } return "" } + font: UM.Theme.getFont("medium") UM.SettingPropertyProvider { @@ -43,6 +44,7 @@ RowLayout { source: UM.Theme.getIcon("category_infill") text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%" + font: UM.Theme.getFont("medium") UM.SettingPropertyProvider { @@ -57,6 +59,7 @@ RowLayout { source: UM.Theme.getIcon("category_support") text: supportEnabled.properties.value == "True" ? enabledText : disabledText + font: UM.Theme.getFont("medium") UM.SettingPropertyProvider { @@ -71,6 +74,7 @@ RowLayout { source: UM.Theme.getIcon("category_adhesion") text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText + font: UM.Theme.getFont("medium") UM.SettingPropertyProvider { diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index 1f5a0bbc85..da9693be6e 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -51,7 +51,7 @@ Cura.ExpandablePopup verticalAlignment: Text.AlignVCenter height: parent.height elide: Text.ElideRight - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text_medium") renderType: Text.NativeRendering } From d020a49b751d885ff366f648c1d1b0d0c46ee003 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:26:55 +0100 Subject: [PATCH 1009/1039] Assign a font to Marketplace button Otherwise the font face may be different, and the theme has no effect on the font. Contributes to issue CURA-6025. --- resources/qml/MainWindow/MainWindowHeader.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/MainWindow/MainWindowHeader.qml b/resources/qml/MainWindow/MainWindowHeader.qml index e3b7e199fa..3e296ead40 100644 --- a/resources/qml/MainWindow/MainWindowHeader.qml +++ b/resources/qml/MainWindow/MainWindowHeader.qml @@ -102,6 +102,7 @@ Item { id: label text: marketplaceButton.text + font: UM.Theme.getFont("default") color: marketplaceButton.hovered ? UM.Theme.getColor("main_window_header_background") : UM.Theme.getColor("primary_text") width: contentWidth verticalAlignment: Text.AlignVCenter From c74d6fc1e7c6fe01a4e03719861e580e5bbc4640 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:32:49 +0100 Subject: [PATCH 1010/1039] Make printerTypeLabel smaller More in line with the theme. Contributes to issue CURA-6025. --- resources/qml/PrinterTypeLabel.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrinterTypeLabel.qml b/resources/qml/PrinterTypeLabel.qml index cfc9e56513..b445228e83 100644 --- a/resources/qml/PrinterTypeLabel.qml +++ b/resources/qml/PrinterTypeLabel.qml @@ -29,7 +29,7 @@ Item anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter renderType: Text.NativeRendering - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("small") color: UM.Theme.getColor("text") } } \ No newline at end of file From 8d8133d521d546b19bf32c2fa58a96894a7d152e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:34:57 +0100 Subject: [PATCH 1011/1039] Make synced material name larger than the rest In accordance with the designs. Contributes to issue CURA-6025. --- .../qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml index a344e31d4f..db6a97aa65 100644 --- a/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/PrintCoreConfiguration.qml @@ -39,7 +39,7 @@ Row text: printCoreConfiguration.material.brand ? printCoreConfiguration.material.name : " " //Use space so that the height is still correct. renderType: Text.NativeRendering elide: Text.ElideRight - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") } Label From 60a5438db6b10942357ba77d40b9d61202780886 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:43:31 +0100 Subject: [PATCH 1012/1039] Make expandable component header fonts larger As per the design. Contributes to issue CURA-6025. --- resources/qml/ExpandableComponentHeader.qml | 2 +- resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml | 2 +- resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml | 2 +- resources/qml/ViewsSelector.qml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/ExpandableComponentHeader.qml b/resources/qml/ExpandableComponentHeader.qml index 09ea262c82..94066340e3 100644 --- a/resources/qml/ExpandableComponentHeader.qml +++ b/resources/qml/ExpandableComponentHeader.qml @@ -25,7 +25,7 @@ Cura.RoundedRectangle { id: headerLabel text: "" - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter color: UM.Theme.getColor("small_button_text") diff --git a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml index a3ed5040b7..18409dd43a 100644 --- a/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml @@ -16,7 +16,7 @@ Item { id: header text: catalog.i18nc("@header", "Configurations") - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("small_button_text") height: contentHeight renderType: Text.NativeRendering diff --git a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml index 4d6d80c1b4..5cecda4e5c 100644 --- a/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml +++ b/resources/qml/Menus/ConfigurationMenu/CustomConfiguration.qml @@ -23,7 +23,7 @@ Item { id: header text: catalog.i18nc("@header", "Custom") - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("small_button_text") height: contentHeight renderType: Text.NativeRendering diff --git a/resources/qml/ViewsSelector.qml b/resources/qml/ViewsSelector.qml index da9693be6e..0e9be649db 100644 --- a/resources/qml/ViewsSelector.qml +++ b/resources/qml/ViewsSelector.qml @@ -68,7 +68,7 @@ Cura.ExpandablePopup } height: parent.height elide: Text.ElideRight - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") renderType: Text.NativeRendering } From 4be228a4e2e46e59a53c446224e6850518cba176 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 31 Dec 2018 13:43:47 +0100 Subject: [PATCH 1013/1039] Fix merging & grouping I made a boo-boo while adding typing. CURA-6058 --- cura/CuraApplication.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 07464c97ca..186d30fe89 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -1404,7 +1404,7 @@ class CuraApplication(QtApplication): selected_nodes = Selection.getAllSelectedObjects().copy() for node in selected_nodes: parent = node.getParent() - if parent is not None and node in selected_nodes and not node.callDecoration("isGroup"): + if parent is not None and parent in selected_nodes and not parent.callDecoration("isGroup"): Selection.remove(node) # Move selected nodes into the group-node From 44f21b37ac613fc229e32fa507077b1641d2fede Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:49:03 +0100 Subject: [PATCH 1014/1039] Make labels on left side of recommended mode larger Contributes to issue CURA-6025. --- .../Recommended/RecommendedAdhesionSelector.qml | 1 + .../Recommended/RecommendedInfillDensitySelector.qml | 1 + .../Recommended/RecommendedQualityProfileSelector.qml | 1 + .../Recommended/RecommendedSupportSelector.qml | 1 + 4 files changed, 4 insertions(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml index a5f35f333b..941199707c 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml @@ -26,6 +26,7 @@ Item anchors.left: parent.left source: UM.Theme.getIcon("category_adhesion") text: catalog.i18nc("@label", "Adhesion") + font: UM.Theme.getFont("medium") width: labelColumnWidth } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index 0da53cc1c1..b733a576e4 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -63,6 +63,7 @@ Item anchors.left: parent.left source: UM.Theme.getIcon("category_infill") text: catalog.i18nc("@label", "Infill") + " (%)" + font: UM.Theme.getFont("medium") width: labelColumnWidth } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index 1e71134404..af145410b5 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -173,6 +173,7 @@ Item id: qualityRowTitle source: UM.Theme.getIcon("category_layer_height") text: catalog.i18nc("@label", "Layer Height") + font: UM.Theme.getFont("medium") anchors.left: parent.left anchors.right: customisedSettings.left } diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml index 87fb664713..0e834ac4df 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml @@ -27,6 +27,7 @@ Item visible: enableSupportCheckBox.visible source: UM.Theme.getIcon("category_support") text: catalog.i18nc("@label", "Support") + font: UM.Theme.getFont("medium") width: labelColumnWidth } From 4be9fbb75ec6f31d51fbed3e44086dc756b22f08 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 13:57:49 +0100 Subject: [PATCH 1015/1039] Give tick marks a font Otherwise it uses your system's font, which is not consistent. Contributes to issue CURA-6025. --- .../Recommended/RecommendedInfillDensitySelector.qml | 1 + .../Recommended/RecommendedQualityProfileSelector.qml | 1 + 2 files changed, 2 insertions(+) diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml index b733a576e4..19f199fea6 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml @@ -141,6 +141,7 @@ Item Label { text: index + font: UM.Theme.getFont("default") visible: (index % 20) == 0 // Only show steps of 20% anchors.horizontalCenter: parent.horizontalCenter y: UM.Theme.getSize("thin_margin").height diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml index af145410b5..801e76382b 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml @@ -272,6 +272,7 @@ Item return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2)) } } + font: UM.Theme.getFont("default") } } } From cf6cce5df0f4da01adbb8631d3349d4b8e8d2d33 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 14:00:39 +0100 Subject: [PATCH 1016/1039] Make 'Profile' text larger As per the design. Contributes to issue CURA-6025. --- .../qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml index 8baaf9a7ae..32c07a52a6 100644 --- a/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml +++ b/resources/qml/PrintSetupSelector/Custom/GlobalProfileSelector.qml @@ -25,7 +25,7 @@ Item right: globalProfileSelection.left } text: catalog.i18nc("@label", "Profile") - font: UM.Theme.getFont("default") + font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") verticalAlignment: Text.AlignVCenter } From 66aeb2d1dd0bd8e59dbd4c988b282fbb664c48c9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 14:27:01 +0100 Subject: [PATCH 1017/1039] Give print time estimate a large font Contributes to issue CURA-6025. --- resources/qml/ActionPanel/OutputProcessWidget.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 03fa00d504..223ddacb31 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -51,7 +51,7 @@ Column text: preSlicedData ? catalog.i18nc("@label", "No time estimation available") : PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("large_bold") } Cura.IconWithText From c92a0f1fd43d79e24f70ff3e7f09774769743fcb Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 15:09:15 +0100 Subject: [PATCH 1018/1039] Fix bold fonts on Linux I'm not sure how this performs on other platforms, but on mine it needs at least 63 weight for bold. This is because there is a normal font at weight 40 and a bold font at weight 85. From 63+ it rounds to the bold font with the closest weight then. Contributes to issue CURA-6025. --- resources/themes/cura-light/theme.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index b14fdf0b4f..dbd1ad34b1 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -11,7 +11,7 @@ }, "large_bold": { "size": 1.35, - "weight": 60, + "weight": 63, "family": "Noto Sans" }, "medium": { @@ -21,7 +21,7 @@ }, "medium_bold": { "size": 1.16, - "weight": 60, + "weight": 63, "family": "Noto Sans" }, "default": { @@ -31,7 +31,7 @@ }, "default_bold": { "size": 0.95, - "weight": 60, + "weight": 63, "family": "Noto Sans" }, "default_italic": { From df0351acd44386e6a50809d842c379cece3938d7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 15:14:23 +0100 Subject: [PATCH 1019/1039] Fix fonts of plug-in tiles Contributes to issue CURA-6025. --- plugins/Toolbox/resources/qml/SmallRatingWidget.qml | 2 +- plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml | 2 +- resources/qml/PrintSetupTooltip.qml | 3 ++- resources/qml/ToolTip.qml | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml index 4950ea9242..965b81dc0f 100644 --- a/plugins/Toolbox/resources/qml/SmallRatingWidget.qml +++ b/plugins/Toolbox/resources/qml/SmallRatingWidget.qml @@ -30,7 +30,7 @@ Row width: contentWidth anchors.verticalCenter: starIcon.verticalCenter color: starIcon.color - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default") renderType: Text.NativeRendering } } \ No newline at end of file diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml index 58e4f070e0..a11c6ee963 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGridTile.qml @@ -112,7 +112,7 @@ Item elide: Text.ElideRight width: parent.width wrapMode: Text.WordWrap - color: UM.Theme.getColor("text_medium") + color: UM.Theme.getColor("text") font: UM.Theme.getFont("default") anchors.top: name.bottom anchors.bottom: rating.top diff --git a/resources/qml/PrintSetupTooltip.qml b/resources/qml/PrintSetupTooltip.qml index 693b703813..6b1538d849 100644 --- a/resources/qml/PrintSetupTooltip.qml +++ b/resources/qml/PrintSetupTooltip.qml @@ -41,7 +41,8 @@ UM.PointingRectangle { base.opacity = 0; } - Label { + Label + { id: label; anchors { top: parent.top; diff --git a/resources/qml/ToolTip.qml b/resources/qml/ToolTip.qml index 87586f76d8..e82caf01b2 100644 --- a/resources/qml/ToolTip.qml +++ b/resources/qml/ToolTip.qml @@ -25,7 +25,7 @@ ToolTip text: "" delay: 500 font: UM.Theme.getFont("default") - + // If the text is not set, just set the height to 0 to prevent it from showing height: text != "" ? label.contentHeight + 2 * UM.Theme.getSize("thin_margin").width: 0 From 30ab1a957ff935872ba6cad4a8cf1fcc461bdc61 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 15:18:50 +0100 Subject: [PATCH 1020/1039] Make headers of Marketplace large As per the design. Contributes to issue CURA-6025. --- plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml | 2 +- plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml index 85f0ff8be4..a9fcb39b28 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsGrid.qml @@ -22,7 +22,7 @@ Column text: gridArea.heading width: parent.width color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("medium") + font: UM.Theme.getFont("large") renderType: Text.NativeRendering } Grid diff --git a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml index 820b74554a..795622cf82 100644 --- a/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml +++ b/plugins/Toolbox/resources/qml/ToolboxDownloadsShowcase.qml @@ -23,7 +23,7 @@ Rectangle text: catalog.i18nc("@label", "Featured") width: parent.width color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("medium") + font: UM.Theme.getFont("large") renderType: Text.NativeRendering } Grid From 346c8209597ad3c7357320ae4cd6475d82a6ef41 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 15:22:34 +0100 Subject: [PATCH 1021/1039] Remove hover color for Marketplace header tabs It was not desirable, as discussed with the designer. Contributes to issue CURA-6025. --- resources/themes/cura-light/theme.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index dbd1ad34b1..fa8f96b6b3 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -298,7 +298,7 @@ "printer_config_mismatch": [127, 127, 127, 255], "toolbox_header_button_text_active": [0, 0, 0, 255], - "toolbox_header_button_text_inactive": [128, 128, 128, 255], + "toolbox_header_button_text_inactive": [0, 0, 0, 255], "toolbox_header_button_text_hovered": [0, 0, 0, 255], "favorites_header_bar": [245, 245, 245, 255], From 7ef8287e52c686cab72cf674a7cbd7c3df713aa5 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 15:33:37 +0100 Subject: [PATCH 1022/1039] Fix theming of back button in Marketplace Give it a bit more space for if the translated text is wider, and if it is wider also align it properly with the arrow. Contributes to issue CURA-6025. --- plugins/Toolbox/resources/qml/ToolboxBackColumn.qml | 9 +++++++-- plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml | 2 +- resources/themes/cura-light/theme.json | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml b/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml index edb1967fee..dba9f19ccd 100644 --- a/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml +++ b/plugins/Toolbox/resources/qml/ToolboxBackColumn.qml @@ -61,8 +61,13 @@ Item id: labelStyle text: control.text color: control.enabled ? (control.hovered ? UM.Theme.getColor("primary") : UM.Theme.getColor("text")) : UM.Theme.getColor("text_inactive") - font: UM.Theme.getFont("default_bold") - horizontalAlignment: Text.AlignRight + font: UM.Theme.getFont("medium_bold") + horizontalAlignment: Text.AlignLeft + anchors + { + left: parent.left + leftMargin: UM.Theme.getSize("default_margin").width + } width: control.width renderType: Text.NativeRendering } diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml index e1d01db59a..a85a69cbac 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledPage.qml @@ -37,7 +37,7 @@ ScrollView width: page.width text: catalog.i18nc("@title:tab", "Plugins") color: UM.Theme.getColor("text_medium") - font: UM.Theme.getFont("medium") + font: UM.Theme.getFont("large") renderType: Text.NativeRendering } Rectangle diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index fa8f96b6b3..e0a1c0f9bd 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -487,7 +487,7 @@ "toolbox_detail_header": [1.0, 14.0], "toolbox_detail_tile": [1.0, 8.0], "toolbox_back_column": [6.0, 1.0], - "toolbox_back_button": [4.0, 2.0], + "toolbox_back_button": [6.0, 2.0], "toolbox_installed_tile": [1.0, 8.0], "toolbox_property_label": [1.0, 2.0], "toolbox_heading_label": [1.0, 3.8], From 4177faa6eac5b65d796fe27f3e16a0c82ec1cf34 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 15:37:31 +0100 Subject: [PATCH 1023/1039] Fix font usage in installed plug-ins Several different font sizes should be used here. Contributes to issue CURA-6025. --- plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml b/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml index 593e024309..333d4dd50a 100644 --- a/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml +++ b/plugins/Toolbox/resources/qml/ToolboxInstalledTile.qml @@ -49,13 +49,14 @@ Item width: parent.width height: Math.floor(UM.Theme.getSize("toolbox_property_label").height) wrapMode: Text.WordWrap - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("large_bold") color: pluginInfo.color renderType: Text.NativeRendering } Label { text: model.description + font: UM.Theme.getFont("default") maximumLineCount: 3 elide: Text.ElideRight width: parent.width @@ -82,6 +83,7 @@ Item return model.author_name } } + font: UM.Theme.getFont("medium") width: parent.width height: Math.floor(UM.Theme.getSize("toolbox_property_label").height) wrapMode: Text.WordWrap @@ -96,6 +98,7 @@ Item Label { text: model.version + font: UM.Theme.getFont("default") width: parent.width height: UM.Theme.getSize("toolbox_property_label").height color: UM.Theme.getColor("text") From 6092402a878c6ba4bab877b31dbf1033dc9c8a8e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 31 Dec 2018 15:44:09 +0100 Subject: [PATCH 1024/1039] Fix 'Slicing...' message when not autoslicing Also changes the 'auto slicing' text to just 'slicing', because that's more what the user expects. Discussed with UX. Contributes to issue CURA-6025. --- resources/qml/ActionPanel/SliceProcessWidget.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 6c3b136ca0..51c5e4cac7 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -44,9 +44,9 @@ Column { id: autoSlicingLabel width: parent.width - visible: prepareButtons.autoSlice && (widget.backendState == UM.Backend.Processing || widget.backendState == UM.Backend.NotStarted) + visible: progressBar.visible - text: catalog.i18nc("@label:PrintjobStatus", "Auto slicing...") + text: catalog.i18nc("@label:PrintjobStatus", "Slicing...") color: UM.Theme.getColor("text") font: UM.Theme.getFont("default") renderType: Text.NativeRendering From 0b0f674e4b4cf7ab470a374e3ba41c1fa989845f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Jan 2019 09:22:50 +0100 Subject: [PATCH 1025/1039] Remove unused code --- cura/Settings/MachineManager.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 32b83ead28..3af7c7fba8 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -64,8 +64,6 @@ class MachineManager(QObject): self._default_extruder_position = "0" # to be updated when extruders are switched on and off - self.machine_extruder_material_update_dict = collections.defaultdict(list) #type: Dict[str, List[Callable[[], None]]] - self._instance_container_timer = QTimer() # type: QTimer self._instance_container_timer.setInterval(250) self._instance_container_timer.setSingleShot(True) @@ -275,11 +273,6 @@ class MachineManager(QObject): extruder_stack.propertyChanged.connect(self._onPropertyChanged) extruder_stack.containersChanged.connect(self._onContainersChanged) - if self._global_container_stack.getId() in self.machine_extruder_material_update_dict: - for func in self.machine_extruder_material_update_dict[self._global_container_stack.getId()]: - self._application.callLater(func) - del self.machine_extruder_material_update_dict[self._global_container_stack.getId()] - self.activeQualityGroupChanged.emit() def _onActiveExtruderStackChanged(self) -> None: From e8febaff59dacd03ac71917b4508c68117a1ad2a Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Jan 2019 09:23:20 +0100 Subject: [PATCH 1026/1039] Remove code duplication --- cura/Settings/ExtruderManager.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 8fa0172305..a459d65ba3 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -301,12 +301,7 @@ class ExtruderManager(QObject): global_stack = self._application.getGlobalContainerStack() if not global_stack: return [] - - result_tuple_list = sorted(list(global_stack.extruders.items()), key = lambda x: int(x[0])) - result_list = [item[1] for item in result_tuple_list] - - machine_extruder_count = global_stack.getProperty("machine_extruder_count", "value") - return result_list[:machine_extruder_count] + return global_stack.extruderList def _globalContainerStackChanged(self) -> None: # If the global container changed, the machine changed and might have extruders that were not registered yet From 2a4c66888e2432e932e2ffe472db021b9715df5e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Jan 2019 09:39:44 +0100 Subject: [PATCH 1027/1039] Use getNumInstances instead of counting the number of instances in machinemanager This should prevent having to initiate the cached values if we only want to know the number of settings. --- cura/Settings/MachineManager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 3af7c7fba8..dec2524e6b 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -436,12 +436,12 @@ class MachineManager(QObject): if not self._global_container_stack: return False - if self._global_container_stack.getTop().findInstances(): + if self._global_container_stack.getTop().getNumInstances() != 0: return True stacks = ExtruderManager.getInstance().getActiveExtruderStacks() for stack in stacks: - if stack.getTop().findInstances(): + if stack.getTop().getNumInstances() != 0: return True return False @@ -451,10 +451,10 @@ class MachineManager(QObject): if not self._global_container_stack: return 0 num_user_settings = 0 - num_user_settings += len(self._global_container_stack.getTop().findInstances()) - stacks = ExtruderManager.getInstance().getActiveExtruderStacks() + num_user_settings += self._global_container_stack.getTop().getNumInstances() + stacks = self._global_container_stack.extruderList for stack in stacks: - num_user_settings += len(stack.getTop().findInstances()) + num_user_settings += stack.getTop().getNumInstances() return num_user_settings ## Delete a user setting from the global stack and all extruder stacks. From 11dfb9acdc04a047e9914db08a338c7252aecb49 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 2 Jan 2019 11:18:15 +0100 Subject: [PATCH 1028/1039] Remove PluginsPage.qml CURA-6066 --- resources/qml/Cura.qml | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 8a34c7e219..ca1c2e38c1 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -353,9 +353,6 @@ UM.MainWindow insertPage(4, catalog.i18nc("@title:tab", "Profiles"), Qt.resolvedUrl("Preferences/ProfilesPage.qml")); - // Remove plug-ins page because we will use the shiny new plugin browser: - removePage(5); - //Force refresh setPage(0); } From a0031853d365a3ad9d44f898be77df66899a3a9d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Jan 2019 11:32:49 +0100 Subject: [PATCH 1029/1039] Fix button color in toolpanel for dark theme --- resources/themes/cura-light/styles.qml | 2 +- resources/themes/cura-light/theme.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/themes/cura-light/styles.qml b/resources/themes/cura-light/styles.qml index 89729fc08c..2c4dab7c89 100755 --- a/resources/themes/cura-light/styles.qml +++ b/resources/themes/cura-light/styles.qml @@ -256,7 +256,7 @@ QtObject source: control.iconSource width: Theme.getSize("button_icon").width height: Theme.getSize("button_icon").height - color: Theme.getColor("toolbar_button_text") + color: Theme.getColor("icon") sourceSize: Theme.getSize("button_icon") } diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 2b9ce3d218..d56869d895 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -118,7 +118,6 @@ "warning": [245, 166, 35, 255], "disabled": [229, 229, 229, 255], - "toolbar_button_text": [8, 7, 63, 255], "toolbar_button_hover": [232, 242, 252, 255], "toolbar_button_active": [232, 242, 252, 255], "toolbar_button_active_hover": [232, 242, 252, 255], From 9be1f8aa7bff7d3c8bc1b107c7656de920e86603 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Jan 2019 11:33:49 +0100 Subject: [PATCH 1030/1039] Removed marketplace menu item from top menu It was a bit double since we had the marketplace button in the top bar --- resources/qml/MainWindow/ApplicationMenu.qml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/resources/qml/MainWindow/ApplicationMenu.qml b/resources/qml/MainWindow/ApplicationMenu.qml index 04c068cb54..a694b8e403 100644 --- a/resources/qml/MainWindow/ApplicationMenu.qml +++ b/resources/qml/MainWindow/ApplicationMenu.qml @@ -83,14 +83,6 @@ Item } } - Menu - { - id: plugin_menu - title: catalog.i18nc("@title:menu menubar:toplevel", "&Marketplace") - - MenuItem { action: Cura.Actions.browsePackages } - } - Menu { id: preferencesMenu From df23097a99b1b1d027b55c64332354ec5d070ae2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Jan 2019 11:36:07 +0100 Subject: [PATCH 1031/1039] Changed the label for when no remote configurations are loaded yet --- resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml index 684e575bfd..e57b21cb78 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml @@ -51,7 +51,7 @@ Item anchors.left: icon.right anchors.right: parent.right anchors.leftMargin: UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@label", "The configurations are not available because the printer is disconnected.") + text: catalog.i18nc("@label", "Downloading the configurations from the remote printer") color: UM.Theme.getColor("text") font: UM.Theme.getFont("default") renderType: Text.NativeRendering From 9e0a423f28775c59204b62482f04e46464589a23 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 2 Jan 2019 13:30:16 +0100 Subject: [PATCH 1032/1039] Disable visibility of glass buildplate configuration in sync menu Because the build plate swapping is not implemented yet. --- resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml index 51ba77d012..5e47cafcf1 100644 --- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml +++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml @@ -187,7 +187,7 @@ Button rightMargin: UM.Theme.getSize("wide_margin").width } height: childrenRect.height - visible: configuration.buildplateConfiguration != "" + visible: configuration.buildplateConfiguration != "" && false //Buildplate is disabled as long as we have no printers that properly support buildplate swapping (so we can't test). UM.RecolorImage { From 71632fd098fd4e55a54948adaeb6c6af460d5782 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 2 Jan 2019 13:53:35 +0100 Subject: [PATCH 1033/1039] Add the postProcessing button back next to the slice button CURA-6043 --- .../qml/ActionPanel/SliceProcessWidget.qml | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 6c3b136ca0..4c5ae24f25 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -107,7 +107,13 @@ Column { id: sliceButton fixedWidthMode: true - anchors.fill: parent + + height: parent.height + + anchors.right: additionalComponents.left + anchors.rightMargin: additionalComponents.width != 0 ? UM.Theme.getSize("default_margin").width : 0 + anchors.left: parent.left + text: catalog.i18nc("@button", "Slice") tooltip: catalog.i18nc("@label", "Start the slicing process") enabled: widget.backendState != UM.Backend.Error @@ -119,12 +125,47 @@ Column { id: cancelButton fixedWidthMode: true - anchors.fill: parent + height: parent.height + anchors.left: parent.left + + anchors.right: additionalComponents.left + anchors.rightMargin: additionalComponents.width != 0 ? UM.Theme.getSize("default_margin").width : 0 text: catalog.i18nc("@button", "Cancel") enabled: sliceButton.enabled visible: !sliceButton.visible onClicked: sliceOrStopSlicing() } + Item + { + id: additionalComponents + width: childrenRect.width + anchors.right: parent.right + height: parent.height + Row + { + id: additionalComponentsRow + anchors.verticalCenter: parent.verticalCenter + spacing: UM.Theme.getSize("default_margin").width + } + } + Component.onCompleted: prepareButtons.addAdditionalComponents("saveButton") + + Connections + { + target: CuraApplication + onAdditionalComponentsChanged: prepareButtons.addAdditionalComponents("saveButton") + } + + function addAdditionalComponents (areaId) + { + if(areaId == "saveButton") + { + for (var component in CuraApplication.additionalComponents["saveButton"]) + { + CuraApplication.additionalComponents["saveButton"][component].parent = additionalComponentsRow + } + } + } } From 96a6b7559eec9d6c79925cc253c754e615a5bb68 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 2 Jan 2019 14:04:56 +0100 Subject: [PATCH 1034/1039] Remember opened state of settings panel So if you restart Cura while the settings panel was open, it'll stay open when Cura is started back up. Contributes to issue CURA-6069. --- cura/CuraApplication.py | 1 + resources/qml/ExpandableComponent.qml | 2 +- resources/qml/PrintSetupSelector/PrintSetupSelector.qml | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 0edf6c1899..4d1c530237 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -500,6 +500,7 @@ class CuraApplication(QtApplication): preferences.addPreference("cura/choice_on_open_project", "always_ask") preferences.addPreference("cura/use_multi_build_plate", False) preferences.addPreference("view/settings_list_height", 600) + preferences.addPreference("view/settings_visible", False) preferences.addPreference("cura/currency", "€") preferences.addPreference("cura/material_settings", "{}") diff --git a/resources/qml/ExpandableComponent.qml b/resources/qml/ExpandableComponent.qml index afe15bcb1d..025c63d754 100644 --- a/resources/qml/ExpandableComponent.qml +++ b/resources/qml/ExpandableComponent.qml @@ -64,7 +64,7 @@ Item property alias iconSize: collapseButton.height // Is the "drawer" open? - readonly property alias expanded: contentContainer.visible + property alias expanded: contentContainer.visible // What should the radius of the header be. This is also influenced by the headerCornerSide property alias headerRadius: background.radius diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml index 2d4d7f6cf1..48ac07679d 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelector.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelector.qml @@ -29,4 +29,7 @@ Cura.ExpandableComponent property var extrudersModel: CuraApplication.getExtrudersModel() contentItem: PrintSetupSelectorContents {} + + onExpandedChanged: UM.Preferences.setValue("view/settings_visible", expanded) + Component.onCompleted: expanded = UM.Preferences.getValue("view/settings_visible") } \ No newline at end of file From a5385b229acf0afc5f1b1fca9cd7dee368c3054d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 2 Jan 2019 16:37:19 +0100 Subject: [PATCH 1035/1039] Make text in printer type label bigger Just shown it to our UX designer and she thinks it's better this way. Contributes to issue CURA-6025. --- resources/qml/PrinterTypeLabel.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrinterTypeLabel.qml b/resources/qml/PrinterTypeLabel.qml index b445228e83..cfc9e56513 100644 --- a/resources/qml/PrinterTypeLabel.qml +++ b/resources/qml/PrinterTypeLabel.qml @@ -29,7 +29,7 @@ Item anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter renderType: Text.NativeRendering - font: UM.Theme.getFont("small") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") } } \ No newline at end of file From 3505eb321f5e7908840caeb49e8faa0a9dcdf5c7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 3 Jan 2019 09:42:22 +0100 Subject: [PATCH 1036/1039] Also add space for the savebutton additional components with the output widget CURA-6043 --- .../qml/ActionPanel/OutputProcessWidget.qml | 56 ++++++++++++++----- .../qml/ActionPanel/SliceProcessWidget.qml | 1 + 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/resources/qml/ActionPanel/OutputProcessWidget.qml b/resources/qml/ActionPanel/OutputProcessWidget.qml index 03fa00d504..a8797670b4 100644 --- a/resources/qml/ActionPanel/OutputProcessWidget.qml +++ b/resources/qml/ActionPanel/OutputProcessWidget.qml @@ -40,8 +40,7 @@ Column anchors { left: parent.left - right: printInformationPanel.left - rightMargin: printInformationPanel.visible ? UM.Theme.getSize("thin_margin").width : 0 + right: parent.right } Cura.IconWithText @@ -52,6 +51,13 @@ Column text: preSlicedData ? catalog.i18nc("@label", "No time estimation available") : PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long) source: UM.Theme.getIcon("clock") font: UM.Theme.getFont("default_bold") + PrintInformationWidget + { + id: printInformationPanel + visible: !preSlicedData + anchors.left: parent.left + anchors.leftMargin: parent.contentWidth + UM.Theme.getSize("default_margin").width + } } Cura.IconWithText @@ -84,20 +90,43 @@ Column return totalWeights + "g · " + totalLengths.toFixed(2) + "m" } source: UM.Theme.getIcon("spool") + + Item + { + id: additionalComponents + width: childrenRect.width + anchors.right: parent.right + height: parent.height + Row + { + id: additionalComponentsRow + anchors.right: parent.right + anchors.bottom: parent.bottom + spacing: UM.Theme.getSize("default_margin").width + } + } + Component.onCompleted: addAdditionalComponents("saveButton") + + Connections + { + target: CuraApplication + onAdditionalComponentsChanged: addAdditionalComponents("saveButton") + } + + function addAdditionalComponents (areaId) + { + if(areaId == "saveButton") + { + for (var component in CuraApplication.additionalComponents["saveButton"]) + { + CuraApplication.additionalComponents["saveButton"][component].parent = additionalComponentsRow + } + } + } } } - PrintInformationWidget - { - id: printInformationPanel - visible: !preSlicedData - anchors - { - right: parent.right - verticalCenter: timeAndCostsInformation.verticalCenter - } - } } Item @@ -127,9 +156,6 @@ Column onClicked: UM.Controller.setActiveStage("PreviewStage") visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage" - - shadowEnabled: true - shadowColor: UM.Theme.getColor("action_button_disabled_shadow") } Cura.OutputDevicesActionButton diff --git a/resources/qml/ActionPanel/SliceProcessWidget.qml b/resources/qml/ActionPanel/SliceProcessWidget.qml index 4c5ae24f25..127f454902 100644 --- a/resources/qml/ActionPanel/SliceProcessWidget.qml +++ b/resources/qml/ActionPanel/SliceProcessWidget.qml @@ -135,6 +135,7 @@ Column visible: !sliceButton.visible onClicked: sliceOrStopSlicing() } + Item { id: additionalComponents From 195d39f698cda58b1bedcfcf2d75acb4c2de344d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 3 Jan 2019 09:47:48 +0100 Subject: [PATCH 1037/1039] Update the style of the postprocessing button CURA-6043 --- .../PostProcessingPlugin.qml | 40 ++----------------- 1 file changed, 3 insertions(+), 37 deletions(-) diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index 09fda8d454..5aa7660237 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -484,7 +484,7 @@ UM.Dialog onClicked: dialog.accept() } - Button + Cura.SecondaryButton { objectName: "postProcessingSaveAreaButton" visible: activeScriptsList.count > 0 @@ -492,41 +492,7 @@ UM.Dialog width: height tooltip: catalog.i18nc("@info:tooltip", "Change active post-processing scripts") onClicked: dialog.show() - - style: ButtonStyle - { - background: Rectangle - { - id: deviceSelectionIcon - border.width: UM.Theme.getSize("default_lining").width - border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") : - control.pressed ? UM.Theme.getColor("action_button_active_border") : - control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border") - color: !control.enabled ? UM.Theme.getColor("action_button_disabled") : - control.pressed ? UM.Theme.getColor("action_button_active") : - control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button") - Behavior on color { ColorAnimation { duration: 50; } } - - anchors.left: parent.left - anchors.leftMargin: Math.round(UM.Theme.getSize("save_button_text_margin").width / 2) - - width: parent.height - height: parent.height - - UM.RecolorImage - { - anchors.verticalCenter: parent.verticalCenter - anchors.horizontalCenter: parent.horizontalCenter - width: Math.round(parent.width / 2) - height: Math.round(parent.height / 2) - sourceSize.height: height - color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") : - control.pressed ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text") - source: "postprocessing.svg" - } - } - label: Label { } - } + iconSource: "postprocessing.svg" + fixedWidthMode: true } } \ No newline at end of file From 979fd507dee720501422e17045b71c5abc46f467 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 3 Jan 2019 10:39:43 +0100 Subject: [PATCH 1038/1039] Give the section delegates a fixed height This fixes the issue where the first printer would be drawn over the section label CURA-6011 --- resources/qml/PrinterSelector/MachineSelectorList.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 604e0f668d..b9c20d0de1 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -18,7 +18,7 @@ ListView { text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Preset printers") width: parent.width - height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0 + height: UM.Theme.getSize("action_button").height leftPadding: UM.Theme.getSize("default_margin").width renderType: Text.NativeRendering font: UM.Theme.getFont("medium") From 707c3a26a88400bc2e0cd781053a0f5a3a3de938 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 3 Jan 2019 11:05:54 +0100 Subject: [PATCH 1039/1039] Make job specs not bold As per the design. Contributes to issue CURA-6025. --- resources/qml/JobSpecs.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index c7f82b8876..144616c22d 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -97,7 +97,7 @@ Item style: TextFieldStyle { textColor: UM.Theme.getColor("text_scene") - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("default") background: Rectangle { opacity: 0 @@ -115,7 +115,7 @@ Item height: UM.Theme.getSize("jobspecs_line").height verticalAlignment: Text.AlignVCenter - font: UM.Theme.getFont("default_bold") + font: UM.Theme.getFont("default") color: UM.Theme.getColor("text_scene") text: CuraApplication.getSceneBoundingBoxString }

    fcgH6pO(=&uw9i7{^0?z7UA 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 }+4dWdO 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 z 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 z%0D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%0D3-9LE^U+`ErN< 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 PcfTJ(pcSrz6y^T`JIBAO literal 1348084 zcmb512b2}X(#MC4fP#u5B1qT(qU7KcxU+i)a6t(oDk@5H3F-m{kR^kPm=ILnEM-3svsX>Je8MHo zM^Bk>`6Y!{j+lI9VbO#sMI$C(KI-bRldddk{{Q|rc!J|}J7HFkQ`9)oY5nO!9yjJ21X{7IeC!_nyMN)p5$-9?>ZVY`GWn=J z_sit1H?fbuzkS3%@xPPYcFk@sV=GDvtyoq*-rv8*FQ{^*``6rC%22~H`6%f4b+Ytb z_R+Wd4*$dnh3?;T>!sL=(n2eim5=HTa)W8V<+~sKQIJ9n%jDzu(|0HH&si3>$NEbW z!5=N!y4||D27y*AD<4PyGCH_%`*(@UzWu2TH7t{lEmOWpR&kbxKHh3KIXJ%E!--43 zy}}^Sie=^Fz2*~x9zQ>m7=HPzGSsk4K05vSZL-D7?BkA8FAA2v@3_M+|H~lIie=?v z#~-HzOJDEdzOt}y3Ng`4C5YR~*ox9ZE0&cH$61x_ICI^8Rg)>yuuMJ{ z&)+M3q!XyI5kx!UpZ0+S%VgEBN;Qwlk?sREHbVIjB~MVvyQF%RA;B_PJ^WC0Pq&At z-2~NcmsEv8pcTt1SE2=7YQY8Pd|8GXmdVGoS~Wc#S0YMWijvbhuQv#^Vp;hRk?2w+ zCN~{lh8mX1$GTT)db)pzXm=^vlbe>`$5xaUTCuErh#uuqkNTqixcgAUGWn=JqL!!o zx#+bn_1YcvzcvW8Vp;ik@REf4yBHZBAGWXzH7t{lA12iH^mrvkAD2d-tLr{(5NO4+ z@*zgJ1dVXlw7IJcH7t{lMb97R>2X(#qKVVRC_1H0Q-eS&mX!}NQYUDno>*G93^gp1 zk3MbdczXU2vq6GpgQC)#4FauLRzAdxcpTQwy>4H7ikQ8~tqT`qj=>(e0d>b9H83$C1H5NM@jsu3b?os`NNUwCu57<&V> zqVbB;{U<`Dg@lsXhsc$GX`O{KSExZ^sb5|Ci%RalyMMkcITC24WUebwyTQ7SBW3NP z28rEm#dsC9xoE-Q^Z)jdEr~ty*Ed%@?&RA~9%v!3%3B z5|KbFC94RfIcl!!IHhZ-U245wEYd3RI(HtGRB~w~Z<|QJk4dHztcer1ok{e#e<0XO z(s?Cb)peIxh$^9mtPJA05^r_MW&c1_39X2(>Xdk0Iu}|9*2tWs5k-<%m7=(9_>sSmx0eGob|UTr z2`v{T&%L*9p4|s(>;(B({Ac^bmmOxhw={6p7R>AC4g2I48M_5l28wnjxhSb+>K}se zi8y_}AR?PYHXt^l) z)@NsXD{j0s?6o77H4B>jQsDm4Zc908>;&cNddCg+Uv-ju+>8wdq3NRJip}SUk#AAx zW9{{Wf*m`LaXT(wUXB_&K|c2Mxit9c(k+QL_0BU0O&2BC-*T=ue&=nWk1g%44*I^Z zEHVAT7Uih16Xc`MmRZ4zuhvK``2F@ZNNAZ_@I0@|bBjYCHLso{i0gaZ>7M`uTA@ts zA=*2T?Y?bo4yL8$u&$gtgb&J~L>su~TgWSOK)KHePHJGiS;Rxsws zR4!_?tm0~2>dw#ySrgT?&C3QsZO&F&CLbrX{K3y!H9B}G_p4mgXt^j^d&*hf^4G`* z5#Mdw<~Q#&F1Y)v-MOf-6IAm1$`<;+{by=0s?qNTp=qjJ>Rn4iA7y2={hg1`3WDuU zYt+~Y@*#)>5zk&!#UM0Ylw5dge<+8@Rf2ML?SVgXQDY~_hbVc1N?vW*cLt$pYL9+l zO^3CcpxSNz;@3c+70N`27Idiv4;H^B+C!(M<)Y-iu6@PR9mkchcB$Q8seQjepp}-% z2aP-wi9>gG&qa-vsXh9H{ewzQqZ>v0kv%GMv=xnT+DgmhL-Z(@demzV?Mk6W%SFkr zru2b+E_$sXY9z)kow)`zc7k#xMh2HghV4%_Dn~-gVO>Szl^A_o8hwuGJD^;aBh=Ul z@*zezmqxgaxBlB8G+mT@p=AM#yJ8e|4~S88=c)(FQDY~_hZw0{8mZ6t^L2yJw2Bg* ziR5hH(rmD=)rVp>&~ucXARnT=6V&bpHtsbDO;ele8P1#sThz!&viFuXP8I6}H4kc; z+8pOW)M&XV*|J9eFr_e8(LAWF3JohwkPn;(QKRLe*68i;^w6odo5;c@Q<4MuL3cJcxvr z1tCTZqjsZt&~6nca2~|8v|NHFko0;5>+gmWz^g zZ*C6bF3y9fu@mG2=RqX2tfGWxB6A+3HfN2UARjmnBB5pOQEG-W+kEl-JyA4hxiI-x zJ+ar<;r4L#iX+_7e~R4!sVPcoS*)BkiJgh)`9sW{(KF}b#zb!<@Wz-Ni7Eyo*#ro}Vonblw|dUZ)r@OYV@xO-&Za@5!f^3i_& z^kDqHA&Kw*_-qXlS{ChLwE39(W(VW;z1!=dj+d=Ljh!GLIM*VfWsET*!nz9b8ZXYp z=+m-l!Oiz^?1t?T%=qD+T&hvl*a`AMZNBw?Zt!TmO$MQ96^Ube(MU~k<%_sl`qiLd zu=6euXoa$hcDY{?h}CN@#S*8b<**HFNwd;x=6^I^{OM7pu zu@jUl(Sok%QGw`D2BB%O*Jq4ZB1&A*qXN;Ra#3R^$Oq1xNN8Eq6^xaRBck1Sn_Br5hH_3BSU_- z5#=)Pp~g;-kFc&>(W4AP)2an|vxMwX zuIN#&=uzbq8LY7rh{3>D{WP1SZRWM;OK)IEf*zU?7Ck(8*rQBx?Nip8djPhA0iT6 zio{RvT(AZ;S}sa9esX`3BVYCpLEMs<)U0kfYV1VVKV0e`PrW?CAT+J&O7#!QRp+Lo z-QSMflW-oK1O!^4Ohj0_uGm8^r;>A8T2^hof8R}E9}HX26?@1AL2biUS|%SjmY_z< zDt5PQW*@lT)mAEY*@~i4$;yX5V?m9URUhOW%3K-iT~3So3R`KJe9$f`)tA_NEk})( zi(=zdI5N0m@6{lv&-19JW%40fFrXGZ>B;HksL^s!QjdIL$>p;_quUOazni-|`Rg%i zt=4_fx5+KvEs?FJWvr{d|8mx%M$1LXyMOsUOo<{R*sS{Vs?Ou)=Ef*zgTqvH%n)9kJoDCA~ zK6rMGwkkBNG(kRi{-`o_Z4PR*tje+CDfYqhNAUV7x!S5wmX@u^x01<6Sn}ZPN6KaWh*U{kFW)UH?sHUqDIR_Nov`yXR{BUKe`164FavStbC~X zb!Mi8y%hgtehLtAB2hSfOu5wYMWwFmN_Uo{A!?=>?A0n;{ z0&`Jl0i>Py5`Icl`5+Cz;PR98HV1cbfbm|ecDrKoDb0*4ZRnRgg#d(G)`iO(5C=M z=<~Wlc?*T_v*?pQDmfCUp>&y`+bJw(CeTWsV8(r*1__e&t~2H;POz0eiH-Z9w73@a zX*iwZ;b}PfKmx5Y=L$7Q=u>N3t~l>#mAM?4cg&%rqg_rc2WpTY*&Zcvg01x3hIlzp zgXvN^cxN&eC7?k<<}iGws+{0nq|ff+xk3%5D|?jPM|2LT`bXpgP8wsmiq3&UBD}pJ z`=;EXkLQZKbDQh4?Ls))juZOKgU)gEDGA*cviCvMAVGJ3>;!6%&}SC$Tp@v0^gEZ& ztSkGOm)JuV<**Z|v7ctebA^OHj}rA3oixP>ecGpT!lQ)rXYEm_A%9Ge%zecyd7NM? zeM%b76>2bDDwDlOp+@E^jBwSOYRAIN6>5;67Uak`3DR)hrBxX1`t&4T4%F!Lk3xAL zj#J9)0||Yy5%+<)LaWNl!6igOpM}_bFo9NBhh{mjPY}Upf|M(Jw4(+ISqs*&1PQc~ zC6Dfr;cS2!B=i}Zwd7%1XoW3nmR#?Dt1}kfv!>teB}a{Y&pMtfBQl=nsL zK4|5|8YJ|7a@+?JXhpyCZnRl)eM(YjoU70sSRN%z0yX;lBYsMTEr_*?wV=-_;^jaM z66Bj}#LN{EXr<3vtUkg$WFok4lRw_~HGQBaPB5LBAeyZxVtC)zBv6BdY=3#W7%vBE zkf1haf2I#4&`R$o$9>4LHtbP)zg^8fb{{wc7zCYWM0@%eB}nM~cGW-ZJ}~cb!rp>N zkjz$@ORk?~)zcmC6i{yMk%$CZ;WM?_9;iWra%lH~1X}4Ggm??upM(!}C4u` z3g-;kJy$1Vcs3QUD32*p z+V#0gp*%}dCk<-Gu@jh<{VXJ2S4dFF`DBCY(Cz~@Na&M|xDO=I3ggYJs}Z@?J)X&q z_(0rllDqPS@*OPhHzt950NYmAj)Koe`Jd-O zB(Qv@4@?WKWW8B;Qc;5h)`;l?3AB>+X7zy@B=ox=w%X-7K`Z?(NSwe?A8Uc+f1YuW z!19?T$F$IjWV;X4Ab~Yv`alA$NVfYx4HCGMZu&q1tw^@}z+G8-PT;+1lI>#&YLK9n z0n=u#kU%Sv?LJV01htdh2NGySvfT%2kf3(5`#=J%NVfYx4HDE&b{|Nf70GrVs6hfx z8qM}V0cfdpE~-DvCBj#lxv*X`|rX(2)Kp%H9FDcPe0 zHJC2RheoiK%Ruob0bA4^b!>5{Aoz7I!tyzDFQ zq9m@C>0XAq4@Y;rP^0Cdq+Tt@?|5meLc>ZEv;yG!aCFBDHCir8>Q#9Bj+eG7G^{j1 zKJbngYP4LG)XzBN1Mhfgt3ty{6XXN$c%eqisvLZKE6SBmcf7QfDhFGUZ+_l2?|7j` z%c?!}-Kem31G?j-tyFuk71g1BHo!YxsL`^D68jx5ZB-~^iLEFW^fOKvi2>d5LXDP- zlKNRBjH?8-BHi)QR)vO@Cc?Oq@3_+)FVtwcD5;-u!nlg=cxkIb!%7ojT*-Ib>5dm_ zv|N8+kaxULqh(bNzP%OQJd=04w3R9cTaj>)tbJEq@TR-=Bj$HNX;d2La%Y~ zn+)oUKx#yd6M7w8B)_+$<`4YhNu1Dkam2es(JdQA+jE6JkkI#M;yw%_x-+B7VfR6+ zKGtBm`pL`cL(X?9?_59no>ZJbjlO>smOM1o-Y<=p9MeK895GBE*mLw= zhAKHnk4caZ)*yj(XcBtePVWZu&7=5x!Z;?Hg#KOztp>UOn?6vZZ`0uW&hffJLf^$v z-`L{vnLcE$!Zz2Zq3X+DnF-b)p>J}&^6mC8wP5NTk}Iz5x;Uff^+AQ$}S3 zTIqXPaRN0+kj%AimLpEEmA<_d_d#iKUFq9YDt4JReV}(F^zAL14^9iMGUp0=k-iUC zS&yPzakL{L{mEOCwp=lRR#+qHCFi!%q^&Ix|r|B9NKK4@8ZPY;K5vBTKa~NnrrPPCxSId z=-Wy0+C>7bh~`}ivvyHK<=}k=Ovxlrg9Ozf?;vC*&XA^NB`h?efk2*7f8ht}3{-!s^6%v$pe$$)E zWX~09kkI#};^jaBt@ORDIHAv-%r6sQO`ElgY3Z{mHD1}D?kFwRAc4NqeegFD^j$UO zgCoWyFuzDpy{X%D@scBfR@6>*AE-e>-|>t4Kmx7wox(UFPh#Y0m|A&rz0vRXT%ks; zqk%p&f~}-)>wXDpaMhoA-5w`+RHNT{o;O<%HJC2Rheog!rNmE@={{J4>5|O9n*_!v zMhwQZNuUM^93L|iXeCGOur*BrHArOMXFvk2a7V}Vf&DyQrhgus)L$e6bJKmx5uw)=?hesJtkne35>8j_iyI%L@_2NGyS zvfT%2kf3qQ?gI(5BH8W(HAvu7pIHth(28Wc57gkUD#>;NHAv{&De;jS3ADnUbh8|o zcYTf*Kefa)1Nq>QlTI-C1dCGQ-_w1t1_?TwG`><0onT>FXocrr={~p?u}oNRCV?6x z^ogmhb~)nEN}uD#3DoEl<;u?0Fjq+EGw-+$B+!a}=UPuMIctz0fA(h_Obe~BHBBGb zQu@qO?a8ojlfX7dLZ8aUOO6CuVQZ%Q;1)!J{Mnz+F)g&hzGC{oQwyv&l6h5Q5~x7} z%a@rzE0XO#P=iF~-6$l`3itiYT;a)2TA8eKlq_wiK>~f7K9E2wSthFw)F444c;>p| zH7;6_%)gttLJbm`*VIU$6`tLjKJW>WXr99{C6ho65>yLJXC}}J>(C@ng9Npc-3JnA zg)M9PKn)Ufj%)XU1X_`-TadnoBmRC=4$W?QeO@U4UJcJBYPAG^+sPpKZ#!u^{A)M( zx1BN){I{Km=D$QG|3;NTutw%2OqXQ-TT+!1Y$fTr>hEKv6a1I6FkMBczoI3+>pc9_ zY`zmmwafKGHHtEq$#I_Ae@6~~bLp36hv(5>6QjS*h3TR{$65XPgV{{TRtt$^w$R`9 z(tpp3%j7sSu5cqCM6d=4^jIPVmpTqehP|NACU$z|T54cLm-+ANzsP=jkGZSbN#S8w-r`J6$2FOg;XONb=@)uF^Isoq!o zExI_tnmDoV_7bn{)vf=5U@M}py`aRKHM5_EU=3Lzv9Nxr_t~~i|3I)6(caV&Z|H*q zEd*=G3W=9TmwIC+CjWt8E23${cysem3&9$)G70)i(M0^V?S<_5r(WZp`QvrIN=s>w zxaqsbd3Rq_>UH0sa^*O$XHRqASwF)^%^5cxmv_^cQm@VJsx@hp;9NOQ$F(!uN8agS z_&{ROvq$GOpC*VC&yeMCoCTN8alOP%6__iu;(nuiv}v#``_?s`-KR!&3pS3=&3mb4 zsdwJ&PWk_RIw$X7-BNF1qO*)Eu4%^^eB!d~3pbwXHtE|jARnwjqV>kCyeFEJdj02i z6}jp(s(ntAt^?g$A8TX~XodCWI6VuV&%W;Y^W7H9YD$9J0Es?dHp@GwpwyeNtB3G0 zu-c~VTmLoAeel_BvaXmwE39?uACA*v)YrYn4WAvjb^erNAN8WEJ9o{SE+XTH#ku0| z7hf-Xn)*AVlZJQC{`Z~J5)Ym?EkF$tR1S`O;ozz6*;{s0PrUxYEQ3I+CCSghhe3b_ z36g0{RJqDjj=ps^Sj$BAy5yL5B&xLeMeg;b`#=J%S`NtrV(scK*+ZXxDskfCi2)L~ zeAhYehFeR#mu9qjC2=iR!b#B2W|jaS~%{n-r{ z9!y;J;Y9|4R#aCUp^o!jmlfGpecI4n?+rF05s8YrC*@81xx_o}&i2B`cb%7IUq1E} zclFSo27y-CZyaaqtk&5NmHyc4K(EcSK$9o9jxvfiLFf_iHgW`rUDw zS8tvD+6#>n-yb(i5L$zTcSNywa!!etIxJh{ivC^tNv&Q#Z<}KfXjM=}t!h*YX3AB+ z)m@^Tpg*%5s6nD&d)>{9Q_K?#{F9anqmuFQTh z7~!sb`GAiE<&dquyr8E38AuIi+Kp z>^;vkbcYTX{R83^iOD01y?Ogfyi0EBD0~b(zIFEglWMt5#-DExXoW57I7h7NnA7d= zk?z0TUwo_|lKYG=^`2|oM05>60eCjNR%9(yigM-xJ;E3Y(+G$qS6W0kQEXf3zZXWMfAXv zOS}WG^|6$LHDrYZk6r0LkYFpKsh_LA=^d{t){s@4P~+9J551J?wDSC*&eodlD+`Lf zp+zO$Thq^!eS+KIQqfo5KflDQsMBARqh4{xHOm?d3|j1Lt$dwcd4{i@VPb8lLx4FBLx+B}(2U`uXmwO1v2pC`x9o zdnq++>$G6|HIoylp`1jkOvs_*wEW@uRGSWyf@fy@Cyn58&=~Xkl_lO`2Wf@;+g&fD z_U{@WJTT||1ZuG4Scl@P@@;Zb+i!c=fBuBY?onc_4NfZYmYmr)e~OS#Xj|gFJE*U$ zX>M8ZSCl@=N%<$e?Qi~Kf=lVL28oh_V(<23iFako(?za^|L@1t&=IwR&gH`l0VL1n#l7&UJNyCX-~B9V zkYM@s&0R!XZS6V3oxU&W4`2Gal^`o~&9E|ihPz~VUqATh@n=wj>9VXwxCs>#-4|yr z^+#TCzK`*W(QeM1cb_}a?KBoGMW_FjIBmlxWz%L{Y_uQ}zZFmSeh|;+ckiM|Jh@qx`}XiF zQroBXHVCxBp5{0Wc64>W%R5;1Vs@7RHApOKJ;QtEg%aBSZ}(t#{&&BZ)%x{l zgFq`BF&t-3yZbAscB?j@gS%CD~YdPzQ!QX3Uli? znQ|p_C?YYQLzBRqAVD(qkMxqq3AU27=!1$7V~H0YMv+g{?{q?)E156il z*u|M4%dzU2A;QObf3*xQ`KY)1-jazG)N1r(O3xgh&nxzh6f?lZ1mU?!Om% zEyZ}X{KHd4IUXNbGpLyw=>G7pn+yW2aApvDGN)G$TAVb{z4P@uebgX<WA%yz zt{EL?+RP<>ao^tVcO#DuP=mzQUDLhxB6e@DP3MEd^2YnOjUVW)-B#Bi&pfdB*Bj*iXM970Kr3_gdhc`fDxP0{g!}kqLj&v+*w2xs zI}^pvwj0;ct+(LR05wS98ea6lc^^N!@ZSU7`)W6e5qhO>=BnwtNBEDPSl|8kX=fR| z7X4wLcbo(Ly7}iV$#(Z_>lL5|39L7*fsyYxKMy%PXf(FI zJHBZ%gFq{sB^+nbr@6t4HyrNnx~E!z8YFP;a-5~dwhBIIndN35xy?rn64>V*=aM5% z3zq#+&wZ@zy9R+)xN;JIZ~Kyt!DLbLU;n(5?tb;%YV&V12(&U+ zWbd`j3;q&54h}xdM-37<=8L&Dd3JD5|N8F9bC*{jfmST5b;+L%&&#I0xRG-fmUBO# zeK?kJ-c>tyCZT5JOoV#c9$s^EjyTtL>3o~hRRq%0Jvxcs@;ZIlsDF)Wx%E!FMiAGf z5o|>%vFtdLx^>Sj+kBB*ZQVghu!j0M%5+XKX~P8J#D7Rqdp&Mh=>4{Bkf^KP-XmrEKe;B@-E3|e!B&(jmW7XH<8yX) z7#VzV%6>_(hJ2tr^ri*gSr2p*K7I%u$@y&Uz~HfC8_Bw|S&Y$N_g9W)`vtRN*Obe6UPU=5vF4zPKre`U$0rZGdgg&m!prYludIC*ReSVKOvxR;`qGL^ z?wk|rwR$ulf@?vHy9S{(IDQbpwIFllivF=i^pCVPgN{nQTDB7^!u5Dg{|3ZWJUMI?LJULcf`pGiF6-GuuN8T8{6&!H8vvM2NEok72V&q`#_D2NcVvR%Vb6O z!tFj#VP>fqkw6U+B*U37_=pp1CF$tgnQon3^Y!d9x)(nD znLoq{|L@)DE;w27**3|1GVVA?poU~Vm&cS$0yRjG%qRSn6Kq9eVGfKQ;pQKa$vmW_Nw%}>CR0}eJRu~Ir3(8!D^-eO^ zF8UMi$y_(Fs#?cCzm96GaX!%3GK1X^9Z{2BMDYfHR$meJYv z8#jON-#u|=*^*aA2dF{fzs;X;-?*W~`@Qwag1F_E+QHA~&MEu5U|4_}B(ln{bm{H0 zjbG5&_WwpU4t{)MPT9cyX9lQ2qQPmSWxT0(uwIzcE$DLUq~_Ic=xh*Z_5MSJ?yi?g zynj7H_u(jJs|}u;MG^UV6)!>2K=-tr24y`|WQe;lLgtmT^q|4cIa%8e4DeCY zpy`mrZ~3L(_|E1*gY&baqpGQPy4l2fEpx@>-^tDzduX7MQ!PZ(CekWgCP%1ZoYSa zD}z8Qv#xMm(s+my_8e6|Tvu=OtuBA(o8)@6WN4svu|~vT2y0O!(CYgJM@t|4rk?hJ z8YHkrOdm*~RnN93NgsTZT>C%`5*U@H4T@4J0&+10<)a8Yx_)%EiHYNehxeLy~@v%7x+HAtL#QO&&L zlcnCDIcEtUYg?(?Z9O-a_d)`#=y%;~MgQ(4=BO;X9gXdQHBB<#hLH0|M4*ObzL$Y1 znFMN(AenD?R8FuJ5qulMaa!lC?n%)#aPJ(KG&FzkT7=dNBoAHHGw(sMmUy}yy#T7`EsuzZ!5gKnO24*AZE7UIsBVc-+Z&=mz{WjA~ktN z)>W&oFv@|%_xs!CT_9Fu=k22VK2vA!O-u~tWL?&2ltG{s_F%EIJ@GKNf7Pp2jrrp| z*=uRcp#F@+wq*0XnhQ(3N1D+cmI>{1-S4lRyz0_V^9=&6u>U*G8S6gJ<})wuIdYdH zocmbjohiqed+jG>eC8D=*ouB<*>Ub)wR8=ic^MkvBeD{*-u>v?e(M@O^NJH}MZdEw zeALV-=QA%ugXs#HcU~N4F9aqk0UWNwK6*BJ!Igb1OHG)uQ zUU7o0=y#UIn=d2hmfunRrYupmjgWaSD>GqeVg%D-5P9p`az2$IAG}*fG|IfU z=r}{xUR%y5KXD?mqTEJjMT6T-FXz)GS&mR6a|kl;WjaosON+|+1S?KNR>DUlJFENk zE9X-(B3MH{Q084c$C>?o$8tW2ixZKRNGXz?|E}A=hEMy5U=8^|S=a9S7e5`HD8`A% zN~9FY&SR&)wT4fAh@gH>`=8_kWxdP!VW0Zte7Y1TA}f(nBs+t@9aPRISVXXfe4xyG z*5a<(z2nRIlq^m}RwAWHcJ7%xzno9vh+qx*K$-V?MO>Y5T{)fh`Qo%MPDEBBrAT)A z51m`i=LVE6Ye?qUrIh%0aYhdWYT`shiw-i^b+4bgM)bv8vcfhXnfAZwcfHDp6BvDL zMFdBTa1ryt8cdhusQ*_=u$8346YO*!JX(?!k7^`GV{n=e*2D?+m+k`zwvxFD_r=o* zsvnwV$SO|glLl-Lj3ta+-RAMyWexd2f?GB{S4glG(V3%!HDrYZw|}}1B-l#ULNtoT z%faI-Ss}skCe~MN9xD@6Am%_j`6P4fM!y>b=G{g_?GcFf$f3E4thfbPmR90- zj%itPgNQUC&4exol>vQldyo&VH^ZNBViH_Gaf0hGJy%FXR>EKATyeaT5AIPUb5Be6 z!O=%n9LFT<_K24w(!_|UM$$@-L}V5Eu(u!)+y+QQHInATXh9xvgpVi|(uhbyRzO5` zSSb-%37W?k0mRxo(g-UgbbE;YA=g%CT~`>zE|;8hcz4-cSC&|n#wVUhX&K>Ts;oh0!lwDuPy`#rKx5}~C_?NEu&HY&Hw>^2+ zzw&WE5mORxnLb*>{p0w7?yGxmGkjpWn3Aa64f_&rbyhg#gN~7rH-*9k$^w z(Axvu?|m=v%f|!Ud!GNq$8>Se%JlKY^Uoy?|8bzZ=b5j4)F6SoU*ZP#fu|F#UhD17 zpI9?M0W>&#jKYLLJ^Iq{9H#gh}km!3QEipBf1K4?6U#xkg7)os6hhv7R8spzIv}$A908NG;x<63Bw9%-Elstc82@fr%l`& zb5}nrpQ^*X1(srQZAY~c7vpcOtx zi)ZI8Id0jrz1)5?vVGJbfsrrX=lmw$effdL?&|T^8U$M5bF_H6TXdS+<<#TdUQey@ zQG*0NM~fcSqNV%k7aiR{FMr5KE9^xk@%!aX-HXLd+0Vs&WYi#m@#Z*J9BA$??_S?c z=G6(1Kr8c!zR{h(CBEK}?FNS(8=wXWj8O4TL*1VfFHWrQzSXpyL7)}x`#H|L8=p>G zc4s|z`uw~AHAvttp5x?Rz9=zbY%6!)bKL{fAb}C;IH`xPPPD$Po_l=r0S19qxbNpU z_0Kviu}9SIr{X>`YLLKjMSPWO?($xDhKhsO4YJ~0N94UN-UdAXJ9>j>%g0lL{*SMIcFE~C_^3ewzh)-ZaNkZ0?rv~r#qUiX zGYGWmyy&>R$HW)q{=R_rUaM`L8Vnkf)r?<^lRNSNOvt1)9@F!Z{H{sWJ!GYGUgF4-h6 z_iFL=i=)ZM?=MdcKI!#c#fOuo_^3ewzkepaU9x*(5X?B;FIl+UAkb>rBUyQCE*9TE zJBPlivhtIu!Hti!_19Dz;-dx${3@IHeo4v1;E~-k{qH}x!64A8h4{K$4e=GhBNx(F zJg$3cYVh_$3IC=go{t(N@auApQ*rIYpybi({FBd|ZxCoTdu(prtYP9^DUW>QzA!bY z@r~!ty}6f<8YIl`c+I?bVsL-c1^#1S%`phH`gKKaUUlK)u6E?3!8=ofjfWTb-Kw7I zqXvlzNuR3-;oc2W*Zl4s%82{GP;K&iPe0S(e6{tZ1zZ)k``*J1)!GcHp zIj=4^2(;o^RPE4z`Praz3r9{LAf7B1N%jqv@D=S5ym6A(5MbO_3zot@)F9EKMz63I>IxrJNAGOho}#yZkw7aY zQ~8*f(c^|3s%6w5q5ahsJ}6f&cK=Ec8w>)iv~MD)T<%kN7YVddGR0Nc zg06@w*@CD+qGgTH2S+vYrF~PIqYoTkv99>{bRVce0$bDW zgVI7PO~-S^JvCmV>|4zSnaY7}fURlI6{Uq%I#(1|=tI}y;mLy417&Mc4!J$jbA=it z77YL`Ye_FZ{g zaeENKt*ORcY!6Het?0Y8yt`wT1M`dJz!}aYP=iG4@6L>Rb7lgq3O0pAT0hrTwUg|F zN>1O^vzG%kNO1e7*OftpaYa@fZ|UuU8cdhtSj|z`9tIKi53YY(&(B;}s6k?P+nO?^dp=tvR>+tuB+zQ9UtJQlMwi40Z1aH+ek)^%(%rIe zx0ES|rVmW3UlsA!HAJr+H+K0UmIH|;ReuhBERXrXa-bFF*31=Zkl26257I~FB}Xf) z1=9z{t`TDyqaDkEgg^K&S#LLga6u&{M=OjTGgmko@Yp4LRK}43#|$L&h!KxnB+zQj zn6G5*rk4XXNMJjewPC)NxR zp;j`a85NE=nPp3#B+jtx}%h6hsEZD2(;34IO9aQ!jfZY`SPtvI*Q z>NO%zg9MjDjSN^0g9xAQ$x7EkygfKwIa|unN5vJVRC#+CkuRg2+9n=}m==$AWQ7rG zwjgSd;PF`XK`gmJtfps9RSq4A@hH(6@x&4mR9Bo*dV8P-3C>}9n;S$}KV+rWjJCMa zk$8Agt$kFq$m0Gu#c(f8$&juwPt@JY!s6j$Kijf}8YHlMCZSf4s)Xu!K-Cr2v`Jvwa+&1FAfIb(Er@N4gwAce4N%mri&o)Ld!Po1%q2$xt<>{Ji5IQHBOjqM7X=-bR~SB!z&jz1v*+dZYnncPQLu2!L4!amv#x4gy&^UJz=c8QU#iO3<@!Ma z?}Ugi0)4hTwYTA!!7aBQZxCo@)^6Q1h6J7dI?~;9O^4K3o7;NJX1MZgdzLA7YuOg`G~IK|t0QQy$V z_xt7qKi+lQvnyBJZ4hY1vhuNf!Ii=8Z|?KARGWVvYFH*8Lnof>?R=qM=;Q4bql2ZL ze(>84SlEiKSc)4?MMSizn;E}7cP{T6$$X?#Y8<>4&=;P*X4TDX61_wva z*k%xD#j^5oWd2?LxvQ=Uo^+aKqlRVj(XUF5SIrp^`ZzMbsejk6GlSu;bTA0CVp;j% zH8p+Z=Ju-VlbjaIWJMz%|4t*de(M)CHX_{z5-gJyeFMbq12r}x-3JmZlNEi-#O?z% zHX_{z5-gJy*DkeX!34G7sqOnm?Liu@T}pTB+hs`|S0YLh6eX|L9%2w^ z#j^4tBGIKt-1XytY}Bw!KBl+6C#m~~h<2Bv{q?TB4FauLRz5_Ja;ZnXGrd(dYFH*8 zZzfhIbw3xq)}>y%uehE;pcTu?hZq@L8X1batL37wjhu@$9-RxB$YO-B98 z?R9Gh_rII(D4Tov9+B2DGA)+LN=E*HrlAicP-7#~eIUVdJcr`%%0R9-zf?jSp?rL} z^Cb7hWeNA%H`hhwAPwh=XzE=JCNvEHLd7wj_zvq$XSm-S^=27rY=o-af|`FNYA?Fj zZF6|l6cQ|x)lrY{OD<0x9r|dten%qr%tH5vWZj5BE0k3^KHjr1F=72wx5YbIDNKuH zB9>JBQ>^-q4%_3SJ+%|(JUYuA(50(EpcTu?hah|+Y7IRjg&LO0NA1>CJSqpt;tu_u zg+AqKX@j#20z!q3bn(5fT+k4_ul?L|<4Cgf4lQEC0cYR+5M`m~KcYA7Nej z=dQf51?3$HlF5o|S`oig?;6nm^<(bJ+LUT0+9OZ42g}qR^n^6z?d-6BAb}biq1rqX z!8BQA&J}8Gg!1vRe{AsAu7SbAmTyMoAPwh=O1pg5k;#`<@S1x4*023$d6xvwFQ}Ex zRz#o`%gV=z*SGLX-iR9mqAw4V>o37R!a8U$Lgtb9DP zXIP@J!}MTti$U3_VVQi;^X~Z3$#C2~ykucw+mlm+bBp?AqsB(4Hot54dx@5HCj?zi zIl~~BCab?M`zC+;wEWP=HGeqnH!Us-&il9afmSH1a_oMki@PhoYcTQ^FB{WhnTV>@ zx8}dPIuXWI;lM%e>79=aTE5-IAkd2Cu&yq;%DsNu-TvR-R?9{W%jBa^owvo#M32zN z(w#E}(ae8+^E+8=MQNcG%gTqigDt)eQ@ZBXNvSN-)Ny9YUc@rfQ4bc2QIlYejj;Pb zf@Jog%Mtg%8uAe*l#j6FiR$lmips(1a+#<`ewkJz%P0PJjjG+m(KGL8g?UFSmX(jN z1>K`Y^(aFP%N!+3P8c2f2&2TE_w`){K~ch1EGr*jB)Yk8{ZWP*mdOXj@wBNIhx11m z?e06b9hX9ljUd`_!XD*5SF^oAFilp}yLMhOJoFLvT6bvYZV`c2D64XWBZE6)XMPIP zVwngUSAJi7QCL^u=;J=T>P&+`E0&dyaD;PDEgO_V4a?+%M!w5O6ox*+QPkc3WPgJ| zE0&dyaBO#Xt@lzmr?N~|G-{6@L zW}}8>^3me_p&qYS#Jb%-)}-hQ$u=LLu@M#@NQ5$3amiI&nI+e?NMF;XoFJimh&8n< z*6prXx0g|AY2~fjK*?lvDRETxEBv`{V`C~%mO03(7=q1+e zX#~+s=#q!IN{Ds4Bv^y#l1#rVA7Nc3#JYVoYq%V2g|#k6IEqA9tlLF<4E1;nXPIbf z&2cBL(Bp1IpvFcJZTdihW$8ook8vkHV)FqS8)5N*L@1M0WhK{-H3CSSBAdqw=~`{EaF#J14}ty^O6WEwo};`4B7QfZiVz z>-K0q=X7yy=N?RZ$R@!WoZCs}5uyWx&-PjOac z5NO4+@-gl7X>PTW;>1?Jn%ohlv`E8N>R>sz75MyT3t zGJlMFl>bel{?Ix1A;B_P(Z2YsJ$d1}eNN(hcXLrKckb3|Wj3pHBHW>O#d%a2ro}Q5 zw7>tqOS^}46`lgP;ylVA(28YMSKE6$@*s9~9W&^bjtr%UJ~Jk4;$d6Yq*70b$p zI96*X}ESNT{@4{aTT6gy5c;_Akd0s9 zb;Ws93Na}AYZJa`ljZnD~BSSzV!;!yNH3+83icXh#j1hm)^Ym!}jXrf3d|zg>N+-h8 z@Sft#s|?d(nFu;d*W+$@;_izxFM~iUmQ`JeGcP*T_r;l4OVqGTK4`a|#(a|HnHSw0 z2*jCJ7F$tTXvMPf5$@0j;>;_H_U=Eb{hCaRWwN5)RinX^p${ZbVPtf{~z#y=8Syn#6)4t&2=Mvd; zUdJuSGNnsn*EgrU5w>7>+83N#(kB}=HbUhpJnajLp6PE8Op_JXy5oeWeZk?k4Kdoo zMkpWQXRIWs{TM4Gg zitA0a2NI~U5y}U>QAJ-5`1|V)sm00Pl0%zaET3hmv{j$GNIv(o91%VdE6*K}LJiB5 zlO@mpEmKmtqW5v=&G?t^9%2$;#f0)f@BGkr6XxvfmqHE8lfDi`5Bf3%)z^--UzM>HrG-{3D<2`@ ze{@G)8ERPOa#a0%ROlnjmEUB0`}^36(jtFs#j^4dmOL1=^QtV=uuMLv-X7jQI`k3N zZm{moz#!0yW#uDm!Qkdijk8h1vh*P$rdr;Z&`CPgI(GE z$5t#WAJqS-zC>J=p@wB{4;nE@R&P`hCF05;sCLpEqJQMD6{S@G zRxB$YJo6IgbnKOsFPaghp zIYl^Y*dG$gN7$oW(dGuhG+9v`^WV^jdXy{TsvI>oLiq@Ll>6$t&RQf`mbsEWip#NB z^(gn7lB#P}ge#4WU>~war4dY%6-B--N7$oeu25qml#j4Sxne9SM}lQp4$%v^)*VOG zF7+r^j8~#|wZ=v$AEE_aYQZ@}wi*P}Wc6#;0*I@1`%Z96MU-Tp`(`<6Y=rV5BGIKt zJR2Lvfp5|yA%jRqj}I~l}_M1h-tA*#MZ6HCGGPdTakCPVp-)1 z=Rwr4ta8=R>>trQ$X1kAiyGRBW#t3sLDaAul>)U|E%edX#M* zR1vN;HiCWVc@PPf$%WJcpXuhWY#a<(zbY3sEK{%jtDg9pRfpTdCzjh%=eW6t z9Ujcva(hIe70O0Ad|HKLS}YT>c>bOYqYqnAT4=?x@`0ldYFLhPHTX9DlqyEJ4GCIh zuoa~x{e@O6D<5IW-TU6UtsFHht8(m3uKZc8KExl+Qnl;uIQbsoLu+gV(c-JXss-H# z{M+|d^g{@>cz=~>` z2<1b>6}4dCe7H9kH7t`4*|Mv6r-=7O@9gTdW-CeytypFsYF~6O;=8C>}QFZQ$C|#8Q*$4S!g1)xFvgrdg z&z1j>Y%xgt`)40Wbo%w%WQ&(ojhH^LrLp*-DP{(br*c+@&btH|*(#P$W~C z!oPTI`jDj!HAv9iAN`Iy`alA$=w6O~V;u?9@YfyW{BcORLW1tL=(owy2j&W`=y!cj zKTfa)34RZja+qFMOrRCtTu&!ZgM@6S=#5;=6%uGgx4-%3x|u7~AVIQy9*h%gMZdFb z`k;v8H$9E_E=5#UvzCM6l{Il9gAX9+UIxF>kG?bK3JJQOYL6033$0|2vi1+uAVIfH z^|uqS1(852TH)CH2WsdpC-*x{DZS*}pOK(Dh1};e6KEyJ6>G_9+~t-cnb%iD@b57n zph1Fe!{~S1jk*E?tuT5_9~j}Z%H(u2M>}eepu1T5?S9M^5@>}rV&)1pNYE32{z?J* zKmx6BRcrddUc~Qk(};6u?STZz|J;Ixl_2cGU00p${a`ihk!Y-}J$6{ZiZVo5dv4m*4Dhg&HJC=696SeXxe!6Xy3T z<=5q`;}vRu*hLKz^mdg!c2PrbK5_rRl+0YA#vsDCn$zP733~g8 z`y>5s@8|SBACF5U^V_TRuAF`J;alnCoo}v_OzU=zg;+U2g9P5d&rF~d-uO2O%oXK? z-(;kf0nc_Off^*tcN8(MkU%S3eWd%~dPjoR?e^Ij(?YAvEB$!Mxec&PX0A{}azu#s zXSosrtoUtEOC)0S37Ko5vPjf1O0gReLgu&YV!48-CW5WVM}~5M1_^!>(NYc|&1_^#A)>d*&pjGBJr$n*{YJ_CafS&LPSCyGfu12`pb`0GeI<4VcVDlY4|M~ek+BdkACNI zC7oam67-};ZzZM2E~bT6ltWI*^nn^A_#LBkA4s4Tp4ON?u;iFSe80scP=f?TrM(^pO=&`Orix=)Q7B=C-Sx)0v}Mk|`T`1d%W zHAv9S+)U-r1X_^~JHfYnsebr2E=NhV&u3Yl2dU(&L4xnu+M|RCw32lgp7zE|E@Cv) zAi?)+Z9eo#ZrTa2)d$uOzM+u0u26#nzI72Vhpu*Z$V0n`v>3BV}INW%v?$DVN@f*_wVdJI4!iwTn^MA z!T0Yn_z3F+tumLKT8iU`?pd--_c}Q$&64w-ZSu}{#7UNIZfy^=;(M=^6POkfe4{nJ z`{nT`VRxccVw7#nHxw@amH`44xbnj8zbmQAiloGd% z*&e9jTS1hr^cUS*!V#|4)pb0+0nw*z9glB4&^-XY4Pp8~4H9@iATxnhneQ5)1_>-* zx(^;@(2CZm_PRn15}E6Y2yQ`nr!2ggM|Z#UO+c(&Op9-bQG1|ovmB^Fg72`UM+p*W zg}F`lVU#1hbH{h_>^_)4E35_62h}LuB&D?Qz9_AnIi++Wigt)_Nk?}Fv35~ow4m@| zZ*wFlCv3$xXfu>N?B~yP=@_;Dq1CQIjOyT>yOQsuVmV}5;kp)Elb&8Vhh|-&28jaU zR)`8_i94@?WKuw_jjbOV=HuXF>K zW%<{@tnGmsB;;S}IwXQuvN9!WT%iWjmGYqxp%taX?UY_})?m6M^Y4`tY$bDR-Df}z zrYrqrB=~kTS+Pth+4n_Jg9OQTf;8ODbVkcE{myM;mK-%mkbGzaTgjBHEr=RSSIUP* zgjSRiw@rFEScB=3%)eJou$9cMwFOaw=}LcA0&gKmtMH7LWc!{aYLJk=ttY%lpcTn> zAE-e>#2C3Dh95uwn1~6P)8L=W0lx75#3nE3-xyMd@Oh%v_Sk^9O1$UFpwC;Q2D`W$_qAvOP*rg9Q0t+AIeWXhpK!2WpU@^4WbLfmS5jeV_&j z>Nj>DNT3z=G_&NWK_c^PfCO5RY%d4ynB(3n)w=!Z4mELtW6UfE5+t(~?u5h$*dvJ( z{3KHe0ed}}cUVw^yF<8ZWcr}J9v*!p5sn`u^Y12s8iSzPwT?ap0ajEC8GL|7)^wO| z<{e>73$3UZ*nOY|2^Bs3?F8KYKmx7soWiUt+>gdxJd*8gjv6FnOO4Vnj%j4||*A_w$VJ^-+6R*X`1Ks6m3i z6_~!ui5j9gCzz61SExY(`%Pv7tz`RK%Yhn$fSzXhFbJ@c{n742SaB_4f5d(h^8o}} zk<2NX1Zt3=nTTsTGl5nl+kK!037U!QK9E2wlI=cFg9OcLb{|Nf70GrV{GC*aQTpmB zf6r3(L2C=51_}C}DSxTbtX(9~3S-(NP=f@GEBs~MN(ivR-fR-s2dUTccT2H%nFMMK z!uYc4|50|{@ljM?8((^_(tAtjHK9s&_GUl=QUqxN(xe6my-Sr2ibx0P2~DI|Av07# zK*R=ug4CaafE1Aq?>#eflIQNuM&A5&J~`)mpL_4QZDwa@aW_DMYQpbdrFNu9c;71$ zm=EkXd?T$|EA${iw)-gYCpZe)u;q|{0aA64GFS2%35PwcQy0` z5U%@&LeOam_Yzma8i|g_qJiLkQ(KM%=0A8o(1S!0qXcq`QNc6l|D8epmZ8-q*LjW} zvYD`InDC3~IChc1D6-vGAM_w$^@ytm5*S6cy9RoYus-E*Z8;JcWznurg`o!tvfW3C zKfzI!w(Cel50-1`y%xcv9X};i$1ZxX+@wGG;qO$_rziZ45sP;1UGyjfeXjOe1V>Rx z+;3_-&|`h3k%Af)z-Cl(Szk$dap%rJ}km@g+mXPo79tliO;uU6h05D_7#4& z2fz7b>AB|vGNlsoDa8LItY`fGJ0FlKmFN~MgMI{O5TEf>TaF&mV8YUK&7eQQ8RR$8 z2A=fMgXQ8=nrf}^$$lDReE))M_d6`;Q3%;1Osg6S0a29mAR6GIC@z=U#I~P?LL^2J z;jXc0S+vggbfZ@E()kW;QX1WKz7tP0-)XKdqILIs;aF}|vOYTBp-ozYTZlwdvf)8n zp4eK93f^+`AVIc!U-=UpMgMpItOz|=F4?a~a1@mkY@R22uw1fVkKicM;Q8o3t`a?1 zF4?a~aFo>!*LjW}EZ5R|ErM4DtE3=nd*UjI?XH0yB}Y>BHLX9JqjVO zEZj8|0;1?DBZvlgD2mIaYX-K}zQVFFifnfc^dLc}b9W6SFp6w<4fG&EySBRq5*S6c zy9Rm`Lhjn`8VUhXcp6Z97d>Qixj1i{E&C_H_rwZdJWRv$i> z&>G`jEA${iD<7Y5{52BG!YEwF0txO>g*ebR*x3ix*C>d>^;p%Q`-ZGR_ZIp6l4SG$ zRRTRo(AvdxZ~~)nwNnZ7AVI5=y9N>%g{z&afgU7iRdUxr0;6!XQ#H_|5OVEu*H8$E z!qv`C1J*%`;&N$KVmmm2QMlTv1bUF5Rmoig35>$kPSrpU60|D0YaoG9xZ0^2=urr{ zcDZXP1VrI#=cl2pgNfzRsuV;+Arhl-we#0dS57XM))KaZ6BwngKBt!SGG-PXZXUQ= zDTJO@<|p5&7ZRWTwQc)Nx0$^C;>*t*V=g+WOCr(3HeE0C6Y)0jPF%b(<#-=6>t{Lr z2wRV$P&@I>!}N=6=wX`(e)`we;I|t$mcRPOQB)I*V%xr==Qk+RFUz5aZ7P?a7q&I{ zEzR`nbsR-yVHDf8hC^7tkcS?&6WSra7hr2RwX%MNkE0UW;Y3;5&Nm6HUt~-8r9bqr zP32OL(Dx8*4Ss7j{hA<0kp@PwZMS3E>%y=!e$D=wB3%xC)Yimy0z*Wx5Gzj0|!y95KJa zZQ1H5g<#s!NQO_uXY$_NclzoW?eF*M$Y1VF^tchW#?_C~dE0Fqr9GQdMI{`XqVS%q z$8+tYsosb4hiKvXip8Oa^^mYNWbb;ZcN<<$s}M|66n^)_pUzYVC#IT*`PR2D|DZEMKUZoPq@euWP`Y+JQ*zSClB&^ze) zm;N}4%Hr>_AYp4bg!OBJ9OX|~CCP6n*cwi)tY0id0;AZrHRv7mG^^-W5z)i8RV(Kk zL$-#~yVfr+a+Fmoh@w8^^*He@=JHoVL(s!Em8-71&O7_fm4}-u1V*uKx5F9jX8*4n zgrJ9QOGC~y-WjYNrv&{jxyLisq>~KYv!W=n=^RZqoub%Q3Eqn+iuWi>!`V5>Rtf&* zEqVAGxnz?DeYzM(@EvpV@Hg+trv04m=mZk{Ru%H_om-2LE$8;Bwcq|MMH4in&Hq>1K~d~c2+E*q%lW<6q|R^6CY#QvT#~B6-jD9n@Ea;z`EVVugv_NfGVkl;6(2i6J+j0&C)e&0Nm#lIww zbghs;J$|Eo(zW7upi>mTTR)KC-vS^Hju?L9e;|P#B(R2R?;?Rw{7V9X8t6d+`%Trr z7V_^9P`OB}1bUF*Ul<6i6%rT~JRg_?r1=f=fg0#Rg0Ak}XDt#KMK-T1YRl215OTkA z*H8$Eq8-j%gX&K2q~;v(PR8$%4s1Dkh-QMc*;d9z6}`Vb zuvS(J<>%St;WvSk&F>C(A+WwsZql_%s4o!wPHA@yCNPTMvmQvG2MKB)y+=4{0;Bjn z>w$#TLit<|dH9JWvat{S@0KoFt?4crKwuQ+M%A$PS4V@!6+P)h<&w?XDuEs( zuzkS^j3V1z13d}>?Nc?Zvw_nN{?!F)2mgLUU|*q!e+z=5u%zG`3gP@(MW6?13gIa+xP?9 zfdoe3)sm_~p8{|T`J1y;F8$yA$_qV6@Ef!PYlQ?x@msnB3A!4kw~CX8-$~B3a$gxR ziZtlm(Mc0jD=rHO{^oRGt&qSd`akz!(!EP>o2GJ!em#Ptu%}fGej`4WOYicgH*=G1 zUC}!$UvL7W_)YnNEk_R$!S^U6FbelXwN~gsB8f8t?7|ooe6QtSM4%Ru29I$5HHN^J zqX!AH`7VXp4u689XuqO&e+Fux2g~I*c_vL@6qUpyMy(Zkkl;6mx@#nq<-CQ|ijsE1 z|LHgN67FB&e5O%CZ;~g1Z0>2bR_H;3-$@@>D?#qc(Kd4LXSeoz1F=}3IS2H2h;oF18aq6 z27UuOMd41Qwj4c3kWFv84b<=_IEw!7KBLfsU% z|3D4&AVIc!2K@<+;@=1e)IblGi+66-4D!>_R2GdGdcK`)-ceP8qS&JlvK>KAeMmqQ z)sRc_(*O@eak;@yeOMMo;dO$l!M`zKw^rWYb@o^OC5gb^MGvhE352xWS5aJ-_IM3h5Uv&X zn@V7hB0(!SpM!!E7=u|1jN&(?2Wp@P30z%O4f4>t=cz1ybG>ED`RM)$7R^ESAi?j}53Cgu7=@oYskNfB z4{K0gaSh4l|EmOgkihl@Coqa^cMbF)f$dW@@bt>R)J6S+=TenG4-)))UV*)f1V+*S z-P?g4B=~(Gfg0%HU#Q@A{I>=Y{EHZY8dxig!m;4jS1?Na2_7-Q2`ZPPaK!i#Fwgln z6sYb*@cO6{==wJ;}gx_ zn{uxemxWPOlKUs_=s|+NY2~iLWnq+6(tqb;Tr<7(dAsHOt*sy$PFWa*V?pgJeAd9) zk)7uY_?vox8uUa$Le8CEcAzMt`Twd0dPtAnDozCdszjg$5*TIGFi2m?6M*AEf`8w_ zU4sdXvgon=bQ@l6^IOcREdDk**|hSxw;ZGR+v`aaSQZleuAjhmAc0ZzfA`P4(1QfO zjmTYt%fcwSH^Bc_bB-P)_*Vr2HITq4`oDYcVm_=kIr+DG-8F;gL4x1@9#|_Y%9#`V z?j4Hax4#DxRy&-U1U&EK`t%N#OM1K#+5P7BybpSiAZ@1Ad?0~Q{6?U_cAy6dt9`ER z@F#e+<6kZa)IblGi~Xjy14jnYyp|B{K1$Go1pf|2V6BkAD6599s}FjR;NPKe*WlF$ zqwr}lwdMRSBr1zeuT0aGOtMRE&yk@A2|95wt!f~FQT%qOz;>WVA*2Sq2|keE_uG@l z(v!bXz-@BRAl02cNRS@?Uu_2x7!~|k9P}W8&tj<>NMIB`IiwPpL4Jomx7;-3u6@aLZAls4-%GM!ZY-kK`aZS z=(`~Fe0yN6@Tvi?ov^lnwcsb^%SgvKi9>KFqYV*7atQC8(T(bH9NfR7p)z)=QL=Tp0 z=>;YD^BRg`n@V!O*M}Y?$bLP7qpaGxKKp?lESGHe&sh8kj-vnbcvE|qzd=spmEZed zja{ih-;j10?b5?{eyLox`Fr9ng!7$q^6+=jS%Yc6S}7X#TW&1cd8>|#1`-g(-->r3 zocC~8<;r$&Yx&(7fdqP}J2@Ko9Cs%el6G8uD$k^fpy03#0hmrhytt4rE`^yJ{&acs|g>?~x^f+DC7p z4b(saqk?A;JxEZGa1GU#D+EO0=1w;cqhb91MZ|C5&SL=mW5GC-(g8OdDFdD=X7uNwELNw zqWByQgf%zauML2}D9d)$Ko1gD`&>1Uz$omIq< z^5N__*y}2R9we+0<9Z@P0;B#PBhe|>8u_joSQbX%yiwbM9we+!&)hX&c48FS?xUT) z8Nyd_6vZcRvibjNtcMbF?1YErN+G zw*52|A~A}HU>b=YEH{b!B~TVd;TA4d0UPgX)2&3r#tf$rrJxHKl(gc@lX}k6=dazte@3ja%^;;#mjuP}> zxt9HUgcC(2@i-1_IeV~Nvibi>6C7pL)^&GA50-1`y%xdi2bIKk(gSP79xRt^{(sU0 zN0Em6T{ZMzxn#c{!BJF_``XUGMoM>U`2EXdlSVKi(Srp4K4;*4A1n)__}4uH392ve zEd0Bs6ve;j8c1Li()_!ofdqPx2;Nuz1osdBuBp2Qy>*{F6h&{!CL8qvM+vta3I4U+ zKn*Mlqo~)pBvk`FNKkILhQSGp;$Nl>tQC52jG=aL4S#}rIw>M?RMML7PM`-zCH?fZCrxk^ zY48pgNU#UXC7b`BG{I4%!8>&z!5%D^Z2o`J1V>rz_|J0*mTT#~7QrWEOXEM!S6HrP zzaHU4kp`at16$4>ESGHlf6@d;S?&1G^DdTa>A4d0sUGhvbah8>O{O{c`qzVrgfD?s z+ks`#RVos!?N20L@hXJ8+GaWl0;2Gm+K+%McZ%Y2=}MpN-~>kDy#bX#4-$08!d(Li zjKX^yss?(HpgS+_8c1Li-m6hH(4!D?=XBRl2#CUaPJSA2XN#h^T-xE-4o+Yc+3w>C zJxI_F=dOVSMv?8VfgU7i*1BsTfl*|;YoG@Sn&<8sNMID%i5edHzFLnbYv{f?zZI{a zEQ|bfsh6A!cjXhmS@aZR`y|-(|FE#Dvd`QI^7s=(+XTP;yXyF^vHludZth{3rFKt; z;J1J8shCB+J36se7{xZ#Hu3G>>B`TJLl4_jlc;2w^ssb291VW^_lon|6au5zwlzL| zzR93>BG;*PB@R7o+Zyxu*0IF)AvVZQB}@3)#ckwg(U6rsOCh z-{srg$^l04|Lxv&Bd{h^F4IgT=KN);{l0FV%|7z5O$6DgJvSrW3HG=V+zwR(39?xu z`PdJfzQS=u<+6usf`qMc{O3{TsjDfCW^Hzs@UIECsnZ|d_`=hTw%X_MWUMt*5)+K- zjq-&cfl+MR8nGweH&d*CWwbgtDFi)iQ~yj}eckurvoemxlcx>LQm^ux8BQ%%2#jLe z)}UyjGDM#UK@Z!cv2tD-@!Qk?X?8xSMpUzRpZ=;47{#`&L9M3N|DE?<2zuD2a%o&O zOSa$9pq`~3j$HRpAux()qc-#mV4I~_! zqPSLeU!ewixF$&08nWeHYI&`k_Y>Md9DaV1BIMx*59=U*uVMzL*c$Y_nmR;zo{LeRrDX|&ijSWlcE zvPK$>t{&^qH2S^BrVtp#wyi~SO9HIU%-is;04_}7X(TobMp{hu`w*Y^6!$|vj- zY*Q4C%EbLcwmM-qK#v;{sDT9AmWG_0K{UYQM%Wt8`}DP5>;93uv)vBzuuVCSN> zTDfz2Y3Cfi{V#>UD7I}4{?&z-Q;*1<(=N-ddt$l6r-Q$8- zGRRSOtrDZ6lG(PcfujUHY?DU)WFayi{S(huUdjoLM2@1eFp6zk17}qIWN%nyAz|D0 z|2ZFtbC3zF3DPz}>lB^eXfLdvtgrq?pC*Dl^u%`wPixEORU(kUvk#pzE~n{gwYJ-q zETX|>J}sdJdXS*=L+<9?oW2T1U{rQbJ`p~tiwl7sBQ$*~LE3>HB)%Bx3(~vjK|(!KW37>9Ih5s5?bN_LLY+v(w*Tw0E0VHAy?fe~&5_6hbC^`Uz^(1XOR;PGA&`v9NUSyVMFjNCa;O64rC!W7}EfVr_%h3W@s3 zJo1#`Rx2zEqw)+(Cf9to-o=@USM+$QQEP=BB=DX?Z~~+FgcGi1kQrMmUCGcMY(aGALv0M z`24^tEWGjxK6Zys>nVT1+L=Ykdg*TKirNmGQBg?1-A|Rk`(k;9^-IuG?=9hag&riL zlJ&QK3p;QXMFOL+N7P!O2MN;SJOw8(3a@unLdk*bE6#K9e4vMVmkG*~d##YbD9n>z ztzgeUqJFZTL3$UGn66iq!$5?Oz zqws#RN}vY`oCPYe$LK465753E#cYzz=U|mU4-!e7^r0+_!qc*b_C&*Zpry|;vAVHD;` z)j$sse7%ghQ3>=QK{a&mT_i9H*D+NCJxEYbyWayq0;7`7IoEe&nt=%|$I%m5D;`%! zoYe;=%!1$qM$wGoJB2EN9wbQ5J?BVZ6wPM$`-$j50%w6*D zu>Fa96ZwfdUpx8V)5R+?>-U5cKGj!=#49=`sHB8nW!LD*0rap-&Z2g~NuSs=kzapd6{Og7(t2qe&h z1lhET1`=2+tVx|!EybOtom>d46<>2wxqK}esDU0N_!>890;Bl)Jdi+-Kf#|NSu-jj zgI5-%kbPq3gYQOBx!<2puAgrBflJHLg9P8*39OY$BtEx7qi6biU0pQLgXPi~`#di_ zeMmD3M}?|*mKx`!OtSLi_^_-IE0qe$Dm9q2&w3U$hkY&T){aCE5>%4=dc{{JR2D{I4b@tq z2Z{G94%GQH7@WYU;4Mc__>X-P%EdlZHPC}Zy9F^pT8;!p(f{4o67(QZI3y+^H)^fW zLj-3NOHv8+AVF<%Uwx3kD84ER93|*c2ssjYee|o9b7z9eqTFy4Uy%iBpa%)czk557 zz$m^>4Aejm5;$+vb|8UKe7zf}fgU7q-l!VX4tg$>$|5~_ev@n}iJr3z)G$l-(06w` zV|g}q?{3|7q$tWPeVP?WpvRwZzgGMHeE$TEoTvKg)xVo#>CspSq5&S2=%e>rG~A^f zSQg#u)yLaU=-Er*~vOC8t6d+v#Hh!dl$zTW>zK8gGBI=hy+GmSu`MFRH_>2L4x`%@wr#L zx=03Hqdp z%fg)FHG@i^2MIc<@%@?L1V#nF^1}K)7?I2R6p`A2?F-c4mLowWxn~f|!YFKCpay3R ziEZ_C;hsS(3!|{tRSop4>-R}Qx!BVxfgU8Lo>>~CVB&ZL0oexf66kRQGZB+t2NKiJphQSGp;?L4)9IFI+kic0G zoWLl4awJd#JxJgx;qkoN=z#Zhrasygp~tnl_B`^*!_In!vsb;V+P{nx+dJ!b|Ncd= zP5<|Jy06QkeS7s??c@8o;?To35yzLjifsI*O?x~`%Y|tB=IYw7XP?D#6qSWhY}*>K z`5S0CiWJnoEjcR|J#3Rk1L4sh&Ff^<(Bm00`91B!$Emfa=_)G(MzL*c_>T0`t~~tG zyQx*<;^<+UG#ZWc=*`Y{bTn$sAErH;J;+=6ZfFUPqOvfGZCj(mg)!P^#ZpCdtbVWr zde|lnZKy{tl7%&`Xa zwrvf{x6He_a9Ya{^sr4DV^=?kJoGkeP`+i}O*zjM0;AZrH7MUQ@1~sRA?RV7G+K3k z9J%u_YgqZ7tDAD3m*6NW3!~V!H7MUQ@1~sRCD6k*Y0Mb^C^Bm-Ad9Fp6zkgYr%5yPW57=wX{Q9=!W3GR;%gpnTK%F6X&IU=-W72IZU9 zcRA1F(8D%q@QzBh$3yw1^bSkElf+7 zqMFH3R92~d&m+%H?5r0l`&TU2(AId{yLVr~+ctq7B+?Fi7Flj;XZ_OJ+Va~(`irv0 zs_!aT8c1Li_q44Mwr-H|QZ3dX1V-_Qu{BOV z`_0&2IJ1^kwj4c394q}Ka`3ZG`r~D#q{iT>>C6+2{`68`A%Rgm@@TEgRz`8Fx<)D9#tidQ0AL+0D0yc2;QB(%GaBDESF^$I5$Hi;Nt4HsI~H}&_oX=`HDta`%DX>-QM@zQ?U4C4Deu%*=t1Jk3{N7L zz0pBmzA2;p4y(+!L3t+)Brpp1E{{j%+n~G?fgU7MWq%qOwz<9T`?-qLkoh(!@BRcv z@lI{GL+0C{yi+^SgT%9_XOR^~wAW*6y(2YbzT+wHq=5uR@rlFMkom4nc_#urNaX$O zdE~hv?e$@=I!O(gZ!hKDpTHr>vG5UAjpPnQt%U-JifH zJ^|VqGT&axJM|TMka+Lcmyw^Q?4WyJw38Y#-x}qeG?2h3KFQh|GT$2Ioe1y&pQ(1S#Q2QMOjXwq4JQcZufu2bIq35>!$*yEvfo$^lYKo1hQ?|M8|HU@P3uC?j+e)!3d1vU9{5eZhi!> zgC(9059M{Y-FJ;cQ9HN>61+1EI#(=-c3>3th^oOW&db;}p}fM)Ik+^GSBcSQ*ZFCn z2MJz-uVnc&2?C>dmAG6y&X2%e9SgGlfw@f~00mk;cBjN&ntcJ6sU0zEw1 zOZ0o=H8Y3=&&U5Q_WHFPYlTs~N}QS%?ML9aLK=Ho%{h9I;1%_!R}1|#kiaN4gAbb5 zGEYyhXnv70Q%KIaz4X}XcYL&FM5XMd_a67kM<;K#?X~3inl@&S;;GE*nYNZd58FgE zj*HeqkE9p&xqay1?&b;eyz%GgK?;FUY}*>6^9(n0SMP1K9X`1jdf29N2ab!@i{#Ah zXq>q{%3S_Dnb9%L*Q+>+%EBnNZH-(d$CwjFt&aHP{)$-iuuU4ZK9APReOTPlcrk6H zxl!|ar$+yx5E#X_t#RVb-ey$2Bine%CXI#Vd+Vpn2uFkRE%UB@RbY}rU=-W72IX7kT{EUkjYALHmd5?wdh`p;(V%?G zyldHCPEiSnTIkre2IX7kU3)m_qd4@iO&V$U^wG07^*S1qZ<%*3?d=a00;AZrH7MUQ z@7l9eo#N2LHfem=Cr0mft%jpP`IdRte#qZMAux({$ze9OFRa-J&$MzL*cP`+i}H95~?(Ze=r=P?PQJyz2Fp6zk zgYqr&ZpwKcf*!U>!#6QTFV^v{wQ74jly6$!41>@2yX7f7Q{TeAD_a=ea^)6x+52<(t-bInP7T!!~K~j!L%2L;0rl zUCwibz$mtD4azsI?{c0iyE8{oxw!Aj>!`aMjGNaATGyN$MP=RixtBiR_7h+JcfTyn zHMBKad^OF;RXEhT=0pz?5z)Q%50l^X?VkE&X^-dUW2ub1S1Sb&7{xtpYb-4p9e<~H zm_?umiME;Kn|mVf_{yy%jZ>$0My&p{iq#GzFp5Wvt#LGesCQbKinfL`M#+OjgH3(( z$b0vEBfcPwNk1<1PB~P})&K&dc;wp}!?eBL*n@d30zF7n_QmKkwmtJTo=qD0ul?)Y zktRg|fl)kzZH=yxa64@Fu-x}rJ zx>j@6KJp+@?MaOO;mpipWC7BU`PL}!{sczxifU`fd~1|lw?TRLCoqany&ruEA$}ICS5Q6w|+%MrF1lQXM({2Z?>y&pQ(1XO4_Pz8i*;0!2>1a))b)E9=Phb@8!5$B->y&pQ z(1Qf-yB^OQE&7xw^UkC=x<|&V+LL2nl;%~GRvaGrsYb1rwL*gTjGsT-P@4CsWM6D3 z&AHi?mc|tl=s|*a(QRv}cY_fa#kn!t`fH#E3GV5_+x-b1ucZ#HFU|Ag>a6ujFQ~P` z{y~Cg@UG$heT4)@1@B#~71G#;YOT<29wVOu#mUQOV^{Sf7H}}-9rQPp)Sn8HI;q9dtoArRaq+WbN0}xba3=s~zY; zqFs~T`n>SVj>e-?g^cvAD+Lf3_4lCOdi6u|9F1}H@5MK*S;eXqdXPA_v$sBK?L|kU zOpglj-}ea*ATX-in|<`p?#y*G+E$*wH{$`DKo1hdiuBR9R%eX|LuW-aJR4@U0||_3 z=aHwr+zTCz7b`ACyt}B1MW6?XO;hAG&h_7&cEneF)BC}K3RXLiz^L6uj6SsVaz|st z@Q&WzKic^~4-$KC_tAfjyXt6E?K;PM;l~nIt&qT|sr~!vtN&T=Xngl)oVU)xA{K!j zB-S*P_m(=|a5Q4u9QBSqo-2UBsLDC|>7}adaWpPQo%J@Zmd$E8dXRXzGDhG0_gzP$ zap*&D%X29$4J0sX@XCI={?Tzq~j4}uI*DFu> z$I&=)qL@~tz!Hl<4-$*zeYkej(mEQ)>Xy+KZWs_iU{tFu{q;qeQwv(hJf27O%WLbm zG_nZvAklbqU;V)F%#Oy!la;kwZzT^PFzWnw{q>^FvO5~p-wx9vHtve2e4q!3v7hwS zJ3r6iXzbb@uI+JPPUzn{Ku%G-{{X9qKCSHHbt z5$HkUvp-|>(rv>Wjp3ia@@lJJS+zm}qY9?!r>D=}+|kG}`kuGVN2xW+2YQgm{CSN2 z#?|VM#?b~pdW|o#Yt#-TFzQxkIZ86Nbu=ziJ>>nPcpggwJxE-y6QggO|E8l+a_kE4 z^<70R4J0t??#3AXowqwW8t?r+)4S)#5K99+NVK`$N3Yt^>u8L~)XIB$cDVooqkjCm zk3MYu2ad+MC6&F|YE-lc^dRx)m_B;TGCoIRPPP*fqaRhV+JOW{O)b+$Klw&iN2BM* zBO}&j54SYXgG7bgee^ePvc~N1d+wVf=Q?E&35+V=rMF&UbQecsz@--P@9H*z9we@Q z*;_xfh&A$bPHyx)QQ2w-5*T%LMK8Vk?M{wHmj0!TlgBDr1bUFz|5k6ks8@6PYRT6F zjA42is~t#S)V4pP^_T(gI~ofoO*g*YA8HZkL1N&wUV8frwH=Lp{Wcnln-vNmFsf%n zw4S_dD@S8ab<-%?J+IXc^dK>5YA-#{l$wslXHPB~siQJm8c1N&z}TMpAzu?mW6wXg zjV?LTS_FEKXi=k=KBak8MlxE2S53Q8}35+^kw5MM2&$^CAt~wdaQ$zk|tqkZv z;>rDJy-WK_jz+^%xy-^%js_4Ib!vAHy?%!`9gTkX^P9&{?zC!!9wfYbqxIjvF5_ry zJ5$13(t3`ifdod??A=2@{8vRsT%$ zjz+7Q;pUYVX{?G1V*ji-$Ot9!5@xBy6=jc{mw412=pM)(~Q<9e3jDCShq2s zIVt1b00N_Km+h&?jQzpUF#6;)2SuN-T8737NGY#otew+LcKQfk2 zZX1Fgwn-yT(J0X?WiChK`Qs1Ge^L}Q{@svMAux(B5H+$vru^dHZVHDf8MvtR0=37g4dpk{P6o($RN#pMP#^U=+ zj@xFp6zkgYqr&u5AoC8iyXXNu%n^mg4)8{0s}_TjpImIP0$C>m)LF=4V(a-!kvo4;gbP1V*uKYf!#r-nBaa6kClRwn^h) zo)|It0YAe+`IdRt4*ytEAux(i*d~pv(?$sSoSKsl%D2qBR(8D%qJW4S`+*-?Yv`mf$qu<;KBIA~O&e~4-ruALUbA`Ytwrvf{H?8k-o`<4`ZPK{X zWVHCK_H{>t@=fczoaYLGQEb~9ly6$!#yNiC4@A{5s$XAAIXlqoTQ80e^e*3!_=t1Jnj{ah7vpc@NS@V_g zc*IY?MGU)UYaoG9+|#zk-+O9!YrQIO)e1dGbUr##G?{+ix95Idsqw!7E4`Q36bT?O zibssCai`-U@6oEcEdo7A{PNy-(f!zS-zPgrA2$%%C;! zUbP7HAhGD%iK0!))Z%t~(pXZWh!!#=Hh{n=p24<8lN%+qi9d|9K1)Rp5+nbdEGl%* zBHnqFM{3A?Ym|4&IT9F!YmCPu^Q}?d>2pr>AhB!k6fu8AUh(S`(vbPqDDR|!1V-_S zYPUn?Tcf-afgU72>ONUK-&$OBC`1}E-x}rJpTH>I8Eg%iZ;kR!1bUFD`^yATe_1&Z zbuhQokoopf-l^qCU=;6gwua2Nm-0>odXOlScAU5{DNHOJMH({SUdp>afl<6u+Zr<8 zUdlVQ13gIe`*N6Awy(O#*orh{z9T5_{sczxiNn^A`HrBxQ?1a0M9G0MBG1_xqFXc4 zkok_MypskJ7{wLNCORZSG^M;bEU2IbwKz$iWe+8Q$72IZXy z^dQk~a9dI0^U9*$m!u){ZBX8+E_zKBx2d(RrcOuY(MCLY4MeRlz#gIC*Cepf2dG{wUim&u+ z4O-VJ??j*niD|=Hip-r-h>w?(2CeIqcWOBj7{xoMtwHNL<(&xhAhADBd-3r8V_)s- zq(SRC<=vmaDBOcR9$MEa@6-u1bUF*IX`t>t|SPI;*}`ZX@7#}#F1CI%5ctymdjIy$8oooGzYO(=s|)aw=s|)< zNtAWUz}`gyqi`&!wc^uDhO~Lh@b3KHuerQN zz&5EG=s^PYf)g0UC%|fT{pSaIkiZ_1-}Bl$)_8QYlu36WM}PZ{sE~4%bx$vRL=-qKZMJax&r*SCLdHltCd$^isMmDtxq zyfcKK%Q&<9Onl}8_VWzrL85zw-eUI{erDoY>wEk5Eey9bkie)MA%jKsJgl*6Nru|% z4EwnZ^dMmz9w5GG#2R_4Zit8<7H0Jo5*Srw=UCBtCqI|*ak(cES2Ee{Ko1hl>JJy~ zYjR&T4T2t;9%_kj=ju%pB z`RY8f?mD9fiBGpp7QaP3b2PqdomCsZ@LT|aQ4dQj6w!ZPax{D|a%$SaZ>;;&=t1KA z=Tk+l5rGXwKYNwqceyEzYd1 z%hGwhq=6nJdLNrEYM$cfG9FGXt1Wo=ftOZMBrvLZp~d3O)HNK9Z)%p(9_SM+4fG(9 zZ{0L;^A$gr@w8kKZPL^=0R%=(%CkTuzYytYwCI;#`)A^At5)bi;{D81#rOO9xr~?V zvTFSg{9NT+;K^^jZ9mUpX&`}77l%v}qfLG; zqtt|W@AKPvEdo7AJotW`=uGQOL{L`1bUEov9GcCa(_ifBWz_J^WM4x)(VFNMh*R=jOdZOmZS0Q z(t>7(N1H7T^dM2V-P_{ZJp5e7ic0bwMU_6WG?2ik-ZGKd3n5BUp zBzE745~m&)ciK^|e?{|1<_ZA>M!oq(aq(76F-N2B4_CX{ts^arv;%2&Bj>fW0;pVyGt7_9qjUFT(l&mMlKg{K5bf_F|emcI3 zbpk*Fquy^=LX6s)&e3>QI?P+jbbjWcbF znHT?DYH6SciCgbB6dkkha~XYZ<}t?~*>7nefl-y0hlw_|Pdgfi$G>52xO>_n(1S#y z7fr;BGB2F-Zl~dC%&{&04j?ez zFbc1C<+tdH#u{Za7qx1I9whJ@*Lqb^T5+e{t>iTP_+N@F4NQ{obN-p(+1CU=;R+Bu0mq6|H~z&Z1QfBrs}HSTnJ1MOv43pa+RV(~64;M{l}lAc0Yrb2JezzsTmI z@#y+HqQ!&~mgiiHP_eXz&$82RZXt%BDCa_;2Z;vHDu`ye8vO@>Q8*UVzCsTYwSTE8 ziiWgy(Le&DaKxw@M~;jWo?1_=UYzpn4DsmSC6``%)xtU>7Kx0xqAYv=(@A1u`;sm#M-LK3n=BP`Kd<#41V&|_HbuPGypRil zYwb4;#>pp8dRkGz*Io1=v0&X4QLhC3D#>QqU-BBLX#l`RxE*j`T;^MpoBEwHdELzn-0;6z^Q3>=Q z(Y4fU(R=467Y!sZ3Rfak1Lt<9Gt0&M59K>DWXprkbMzo_@5u^Ld3gbszCr?{!VXOl z8@|rrLZAnUyPH;s_+pvIO-BZIX*Dd&WuhixjC*LhpxdaEzJ zdoTCX!ZLiS5E#X_tx>1+AKrI+chPo@n-q#3wy9iR=WUJf!O66}=i6xm?~PRmjAGl? z_;GH2?ZDe_Yv2CVBNRPsQ@Ok|*cz99E~&L|EVOEWv{49*V%zDf243xd-m+Sc-L*r} z!#0)6JC3c@eJFa^rgC|Wu{F}P=&Xfn ze|z;NcSAUe%EBnNZH@7b`f777@9<{592bHfwy9iRiENGOg9mB3Ud{J*O+H2;Fp6zk zL%Tat8@{os_uD65mp~8OR4%VXw#HwPqqR@#-HE8MC$2b0QCS$pwyhEOa*S5z;17G_ z%BGD&58G5OuSB-Sw(euJA=9SEZ;EQE5E#X_tNMpu=U2*7Po66<2%htGc zZm8xdIo7E8@;8ORD7I~lM+IWE6RGwYZTn_~;cD7I~l><{y3C+jsb8{e6-8a-@Nxx72u8o6I( z(CRjCX?pj4tPmK*wyp6{zwFI(t*aTeaqepLuubLim4&S#_b9L2qfEI+DFjBbZEMIq z$}9IMQ|?i#(Ze>C%U3M6hTNmPa*s0Q9;FZ%#kQ>>_oxWDN11YuT8$pIsa(G2U~9-d zs>_b5~DQHI>3;?To3mCILQwuaoJOu0uHa*t97jAGl?kb9IV_b5Z|QL*S@ zo66;@Fk3_JQKsCZ;^iK-ileA3jAGl?kb9IV_oz4J9uks8IB40;zPD8_ULmQqLJtxvrgavt9>loR3JHwDD}w_{oqVSBOYM=*+^<5^38_TDMhpY>udE-@SLLuiR`V1il}Wit!f~FQFv9X66ir9{O7S^cTKmkiv&jDd{i~igT(%e z6Gf|OyfGC!1hpEqFfAgT$u(!$jGWV_kBN1V-VRQEfSTkf@V7 zMoh@)rhx=T;mB7t(1XOAD?bpGkBoC^2ND<+d`96;mh+oXab;VSl{MUb)LNkjiPl-l zi-l>Ly5t-QjKY;q)j$stAH5YW+J4g7MFR#iQ#Ek+s#RgJ7@qTME6=#wsRVkEX#VYdks*Ai%P2ttqwtDV)j$st z?>?O^3Z`A_qJacP;R>#5pa+So2WN_%hZnnOAc0Z1&Z`=H7l+OUx8GhRiWMkjWexAo zs04bD$a;U3`2J8qmz*PkQFwnw)xax=$43i_Je%%Wt>yE4;7JBONc7u~Pjowx+@)4X zU=*JE)mmZQ2R&US_P2b)DmQpL(1XNZT~>)6Pt&^83JHwD`%G%B(1XPMu$3a++7~XP z1PP47Goz}39wdzD<)Td1n=TqiU=+?~RReQy{7@dzJ3}U`e}d-&JxDyykw@$wklUqq zk-#Xt3R7!^9wb_=%p*$uR@6lU35>$kRnd^bD(9JZq~2dXT7`<1I0u)m)caA%RhN*GSbs4-$H<2(ho-au*FGFbXrPYM=*+ zV!5k|&fUIr(Le&DF#oCsf0{w#=jO2`;$qFZ)_BFwDO3VINF1)bT-<*8rpstY0;6#6 zQZ>+nM5FX8#m-t)Tr`ltDBR&x4LqN>d3&a~xV^JgE?&2*1bUG8c*bned1E`5S|Nc^ z_-U4^fgU6-N6!~wTUxkiAc0YsSycl)Nc8_@k*I#Ak&6Zr7=`)wc)S^28OIt=GA7P` z*Btg+K9RTaPrmTJyM3)+QFFkLIu_OA4CsO0c(6_~j4gDOAynnx8WX+L6TXLwixxR}W zZOsRZda~umGqn_ZZw?aoD(&|5uhvqe=sd_FVn$zx@0_K)wr*i9v)zLZ!k1yVSbOFx z-}dPpMVD8@#rS^vd__)o6dN*)5apux$$Vs+ekne0l`yTr+Hey+NVGoOQRHefLR?B4 zFNvcO6C>6?OQCJq-Nt-l-6%1*;4q=fT0NaHT4X*s#LCCsS3|}3i-$V3YS{hz2yI}D zx18*&O3$Z?ke$7)z8aEgn#g*%x0R12bEk{u-Fi8FwIJLtQvEf-(4Y$;|uIVjt)Bhz{BZ#@=xyM5Kh%+OGJYBUya$#&e$w_MEq zvZ2+E8_$-A6kD1(8apx%^|m}68}YXsSGgyx5|5Ktv)b{?yj5b~{i>p|%=xdcR*8E9 z!<=?>E09j>(IkJwtw*iQ!57zvu*-!-lcBqOXTD!6`gJWNVqfg>E%{@OxD-{$(OCT6 zUGL$RU5pQRwlSB+trD?^&-Vfqd9msbFBFDz*T3~_Wq-@H{G6B@%v@1 zR@7fEmj7|aM|1Fa#1?Jh^vS#LB3JV$j6R4$cJNBd~BkK8dqbj}=OwfyC#$>Iy&V25aTuWQ7bw4;sX zvgMh3jTb9M4Y%4+rPFv(=G8DC&A}I^#))K)hC1yS^zF=uuRr_UxUjIRsr@}p)M_x$ z7ngd6Z`+fx;`obhKAMB^RfY@s`_YcZ^@XEqrLH>Oct`ftM`nMKIcq;lV`W@_u`;%= z)mQSZ>Ei0fzK+K3kFV|h^}uDL@1d@yF|(g&P@^j-e7`ZaNc`Lf0Ibwfy^J#QBG3U}k-S`!-&gWh1)+aC$JcH20Xd^q_wX4L$5%8m$iA9;rktqTd#lw~4YrgM zJ7cz5eN}dI8Byu?olakUQgDrtGPwvx0>bcJ-$w|ul_txNDRpo@B6TDyzl7KV&YOB`B|h~ zgFT+nxwD&1SDiJ+4h=WagT#lI3W-lr7{1?!5HYx4dQ<=EjFEkPErq}+wN^#arZHF7 z{MzWUK$z%3VqB}jV&47(zRUmHBQ*v!x^GTmO{w#M!?qpW$Y zrpMg&B7;I;)WbIli3am_`C7g@C~MWCcX_i-)0F0C&r_M`L88IB!lKr@+kEzpqgMzs z_YX;J9{A>wfdobkx*)$5_WKUs(1!E`=!v=U5Eymy(}LpM&~3icO^-`r(v#neL+{Qpx@>J@V!z{jRCC@j(^f-# z)Ymv1(?iKQ66&l?eKgMKa&VaOXRc_4z$l!}9?#-FV~v6>n;AvR4N&Ge66#u#_N|FV zgAKim>lyng1V#-kT2^G9w$-;&uE+AdQA3*>TXmmtT0Uuk9wcz>lE2P%Xu2V;eqtQk z)XUtnvz++7^cU6|wZ3H)F{|+!YmKV0rkwa?`5J2-lc(^w&y0l&KR535>tUh?iH=7q zic!l}IP2BD1-pzjEA|_^wzp9TjB32FoG3gn)<>svkEi5jkD0$)CUaaw8539M`yqTPibUuW%DRNYoo!PE?Iw>bq>MK37`&X51F{ zj7oXyDg;Jh4dqEc>kmenPM3{^LmHasL1NbIa^hNvRX(4!GBi7U(AZu1l(Dl&3x&Wa zwdL1ZrZC_CC$IVU@d769Mc4~fD_0gjEt=~aAy)~Hr`G6a#)=zR%xBHZnCL+Qd&J}U zV&4s;`=9B}apS@j0;6)Tt}I#{p6eTBt?g-AWHP@fTGY(=GJ~>nVh!tmP);l_w7^+Q zDi_XdwjUW{`d*|m(St<6P8H;D_RVqj^Sn*oFjpTfW#*A<2@)7JRlYajahrL*1=d<} zK0JrHy=pmg(_eoX=s_ayobsaIyK{WMTWg8uN>G8aMAg8e`UkhWVJSXmH_omn$zR)_CJgxqwI9zg} zbuLN$Yc0`z-9qP-Q880Nqw3`LM(v|RO!Od;Z9y$j{>U=uw^G}>5GwEKL4Z@#r&)tMb*%x?9uv3+NZLSPj3g2(eg znvac&SvMQur@JaM3W-54tBPWc=ljmdlat4@Zr(DZ{_P{iN8#-i0;AO44WHV|7!$L{ zNHMsFi6=-rSuQSAM@%a6iPO8E#u`SNDWPVbA*Ic&VU-d}HMASIw+8KZl7PB=9=H<9V?9yz#{}-Hbi_$Up+4)LQL& zeBPM-Mm;nB-d_fKkihE_kLTgJ3r4!H>YLZ^{jLxgg+1c&>>Gc|h%4nYS3OB(;$Eu9*wXx1{pR_$>d{U^Yc{wVNi5?`d7i7zG>@Y^BC~N+-xTHd0)W1t2#iX^P ze0{C`}j3R%?>!=Ft&1}W%iL|4}`{-_j`9?i4r{8$rF}dQX>;~$A4xU<4b2WkEO4#j4O=78hSimm0V$bxg@{2ZfPxLv?Fmp zgD%WAqn$nK$A8uso&POj=KoNgQ5dDReA&#mj1lXP8ezLfM_^9DT->24k zRkBqnqy6z%qt@0K6Fo?%D?^7Z_u|WaGtT(uo52c!QKd6C6itUsvQ}-6=i-LR@kYBM z#*(@pnoYe8g=jj-x3<2#+OE`4beS{BTIcao2ahN6|EN0eu&SBo?Z<{Fpa`fmJEEWn zDmLV7&L|cX6$P=Qhy@D>0(Mj^*cGuN7Azq4-Z@zxdwcA?U~iATE4Ft}$oKc&`R`oU z%;zN8WGC6#*?YI%HubGER5`VDB**{4V<0U_ywws@%gwHeZ>w<}ElA+3gLvb(SeV{4 zUuin!I6+6Cm;S8UH7=^WD7jtn0mLx9u@DklItsy(wzsoI0l+72Y|) z*iwv&g?ek$HB-LjBE>l|o}&ec_C33jN8xc=+(sGCdq=k)b7mDg2b0n9cb{SSYrn@?&kICrwsON#N(4Zc;|D$WU;!palUwe1la}C zzzYM6o5lMhdr%nlUfoA~+It4{Q06*$@gichjTR)fKk7g$v!b;3$GMBGmFRP|cx%f> zIs(1I=Y`QbiwNT(Z}a&4@aWD;m8Ok(j2NZjF`5+*qh?FQ8H)IUXDc*JfA&}E?{3D! z#V8dmNXQjK>3ei{;{-Lr4Qe-Dd9W>rr;AZ466mE=?nraOdune37uPXLzn{VUml&m@ z1&Q_>Ldd3GH*J*K_ts>EJBRVTr@kpjpx2_rjX&7qD>Ia*Mf!3d@g771y_UW1Nc|>;YG0Q2{=v$CdR6%iN15Y2z$Zh0 zKdMi!quje`$DcX3<7hzwpD~fks8mIHo8-vHtqar<=yjlL7YeTtX*{7u>X%PTDhvBq z@`ziVIa-kTRHQrE^%`t^pni+GI)$75bQ!PgTs)E+7Kc-veIwKu)nlZXy@(v4Mm6kR zVsy81q{;rqEM@u0M2;3D-qq?wUQdRrIax_+IccZqL-sC(Z;jCr=!It}Nw(K7o4k_m zD8){QoF(*UBzT$bv}w{{HPCNop%IhsdxYhCq zk)adWOp(pbT-k@#ZW*jbwdFREWDJbg;+2*ARMV*0)%m`;&G>?QeW^=CFJmha0dlqu zp=!^=j1FREqqkE(YGNOzjZ*FBwKLftsKZk?_;Iu#k@9RXmEI6yoS=@?ep${j9p3B9 zoke6o0=;_l=|>l1LXB%hT#+PK$GN7CmNL&2(FZL^d`#?5&5E=)P8U&0?6DphZu+;K z%rjU z^BupebOd_c{nVd4o!V-VA$!Lh)7Qb>c>d2~94$ypSQBZ54gnky_k)0v8=C!|y z=OI0TUa$X)CJ(PZ#tLE%NzB9zXqmOxz&2WwuByiS2lFm6E_ir=lq*7PpuhP~e z(v~t}oZzz6l4Fo zqp48W5aV2PpO`$Fw%iTX#%krArWz{U@#Uum`*O4(;eLG-mD(RFVxsxYner&kFn42B ze$ugpjzBN{tW3UbCqtJcC+;nBOK3sjt2~lEUGHvepnfx4dtKLXRj8Pi5V<8J&}+lV z5p*fLr#eq1Nv&co8FGs%!53#FOgdY2otr#?%Ss8I$<_rwx_wgmUYjRyqQ`IyN3lHYxw> zwY@Fx8y0r&%5C$DakL;2eJ6=Z@*rc1+H3FUT{i?ph4XNcDMA9h@^6o&<#vI_S!%DX zocPSJIy{2^BYG`bkf;}(L=%1m8egit*7fXj!|#cM`8LsOkwC8wd>kEK-9qcNb7-$2 z=#r7wzU8jFa(u?H)g`I&Z*(jX_2z+|P+hAXg;jEJtzkI*5jzBNVFB7Tpkpadu zwbvG&ztWIh?WeLuWLVIG1kOi_Jrv4SFkIhRl%L(zo#Qi#Js4?88kASU@cQmGrIN@x zqXh|lKW~4nnIWI{D=9N#bOd_gjHx8m`lqeo*vUDHDJM}kmx_db_BAkTilKDsQswOV zcpZUWrN1Rp$kuqHxiUhM!k&*bM7)}%#2icHXh8yJdnL&(z7QKb;heHQK8oXPG0q~F zwVg(edC6LYd-P@^yMLB=8IfU`lR1qdl6o5hMSnirWIA;?8Kp)wJ83#y%IszAqR#y6 z@l0Vu`n2FNiyb&xkZ@i%o${;qR%c=*sa%tJtVzpI{y}6|kU+1ey{A*VBR!1aY9B0B zK88&j+>mz^IWjz}Cg)Sgdr73RpNPA7JW1+*p%<(Bt~P%zc3?yc5@VO9kZEl{W1bp! zO9ZrI+snG}$u2E)1bSf`N>cQMMy#5ZJs&zcNZ-2fza=+JrPTI=jP`2Wy*Q^j`?#t& z|5L5AjzBM*?U$q`KNhlSb|Kt#+;_#X*$gUFG(wGJX%%Nsn=if8h=c7WNjnnKna9|k z+^WK51uaNSdN!S+t9H|(&!KipSP{!!yi?ChIs(1)_oG{A8hbOj9Y6QA7{{~1my~6v`|GY8uW4ALS;Xv9v{`68gw+ z_i~=$*we{MsK`bkfnJZt&Y~AZXQ;I%k`y;@fnmtL3Tig0`GQ##TyKV&jq;x~i+;43 zp^o(Qs|Q{NpEdkDc9@c!K9b{q;W3bwq_Z6-8NRiwqAU>ED6}AfYnmh}aC{j<;X@f} zHVO&!(w|kJM|pPsQ@Zl1K^(8#XEyDzoNg@QzQ^d}GMk3fo2f?58ja>qgNrG~)@nBD z>N5uxws)2?DIuPt1&KO&skHs}LM`sP{`F^0MYb#5_YBby==IuaE>+H$s%4`rj&x%a zckNf4Mn`e9ATizmGLN;mW5ahzdHeAW^hh zDxI1?NsGJxm^QG5Gp+cGDlK#bdf^#L(!bA_vMt++@%j^jI9iZ6;xvz1+fUKrZb0u@ zEb94JCDgOCjzBN{m3O*)jL8cf`GCKA-;f5%X#9$G?k_Fj|nf zc`c1>i%ix=!rT8mWfo-QEzf*YkU+0gmo!oaP0-%w55B%)&pn&*^P-XiEl9+kOryO6 zlC_br@2*empSU*sq^RUT0=;%`Pb2sJN!nY@`>VpXe6iyR8GgDui1%i*+XC8sX_lHh z5%UI3H?xQ`#rT}!fgCMJ;PWPO8JjX#sfqt7({6Uw5$JWi*8)0HFHIYzK512+(bW*8 z$&!(LIbT4_E3Z)FU{TWoT62B5n(@LOEJ>latF!X61}O(c#tSV-v|qh|UYgR?$~sAk zSkjIid7rNQ5g9Ke&HGBd2hNh_%dy=#{Y%UAGc3C+q zGG0iam;TC~9LBNHUKz?sk@0dLx|rs!7PXFIwEa!&l~JNd0>(fVpS z9XXJ$jf6|zD=J5IF3I&yhf{L(P{_^4N4OgL9Ki?K5j=#{Z+86ELY*T&9<6E1R{{?+*xF?L1^64hH|kXu5AmJ4s$s)~GbTW$VS zjGd7{uf4$;l=oz**3X@aU0^BCo+_n(w$(i)SZ9m(Uy>GgIm((pxuwjr?ZnZ7guWVg zeyuaC_Qgv|$7DT$US*4B(Dqv!jF(QEtB|UH-p6*xit@_62S*DM`WoS;j)&RSYWtLN zue$39^x7mUjNkU&tYy!4@7T{SeA=pv@CfH}-%CCMgeImVP&K#x zY9Cy;csUJzvQN!A-@LS(uDJc9^})Q%W9;6!3CfW#QTt zYt{JGG}rZnHYfaGuB-g>>^)_*$T~lMmPy{O2h{BHf_JN^r>Fum=cXrRuco{YN40)l zW4pb)SH7Z{GuvoEqQmx8H1n9KE-n}kKDL!BeLtog6|n>f^wOWz_`f#t0H?FcVAhnQ z1&P7SSJ7)ltXd#*uFq$-BsYA&S1F$ns3Xt|+fb6+YJO&?4jxdXuR*%DLgK~ZmGm)T zzdAc0N$*xZV3itgQ9?z9DgGCF&1k-oCiU8{%|XuJUr~0{<0?g~PFPdSTegq+rZ|YIF#Ip{s@i2Wy>5Eo zfAK0ttjj3>UFj>T!q9@mOP4j|kZRJZ!X6tN$*y-L{#0b>kwC9&Cs)&k9tX4xeYGQg z^3{HY_;?Yo(1OJF#%pN%-$Pne*vK4`4@DH`Q6gR;fnH?>tf4S5{x7I7HGRFrKBcTx z97X;L+a3EO-X~Etd20iE={i{%F)T`V2a(YC+BU~mvE2iEDVf)X>In40-YiL8-I7_< znyO04umoK{M?$}D!g=jnR_L3XvMpk`jzBMq6tUi9)fKG*Vt=vGtm|PL<+-RZMGF$R zPD7F|-ao?pyVX~Q50B!w&I8wfyb4-FU(Y?$;?=K|U^#I1ZYARKE5*9RdiuN}Po0+? zSY$nAtj#m#dmT59Gi6hP>wPU7RWzWT{5)f)vLx!ef)*r(EzhQUUU}M+m{MJqYe!}) zMMcI73H0iemPIL5A8MnbZr}Xmq(SSH8(o|^T963#$)>m4@2PY5lGMi6Ti%kgTq%^` z!O>#dEQ^k;ysOUY<3CB#`k3nS_J@m`yHF2^mJ~a zBhU+5U6K}Ex025^N>;Xv4AR{XB))%HORp>6(W(>fca!9^_2ZNpRXghl^um=rlJq#O zn|!e2ex;%4Q7uE)lf#OKYF`_-dOgYA?yJ2B@2n(^SlChSKYE+eR`gmV&?}_cdOBkL zSc?o&z4o%?y-kT18A!Asfp=Dt+!F%jHQm=M=fz9|66ob#cs*HIJki#FgikTZL&Gu^ zxs4-73leyrL}iUvefff8nlfWW4IP1A@guWoTKN}R{qFRSZ6}I77Qa_3KJ|By2N#i@indV_MTQqMiI|Tb#1NCQwJ9 z7oMSb8(gU>cN?FqELiQQd#;d}+asIU%NN?)`No8ra%{C}%Es~fXBWNnS8hG@3LCk& zf)f63f8CYiH64##N3A=2)9OVJKHbC&xt7Y(-7y?3Na$mUbLDBQ^@d#2#IuPy0=+KS zt)uc~^0oS_Y75-in2T*p=K8CW&g;ZmIA6_p*_2#Ig+ubyksfLsNK&r@i7aUIMpNLj zksSXEkAbwPl=Z5{9!!rl<%^6LT980h1W^GIwa!pG?NqM0{t5~7(w~*b@8xW=_a2jR z#c=KvxsG<*{xtSjvD;`@YaQ)x|5J^%q3g29()3%aznU^Go&5;SFj7g~_W9-KvA zTUu(X0dIW&hh0hKrn8HFX;q#nFPq-gY9+uPUys zAI!-rB;Q)~#uT30T}PnT#Y*dG$8bqqwJCDQKbp$te>y2+M~QjP#0}*6t}vOaapy0~ zp{f>z$y|+l=8agdSh~2jW^~?xy7HSUWtHi1z8oz`r1#CCxHE;Qpc*&5Yh^j;;&;=Y zN-cB*df^$0RYJqd$(3U^jDr< zv%b7D`jsg_WSs|>+(1RgTatNo)+(P3^tq}fnb#HJ^@%lDEB)oY>;IZMyL#%b1BtT7 zHjs48f)-6S*M5xp+FYKp-%hbwQdvi!7q+?>u>`l5-&}N75@y)x?gtWaZ#Piw-WF7_ zcByT{PV(1~8cGu}62|{Rue~?LS#>Ky1#6cM_YRXU_pG9r*Dj$2i8C%6soAGu+G^R< z%RS_)hiWS)#Fr%!=r!DbBl#XJLIst}_YA$|te-WNVDXMZ3lb;8H`4WxVpOnp>0ACl zdFa~uil2B7B7t5pr#4dWu0^Tf%Tg)kB|kcrXPUO$Pj?6LuC3dWL;Jgzpn{cpZTh&% z9S@&3<`cnumhB(*8BaM{!)&-0R(X%AR7cuBq<(CyO>(R@7pmYsCxfeNc_u9OuCt zEl8M_t*6+pb`<-sx$brKqb%m?^7K#>@8LQEy{Z?_rgD|+wPWmzJuJo_8*{tYisooR z!lK!F>K9>0<`t)6#w6cT{$-fvf7-9B?mBSYHlCsA=QYd89Um_BuiCl;M+*|M)izMY zXB8+!tu?6E+D@LDe(d1+a-DPpdNrPvL(6A6s45KNe%z4d)Hr+piy{XwZ~jKw{h>UW zSLB+mY@pno<;c9w>+ix1^uV_QO;oGfexx>#Yj4}qw4TTTpalusm7*mqDl`fNYpu-Lp8rTP{BH{4Lh9W7XKY>wCG1$ z9f4l@D=)TJmXFRl?*C2H;^1|BJ-UI`ymF-)q80~RM3UxxY9kLFzsAu)gR zM%p*gg*??-ob?^U}1;Kd;U>Dj z!I_?^wKx;xq4LySGyF%1D2fDn@b^oHGCUx?TENa}cni{X_ z9?qf`-qlns3+$U>o$&0r?A`t+{xwe|>iQrO?%`r|*SISEP}c(VTCks`tbOUPY>v?p z=!FqOl1deN$OdgFYv5uXJz9`he`7seepQLys`2X3hTrT#Emy-DQ4fa%dZ7w~BzZJD z&W>$MHgpi#!M)wrllSx*YK$6jA)AcV+|_6>GB}H-+^wm_lHlC`Sd;$W3`GY-a0@a1 zaBS{NrxN!X<9=jORk0_a#n64m5%tzn*;J4JeUZKR!d99jwy|+IM+*|u3W?G7()#pT ztq|%MXen=uwPLAag&Pv+WuLH~dU)3(*Bj=#CGT2I<(_kEvRIL!4<99>!ROj!UVnc7 zehw+owaC2wJow9cnz*AbO;IC5Zg5>WrM)YgBq9S^khs4;hn|$EMFs26jWs;w5zaN( zmTW&g0bcsEa{N(UUQ(hA>zFKawBY|P?vO)&etOV|ZRYFPTEDE^G^#LLl+aE`pcl4? z7)@L(Bmca7-LP#(u&%9;=xCKgAA&rnVEy^qG%?c=!2~;Nyj5w$g5?>(qFmg?gtWqzTzu$j1Rd^ zG*<$iE!|P>QQg2!{jkyz=(WPMftqA{Y0<~JS*Tn!JdiE=UW}s!iRkzZ6l3tA$!hdT zi|8(oxZaAH*PkPSUd}}}Qb^Z2RIvVhU8P#jGV-kg&M4f#gTt^j3{NxjqBr znH@T_zash|fnJ;XZKUCyytU|4#IA@u@X|g*s#t%H?XK&Ox*oNs~MvHl$I zAQJjs``mP#^?R__U{`#IjzBN$&0-F6e+KKhezPI^zu~%mj)Y$8C3avID<5;&(EUcN zjzF)-w(ICxvj#L=t#0e(Hl5w5vCCj3s@u?l1ZvAj(u;!!SnD13to-&Nd{IZC0@Jby z1&S}0Hf7e(iX4L)qc-neM^Eng(RMM@C^R_|j#y63*cva@Z z7p637%Y1|i6cXrl$tH__wiPNO>iY8y3mVHSKCWZYHWk#&#GW*xI#RseA)D@uAZq;V zAER5tYznX;@(@u;k~|lA%Wh|vvBilV94)I(XVJ(GG6jfuWzO#W@1G=T`T}=($o^F3 zJJeTq3?yD|$)dD-jP9zl882s+mD5rtvx#EGI{p`W;WbH8&^{Y^@8mePTjcuCf<)JP zSycIvKYgEO*0MNprLdgyygR#4rL&GeFMV50s#Q%+@L0w6ioDNg!#X-ys)hQk)^6lF z`u-t6{gT166?63c>d2dSt!K@}8b!1qv3OAyt%(fKzGU`&Z7lyiwUITnaM2Oyh4)61 zf)_QHBVX=kArCA$T9Ej7D~onffc7PGd3{Sc%5ER~Riv1XK(EAs*>vg#Q9;$@_{MGJ zQ!{f}zNnc%3ldM4X48u`&B#x!fm|@Gom|i12upnPN#AMPx)3AWaFe|?3Bpd;r+mt-nC;b`G>a9zT2Z)m6qQRn#Mkg z>>yf@z^6yFZiSyL?q?F~kk?s9px2fvYp9${OI008lCHGx%`D1Tu-Rh8x<|q)vW#t| zevvgxSw(*bv{JvwHq2T@FFLpS-x%jiU$*#jan`frNRAdHhAdn~uX?wl%OU34TB}V1 zSzPpQ!~8CK0=+OwNYbOzfkXnm zuoWa}TgWNqwxk2QC9<4oK_b{`4H+u6)V})O)Oy5*#zZlndf_?(z4Wc?l)8n@{WzBW zBUY@V!WSxkl^?a7YIY0OT6fkaXSuHPV|Hky2k-qZleTvcQNOR|?aHL2(H+(AtJi_6 zD0fe&mLu!-(oXI*;TkI%>&wxCM8LXCO8pb8eP11TR#^6lI?B#hXrUv}3(r=P(oOlS z&&QoCY;2J3I*{=0lS$Wax7WUX4xfF_hIC)ceBC?i2=qcNG?9l(_m^$EmXghSGH=&s zQg(+hHCt0EXf*{1T{Uwa=5+PdG|aZM_RTQkYc;vsj8Dv~yR)vXuob3@x%7GsLbWfM z5DRxXx$-ZTD^{$d1qsw~6K{j2_2u~kEaapU-xMU!OMh19chr*&?JZ?vjV}sXkU-ry z(Fc1rkZpdIkcYK+sUy$}TSQcUcBn1)Iay3TD89&0YYvYw;KwRT>Jg@8?z$|jD!*^{ zi+yV)>h8dT1h#@C0xTlO8;CPJAR9`Zn={=-O)cKNE9u;k~SrUX<0Rg?cZ7JxyRTd zQ6r51g`4Bd7a;bc!0%UCXMu`gUi}d-Z2S#fo*b zAYpZFAuV{+TZ_BVXJ@eIOH*0LeWHR6{tLaHA5N#&-aXZEyCj*e&SopqSF@tyqBvTR zNG-mYuHP5Rp=ynAxl6m)!na46^O5d40=@2@Os7*PdTDvMLBABXbiySz%1f;I0Sgib z&!p3d=x{CLHL1gImg!YUXYvEg>(lyM2;6J|Fn) zJ)3sDxNOecp#_QFqUO%Dx{sE*n^E%#3%Oz;2X<T96pIaw+Xi?@tAqfI+==_+;qsM_$vT>{`92Y)I)294$!TGbTyn4*$avT7P7p*0-8}!Xhf$Q>=MbSFEpn?!+>Gb!3SmJ6LBx z8vX7csm7?Oqta-^&`33^VegWp8+EBoK8#G5An@Vb5;;X3lb|2%_kwnsm*itx|qVs zPI|?DmlbQbK@S(b^xC+YO_#9FA)na#TA>^*Nc1~0pBiQkrkM@Q*<5Xi z79?iQol7}`Vzrn!qR}pv@~VPtC1N5H=+$S!d}^~OTAj5PS}(T`u^(+}$jKt^q6G=h z(D{^>G)$fI7PW(g_pmiC9`Z#I6VWU6_*`nZIF`&RKzbrF_8-Q^*ORM?n1~i6O5d1A zS@CgHpi|^C?h@mF{N$n{CL)1eX~y|frAMq56UR5c#B2u3vbhovEl4Cerc!23oE8&% z{=LO2?Qbq07xT49px2$+^J!y~IBmXmZ^&)No3)a|MNC8s62C^J(&4XhT1*sbR!pc_ z$!0YxB+#otnfX+5_;4*IT3(sM5`7=CAd&0C=LdTiKB1B{<5)kodCnfTLgf0;f`q;g z+MQ|7q#66!>?(tF1bU&Sv?PT~&TRAVCG2QaoK9^T3B5k`xB8B3%+f4&qUkUlfnK>M zW(w8pXe!V`%7}Vlu>LfO1&A3Fv><_c*pk#U(Tc4JImE__wfcwK&7d3hv1-KmZ*mG1 ziyfv$oXg**)0BO2+PBZ+$u{iltTQZGtolU@62&V{qw{w0+P6>XzV+GDS@}#BT9Zhi z*Rajg>5EUi*3bW5i($3$>dEQVy!fsw(`aq)ku*Di8~a&Jr}04}$gI7?*G!{S-x1nK z`1|ZA*3P!Jyi(`^paqF~)uz+?>xo*m$nLux*rJEd@<*WufCPHs8H#x263F6Kl##0o zJpi;IVLN9!<(-YE0u7;{BmQDmrkLy{^Z<}RFa4EES7tDwStEOkr`>aL3bn2&6wyV_ zn~4@>55}lZ_~CBT$m`%}D$vDwwsR5_x;U~~7Y7OSx+|y9)m@{tDhr{#!xZN*d5>9P z11w0mO_@f!UyRZsgR|=xCiHz|v%U`!=oMKkg%0)`P5-AM#O`kkl9!2U5wsxDXX`X7 z=QxVYs!FO(5feH^axbwq0}1qcX*-psISWF>M=={-dI&2NZIIX9tHRNO1U^0DOJ-9i zcKMsH{KVj;BhYL6{V62f9I3qxg2wk^M?>q$?J9Y5v><^`k60yCfmmjAO?h>epN>E; z_oyi}vEfK6(Dzv!+=PvsR$iV{CXk~A34D4a>35m~tFyJZ{I8h1Ljt|#+fAm=QHfNb z2-N#wpyA)C6WC&r>l=D{A`R^{T>ZYfcXJ{I4IHk1Uo~XOlq?U|zA_@q^)gf#GK2Xw z9>LLqL_$b1eYB1z+Y{zoU#BWl3~eo^v-eC-pch67p)S^TuA%Un1+4hk1dbLYW{poK zuU7G7R)QBbsgExh=8W6HI_!(l5$J`jAjWESo*C{q-)5yR_1E=5B-UC@rp>(*$*eFh zz8M-8VM^u~7S$kJN1&I!b>Fu4H_Y?7#)1=~IPOY-yA}MqbtI*niPu^;BXxzrJFu;M zx~nsdIzAIxjH2F83-(R$XdrYy{F1aj*x9teP$a8^d}^@+M+*`GV@Hwu zuq1UK0P3^xVQGt@qi=5?#M-RmUO)+DFXSMOvSX%pJ z44Kz|;PJ$a;@k{Fy;NWMi_il=3liC-$I*vvQMAv>rdhu>7#K+|sSHjzBNmRYKhJS?dk|xx~mD zJML4;6&p>Je~njTEw<0qv{AHl>Ug?z=%hG?f9NX1&UO9ecvGH&79_Bx#k$m;iwvDp z`^$yK-PaN5Rk6w_+FW`(73dV5bDeFt=GI$&GWNTI79^&nj-=zGlc+#FY0I|BhTxQL za*{ZCV_^v97AS>E}@Z<<83gxRFp%7o+T3Kg=Z*9!|&8Itax2Vb`g4(XhC9P zvqbt_b}SX>cm*A6WO(D#Kps6-|Fol*{>nX9&hU4b@{rjJJxjcDJi{*O!>C20L^AK+ zAW7YeXZtt&XFn@0^eoYWgg%xGiO6dD-fbQ;iR>T}=oLRXhHT3xXxTxJn!$%El&{0g z*}>r*V#NN832JsQZBPt_{)$)M47j7KB)NE|G`(RziB%H{0{CBe45TG#Y>j>Y79?;-SE1z{eez(*JDb$(AQI@MKdTNk$Cw)XI?2z)iuHG$22$u{@wFu8Wo=(Z z(Xuw9$*js$rc(sfKPz^OQS)$htM<ZUF$wL(}x!K8$)Jos?2W#sEg-VQWd(S zCHqd9d@@LmO|Q<;f<)aSeW_lzaa5p9<)5?H^y+k=>~Y^kN1)f?wEmPhX&e>kUkNoU zlTfpg&1zO?L1Op&ezd3J|K6NJ&B`RytYovA6OELOhU~{Hmg}7fnIwDMbfDy1#cqr z*K4ln$&r%sqHCS`7Zy&ZJB%Q++EY*1g9-1ZB<)Qc49!wlPC z8uPx2T(MdU9f4lh(}W7`EpFhNa*)=n(*o$Q<)hJ(m zW_C2S{xhC^7TLicoqEu_%s4ehZ6DBs<{XYwXR5KUh6zc~YtTo-V&SP`Lenn_OVrzqNdTJb@?z<&P z_u_V%_=tQ~OROwL0=@9gO45=O7ft#3huLMZy1%p%Mtq#ug-gVYMyxAIbK=RYi*l27 zp>sQ8wJ*#1DZ$F(!WHEsbDHt@*F$OH=0q~9Bn_$@L`UYwt2=d7{N9P8Zj7J;g{Gb% z(aP{!Zt}bJejF`GY?%~90htNv-d;krZgGF5PP5wbVUZ(40=?GE?nFbKN0M1XN>sf( zPE>a1Hjw`lwS#Cu;??tD`dfJvnRT%wsfgbsrT9=^IayTWqF3amAWE}MRHKicXmoFy zk{=?=D}*v0T9EiRp&b=%I#P>1)sM_jyuP=QlSC{*0=*vA45n&JM``sXzR9Ud_|ODxC0#C ze@S{8?5pf=WF=?VbmC}1LcdR(X-}%t_L;&Gi-g zTc6mww4NL-Na%O3yRx&D5^(xG%L>yI=#_8LmVVBRRb!=?<~-J1>3#D*HmgQBM+*|T zTb`)$p3qp?)p-YdBQo?}Wdi7Ay=b)$?mO6mDlQ$W_Q80U=2R^rO6!AHq+QD9mzCtU z|J38(hsd;*qSf==W zF29oekCgBBz@Cy8pt@iE#sN@(vW7GzX=EfVPU<>Q9V}cwL*JG5!ySlS$hX9 zNcb-EqhCS8w9%c=-cf}1j%?Q6K?1!tpY)?TX|Y5tzOH%7b z`<07hTxIJKzPkH?1U@~IH2CFyCFin(+*iB}@W0S&>-{D)zWiWqpXH=(c32B>30p)F!NQ*lqc#w;6!bF?6V`)Ep1 zAMdfsO>b zQCnNWU1?ry1j{O%sM`Y+3H`32PhAbla_7eFkv>@^Jg(rn??5pLk>}Hqe zK7ZWg?MHx7i zJX~B{zAY+#(Sn4>%Q{r^-@fX|Qj$h?yrXz|d}Pm@Tj&V%!Zs8&UfySw(`nDys8K<> z)>sK#%LJkkGT#{TF!QF14bfahnq_eXy#0P3T!-`^0YXph+Vl z)Xe{xl^*2YQe1~xL+>5q%B@>?$fK|3DcFigZ}apdhmn!AYp*%u)x1sx-aVwIe0{-v z1uaPEkKyTGjem-$Blq{-uOrYaXPO6{o)f7>xYrHK@zZrG%4Nk^4bL5q5xLKUj=b!n z%`{wpY0WQwDJv%hI&!oifp=EiL3ayYG2Ti}SYAU%px5UI9#m~bxHi+Ur`jIndeTmo z?i0>$Huj_wyqlUU-qy&I`dsX$=Gb-jNm^O%q_QUO1ZyX%anXXry5Ao3*rJy<3$VPx z9c6yer)-&ZppHNs)aBVijo&8oeI~A7KC+VMd z^wMAX*eV?A)#xjus^Ju_Wh2utN8m zv#)0obp(3NUg}9_6GFB8)tA{tl$UN#)athU5uQ}3U8tJBs-59UsU1Sqv0>NJUX)(E zqqehkISZ!z*;to75&0|pFFXd)Vs0Y$hbgq$N5ct`zd{QVlUw>ykGWm7V~jYLY--da zLd{_iySze4E|kcQ2|WNL(95lHb!z!GM9W6CZogI8 zr;KLxM@4b8AW_*%?0)LlPRpu|e|}Y&mAHxxGIiGx=v8!0HClWrM4RD#Q_q##-N|Ef zM|<%0Jt~rMc!)ax@gT4=c`OQ1XBu`!SD<;X+G}6P$)Wb#uKiWEbGR=@3lalPRVKTY zA=*sCqtX`q-Qt7nMCBGb0=@7I#R@m$cO|gvUbZeNh@%CG20yD3KOUmZG&rX|R_eQN zVCQOf))DBXzjBAG<$1j8Np?_Fn3lQgN>RnztG%<$Ay*nYy1iQaf!8OhSbJ9BTcnH3 zy{wn+I*`a8=t_+M0ady2XdZLeT}?-z7q+@2E&b%l&!@a%*%!*{?gtXS zj;@rtJy@$R5lT~BC`~c5(iHv|dR-nnJ8JJeJ09T2*;AnhfOin@+R0iK$o6B9T9G74jprBTuazzA zt() zrBBuBto4K_e)WA>a=g)4jZ5zRohiOlb2X~fnCV1Qr!~@I;<a#NqhjO$a5g>Y0 z+N|bUY&TB*q5R-&L`79M-F2K<S9QsSH)+xv^2!1MbY`0 zBb8o7R~s&iecXRJIMVg&_0)JZvWO#{`&LhlSJ*ctDcOFy68(3l;fBcRqXmgEt;*Bx zuD)8uZ{fXL75?+HAw%T!kw7nu7-HvMx~5cY;J|K*oIYBR$e&V{va=g$6~Aqczf(4q z@MK3tP9F*M@=PjAL3)Vs4*(~fdgHsQdf-z#fFrl zb#`7_EIGUCl@h;ViJ?MLU*5#mj+UoarQJ?KL*$h$C021$SK5r!g&H_Ze2e#C*j+>?@leMiRU)<@C;k-}_MFPG4{kIfN%yQS(<20$_&#k7H zW0OQ=2w*l;s*IOf-}?AdDQb}KrB=t1Ln#WGR6|=`llibNKeW9JGuPIl1&POzrRijY zI$C5nG^DmzUHaW%-j7~KfS3NPrtPZ9CtfSbR`xe=wBY|{TicQ{uMQ=TGOti*=j_Pk zbKeb7bK2?%^uiXAq&xeC{`FTY_WeeCU0We>zjGNXDSK=6)V0r);0p&^Fh`*Wfd7SF z2`|e~_8f05?$-L(pI2{HoRt&N2e16(NgE2dS3_NQg{>~4Pj)LF+tHpa7nxMFAW=Wa znygoQ{C`a+E;OB(S{QsIxTxdEmv!)Xg=;gPxBz<3B zON%}WD;45>R!i)Ps1e3?$Nq@-N!0uFxu|qKcFs^&WCziLgud7Qa6PJI&t7Dh@L`CK zKrdZymUg9ND4l#78XByP*Y$HG%FlJ6&mF63k>O0u9Hm()J42VuI30mr{X^{OV)H86 z>a&TdbCnhePyE-2>>yf@I2r0dGs{%gM%x=FURPc}JJa;JSlz$8x-FF&P+pBPJ=)k( z+E`aLb~)tRlgH5V+F2!E>%*&N=N(#i{9n%AQ|RiAm(SiW6J z%IR5N%k}jO>&16e$v(7UmBi74#KvwV>26Ya?MX}-5zNc<%{cU7k%NvvuQIo+X?vgY z+6c0VA&9RW(csWip%#i3B)%21qP3+Q)pb*1CDLP=H+%TO&qk<)qGeXHHD$DOQdd;r zKM75zHvPZ0|`M-oH+B|J_1C015QUwku7C5?!>_XF}hH3w@tlv%b&P z+!E9+tgO2F{rCY(>QlL#+Kcecit2>wkz8m9<(f5wkU+1zJ|!vWx`Vd5|MuVB++}lQ zZja;N6tp0L&w?aXEZd!bnwyq=|P{fkM;B`}>vgL&I~ch_(7?K|&u(Jl4-uCNw&fYb(@3kwC9?IS%yc zqP1EFB1!Mh)>cj?Y|1rPx9#8NK(Q;V)$E{j!htFuv{t_|&m486p;k6p=I-XwWTk1P zExEgdS}6V(9s_AfT0Y%NSw5g{u21W694$zgziJN;FRvXVYwGq;x`=ktZMNS(L;m~!peEYq4@Lv#ds<;0hvnxibW?4awGOG=FoyG+wZL~*nr z@$kDHop>lwLCxKVxrO=c(PvFv4|UfO=v7Pfn+lDJYg$NdF-`fk#%{_qp%&V@u?;P^ zDxxYOgbgZ1W73MMN(hGIrKxo}NsH|X3&igAzsf7$gc1T;kZ8596eWBuswp8H^sB^6 ztSh7Juh>FIpckH@*n9a=IsUT6Hoj*G9?>^=SX zh|mz_b;olGT99Z{#hN~36{2mSW}<(CUcBh-V5MaGD;hzP(B;^_#uw@4W9)m^ ziI=L*ls48SI9iavXF-x`uMXz4GC(PtZ>1y9>v)b0?XU9J`0buq|7!Mu0KPh=iPFDf z1&$UZ@aYkIna*L{H^itcv~klB=vBB)X&N=_x3N}v^X@~9z3cH08I6@vuj_KOAd%{C zOOdO78DpZ&yA^DHUYqCEZlDZr(TJl3iM#Q(6f@|TG1}Tp)NfFMU$m~GT>0ICqXh|k zLdEK{6{Y#YSQo`EG+0NV*9#x;dCN||tRnQ4O11GwSpL=*BqsXEKj zFGm{V{MlGcs0m=7m!yr87AS)|?>4n{N#HsQ5V;-7(XZWKjfn^Lh-2I;Vp8fJ{nxa2 z>QEhlUU-J0qVe1#<(g+<<#F9eU5`TIvQfPK_kK4zPBv%mzLof`R4!9WIlHrmjzBN{ zm49?UqV&mVAoh!o;*ScsP*}$s>K+_hcsa@m_|It8yy`cwB3-+4TT{pXY&fJ?o_1DJ zoQH6g2>)xwLI(~S@eC!Yp`#7A z**;D2p52C{1&N){%Twx!Yub~zEw%*jKW?}(qiqKrfnEtVLhm zO{+Y(Dc7D}JiTW$>vi2+EwEpodxH?a+wODyAvIb~DqWQlL z)V9SVV}UAHk3W^UQYu3!+^La{KrcK)NxJIb!i&evQUdzO94$!nKUS7v{GS;MRJl6d zwdHqrPgG8b+FB&gOMm5-*X!_U&vF#yhP&>pnq-%wrUS04@dH~#sL;AMX33qL~67k zp+t)e^u!z5+hAirTfR0mSDC-^n}P&-)fGy*{(Em56D=BwMgvqt4NWnFKZF*L)vC>)lHN;lZNUD^uib;NjupEW%Kz6WmcU?U9UyrO(9q6 zntMfyaPKxhSEh9zr4--ZLr0+3sJqVO)c&d#+t+^lVc6AWl47$sQMdCV?k0(QDoRp? z-AfEh11c%rwa0O^Afeyg@t);o!`fUY<#`=FfnKk$4`6qKM=9@O;yLcZhFUQn@vFg}(!y-e1+PY{#BJ|%SWaYb8 zyYkCRB)00@f2PG^9EAjWeK{eNjUx6Hd>Kfh0>U6FAk@}H3le^HGQ@hL6WTFEB?l9g z9O}*vNT8R+tz{HDV4v2ywS#uC&WnANTSA=@_p6Bz`ykDHc~jjt0rzYW+J=d9Sf4(n zl!)Q+94$zc>XAuVKd)=Y;I%3;iyj%KF!AgnfnK=FgCwQ)b7WrLj-D_;ORbgI$zAj)v>>71o1@hDS}e0+ z74^!IKrd9y7wc;uY%x^-8=Gs6S7<@vRll_qm2au#0N&24&4zy3mAhNSD~CsrU9=!!`*AH@I$A-y@@HXQtmcGC{-;I%Kmxr`d0ebyUA)mCax(tr)m>h)Ye4{636Oh(wqFI+A(IOy0NkI zBGtM+B+#q)+_jWit)bSsPC_4L!TR3JS>&%!Su^;_Dl&d;qvpj>k51&N?@ng(8+o&_ zqJj=BNTiHfMLr8!X~$^Uz6={>d(sf*Jx)iU7b@5ZeV=M&S@Q$C)ayVC5~#Q;MyV|p z7!DZgsgLfH`g$d&!Nxki1i(1HXiu1ZqUt!k{uy=225@$4djUiv#I?^?k6?|fod7Z=abf&{8i zi`4@m5zHZ}JKMM=UZ)9&I)|wCC%)U4|1k`0_}S1##4EHQq1PR(U+1-<)q%py+@p{{ zFVqkd5pI1?L-K(cYU`o}i8-?uP~WXRwL2Ji`J$m!kQFN|-UdjZ7iyu2y*Yjb7*^h! ztv)4aL85!xd6c)iuXc>oekToI4wq6_dLw~eg(K5w&5TIxX|F!K4x7<@3JVwU3N^^k ztF%s!td{2y!-*#L?3`#_v><`U6PmIfIflpoI;*XV1bU%nk?2t;%NpEHuTonVEl8}| zJCn|A9jIM-@`pKw3l^1FSJ6L^Krf$PGpPFBp<29Z>tbPe(|o1cx@bY-aNbnvGINM_ zjJ(a$3`)<+YU?6_UVXpJpnW%nYOQ;+cOOIOo#U+P&LJGtLHf^}Ko>$2)!GkSAura~ zo@{CuxoA0CB69j@L82L-NC~mSwPVDu=l(xa>ahRBvx@|J;hK6etSwd45c<_qy$-Y> zfvPc*M^Q;!Lo^``dpy}3DlVp`Q19B472~ZvCSf0A%R}{JJ@sEBg4BF3s^A` zuh4=7Drrel*be(#*NlbC@_T|#a{!eWP)$J8mn_XVlpW^78j2o;79{ja2(vy;%`F`6 ztzJ12=!NT`g?dumZn+(LZB<(rEl8}M*_Zx)`rjS=bGL}8%S%rdAmSAg=!L7Z#ZG1w zGIGzvuUDTEv>;Kddso_P8mc`dSCT83oR)j2Pa+cN)zG&GIqepTav}pQ_U-Gv($sTs zIzUIyj^fn<)AR66iJ8Es%1%57FXP;P^78!iO@{ z)&&gx)d2j{By90~NomKN{xk0w)*-VW+>g%%`mWuVYu`I%{2cH5Ojig<+t zdg<@rm&nq}aGJy7#Aq8WNZ?9l5qAf6R{mSqkiD!kLboafSK8ou6QM0~tC-T|%2R`< z=uv1vLcj85><(+Cf#p^8%MuCn!U}V-Q*3^kX=kVAYU`o}iL$5N>Cvv%+8zA6%|V&* zWVd0qh*wCU7goxPoq-}3n?z1VeM-=RgwM<>RB4B-9Yf@O6p{B)zx0tnub0Cs(SS(- z+S7ig>ujY$S$lR(jJC1<8@;ezT#{lxx+vb4*BM5N)tQA7)4y3J*US&dGz0UWTore;|QgSl6rWmueFGrK;mW zv>;(Q*qJ=5*4B<8_I*{vzOQQQBBAs8BIdk~*V9@zY0pXJo@J8%NRb`H`m`VG%FySP z71VfzH5x*v$a|$yEQ3arE6))YoV7?Xz_c0^QZ_dNMNm^*!wKNQ(4!tk)g7P zS4il*ba&7)Z>iF>eYWANc%MsPK>{nK#XeY#CM%tX6fw059;vI7!P+0JfDt{)+FL1B zZd-13(WB6UguWKX*2hcn_$!&rSB?aF>E^tp>&-WrdN^%Vvx8_sB6hPg4LDm^yMr4a zxGUlHTbS;Nc!dOd>1N{185Wbsu&6afXhGup$qMAS?Sqy>78w>rWLQk*{1p=D_1)Tu zf)9Msa^Z)!EmV$|zGKP}@e1dc(F^CJC8@)W>dNiDv8FDfbu2IT$1OM2tX$1x&Sjtl|F@M@RSH<2r(OBThvk(CbvK%xh$}||y>J##&B>TV zPR3;JgJ?nG=YSgY`sg|B7$WbZh`f*5x=5hck49Cf!|jV&>+Xn{sucU;Knd;{t`V2gGPv8RPe>}jF4E)wX~?pkd+Qf;T!y0xB!C@Z2jD9goY zdwV;7vQC?;?sbHd{XLjl0@!(Ihn+dpn2{Br^Ipq2S*WOdDCt?RReZsi0b#y&XgXwQ3h=Nm1Pw zneAZjWSs1sjH+LQC_!R>pC+`cUZUAo?7feZz4zgLg#>CT9-eflPqJxaY3xa7{m9&E zR%QbwNM!xdg90`rnl0b^vYqqW%yapeBY|4j(~^|2)lbggQD3QgOhgG18-41~ybkM3 z8|Pi$InNCJ)A<8i4Uj-BaRi-7{nR)8`>S2q(>6+w*uSS5-ErT0wA8U`3t8CpZf9>T>^z~#uYW1ZK6n<->>DAZ2O>+9yEw4J*6@?NcTqkuT z*U>Z0-n~DvuQRS`CEju*P^&|q9^{^Jq-kTriQR`nCv4=sixMQB2lu2x&nKBS-pVDM ztya6M<=AR~1ZsIM_N5wohncg4y^}e_-pTM;f)XT}toEnc$Htj9*n1x*d+)<%A`+-I zZlf=`I)<6EeL_qp=f_sd)OsvlC9mjDYqkXQs|dB0NebN%c&Pc@n!Ide#><5a_~0ZyC^}TdDd{6=rY!9d7EVE zK*RDi)DU)kAc0yFv`EVB8e#S>%TDRRvQzTjMF|pHBjc#*_m&NoWwQy(vdMcF3DjC} zBa-4a4KaJy|J$3MZyFp{H?pVg5xXbSfZX9cUJZFOfqwozQr5G*6?C0KMQ)EXTVB4) zde2U&32J5bb`T{<3>iM2-q(sZZDcQ`cs_0CuI^=5tw4a*#(|URaq={?uh=^oPxelR zw*w_uZ|;!sv}#nm*;nknPgC~ZhxZi{s5QOcIEu+I(X_EDq=@JESMI7S8xNEq@%h|1 z%J44MYNjkom*1vv;jJ1HnE8!84_17`-rTMB@?(94 zb)go%17w*BA7@qHk38e0_Z3QzzzlZmWb1@qoSBZE^9o~qg#>D0wnvr~*f*#8A>pG} z<#Bz4JdjA7&gDY~e;Z0KcrLv&WfnEO-C~YYNB_TOmZ&vkhb9 zW4VwveRFVbh5c$nc6v5SkT`iYjK=ouZ;tuPMhg$M$+Jb(`w9uv!U!%&iw2c*{uOkE z&nuK5@$>ir6j5rRY2%R`?`+xe2XzeVDi7vKFD!xHDHI zP=bWL4J1$tpU6ZT=oRimMSCKF5+ra(t382QxNBATYEPgR?o|~D z+!tz<^%2B{SX_fUhvA4DV zLg-q!+f*cQFF4kVd!R)EB}m|2ZjnG6xN{Y0kw6I&xChprKrQ>0<2YMo{bW+KZEph! z+>>lipcd|w773K#p6&nU6%x3sT(p68p_Vv;`YdE~%PV>CwTk#Q0^e)YdsUhyrW`jT zH4^IsOH<}{N90N@SMj*+rD^fuZ{?pK?*E_OMFPFD%6gBptoYnkwC3C`AbpT#d~Gr*ZpV%B}mw}1N$Av8EMfglpyhZ zZfR;d=R3J2&s>jQA%R*rd)S?Rbr$~}FDyocSxp>2^s2@-9$SED`QJNVt8J%L(QP5RX(5;*&;vK|vH z!nmTa9VkJ<{RaEpgx^m29?wo`N1#^Q4W-GW%T9SF&lQFQN?JE4L&Mtalv784`yahR zBE!UTRHN)pc_%-|1Z`kDPz&c6+jz!iA)`F+1XZm#Z$UMBP+^TMvk2E}Y&ELyTp|C= zq7T+268Odo-*Po#`8cj8uQQ`4+Q7Q3vOa29lf4bB*P@LPw6lRkhs0`BI(n_#oL{we z1ZrWAh+bj;yc|)DW@^jjBo=G`n^#CghE}6o^_R+Z2J2bn?Yu&*kHOVw;oU@e43E@E zZ0=Nzp50x*Behl5`)6A3YV^L>VmX0FY9vsCgnc`ZK&>|Z)hM}Cf*GmN21<|++c9QL z9j}xEBej!tR;IT9rZM$dmLTirqUKHTpfb-A<^|N=;wn(4^iJ^bhr*a*Z$i|7ccI`kdoNsK`J)4D$Qg{8K zuElR2_>Bd>)`$dpWtH{0gf)o-O0ZswHs%$2g%Tt-FKkL}BWB17k8pMbYMt8NlwP_` zm%Ulc7rjDB^#Y#s)A>pAJ+>O4ZIM6;5-qBDQn9NO$u50F72x2O#>HB=I^GhvN7iWM(A3zliJb*?@6+8!YUH` z8#<^*r8qffrDJmO_YS)48_(m1y$zJS%&CypYc!7~!wNU2-?NOB_4A7*32mT6%ioF? zMvRyBv!1agkw6I&dCRw=?4!oZ*Z93C+CT!e>|2hleK%aDlXZs6`l-WMlf73+yj|Xm zCa)hQ>n9%D6R3s#CK5RNtg^m-{5P+V$i+t1*DcOmKkWJnwQw%5({9)-WR%*Z(9RUg zx*ntOi=y>^VcZ}g*=tKe~kqtYLclmgJH~HVZLZab? z4m8y>+Kh>I?Le(JxjRzu#R%CvBNzG#CEM?lg2k3& zU8vRV`%aW~RX^D{jTYOn^y$|$aBNo|6Ron|(~DxhrVT}U%EmdoNT37>v@Lpt1Zt^e zST1DWK4wfr8z@0SY)4k_JPxURSMBV=nWP%|C?y_+r0@}d3P^-g+E|jZIPxF}*36wZWb*1-Vy=46?WUNVS2TG7= zmd%HnEnzc}$3(P&1ZrWwi8gS|k$#n_7v<|4EE}f-qYacGVLu*7pw|8#-O0C-zigax ztj|JbN1M^1a4LTL$6W;YwMLSV!0$D$#tfk8Gy3s}gC2?mN|0D^YXEik>nj^4#i9+A z^eZ}$8t3=n&*xZ^y$vLK_a8_X!n?})dAarkYQ2mZM9ngFko7ZwMdEq+0J`JaoJSw4 ztk3WPQG=;Mwbrt6axb<6B}mw}0}0gn>D3^rQnZ~Jeb5FL_5@0hz^}5RS4g0i^?xIZqE|T1R#}gU7V-bvff6L%WecR5M_S3o3B+gv3Dg>s z5J+c=wv~+&h>@85Fqrae=pyT<=dS-Igv$TwBkQO2VomlfM`GobFgp1|KiPAMz7GIx zU|pz%BP$ZC|jdNd-=%|gP z!>d~Gm}r%CPd?rpLCf;Bk&QE1kw6I&_U%9dwZ3jNf^to^Vj|i=2@>}0z<$SZM%uow zkl1iy7+p;5BO7P^qE}cKYT@jWq^h-hI;u~|rnz)dQms8#dXM@oA4BId^^nK2EBL2k zW6Af2-tu~W-Zl~_$^K?6H99g_)=#Fzn(S>LvGc=NI{kUD{DD8Eq7AGIwH(jJkw@ET zIVG!}Q4R@|MbnP=LzMI%#jhav80#J!Osf&N-$eGITBkw6L7YthDd zpjRkCqQQVkRA5`M+={;)v?EX}$A(EXw?mL@oVJMsN=771Cg+-gvVK}G+7{b^5+oX* zn@lyA_{+vQyl4Xn)S8t%h5SbKlZ|tDkr@AQDutEn$>Xk7*8As|ep9Lak>0X#ek~Fx zK>}@y?LY#x@<~(aVsc-(JI^nQHc*0u*p3@3A{k|Xv0h#B-K^E7@vHyuBN zKD3?2-ws-3W6b}J(6xp%oIzgsC-b<%@>zlnY^_z+uXB4FC_!R=scF>qO<(gmM;l0> zR*`1YC_`pH^E$U9>Rp~j=f;Hb*xn)Ybh^4f(v0m$U|l78O{4Y&{dr_S+hWU6g2Y92 z8s*nQ%*cQ?kU%Z;P_%*mW}P>kqOOeMD-PBq5-33;)57W0xA16l#j*1WwZt*k=Ml1iq7AF8M<2|R$9}vFM5TtasQ!h?d}sI5oU^G+(joXJgJ)sR35 z681KZ6rDq@^H1baCUg0@baLK!9!o3_joFSiP=dr9-?`Mg$#^rC*b%6;q}4n+^k}RZ zOOV*LZ9ci}8^vRZRn|S3TYNsT{U6ptoXQA%R+hw$G!d9mblm1Z|)M3Hx?n zzvFlyEqa9#B)reeCYMPQ&GiGlLISmLWLb{isiPd~mP0ZURcI~UOEtIPNsI?P&V zm5nj~H$vCyuxbH4b|&)u!lI4Qf6b@hSySZe)l?blU3O9;HCVz z)}oEMiv&uLICMLK8YoNo6RT(g3Dj!+Ln0m7pJ+aFqK!SBlIZq>1Rk%fvhGRJ&ZTsu zX`=bei3CcJK-;2MNTAk1Whsptk!Ze$LmMbT!oD3R>Mx-qwUYRgBKEZSOAEAt5+u-` z*bXF63xDMy5-35!ewHACT9|QFlH|T)9KF2edU_lzvUbz^rSwO?&HSBrVOB0TZZrQD zV&xq*<`ojCg}<(`Cs2X}{<25(3JKJ*{%<@%qF47yCsEwaHT)~d{(?#L_+<)z$8Hh- zza1z+qG0AE+IC}ueDRe2D+siK1ZrU)iUiJZtE|UFtVtwLf<(m@NmOBIlKEA}&MVZq zM~8;z2vO7#`|s|?z<_X-Ku3P}`ne6{&i25n$nsDF)M8W*>m%2(KDzUxEc(c%^Ka_Bz()gpM=N_wj9lTXv3|LI*M&?~E~&n2`i zdWH3N+_sXYAKk~le^|6Juk36fvEbQC>cgIbjqe|J1Zv%Xm`pWG>^HxEAdz?QYVu)k zIQ6+?m32?9oLEI0dha*Ce;|PpB<$OP1ZtJ*zKWhU*>A>Ow1E;N?Aw9;j^m89I36fL zVw$po#`oQ4esM>ykU%Y*J?!^tUk!6CVmXnuyaOv*xr6l{9iO_2Zol}B$CZ_%SJCVe z$ITrnNTB4P%PMNo{(HV71#7amfkb4ERV0UfZ|+Dz8(0@=P1}}C9-S`AH=X)Z5fUiL zIysr9ue{86>|jkIff6K6cSxop$yd#9+h_v`)Uy6>L~0~(_E}|p9$SQQMInI_B(^nL zP20X4GjjhWq#zlLJDO`q3u0>;(I@^CXvA0+L+55vx18R)@7CT zQNx-<0wq|lMH?fC?LY|v3)&V5lpxWm zRx16m?UuRg#m+0#8nP^v>QujN#zZ7Wu3ATqo_Bbpw#s_{xO}yaUT?TsZ8EYTfZ2-)GJCWq=K=Yj*Ec@_PJ;$6c*(DouX)o4KnP36#9) zmO_OVKj-^*u_k*P0?|2z2JC!p?%zclSXVC4vTp~DnpM^#9M)v-6%sAGuA>6We>NkW zomZ&UrTjWN;&R`Na7duUE#o@Mn)LzSf&JgSLLxdgm8KMaWbVL58(0@=;b=;dKBpL^ z72LNV)gttWgL&w!{~PlvJwlftQPh7e?Q;E7?!8?99%VE++zE&TO3H+$ z()__+`2FX9^9qRzrPtB+D9Jp(7Hwc%sFf77jyilRnP=o8fs(`l>nZYd27V$i)@0vu zB<3w$Pvx>^wH9%=|<)tE`VrRMU-A@4HOq`L);% zlptZ>4kS=(&-D!?^~_|Reu_3wf`r(PkAEqS?OQ82a^J4&R{FOTI{QZ+e!eT75nz># znfPynu5}@pT_1;Xn`g@+fvvU5dStM-ff6K6_->@DU9y;G{h|$&oG!kRn!U=xPaVdZ zBnb(WAQAb;2CCLCt9dT69f4W}kFxPNnw1t!(06Phfs&QAHqh&G+4*VBXj>#uf<$nR z4U~CwcJuUXw1EU_t=+Po_VxP8JfRy2ltivwM=vkt9Qpw^su z8)?^z!sZFY=+*kYo9OzTqCEOoW&IlT@Y+PT^B3hOEQ>Z!f&_YNPoUPGUpLZ-@kPw& zgI=Ko3Hx?fTKYPO<8S@nh(2foB}mxM5+qOyXAe8UCBCGi&($`LuTBkii@Cjy>i%4s zpVqtX+B&-Qq%=Rp*E;3H@Cpgka`R>P(T&RSQ*P}Elps<2a0<1kS>8Oq7HuGbTGs!K zXHF!(EZjhM>y_kZ`bL!BK&2j*%Uz>8%UrQ_Mu4N z?6b=HYJfF~1WJ&o+F%pi*-(t1Mr}`^R)Gf_$)!qh^VDf<2TJB`-bj1L7U$L~10kg>CAw`^4e3sKnTB|D#t(l&Z>} zaYogq&pi5|4a>SdQmBRfCbk@VaY_dEt|y@`J!N}2u_lo~2@;VXQm9;VUCJ7&@7cEV z3bk;YcrGLdqg0laE44?R6e@GCDd}ggKHic-^KW^Pe%3467708{2+t4NylX8zxaC3m zDZV0sby;P7)UYOzKnd1s(Z=sq`hg;x7F=XYdiTO?3|MElsa^!`P2^N!5UE7U>{MH}evma?m{WJK( zN*dMMhre~innVI6NKC)9f({Sy;qMmh3Dm-V6AA3a>>vT-l^>D6vw)bQL!p3^CfKnZ$im5r6t&W79m zL<$V)#ZQT`2xGP*ff6KsJ)B5SYxXgp&+Q1*`sqX>ojl%`zrPgQfi~t}O{AzYe*7I` zt~-g8%hlg}JBT)_KTV{&c?R?7W0iH^k3USLpDqnF-wq;y5+u;J=oJ#E_3&OIWqaXo zMjy0+5+v-~fqin|bRr!O^W|@7krur|2@?I-UQXw#{`}3YJ%L)-(>xcF%CgWnSjH^3 zNpbUOSg1dbiFl5tRW@dcp4I4|2wiKS=K^xy;ZJ(*Ezw3SEureA29cg!s?goVwCc}+ z^sCQ7+1>_9kOv4qam8ANG$ywYr7U8sd~foD&0=y|qS#;gkUPS2w{t%Lbj)`3Un zQG?`QnqGhZ|9GX(LW@8fNUS(GkF=-3=GRvw@Z?rJ19s!@%=X?uGr}Q(bq$?9kAjMX z@$a>0TWkkPkmx^V9<^N*W`3_l8%Us5m9Fz>{-`15_gW}@y?LY#x=F9V_Z0`s&CZbm;LBhTrmX^MH;n-OJH=+;PKnW7| zBZvfQ;e6xymQei>vo=xk6B6#dNk$pD#eI7z-*{sqClx&(llX9I5 zCq0`L)?{x3iI3xF(huK;Q(88wG#gkKY8~o6lg_LNC-)lqdmlYJlhqEC96COo3iS#j zJ=+)7BoZh=Vpy)}OKECYtn&QgzBtrRP^;c=W-VL;_Fl#nXB(y`M@G_ePo#PM;x`4Xn#5 z>!XG>+1tQ+E!r4CI~zz0**ulr)QUED*4PoKg*_sAh5a)y=TsW)J&g1$S^v!|Bz9h& zLTmcP(#+->yQ1v8LaqMaOrb(W;wUZ0R$A|Rm6}3ccZc&xZI$)@Ioxv!RX-3&n9^ zEn`+%%dsxh`pGewe%Kk$-v{vAROu4i?o1@ka+AmiKY}|GttVim9AH)g&vAF(BFCaCeZ7^7}E1<{Wq_WSd()CZSEIC zdWJU92G)gIINu~aW0r&UmxJZla>KLR@vL|}bzUUUhE>+*64oRVxTJvByrDe=YYX=gjRetAinlff2rDe=YBMN1Sr!t>L z^H^e)bx+ppiKh;4Mp0VEtTX~8NT6-894up&Tl9o*axFZR$EEo};nek0G=Dp2m5nji zvl{&qp=)(d96~J`#*lszk!SXNR%oY zN1OAErnEd>Y2$(IK&>frW9eA@C`!xYl}4asTa8%iT3{6E8MCk^`<5e7U{MUEhK!)J zj9Fy)qw>pNV2k#a~QR_N=n8 zaw35?{JsyNCF6$iw}Td8%yuMDg2d3t!SwWCta)c?N1#?8zaW~(@_MD^bV_Rn+DLvk zn7UUPL3&oM!}AAG%=nR%mN6@h*c0SWCzlv8(JJe{yL1>x^A3)pw2WD41WJ%V+v0d2 zfm*ws52W3tteA)`M+p-4?Z7^9eH=(j+s2cg{|sr-E0iGdtaAW$y~OTh*e(Kl0=2NG zd1fPxWubAfj9G5m2KS~}ha>ry+z*|5)3fAA9uuvyF-!EUM*l?UTJJsj(2)Ys{3JWk zMvtTY*^?>rH@j2bHKRWb{1Q)kRxW!RC_$pnt9~TsjHk3bUTI#TuG{Ut{2RgJjp5G^0W&Ij#64a57=831YY*uLmN{~R?VmpvPt)DA*qVfrG=8hB` z50oHb-wsPlU%hbrt^XU*2W_AP3Hw=s1Zv^z;rW&{mbb=><=Arjn6(}KIX!~MkH4gL zGdgdgHKrK9<)1E*H5_mSK=oJ#EW&Pi{13<5EoUO7ReJsN0 zT_jL~#EU2GDa(X7Gy2#OsC9L1dupV`n$ZV|E#tkZdGb)c0tA)urX%yBc|1qk_AN)E zk^}NmLM4d46j!d707BTJ(k)G#Qk7O?Q z9TdGcoX0ElRQl73ceLiIdeMyXI`OKR=xU+L*jjigErm^H)En5 zfm+uSJ?Z0&A!bZOV)F?Psxd!;$3&~F+k5b$2|cP9Va7xxP=W+{E4Ca7)M|RXDIK{! z#Egk(10_h)X$$NRr|oa< zG^WvogUzRHBu;;BM9oh6Q{@4><@kq<$iJ*Ve~L$M#g?N4iNC&SM87WdGv9Ke4J1&@ z`o9sWk-!$74e}uOS7H1q)gp{YjRZ=N$X~>RE^G`jpHl4z)WUufTaLXrGORJZeK?rE zXF%H`ff6LDgfym7R|lK#8SK15EgUDFZ^?^M4wjY6O)65Gva>w;`m>Y!;~G@?>;V2G zgtkTEC$sQ{v^D=Q(cOzIlzpf`n7|7+^j-+Yy2m^oZyc_Rp-48g%IP0RFW7-@HO%GCTEeSb2Z*`P|Mc)LOZ! zDlKVd?W{p!{S`^ao64kN{~3c!kye&vTKF^js?9!0<|KxxYPJye&+WNJEGHLcS>^e z<=;Qnes-t(S^JvbKajw>{P()kk;nb{_Ybr!wj3o$yuRyB<(K=K-#^d>5~zh9iZ;;S ztqrSC{|i0&_YbT|Bv69H^+r|bxYpDB{$b}8YKdd6&nZSZSdJ~X67AgSUc;`G^z$xZ zoIeh$LZ#bxHQx>*ffDr4DjO>f5@_SxpKeqxcUNl3p0+K*n7c@z1c?fbDpJcox|mVa zjzF! z8rZpu`NaeYlpulak|elbBCC_%!$9oQ%J|13w^u`c}E6w;zs zC_!TI$ug90MHh4LAbN!aYGF_F>`5BSLZh-ATPaa9N|X1t<~+h3SyY+=XEx^%&MF(T zM9+itPlT?Oy<};MuGNz7P7!T<3@Aa3k~&hM9-55x)+~50wN6wmNv?-det3zVY0r`ni1 zo$S0qEpe9UbBa+8mSf8ety^V1sy&V>O@qfbH)En5;WnrkMdwy{jJkQN2xVQ-%#1#E z#M`w6>Do5p`%7X@=BK-r$lUvZM5%|al+Z=y(Z?$5v;A|SeB`xBHuruYff6LFHW^ox z9f4YI&-0P`ST>^%5-35!z8%;uA`&P;;`GV_^s;MXO7hpUE!YvL zg?%UzcuiPkJtm@Ukw6I&@niGSH?r8 zpK`aaW!{nL^VTBnbjwRQ95wmA=~Ne2Qs>m5ad8L#r+1M+udFhkOJG~{3hTY^pNCG= zufeZ7i#Fz!oed=JzsgPZKUV)c|5aK$urAbU?v;yj=dJ#C{;M>?BOwR9Ussh!YOAb! zQhQrYs^D4e@BCM31WJ%V+hWU+K&|z$F4Uc!d+)=~|G<``1PS|g;F#k$BQ1J`5+sH` z&P%DYYMSdHdW8gP;q2krlQfp;Mq^pIQjdlfppUOh^VmlPa#NS_mH02*&YsOpV^iGz z&gqm!prp=SS87?K0{_(()?{x33F(O|#gwh^cTT4?8$w;6)wo_hT9#Ojb`{k#H0k-A ztahMeP?!94K`G0B&nMI*5GX<7MArf|J#QH^QlkwdP|Nzi5vh^D*=LpYm}n8k6@>&! zkcbP(N#izG`8yw3TFa3@t%w&nsbH=u<~snifs(r3F66Sxo&OpTYZ7}GB}kk&k&Bw& zs$~8e5N#lVS~$me7ATET4wjY6?XOM+Xv3}2JSKivo0nd%D9PXT^=|7*^GB30W1>FZ z7Gc@Y`yFZP|3>eoN9YnH{@sR7pjK+WJajOoxcMtOw1JZK^K($^M&HNTl9# zA-9!9&F4Y1fpwwQjBzfM)V}E7nZMHd>e&A5)W1w29!0IP-lkQXzoOw!3;mtPD~&)2 z5@=f-K_pP?L9HA#r*~nhIQ=_z)nYr)-*;JZ(wf{w_^%9+773Ifv9V_k`e{^QGg6}s zBv4EAO3#DD^44f9D_82;^#$nF1s5Yn!tnxB=70--c9zVtF|YoO(6vs5=BFTbjeOv{ z4UxbewaR*Au(yE{B)&QH74`Hf_;+rqw00nYTDSY>An&UM{?1L6E|L9<3&owu$8#rC zyqAj_7t3enPQZ3xU9ZmPpyV+Hck;_21KF}+)fkf*@xoBC=On>LtO4lpY`nbh~JbPuN ziTsWXZEWk8la6nZc!aac`ZZW>PEOkPn?$p&oMh1l36vm#-r5tW)wZk)y-3MGTf6F+ zpwWgPf&Q^?2lhLTIocC#pahAkZ0?q9nC#ZEKU(ctHM8>vxC~n4QxoTlm zp4-%w{8xUG!@~}x+57)C&^i)7MY~dX&?h;}Mc-$MHc;}Y7Q0VWKgjil?E8;4khmnX zNVn&`Tx5d&h6Qb)SEyy*a-Sx-C}`#vIq$0@^7`(%=u*TN`BCDL|L7GG$JXbfePzGM z?{4Y2knFrdE$nrXz-z)P>uVIYPb5%+#M_B3l&`cz#cS!;hn-ibg*_tae5>QXD!1euSx|fbI&*6D^eFQ?@6prK zLX`8{X7lo+hM~%|?Jsy)Bv67xo;AVBi#$vJg+ML53Pc+yLE^)OAm#0}jp^7x0=4j3 z5pC349;yUnGNO;ytWf3R))3yK7?nf&x1YQ%d6@!#@Z;VK7 ze|?|?3FoaKWm>o1>C6%&P%GLcRC)QhemVq7kQlH%SQ#Je|1Sh;VXuoVM+p)&5<`@G zzZ)xqJ%L&{HX@NTI$Q~B^hMTV?d1v)%Cc@7c)8TuFy(YLBd&-9N|31e^$=xq)kIF) z6R6c^P?&P}gK?#aMAw`{l*b?P@LpVgKT?_N_mbC}@lv?*pm?@)dKV=~Xwi{M$30im z@d^pl!X6R5LJ1PZZbc~l3##eZKmxU}-$WaDpD^fgq;mSMG5hTA8Bl`6jjB<~<`-`1 z^c51Q)vMSLrPJu5=@2MEq8UXgHO3bH7Xr0#WW|=F1c^tLqm+XAv!`PN3Dm;z7j59| z^A8GFHdioWyZuZ=2@;)S!jyB#Q_~r9Bv1?2711k{AklGDs8a1hdNzmT{rZ=rm6^(WIS!3<>~Fr*4JB4tC#*=VmnCUv5kIdi z&Ui=fh$RAnT2|SxasJC@uQ@Lw9LEdKbwi0&*6X$IG7TFa15bN(sTkszvtWimpq5oO zY+Ulr;27|-k7HfNac(HF%6h%leW_t%!M5CvZ)S9L{Qe|HAW+LH8#bowsN~2QMvk3% zd%K~;D(m%H_q&D-w#(B|Vs`__jZWSIfm&ACu+e%zYsav!OFO*RS93#&Ro3gZB8FjO z?Uk<`YDzvw!r|fqfm&ACuu;J=!0~e4Gq1pd&nu$DD(m%HamBFFs(z5;M$OA!IggzY z2-LF5hKFO6;})!H`c^C+8>Yh`cSKmK%kaYHf+Rrj&_6| zeCByA^Oo``vC4YAR$MV`Tw6NE@o2QaXPbuu*IHV7U8rT14I6iY$2fi~Fx@$NK(`c> zSY^FlD-sztrra9k*!VV+n%rZaK%kaYHf*f?CD!3g7^8kO_ooz;SY^FlE5aEz@{Wjh zbgHz15mKt9rPqa8R@t!8>{);#VE=V>&9L&RD6z_Vz19k6*vN3MzhlPp*Q#8go=vWx2XfBH;2n1?bWy6Nz=Hl4k;iH}XW>zXntg>FOwXPU8 zI&}W*6%^;IWqmzQAW+LH8#YRPf7EMuw@~fbsf1LNSY^FlYxOZ~RFv0wop~LpE$@{i z5U6F94I5=@b@Teuf4Ej?`-)VQSY^FlYxOZ~{QRzv*N=5aX}5>16bRI^%7%@PRlje# z_Q@FSY^{~4D6z_Vz1DhV*kEgvldVx2TcZR5wXCvXgRN02Tcb3#Mx~;}D(m%H>!4wS ztx+mlqcpZg2?T0cWy1zrqg1v=X>5&3MTu3`>$RT33>$2XQrQ}%u{BB{P|GSCHrN`a zu{BC#Yg8&qtg>FO_1tFIU~81d)+mjwQ38QlR@tz@)+mjwQ5svLQc+@+^?I%6LBj@H zqcpZgX>5%W2-LF5h7GnxX>5(s*cz3J605A&YrU~BY_K&-V{4Sg)+m8MEvszUU~81d z)+m*&Q7I^~%6h%ldkw<|Tcb3#MyYI#5(w0?%7zWLMrmw~QrQ}nf)cB&*K57kFl?|j zN@Hu3%GM}>KrO3m*kEgv#?~k&Tcg&X#479cTJJRs8*Giz*c#N) ztx+0VqdeIfRS_jtS+Cc66Jpq4Ym~;;C@;1~2?T0cWy1zrqcpZgd9gLBB1){XUa$3r z#jwHFD2=UAjF8+cExj((vdV@Hwnk}ejq+k^lp9K{vR<$CZosg?)+mjwQC@6~5(w0? z%7zWLMrmw~aje5iB;C? zwca2YHrN`au{FxU)+m8MEvszUU~81d)+h&CqufwpmGye9HwcCewnnLJjdHLxN+3|n zDjPP~8l|!|%E8tsHjfTHA;9Yvb6Mi@p(slR>Rg}?@oFcq~u=P zpA4@UllG+n*KoXN$XOyn>9TKy{Qn88>vB}Evi7$@yk4|z?-ddsvxO)_%Lk|971o7X z*wdm7lpyhLO^9;M5tfb(Bv1=`TC`!^z49?I-!156x3N)5m)HX7*uZ)>HxE@@>kr{t z_BK$0#Is*RmC2tBTJ#DD)Uux?C_!TSj4;J}L3%cjKrMVK7QMn4^?YieGQ34Q-g1m9 zB7qVletQfhk)ELw_9UDlX7Df!w21<~KsvW45UfC=i8%UrQ#ud>9J`dpY$GI6n z$}abH>5MtPDM*fwR1U_R;#&B0FWNu}66^9sD$>mT>DWL5wQ!{tZJ-2+#N`o6Skq1E z*gyic@cI{R;0n;Pdbo1)qp`l)uLdYV;??PJ<@-h<>5L!}sDsQOd&BQaWRf1Zv@%ThRteka$}-O6lC-_jFp01ZrVC z7HyyeiP9G%mB=GE)3JdBYGKqCZQ!?p6t5^nJzR(PkM-vM|6jEzL85s;l=ARu<#c)% z3Dm;(`=VDUL89)cC}q!%Qt8-00=01Vh&FJ>?aCLVdDWtjxolLg*CiUdlK=+!$?DRH5FI%AFmYT-9F(FRJ8II%ZUnb5aIIyR6%Exc|- z8z@2IUZyDJS^K8x*gyic@amGJzSCW_@3w65?037XHY*ETA-gb-!{^jb5*Bs%+UOR6%AP%4>Hd{{@*UqmWzD&+w3(fF zdbn($^727Plc;v9u-bcG7q3E#VzsdeLCV~M1Ng5iZm@E=#{mAjtLSfolx5ilQcw#$ zOY`z8t<|y ztGyF~m0nM$nO?CGRM`lsx>s{MvA2L561Z2mpxvbw6}V&}|=Kn*2GY%LX_99x^k9P>TZGHGq=>~L1w-Af=)Yg*<2 zWp4NE>=&T>*fqFoSYxfy>fCDbrE1!-tAmxW?=q7*P?K}qAFO2GpM{#SOwf0J8?3lx z%0ktG^Cjx<5 zTh9+x?mcC{O5qt#4!`Q9b(!g@);jY}MF|oQj}KPPPRc~x_%B~VE_c;(^>wHVK4sC6 zK&^S#1}mxT7cr?UYq}&oUGlYdp>17t=jWUnN|4ZNT2w!?`ForezqQa@pVw1EUKSS! z)SCQ$up+npB0u40T3oNwOsh7=O&vVBtcDUKaP~-2;*SlrxAm*4dw#1X5U5q{%V1^B zoxkLQZ*HnnKpHX2Hh!1*Rgt43zm=Jn35uKl^2K%kb7XMiGo{3w@Wk&j)q(__`S z(rV|@g|QmV3{VDVd&}chwdn!M^~!H~yz0rGAX`iC&3JXZ;1t!b_czYU?_xBRAkleP zfD#?>PM&Z_UpdQ9oT{FEkl@_;StL*kql6@NzP>XNb9%i zmwBI@OY8Xx1Zs)B8=7=XeRPtyL%VD5h1b z$ND}0U3m;UgZw3nyT?l3mi4H1t9pR)eC%!6xCX0wduhLVY*fP+7tm0G#O3+{%GNAD z$?h+Xu<^LD+godzX^&dt*gF*o)S6Z)Kq>qCPjY7-OKudarTs7{LA@5^E_ju<8JkPf z@5_EH?xHX4(7_WP9C>hrLA8cL8@(IP^KgX-%i?Zpsx|490$wq}af&+S&czswazIQc;3L3R?%Y z-8W_aTU+T(u5McSt(rQ&&qaYiEpa@&e`uj?xV~5Y^dXCeUZK6!tpb!r{cgzmxs8%E z^{t0i_4iF`mo`N-lpulQ#BzDRt)Y2!Oi@oJRT2o)>KGEBl&*hW-pS+cxYzg8z=?y@ z$u)ho^LqjmMZF^5VOP!>_BQ+6@hkFsb~2DSg4Hv8QlG>RS7UC88({=d3q6#iy~j#wD<&kUk5_sK^9qTvQ2~nUhikHa(uyQq+g@JV zmTkGZWTZHEQA=!jtv4stoo(8y+s+IUT8^zf{yadrf8(-joPOG)PpZ1?MOn4;&TtJS zNQjXkpFC1c9*|AlbUH>LQ0sN}K*gEoGLPDlbhl<9^>y8C&gCseYO8YuDtGo=lGm|2 zz4|!=mFJ%>@i>o9#gY_}X^?vBm$%MwiLn~ig*K3uq%Kp7sf%~4bS`K$QbP$6_#7=s z4LdA!ZaZGxd9uhDfj}+Ms}@mn)p`ADsmiiQ?Rn-vJ zPXS8rw`b&v>>gE;YV?_?uH9Q*?L9PFLkSXI(Sb^b-kKSA7c5Ctlcx7kv+oWO2-NET zCO~;G?IgdyW_OkqzES7Z8?F|M3)E18#J9}?l|q{jn0Mh1yna-NEM2VDS9=KrYQ6d+ zKsh<=7=QMWq!o*cYl~;yRo}+DYjfFel(scKD9>iA!JwZ5l)w+F9Kqu5=OTehnKdl) zBER3QaX7y=z075`cyv7tB}fdqAD~SBLzDG$2qfunw@li1wU4N&Wm<>?XrYJfo31p;s1I)j z%Q1mKt?;t}N~w_D=Bjpn#aG(9FW1%Imw5;yh@+OZL7?J#ahGhImwI5v2X$locj~+B zZ8Vf1f%8q0p36U~lZS0n18#N`2-F%C6sVM&v`c=@Rv#7iOeR5Z)Es51OeH*CA znRf9w*j)=$HfP<%BPU+L>~xi0J=KDvJ=C=)V>FZ?;g=eyOsl#}*3V95_wD)Ss)Kw3 zRe4*uK%f?SC`mK2e51M@o}+$$VvulsATceNc{pL0e4F2k#yvZ#uKkj%p04UE5U3@# ze0rAIYOV>%>Z4JC8op21;S5yTHr~La+L!@BO6ZAXGbY|`Jx|U2<07@ecR?CTkf@^u zD(@F;l&`(k<8Jvzf$9&@k*fAMQXo)EyC10ZsI%3yu~C_!x(}VAzPTByp#+I9%tq%U zo6XohyZJ7)@Q>$J$1mN5cHsLG^iYzfH94mK`T4#Y`lN$~5+n|m3{pNXTOu1LFYdf~ zTpcv$s#>OKXMsSiDTe};nJ%ejq;A<=(k3P4)(VVv*H-TfR7MX^lJ&Db^Bf3NVtTHW zqgbSVo-;`K%WH{wm$AOWYc*?7RxK&Eo`w=6LK(frlAChoU9!`IM>Sh39^#3X6r@uK+Jvh-ki%9t+smHlQG$fW-9V*vkHxZn#-$`ZXqZQf zk14GsvbP3Epw{QTfl9XhiDnda&Eu-A_`baMiM^RX2@;d81u6roES8P8ACp=a)PBxh zNh`ymC=#gEo!MCSW{EtIN6~wY3Tfd(t7xrR6h#RVTTTZm6CN&--Pm)2ByD+LLR+=0 zmR5&FQ6x|+d{3ZqX~ZHkie9-_TwOb}lj^!SR@=BPNI5=qDUVmaDM8Blz@loEkPke#$(_el|$CcWIV+M;1|Ti0aq!t{U3JS3?OBkNXEJg@Y%^E&2PBJ=-U# z!$-VRfB3bVNPyP!TEWWUyyIl!tj6z;Y3kByZdx-vGMorfDmNZ4>nC?EITEBi$vIgL zW|6_YOt3P;F;*VOpFei~wnz23Swh>vA_Gd0XwSY)JjpV}e0F})c!Sz3u&6e7gNHz% zmgv>-PaD(*uUxeoELAj0kXUsnNU1n)y4*j%{x)jBo&@#qs|?y7Pdf+%YGEI;H>tCh zslOC|r#2|oS?DVy<{k`EqWaB{^>b8NKAC_7bxq@E>aV56-bJmS_6I2$H_kNU?yrCD zQ-^(3S^I0cyU=ovqQQ!Gag1ED7>hp8>yos2^)dBv&)V9f=Pdew1c?W4*(`|}DeEUa zO45QmSJWei8*4j1vFHN?YCSy_q~skn){H)5_FPd1R`b$6{Fy~V2@+fX2vW|iA0f}+ z?_N(Yx~;l~Hq$z>=z|1mHU2(G$uee?+=oY>S6^q(?=og*QBW2yS3h??JH zwc6yw5P?9g&56Ov$y$?T<4o2$RsL{R>O5XeJQky&1PT16BS~8?JZ`q{RQ-zyN|5N8J48t;8e_(* zqO}^U&iD^%P4>kE3DmmxW3Y1Q%24?i{>5ZqK&)CXs*W~8S3_oL7rvUrbPf#P&PEO5MRxvVKmBB%ONGO#M_{# zV#|+~ouf9d<)`gnv%Po85T(ko9&#;q9W-zWQO3XQ#%K5^mbqok++K2XennL{KSiB= zv4?h)T~SD&mPh3frP`cc@)Um6R=qn_z1Ojuc7|QGC_&=-mtf`PjlO1NIQ4Fvn%}dN z=K3*eC@aDSoxTe1OGANxIi?s9Id|)E-SJtDyu5oIUIf{m|a3@9KKmgh$l` z0<{vmhA3@s`N|t*|p0`$ixK&BZxW+>uP-~@sh*HdF zplqDzIliT=uKQ9*tCXjWh7u%j_DE8|<6`O~C7V|Db~k}Qt+lg5l!YN7@&SGaK%;z| zZ|{y)lh_xNpz9$@?A%y>M;3cEL>b~0E4OFgoxM+lDARJpnfE0tdW1Whot&WLX;h~hRXB#7n6}IXFB)$OjEb8FD6K!7Dfq4O3l5*nfv8JHDleO8cL9u`fZ3( z;`?a1+AIC8uVK#X&Pk8AsjGK~3j}ImFR+>T^>e4k&>L#@^MizI5Q%v#>(JWyA@X1R zt}pVB?5g+Auhr~zeFXxw#NIs-+SPgR`VVRf`(lD$*71w`f(Z6IjlPj)?=D-g!#N~V zJI%FcF)fz;f@8w;4zhmYW&c6!d;OnXc~qAd$CbsIp|Ek9?EI-9~rkI$!lDr|DlzkU%Z$ zLrKcLXu0$F(IQ%CytmN1NNg+~s$9?JD;sB-cFCRKOqk%JePCZqurAcXoe}I=EqIOd z;4i+~cJ{?2a#*MmJ)$j-mfm5ZO06obc?=eN_tT6W&WC<%yxA8Mlpt}}H&j_Mp}Bcq z5?}9-(}Ue%T< zIbXFAMi8~ccFdaH-r4qe4XyTa4`E&*aV#lRx%WpGGq&eT?dvR@y}tHqyf}AJOKkc2 z;Qfa*|DV;QQ-g$-V{3!ng({cJg_!Z`#PbV>UN70FF4`Whp#%vrGW0H$`%r-rbJVV< zVgv%UvV0Y$ge45&QJa13tF_eQa>*L1{>7w)OPF$L*%1E4WPOe>WkALV9_PhhjGQX+ z>R`oe<5m5O3D$)+kY;aEuVpy&%i-#({>20(NZ>weNpdUd;^Fu6CjP|)3Dgq3>U$(} z(}J}&s51Lv(y>IC;0mhbhH>jWXkI<3`^#O$t1rW@cYZkU*^pt;3YESNfaxyZ%+Gc;@JPg?}+Y2@(&_ zg(?2~{LTB_`C)FJJr`%z+}RfsBv7kquQ0{cw-4W!B}q#rBzcax>!tM_!Q$@XFy--> z_Ix!67#pU%e$ko7-49p7l!I%1%=_Kvy=Qt>JXB9R$G(`L1c?*F!<5i&UCp>V*LQ*E zp*H2T6!ygg3DiOlB`NQw?w&b9ifV;Mduu2`VvApxa$`y_GwvQ=+t_nkn_OC%D%}JE zwZxWx_uU!K+ehnapW^Cie!qq(t2%b)?-Tmm4`W|qyYVMs^p<6`?t9MjW924VFRhx; z4kVJVhbiM{eQka*dGP$8XTu$emfEMhK%f@(x+J|%{m%1kKnE=>s-Q3)NDMz8rbPYO z-hA4A-E+5R3cJhi%ii^2U8prYIZP><&05c|tv~HKenSubw2cxZ4zLWEJv``c7d=aE_tP%2-Bc(+V)u7p%C-S*%%^Ry-4{J? zT@Kbxu^n4Tpw^mwY$m$4FjqCH$tlkq5!JOrNgl!o;;0pQ!MrNg+kCf_ntO+5^FK;x zceAz8P=W-`H%Y30YO`mVyg9X)>)iwbweGltE45w?GT(STTiwj_#r84$i^=Gw;mXHp zaXbz-Z4$1Ga*5+_An^*8q+hys@oe|)Of?t#VuBJRRQ9W+A5TP?Pum%`4*WmH-ZD;# zqkI2u+=IKjyDvM{(-aWg!UDl{XMIO-Ns!=>KyXO#ECdNokezNISRf$~9D*kV4*`P9 zbE>9hbM^ms&vW1J<}>G9UDegqr@K#8eajJfZHGB(V}ebAURXoQQ$L*RII-Z0dHv8p z+x>xxLD>@c@hXur@26>FFRXOD%>LTEU8$E%fnN4A*WYDed7a1PhzZUMH6|qR&u_-b zs8%soA}^fdGZhn;P5a$3$~t1!r4bXfprXX61fH{7f*LU?@OGDD|J`MB!~_-S^+!Si z_ZJ+g${4i8bo7WwHlNan30hDQ9iPA#Z*!~IzR#-7Hl|B$i4hY#51jXkHPo~=-!^40 zBR{ajhzVLy(V}`HPo2xHMoju1s=`WIS*$`dVuA|vTDvHL7abC`A9+uT;k zH?3?6^s=9MmA^-_F_r6Dg{N1vokzQJ)R&6J$Pp845lt)p@pyKkpwmkKq_C~6P|=}a zBL8YsUo~R#%Ztxg)c#i1J&K}uEc80|Ac5a3*F$|3^-7w?#;<8>y`>Qow4kDHzC_+K zuD2R7>5^eOvwrGi9i{9CD$r}=%LG1G4`x_Kr{Gu42jR(c@Y1&we#4(um2fUT*IBwwtG3v z=Ag)c7F48qN_t$YRKaHiL0=?|DdX_zj?aiIbdSBYG(1MEM7ZQ2W zj&W+l`j3**7FB#Z3^_lHq^9ZyC$)Uvr<`N!~`v*f=}K2g!<>ZB{oT-r#^dO-^+ zB3ruos2|3vSud9cU1yi)8&*e(KBz#ipKH1K`q!h>h{@Kzf3kGbxHX2N4_Z*+Y3}Ar z%8yaAUS8dM$U0qaWyMnTK?QpCXzJ!s;UiV_nGxw@Kd!rP_Mj0HYianWWC8h1tuDsXL%rj;o&l69G|*gQugCSz8* zd1G^tj8Weoar0N1zmYNO6U)t;)mx;#APbhC%37COB}Yuqf{MqFsF(1iDqc0;_bn^& z;3u;VjhLVUy_TPM^E$~3)%`Il>^VFA;|EqD8ZjwY(!+0eU*NQ8#AHJ@4-dZ?Q;yK@Qn+pLO{mlhu$$OwfXg^XWW%#I*%#CP#x|XIP2u&rLC6f(rD)8q%JV z^$xQF8Sk0ZXv739sCa$D&2LXxsAh7Uda#{kS$M&$N#9baKrj25j}0%bPy4c(RiAqM zylx)e`XBep%2^g@K}A@Yho8MZUqyyL&*j#$4JctbX+9h((5o$#k$&=5YOeD~UuW0v z7A$UEqIVy(prT_H4fIg zy%Awkpx4rl9vH+IaW}`?kwBvN`m7{*dkRjjR#(a9_G@ z>b+#(+>UHyKW0{>5fika;znB!@3DD{^AkB@GIeK5wk52Yxt&H#P=Q_;B{VIeQV+Jg zO=oiitua9hDzdio@K3sKNtv@fitVg3$?Q#QOi+Pd*b18Vm$8Ih-m}asesZAg9z?}V zYO4)b*2SVQ*)a~O@7paQ*cg{!93{q|&H0wi|s-6*S{L@n>lk)d7A>gCQ!dBTyURS+qdWPY1XRBG_xSBF*#2JiX3B) z%GFsV3wU|AK1b!MHf(j84>#;C>#%&W`Ppyw>w${HWxafFr2}f+U59e1^^Y%aGe6DJ z!gdAG3u~xpyB_4wQ>8s}j)!La)wj@|+L4`ds%sgs3Av8(1MDD8D8G0#-HkacR|)itbUn+ zW^EcVK?QovjH6oZJTKRb(~gB1s_Pr;er+}$QPHYFtN2Gvyd+l~wqEAt(?7i^*Ys zC)YUhYg%K17F2vYgeW&TFQ~PBvny))`F>t=cf|;s0=?{Ko;R+7zGL+yvo(#FtUlo7 zi;{0S$I)Dsyhprz)9pW;eQ0hB)>hM6zp19L82P!m+^k|d4^%Wf>E(^L-gI`6YfOG_ zSXbYlYOz_AMojQn=!LDWX*u37{p+l&%zU1_w(Eh43>Romi<8%#mE;VedUv^g?aBu8 z9nBEJW1-i+V_v@O?Ira*pV+3kKH|sqW+j@Rh!#}jzU<{^&t7v*ku#l!ylt(=?A&Hf zps#IIpjS_-)tJG-HKW5Ox7Q~O*k(?rZv(WTBKu7*-#Or_vkE=oXh*i;UG+0@esef| zf1m=rM&GBnQuMNVs@*wUO7DAhteKfcOz;X~OZQDCPEqo0=SOG7EY_Ksa_jjI#F;vc zn4kp}*xxj5u_KMX>Z4X>#JLEY0=>4b^70yk9y*7~8A6K=3}!55onNdmDLl%{pBgV@ z9IQ%ApJVTz%duv>gEcL_=p@!Hwdw!<@L&rqsMt8!%S$x)#~Ikgm2X(j%JxoYW~LDn zRG=5uP}9mzJjEJ(SJeENMoiFxirRD@wPrtbK9#d~Ufp@XMir}L4x|wiRG^pr%-5#< zl@)us)-TqWAm8I0-BC{)yp>Vy@g^_#t;(c06Gvi?vg@;s`NbL&w4kD%MQ<_-->4Cj zu8UW&-ajn!i!~;wK(EB#uh^?zzURAl^j;z|clFmb(ns|wZsz>7qP3uskKaF-N-`31WcTq~*ELDMXjaU} z8+6HFOq6r(en_mTKgv>wo*#8Aw4fq$Mjt=AT2u6kT_04@3xAl_+>jJzQ=k{tP}6=M zQ%cWOAiEhcy|INBRP4Cz5L*{#5~IbJ38o_ z>en<6zszD&pjUzVKJKoXTG21g{vM&<^j0?KzDQ@G1r;xJAAff+tubCk(U+~d>xFXE zH>=aQGb+$)Irs6}bAuF*Pj>gx&Ed7pY&7nS7F2{a_wm`JSRE zD$t8X_;~K}X(Tm-_$AH8vdky`NzO@YOez!8XY}(ABpoJckC%UU@dKkR&1l3sjn-O* zf6msw$m}mpv!l_1idpo;F;-FpFd-?LcnT>35Vr^flBd=M5y;{>kV6W55KY|%%(sud#z4p zsG#S*I&)7kT4RD1R2(Ym-Kiua^A^t_-Ec!x97_R(jR?9?do zr{^Xr(Cd=R#|K``Z#-=!-pJb2=&y&JD-=HL!95c#sHjAWZw41M0`G7aKaA5ar2nDO zunY%n3iPTqlzQcw0xJ5{yPZ~lo9UP2Ry1OQ?T+^&URnC)?0l9zxw;}*tT90gD(rXd zvyCU%ytX6hxaRx_)~pzx|RVuBV_*qLWd_HJRNPCp1gdMMGRK(F~f z(-(5dl1AViuJo$U*~Y0C!W&Z*MGGpBv8HK6;mp@rr zQO2kW54}7?Y`K4_T#Tq(4zb1rEvUFbZ{c5dukfbB= zOXbpu%Hxfw)=*NpbfR)O1eFUdsF<17$3LrF;a@73PE;<3pmL!Cz3gXBR4$#U zTue~8CNO%Y?x-fIT$kHZR4Y|Y_V5u+eEhFURsW@O=|tsXg35&o^txWl#|P)G{x6kF zCn^^cR4%ljVr?TIpE{z7iVQ^M(uvB&1eFUFHZQtPn>$wjm&&CRm5T`~mj)J8h$HPk zTKQipmrhhJCa7GfK(EZ1>0PvY4I_ohr4yBl2`U#_P=UQiQn_@Zaxp>WLIrvaNaN!( zXVx%Ms9ZWxxtLgEf)-R@?~zn4ov2()P`OZnUd`z_e>P`L>g|fkr4yBl2`U#_P=UQi zQn_@Zaxp>WLIrv?I_TwH#@8}Zs9cPwTn;f}(w?#$tKQU+Z)5|9dHKD2btIj#0ewx@ z*6OJD5~6Z3qH;L|l?yGXVDweAq;(x5h04W<%HxfwMhQ(&xfoHo9D>S)7F6v0 z+{;HasAHs1xfoHo9D>S)3iQHOkW?;4R4#|0a-jtk%_&!NXKF1Yh04W<%HxhG zy>*Go#fZwq1eFU(mq@_ep?mqH_YT#%MCHMCHN%QDy_tLQgg_Qm9-yQMs6)a-jmfkW?zETsl#?n4oeE`+;)aRk$IjTscqB zD8P%xhM;m`yGbgSPE;-?s9b14#RGZ{cBNewQ>a`zQMs6)a-jmf?AL>+Tsl#?n4ofD ztx)}tzOTM&&y5r+mrhhJCa7F!K?SzDq;ly*% zzE)mduVhn0P`M7a_VPzXni_)2g{@9yqN%k#nY(|B|MOkwWFtiOR(Ul?xTDi4NNjM|dQ#fZw~5Nk{x zKBxI5tC|^t%GHB@?;YDr#(AVEODY#5Dwjj7F~MVD8K{<2E=E)?hgf5R7E~aASyH(i zMCEb_DiAlOH?jKR4yi{TxdbX3CqJ< zukEPbcZtfyh|0wTl?xT<^>uD~zi!e-GNmPzOD8H9dqz~QR27M0+`pqCs9aS_(vy08 zdqYsU=Fr~ThrjEj-gk-0r4yBl2`U#_P*J(Km;aNoy^%uY(uvB&1eFUF=!G?uR4ztT zE+(j4XhB8ed=%UNY-6NQxfoHon4of@0=?{KPE;X zMHqt0g|(GbE}f`cOi;Pdf{Gh-e~cOuVWd#GbfR)GLFGaPdSRMB!iA3dMMCD>)!~`v<=uPVGJGvPuR4ztT zE+$4yP=Q`2i+OlfS65XAQMnjVxtO4Gp#>FR(zU6!^kWshOVm5ULTiwP z{AJ^QhM;ndrCE$$f7HhiRIX*u-28l>0qQM-s9cPwT)Logp#>FXNuB;oZxyMD%0+MB zX>~#6LIrwZ4JDO}5tWMxDi>N%F@eq_etAzLh04W<%Ebhg3l->PKXamTF`{zmg35)p z`sb~iml`y{5L7N~5lQ9JiOQu5Di>N%(WR7!*FH^c6{K?MMCH;2l?xT;!^_4M6I3iK+|+QSnX4^&Zxfw-f5D`#fZwq1eFUd zsCc%?%~OBd-$wIfBe^D?>#wZ`H9(dd>QbvOx z^SF8Divv|GAu1OmDi;$}uAk@9?h2_A3_;~uy)2R5sS*r9<(g90&2Qz4R&QiPG7q+^jaxtQE z>4M6I7F2A=;^upAxQ!Gl7b7Z{E~s3nK(B8axcR1ii7NUKm5ULTOBYlww4ma8ZZ|KJ z&ts%exfoHobV21p1$uR@=jQX4xs4Pm7b7Z{E~s2+K}D((Zl1HB$4H@aF`{x&=J}va zfnLRHyZM$29u<9v%EgGv#RQcL+a2#m+jY{2%EgGv#l(mST2NuXYl+Imh|0wTl?xT< zg?F>0axtQEF+t@*3o7h;*ASJ95tWMxDiyIdk5`V@SDO4^8QMs6)a-jtkxL1y( zaxtQEF+t_xVTruN+C({G()wBg-%==1#;C`%l2vQ(QD2Zm_@N4-W0m5bH!*3t!)>vfhyo-6xMIbu>KcOq|icd#L- zTz%3d@^8)$R$q`rIcxfoHobg{++73hUElvFN8R4!dm zxzK`&tECe8(MX?>Lgiva<PKXamTF`{zmg349@j|86Wm*Iw>a&>=}z!!`k zA$$0ow+TFZkKslNm5ULTOBYlwRG?RviwS%>DN?9hjHq0?pmL!F6}wU=^5iMQRAeA3 z7b7Z{E~s3nK(F_|Ch!W`hZ`wWE=E)?T~N8uf{ODQ5_##JLyZ(F7b7Z{E~s3nK(D&n z68Pq$LyZ(F7b7Z{E~s2+K?U|6%Fqw$&WOsT3n~{X(Cfv91fFinP$PxP#fZwKixCsF zpaOf3q;fH$a_NG~g$nd~vV`ugyF-i=DiWI`HU1QmxHKWOi;N{ zfnL}OlFH>EDi;$}F0`ORqqh34@L(f_%EgGv#RQcL73gJeU7~V1h|0wTl?!()!=23D z&Wh)`zxAosB`TMLs9d_Bauqb=`Hr5W3_<0p@pZf)Aj+uLb4NViR&cbs2Z_q%AS#zG zMoiFxiki#gd8L-4)rbjExg130(gl?Z73j6_yLjH_>}Vr}%H<#`moBJWSgUeGAc?X@ z7=p@$Fx z-iqgqKN)7EP`MmL<vJI+ZemxHKWx}b6upB~Rg^c^juWz)IweEmP8Wemo4 zqctYewm68&r3)$-T2QfhWjuFZ{Y1T&5S7b8R4!dmxln;#_Ul1ZE(cM$bV239TA}*! z1Y$3}9i`$fQMnvM<c;b<*M`bF=LP-l@qnT;&GN-omsBnXQMq(M(92#cqH-k@m5T`~mvJkOf1Yo!95LBTzpLjTBqQgS z$K&|c=|ki@s-$uy6P1ezDi>N%ajj7tpV=%JcZtfCOjIr=s9dN(ulU_@{1Lrnh&>fG zji_9HqH@U*6SSaW9Z?HeuHY_}MCI}ml}i^?E>xgb1TpAN-5w_QyOdNeKT)}KLFFnG z7sq=p3p@=fj*H_L`A8Xe7gmYm6}kkT43tCeKHX1LE?rQ$(1MDilj8X0yTQ0iR4zYJ zxpc9{1QqCoHI!5?KT)}KLFGaVDt=!U$NTmguHr6Hx%@=s(gl?Z73gI@bE0zjiOQu5 zDpw66D<)PMA@d1!ipTLoGe^iTVXUpBa`}nMr3)$-T2S$*VjO?|)krmBLR2n){ViM< zR4!DY7q+^ja`}nMr3)$-T2PUXuKCEZqtw?nQMvp?<OHhzf8coCJ$PgE{BVv_q%EWdEsBjaEv zBF{FUcU-aiDc-@7%H=027ZX%2w4mbD=~&*UtxtVz6P3$PR4yi{T&O@Vtf8cG`H9NK z1eFUds3=P3k#_J9nfH@aE{x!gVeo5$s9b)c zaxp>WLJKM?%#GzaPx(}ACn}doR4!eNnBaNfe!^HoN#!z$%B71D6SSbB#iGBdIA z0ujbD4OSy2MCCGx%B2e`7g|u!--zX1s}5C}38HeDMCFnrCa6F!tf8cGnMCE%C6x=# z5Ec1*$MW=V2dm5kQMpW_a_N%F1q$@CpE*&vOrmn>g35)pYW!Oa&oO+k95KNbkyI{| zs9d_Ba-jtk&O0%@#`2+R#Du6^CQ-R`LFGaPdL7IY%RhY<%uEoK%Oon7E~s2+K}8Ru zu{SL{OpTZjmCGb5moBJWs6eml8DsfJ?qG&xbedTvQMq(Mxh`=nc{Q%FY-y4}hp#CQ-R`LFFoQH=6e<<(4BR(5q*|7@n(Xf*LU)Dwj!AE?rQ$@XXuMZZ}(7#mSj9*y@tXWfGN37gR2^ zpyK?FX#Vue1U2i0s9YvdxpYD0LIrxg`YoF8@VHe@hNxU7QMu%-7qpLVqMG$WR4$XKT)Log zp#r_?`lETVn!ynhqH>u;qmKNA#36$<3pAoj>}iFG!+t znMCE1BPM7;#gd%Sd_=E4Dqazl%Ooln6I3o#px2{{(VUg)ukH_`a+yTs(gl@k==CVx zVs7*XYo&%D%6jhGOX%Oon7E~s2+LB*~&QM}O1{%R%%QMpW_ zaxpPtf(rD)8cHgcNmMQ-s9b14#k}ItynmzqY9Pu8HEcTl7Q?ZFX!k;Dwjo6E?rQ$P=Q`?>!Ns<#NKMIGf}xLqH^hi%7qqGVDFJsE{mvK zx}b8Q0=+I%8Jk}8QcpFaa+yTs(gl?ZEvUfWBdJ^_QMs6)a-jmf?yZmFi_Z5{^Qno- zWfGN(2`U#_P=UQiQn^f`axp>WLIrv~-WbJqFYhL2d`l{qNmMQ-)|iyo9>q5o56roH zyDf^}ZxWbu*O_+3T=F(TMIWManMCDcg35&!RBYNB#lKzM*+`*snMCDcg35&o^uj11 zsaz&extO4Gp#>Easf+@rJEzRq9%T}hiwP@69^AOGG?#=fh)qWH?=on++v;-e^j4M7j=tmb{TBoD@!Ww1eFUF==IrmE`BI`6ZO7J zR4$XKTyn$&EvP6x*u_7H3RmyDMCCGx%Ebhg3l->G?pt4oAz^Y@7~68ZC_jZ|LZjl^}b6~E{mvKOi;Pdf{H(*T|DiL#_DUEs9Y9N zxtJI+K?QnY4JDP!A}SXXR4%lj;`TI(k3+dy+ecI`i>O>oP`OZnUiLF5Dwjo6E+(j4 zcO5RCc}2KnR*VXB@%LFAlD2@gl~gW^s9a1?xzK`&E;U_zemQ2OP`NCkaxp>WLIrwZ zt4k`EMN}>(s9b14#ng%}{&Rj^5gmxiWf7H&2`U#V(Cb7!7mrHSSUt~)%4HFiiwPG=i@W%5ZD>`i z95Ep(mqk=ACa7GfK(9RcTzr(rP){|Ya#=*>VuH$rR}fpeMl%<$wxW^Zmk^c9A}SXX zR4%lj0(+07a#=*>VuH$r3iP_t)5Y~e4HQ*{s9Yvdxg27R$>51D-t%g083zYUpgW4z zQHy>1@D7$#E|aKS4ngHY3o335ck$)}>MEiGQMpW_axp>WLIrwZ4JDP!Bq|pZR4%lj zqE{~$H+M9UY#B`>Dwj!AE+(j4s6a3KnG==EBr2CftTD-#*Tr`|EhppB?uIUYrGHHs z)s}W}@!z|bQ!$aKTqaSu9Ab?LT2RrQyZD@~HPwg-QMpW_ayi5r6I7sAsUa@@;@29g z45D(GMCEb_Di>N%aiyb+7pqfCjhGCtn8B)l{e+|L*)F#8nEx!2w{KG3a8%#z#2V79 z;v4y`Tea>v#yxLkp#>F5w<3Ai$O=Y$R>8$-oS4h%^IJOhb?bIE1$vb&?cx{L)KK(` z>gyU=r}`FWw<$0B;#?$;4XY*@31gl_@{Yx-OZr8<-y`{swH1tncu|I#Skr2jy%2j$ zc~P{WV$!QfKBH@OMZdToU)}op_Y5pe$NDw}dSMM|K12F)*4dM}*q+|Hg%(s?D(K=* zh|dt9aur=t$ZEVK3yVrmBxq<8^s=9MpLNW-ygwJ4ceb3ZR^u;3@nAgk-;b_p zxH<_g&Yk157vzH4?1P2(OthfFxjT~Qx=g%`8bXon#z3p%6$ksf!%sE^dVRGylCOJH z#h7vC2q}s;h_zVW&E`AizANJ$?W^^--L6<3C6_b0B!@IG&O@UrB z(z&>&L^-2Rq9EfD$IB#+SGeGKEg(z!uZqg3Hmb0T8+(dLj@MDAiB8uZxtYl;Bb+|jZ z#JO^|Ge5R3lJ8lXN5(5`bxrezwX>#|sF~cfc|P0qK!rakl5cpKSH-I@8+NrCPdu{g z2E{8p7J9AtCXzSaR6xb634e9Bwi)@8MZ7`_Dr%9UQ?`66UZu;~$C|yp!=6;jo|~vZ zuX&5;dK52URFd)P&!+vYA?XVxcU(mKG=K#aEf+`f%+vF!c=cpgjFq(SyFCe=ezGah ztMC_*e9`3m#z!(Q?XN4l=b6zq1$yEAPjj}TR-5TQ8I+v!md6$uP;rgk zeKx$!p<>D8Eq-&`xhKiX*2LQs=oL%v47IH6DvIXXxX^5Q>}qnC0)s5Hpkg*f@K-mp z$*8SqU!I%TsHcO-!}kW;cJ#zuN^!4FO&h;Ed!t+fYnWB4jIz*z3j401j>(`uAJ03?8|$oHdn-liOUM2WKi0ppIjh+y zn*zOXmqAUt)o^zBygyb;mN!~Zv8Y!9*TzmzWw6ikI=;L zO}~(g%?s4JxEC3E z;Z8)Fw)E*D$EB!Z<^yV7w4egZqZy4Ww>#QB%O_hG73hUK5oubj`X4%)ubm}Z7cHpB zQpC+a+POrXdGU!qI)2Xdf!UT?7ZvE0E5^+~KeJf!p6LpnZsn*PJyo_YT2Qg@Yd4P% zU#H4gx#GBESNW{6by0y{?c&`0%cF}`>lWF+m?aGuVW!>^YvGjMVJwn7DZt8+VSHY zX{N->YmN%^!j`7hHNBrXKL6vjU&KVTpaS=Tp=Z>Wzd3G>%Vch@YFD6_{R(DX-h>_P zG0g1X@mXj=1@4bUtvh@eD?2~4d>Y_x1-JtP?n6L#)Qy6y#n|Ux4PC$~sSYUY3n__m$F+1BWb2{@73Icw`A0+Z zs4}j%sLDQ0J2_db%|Hcu-6M{)`-ALq1VYp1Wm>`>pWl>xhFTXn%jkuaRZV+(zdHMJ zhmkCv253PAmZxdom94?bzi!z`+_k7cFQlw$TFIvy9W!p6Z6x1hXt#^Csf)|EJ5R**Lcsw>-JPq(z=v8;8m*=WoN`8fFTGmr*9Yfp&!bRUj3o4qpy!_VL z3aX6gOjTL`>Wjlg>!Jd^mhSTM0qshu)*aGjH`_2b2TMgy1LPTYCzjfvMh)aB2~xm_ z`;li3OV{L@Lp%-8f{IQua6s;$Z{Ez6oO>f#Vj1GJz5IhT~vFS^F@>D;s7 z;+mrZy|ATe=D^xYEa6Nwhv-*mK?QOyDN;A8##(1O8!ny(s6a3K6DV~`Rfl*QpaQ*+4y9=)-j8-1 z{l?`GcNAJsarrMdZ#y|cl`&+V#t!^^SN23y*t`r6zfh{P>g}6)4rCuDbz_+*UfGyO z;DwAN;zm`{*p6P09pY(Vvw*@@o>sN&14pSgshQ|ks6a1dz-ZdHPkTB#)}A6;7cHnb zFvQJ2iS41zyjk&6j!C}EOgs%xfnLb6(X{R@nmfMOGEKHFT2Qh1??nDv-+ro$?a4#wk}#w@#JU%|EWQ&DxEZH;UzRG?S0s`N$w zDqgkKs);!q>H1Y-;%R^uRNxwZVrCAQ7k({zy}ahAKrd`*niqcG;V8YPqU={_K?Sbi zr=0$gPaRpClwsm&fC}`oU%~Rz?>LS(n$5)104=CMu8GVP?V(JOd>Y^?Q(QTV>qlj# zXb)wIn0OkX1r_#{tduEArc9AMb5x)gt{9V+D%LlN<2mXE*YHxND48-v zOgs%xfnK=sO=gOcDN`hS30hF`d}S;@rw4lpWs3ZiDUv-A73fv@KrHY3w@3AM$`tu2 zQ^Z832-kC=7q0)3nIb=BikNsBpam6Jp3D^aDN`g{7ZvD*>sw@|D48-vvUSmdidPw8 z`JmD<>i(cik)JX}@@aqy^ul#IGE?NIOp$C|w4maYH-@jeJ5ZHDnIb=Bie&4e0=@oN z8pE4iidC&knIe-iMe=EY>toOhXUEG-k)JX}@@aq;RA6~BQ{<;ik!)R5pcl@Lmzg3z zWr}3$q6HNbZbkDCR`pS5PMIPd>Y^kI-C`VbK_*D$fQh>{5C)f zD(tiLC{tuorbwPSD$omO!^ljLpE5;jA8+ zDe_aMNPa=01r`0a)5!1l)m0gkDKaTjBzqz%(98E3DUR1xy`3^eCS{5oB2$EORnQCP zw#ZD8Ntq(~ZGaY3V0kiAWKyO`wk|5r%RZ`4nIb=BisW}KT2S%nmoA=bXIXXTlqoVP zQxq<~4N!qzIHN#jiu{x*lC6stRK$*>x#yD$t1>84WKyO`<}y%$Uf96h z8I&n9DN`i#aHv49ziCAA^rmd8btzM1Ql`ihnW6~;UHn<^`*MHAdR`apG4YoiH@LXp z#h0i0UG1YtnIe-iMSk%#Knp4yH2ZVgp?_2+l`=&pWs2mu0V>dI<2x7sa=@P|BTShh zlQKnqk?}$cDvaqa9+}~p8e^eMk)JX}vaL{oUiW{X(brF3sWK>2WKyO`jvJr_6(7?T zY_7dfXHJJMJ8p6{Gwl>1r=wyx%hxS>D4GQWr|G76eWvq15}`w z{R&d1$fQh>Uwj*&1r>SA(V0KbtY*+rrpTmBksLR8ls1ZAd-IFj<#P^QRFnIhS`XhFsCY0-RJ z#ntM}DO2R9OpzQ#Mg@AUT^-F24O*mHmoi0u$`r}gMGGpf<%r=g!WXMDC{yI8Opz(> zb5x*L#x>F0QFW1OUCI=hlqr&<$VF*Y^t6_8Zrwk|5r>-+IByxaXLstn2$`6*K*TNf>;D6xzf2OrH+XHJ;__}^9KmYj@RR(2>{FEt@t&0ludQN4esxnEnE@g`R zlqoVrrs!dYIDTTnK>0N2@gkPLPl%QK;?8!{_jyl`I&;bt`6*LmicAq&Q1R`BSl&DT zP*nzHijpZ)WQt4?D$py#&^Vs&;uv)vlqvF4rbwO#T2K*vK9&!iIaIY3Wr~t1QzY98 z73kISOe{~%{Fy3)GDUvM6qzDZgcek^CaTVq%)``~Q>G}HGDY&5qXNCKrDdkbPnjaw zuh4>uCZ%F|>tkb88I&pVQ>I9cBBKJm>{pO7MSjW@nc``H7F4u762lYLk5RiEFYQJ1 z^zSv**FX8J9KIppyB5x@qHhCG;LJRn2^f60t5dtQ5n6#>IAhPQK(FBMi2B={SX;XS zYl3qigX;fVE3}{jXYbj|Km~f?Ts*r1=e-4gi<;m(IlBTasKByAE6@w)``Hy}K}G2E zz;?%;fogjhXh8+e_Y18+FMBU}d#1Rx^2LYN+$sZ-g73ScMR7(e&Q;YkRN#z1oPUQ$ zvMbPn3i~WQECUtj75rcHV|y7`Uz{TxR0R5Ns4`H2bCT_4;IYsPTg0xw-WU8Wm;-nu zy8e=w4egZwwHkl^tyE@ zlK(s*jam(eWuOHW_ST&}`498MGXtzkzf4RDe#?rwS9u@FzqtC&DfUPe_j%gOZ=Hd? zOi^*t=i;Nkc)V-DgKDo{ImI5SK}DeNq5>_bXu({3$=z4Zz^FP?rVznhUbBnS+o)@X@e#i09bbDGEgy**0DHSzIO(8?!_|j zSm=d)Ow&X!Bo)h;zH&Lt++d~%b53>zmJ$3ddIlcJu1JV*@ghBMJH>vYOPacP$GG2} zV*k>hI?zk7R%k&*&c@Worrvaly;JRFpaQ+B)S*mK?rTo5AFN&RO)(d@wqJCLo)P>l zYBHs~ioPj++QGwSW_*-1f&}EV119#NX+p=XPja;T0D|nffiK!vctu>dB!RBwGFL6 zFZ(qYeTvS7{W<7L*kf;nHPvN({PVd?7V7MB>YUP#$&h3xEuT}u8rqcB8Z&$ z-Wk|!6VC%JsKB!AWuOAR(wueiG81>HxQk_=1r_%5sNNymzjgPgR)$AkCv_qE*823@ zWQ4;EbntheC;m5u@ajvfxG9ylIRiUkq5{u0_*+D{&}E_@j8shTqC~H7PlYPtTg9 zqE9GAcH$Wh{&=ZV?9aJkXB7Wr#A2t|x6@um!j35Z>&Ur*`&|7Ny}ir#L=pUFzB52W z#4^wlR0~D$oC0@LCH_E#8 z(bA-u?P*5Sw+oz^=o@fRhiJb3y9G|Mmt}AaDR2c*fnM9DM|1bBg-)@$1}e}i_6=(^&7R8%)o#zxg&|=x4YlVu%X=!A%zyf0mvB%W=vSf2K*jw1q|P$YDRx4&mx0GZuN8-*d4-1KoMInUyTV7r=Q)dp z$w(diEo##6r)Zw;)6ver-kDe{w4egZwwHkl^t%6JG|xGDjEdA)23k-N`aH1R@j9d0 zUMsYq;N$wDLIrwZ@6j~p#N8|+D#0qXZ(&k!gjcj^#S$@mnm)!U_N;wW zBZlwIIo282@fHV)zJH;-(|33=wIuIAbC%qf* z6ng;M6=+$%FoqwgG0`dZ{rul*g^HJ(X#bB+lT@U}Gsk10SMdKpq(%kyzTj^W6N8Gt z9fbfc$8D@i;HF3TNf>; z2rC%Ft&^WR#h$#O73hV1Ow&X!q?(zDm)CuRPtA=IU6?okEzhd~Xu2D|0!)j0+xPn+Kw4h?%vlyQD zV1K7cwKd0#9q@{`Xg z_O-kBLoDA?V~|tq`-w*iT?Q(Ko{i;+Y^YNZ1w$*)D_BM#`e3cFzN9jSa#?#P|>4pEH8Yvk2A0jFP4GFLNDxN znkIT7sjLs*=1#)7N;o$PXIa@5SVr)-=oxq^BtH<&AYdbr|9;sNi{XEcuiWu69&Yvd2DfVX#tw67# zw3clA)V5Bs=d4|EtydghGQNq7yTRY0eV%_5$1AOA?hNb{i|2tBRA6oGWuOAR>a>pI zUo2{+;x3kf7F5{JqhRHF`u*Q(TN_^tPD+<4p2sgplu>3)X4)e)wOfvV1b+vv`F~Rg zuV~sw^Hix=8Tp6@0A=9W27inDJaidoK}GBMI9{Vtb9J9%8K^)n&yYCo8`)Cb=b;n_ z7sv4%4?mKz-9>v&?kU+t#dcKSv6hUA$~u$IDWqsMI4IlcqF?5EvV@8a~!Y#Ngoy4L)8ks?AKiMDNj3vPu26{Wz3N5H`jfv+^|L&+_Nhk$+4V@Ry?|j-u#S&Dk+!@dJK()PAXhB6d z?Q)!>R}c04z*?aKz3|G?`lz{GbnAo6R`I6IlEP`f_R(2~$*(x%xCMU)uK9mc2rrY? zhF?1Dm0y$gGVmG%e~Sngx(u|SV*3yAd{e&`>gx_`g_hk%iqY`+|ZV4(wj|wa!_*+C#Jd&oN0xfvlpgPdoQGpgz7!wls=Qrcj*LElc zdaYfQz>5xvR$pGB6c-LB@EKwKj`{!)?Vtn78U(7C-O0~yU3Ur{4MIf@nr&^ zs|UYpQGpgz;Q86x3Ki&e>_Gy*S+0kAzrr%mf{M`Rfo(EkWdi>(Yn04VpxRz5w4kEu zKH_Dx>M!#ep%v(bEv;#u*@^n4#BHYjXSO7_k;n%ZA0@{>excug^%^C|KY}F2KrcZB zdfn@s$Sc>JAjdyKE6{?9-Mtg}wxW|&Rt?KQ1$qVl4}90601 z&O|=8PY*THfMuWpz3S#mTQ`IaBRG{TV4>v!3f2N#efkz5m1}a{X`e?RUYL*3-fyY9xUA^4g^U0S^ zv7@iO475BS=;o~lFOV~K@JMzAT2Qew+RaZ*TdX2=s9K>{@JNA3jSB32!QUcM2Ni)k z3KeKUg{QfjFDXAp%@7KuK(EM_Za(UVv1$$^D$ugCm77nwI8M$A!m>lR6)KDlZr(h4 zlAQY!T7h2J$23j!LaLb+w{lU^>lYVuN5kg_lk_yPb@cY zR&SAtqNu=Q1%HdHhDWm33N3itpgM2`LzRJw<>%eJPVz!^*M?G{7q*DKR@gopvU&J` z-3#P=pZ~2^s3=&{!*6$A;1v78+RMOWp;yN$9zLY(0yU=y&*K;o3HQ>x4AH}bzeW4h zXzt<9zYfkRLIqk-fo0okg$ncv3-j=^*XOH9jb)$(754K;_r<4r)@Zlm&f!k0=Ctwf z`9rqL2!K4~;P1dSN5%He9^N+l3K=<*BB<}STP0@_hgP5k6-zsMc$j~!oXe|eSOzN4 zYbGf+Tv@B;@1g=NS&2#gN!KlMo;DsSbQ!3)(bmIzY~JDw>`aPf;IYsP+t6MHUgzL% z(PQvPb_H5cF|V74H#xpg#l%pxLa$RFdwBDN#VRJE0xfOHEB)lJANKI0Nju~W z<>b2_{`B?^8Fz!~KySxdp#>GI9((xt=R4Fqj! zCBfgKCOfNoc@f(opy{mfB;UdxJm`OMbet5||%pam77&jZ^XuNtcDwL%Lj za{E2J@$4Py`GK`U1$yC?rFFs=hUo5ZC$XnZBg%G5<>gzFPs<3mNAvPwY0t>2^EI%kkP!wL-7u z4T%0de~}0*7Ne{)yd8zn#1zH)e038s(5+fg8S5ZH7o;Qdx%U z>!hGUL>#2!2mcTBtN)}B7E~aa|38-@6zH{=+N#{&XVv--ECVgsI(d2N>*wUV;r~`E zRLqPciuum-Y7G{afyY9xZ-)?1Kj#Ixy3T$cXj!|!OW(K`<<~YI$*w>PDq1h|^68&m zRO{|S)e6085T$+8#7k=39V$lOr)W_0vW&aI-=d{^UhwiUgM;htP=OXyU~TQ^feQ56 zcg)L|y}hL3E|!57RM^j>XSe?PpIz>;3w7_6txCN4WAC5K5nkN6Aox4b6aSk+cx{~Q zO}GDW_MzEksJ54Z7F4W0;N^>wZ#l=&OrFpR^y-^T`%NU@c7AkL%#Ox0 z$Lk#YEn*^;ZC9WL71?ik`OX1Xoq_#Qu?$q8SLn9F`fgq2^^?$ zx+bXzp%v)0ppuW@KbT5!4X_Lr;p4f>r;!AK;BRpcF6Ta8dv1^*fC{vr0&8op6)MoH zKz$!~S52)50$2uGP!ak(f?nb|h}S>(e<1o`8E8R8=w5;f^updlBu`=#5qU_Twzo#P zdXK$)!IsQM-eKQ6NB`~R%lBqBvc-Mx4DLM=s1+*EYZgUkV^uc8OLP1}E6{?9B-+R1 zyNe$fZRNZ^ECUtj75rbcq5VAYItPD?=o3`@-}68VD#Duk`0Fxhjk@xUEL5$~>xJ&) z?+&Il#>+^Jie|-pyg`=?#zcy**K_%Jzq%QXBIkDhkF`R@<19YDDmkO^k6e|4W#DSJax3ztIRK2`% z7thdTpam5LsNFVA%qw>gwbu$2=#{ghkMn)`gbV%_{q>T|#|K`` zZ#-=!=5peBpam6Jc4!59J?`P-`P%1K5e~~h3o1gN2YLm6%eQ{pennUYUO~KSL3QA+ zMFm<=u`Gv=_leA{b|wv_KrifXl2fD;Ax0aEA`#vW5v|or8{&;T zv;w`bk4dtTPBpWLf0Z;dt&e|Jxq_rw%`4>N?S8K)-^lE>61^~}z#WcoSEC9Ky*xu~ zxqpdSDGEGR@VB^XcqDtR(1OPessmRLYlRk6WPIo4hu4(E?Rd-;e4bqvA3V$;2RN$Wa>;9ud9>Wk;1?FkF`Rt;E@8+2Wy4(ZFJDfyNs`8l%ns!pd!$BQGpgzG^cOpJ5y^J zDg3MdSS$3x7O|f>UgzL%5fia&y8FjDweDP`cX&#?pxqKrHZlZz%U&zA zJfS>H_M;9%P`R*dy880 z!QY~NGG3zCKE*Ins9Y%uw4efOYd;TEpx3t3UVhbbstAYI11+eqpNC)+5mQDd{#CiJ zUwU}AVa;Te>G7OKt;aT#y9We+2d?>lQwXnPG=deGyP1)~ze*_s&o=m5+~=XoKnp5z zo}jUi7mbY+{#8mDs6ek_Km31;opoFn+4uhk-e9|ScYtCC7Rn6oxyIUwL5Vbi2q<>9 zYwfz`+O@{&+OEZ1yLRnbU3={$L_k1(XJ+2R=QW=ne81oS?&E#VbIz?f_kHUO?aDM@ z)|~iPxfAqV%d3|5RyF?B+DWvw*sZ-aC;n9qfzSF#{|#67VpcW&722j9ET~niKyj*Ic2N zxy{u+MWt6L{?!(=VWd^>gWrbKVj<-ah4RI+dX8PR?*}z48q0!@b=Cg2;kPKw1WJ&| z+lE}0{Ku>ARy77yecIbhDbUNRMw&8msQ31~%7H|K8nJBi^j_ASNK-lGz-OVBol7j6 z9N5R26KN`ksM&&gLl;lYml$a^C)JyfFDcj0niFX%hd>DuXxm&@NTAlj2K238_r5k? zf+a@@5_y*c>mAzzX>+bng2b9qu`IcLcWX{`v7C}4fm+zITJ$7$igY7U{3~ZS7Q>!p zdTJgHztw4^^)^>y6#Y+xs@2#hhW-53)0z|iDu=)}Fw&}r%i9J@kl0u~mc1Y3Y4dQH zE0nCK`iTkj)Vvx#$y{=jAaSh_{f7(pwC2RW$|(mDsP&9Si3y`TtvT_patM@UyojMl zQ=V2e{uMqc?_43V=ur%t`h%zDgYza(Yu;Zm?CNq)Yfk*DoLr%#)XErkF5c6s#=rW% z4@J`1(Xy+rL(YSb)>f3-z`FSp`1Uya)`$y z*%#=o`N2XRV^~tUkM>TWZ7mj34uKLRW)eMYgRfPMy<{d(;zZ}u^4%V+`9yq@nLr5= zQ;A;F*Waqf+sd0jtxug}Sh^fw&56pDQ;yo*Vpx#~^D?RIVHX zB}iay&ACDXwU%^=VYg}p+I%9mAWD$PyBvm=HYbDjH-6W>585zEfXKU-Ac0!gd$c%3 z3Pp&KDE^hR-M(nH_qRZ+8vp9co@i#jJ{!29b+doM28F!vXvwKa0tZMu#gZTf;ff6LD z-j8Op%LG|-;$P*I90}CIIyBcV_C6!6jt2N7Gl3E${%sY*z7z?z=ET3sHCL!rxPA$kM_Y5^U**`qXQ3AMF)gx@M5Pxg{*}|?n#0+pkP%ijnpHl!W!Ph6oK=lx zg-J`{Sz*u1FPdWH>rmXTIl4WE>^4ScRa>n)g<4J7u^{lSZuVy!t5 znsUt*YGI9-bA|O&yVP*j=53r+jmq_Z%M}tCg@?0}#YWrqKk_OEYW(cFaw^;3~vn>imu`#vdw6BqF{5p)CSv$(+;naR>5SS|?t@b5+lG(T!MtO=UGLfht& zqXdb2+T%ne^ z&D9=4ltl5boDCbQ$LaPZlGUm(QuAHL?|Q$=jZh^>SYJl6g=OQcU$fQIpLr3ewfIUT z+dqGl?Q6|Qpk&z5NR~ij#?Bf4T~|n8ev$B`C}}rekFmXjc@e1fe0?Mv;x|_FuI6%} zezUvLYi^Rvyk*w}<-R~M{wQULy zq}F_B_+2DWf&}K)Tn;2qt873d`$;tXF4{l|66SKK5r-&ljYRRUocqyNXIp2*XtTId z=OWm>hcTLmGtzob{ND&w>*lQp=HFw4Hk;HUH09VBTOyKeYBN@wBkxU#VDqMr(q_VW z+dv5tRfu+o8)cgbW3G@ut-N!EZD6ETzl%>Ymjfk8JP;$I3x9!Scu2AAyEs~x4ahx_Y{lDc3i6#`6 zb9jSs+Db^?xk4@M3tF5aiE<`U{3~a)ZlqQJSpQ4}8wQ=4>ABfJqTJvJmM<$#n^T)@pd`>5!3H)Qt=wZe#EjPF zpJp5QEYw<-it1B6d~;yBR*xw&#U5P=Z9>y#xu=s=G9TmAE;=HV�hbTgf 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�oy?S1LD=wVvF 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 z zcI0j2tIR#jEq@eO2uwZd(2xxe*k|>cO#g#j-+gcFnAh8^apj>8D@fqypZ|ti^TwET zpuJf;p_h#WrjGN;}0D{2Q>izjs=JTj*0;Cu^(`HsGC6BYjf`D@fpq!FMGwql|V5vBs-xJrn{{>1Nbp z8`s5H;Rn9sJsRf^G;;Uf;VqIF=3oU0TroVJpSwKvK3hM__v(0rLSQOvSsfOWb)$7{ zA@vy4bw%9N*V}F1^uR5`zsSFts?mCTp{7g%$M=eLD|Zaml`Og*mAX` zvCKO4{~kl{@3MCXKC(NWR0yR)BW6tRM9m$E8(%6yuGT*l`hk-(I^21$S2d)eL_ZTB=WSMc9g zSV02U82%K&#H?oPHH}RFzltjardC&CEc5Q;)|Sn*`V@%$((F02nOWt#hd!(zfolvu z&#*MFY4u`erqjJ_Bruinsm0Q#IBwl+LGSi4gEN}3@5-7F&cC#=f&{Kg9?#IYjAn~N z*~}`@IUOW0RcM3BmZo;Bh_kdZ%$jq}xHj>sVSQ}kU>G4eEz7aGM#HMDymgO;IaomgS0(-#oSx*ZxOBI##<2*6z*LdS%smK0^mA=fWqV3?jgB`3OfvXb#=B!)8e)9N^?bje!Aux6FK~*-g(N63AVES8S zYO~f}`a?cv5nti3f&{Kg9#5Z(m+bKeiaB5M-&aUrYSp4DEJxsWYuij(MSolU+P?o? zeP`Z-1RE1g2gut;((}-C;G}PQPUQ#w6Ke3ZJvDEoy0E1&K@jYOsB|He2V@ z(t4Gh?Xs&ppJ4}^y%hpezj`h9Iw8gidr9k6w(AwmHrdOX75*)5$h#@7G5iGE^QyAX zn_ac)UZPL!uU#sbb%HCJb1yvfVFd~NY)=0yD`yhd-fA>^ouY$g_^1Y!?RNoHo zj6qFfjrJ*tOiszhRUND#fuCk>sqIoZ zv!7;jQt)#!NMI_Va4D8;RJ_%2AFV!-{c<^1PLy-*JxQ>!f&_jxJ)YSKWt~dZOFOe; z!W05igRPQm-v`Hw98#R?MmY385WMb(`wmjj%#r-Kb7F!gzK zNj7)uF>7K2`hC^&UO^}3_bkrSy?!QEkibtfzw&cAk8`lkbNeg)+Xo3uy>DNdZ5npM zdU1_bpW)4Zwi^dU+TEMBHL-%kjctL<9r?ajyTp#!DEypfre`0-+p5D7H%%sqE+VDL*L;mS)JD@fp4 z$)9?tuQ0@q6ZyzpCh zjE5h-HY(Tap%9pw|4T_`%)f6H4x%-2_ssgnt=fg-V*d(ru!01xmE5)yhI{jVcFT7* z`&fm*)acd4*uD5W)`YLA$MbZiy(arSds*Hg4pxxBm5={!Kd{w~{65xhJv~?eSIMxV5XvfgY(OjLnKz|#mtQ4A0@ue`tpZs6Z8xljlj&Dqw{(Hdhx*U# zgadviR*=B8(&Ksks+1F7^nl%hpOHcWQ~v}OX4!7vvi5&L>u&a?@9oKV2io_0wKcJV z1g@2Q^|8;`pQTD+4;>ex5SXgwDaQ7Fe#iRy3H6x1!)xcMX$6^c!cD9ofh!+>uJir< zzI!9Kds}85s}Puy`)<*iNKZ;n@o7hBtRR6aAO983cb(qxY1e5aFeUHbrGLi){?wt? zpPo8|6(n%2RPXpj0#mqF^1F&VS2sIk{@UF0CPrCBk-+tl&hPd#GaSBV6#7`)kas~} zWw<`RiYdwd`u3xBq$$03ckb+Ip1gX;sKkHoVg(6Y`8=McE&A~L42~F`PWG~qz*J+S zBpa0LqxI|qeFk$@Z)P6Nz0+9r^rejzByg?tczVsMVKxpKYjiu2(?J4LIrrKzF3{ zvuhYHD*5}u3WPgYK?2uGkEi3A!rp&!KlSa)JyszwHS>8vHvRTHt9TdcQQ*}8J9NNE z`$3r@4pxxBwUS?Bu};{BSI@Kij0;u>OqJT7pWPn%yOl8){jIFr*_^f+PulIeRCTa| z1g@3*JY46}PRjkq?98Y0D+H#>UdqRAq<&-hD$xIVrJou(!wWsJt3OV#v4RAyeEd^e zx0};($5lI!pX);cQ_~LRW%(<;w*L5)epA1{-P5rGf41+(kMUv!30(R3wYv;`ocg_e z_E!FT7YR(wtdftlTm0I3dzOBeSkVof5!<%eEZ)z=3KFchT-}6DvsI%EzyNEL`H-{^M!yuv}vm0#kC|4C;ZqU|1F@ z3=JcV_<~c7k?H!GNMK4#U1Z-!e=D4{zzP!TDoWEFbH!8ZK231YYheo4N`5!)mo3aG zlV2D$Uc@M?C=$3n^5^N78D_4lIL(;JukgwVmn#g{$Mao_vA~e@tmY(o?*_jeX2utu zZ+y$I@L~lCT>1EuxepFA_hxNvWKHa4BY~+~FN(5mEz`5%W#}^)^{S(}{MW|DR=)0H z1qoa$`B~?M4a~J|o_V9=aym$0YL}-7oA!G;mTNPuS5F&eH%rc$=iSS%x?=?iTr2q= zJQtoBNh3EO-5S_KAu#pJtAeaxmvpSde!APR_xwQP!^CC2Fi*IH6(n%2iy0bBIik z@7-pjhdV)w7u$ZP`FRGYAc1Qozhi6DFlWH>4)&k?3NI3vimj51jUShWjr~Z!OHLPU zeeVE>@7hwbJAHp=u2$v;EMwuwH;dV9Kv+9ya2aH0;TA`c2)cRXQhNafGk( z$hIa{kifOl9zpu>EX4Zbiyi54CZ6q*NZ9@?j>*Qby zTGMCn?d)Ll&JPW|i*CNOv4RAymHa&QhDPR(xs&1=?ab*QfvLi=g_z&L9ISE@tyfd( zi zU~1Raui2!C9BfrVT6fge3w-_)1sh@XiSByg?dd%iTRG538Qv-A2ttB2uv-^n2$AIl7odz zqxGslbbh}Ake!ceX*S?f5JVr=DghF6S?n_5KN_6jLeD>-aquiiS z6DvsI%E#ZkLGeb*guF(X6CnzLDLE}oJ#a!AD@drTsF=bo&!0Ap1g3DUPW>aoTz|N) zZzaFtjuj+u<>PZKEk~NI*7(`O`4x90F!gj|QP#75K{jV3eFkr~>1NKTd(HRc!b=+~ zNZ?xO@q9b9o|!&p5xY0P;*JESE-x(1HZCj3%Ku91RnhP)W{R+kcAkHlI9Ndf*GfKJ z6Mx$%u)CPO{PP|v0c-83aRu4gtO0E3N18<1^G9}LRGCcn41UEOEBLy&R`R=$cI=Ex zd;2qcupOZgnELamKRdB4fF<3e9@PtPv@f*#$#>$X!46iCz_pV9vW$CaKU^@wmxr&r zNMNdY+dS+@#X@Yy68c-EN>|S5mv*%8*BVtFtRR6apT|?JMqMYk=71yqhx020rna`t z#rjPt#JcXJwf*GqZ=FcL5^)*$6?d#4fh!-sJ9_I#XT`M1-UXY&6arIo%jRSm_7!3) z`q6tgs^U1OPhdUoa(=}fD@fp4>G6y@I?~C+{_>vTSKN`n)Y1bv*@ehLY*}skO&zhN zgEKNVk?#`YXJQ2jTr2rBc^AvcQzD=7gkNz-0#lXm^wiFhJ1LDu z4ceMmK?2uG{>*{qC+zyaVZ3xVg(6Y`S|zw!*j;oR(riOkA;{> zU`jmK;$Ru-flt4{3KF>kmeeKj2ANsI@1g?Di%w4vD=EpCV z*dBg<7YR(A9bba&3ogSNuBFf5>A~&HXOkw_ZTbBSSV02UN{=USFn^AI&!zUYZ8;qz zFg0{jF}6EpS@tqJttERpq&Fw!9%z4-qN#%wByg?d|L2{~8Gh>q+k0~NPzX$A+*_DE zOjVAREktYLZ!`Yz{?j?Y?s+E6!3q+%@_9UW@0IqwO!~_=`TGckz|^U)3bKP{c{VEr z^$5tb&Az;)sjvU9gB`3OfomnVBHwF!Xqj0-XF3Ke1f~XE_h-{OR$%>o)Fa8SoKt)H zNbidVRUND#forA5v$}dMXHsH1qj-FNg}_vW7kSx6zltpHb^8Bco%%XuCVy?DLmL@suG5LqSPgZ>*Ml-vg}c_Ko(t$-n+p; z{Y-1{X**ZaLmyU6A-N@>p5SVK9obN>QCWsyDNYnjQ<{a~8u29~t^eW833KFuYfrA5sN@gG8UE$%z{`ve0fvKLS z3$hkn7>oU!{?E%b@8ZN3US(W~9 z3G{uwD_wubv*U#EGhcVHf&{LW9#6`QU7d5|?;15u1{+9V>NDGvA^lP)W{v& z*2D@DxK{GJEE=t~x80v^ydN2&5SXg_dl6>jGTELqv|gp^yW5xLm!d|*uqLRGqY9Z?J?8J1#9DXI}!>UjdD@fqV=kcs-dfpgO zZK&^A>V67=Dfyf``df*o){W!4b72Jubrr=Y;~{}5Tr2rs*XdyvoV?cV{5nQiMUlYu z(c}61SPL`eL3*bYzkgReEwEtsiwxJtxq($!ztXkX%R%(s-MFcZ`EGJrr#fGEv4RAy zd>&7(BlXPV1+zKLj`y;Wz|^ZdmD%DEwb(a#=rfpNaTT-2`jpPq2QO``Ac1Qo|3#KF zkGZU8DyMaPP6r80^=eUx?ToI?&Mc(02>Byg?tcxt9u<(ri%-q+86tU_Sw z_N_9k^)K~V_p#JtSo{|I&aegEs{DQitRR7FC0|7c-?jTKt8BcO9IOzS3Joa5Qhe5k z)eNM+mHAZx=ib~UMiRe|3@b?B%IEQX*1nWex#>xx?%DhbfvJ(RO0c^%8nfS9()ZxK zl1-fMVLux`^WVEzK>}Ak{#!IvGbdyJH0JV+VG4n%1#645Tz@rYrN5x}ZihAPoGg>m zm;rot2`fn8TFK8qZmaKH^ky|L@^u#pOxfv6uv?oOvl36~cgfxg6`X(t{~A+lKNBlR z;9BYN97&tQX;J;7v9M8qLSQPx>5{BVlSXXm2>MNJH92oTOn2DujB9IR1qoa$J)R+T zr`ZFGL>UA4{R~K8s!yXbEMvO{?0sWeuhPsN>3jdOtg&EwxQP`caINIOMUPkXp8xR3 zyEN}ug}_vW5#`vJn0hQvf9kRL^)%yrm>pNf7iwY!30(O+o|Y+28Ea>!u*1ISrx2Ku z&oHIG6+Myk;-{S#v4VuUihd5eJ0gK8Tq`}EE2UbRGiUr_fB$QYvWg;s>!ZhW;InFG z@Xiv>2Yx>TK9vX8$F2iRRw!#@Hhwd$i5o1hx#B}HXDGj)0V_!0%IERaDqYI_dO-yz zkl)XM1g2i)GuffOjoI!N^ch@U)!(cenBRHzg0H(!K?2uGzV3EUX> zH)l(4&{MhQ^iJz-xwf|bG<~>(6(n%2rv%%JI$Z+`M$XP3W2G}0hL(Phqi3eOj_G3|4`L={lk~0ho9fY z3KF>T@!z6PD?1C%7BT(#{R~K8>hy++?E3X~%vYPZlf0Vm~;D$^rJ%* z0#hkAR%Ib!t=Npov|g1pUdF9#A82^igqv7F0@q4@=I+O--hyL)@DAfwfRMnHx{rJ6 z+*6FdHcs~C*%)eK1qodF_?c~X*r>6{YsWtdQ3y<_&kDn*O=ATKbrt=A@7#Oz)6Ts} zU<%hter=+u*L<)kyOZUY7-bbj0@p`wEVa8h)wcX)?ESFO8(C^8yW_oQtz1!`RSRCq zemHQ~YCF6kEAPj5yean1%KUXh{{QjIx^B*wH7*;o><9xZNQnIh-97KiEg$I2+r80f zouY(7VCu$)mF)J;)a<*Xjd+idr$d|v9R?X|`S%A_kPy%1boadPQFgS`a7TV)9)A`R z5}11PW)YkfqbG~Jclo^^SV2PU1>x>_e=~TD(`{k5xI+9p3JFXt zy0MCN9_h~>ly1g*q$@kv8N1<#uPDFHi4`QoUJ&k{_o3-WIbHq?w72v7OOU{n->#MH zpV=i?_v_7hkAHl9onGn2**AC(tRNxwf^he||7ur%r(&m__LqEm83{~fTeh5?jIYc* zom=uAS+jL?rgloSH$06ou!4lx3&P#={!EFEPLFPX+1L5`D0It63xueIVm z_D-$q>^_*r8N}~B#|jc+F9>(f`y_8or`jL>&TzjH3W2GAeG8bkUjz2bur|EM+tsC< z2`h>?mwt;eu!4lx3&P#={`2<%&h<2=)9vr#3W2G>&*rcR6I-xvi?`!FI;G3xRLoJ+ z*~CACSV2PU1>x>_Uw?E8r^B{(&J_N>LIP7~Hcw-B@3vzPAGYT`KDN1Pm)qaY>Bj%h zv4VtnE~mTaeU26T>{WZeb!PGR6%v^0bZ-KyT%$AFw6G)ZaiaS)`=6*j&RE_9D@cgF zAlyCg|1DPAem85R6Tz?1BY~;SZ$`3>3;466{5$g=pSSwi_ip_l=Q96WVFd~CTuyh- z`?8ZgzTfMNacsVpAc3i0iuPxxA9Q8M7Ioo07C$ZL{rU4D&cl~623C*|dqKE+-Z$u! z#_;A3bJnITp%9od{JSx`QWv(PWH;WUa?2*h&ZFNtU%rYlu!4kmE~mTaeS@sa4gVd3 zotk`Z0tqG6xE1@Se+M@FZZPk$`mY1V#ztM82>u!LKm`f07lga#{k)e?jO8!7I)C!_ z6%v?gAS|9#}y_e5<*8-X8=vKmt?ZTkYOYy?GD(9>fX~;ycmZ^B&Lp zAb}}iEG=91w9DRDNc!lMx01J7S!1qpF3%iZ&yuGcQ+ z*J~^B>$ON=N?d6;wDeovgRV_X=hr6s@oN)UK|)-oaQD2&dvTD!l(>p~ti=G{gRVOd z{&d|LD@cfI(C(i1c%LN_m=bpgO-Vh7_rQCKu!4lRzsTM5p6;RF@aZ0UBrqlJ{v5V; zFz}0a zc`0Ypj^sV=@+Y^n`Sj!#tRNwt;^OXkkI$w;0#o9tQw^L^yvGZ8{uNe`5Kqr?_q@la z?;(LH@m#%|ox^w!e8Qhn`Sgq}dR_6fKX=c2eD)_2m=aI*tnhs}@9_&fUlc1yh-Zzu zd*0)dhmpXPc&6}o9V2*;pFTa^I17KeF;}#z;O~X?{Au!c4#U%Fh z`ev(Xs&SkcI$@rjs&{X5ET5IZ3KDYv!3mtGUN+v&T`t5-;_oXYFjfEfbas5yE~{-< zI;wd8AMHKk+L-0J8(;+qx&PoqP7EKM#!39x%KU+U4fu*H3)b?&@?@Km7Ei zvpvW%)AH{@tRNxwf^he|U-VNk=Z~F%=Fhwb5||o4bs?)b>VmcKb2_TRwaPlzE(Mr% z`TagvK|<^W;qG}qW@8L41g3;prkOp76LEPuIYSdp8Kd9DBpW1EkPvR@?s>0sP9iWRJn>0q zIx3xWQUwX&hVGvCI_D$;Q^FH#22SBUbk0c?B!nBfd*17ulL$-+PaOKyRNh19oK!(V zxS_k}z0Ns_z?AUB-Os3p&N-=qgm6Q5&wHJ75`ihztDa zObN4$?KhqG&^aenkPvR@?s>0sP9iWR%<^ru8N7$iIjMq#a6@;`d!2ImIf=lO@Wh$(X7e68=cEb}!VTR$?{&^e1g3;p-mO1}_s}^fRge&F=0sP9iWRJTbc1Lf%8?oK!(VxS_k}z0Ns_z?AUBoNuUy&N-=qgm6Q5&wHJ75`ih< ziJi_Z;yrZENfji78@hYm>ztDaObJiy7QLAF&^aenkPvR@?s>0sP9iWRJhA4aCA^2u zIjMq#a6@;`d!2IJ#@}V6(ockx_jR1oRbJl2~W(Nei`qfb55!tA>5Gm zsaK!3gs+7u;fZxGQ4gJSQUwX&hVGvCI_D$;Q^FIsY^I~qIVV++5N_!1d9QO$A}}R9 zvFGF!yob&?se*)XLwC=6opTa_DdCBmx~}9sbk0c?B!o@6d*17u^Z&2)$sj2uJn=>8 zRlJAJIsab)Lb##3=e^E3iNKWb#9Ys)ht4^vf`o8Gch7sBa}t3mVV1wduI4>-&Pf#{ zq#H(ZLg$=BU`lvm(TQs~p>s~EAR*mwEhlu&Nd%^(C(=>roikD)q#H(YLhqcBuuEYS zlb%RNrFYJ?3L)Ik-Sb}WoNHm1!gWk~A{~|9IinOpy5Txb=$$hvd6&Xd|E^=wEUAay zIaNZs;d)N!oihpya((i3&a|`XsC3Rr6?|Rkh8sAcb50^KC7qLwO7EQO6+*b7yXU>$ zIoBr}B&DQt(oyN1bAv)iH{8Sty>o5=gWSZVb8h5>-Z?iagmlBroX|VxMli_DOgbm^ z&^xC}NH?S&dgt5-2DzC@=cIqR-Z?iZgml9#oX|VxCNRh?OgbkWmEJiwD};2zt(?$1 zCqMR#OWBmgjNR?Dl}YEMqtZL)7KM;*7|jX2b8Z2HjAp_)D`%&p(m5wp@O7md#&AOC zoJ3$sIw$qeJEuxWH>4hV=iCYg8N;M=(!X5qoY4v)-EbQx^v)R#2Dyz%=cJ?3J7D8nC-ly_0}OH(6VCZ^5FM4yIjMrLE8TE6Cv?t91g4~O(oyN1bC*I$H{8Ps zy>spYgWLmiOw>c~oGKyRkb3Bya~Bxo9+*+3f4SZ{cPoT+!@Zo)JLhgN$i49V0XizZ zbM8?H;fC&>_j>2tlWdTblFms-rFYJ~3L)KaKPU9gxfcv_KRh>VA1CzAxlbXa8y?_< z-Z}SyK^{ncCS>OHbX0oh+^-PQ4XKCjIw!prrlfOH5504$gmlA$oX|VxelW;`@GN&a zD!p?aPzd3M?w4wxp@0^FhAdfQX zob)f(JLeIFkZwqO-s_$72pD7>lg>#;rFYJw3L$Nh_Pp0S=TR_7ACt~WN2PbpIE9eT zNqgSwoih#$(gx?GqtZL4Pa&jpI-Jlurw5`ih< zoad9Mht4^vf`oL#W1P@AClQzu*E!S9rlZn3r=t+kCgVAwcTNWkGM-82q@&V1=P`wl z&Uu^@dgnX_26-Hula5O7obd`Fo$~}I^v)R%26+OUla5O7oW~VHI_F7F=$-R8IOj=l zPU@j|PL+_(Nj>z=c^nM#BseGi%k|EALLsDcp5lbwIZuE=o=SGk?fvMebk0c?d|hdi zr#Yc>P9iWRos*7A@0_O;Lb~A@PUxNU6d2?ga85cZy>p&c2x*fEoX|VxX>iU2CY_Ud z=$%s~q;paay>p%hgG>PDq<^{IInOABa87s6d%bg>Nj6AIN#~@a(mQ8@LP+OKWi z6Tl!7!8y-zLhqbs6+$?tyXU>$InO2=B&DQt(oyN1Gf^R=b0%>@@0^L?oILf(IRpR4 z)>+3@vBd9x?e0!&30uVC?Cf|@5epFo0Ra&MLBP0TVxgFrh=HPlg`!^D3unjfZV|D& z^N$vvV)_yKjlR zwfpC8(MFjjx-x3Fmc{@5XLx(+Gkd>wp8uQggY~^H`CcY3`&i6Hch5?s_9riDMZ>b_ z@I8q%r0FGXZ}uIURUwIve{fH0cJmG=x=-~Wmiwhy$0MUn{y$dH>-rfj|G_MJ{9+>Q z*6*U`c{YnK{kV#fn`g9#%kOexSrt!W<6V;V-5qN}1&Lbs6KO-sMgFO>IFWCT7ukNf z02}nQu!;n_>}n>_ftT*d4ArIssePdy+cEr#sZ4qPM#c60La`6x|9*Txt1$e3f2#28 z&V)X)VR6q_J7WeCb2hA`%ljVH=BzS4)%(dkNQZ~~joB}bR_#C+_6UF9*}f53Or6=t zsi~&d@k?lk!zS^m{?+2?tdwn9c(W{upO)`@VroTvERL+0&5{gMkT_XpIej@|zqWp` z@u?yjwwH+R75H|C?_~WypU|!2 zLV7lJwbnu$bEojqWZVl6c7JPs6Dml|iHoDV>{rO+ajjf+l3vG+#YDteWt6(InA$#0 z(QNZ)S>^Fj--Vha#?F=fdu@^h|1J{W7cQahE}OJ}$`~!by1p(6o#w(~XA&y{UD$6t z!{4HQUJ}3_bY8FbEH|5Gw~rIw>bLo3(@PiQG>5=D)Q`@lhw3lT?hQ1)?M;iGRgcv3 zXDtS<&`~KiU>?1Dcd1r(*&T|1iN8&5x~;Yd^kbpd7g%K=;c$8$os$@^B_B z_%vT;b3Mk2Ko^@GN7LL^$lu`i(9i17X?>VdV~&mr60au5(Nb|MwBUnAMhAzyq*|s2 zTOL2fia=MHCJX7p(A8Svb%SuooT@%;K8W?5p00l|Pp4OB#%f80@6bYhX3ztc*;;f% z?sA<@TlJnPKh-lfM@^_ah?!&e>Zl-5V#N$PuHYPPjDwLe{o^Wi>gFM=Z1d$-1iGwy zx9Iw<>X3_p?8JfXR(*xUZ<|?k{KENKq=%8=^Z0-ocQ=6jeR+cwfi67$e69Per=}kJ zgIVE}Z2d;ac$#)$x>k8tCVfz1A}wAcMw@NPq@J_K)4T_!%9ghroKM}bYY^+*^_Gqb z5|y)~>7wKqt^Q@>+@5c4Gxe{G;jF9OW-G$VW!1Yu{$8rf&0uzD>lv%QLSlsDbXsjf zti}o%E%yi+rA}}h#OyNMBg@CTBfmQrC>qY5>goFO9^v%clqsTxYeOUGuIAIV zs3HHm<;35Wut%1rn@z0a5<7+p5}P7|XqBxqwY#N_PxaofyS{v?9UFM74a@tbFD=_+ zzSfxUV2`_5m)O*oM!U|HV}^GHiS8BHlzr;x$WTE7_r>OO8F?M_n$6m?Exqil2z22m z`%N znenOGf10kFMmw;(U0PTX=)ykaYpeg~rMI6{m;E=&WYt$l6x!RDo)|Y@Bk4v)-;?h8 ziZQnANnBei0$q4y`6&F zF`r>sdEKHG{A}^HOk`Wmo9LB(yS3YVl$vQV(HVtzYxMjr>er|(y%MlXj(2CZd1?9k zNg;h?(TNNdB$ggDQTqwIw3!!-@$SCW1@!eFs_ScyjJG1t_4}!b#@PL>WnVD}%k+AB z)!Ci(_}x(q72S@|@M>w=u*d)VQ)PZo^-&`u^bW40tum0X-pllJ&w={ha|ycb+2K|M zy0G8)Dp1ZH^x`uX>Y0{Eh6)n6cPhX0V|Lf;rmxXA9U5*$pv(Grj16>j?pZR>`RRYw z)dW@$k#$sh==N@H6F)Y*68;sb&YihIZJjcV)os~{HafdQ9H|ni9ckZt+qK5UZqvm( zO!VQd40!}Q+H_YpoSvaRJ~)D*g2dcrlzvUvrFGyv&DZ|yZ?C@U-&1uc5oJZ7tK(Ec zFQo0(_T4au<8LddTIUw(;V$DCDw{v6^!wx8n$C|iX7gF+F2&TCruEc!oyJ>bAW^3ad^UG;G6S_jRUD!}o}@&)7ZgbX9Pw`1hbKJ?PYwOqBStPu5!S^J~pc?ldN8qt-X%Hbt7Rc(Q(`+UP|o@*>@pp@KxA zdp+r%`x~|EV*m4Zi)X5Vvr3Q&!}*(H@JY~R{iz<;X{Z+5<4pSBYsjMe1k)=W*ND&l zK6?ON%KyEAUzZN_@S!LETQB~fuiSF0nOY&F6)9DxDMJN`%~=7o-~Kh)&NoKOH_>+L z@aN6RkV-8WD(x!y)BQb?G^cz2J0qyEt2(YiV=_6bl~o23k@@q3#I$uFK?!M{d z6O|;WwpPaji7s7&X;#K+?S>fpyvSD68ESj-ezAiUfi65Yit^~(Aj_ka2y*7w-+J>2&*=4caPR zJNf!frOmvOwR?Q5zRPVY-RqMgKUJ5EVfu&4~GHa{|bYYwLI>J8+us-g+ z$h@6@>8U^F((!To#iu&?eJ(vacfVGh&ko_I<@>%4%gYu%@*qpLL|e53iDC2R(7gHf zXhX%!#MtbA^%t-Ekbk<(u_DlgZQ^6Nt2NoWrmiGz{$G~1TjOYE0u!@NuQ$fgvfG(< zh0hK}6^f$=PFb|Ne4dH7gH~X7+wxtA-QrA0peuRy99pQ-9yx!N_MjSNSj>A_*8dZ z)neyXcOouH{jCUeVVn4#lNUO&KP~H!jWujcABr!fmMPb@QA@HYenPtj@pQTQjy86u zk}%-U9u*|Ax-6#a=APF^4>3MfwF+(7)jQ2da^J*sB+!NZW~^@9n|XIE zMOuBEX8Nb*GJ5{uea(T-H2c1dr`;Hz1wNidt=rMNxCiSVUxs`y5N<*RiAPcKv`Xc> zniHSD=5-WxXSchTCzHc^SrO>MKICVgik@su|B_@_Laf!N!o2^vw{2wbnQg{rwuv#b zjS3Pm^_J6Jwcg6(@wSjJiy51rw5c>W0||6Ry65yr)7!@He51W98$SBI`ts>zz1pv3 zG|1+jwwm8vaP(hBU+VX@U;J!vyU}vGvea97#d(}wf_VqQ1CNZiinKrdCw zM|1AVTz=e-G;9$d+JOYRZum5$**l8MjH=s1$?j(zL zG#SSn33Pp%*nrk~RZ(VqwT~oy+eMj-zCs0w5pNpOweKs+jGos6NkcwEX!I2l=wc-r z(qj&_Wk$Up5hTyAg%%?N6(m9?*wXA@wPc3Rq5h=C%8I(t4kXYutf(Djs)Nj!Zxc%T z2X)tt3{;S)6>d+%v+ZR@luuu>&ux~-KmuJALmJVO9~@=Ipq&Fqc->92n>HfP>)MJ8RFJ5ikI;rMy2*?MTg#By100y~y+Q(AuM2ge--me0j5gKF zkpoex$Up^&=uAF$*0#6IQ28$7bAOtcaV|juT~}`PpzF8xlNnxKZ`Fwvdokmfqk@Fv zt)igYe zCQKV3Gj=BErl<)KA_Em9CQk{Y^U4Owj7JyuwO{utP-Gy1u5P==(CF^D8Bfnvvm{4F ziVRecuw68U4$lsd8Aq$Vvow6`FOE49==x{a6l%LQK(^yRL?b=vc$mmQ1&OoT6xz`x zx3A_#kJPhQc#C!*fvz}@88ju?PiCxhP0+7K1&a(+kSJMt2F>5iSGFU{caQE-lCPZ2 zzq?4FtL@j>)TxuV%!nUyT~FTc#eVYdE-FYwu9;0E@_WgQZ~wm1i%lV-9Y~;SmP;HR zyV*l#tlCkCEj`vrv;!3+oUhNP$ENj?83QMjVoO>#78yvOt4y86bmG&lGNX5)I;_U0 z<{|?XBtnxG(G?HfWQI@k1}x9QN+JUZbR|uSr#EZ6$c$aB+p;gIRYV3VNZ7qxN*}wJ zWk%brZQ1yjzjWhxAc3y1PRptH)b=u?@%e77dz$Oh0;3 zoZFE=*V6En^lQ@=GNZ|0KbEieVR8LH1&KjNR?xfKn#+vIWBahR2j}a?c^3(E4dw5t zR`Iiy8Nc@oVNsQ*iFTlZ#G%%!XtScWG9!TYXInFCi@rhvUEzBZ=}xDbGNa?va5iwO zA~H}x;>NF4bU~$>GUHr&AR8WD-eO#%kU-a=Q;F2&V>y{odrKsn6SB3v@%umpi8G}W z>866^Wk%?Y0JiVIPBFeh0$soBCDIy4ipY#xwZoZP=VD?EhYAv{B3IENMT*LdgYiDB zaCJ}BXa^GL>T`Z2J@)q>Io{3lbuinY#)=G7kmzc&l4kZ&WJY$mUThfO9oRVLNTBPl zQ_HE#rPnf}drx0>xb+EA@OIUrkI)c$ZXLLB+wO6YZ+BdcVxzm0bSXORD~GV zT2zq0x{dD*ShEEi(XR+G`U(kjO?$YQE^|LCGrmT*W{wA{5o7Fw3KCc$^Cwa|)?j_k z*Af{>pzCbS1@wMDi_AD(q!xQ>X(=*LLBe`2L-Q-Ze%Z7V8Azb3((^gA^_stBM&qag z?6=uf^c5;dSkJI*+wCKn674_*33u12^k#I5%ovrT>3(~CiSgY< z0$t|YV`GUe2=I?HEXmb2}2~dctR&w_i(? z8G-K~WGq?`DKbz&!Ye79>U)!9Mio=A>E76!3?$H%**}=}<#Vq&HRp||S50SIMu@&b z1&L|PgQ?AobuuF$s+Aht-A^13B+%8?--p)pNtPM^l@C|zHVYB$Kn006XME_GsvBiS zvO|LEc&oR_KmuLtj5}R=G*xC)IkQh)wBBE2pn^o$kY4nXf11qjPQ9d#Gib7EmGu-Es337D(Ulf!lJndmpF=L5k6bwKB)(TjpbO_w_}#uX6-dHm zXK_4GK?3Ja`15d^O0s_Oy@~JIWDCxP;#@EOx)kMNfr9K;hBxW5_oxLGB&=tI`}g~x zGw%T;DWAUy33TDFi=W{J-_f@!gGsGQ$1JEIVLcbVuG3Ea(8ma}hG!swF8p;VN`SgT zFIjk$$Up@N>$?Ee=X&Y355|dhAb~FYb@BbSTiNOpJST_@RFJT~|M50$sb&1fXweQN z(1pJ)zT2kj^^Am!Xpw;m5_o5eKV^|L%k)=?$)X)dpbLLpeE-_ZPfa0BCy5MHkcf#7 zruhQb$@#<+>w2k6nvWOlKmuL(>*71IwV$kR+cSpP@MDe&5)sFJ=;F^CWX9fzG__b% zq-X~c=)zwYf3l|7QFTjLsAvZ&NK6XoMejSO$&9|+->Q8|28j$L(1pJ)zPD4~JS1U( zugE|Ji3N*Y>DiJwcTyDPW^x7MOnQn8B+zC3t39#4CYch}S!AGsMARIOYVD88c04KA zoJ<tg)^S~uKwO}WLER8A_Em9=IpVhd!7`R8QbbblZVIdn2d8G66nGiPetj~FPdz< zJl15i0~I8WWj3T8_}ptwJ32&9CSjZNT8s=N(1kOed=u9q(WL9IBuj0cfeI3LhT76* zN^O~OI(q_nw4{k{WFUbqobgnYPN&9_8p(dTaV|jxiPC=d)cujY%;@1giaed0C^C>h z7tVO{YGOw?sTRFUH`;*;65CT7Q_rD}GNW6C!Q|TEY>|Nkx^TvmKhN+!fS8+q674_* ziS{lnXhwiZX58}fB+uMSGNZ4MKo`z<^7qwlbR&J1R$|66M+J#vW!li}#Evqf?^u-_ zpI|RCkU&>;tC`eH){3yi79s-`B!=;4v95mZCNqvbsz+@5n3?e#L;_tnQ&BE>A2sdUI7zev6(nX% z4x{br2g;1-VA?(~X|l*b0$n)csVIZrHn$vE8qJK~ASy`QT|9YLkF9i!&z+ur0H4s9V?e8nwabv*+eaf{E(N{>I3uip}C?n*N-nV$L$Up^&pX+DSt>wLBM*QW1 ztWA@CA_EC@;f$xEtm<2u<;~+EzE`Lq@gQ?P-Mpxm%ov+qm!0hHB7Pr8pbKX_`CGqs zjacVldr0>&V_|ns3X2ts34K@VJWq7 zH_MC#lY6s;i%N-hAb~EN@#N3%cIwCet6MnPfR1iEm>lfN;NGLgM0P(ZW;6(s5xN~HCx)RY-V zBPX-gm#bQgzCr?BIOEBmR=*U@E~S=qHqIreAW^$&B8@9hUS?G59?jI18(xiwq>tg)^RfX5v2ItH}4NXa_1tSU+Dfd9FXZr+!sGMIW;u zfiCN3SSmmEV6NAGtF1oH(NRGHpJ(Ck(brn%?6uUNWMur*@d?bI`NL_A^NHduA*@*W zn_(gOO$*%mlPMz#$rMI5v_5S0^e4KoVpWtyd7hcR*6|^WZscXC zAYuKa?BSLjRj2hsNL<7b9SL+{#md)V`OjaqAMHt+Ov%SkK?0v>=5O%SSg)>&@fR6L zpbINjzUDye7WM5~H<5t~64uWlZyuMeb}QRUWFUbqtXTQ8YOeRyl3C6o0~I9jnRNbi zv{sC?jw2!i33Oq_%2yZbQ-stT<{&aqL1Gtwdtmn6L-I+d;c@lI=AQN<0||6t#mb)} z%d{cY)>jl6s37rHZ9^AFU6dKVo7<7`hsuZyB+!KwE58n!Tavstf2qbXM+J%gWn0ii zAMeSG*0s75n|-fU<9me!y0BtZl;KUx@OQw5hnvC_F2agvA~=8GVHWy0Bv9J1KYeB}<&$Ovdp*1&Il+4d~#P6=lYU zZDHhChXNKO0||6t#mY}U&wNPFybCQx1}aGGxZQyIwWuvK<~xOu%B-GlWFUbqtXTO| z#U1;SRC}r$8K@v}_@*tL)6GF<*fnbE zi93%?G`mI*nK8I=Wm4*|Rw4rlbYaD+C|#=*AT19z5gDi;@$ZX{w9FDunKAw0clAQH ztH?kCU0AUyN~3Q#)Sq(+Gk$}pAW`>l4>~ZjpUkK+>yVln;4LzcKo?f5{7s~VNvc;$ zH_;AMkQl6b(>=HQ%Z!2H)6}5Ufg%G5bYaEH-z=`;rsg}`N3;VKBm!Cl(ccpTWkyVV zK6UTRVIl(wbYaEHSApuh-n43uk7x%fNF;@Z(a-w^$PD`n(+-Zf5+*W`Ko?f5{4Kgw z^(`X?`-%)ykodE249%FDn^CM%e%*FjPCJl57gntNnAfeVm%i#HGEhNcZ{!r(gg+aV zb8hdDHcby$mvcOjKo?f5d&*%I;kU$q!tbDiT3g7j;OB_W8Do6x) z#?ii4JY>eGPL)~Fz?|PX66nH;l|Li=Z+UiVSZ$Gk3KH8L7t?XYy2%WOBF)&HVL9h3 zB+!KwE5ASZ)s8KwQA}i@g2bA|@w5+hkr}$b3-bufIqxEYF05GjNI$JTb9Z_y&h4lm zF{J-;nz6FI%((NwlLf})TtARN7gnr_vNpX73qF)4GEhOHM(j$up+gIq(M}t{s;W8H zK_t+H6|16j%<9bsT^=GbP(k8H{zSTKh^@?M?;OH9sX5nkB+!KwE6=#wkKH%j6JrKc zkXXi7?kV5Crp&0YJ&a|y&L_qtNT3TVRz8Qk)|YwyaBw!RgQy_!KQ>s9=O`gWNeLj?(ZvqMp89bBgRPtQXpF6_zhJz9J( z87m}3Szls>dhF~+_0{j*R__TTVg2^9>G4^$>W!kL?m&|jfiA3&_{zhTcdN^HXQ^}F zdNNdyuzqj5^ZfT}wdJ2xBLfL^VTHt3>@9OieZ2Ot$Up^&stuiJsoQ7edn|X%g-MtF zS40L9=)ww#pG$r{SA$Nk7a6D^(TO#sQ$A+NjLIu3kXae2A_EC@VTHusOAY*`9yu{Z zWT1k?p9Fgvv*n%4cwVp;DU%&7GLS$QR!IE%F{~hYAJax;pn}BrGY#n6OL=I{dSu>x z8xv8{(1jHeubpFykw>R*nv7$P3KF$K>(Mvuipz{2106`-8naEtF-HPjSRpCO z$JZsuL7x}SMg}TKxW&|^&+b)}8A;U|krR!xGK>r)(1jHeANwpQL54@WT8s=-ka$zI z9$h`Bw#?Wy&W^09{n=t5 z$Up*JSRwH@^^)?FydAoU3{;RMJwKmD{V9o>f+4Ab~Edkod|*b7rgW{`o30P(i|dYIhpt;U_az z&77m|+*3njAb~Edkoeo=4qesr2lF%IyNe1EDgC@?^|67u$74Y|b;`y1A_EC@VTHu+ z*Czfpot;utWT1jXi?jiBzT-fdvF5=6Q>~r$A_EC@VTHt3^1Ndv;#}%lTeG6^AaYkQC)si6gqc^`gi? z1&NbQ`L2AwyUUF5c!ec9JrU$}W+C3KB)OFQfTic9a>tT}!dL z&6&tR0$o@k@q61RKk1Hj7mEy3kXXHB1s(d{S!Q%@UXA@2880%BKo?d>iqhj=UN(41 zf02O-66LO}qAS#vGUH?UdaT>>ULpetbYX?WSIzEGgn2D2D>6_)qKp4(YG1%kW)wMT z#}ksf_)h@TZ|b{L1Ij^HT21tnli)Qp%KfNog&61NT3TVB!2I% zVoCP8sI3_Lpn}9=mo;?osd6$Std#@X`tLF^zCr?BSRwIykY2@E5oNa+!=Zvi^OdXV z(|62g)4Dk^`a;R$PH77^*P z^Lnd!2YRS0ACI;o(1q2DqIfzzG;N%J)U=CEVyGZtzkt6--~XgsdHB|`aP{Pq79s-) zbYb{y~scXiRX74(dF%K%Zw*mr>XVcloA<8pbM)PMR~ogklI|EATm%v zB5^`P`t{^%nbB$3T=hVYYbK+wkU$q!FN$)haw&C3r^X@!6(sUbuS+{!QE1L8&EG~W zQai7U5gACJ3#%7J*_mEWU3h1|vvE97LE?R(+O+7NVlv}P%2M^&gwxJOJCHyZRxgS& zD!PJNDXn;WBLfvA{;61tR=iqKX1IM?s?u@OGmH!*(1q0te)Rq||d>5;m-VL@G8AzZDs~5h{PtVe7L_l?m`0hfzgv9TxI@IY^Bbm|rV@xV@$iqS z(!P}<0~I7Lt#P1X!Bl2Ed_78ic+Np&Ab~EdUii8F?lV)^q z>F@yoGUI9TGgI&Jvqc6H=)&qnQD)Vrrg4)?hzwMaXs-69+xHEW83Qtxn@YA^C^C>h z7gjI4j{0@q+2dwek%0;ll?xA`lNJw_8RMFiG>kL+GyvRTTU0A*Fu}?9tj5W{7iwsndSkf_yI;Q1jJa}ue%;>a4 zWFUbqtX}x)-?a-{PQ{lI8K@x9to~FQ{dACQM_i$umVai)i3}vrh1H9q%*^z%%nC0i zGEhOnG=3&su_{Pr%uoGg*;6o9WFUbqtX}vvYR4kWtc7_+1}aE+#?GaGvii%6^G)jN zhmVgF8AzZDs~1HXk+{e5vgcdz8$<;O_m&GOJ>n%Z+W5NY^VbE63?$Hn)r+FkEpW}^ zap#K2Kn02SgO}1HA?`9m+dDunUDGTwkU$q!FZ?-x?(ZxWy6qMjs3753VmUQ`?JP6a zr;gYAU#KlIkU$q!FMJO9b6$NEStv44LE=ZbRrFATDl?`A#Ol{~eizp$B+!M`3xB%p zpJIBQQ=TFN6(kykt)`h{9A$>x$vFMeqirGs33Org!k>XWUPiC=Ccnr)1&QiKlc@74 zJDCwYWQo3UWNVRu1iG+#QIxOW%Ih}ox`;6YDoE^ql0<(Wswp$-+r{fw{pO_`*IFdd zh1CmRug|rDKH^wDF}^|tiGAObXsPApWX9HfOZEG^%A1S~B+!M`3tv}lM_K*gsAnPr z6(sh!CebQ03d@YNp9^%Sf{7vn33Org!k-;%S3>_mT};L`3Kb+AuCAtwqkqWpZadrA z`ur^~MFtY+!s>+|kAemC$`faa3{;TtTDOXZetnudrjE+54`Q*VU!5m0B+!Mcjwwo5 z-43R!TYqIdTsGNiJu)PGDz2pK3*OY!JI0E=ubuLyyM@+H-^TY!!TnKi*~yu_IS6(owauSJ#3e`E%)ymVf9 zi3}vrh1CncuQp7C}pY6D=$$M zp@KxaE!AoL6S?=Jc;%(@$}8RY)gpl|tX}wYGM|>}yz&y&9V$rl>t2JZgX+k3@XAZ) zm6tgCAb~EdUikIgcd^bZFL7o-1&NRIZD{b0@)8+HpbM)PMd6i~&MPmGfeI2k z`n9I@8|BVZ^UBM@D=(3O1iG+#Q50Tz>Adn18K@vJahOJ5jm^DR#49fgue?MC66nI} zh2Qh~ud>c7FOh)?5+{bb(P@#n_a=DdW#N^VYJ9JdKo?do{N8r*GYhZ0L0!YeP4fdsm+dQlW!d0BYnB{EP!;&)IWo&P>WX7I`@gI8W60||6t^}@#` zO-fpL_10wKm6yms1&Ok=r_ySs+`i(Kmx)(iA_EC@VfDh-lr6N=#49h6 zfeI39E639E7Y50`;+2<)S6(6m33Org!dI0~{bk~nm&iZ`iMsvgQQtec_c?jxW#W~W z$Up*JSiL9;ue?-Vd5H{EknnR}ME6h1z30U%FB7l4#BUG@bYbyhH{nNCYiSq!o!KGkE2t^2$qOAb~EdUih=;0kJBtyu>vM6(n2=Cei9U zTFDGvd8xee5*bLK3#%8tWBSQBl~-OO0~I9R?_Eo~&$X8syz)|c3`n30s~1J#m6ysZulB~Z78N8icdnxchUDIl z;+2=mD=#s=LIPb_z3|NhzS<&~GpD=&+2jY0xlSiSJIUTkNpyz&wms32jzA7rWTj%shu zla|&Q;~5g@vaX88ZAef<{%NUC?-$8XK?3)m@oZhu`5v0$o@kDax5^ z{7rI&h`aizAo1;S6?!~9_dTy#wrstw zj~JdVGLS$QR!Dr!{#{@6?!(@R3{;RPIkpuIZ|NobYUR{}dTXznA_EC@VTHtZKKXK0 zA9=D6F^)MZNL;zD(l)xk%xImyLjP6joyb4}U05OU^KSKRdec@FL zijp4KK)+hQp~yf5iNkjTXtm8@GUMmvZI()7ii->+(1jI}qC6kAz|yy;gUCPyi9Q!X z>D!9oGUG(P*Xb9lloT0ApbIM`z9ZZ1BhDS_HWC@AAkpwz6y0`fxXj4EYJq9Ox8lS& zUm<}mtdRKgyN}k~1iG+7 z;@{n%8f59WxgrAr_Vas$aXaTRDwL&a$7tJ zhy=Q@LgM#?)kb83OVUB(`hf}(W6CDe&06kzUiYS#AdPytizgb9Ko?d>it;kfo;U>` z65}gWkl5+5o;rCHlI;lZU6l0p$*UXJ4+{;NS^j$8Ejea#svNTileq>nFM)?V=ae-ve8ryitv!dHFx`ZRs` zoP zMV>rABHqLaA_Em9@c1jr7_VW(LoX~ckU*E`on*SuzMRZxn&3lfJ=-eYwL}F8 z{2nXH>dRrI)v7h=#+n02psUNVWO`$$jm&5?+Ly$*l@;qupn?Sc9{DJI$1swd`AfWO zi3GZQuCAxGr#Z-sZN+V-f(Km`dr&nwF8NnME7 zqpu)=18FHe8U8q^{9_* z$LIES$d}UPiSh0$DoEgUm%o(~WJ7%Inu-i0&~bx9_96onByb$W_YJ>uS$)*QQ)D24t|AX& z>8;x#GUNA`9qI(Fi^xC)2^`Py3i7~G)$dlI$Up*J;|oorv15kkwqtyldS!NRk%0;l zI4)I`9RYS~be<5AfdsnxeT|~wArUg;>DA|^ntS_+3{;T7@io7ym8fi5y)H~-Ac3yH ze?sZ0&AA!PyI9iKC;N&FRFJ?rfsbArXIQpu3>6tjpsVcS0IIbNm+dG~ThaBdIqg6N z39NT`b>|zX$MCgMjo$|n=qj4gn|3T6Dl`0VN9nZ=dWd$Qf&|uW{9ICdhyJRFpU6N0 zT|Gy+(s4Zp%Z&a3d-a*cT}1{eNMQZR*V*3oQh&R*yU0KSU7z2XXlUWw6)=0cz0zw> zXe%;MK?3V&MR|OsG3E;q6-gub>aelh8;T56kihu>{`-iwW1R-q z7a2&PE4W}Ini<+t_SJGH{&r1v8Iges5;(8HR|U>e*|?U)MFtY+8vLyutsauQ3hj)S zPAt0FCvo0I1qqy=Q526DcV<8DzBsodfv#;qHnez5?uv^AN_ArEpIbx*DoEfwlcId8 z?$2gUS+Mp==83KBT)$5(G{7{(42ixXo8B+zxpqcT0SH+LoIgg9U3_~*D-0|FH! zaQ>2iuROz8#O%>xoe3n+<>gz222RUe4Y8Q3533Y$)MBh5gbETk56f4~dOC!CtD@<~ zxdaJxl`LPKj;!}fjzw=D_GA@ZeRShmiwY7rpR6eF{_|&!sYxOO33T~H)S_|psmz#L zsVke@ZIj4A1qqxN=jZnAz1U5MERlf(x+Z%ypjqcH$&60pOw6lgw#YyQ37p^OPg(TR zm{W_Q%;+m5&{b|nV|vWdA~RmtH)7KU7G_3Yp@Ib7r%;p=P7dt(>bfEW33QF=kslVRFL@4Y#7aJ7o*kVyUr_0odsnqel7gi0-D!~K$q>JFxob5x^~giAV!=kK=uvn z#ad`%^fFBr(uJX`wZ!Xps9VQ{^la*Ctp#7Jmd%c%X>Kdzr+QGJAQ_wC&5qtUYC#2w zIdO4xm;DO4OU$H$@6|4=0>wJQNT91{x!E+keVoj=(k4rF{d=%js~8m|K2)4dM^uTE z8O84IQ1dp55bGf$VdZk2PFwY!DKpO8U7;o(A0^f*RzN`_$Za|;*L0@LSZnL0=BY4F zWFUbq&)MT?-UCx*Mzg|ps%y20q8+Fpv25;m`gHMBnbGXRQq#kF(INv0bm4b_kKsIT zIUk=jS+oNcB--)s)f(R^GQ)ditYvtIXtCxp66nHjC?A)6dTLRA<*XNu3KILP@Tble zOp_Tacev}NhUfGZ66nHT8ea)PpRA`&juP!a1&LeseQAk$vt&lq!`t+`84==pg#^0r zjG-vUVvg$7num!DRFJ4;aihC`E|eLG=ilhng9eD>fdsnn%*R(%Nz21hyZDJ?jtUZy zMfg)SZxUt3is}_u-;^HWcp!l;JcIMqddk_b_{y##0~I9dbabKv(znWtkkDrA<^9&8 z9Y~-HuSAMcBarW-n75heD^!qpxwbL&scw-O4qaVYr`a_`1`_DPE2^S6mT_l3lgo>C zpn}B3&JF1DgO_B+3l~3@T1ycbNT3Tx2K;IDy+JIg*=w=RHY!L2`PZU5n?IEq)&2`* z9Y-A!Yk4DqE*#XvD010&Ah?BojRc|sIdwRUs#{?B5@@bXn zTt42-+2y$Pu4p#AbRMx+3KHnTk+Y)oycx|ZJxwwhYm%da#NF4G>8}rUWJagT6IeG( zW3iSu66nGTfIsEEbR4T#w7+VsNsbBLXWP@I=QjNYs0$o_iD9ZM~ zBG~;GyHukcs30+>mkkY=o4aeMdC(w6-rN-#NT3TVGX6AfS|DqC^^?dz1&N_A>e0g^ zb9aRHIMAClxLAT1>(C>CF03s1cz0%ZcJ+59VzdJlB;I^+pu3`a%DxJHZDQq~*b$?z zkU$q!$o#3v04KJiW=mom4^)si-_MaY7@E6VbJOs8Y|OR}#8@L933Oql&)06-T8$Mw z;wIXG3KFhQO!Qo(++B{>WfWr9w|I$mAb~ENvEVx*WdG2sjPe&5s3385m@91&I9T@8 z*z=e4)uV@szqtv50>Yc`aiDQlgx^RY-KS^F`y}CGJ zq{u)8iLl49wEL?NnX&EUc{RIMh&UcdpbKY;`O~<+AE~9!1&d>j3KDH2=hKCIgJs6J zJ_U(+jaO`cZcpnc6=qa472DfB+!L3_k6y6 zLnBggy0geY1&OdG3AEUUKC&G}_+F3~Z5%{~6#*{11Hqq;ZrPD|Z>%FSP{F_3so5&J zZfiH05q;K!bZAma^c525!aFI7;_|8=u}dl-GEhO{$Fw!ncsC^HTAR2vn9P5AUt9-~ zKo{N-;&1Q_8b-W+o)y;*RFL>yVIBRVwU!wkl}D2QN+pSF6cXsdJ6n9-r^gub>F_LZ ztwjZiaarqW=a~*NBmKg7vWhy2b|8T+yhF#|9~?f3bjm0o+JOoZ%g-m%;lpfXMnrNn znHW>eWL!UxKo{O=Kyp3Iow5`B|24X%i|))ViNY8(J>%w`C2Y)YC7j z|Ni!*Q|Q0y*oyP%sZj&PZr=sBE};K<28w^f|M*?TkKzp z1iJ7n!B@spnvgp)OA=$hZB&rBl(>@axX@K*yq?yX)JP~O+JOYR@GQZ145`m|61eq3 z>`jge5{np(Us@R(x33TCEg0KEPuLtQ_ahKSe92F#vg{-An7AKi8 z@j);deQc>}>`jgYy6`N)cP4$yckMkmTs8KPMg@t>w(F_Cql3%{%QKu*Y}-&|Ab~DC zOYoKJD+Q2Dwy|8yJu_pr(%QB-Ks35U* zegb`U{-DfAZ`P2!sMc6yAc3ye@k?lk!zS5|cGJs~iLY&$(GFCQ2&%J$28C>q8LP*Z zAl`p>5E)3I3ukWmb22r)sEjB=480||8D z%q?Gi@AU@fNp}OqF-HZ7ZGFONr1SLLb~Kr3>0CZ10||8D%&nsAbG>X)1_y`?RFLrZ z45I!+X2^`A6xb?AC$)@tkpas5CAiL={k(vR-1iEnMmaj%aJz193`Z{Tx*d)7tY)&N|kwmY{ocui*b!Y z1&O&ktI(JKRFoMzVc4p}d3ligaAb~ENx#cTh4s>LhJ_U(!JWxSmeTByKd0Y>farRCN)~8@?k%0ud zaOPG~TE4Skr5e^08K@x9&$AWHwYm&o)L z8Aw>UVCI&ugs>o4&yMXSGH@0ciTsT{Y3t)5GGpTI7~Qw;5OF+^Ko`#3^6Pomp8CRj zJ|Y7ZB(kptQ2kDr%&1wUp#G&-xX3^PT{v^ADA(_9w50wUATm%vV(-~dUPpz?j3EQZ z9H^KYDf$Wtbm7dcqC_~^nljS@i80A9Z3#dhU=d=R}bm7dcq9hz> zpw2ARU$g@iB(~q1O0U(&v2t5F_GrSd2VQ}4!Y47{DSfdfPIR#N1Epi z-KsIl5CjI;|IVdJ_UY3Vc&nW z%Ts#Lms=yuZ2o@Pj%Md8vzPt5lN!|noZSvZm@nsNg?Gq3|GG&acchJTWO@*UC4SGv&NRU*wnzfTC)mlF}@$BT3=a#I)HjH zs36fH?+Ekgl>M4RKO^Jargo%M+s4ec_!SEh=)zCPp9D;3MZSbPGIpzY1}aFLeidn6 zG-;34*xATP$!t!(m1x73WNx-1&}H57_@I6y-|+(MS;^I=&Id-A3y-^@r3~px1L8-R zGn_AKH|)F8cLzt9-TK{-EqC0}mn6?B%AQW0Y(fQzvYTS~WMJg2WMiJc1h>(f&PPw7gBh&ZO?6T5QAjv(8AM z3y-X#{ChBvoUd_OKk7bDom60?IjF%)ty-aO^y}*pX64vJ?clkt^hN2B=BM3X%k!1p zT7MErZ|hmDrmCnQaqG+obC5@-_9ND4c>$;XB&*9qz5LQKRs^~Vo*rTT_~Ev8Nt_cO zR~|}+^dGM~l-jAj={(Z>=3XAU`fNA4pN=$lETqt0JG;?sJx7{*9?C;=&Y~ao4k39W z7wCm8$to&H9IrmoT-xq~HcRcsKh?zkLrJ9uDSE)BIaUO^uzh?EIW~wK=zBnq^GvX6 z2NIo1j5JS(eyt@}F*00_4j_(Qnf`a%B~}Ewu-EyHQ@e)}*T|2Sf7hK;eFl#-hdd}j ztB&tZ-wYUOj{B=9P43d2{uwpWy#7=P*>a}?A>_bKQ{$>dAs_&(5v(K>VD`RKXlqr*~qVk5jytA_B^Nuey8{usJ6`)W*csc`?gH%YZq(m1hvB;J{a(NSyu9xZ_nw*EnR(8f2xEnt z9CAEiH=GD`;hCjA8L#fFS+#Gb@l7(bSzTgzdD^w?)kZ&a<)By|afEg+o9buIP8rv{ zDjVlK;&~5NaOFc&?$>{1RFKHrE0#~#RMwnhg#KL8Xl?}a3EpFR7N$B8=)$8;Ys8lh zVG#qXm{!gD>U2Jk2&Qv$Dy_J=A)OnV-M_I9ld7-x{eJ3=6M-%~H#DdEAY+l^vdgc$ zE3?h?d-i`_$=sOsC~oK<%a4DmB%Z1IHH+n2i+h;YztS@b{*qZ_&l>W(_Z1l`NIb6; z%SUbSG@i&-=WWPLPZjwWukJ*kYgqMI9v)T8{K&gKWwbn9m(70GQ9eAQHbVu8!R2Fl z_EvSwq5e8?^j0x;w(@Mb*GPqZzh~#R6km}(>4KgAbJoY~>Ds|;x@hM^_xhMm(DNgW zDXLJMoqI7$p4V1ksC2n(=PrYM%&RkZFymjMyK`zO7MgE{T<3?cQw9=iKHK^By58o! zN&2U%u%s3%x_XMdq+Km10$tc9n)x!N8p{?HD%Wvuz)(TrR*6{NFxu0cub-Z=VN4zN zaX>d&>+b19pv(DK#SSUSQu_ZR?;Y#Sj*qqT6nh<(t_+f&)sI`p@;QP zb#M3|xnIIc`F82{P6WEJO*H$gUsrkfSsyvz;UM;ao^b{iYH!w`=>NSI!_S;=XMPde z(flDbhR087XYOUwpWC~~kC9s}3y`;_+8HWyi`jX>>8;JH%XKv4U!vb&tL5^npdqsV zuyCggBpSA`^AodMm~%YT+hJ+ARlaT>D>rXqaU#%lznz^wEZ@TX?UqjP?WasRt35Nl zDj&zTY>eRzmin1TQk^kwb<;Td_pq=SzL^Jz_R+lU_#38?(ifA9I+CG+M5e9u zyqn}_-jS%cyz$kyreb@t%I|ZIWT=Ghh~ZyP_?fFD{BH*L%_;M(MQN=5aHk9;${vd0 z57zpbhtAY9x=s$4y(WaqH44Q#5$JM0x+SwUkjqAtlLu}Y>U6A-7;_z`DkQq!cTUq-X{>tgu&4u0k*3p<+QH^lJZ>3-%x zbaeMqHOV)3Hm6s24GIUS^`m^%_m>8-3A?H0=+MUe4}E{y)3K^?v5omIeXm9?is5T! zwl>bk?af@B{I-VLVCoQt3KCE0%=Y=*)_iKB-i~qiW7WQw?W(u0-HAZgmohOtDWAWQ zQN3pw_0up9)#f*hp@PKB^)YzMOU$9c`SAV!V^ofn3 z((gtLZ=crOob3L;$EvjNY;|lyn>uQDlv4&03(m#xf?h4nN9yXID(9o2YL`5n)CwD7 zod|T{d7?e4l=50`m+k7|`<@JYAh2hm1YH?sPF0NiU?!J5+Wr4lsSdYh3>72>Rj~7& ze|*h-LiLtgk7v~!v8&agiLIRobWJQ_=Y^Zg=0ziQqGKLkZAo5lb@=QmEOC~dcl}sF zq%R(A=Z&XUGxx6A-n_wL=aatGG(MFUT3644{={ORE8=IP?@+&gPM zZQ@;j^{sDhCjwo?2iy5b|C;7|UG#g@W|OCOb7g?~ds`ib%FaP{&g?bK*8=|cQ`uM5 z(aN3-RO^)Wbjm+Sf00zSCz}NpLBn9 zjVf=J>3X|_{vGtNyt&a1KQo>u+IjJP6U{1pckIhj!RZVlQEaxIzy4IgoQa;)Bq?FA zNxQX*_EBh1)rmkCo=r(&slnRwp{nC{*f%*g-p;T0r4`GE`!0WSngl zruE#j(-ipUhKvdl_vhI8<~jwALRyWzSeVuz>8WqP z#S|G8B=l#7HOC5?a~;()O5_RE(vrMxjS?hGti9i>gCwf;j+M>OlvqpY6V4A$Nx}CeV z`Y!q`R{7YuUt*dvh_^Lk`y|O{QiW*<*&@@*~WmJ^wIP z?tEm66M-%~ZjzLJc`xmEr7QBxY?I{DRqT8w`>N!l9v1wB)(_N+8~8%mFiGz(spuJ` zB@TWlC)Xb=qk_cf_jIqV@xtgYsk5!OmTlt^dE?qSP8q`}Z&H`9%B%m$qgCs^_SR+x zX!5%EbDfSA60tSyynLPS$}G{B@%D5d?Lz9ma>wooP6WE}xJiuv}3 zt7CtA-G?#!d*D-}S8e*Uj@muX0_@q;@+MS}I7`ncm)@l+HL~i*s$Q|KTH4Hsq)w^&uZB62mhGoKiMYUnuqt(|87&xm>)D zH|rCgn1l)vJ}ib`&UH@tx0T)xw>`Cy*6v$PR_wq{2NLMQBSPb3ddS*dkLs-0s5^&H zL84MCdYG=|4*|A5_@P_J|EY|8mOos@%vF2pHuO@aR#$K=&W5b z&DF=;IT7f}c{q%lO1PNyY)M+<5vCn~F;O3Lr=o(ys!d_M|A{Q-^tUouUiQ?ID|v_v zB+zwrWf*VyH?NV=!Y4|bI>lAA0~I8mObz3W?&LKx*!mDHOX0fuSOXOaboE~v#)ERX z8yTsaVzh03l@9603Kb+mCx-F(Qtn2EdzKI__~R;ltbr4Ou9RJ2ymr>AMn-FEl=jJ% zMISG!qJl&t`cx6Esu~%mvh>g@J#MRy18^eHrP3L!zP+B2aeP9URyk_Cte+25ka%-G zj5nz0Wn@%7(orjBT`e+@Kv&sX7VdpsHZsGr}r!A->VmLJ+0>b?D{)MCjwo? z+^qcH`Tj;m<&zDy$a*F8caSP7NL2f7;fXUl85#ZyOKT5Dm(kw|I}zv#Utr}MZ*?~^ z9*-}l#n|fV@10dtkhnU@%6ES0VPuTIolU#x;-$Z@bt2Gpwyup2yVTprxaFQ*8(6i4 z$Up^&E0t}$bZXyE}B;2ms_}$GG zBO_Cmm1-7mf6)#k(B%;y&P#U*H!>o=El_*^(@$ief<(bt;e5#c2qVMqVGH$GyB?w) zNT92E#|WOVE7HjLxW_}S{v<-2b5xKB@QdL2%0?R*%HD;JlVw6gJCH!vrTmfnZNDfZ zoka!`=vvk!nztC+-^l3WzFSW0-AiPkf`o6|XkPkKn9+`+z0S*jO0^W{ z0||6pd=1K~ug}rZ$Vl8$gY92iMYIDI zB%YMD^LM{H8X0NzYO^c3a*Jby1iHpif`q8y?MR^O-9tOS|H0SD*jlGEE9m}6T-#AW;>b5UA2QoyWJI-T&sryJ7a2&PD~Crc zFa58lk#X)#Z{~Mnoyb51iR_HtQ&p^MWR#2yWVVq0A_EC@4W#!w?b9k588w=Pvxu#& zMFuKJ)QX7Z54OjIfFd5;#79b~tL~%kmfgDxTYsKvzgZJD>CCn31ut5NE63<1SJjuk3M%=C}s|1BG1WV|Zl@4NA7h{!+!UA^W+@b0HFGTN5@ zo>Y8VjA#ccNW{&G;7QLjGV1ob@90>)m&iZ@UHdPGbKmgEMmy#&uc*eCj@0z$D^!r! zd@h{JOD7oZs1y*crWFjNuTC!TJA_Em9HXg9@cBN^2qIgcU=E|dG4y`5Hfdsm$)wl8s755q$ zb!U~;Hn*rJGEhO{M@1`NU2M0J@%&vyZT_2LA_EC@-Pmj4d6ZK|#+nb_+Ri#9#rFyo zBqpx0@Rnmw7#TB{HPkANltcy+=)!&!+AIEW8_ixw674_*3G6$e-30$B#@zmEtL54= z*=Zyojvd7-ktFSoD#F&3Y_IjN-`f`zB%DW>@&|4#ixQyGyln>(=)x-zy+vO9N2b1Q zjn;ZGp@PKLiP1bJN4zmAY`n*HxkfjO$Up*JcqNjg4%=1vM~4WJfeI2wFGq3Tz-dNC zPuo0s#mj*r0||8Dm562u6&oz)Xf;Hm^<+$_AaS8k6!&>B-pJ^*rntOszgSnzfdsnn zN+e063SKjPjENH&s30+du8HN3jWIH+H23zMxkRk1=0E~ncqO9!)jH>MWZf**ZZn~R zL;_tCi{u$=WUT&_Sv@g9tgGfg0$q3|qLq!tc&gRj4j1PG6(nBKHF5dj2}Z`eu*vGt zQG@k$yc|fN3$H{p)BDgeHLZQDI98}2Va^}UxBNHV$XL7Uj5=kjO`LNi(1lkbNxHxG zo*MbHpU6N33D(QTuV+p$GE%c<)qc{-r~2;$33TC=h(=8=%A>uh-AQDif<%vlR^Hin zjgb*wvb=VDT{Dq^1iJ7_BuQ@;SJTS3GKmaSkT_Gx%H?{yjf`1tzS=>Lnj!-Ubm5hV zR!VQhwVJythzwMa7_ipD(-xjEG7|m#wN$_SA_EC@IbY#cRqv)vf0IpQpn}A$h88a6 zO*S(2kLahpVo&sSCLBnh3wwuYg^gPltzO=Xs{T7i1&M-B!nkkU_eMsq2C>?;@HHX> z33OraFs;~|Hc(6OnISSzLE`x4FuwJ47UTV3g~lVaM^}9HwJaP+pbLA4C22v=k=mf{ zxkUylNaUFw#^2q|cn9g;eY93^qOU_gR!E==dxvQz>y=U3r3INA>(_QvkeD+mj301! zH`=j(>?p1GS5;qE&4C2Euy>fQiJeAjMS}9^>#&$mK_Ylr7|+zas*&Njcc}K*CqiF` z#eoF6uy>e7z0jS&{lE;7feI3?7sI$uX)hzgmOn~6?0HaRAb~FI9i~+s9TsiWq>K8R zH6~P$SXjcs{cX(1=zlg?JG<_uzGjUB33Orauq3&BkBQbYbr>%>XUKHP0s%nBERlkjVDK!k>=mWMu4FUQes^puWgJ0$tcU zOqG|dns#NNNnZ=egbEUKCtG>zXFZIJinEJp^Gdc88AzZDdxs_ITHiccOy^D_0~I8q zs@QnDUww>>8+pE{e*!{81`_DP-eFo1sP;WISJ67yALkLO35 z+SC^7syUEA7xoTI()SWKOl53w;#i@AL>KC(-hMR7Xvf#!R&ws;!^N>e0$tcUOuZk4 zhsdna5Rrij5`(FqdO(4U^Kp9cCOJn9yU0KSUD!KJtG!jxx)8NT3UQhiUhroPXsb%X^9pRFGKqEt-$J+uO+a_PQYJJ*Jq8AzZDdxvQsMIS%5ds|`A4pfjhNh5^j&?vq1IVOH@d$5fy zGmGCL=zyc72*RFK&9)y}PxO-4qw*Wqm0rQ_lrg#@~=cUY2MjgDp? z@^2USC{&PmVT$E)nYuw;aYcMRXGFKm`e$hd}cnpU1I{ zlV6+k?=BMP!roz8wXVS^_OkX&lYWmv1qtUF3e9JZW(oI?=dPiY|d35 z?VrUrWmJ%Go-I4I&L7$9S_^%3d?x~3*ylhyLYGaJLpI3zD*p@>B+3tu<}I%$7&BSR z6+13Zo);i8kU$sqInYkZ?^eqtf3^`Bs32iK9mOYfm}z9Js5MF6Te`2vKmuLZ=O9Ug zDs_~Hb?&0kZXOI3B<|*o;%&Z8GBR>?%qiDrHj#k@y0FiI#=Y*@VY)ZDyJ!b0NMxrz zoMYV;{1 zV_Gw=o&23uWFUbq>~oML`A}o+X4_}_E-?%hBu@HSc#cIWM#fv0&f1u)SM{A}WF*jq zeGc^0m${XeRA8sbKn000X<_`|t{;qy2Wvt!>GJ}Sfdsm+&w=(53hAV+ITs}|P(i|U zER6eCb}>fwk9}m(mc6YmGLS$Q_Bqf@q?Li%%_VR2-5nV!NEBNe#;dvHGcxupj?ikv zmUqmgV}%5|u+M?+A8UJPAL@ko=ozRWv28^dKkr7P^u)E~+rDt^{BQj7yB9EtqZ`>;z8D6e_+JDnt zhzumqg?$c^wB~#xty{B~A_Em9bz% zWT1jXwgusQQ2B5pV{X^BYBd%nGLS$Q_BqhlbN9k()j{1v1}aGGpmBYJM@1SL6Mg18 zikB3-JIY9)3;P`CjY+H9Np916F#Y)o6(mm5xITLw8bK$HRcsZTDLyzo0||6tp98J& zyGAuhf!#$rP(fnque;bj33KGm5&9`>!Z)DtcNs$A7brcy+1h}xz zL6S~Xy(8B?WfB>v;NQ*hGMZ}y8)BAJ(P4AERf|{@r<3E|+pReGw1_TngLISNW_W8aX*Qcm9 z%)KVVwW4rED6Cki*I>Ov&J&(l+j+e?Lj?)vb)(E9|CLvr%CFHr?oI@{uwtcqRKj#Q zB;lLBk2^yJi7TPe{F=7JST`!L%uKmpxl$qn33Oq_DoI(Ux0fyLTr@oc6(r6djN-MY z&NDJ5WmDt@;gv)N66nH;m1fc1%Odyl%^@;SL85l{DBhs&3?rjph2y5%an(cy66nH; zm7aH}bT!2f&n+@gL1L(1B#(%gYGmyDk;`YHTtj3afiA3AX}{Du=aa5}OV2Biwq(QDj|uJCHyZR;<(qaOaX^%g&sl9jGATks8jIde1c4VLjucwmXo1K9E2c zR;-e=yjFd6;O=Z90~I7rc!cvAPv;vMb={|{N9G&fE2yf`g%vC9F%mXPEnDM{`0k>D z#GElUK4--;BO}N1y=so20^)oifiA3AX@AbHtJIV~FGL0^NL+bj z6e%h)P(h-@+c0i9?P9Ei;624d^IiVQp`Q;V(1jH%ts(R}m$qQ{JjXP;CZd8w^-E#= zMzefI#>LV#w8Zb1lk^NE(1jJN{w6MumR8`PkAB@n1&OC;!}$K^C5?=eJ*sP?HcU6^ z8AzZDD^^;wW@0WaQ_?1ro`DJy^B;uq0z<198Bd#3(bi6@DC-$WpbINjNh(**Rh!nd zysT%Sg2d^379M)Au930ic^U0mwlN|D33Oq_N+X>bXVRvPix3&8AhEQYg-;t|GBPIF z3v0I4TSNvD=)#JXMnH^sr@9qfBr;GzV%@*gw=}$kk#Qlvt2Uui-)DC)GO8DQua?X4O=KW}F05E-r`Rk>>VYcPMFuKJ%-C(^ZZoQJcmMqA-k_=?0||6t#Y+1Ed^zBFSvQx+Kn01;0TKM8W-~HOuB{y1PFEKh zNT3TVR!Mph9+Gq}e;$#63KBBa&UGTfjf|`Vy-iu}q-P+3F05E3DJ^uI=~Ru}A_Em9 zlFvl)XG1gEF}-MRxpQLru|fh}Sg}e{N|n5F=P7O?0~I8uj)~$+UWOU%$UEOE$LB0B zjujHOePH2!NJp-y=B#zdK=6}xjH8O&Ztd#o)6id$l0$o_K(j1c&bL7I? zKa1Z7DoB*O63s7r2OAl66Hm((wx<6Ekw6z#tdex9=}!4V^}8Yi6(n%2CmK&Z?yY=# z?ssu5K>}S^u~J{g;0yA&uE#_MDo8l5(9|_JMb0#GkG%X>XQ!3F(1mMy(df1(+vP*< zA?*bb(cAgp@PH)nmO73<|<=V;1AVan^ONw5gACJ z3o9i0eOzc}YF#Y1$Up^&jT@u*_DqY6jQfk1nMyyHEi#Zm7gk8LuEExqzMB>o5E-Z- z5uO&w`@7FKGO~OsY8w1?zQ{lVU05MWQk70Qe5W-jEHY3*qFtLvp4xPdk+HR1zeCfj zEf5(;na+bmG!+G!9&v9fdsm+LXxCvow7KBQ}c^< zpn`1b{`=!kU$q!NVF!$nq7{X zXWu!*?*nQwBo?~Zc-x)-7#Y5!o2WJ9J|YAE7P_!PqT0Fn6-UKI*F**?NYsq8@_w>v zWcU{iQD1*=Dl(8j7gk6#hUL;5$4S0dWT1jXi|kguD)U7nMp zpbIM`dQQAsNX?lLl%#*JP(k8!HVdz?FrSg(U15P*zi7%K{a7J^F07EKf45sFTL!)pAco1`_DP3Q3Zl zEXbpn}BmsTLmc#>dEL(0Yt&H5ZfhV}%5|utK8o3=h6IhI(uk8K@v}__2kr zpVZ9ASn$}QCX8q-GLS$QR!Fp$(1jGo;{#_z1}aDdb++=qw5D46I*@I*wpHg93KSVg zpbIM`N%9`(aMbShOk|*fMB5uy{^fBOBcuAz8tRh)14ITA=)wv~lFnI|IB4N0k%0;l zE*2Z#*{!FMvGuvDT4?$Nk%0udutK6YCc7dWUhUju{dsu8yUZYPB>1T znjtcfKo?d>v_|8XQjV~C`9uaPNO=7d&Rv^r(0#H504 z3W*Fw088R$Bl1|E-W%oK_VevB-j3AWaR#Q z)OX9a^b91>g%uL5n6-3|@9wh&MFuKJ%sm>(0}E$lGo8|FnhI^Ob4kcKgk7TGI;k=K@`Q)vR(tkgRmLq{KtX?FE zDle5PFL88HL1IL`X#V|e#(peRc{!-^65kRe(1q0tt^HZ;wSy`zk%0;l6B43$jo~Yd zerl?`98`IU3?$Hn)eDUsT)fOdm6yms1&NIxB6;HVMMefyUP)AWi3}vrh1CnayZcns zL6w)tKn01iEhBl}QVWd?s=Sh@@)8+HpbM)P+Fz|*KOd^RLV;nJOk=Zfdsm+dZC%ctEb9Td5H{EkXUul!n^csY-CX7B~#@k zGLS$QRxh;cTkA10RbHxotWZHBIlq-xoX?F6s=Q28d5H`p(1q0t&BA_ck*V?$8K@w! zW2BWof6>Ospvuccm6yms0$o_WND@_EGF4t80~I84|FH5*awj8$DlZdNULpetbYb-( zNmO~sRC$RERFIf7!N%X)0*wr+yi8Pii3}vrh1Cn)YoEKyRC$RERFLTB9?q|H%y@4= zm6wSsFIE3uA%QNeUg#bbbizcHm&iZ`iJgvcJ|eld(GIG-OjLP^3?$Hn)r%xiV>Ymrn)LsULpe(Byg__8m%65 z(=mR}7svAbBN-Ct!d*USH^JH89LfPVb;hX?PWyi#;k*mR?B_Gp|~y-+{gob76zQH8`?OH`1k zUM8B4zrEF%#}Z#NRxLa){f#>k=)&rSYMd$K)ilpCA_Em9?oE#3MRu<>GQ3z-^^ThU z#vKWCVf7+OuOC)dXP&DpGEhO{$MZ-&uE`1`<4>V|jwUVA-?$@zF05W?<@$dYJN{Nl ze;bYp5_6kH^58W~jf~-$%}Lt}rN41U0$o_WP(Oopf$y?fHAFj5LE_pV2rZd@te{>(V(1wg zzczNeaX$7BnJb^Knf}Hd{}#HidZD-Bw0B$Y>3Ky4Do9*lHhy^J0V5;Lb(g$r)*bOS z90_z`^&&|d$3B)*pGYDD6(sH-wepF%Gv>rqu5eLax#FnEKmuJ@y+~4Gp)9QG$a~_g zJ}OAK)A&T+iL~3Mm^V?c{&V@v(={Rk33OrgLbY>`{4Cqm{UQSuBv$^i@FNGG85!P3 z)8rPv$BGOj(1q0t&GbI+&OXnXB{EP!q9(0Dx3b$$BjcH8Hdd;bkH|m*U0A))4C%U+ zSl0YpWT1jXByp$A)h^buRAAhA2t!sS6Fjf`^3b2GGDTz{fiA3GXcvrA1=#bZdqf5*NSGT~c|NI$k#ThOBl(2qW|4sey0ChYq{$at z*oEK}k%0;lKFh2$*Rr*d@%Yeb*|p(+A_EC@Vf8}a-O@lcV@9dMl6z>G%O)9P(k8F&2S!didOj-?bx=jom^x@`YZ?}(1q0tjYH1dUG@mAATm%v zqR;7YZm!+S$awN4liW2heHH`~=)&rSR)g~CV48Mn|N$)ygQOF{*p15tmJ`fj^M@VvmlT_7gjIyu4r&M^?qy>k%0;lojONxbysl4cQ=Q( z>N!1q76cOL!s>950eKZXht&inQqeDh5`Kd>@OzFU}S7oz#Yt_PLNWBknFC!+btyN8tZ zaqY}lh0$1?FCfUzRP!~&t66aiHEBr zcn_DAM#kcS$)>IE)7yary08kPb#bW~{6_B`#Dx?~*=y z8UGf#unMDHDl^TM!v^#g8K@wU(;Ci`Z*4T%v3l)RdDQn-Vx~6|=)x*Yl3sSZAjenh zA~H}xV(JZAhlTGnGMd(UBwzmRBhCjB=)x*Yl4{(@!WJEBDl$+(;+mh0yHrjxGQO}ys&t<`BG<87vLtU>?6A_EC@VHHNZJAU?J zXHOIp8K^iBHY<0Hyk%sp^YLO8X)ADjMF%9@!G%>A%|#y6l4bTv6SIC%L1G5IH#pby zg^|(j6KB^4pA;ELpbM)o8mFJ98$0#sh{!+%iN)tEyhPkDBO@WXJzMd6rpQ17U08)t z-|K+Btn8cdvc75rDo89_YT@>v?8a(ub@m0Y^J6QC3?$HnRTzz-x7nC!b2iZqRFIf3 zj_Qy0`HhS(!9Cb3j3?$HnRhT4|TGNdk570ygDoCvRPGeGI8X6ga zHyPXW>bl540$o^zNz#7}TCpdmeuxZIka*kL%4?N08yO3V)Mnk6yJ-5cLIPb_h0*Tv z_v*8K+lp%X`9KAUeg9bb&+i#4F7|&@g5}y(Qe+^3F08_69NC}JZ1?!uA_Em9veQ_D z!w=gV?O=zquuqQKA_EC@VHGAxEwg52mEUoZfeI3fHrjaMeO-(U->lcs34K*9nN2O$yjA`l69&4khK#TNT3U=Fxty>|9m+jb8nG>3KH2a zh4T(uf{b=NoxtV$<-3XuB+!Lb7|q-Et0MOh%9B+D@oW7zQ z66nGzjNYYg%xg+npT43TDo7NkdN84Jh>_8KvEm5pkiMcE66nGzjP6n04?C(Y3K#7_ z1&Q>J$E4BWB zb|M26BrJAX1LACFBjZGJnp$pYJ&}O~y08kP`rJfo(C6_H8K@w!_hU4lchb+uSnOFu z<4wzo3?$HnRhT4QP4UovX00SLP(dOvG=}%w(Za}xb*rvjJ?|zmkU$q!VYGfp4W{Kg zl{38^uwOe8MNh@>#ao$?k$a}EHm2hPac#%Hg)ZDroaR~{>!5X8aZg;^Q9;73h@BUE z)WFE_2yLycUAtLiAb~F2t(`_@wh7kScU>bgP(fl{2RlDGn)X|tpzp(bs%>Y@rA=>< zfdsmo_a^T$I!wEuwh$SpAb~rAQ?G$XpjP0FtD3E57N@<*(S`e>(<j6j1?;_*0Zm$7U%89@$I_*m>T0PS$orgsZXALI#iVP&sg%vB+&K2XBwP+rZfeI4a$6NT@4)iWnWbB$TikV88 zO!|7^NT3TVR(eOjVlr9b>3KDY< z(e5gx>0PSGSQ!|}nh!f5);&i8U0AV7(xfp~HX_F*vFQPa;kDoD)RVdX7fXY8u$?_Q6UYf@j+zgI}03oBMh8kwm&>mtDoA*3vhiZ;yBHZa!avJiOL~b6 zB+!Kwt0d*hdS56uuAaSy76ptvA zaX!pvH>#EGG2(lL1iG+dr75G!GEBBHK2Sm8 zpI0#v;!3+hW3l$u4`Ku85h%IJOxVR4@fiA3A>37~JMvFhPUEBvzL1J=y${1eL$Viwx zSPTC?CjA}-RW-V>VwI%PxrS?hLpqBLRFGIX(9RoeuV7?6DiNo>33=_%?@>sg>tEXW zea6P(Mn&(HX|&d`(JY64k3t2B8RP9dFA?d#kL*WAX~UkXzIp}{=&BZH=aUxZH8R@# z9i@2}nl1LCLj?(Gq@C|yl-I~OXCI-}9#Bcv?@>sgt7$Jg58jd0$T*vAxE6G-v#j6G zofP=H<%8|K?B1+K#x~OcE&lmJ@tlYRx|UYAbGKICjW<8T>cnW3ziby7s30+=nw`f4 zd^etVCzlV?wl2CMk4QddLIPc*-^cJiHC`x}L=TI{!aiEU+Sl@@s=*Fakf{4GhJO!y zYGj-<_tbhu(CE*``%Oro>-~cmJ}2av)yHCZ=UMla zSJiYPchB-#)TWYRSKY5t48L}1d4_nrliv?M%JTDk@0a z-W0>{ENhyvAH9ufpPuB`Jce#}BG84uU`evHZ=@}g|Ei}c0~I8C-j3mFgkogmx3$-j zN`DsnxFdls`~}lkgCET`^U=#bFS{B zwds;5GEhNcLa3cTeOA-RD3r~rbz2)FGLS$Q{(@;&-I_hM_=nyi0~I8COtFL~C6<%AxN^j|vj=7TfvA9mS1|w(&9A;PdBv^*!&A zaB{&fnAQaB7^3C-J>H~e;MD+$`}630MCCOyo_34W*0d-i>+L`SUHA)@q`xwWQ0>Q?IkMgkB+!MwVCvs3)Jf~ndx^+E1&RNdoj39MX6%LC zu4bV2GxVa!KmuL(3#Kt%-pw`d71w0_SfPT1^fiVbe(>1HSiGvG*6O7T)7yarx~5Eu z;jw408&{v1arL#!sV+>k-41r^k&9*GBGIKz?tgpK~P8g}thhH139*cEsVy^gY&5K_ctsXkPcx zzeYx6qfA=;>}^B_66nHSRhsiN;huWelZy;gkl0iznxAa2&B#azKcz;w^$^Dj33Oqv zDqY*NY*2gM?jVj8DoC836vgWo$=EC2Yy1>d`LDld2NLMQUR6ozJFcth8`E86pn^mf znkzGP(+Z;{u@LEi4dAAQzF+gBctZ;zlXkT zh!MvM33OqvDy?NPD~GB0(GbxNRFEjXDuNenlaXO5o@QFVFuff}pbL9d>AgWj8F_I~ zkjOvRg1I9YZ{4mAb~FIRi%E0l1176C6&c*5EUe9pRn@A z-A)-9dB=J((}eOO0||6tuPTiTzfyxqU-F7}pn}ByZnWOg@f$`)*3jmxmXE8*KmuLZ zt13zFYcTdX(;IPZM+J$Ie`t-Zx6h1>sE7czI^l-64{X>5JukFlA4l#L8K@xP zyWhh1jrwV1*qiiY8>S|TdlVAr!d_K+vW)J=THPBc>(^aWkmx$u!tdwGZrp2&ZHQpL zZnZ@Q66nHSRY`h#E12cW^x33eOHe^Vi?Hx}welMovtwdd&YqP``uzh5bYZWmB-vhv zu%c7iAJXrGs37svV&UgwOBxx!rbn|Uoewzldo2>^!d_Lnwyy|gD*-rdu}Y#{B0rGKwbL84|+8}I$0gOM?yKwkD~f>}$Wb|8T+>{X@p zed_;|LtZ!5^mC31628l9{KfsQM#j)lPh``KPMZGvKmuLZt13xl)noFD@vTKWP(h-8 z?Qq^;VGko?a>zzGW>9Z&tdKw#_Nvmni6K+vp4GaF3{;R%&V=**X~9N@_qX~YTB&l9fC2jARS|S4pbYahnBptY2 zR=YIEgY|lTNyc$2I09x*=NSGa+c~9VnjiK1jJ)wyW%IAdKEql%%`w3h1da}j;a&NE z%H;bUiP#trpf2jV)3l}aFsD@taP78=%VT&<*fAw2Une3SZpmgcjcchkdN$l?eK=e- z+g**}W7ccR#jE~A%s#P7K3es+8q=n|)5_eqCsN->G5krhL(25>`lqTlDhIP3tfw_8 z_D05imv9H-cWE)aK=b{|k(_$VcU%l*rBaTlMYR6v_t$nV9e=1CIM>D;mo=96sr*tY znZ2#~YR*{x>%t2q*RFO%JmnJe_;<5hHny#1x@hM^_xhMmWb0sFNdK;~-^Y9~M+bA4 z%XaQE$j7`oa|a@tcde{lNo>N7eav~VqZ-Xm9dao5mbNmlI26rOhdF3H+*andEo1ms z%XuYVF})vdk4zQW)TdT{a`8Il{;AvMkl9u~;o~;tQNP>fy+f`1!s5-!sM|M* zsP|&LERWqUr;H0_j%rqZv)>ivVy@ffrk!Y{{p<6}{;Idl1%s{JlIfzd^7$!$i)TwQ2Ox+B$WE=l8-Ht$g8fs&AiwHeqQ`j%{`?_HE-LJ3Do@BY@ah_+1GzApb_QCwM4gbu&JqU|mQg_>dsq}d z@Oiyb!9_n-+q-U3zuTf&``($H2z22Qp%K4_Dmy%_L)hZmW961K`YR}Cg<=XxF?-*M z;LQuHRH}}Y( zX7^FIr4D9&{hK-w=)!YD@90&<^y-(LJq}nW2egaeXP&K4wk6XU93R0w^RG~5eoJ;b z3iKAa*8|_LD+aK+tCq^xS|lpa=(eUmmMizN>z`_I_Deplxd*Y$#p9g_bU7cZ=V!9Z z9Y060Zo4+i+loi<$M07wFSgw>M-_?S)4#4%-mOSBT(r=e0`tyffK}rcbrVU*7w+J*%bWbRs-@Qm@Ln4N93ix6PSC!}+d! z>y>tWlBpeSw^?QROKVnXTRw&g61AwmQzi*p6 z{%7Nj+_o#%^Cg=@{;~1Qe3$a6tbUKmy>NwGcx+=s7zl`S3hd(_aNWAem{#n|YrUJMl^ zUS+ZIH-(av@a6iaYI*UPTz_IIwti3@Cjwow8rXQR68n{G4xLD=uvLC{q#7IJRgIx? zGTO$Imh4uR-lO}jQ_Fk3-zZ=0Rh#u~TG^@PNO(`N@xCv2Dm&ij8T&S`m)G{K%T_L} z;6$Jck2>w1ZJsF?^P!nu8+$XnhnMV2PXjg2DJ$#!@BO_0s0H$kQCH;K`GXkV>55~1l_rmGnX^B&aF2P9m4`X>GkB%@K>7Erg>sdH5eyY1f~(R@ zqzzY;nmP3hmz1gUom1=N{hk&l0$uooL$fohomB@6dgz$f%*sOhSh#1|6y?d5o96Rp zExdf+E6Td}x6FrUS@>hxy>9XZ{ZlQuJ6TO0Pn(DC7|c*XV#yH;AJg@^VxunL{KVc|#1r7E}2-7=rqW8ur) z9w--9-!i)-S@@!RDT?{LPRu*=+3~l~eAE8XaSRnC@YB-!kMfn&QSE(AQpiXr0$pur zPF&-l6lKx{J>yh@k9x9-WNJ5U1VaT0=XOjw;oKB9N3vOyfH zzIRF_ZT(1lNKJ@isO0<4!r#!}eMhauY)QHp?dNmSqljF`$2kLuNi=6PU*S~c(Ix#; z6+B;1jvd!uj@&lbsU7IT?=*cAw-l8Rjj+k7Z3a7icahL8(f$T^QxsKvONP5uma8ot zAlLC2-9?pgTwgmcPH*W2b{FD%?O^{BFX>Me6k+TWo5 zrnAa_Q~}V6S#R&CvonXN|D5Z^P(fmTCM)0A^Mta1>I6E2zu%}^63?qYGPh>g7Fc!{Z-Ko@_>RgM^D(1>7b&kWKZdl{Tuu4H_*A+9Awo4-+m z$IMXEb_Foc##WxI^&!PK;I?_Ao0V%vk11zrJGY7MI9Z>mGlz~;%g*h=@UtV)E1Q+? z?{ZuzRa0+=dH)l&;p!o3Yo(_XfiCBkpQ!Oh&9maQnlHiZRC&c+wer^kHYhdeo`LP7 zd(`GP>c^YURk!#iPAx|w?73C zEp7bj#HGp>dNQDE;*dA$iB*-f%I``z5$MWM$Hq$!U9Nb3(21LM;?$H&UA4r#-{lQ7 zW;64JNlNiu$!4!*^z0KoMJc=_*_@5`M2guxK{--IZ^!wAyVOi&nrkJRWoOl^hVw$J zW-5RBC!1OEa2^>sO9`PTJv<^b@9xSTHSl{=El6>7I#x*Z$V>A%KhILq#M4sX?|tga z(_HJ+*v*MR7anP<&u{stYe)9ho{hLC_nIBSUD!B9qo?i7g(LVs%O@y5Fa2*jV(0Wy zFVUEv!>3=#*g_;4ybR|*|4dY-iYLob_afEO%L27OSwA`v=)z-2Z^=UTIpTL&G_Nt2 zNON0m^=xe;8cKTcWUs@DdgkH`58Y(HF^y1uKN5E#jm zL&ho-`%>lQAIS^!8LL#+t1zN(R2`$d5>I`Z+pIs7{m(EhdU#J66(k;bMe-s2$0}F- z^^9+mayWV{8m0w53vnXQg`bvIb@XrT$lD}BYdhtbQ#+9Gq}uTDfU(MlYI=re&iRg| z!8Xlz>lr5kU3e6z9;{tJE}nI`Hf>Nvr#_kgW9z)bqPV_4j6L>VP-E}C#RBZiUdP@L zdsoDQpsnCcRtsy77McS-OFsl z6->;V7H+hkwbVXl5cqk_!8mQod55Jv++ypSFWgvIbiTcCt-I{kU&D-5o#xn+`7Q-s zA@`_0Yqf$iBdiy*j@xhr6Cd}784U{0wpaXb4Q7!jzqg*H zNL%ZmbuMLc4To`l>PCA;zMnLri^J$!aI<|;=v{WLqr<3gZnAg!Z{Mf-f?|3|<<{1X zjo(vn1rrxJ9hrHv{la@+}=kpZ*u@e|G~yZ(h?foIZNhpeHG~$IB<-#-R*H z?Z)N*zdQK)MP=(zgsvAK>X(9F7Zd-S3^yJwHtmkBEqRYzg)3Tl-!j-EJB$gO!aI}v zJCO>ux13w@>W8m!YQhy&|W^XI3>>DkqU3qgzn!}ja{i%KHjMfa# zT&^$eG(OJ#V4pDp_K*+p`)ltn_@p(<8|%UqOyGCK%d7F&&Q{&1EPBb@B~4tx1fJOB z^VI1&S{;Vw&^zABtq?ece@}d`uX2zT@bCOI_B(WE!+R6R%))VLf{mB5BUts z>_DsIU$I*ENxRKxU#HP-@}STewAJXoEHjXVcL=#>6e{sHN=;S(O2d1p9{N51*lU)BBD{Y6eAzE*w~ zcCan`i_bu&Uy_F{ma>X~ znD{HiX(YbO%)b8#KlzY={??6{xmsH1qY8mj>U&k{T~Et@XrYvnAJSX+-svMNoW`#m zim{6P`^b`~IE@_5O0pUI;A+PCpgvZozbpF9;?Vgr}5%#S(YwU{b^TEbQ(UhtFXXI{=7%ooBgaFj*qUb zr(c-3g5QOL{hY>{&sEsHs&EDC^_DJH=8jEVXWwU2daU7V@BN?*YqVSK$Dhg3rmJ;s zL>uSk<(b! zqXAo&1V`e(zgM)L^etoF`rv2b3MNKJ@cRua)nFfjU{%$Y)v)T+Eo9om8z=-$?cx7x zbtiukLRTQBw|Z$V4>HVv8NICm*ByrcmuBpC@c=gUmBV;(!eB@LXwObv=Ffnb)R>hF zgWtKM$!GKZB!6={|GnS}Ch*e*`7>n;q_b>4cQ(h&?xGMlg`XA3pP>9xX6sFpZszz} z9W7kJPY%Sry}T;D$ZoX`?P31h&R^+)iIHWU#-49}tp7lGccVTRwPJlj%{>JTg}^EN zu6ucf-z{WCt*U2+U2mzpyO_9XcN$YFH)IL9p~wEg#jSA*>X@x}H&qCn!p8!C?njx% zw)E3FXn*=eT1i(O#@P#P+0%#sHtC|n$dpeDrbzJ8#>b41BgEPSIqwb39ex=4T zExFA&3s*2v>afH3V{o|`K8IE?TqSU7F28T$7=M=KlvP0VtzX`Z zc7^%%SpTzyzpHK8R(>`)w;dbFQ<)+h#^tr`SmBoNlUFoqnokSu@%`4|XA4&_p?+Jz zyefWXnN61tC&rAka0P!u0e&SfucA}in5Fh5qeA#iH>d54j|UJI652Z+a= zdTCjX?$nm}g;;6)=`hP?wPk(zYqdY_FuapGvc#V|vc*N5M*g|2SWIakIt`829K$ba z*&6n+a0L^8^l%yzLt8N4R3Iw8T%+|bwpaW1t-nIxRKw={9A#m1mhA!jk6O0pyEgYp zyml{Molcl>(P`{D=gVsUpiU}yc}>mzP4mv5pm~*RYvCCNOtd=dG}hPmWApy|U%NBm zt@gu$WUX9zmB1;yLcV+c!vpQ~kB7C&X96r-!32C#zdym)P$&Exms%dv%+-gqijmzF z0;j(8b{e^UZ_38}_hi*f_4jE1RzIj!x!l{r73Evtm3Q~(>>XO@p(Jhjranp!OsL-# z|Ll)=ty_sC?R~Sp3V~DV@8ijn3VN|7J2d}&)vZnMoW{;N4On7|KTGAaCT|z{vAn(= z*v+C5M#J#hEYAS=#0i_|tDj!5MQd5Y+rkx0OtM87gIqP(N7Si~dO+M6TftR1EnMltQ>VUovxYo{-w`jbk&*57sq5d_h6kxXIVRHg zjWDKdE5)*ngC2Q;+vrRG$){!9Sx{LOPT}7ZpB!j8On=`!uWNc+%k05_Q$zm9$%=BX zdBcB>G4=AX9!YIk-1rFNO#OW9NdfrlbANJ}zNTsm^W)jI=F8?0#>;!@*g9@l6WT@? zQ)Xshc^|f6{k!vHw?_sRG8BI2hsK8KA5v?X7w>K|aRn1gdqx;7ld`b)rQy82>aNlH z(RW$R)C<&{0}V0~lrBy-8t5hk7lYnC&@7&qaCeG~U+bt>%1AA|L3u3hGukO_PiQqGHE z;zaQXBTwZt`z#Gyt>=hveNmrvroBpCg}^EN9`et@x5IQZ`vh}w@?7P;!bB2_Fq&rZ zVgb9M$J`NNdeI48%$5Et6#}R5Z`RA}r=Pm&+52X&%KO$f`!07HDSnsi*ZIAn%?~<_ zAI4s{Z{~NFCUQ4?kmHiQ+rKcYcJBA?`jqsa%}R6aCaz#2^BJe{ChgY$?tMM`LqGk^ zv=?U4vH2AOr|^5|<<%!XP#?VSuGzjzQ{}zF#7+Jg)xX1S`{$Xks^41%>3efsF~|1~ zPzapD^M3prDpt492W~EI71r*$@XujobQ%}GCfWP-YQ<{vJM|p3j@XZFg}tSI&Nli_ z*9%!&0zdOR%4FqeE2lA_!cqIXgRTDGd-Y39d;RX?+}6Dsd6b_V6Pso`jlVCPw+}1? zKgYdIo%Eh-f3SAnDWecLg?~?cI$HPE*JWvAbsf6dCU!Gn!ti8whvDbH**=d?9=7KD zqBU1`2F_key#rBs*>N-(BGf;v1*5> z_~BJyqH%hsF=BI)y=r&p@n%LTeY)1znlQ1Rh6$X)lc0PGXg8lNxXlTL>=X+Ad`R_d6?u2FiZ@wr70HfhUww$3lq7`(p+I~H(`UHTkq zWGmT+*)E>r#P<`CTB~7B>-?}mCaz$j;-^sK;-Wrm^4PPSxIM49*0tL>>)oiwE==H5 zbm~we+rz%h=QR+|e%xs5%b$^w96HFv6-@YWVq&*`Z2X!toTzhXRZ96z6RgoA9=kAs zQ>AAOGlD1gWnBwFk22?zT>tbPW3?YL$ix*)eC9;I_kG#w)YF_;oWX7$y)f2V;e71E z1Ws*h7G^}}?al7DgjH2JH_5#G$zh!xG|0piOeD7mGZs(o&C0$%#fj~s_n18fhFPD& zAG`knH;J8Asg;Ry=@+&Ect=OA4K$Kro&2r|gXB7$?Wa0`Ynl|KC^h0Y_fBgwg>>b3c zRNwMe`_YeGn82yGdmTp45{%U^2tC%6YH7WgncpfpbdZTFn0S5AVWbOW{7nBiC%$Fs zX=U%7&U(g=D@@>29{$Wsy>or`z7eb{d1_y)sPi}TAV02f1ruT?tihvWoXGWXnANV* zezRc2V;3fHDo1yxQTVqiYgCaz#Y?47+X2tBMtW38=Eo0uW| zxWWWZjUMMTI{B1jlXe2}*O<}P!zcf`s`BFsS1=)V4Ucs{$_W>nV5PhLA;rOuD@@?j z*$GY~%E-_5JO^T<&sb~q?$WlQ{J6puOo-jucTuUF===9Lt6f44tvv6637jet=ropi zXJHYAp+||k!>xfw0<@m|xWW}oh#l|5qenP#sX~Nx;KCX$jvrT;z$tOf!tjAr*~<;K zR!%>xjpfG`u3(~FC2nCg_;s8|7AInJ1zH1&ztp;qeC)Z71FwZs;%d#4-mt2?(>q!V z>Sol-h79stm4ON-;!gAHk>&2&t7U~AqZ}=*fX>DACH%O;uZ2_M%GM9_fViE_$2wP` zf*#F}D_p^Z-p*mC-iug_nmoTPIrAGKdx{E6Y_H~ zg%k7poHw0sg7xOS2PSYzPME{0Rz`0zcN7cNSMuWuS1|E7ILvt9x5fVM@nKFZC^Fpq zE!}ASUw&L+0;lAZH>@ftR|Rv$yOH`8eq7-SCT7GAGxE>hXkV2LdTd=Z+jZ*fc>Op( zt}ua9axxo;uU}6277QD!&*8@vu3+K|pH?qXd4oNq`XNrVcyZO%{nO8S?%|JJn7}DH znGHmb4>h%@86)*v!Gla(!9@KcLydkpV)*%0GA9a8o~_k-GD0utc;?I2{Mui6Z>@{yEaiYtKJbFT<06mBwSD3)5K}AB0 zJ{6DJWBbCY@;Qs^u4aw(U-@x`E11}oKg1X?GS&Vh8}#Ver;fg<=TCZL{#lC&oN6|2 zh|%rWEA|1?fcSl(ubvQAPOr?*;cx{L2{VQmfBRmsZ>@QN6MuX8>t(Lz*K6`~I85MF zt)fGWs_mcHw{8JqOoh&Rvjyq&G=5y+3MTI6=Xb2%`OE$+AdwR_x((#tad=mo#g8jY z;MC)j!N$6M-|WqQ0V1Vbu-<#h0scLpgG^k(L=Ha7c{=Euea^W3oH)O6gnoSNTx|tE zt}ua9otFh0-XF5DJlUYfz``T+%;9adxBR%m6--o`A8dTOpN(}$+{cMJ$A8wlg+H|E z{O7;~PK}uyY~0;jh#m5WRc)>}R<~+YwRPa<47h@c8j<|x*j2E(sZyOL*g2VJIdzP4!_;H0Rm?(Q7*yxnCCfn3$4<~*b7ouls zaKc>9k1I^z)ae{UjH2CqSg&(HWG&Z6PxsdYvnzK4T)_lPP#$0C!`6@5&51)_JL`34 zX0^QdIUFW%>e1LC#`qmgnD<*CmJe&LYnKaJfAZrBS1?g+#1P~A`zEaS`dyqbmiy`x zFIBY)b2q>QPWgWuVmzJLmTjvHJt{A(sz>Dg$?C`509P;(#=rS}+4Z*U#nqjhU|Wmp zB|}>937*F;OyE=#K1~_Bxf6RG4y($tF}t2&Z##?e&vRVCMCU~z#F zTF|Jz)_8tgVFIV5Cjybs;iC4;JIJa5Zs0M&YcFvv1Id>rE1cG+X9SR}c za62bx=iI??N_b+U*FaFt2^CC8H%#CJ<(xp^l=MXCK|7~PNH>h<1nr#L8BR%0gjLbb znV=BT4YzTEcFqKbQ_>S*RkU-)D};1I=s`PYJi{sJi9pcKxlJLY8^&>hcFt`Kr=%wW zK|5!hLP$5<$_d&z;}}j!PlO({bE<@N!!4YkoimQ%l=MVc744i`6+*gUEGKB^+{$oD zc;b!_SQX`*P{D+BL+C*{ClEL#JrM}nIb#(a^vu9Q<@o0=^g3j=PRngA5Ng<>gMstF8 z&P~W5qdjw$PkO_uXy=Sk2X*P zlygD_6VeSgaDsA9AaF`};*y-ugK|!&U_!d#dQMQz2?S0_PlQ#`&bdJ$q#Lf|1nry~ z7*0t~gjLbbxn3cp8$u7-IoC6slAZ_z?VRfrLb~BvPSDP|j^UK_L?CGAT&ob$4cBmj zcFwg7r=%wWK|ALfg^+HzniI5hu3HYv~#XzI3+z12--PUDTH*xm7JiRa}~oW>4`wl&bd+{q#Lf_1nrzF8BR%01cG+X z6$&BUFp3kjbFN@GB|Q;((9Wq6(hZk$f_Bao45y?g!m4QJj8X{chRZlXJ7*NbDd~x@ zD%v@hD};1I=s`Q@a)wjV6M>+ebD2U&H(bgI+BugooRXdh1nrzl6+*b-hEYp6K|AMC zhEviLfuNmpi9$#>T+9jDIhQb;lAZ`XXy;T3>4u9qK|ALXhEu{5)52j@lygD_6T%Ja z7K0v?a{_@=(ky|XopX^wNatM03EDXqA%k4#aZc?b5R`L51;4Iz!v&n6oD&F~lFkVP z?VJk~LfYhfPSDP|06FJ;CY=*{(9Wq6(kAC|f_BaY$ROu2>71}C+BxSdgtW=IoS>a^ zJ~GI;Ogbm5igwO<3L$Lrq7U?-opYYYAR#546A0Ql=PHD-$>k&FaDsNuxgLXrlypuY zXy=@x5Yi@RbAooxImkI@GvS;+6@(s?b3z5buC&QnoS>W&2%M7639F)=bGAZAH=M}{ z+Bs(JLhzTkj^=k6SQ+q zM+P|+IVY@&cFt)EA#Ad0R_H-H=QNK&LP|JimU%!>&IuL#y3!4&aDsA9AaF`LClIuA zPEiQyhLbr#JLeQ+kdx7b5cHs(QzfKLPT~aZoKuiNPD0Pvf>qJZIawiuO+LLakrT9Y zPWBiiq@;7gs%Yn&q!7X;>lB>83EDX)c?=R#!a4mj!m23egbIFLVUt&T{LBf;If1|_ z;hewr9M1{LIiZ3HVUu0mAMlyd@sQ^GmhwH?U`$~mEe31O30H$`xQa!w#{N;v1jjl(%XIVV&wA#Ae1 zKMqb%&Itrg3Fj9}Dwq&9`S1H-oS>W& z2%HkmIXyG1igHeCsZ&YY%9} zDwq&%cyrr8PEgJX1WpO({NvsrPEgJX6-)@599(|@Cn)Cx0;hy?dbNdBQO*e!Ob9oe zv8g{NDCYzMr^Gz$xV1r?pqvvbm=HFZ?rlF#P|gViP6_86aX*j~lygD_6T&$^)$hv* z$~l3+DdC(utHG)$=Y$F-gmc!L+M5%Ua{_@=!a0vD?ZXMmIiZ3H;hasM_2dNQoIv1| zaLxk!`vGa^gbF5vbFLoQgAa!#mVLfB;5q|Th6oD&F~63+Q_co$Ak&IuJv z2m%xUKY0;hy?cE8q%6O?m81rx$K-FMzo&Itrg3Fq|c4XdJ@6DpVx&N<`1Cm~SI z2?S0F=j?wYfcK!B6DpVx&IwPfpqoD$bLAJ%Bk3CcO4f(hZA@U#uuIf1|_F+uBo z;>r6Z!B&@E`?XLXIa>=AOyH+`@b3~TG{7q4dtP%@?Bkin1p=q=Q%d+Z0~JeW#eZw3 zKdrgO#P>=_Kf8l`=QjU2^1gX$*8Sd8uk`l5DGlp3a0vq<1Gr9nX)&q@RI`YlMvLq;%`M6*7$70 z%tFZC%f5^)!oh*gwt06-?m2EByPN-xRj?KL5dL z_tx9O1WrBO8*Y3|=)}5Thrd3_Z@jJWa^rDFT=IBsn)qBU^D@5Q_{Jdet#HWF* zzXLwiN|)?ohTZC6neEa{T)_nX+~vpBnapO*<1MYy&%G^7;M90)sL{^9KdV%(7w-|1 zw9s`nU!c{BA6K}734H$G<+W2=0+KcU91ZPX{K80z0le=3#^++>u z1rzvu&dV!);sWjHF5SBJ-P^(hPW7G`Vtm=zg)J`&=WvxSAJNRxZLFV$rkS{c34C74 zpSe8pg4XZXT2^wpq827_s?WnA#-TR;EXxWwd%g0+OAqSW$SNF^X5tDa@cA`=PEn5Z z`qn!?S_40LTbRJ9i9LrH{c1F0Pb$M%ctp=1^?}byTdaMWi7S}Ep1_~OQnjc))|uJ* z@rAdA37k6cEZF#CqAweI8_wH<>ettQ>5|EE^5Y6uFoAuCKk4>Z4Lw`zRdef8ZwnJR z)pljD(Q8{xHX;hF=t}=q`l8yW%?xeROkBYP_BJoChqE>P{MlvZvRB>~CU7bj|8A#G zwaPM|R^V!-cXZPWoF8uVoe$a%e|uY)z^TsPhZqG$n)dJMVQ*6L{Z`KZW+i@7mn3s=9CH zq827_DnqAG<4fgO`(NI$J6PiBHLdf-W_mFHti=^f;QdQ}luX;Cofzq>H~Gx}wxid= zsRwz78W(G?w@=>y`-v6TEzxq!>#X1I$bSx0!35ri_3|opqNNt=+e|n4?*kJ!_5IFJ zV}{QfdxjRUTWb|9p!pu|qfg+!b6mj$-cRO4@2R%bzgp|F`Ei8_ocgkDn2|1St-XJG z*h4OI=IZ}x$!0LSmGH5={gsITjvX5tDa zTq)+x-UD4OaZ~!2DRw(ASSjGjRnI(i7l{ z$*p?N%(-zD^_TqbE+%lQ=0JzBvhZ2^gB`G{boI;!URrbjp6scjw#7{ z{sKJ?ZV$AobvfWyWO$m1E0_?j?!NAPpkf=Vj;XmWee&~O5bhZB6Im2}F zb01v6gmA+KkDv$TobXyWB|I@t10X2pgbF5v8;&^wlLM4<0)bP)6E741f^tr%U_!WI z{q-;bK{+Q7I3+x>`g7<(IVV&wA>7bCUqU%25I7|~ao`?U73G{z!Gv%__nZvnoIv1| z@Wex*FkeDBCsZ&Y+_3C>n5?0k69}9Vo>;pf5R`L51rx#zSEs^+5apae;FR#h0{MWT zoD(XT5N9}Dwq&% zcr0KcCn)Cx0;hy0o?8s7qMQ>dm=JF0p6jEW69}9Vo;bBNtcr3@s9-|4;ft#<2}n67 z5I7|~@m&ERDCdLa>&-lyd@sQ^FH}jD>ko$~mEe3E_s*Yb@gg<(xp^l<>r5PFNM?oKV4p zaKkU3pa=N{#oD(XT5N=qt`x;JA&Itrg2~SMF8CFF(CsZ&Y+%Tj% z++9OCClEL#Jh9efSQX`*P{D+7!&TYVae{JAAaF`};@sY_D#|&bf(hY5oD!b6^>64wIVV&wA>D8TCn)Cx0;i-W!m4QJT(1z) z4L5RvcFy%^qH!aWo(QX=opXai2sf;jHJTH&b8hfVWEAlR`*0jO7IFoSQsX!(SJS^*oLJQcqYF?VOtx zLb@UJpq+CwGRRoZv(q@;7gs%Yno zQwZsX(1Ui)IAoC9m~>7cXy@Ff5Yi3fIYB$;He`_TOgbkJv~$KQgml9MPSDO7j|?(_ zN#}$fv~#M2bi?hOpq(=w8RT{*ofB3?J771}C+Bx?tgml9L zoS>a^KQhPzOgbm5igwOKg^+HT#0lCt6OlnCG3lJJD%v>@D1>lB_w(Us=RDvsNJvTN zgjLbbnWPZX4G(gHcFrVZkO!G`PUt~9r%FgSOy&gboJq(albLYNbemySlygD_zpiw{ zLqHJMIf1|_>71}C+BuUILb~B$PSDPoj12NH6V5rWH>`?sPN?A5m2L<$$K^{TQ2?Xt&M-)OjXDTOX=RAU(GZi@}^q`$nC8Tp6j zA)WIaCyuS&Zr(3ZPR}=~mW3znO$aiVtR8D_Hqic&i$dV-=d|@%~Q>TJafoJUY}No-G7A|{ig-7>)+wHdiG^d z%Bxm|thzt>D+Er-oeB62K6$#t_1DKI=Bb83o_Xp5`A#!Tq@?g~>mE9gT`mnh-nD$@ z`f+4_>sdX2g}^Df!ve&Ss6uAF?)S`J8V7mi!fQ7?#V|2>$uPq^{Xq7*Is6|iR<)C9 zTa?4<*4$qqa7ykJ0nzSN53^a-U(5mnf;{u>heA&>OziC&W;E*GpN$y@e@mw1UvA#f z(_68F{1pPH^Y1!O z%!U#E3V~B{=MIQG*%Qn^b3~gfMh1EAH>m#nIK#w+OX0?v`d!)cPw@G1Y0*P7`R!4& zVq1TOz$x|9VB_r*=D(XJnrqtd_v(N5U|cA0oMA$I-`(7D(Bs3|bk?mME6kD&_f?-eKb4XNS?MMH6_JIKQ=XoyPX|)mYQDaPIRcb0MqYlcgzL0{s;Nr{oSj5Y5j% zHFs^OV7tYSD_p@u{1yJ)!lz3z@B46`cw=h;>sXKVw((>A6#}Q^l?Lds{>lS$&Ve_! z3KN3RtlANV3GIf{==eAvYxN`ac<~{ZRq0IwEu@3LLg19VVgf|LU02Oj-mSEp9fHuz zoy9QGB#Ffh5ICh;QQNaK%^WR{XuG-up;^uphKV_|`L{k^K4IVJ0$02L ze6#uB(I;(AFMpLlDfxK?#F8@sX2uV{YOAINd1g|#{(YF?*X@-SZXDgV-#+jgcd4`6~oY$xlw`ktr;Tsqeb46`vV|J_ipoOvukc=+QMt9`oI?yn3N-{tAIp zs%_`3;P3kM=BZYwTaaf)7~B~XWu}A~KP*{mZ#4||0J5I+cGdh^P@m!FuMjw;?iwuk zkk0l)qvu*(Taahgxz^-lhKZbeh8Zu%McH33g1wBk->2E;4lAff^WzG?7EYpA4 zxPpmx7lMu4=O5VZH(?Js?p~#}g8c6;CU8pKb&e_VRMR47+Ge&6^4u!}d&rnr zGd$RcfAYzGKOOXV-n^hbFm9@?YJk5&;FP+1UgYgF?N;S2hsO>N^4#hT-?PB|apuMjw;UIl1b@h`2z*%((R{x=a zMYF%%WM1IsSNOGXO1-+YJNG`V)udHsB6kB^!Nl)ou(AG&AA9!&uB&;Cx~okbcHT7W z^Y`k1cjVQ7xs&0PdX?Q!XgIpY;Vx*=RYr=2q%8RRy!GXblj zol_;G8$u7-IpdK*{{O4`v~zA#2a^6T>NKmO#+X8KV%=4Wl_hJ7)|s$Y^w>0eaBRsS?r+p$F}pF~}hQ z|CAo>oY4v)-EbrCK|5zOGRTeS$`254qCPK|AM0WRM%s6)YfV=iHzW(hXsj zlXlJx$RO9FD{(;3&beM8q#MFaD(#${@Hpo>v_}dA?VRfrLb@T$@6yh>4jJTHv|9^3 zXy;T3>4wmQcFuLkAlG`X@VcjpDd&U=eqHH?Yj_XJIf1|_>4`wl&bdY*gd4tEw3-vN zbFT3iB&39Mx~IG;=Y$G=UFn9acn``sfxs#0oIuddxk@2~8&1Brk`uIZuJRZpq@*W8 z5863ZLb&1H;?RS3&Q%_Rgp~9|AZX`YsSwf)S8#%M&Xvd@SD=X$AZX`Yp%Bsyqc}l3 z=L%$yQE0LT2--QL6hgWo++#vJXB5LJ>4`wl&dHzI?{V4X$PM9M8QMA3lyFY>-8GbR zLPa{~GUSHPgK|zFq(Lr26I(#g&Z!d84dLD;+BugooRVe<1nrzl6+*h<5>C+0xfB`X z63+yk`>rj@IiZ4ISGpnGOGY^-5I7}05eV8j7b}ExL%1i7cFx5Nr=%wWK|ALng^)H0 z_Ycy}xd=JuLMELPdeF|P64DK!2ko4TkU=i=OqjawYNVVKD)@D!8!q5IDCYzMr=(c| zK|ALHg^+GIpA)omEzvSoc21R$&Ivte=bVQOaxS{64+QO;a}`25=NwMZ&N&wu73AmcFtMIAZL2+7;!(PfO1Z#;MbLIID_|~oD&F~64yE52?<_av~$i- z2x*hkIYB$;3}leg(KHnhv~x~Z2w{`W)=uLD?VQs+1_>$YoIuddIZYv?b57+1?VQt) zb52Fh2|Z}%R0-*v(1Ui)X~-a_qA5KfXy=@&5YjoPaDsNusmLIwAm;>vcFrjZA)RwF zCurxKf(&vpa!w#<=bWq%(m5w_f_Bcy$RH;n=LCXw&PfU(Y|=h%A}46)&IuJv2si99;b-21a!w#{N?hl3KRt3*6O<(yE#gs{oU zgGciolyd@sQ^GmjPvxSV6DpVx&Y8g)$$L=F2?S0F=X5_^jB-w>U_v>{1h6_dr-~^1WpO(bU%HMa!#mVLb&0i-NSef$~l3+DdC*%rwCHc2^CBT zn>>c zPWRJ7Dd&U=CWLc7`8SC7pqvv3oD$CIe(EXZoKV4paKnKu`|}=@a{_@=;yS1M>8+G= zLIo4TCZ`?f$9quD2?S0F=X5`XmU2$0U_v-&KBF)1K{+Q7I3=!gx}T;?IVV&wA)K?$ z?%uoy<(xp^l(^36ekw5KoKV4paLygyd-5KXa{_@=!a3bfH>R8uDwq(?8Ef?5Jt*e{ z0;j}mt@|m>lygD_6T&&~E$qg7P|gViPKnuC_tT~+=Y$F-gmb2S=)!wY&ItrgiR+y1 zr)E>m2^CBT=WI5mGw(q;ClEL#W^3I~|E8Q1Dwq(?dHsDy-h*;ZAaF{|!@8ehPB|x3 zFd^KqaLW$72j!eV;FOrHEg1$x#(6i*dr$n#5+&qpEmSbE{Jg`+U#|sAtrNhB%bV|+ zz2?<7iyRE}OydH9QvJbj4@}@xujHY|S)U>7{nzfiM-d~7S?0R88E_@i!WB&5zmNR;?oMVghaOye zcxB3Xg}|wsw?d6KK7-lUWcW1rd(aKnfonC)6Xzo>T)_nXJMZP?49Q?7-@2QU^Xzzq zz^TlcLXCQl`m-q^@ToTV$`aSky*4w;<46lvFo8d>yu7+Mf9;BH zssqk4hW)m$kswyWX?q%G zm=kYATDXDXqJy^9a~hcI&P7_d zf(d+H%Kt|h^&!l9ff*1}pMeQ%M_=aKW{@_BabyFoAuCUop|v`n9O_kL!;D z6BGicTKNPU_1k>3=P^Thk9~hN)Y96mab3$c&cYQ;U~l8+KCxA7_q;y2=H4Bz5I8lE zf0IBNuY2}iLcmfhA8)F)bF^|zzZ+@c3MR0Ba*rB0#paBD>FUbwz`_JhweucgB-}V< zZ&d+oJMXSGTIoCsQhM{_3Rf_JJ(@etr8wKd_E%h9N5?A!PQ@e*FyY|~YTe}A1 zEL_0^-k;(7?e>SZ9FsLyw^9=n0;g7d4mJK=x5(acEbK;=K2=(a@Ab^~vcNbCS1^J1 znfRW}sqeOkWlvHx{$61Mr)J(9YCP&Y-~MZ9*j0=6&Zjl{JEzv?L8OH%n85pGUS11x zX3>VOyGS#?woTnYuc-+ zer@=%iwT^{y*$k5&|$g#&tx%kF(@z12zE^wkS&&8tmN2qksEVN_gw#J>0^ z*gZG?n3PhWNi%JE$#Iq!s$c@|i}U}r%?{XJ9#6I<@W1Vtz$vHhG)i>2ZjT=dd-`v` z)^UZ`YNn-o8foDQCe-T&(RWtbh7|bSmcT!w6vA^C)g*Q!-f46w_{yHKC0v_`o4wN2 zdxfSgybx*O3VvPn`p1be{cXoieXxz^pS764sYP#`#=^fcvbq)E8cU-GH(VKPHMG=U zBQ0FPgnAuEfA)iIjnhl}nV&OY0;hf~5MlhdB_E6U1U-hY{=v*$v7narF4DpkOsLnR z#`JIOSM1SeTPi>I!30kA%oAbku2PCI7hI3Z*QKOcV&GHTB>p*wE0|EPtL4g(Go|e_ z{y(?k1ckt<(NCR5aQo^kY%E+?t5C7FS$fkxTaU8iEL_2adVTQFqkmH3#(c7!;pd{5 zz^OCqoJQ7WJ}j{XT!XCrOgGCvoNNnz9ckeTCe-VkUC(xNo!a}}R*s)jV*;nnS9cm` zMmA#~%EGnO-%GYKul$tV_We?%g)5lAS7P~h{a%W4J<0mO7RB8F6F4Qza$h>QirleQ zTXWm|{>hgwMtYnRDwq&%IJX=Slyd@sQ^G6@+ysJhPN-l)xZ(3pKv2#J1WpOFY`q?? zpHt2W6-)>>ESm}h<(xp^l<>spZZK;=IVV&wA>456I3OtJ1OlgoCl)CWGZU0^LIo4T z4PQ40f^tqEa7vivr*A+|&IuJv2sgZ38m2`k=L7<$gjs&S3k2nyP{D+7L-(8v<(xp^ zlrT$sBFxE9&IuJv2sbQp69~#VfxszYmU}0_OcCXrP{D+7!`ab5P|gViP6@LNX$Z4X zlygD_6T%G}_XL7+P9ShfnB|>xFcn5QCsZ&Y+;DF>ASmYq0;hyo7QYPy<(yE#gmA-m zUx1*T69}9Vo>=N2%)?R62^CBTH~e@T2+BEuz$syt8JEE9AmyA;!Gv(byZeEloD&F~ z5@s3MX9*`L=Y$F-gd2943>wBH1Ra!w#{N|8om ze^212oD&F~5@tCl3}&4v=Y$F-gd1v$fuNid2%HjTxzh$S+mv%c1rx#zXY>Pta!w#{ zN|@#Ce}SN!6DpVxZs?wGr<@ZAoD!ZGpR$topqvvbm=JF0p3|qC69}9Vp7>-D%;{6k z2^CBTH$1Wr2+BEuz$xL0MZ(}N2+BF3f(hYV;U_!bf5R`NNM|hlbJ#tRC2a9%2 z^^Pj(hCtBHsou3EJ#ix^Xy;V#43lmM1nr#a-DlDhfuNmJC8Qg|eRs5TZbTD}(M*~p z5VUiu_uWZ11cG+XXf(?i&7>#BaDsMD_5MNOhE3N3K|7~eQ@wLix*-s> zbEAL(3EDZ;J3yry0zo^cdY7qm&R9;+&Z*wXD%}tW+Bwy`Wu6~$#pq*2_ z(_6YB5VUiucaux!1cG)>m5^?@jT5wU#vy~;#-wusK|7~)(N(opYPVAR#53 zlO@J;f^tr%;MbLI2n6MvK;V>g&IC@-&Z#~LLAoIjv~#LYTaeDVofEWkZb#0UfZPxW z+Bvr?DdC*A)9v5{<(yEF&bb}AArO>v0wE1@2b0bT1nrzEA>9xN+BtV1gWSQSbME8> z?VRd!KcpK1K|AM8WRN?Vbk1Fzpq+DAonoooIuddsS?r+_i}=E&OOK=_cGy}!HGan&IuL# zy3!4Spqvv3oRZGDj}x?W?o$ZqhCtBHxepoSJ|>-WKPPDC+^-PQ4S}GYQ+*1Qbk0Oh z(9W5NoO3^NLm+79RG(%gob%4VKv2#J73rLb9yfG9$BS}KAcR3eN;>BO-h*~d^*LU` z4c*Tpqn-1B#~>jkob&0TB;JE^PN?A5m2Lcaph5^YbUz=Cc24za zZ_+uFc@Nq-lReG}uPfaU2--Q-r`Ad5Jj4mwIS(nXE8P$X+Bwyy?@8wbf_6@okZuSB z?VN{@LGqNxIS+G!c24!VgVGIwpq*2F8lrU06i(32$)C~4N1DZR8KrXqK|81VR7ZJj z(!~kdIbG=fs1$TR77(;^s!yks&S`Rjc1}}yUFn=a(9WqoWm7sQ5VUiugmg}e6SQ-h z$T=I6*t7`kYkhoIudddBk&9BRmyWIOl;Dshpsk z6Ds(1rE>y7IVTV}C7tsqCurw9su0pSfuNmJeVVRx&SRXQol|{cuXIizXy;U)3M`y6 z|4kq$=Y$G=UFn=aP|gViPD$rH&I#H%)#o8g=LCXwPW36x(m79Xf_Bam=sM?d&-F<6 z^Qmd)RG&62o%1B`K|AM3<#nZV0zo^c`qXUcoIuddsS?sTPjP~F&XdSFPa)?7f_6^z zdEwFxfuNo96f($D$T?4Qf_6^zx#z+r;mPb?ULy(>)%-5xaIOCPXA94<%g?@>Onlb5 zr`4yg3D@2pFKT-IKGHKG1QkqduIw-lh9%fvwYbH5EO;KJWf&1UlI4oSjg!q5%o}u5crj*w9_9Ja|-9UxFsWblJM!L=e*yBW)R(IJ3+V&2J z*Lr+*Sh#`-@&DXCLw_XacH5!~ue6}ffeL|Bj!9w0^v*-r;ws&EkG5+Pd{Rel*KFCG z7Or4I{6BZk(D!JW+xM35Tg|UYphDnO{*A+ojP-`H3CFtg9#sd8bZs6HudRFHuy6$v z;{UmOhCX$1yleQsue7VB0~G?NIvp5l6pI_mnvCwrdlbw5!S(n+jJEoO!@?Czi2vvA z8G373CA0LKhuXNjfeL|BffquJ(@R2F+q%7Zk0~wdnB!uWYi$oZEL_2a*jsYX&}Tk1 z+zfAWMLSdLk=EDusv^M7)7Or4I>@B%x=(`nPZMIsS zqCKe|s1P{yrF@9dYe-+VXH-Al<4XJ#^IAfG?e{kh3s*29_Lkf;^ckIr=JO-bT8Mw3 zLg3Wkkwc8<-@CA~&jNXmMWdFOBa776#`5C|S1=*=mfSP+1M6NiYhRwE1+@-T2%H*w zE7+K@whhZTK8W|I^Jt^ld-gZmwAT&`S1=*=mfSP+4JJM?ukWp^4XqHU5IFUvTd>jC zX=k&l59B?{#>JakpG>n|J;UECRKbMUTXN6PmoEIue19?3b|D{suMmM#ML!QV%y)Iz zqNjs+j}?`6n%B~8^{v5=D_p^Z*jsYX(1+c4Yx=(I>9;9=phDnO+2ezazpQes%er9R zBg>NnbK$^_u6rjP7Or4I>@B%x=mUnNnS=XGb#1K_s1P{ydjDW!>*zwPN&OJsW7xON zruX+>UB5qbSh#`-vA5)&q4&S`#Eh?z!+g{-P$6)t{JFtK$Jig(>-bRKV@tQyX2bK| zW~uB>3s*29_Lkf;^uwRsGN)GVYToG(s1P`{Cv&i|<;{D0-v+~YkFtB`m>HV3GoOES zSh#`-vA5)&p&v2)m>J!Fu{ot`phDo(iQr%(aQPj3$%kRQNAS~7vw4+?X39l}g)5j4 zdrR&a`bHR0y0Z@haFzh&X0nwZXxAe75_OYRx^ z(%Yw-D+`=Av-4vY6F60B*%0Gk>`r^JE)l#(uD6-ZS_3wkrH?r*T)~9cTXN6Pmzvnb zJeujA`CHjQg}|v5{vk$*&+F_7?}qapGb_is3I@cP1O9YaxPl3>x8$Cok8JwUb+y`a z^D6(0!URs)ii8^JuPwG`95#~o$Q1K2Woc4^Su=;z!WB%2y(RYyJwFaz*Ds}+(LDkc z0;lG`4mIXHoNbSJGm7{4tKL(;$Sm8<^XZ%xu3$p!ExBjt(-*5~bFF)0=B^#65IA-5 z`cPxu)EV|tYsT;%pO+=udUV)ow!G@Fa0L@$Z^=DFe|h+K+pd1k%}Rv>6#}OsQ->Kj z%gwS+>>SB^jE*U+O*ppJtm1N5xPl3>x8$CoFFL?qOSy5^%*;P)F@aM>wuBi&&n>Xm z&Gj?yQ9r4b_G;REv)~bjg)5j4drR&a`Wwk}G#}?_b5Y4ag}^CsX8CTz<)+@@=d3_46*Xk)5AkAp)nO8#s(bWw+TwYE9%lrhlHT zZAxfoM(1=|xPl3Bw(Opv-yWW-{hPAHjPD<)5IB|PcZZSXufujn*Garbp#!V5{T+&% zMfu-ET)~9cTXN6PXKH#&D?PubnWI6VLf}-BVNPT1{LA)$%9DAIa|^dV zN(D{ei@hcH41MM^Pqk?qvzgV41}X$j)%ne7ROt4?zCF_v-s3{G9onHaxm=AchlMMc zkb6t8s!T)QXhnm1xmM;0R0y1UQ!&CYyfd=f51>clo*mlnO^*2;<;O0rU_$OK0dalA zTkXfj*ZfWu3seZ4de$n!U_}fQOgt&qq%w5%^?Yx$2lEL_2a+*<;odTf+-{h6g%{J6pdP6@N@Y0l)tuz=E9%O0z> z$|=%0p@IqFhVB`9$~l3+DPfj}m(AimDCdL(-d%GpP2j!el!Gv%__Y6JdoIv1|Fv~K;lygD_6T%JMGxU^m0)bP)EO)Pg*>lP{p@IqFhVB`9$~l3+ zDPfkmBbM_XlygD_6T%JMGxU^m0)bP)6VLlc@g9_OLIo4T4c#;Jlyd@sQ^G8BR)tA& z$~mEe3E_tB8G6b&fxs!@iJd<|56U^Af(hY>bkERJ&Itrg3A0?(b~W!oIVV&wA>7bCLr*y;5I7|~ z(W>&_>^b3_P{D+7L-!0l<(xp^lrYPpSzs=la!#mVLb#!OhMsaxAaF`};-{O?gK|!& zU_!W|dxoBJP9ShfnB`9^*YO^db3z3Z!VTRs^ptY~fm6~f*Yh54vZ>+Br9SrXCVoY+}+Ap$F}p zDk0qv2--O}BZJ)Rxz5?sgxPc2Ib#(bH*ZrjAha}w{U`X&MgWd-4J@v&bb8{ zWGs`;xs?;Nb8b}#>4vZ>+Bvr(gWSTTbH;IkcFs73kZuU8qMb7i8RS+bofCS{&Z!d8 z4S}GYGY%PK9Fxuov*)yPZc_;9hR}m{&TYsb-!`v*)yP?ow1 z+`*)C!t6QioVyf4x*@EJcFtYMAa^q9oG^P%JLhhNkZuU8qMdU$GRR#_Iwwq$)6Tg^ zA*36^s%YojgA8&v6V5s28uXx?6Ds(1r5gf4IVTV}C7lyy&uQn}s}Rx+p$F}pdyzrz zVZu4{MC{`P<(yE#uPfZpJws19ClEL#ofBryY3JOp5Yi1{RkU;NM+Ui%N#}$~a@si) z6+*fptcrHdL}ZZrnQ+c7pP&cjoKV59E8P$X$~l3+De0UCI6*t-0fi85=$@gco%4Xl zAR#53v%^@JJ*S)#D)@D!8^Wq6=L7<$q;nqR1nry$6+*b7dxoBN&VwF4vZ>+BuVvK^|n%IbklGcFsczA>9yGMLXvqWRS^BIw$m?ol_;G8v;Q)=OJW} zhnRFum_4VR^RPlln}i;;a~?(pd5B5pgxPc2Ia3rux*@EJc253U9)moLoD*ixY3Jk> zL`XM;RngArLI#<_q;tX~IqjULLP(p0Rng9ABIk55>73Amc21R$HVFjnoF+0zlS${a zI6*t7r4Z64p$F}p7BWbl@;K)aPSDPIL?NVe!m4QJJc10;Le81W3EDYR6+${EtcrHd zRAi7xkaHg81nrzh6+$?tdxoBN&Z8dZgp_d3b@!nM<(yE#uPdDs2+BEuz$tm1^B5;+ z=RBqm(m8>ko%0wn$YaPkk8^@{&f^LpoYOr+Pdn#vk3m98I_C-AgLcjn3L%{nRz*AK z31pDRk#nBp1nrzB6+${EtcrHdlgK$wAm@Z0v~#M2bWR{>=RAoF@+5Ljm_4VR^OQnJ z=Y$@#bDly5c@jD2X-?42d0HW)bHb`<=RA!J@)UB;Gn}BE^Nd1B=Y&-aoM>sI?wvR5 z)a+v633d6|cME;i-sHrr^Y^qH+rFFkCh49DA(&&w#Gob)BP{z?`zin1oOrk4p%&~Y zYAvf$Ss`%h!t8LP!=xyCg|u6oxI3%3&T=Jbfr<63P4Aq>&N>ZPVv0ZO{HxQ*IMSEJ zq;JnsUpS4oi~Lw#-wvGcnO0bDbmNeA_Dcf`S1=*=$PQ&|&xteR%j>nX|E^u$Q%WIl zs@X{XJj=x`*^;!5oLIU#o1W9_o;KUNp@l1$5Pz?HQv)~=m6TggERap#l~76{aH{Mb zhcUQxXO?qEXZSfHpJ_cWWzugIXlUUICdA(>_q_lmi@(rbEh(jM=RGiiQwz&G46mbo z*oE$0d5?v;4rxu+7uKs5ZD`>NCd3|@`(A*EbNjRfw`=Rs{Jp{iPMzr;Zj>!Ii1|J4 z#(QL5IYV=-DyI*x)X>5eg;4GVNWU{&bEVhx|D)@?!>g#ew;d4?cmb7O1OkL6QWXr6 zGjoOkL^=qDrgTy%0jVLO_uiD=AtVrbCuar-E%YKyu!0l?se<x0mD2e)jKL-+x@! zdhWAkhdJfmGwYng`+_w>zN*p0z}Shs?c8>Zb*p`Q(c^J}62_9&mCbM73w5!Agxn+Z zW&t|ozT(T%wZ0kY25SVSF0Sllzw%yh>*8a&>%Lp-yuMv?s++0rgt}NkLhg}yvj8<7 zK1#b>>Lat;)?kgm)YNUU_L1b?*21LE=x=p-Q{e9KYG%D+p)OXCkb7j_EWnMZ3QpmZ zbgEazE`47j~2gb)*E4y_PJsK`<>0Hk8j(Jy{S6D$p?vZ)30LJFI&dVL4rcaz# zNMP#q>(Ta!TM<@;{9Qzk;7j6e_4OspMTJ9MtRNxx$h=vA*eqwALYpd@bvFfT1g4Vm zN83A!cCoT2brn74G&<*uihaYJR5sMb3KDXU%$o)1HYbalC$XSeArPz)n7ZC6$~F?) zT0@F<7d@FN}bvHFS+Sj5` zsEZXO8|^p9fI6W9iBQ5#Ce4kB;+2MHw$p{<5%5oj|;dz zi}MNzOtl#vWuKa}&L21K3(+I$%sJ;-vp3v^1w&n|AR+h2yjg&q-Oo6CeyZsHE}kDq zV9IAk+oi@X@V`=)?ucJLX_<3$M+vu8aHxwFB;+2MHw%#1B4Rx`Cgxn+ZW&s8@tLF6hsII&DaIi*Ts^Bj%cKnmE z{^zBK(BG=lp}@)9)!e)_LtU&OA@|6g0u3`$gg?|G?uz zMUV3J&V&u$TitzHD%8aa5^|5sn*|6ual}_*SADm%c%CDHsqBY)*~2T2@qaybnCQ{{ zN&zG6c4haP_&>)A5^|5sn+5ngB*xg)$8hQO3JFZTwW+t={rM#SBqLGuxHWOCG4>;0?@ei{`31VncQM1&-jZSh%sEZXO)O{IrRJFR+G%FNa z?eq|zOOU|S#y{iieSu&67mJS;#Lw%?oA*+BId6*3K3G9Q?vZ)301tono5M$bFn$Pn=g+K|<}3(aPUk*1)`wb#$P<_?(D@mWt_T z_idEds&{&fAS(S(-AwOV=)*t7XVD<2Affii=%~#34a^6_NBe@s=UpT)^|EI_d%%uh ztH7+Wf+(C=)f}AbXW!&Xp)OXCP?0M0pyz?3vgUv9c1o^wvBAR*n*n+4#U zlL$;nv)pizdT`E36(pn^db0qWa}t3mX_gN*%oII1=cEb}(ha>?0M0pyz?3x0CsXLI zd(Jtjf`oKKZx(=aP9iWR&GKSTx+9)*PO2aw-O!r_;GB~POi52{`X1d8&p9VmkdSWZ z%>r=FNd%^(S+2ZCJvis23KG%{y;%UxIf=lOG|Q`7=ZYSjb5aEf>4x4c0Oy=UU`m>0 zok?`pJ?ETMK|;ErHw(ZyClQ#Ep7=)u-4V|@CsmM;Zs^SdaL!2trlcp? z0M0pyz?3q}C87uKoJ%x9x}i4xE{6GQf9eS^x&OysYWO_q@&`Ub1B@tvBXlI zxJ(edb1u^e<%V=rymN|ge9xRxUusEDyi|O-AUNlw3KG%{y;%UxIf=lO@8#G&bb`!-Vmw(%(DLJ6@uWLlPdVQ$_?qLIOik+Q_>Uj&sr%6&N-=qgtAFGD$Y6o zeXLA_TwzI1w3@9F1m~RpR)A1$NJqsvClQ#ES2HIRUo8mUIah0hazi>Q-Z@u;L9Vit zb5al9Idww0A@$&$b2S*`DoZ-&_={@Y@NtzJ(ou2FNd%^pb0!Ibcg`e@P;N*^ z#XDyb7~~pDIVatF&O7H?oyc@fIx5~d*MdPNfpgNm=e%Q&Pn&4^Uj&75y}nesCefT-zxv# zH>0(yv))q9N%x-f&bdJ&lp9hH-Z?jbL9Vxyb5al9Idww0A+4Nu&JAFYsg`uk`y1%~ zcFsAef{&}*kdBITP9iX+oRjWv=bdwtMkqI=qvD-&6By)1OF1Xqd(J!OW{ps8NJqsx z=Vma-O_p*_x+9)<&Mg|D+>nlncg`(fkee;#oYaGNPMwf$=*wYwxh>NmDW#l~?r-OvbGt?;H>9KD zopU=F5h2LIjMq=E8WnW1>l^M2uvyG zq#nF;>V$GbS~>5WJHa4#Sjsu+{&wCucWH!lLvI#DoD>_hjrbIwT>d|c(6 zbX1&k5`ih@oZ_zX|BrJz8ll{fj*53q@s019&KUsbbOpgXr>halCh4en=XAk29ZNYU z_28XTCzKmf58gRlFi4Tgbk2Q(;GJ`yMkqI=qvD-&9~h)-Dd*fT2;MpOYlL!6Ix5~d z#bad}72hlryiVh zQUxDZIVbhtoRbJlDd#*Y2;Mo5YJ_r5Ix5~dkAguS0q4vR1n-;~8ll{fj*55A3^2%} z;GD+8O%^&ujV?v~&{&7ET*krLTQr^fG_e-Pf#MkNVg{TQ2lZT6oR+ z;?ur%rvj_|Gh(g@VpXr4=E$IM_x0g*16V;~!mK`ay*_jNZPs5EM2~83nXfHt?*4c+ zuY&}puD0rHC$3-R-~JsDk4wI0o``Acmick6_`YIQK|*~3xFU%9rT%B0n*V{jz0LO; zfhqNV{*55Ebj)J@+OM1&+U`xb3+Ws9WO2p9*#q&bJw47k4|+zKbE}r{`Fe^%~m*2A}X2fttB)ZY4uxwz{?2P;T)tlY=` zsmpqQY*iwPTyN`)e!sqX>RAyN2}~vT>urBNe1(6?XO{&Lp6gBLN%~u6!M4p^tRSI& zONfZK$~6!C`RI;Oux&Suz?Axhqf3HVeWaalWRbc?!rwz(tRNw$GreD3px;C~F|Uv> z@>+sMU`ox5Qjc%NH{D+N@0)J1f`s~`*ZV?PaZm0 zK?0uzK|vLseibOTzOlLGZV?v=Oua}J6C-OE`KyhjGcm{EB7v%Z7cj?#HFvRs1U?JI zj@Q#yeA#RNYP{#`rV*G@ze{#e^uS*k!wM33PK!O6N!bkF{n24f+yoa1OsPq4>JbXx zPmL8M@SN6X!;!$0a!&eNp+RB=349jlmWl+XlnK+bw%F&>jY&plcb|AhVFd|1r-Onv zz1rPqF(uBu`*yrWU~0qBUUsc3BmG5Q(s?zvN3?Oc;t==vglS<|L84>J-gb-GWBrRR z(EG=C3u+iU1`cuC9DUP30#j}C_qIz{8RPH1n~01vvjg)J6U=TapZFTq>t%oT*;2o+ z^HmGa{13j3wHxGJ=C3e{jw)%!#K4hb3Fe^zHv?Ef0?%pj*L`uMPJ!M-%t_Hb9V9UI z;##a-qT*72bY=SM7P_=&@7$wZ%vy~fI#|&N?fKz;HrluUR%3JGogyw0_+0ttYOFo( z!-f7=R?(T*^q(=l$-N4g%WE`uv4RAi)8ZFB@BQe@^7{=V^}}u&fhqYrf%~^!5Iq)s z^TcQV7Gk`5VyKH1B=DRTuUENWH~N2bW$&8@5;Ou+>iZd}2Y#zOR*=ARIw%Og(E$le zshuMFTj9PBR*=AFK~T^ua1T8am{R*!^sIgT@;|gg6!g#1p1zp$ zLGFU!c#Xi+2VxfBVuca@UxVq~EwpsGZ%3BlZqrA_eON)_>XBY{sd=OPdB3FRM@WsF zz8t0F-GWg4pxwm*S1G4Y9WYu|3sRr9;O(H z<>EC0Q#=2Tv+w2cS$#LR5k%j2J~eX>OE=QXWjI(tLSEbUW_Tan{M5YH@DC$<>3EI6 z)Uq*gc4$~5>rq6w=nT`FE9Fm-ZTZ#!q#SgXO=&qR-m`V)+z z;a$w4;{O~gNXYxCy&2x07t}W{)aq~6Dlc9c;IS~3ZA~vbxMLsd{pe1j$G0u-_mosEGQbF4V8kigWQtI>9~zaqu&|8^HWmY3M>WNY5eoFvXGtRNw;ZF@7k zYZu>kIv5?yGvd5L0#mbdM%yU`yIPUOdx{=&@BHb^sQHokia4*Zf`q)b?alDMd!(TI zRjK-B6Y;k~0#l!V5@k>5*v`5;?wH^KL}IIobvRH0E3_A5~Ztv|2z5k1C5 z#<+hpE1Nc7JU_64guJ%x&G4SRG0-g?ax8F9tOE&5m7X7Azj!OVwYp`T=yCo+gqygz zjAM!CIaZL6*S5VG-ikf@xPN>*%2`n%UL!Dd=VF9C=Fnq*{_pyU9-9w-=FWY(*tu6R z!@&v?^4hjH!+YUuXSbT~oMVQ>YXqiJ#H4rrn9KePlfDo=-o4etP5=6qb6uQQSV2Nw z+xBL7qdsZuS}pRpcg1;y1g3HwjkND}cKyv73=}=a1ZuiXRu^!mit`F9NXTp3-VASz z?N!~)4XU~^!lRJDl+i!R9(5wwf9Ay?(PMIpBJPN_HQYtwyuu0+^4hjH!@If38?LpY zk^7<8{Xha!X*Hwmmm}x-J1-m}dd#Zw$XRpaW7ihv6;_at*S5VGUSsejXWN`kZVS-^ z2~6F7Eyk{PYqEb=zIf5&e8E&_#QpYe8S%LUD@e#|+ujWC;r^4I5>`~3uax0n1qpd=+neFtu;zN;v&jS9An`d72~5dP&KIpj z(PLrGJb~ZM824mIhJzI(qycy{yf6Rzq(5JL(nkVQ@-zJVFNTXAIfPAA{Ldz^f`l{+ zZ-#d>_&E}oQszBE^pJZ1`^9;M6(r<-fH%X7yJ|>aO6`}86g_VLw{!QW=z$d^4x46FXx;@U`m>0fk>J%<(!i$ zNJuyIW_UU0Bmz^?ESpuCB6@JnNfjid8+tRmoO2R^Dd~wTZ&MG>IjMq#bVF~3mvc@c zFeN>)=ysZ9<(!i$NJuyIW_UU0Bmz^?6aStzP4wWLlPX9^H$3(43@_)LL|{sK;w!zT ziyoYFQUwX=hTaS>=bS`fN_wJQpQcPX=cEb}(ha>CUd}m*z?AgFt$AjO9-MPh1qtbf z-V872oJ3$sdSdKR>cKfDRgjQw=*{qQ&PfEOq*;DDbC&4AIVV++kZ$PB@N&*c1g4}} zmW-xJR?a!8f`oKKZ-$q1P9iWRJ+Vx~Iid&WoK!(Vx}i72%Q+_zn3A5Dt@K>cgL6)* zAR*n*o8jf0lL$;nPfYlYdT`E36(pn^dNaJ7a}t3mX_n{Kekpoz&Pf#{q#JrOyqt3q zfhlR0Is1GidT`E36(pn^dNaJ7a}t3m>50+x=ZPMib5aEf>4x46FXx;@U`l#og);L+ z56(HMf`oKKZ-$q1P9iWRJu&hn_28V7Do98-^k#TD=OhAC(i1nGTp)UI&Pf#{q#JrO zyqt3qfhlR0*Cs9$Jvis23KG%{y%}E4If=lO^u+Z|7Kt95b5aEf>4x46FXx;@U`l%8 zufdB&56(HMf`oKKZ-$q1P9iWRJ+bIZ>cKfDRgjQw=*{qQ&PfEOlqW6`J$UC_q7l*! zy%}EKIhVj)*NZLXiAzNf-Z__Qgmgo1hL?BFrEqW5Vz?`8ndreg=Q52@Zb&QVopTx7 zb-lz=p152PymKzs2<3*fa^5+YXWn(asLxVMc_Q`Tol_^28`8>o=UlE$`YN+rAqd_% zS7?NELvMzccg_`X*Y$EsdScBTD@6~^IjMq=tK5)Q&N(L$n3A6O#iUh&;GB~xNJyLX zW_UU0{P(f`Ge}A)v!r=W-Z@1D2@0@Eg z4U$sIIjINloI0W0kXFt+=Nd4`)s}M3Bth`bnWPcQ4XFq3oJnAit1ac6YX!kO=UR=B zZs^VM^3J(7(;z9OoHJSU;GHvBBa|D`%6aEZ27^qplylNNC-0mo8ll{fR?a(T3K-;C zOF1X?;GI(^lpE5@dFM<4gG{!RbJENx@0{y2Lb)OJ;GJ_F7-X`goO8V(c;{TN5y}l| z<-BvQ2ZKzplylNNC-0o88ll{fR?a(TDj4KCOF1XabMnr)K_iqK(#m<~+yDl--crs< z^PIeMZqx|nhO~0tIX8kqrdrB5sR!?zI-%TbJENx@0{B-Lb)OJ;GJ_D z7~~d9Ip=mk@XoniBa|D`%6aG94hFf^QqH+U5WI8l&lnzJLhgN$eosQ&OL(QopX;yC^w{)^Uk>k404yHoO7=r zc<0=!5y}l|<-Bw51%upeDd(gfymRV=vPoJw@0@$VAop0xInxBeJ7=0kDCeZ3;+-=M z4010xXFw3Va|Sd*IVbhtoihLixfh&MOltmroYT<=<(#x~-Z>pG$TVpZ4aL!2;d|c(6v~tcliNKU{&V7R5opYZ?C^w{|;+=CJ7^Dl% zxnB^xbMDs&<%ZOQch3D_kZ$I^wO>p+APC+$4`_sPLs~iSoZ_)E4RRkiXSyJG=M)tn zlylO`dFM9~a~=Taq#nF;>V$GmS~>5W2f-lI!8s2J zf_KhC8ljw%dhpJ92n;eEob#|Cc;`H<5z0Af<-Btq27^49>6`^4j|hTuPO9MJD(9q? zbIwTwrj&CY6$I~`M>Rq@C#{@!&ZFR*hrv0i2k)FZp`4Re&O7H(Fvug|oEd`Poijrt zq;q;Ryu5Q}WEv!;lye>vJ$UClrV+|HY300g9s`3s3eI_45WI69*9hgDv~u1#kAp#G zfODP@1n-9?qb2Cv)@L&ZAoVp1L3O@9)vARwJGw@px7YR)L^j55Ws`?WDfzua6kH?qG8V3fw zY5rEHxr-GfaOx%~XyVJ-#{RaKjngfie%nj}=Ao8Xx|a+xYya zp)OXCz!@5`@+1HF`pvnWX52{72u!KpXQdwao2*zt0%vIS-+e^_Q|kL<=x*gOUEA7vBit`lffBw{s74e{b8xKmt?QZpYYt zw~q1eFHgjZzw!Lfhn~ENw0|wH>~%)acrG# z^tP(apx51$hoMHPrtxNm=z#>L)J`hBwm(@n%!pYKXPyY}VqgV{=qbJJkA8@;cBj*; z=jMb(4nytj&3JFZ<@6K&b95<@`-OUVq+Qq;M5@y#v_O6{ht!_D}NBvj+GVaX! z+)!pKlv%;o!0dT% zs1FHDsU3Ry%uxJbC38Z(nr0huUSUNee(G!gIH!$uJeK~tuUz+=r{`?<{#D%#xQYSVFig?Pvh)gFN9eqx6;a!>hv}z9NJ~95$6>Wm{M1Ms7I@xdYc`l z%`~cr*AlEC(M^0u&gZwQSYvO{%8xZ0YJSqGsZrzBP#+SQQdh9(^X{)-4Kmw&n8kQk zoL5*uqFP)(`@!L0t6c@^@pGHu<}de(`tCd)>O%rk>Pj5B!Pc2W%$y~11tP_Hg%u=f z59nvlHuGAOdeF*a!V}DyBkY~4>@)__r-aI6(sUy?PuTk@E8Bv+i2x0 zb9FNp$Nu7U5$6>Wn9^c^4dJ_)-k_mQP!O$&MT}SasNeMJ8y$s{vTeW9_`LlG3$5y(7i3zfdr=1 zo!PVpaH3;z^Oswe>l5b{R*-1Zvadbx?kfN424upAp5`_m^l$B6dNS091g6xT1GJ0N zW6M+Hd8u}8KXG1R1&O)S`q<+>pX-kvPb*)W^{mmVQj}Z${!kwhn9_HnE)P#O9^Q<0 z4~p{&D@d4Id)v$QPxMdRPAebNb(mo+9OPE|Whi{lM4E*ueOImHUzLoZF9*2BXI(Pq z=!?GGs}aM*oba(5qx@B`(8}`{U+DYvXrdbs{~!2Rm{OlnX#Xnf$Io{AcMoxEb?5?< z#d|Fz)F%$wjWYlH>@z`}SNK?%QlD^WuaE!iBffnv^Al2LkD z@UbwZ@7Cr!u-eHpE5=*<^&x>Neb+gs z`@nhaM0>Z9c%EYgiR>Rn+qa_U`wy+9m59c!p>FtiN9nc+M$1?$^f_g zt?7koJi;FPPIl||Xu6uwc|(HR%6Ss_M|`G6 z0#o``vTS{ZxMdgk1INTVu!6+oNfCCxn1a@<47w^4>mTm6%~Hqr#>1gLBrv64?dx)P zkekutzOR^gO~eWkwHHL#7s{5kiv3Mjm)@E-#O*SvgR%A3p*|!qrC+r?RhV|mShsKG14gnquaLl$e)aWP?oMvl>>rH#;=IBN61(1u zw7=VCS?|}UD{&$D+qze}WH;A|^9l(}=~t0o8`;o(axK5PTl{}u1&I%LMcQMmX4a!v zx}rGckk36;w37L^=z#>L^sC_ycfIRg>F~Z8Db6dbAd$UYl>O*gTWjP>y88Ob_a)r) zk_}D2c%CDHDgCN`(;srV$E!CpABrAWL880SfgIa4i6 zDNm$(CV1yuuMx@(Y300guD39yJdy7G;GJ`wMkqI=mGjQI&cc-P#1ujB&Y7YS$_;7d zymO{lm{OidJ$UET3FU^=gLlpp3sce)3q&Rhf^$x)Afeol{<@rV5`ih@iE9PHJLg)R z$h1jXIq#fnEoG1?aHWCn@#38`Nh6dS(#m<~OtLVgJaLU6c;{TB5y}l|<-BvQu`s1P zk$UjXsT0x-$K9Zn^Uf*mn)}a8DWyDdwIF!sT&)qx4XFq3oU1KNDNkG_2;MnYX@qh^ zS~>5Wt1L_@Ph2So-Z@ulgmOb#Iq#e+Elep-Tp4q`mY300gF10YF%yNk!c;{TA5y~cM<-Bt)0fSrycXBKi1n-=SHA1-| zt(+7N(RZeklmvIlt5h<%YC!-Z{UtFr_?kt{`~loU0Ma4Qb`PbI!Fer96>( z@Xo0d$_;7dymQXAFr_?kjv#pFoTCxS4XFq3oO3KpDNmd&2;MnoYlLz`S~>5Wvn@<1 zPn;zP-Z^J!gmOb#Iq#gaEKDg+q^V!tIcI8wazk1<@0>F&Oes&K9=vnvgmOb#Iq#e^ zEler1oFNF_IcI2uvPtT}JExe!&UDUM;G8r~&O7IHjgU53s3EPKch2dV21zO9oYMrs zJLfcwP&P>`=bdvJ7~~AN>t(7Sc;}p|5y~cM<-BuF1%sRpckfIQ1n-Ag5*CP33)S1n-=aHA2}W{dIZgoD2pz748a~BnaL) zC+S3{bJEIr=bQuvIR%_^q9AzZoTw4XCMOGmcg~4mkdxsqy$OQgopXXlD4V2}^UgT| zoO2S~ZAd+M=hO*hleBW)IVXTYP6X#1F9_Z_$7_VLN$SBn=Xfy4iJ5nQdf#%xIVV-{ zag|Nd$~osG0#njCy>IK`oRca@D4V2}bIwTwrj&Dz5d`m?V>Cj!;W$C?&N&7Qa$M$J z#oo6k@y95N>=O{49F>tr~NI~$z?8f;>3#bi=bThQLfYhwj6~6cb50^KC7sjz7D3KAse**G$w@5}L=Vn6iNKU} zPVd_gIp?Gb64DL-+7d5%aL!2trlfOv-|EOYCsmM;HaYag5YdBkP9iWRozwevO3pc{ zf`qimfBb_*56(G>z?5`O?^`xG=cEb}(kA_L28te>a}t3m>73rTg>ueG6(poho_>9R z=)pNB5tx$B>3!=d=bThQLfT}=?Eaz$=bS`fN;;?a?X8@1QUwWVlePYg6FoTRBmz^? zIlXV8<(!i$NJyKEYtUEp;GB~POiAbTzD<{NPO2awZ8B<7Z_$HuP9iWRozwePV9q(I zf`qim8&_gQ56(G>z?5`O@7s+z=cEb}(k8Qh6eD_Y&PfEOq;q=T(#$z0RgjQ2IqQ6s z=)pNB5tx$B>3!QY=bThQLfYhJf28QaIVTaAlJ~=U-6~%nyNDi~a}t3md7abyR(Z}jse*)b&O>=SiyoYF5`igsozweve9k$kf`oL= zPse>OdT`E31g7M5PVZa(Ip?H`M*QcTUtZ}bdT`E3guKp4DS1Dv_iF{5b5aEf>6~wu z=pcG<&PfEO zz?8hs>HP`@=bThQLb~DR7N3e9oO2R^DS4gK`!x^FIjMq#bi;hdTZ73EA z%>}_ZCsmM;HaWNSCxYOdlL$;n=ghUGsUSG#qzV$!IX{SODG1IviNKV+&e`^PV?l7v zNfjidbB@|bE8n%Zu{q;|qHf+F)V;MtV9L!JXP^3er@wQ@MuHgsNgeZ4nX>M5aW4*5 zkdV%~|9{N{5mCFgStLs}_oMN{d`MubZk9Ovi&Z#=b6?c?z$_5f*Par&)?Z*%b8C&=*S`Bsl7IZ9W>&ZBeeIv?@AXeE zO@H04Nw1h?N|barzAS8F1qtjI6x7n6!<;-Lms_B8h(=&4qJNzI{D0^CO%AsbJ>D2u z&J2C)O}F-fEGAZvz`t8iP`wK!%uUU1InCb=(Fjc4zaD4z{PS0Tmf>`^UzrqU#`nJN z?46&*#0nDl{~r|eecNj0|BO^8s6>cHV5)G{e)jsmU$r{drf2QN_D#(PXO=j37iBTA zf&`w&!svH|nfdFtcY?}?XauIrR{iW5-Sb-C{YbAqWrNz9M?ZbX`E+F#6DvsI^HEHO zHL%UreUk#$Yldh9rdl-XXD3e!wi5n*6>VOiqj@fEaoYWLSxl@Tfv+n;LBHgxXJ*_t zeYvWJXauIFm+fcwXj8?y@O^u+4(nMv^JU~8zH>{nm{>sqUmu0nE;7xlk(G@dWkNIp zQ`W^ed&iwRR*yt_S3C8%rMYd@7-OwCudspyzRrtZ2TrePepG#~aZsFBNMPzt=Qw-C zhKAP7_vzhv$R69AzB$8~CeACYAc5~!K|vFmlrsy~J!@1e9-Xcrkriy12A} z`P#@*W`Px1OspV*pC5vPdaZb13=At~7I-g2BQW)Mt3LKcr@J+yB7N$6&v)Ngd@9uJ znUclC3KIA^NPKh4vt34xk1CsHwGfTK)aX&-x9AQ>Sz$})(`$u#8;vS|d~9A?p2frp z68L#e{0>%|1Y^YSwaroDZ-oS=ep}YdzO**hs`vqY3SafSjWK*q8?(y7EGAZvz|W=P zE~K(AeQT~;W*_l?js&KD-5zU47w=`=|0P27xH5j6Z{NfY<}h(yVFd~Nd>s_DFZBA} z3WMvJUx{-U2~2H29%DCrEyns|4O!9Ly~%+)~e8T%HZ)`;k-@zU8b*sSRHCaroAc6a3;Q?@_t}{}+e_#a(-1ifo+q>0qe+iCtI+YC32u$_p8fjM# zzUn^~PP?_wmo|2Lk56(|i}MOANZ|gZ_$IbJRovvATb0 zo!d74(9O5&7pI3fudspy?!$`jfSCBUJF@RR#}^!;5t!;cJ<1;QDAj-H-`(@Dl4ab( z-{o`NC0R_YAc6bI;{7A)HFsB~H{FOzAsT_HZyHD2yQ?ksS9+hW0$hFLb$9hQmEG6G z|2bBWzp%iidGE*Ad0$TOm)}ZPWe)C{>RkAuh1+Ox785H-;B^Y|8E%B> zBu_Hj72^K`2~5qo7;E>PH`d>CJY8M7wK2Ezq71(@(8~Y5@S|~lXRuqdN{B{aN}6SZnRFF-+>Bi2<^dJm^5Qv&6(pn^ z{_q+d73ZAvSeTM#S*{yh4d^2U`m?h7e(nVB+fahf`oL#Jkx3AoO2R^DQT9~{-7S5b5aEf>4wK+ zY2}=A5`igcmNQP#9b24pQUwX=hLvnOD$Y5Hz?3x0qjTu)HqJSzf`oL#ZaL_vIOik+ zQ_>SlG^e}tIOn7a64DKKr&ABkIf=lO^u#&EW(tCHPO2aw-LTpWS~=&OL|{sK;^5z@ z2j`qrK|;D=-e_7m=bS`fN_yh3^K@q>=bThQLb{=MpC#vIP;|-IOn7a64DLduTMwCIVTaAl4iMN z1Kq98IVV++kZu@ShK`DJP9iWR&2r=fy6c{EPO2aw-LTl-)Pr+QA}}RA@sHLtJ-|69 zRgjQwI4grz&N(L$n387M^bMMV;GB~xNJuxlJ(^a|IVTaAl4d#f0`=gWlPX9^H!RtR zR?aym5tx#m`13lNO5vQ7Do98-93D(Z#W^Ptn386>Vj@k~aL!2;B%~YqUQ!RvIf=lO zG|TJVX-bH5PO2aw-7xVAt(HuNzbogRb4li%XOvQ&NYiJ$b1u~g<%V=rymKyvJLr~J$`h9ff_Khk8ll{f zdhpJ<4DJM6Vku8tE(qQ^murM_Ls~iSoXg>k#-*0>M4D>kopXgoC^w{)^Uk>f?#x_f zDYIND2;MnYYJ_q_S~>5WE5RU_Tgo}92k)FZq1=#G&O7HyxKnmT=5@{nGgk?Mcg|HB zq1=#;ig(UcV2~><<(#Vp!8_+_jZkh#J$UC_4FcKmwPAE5|mGjP-1O~arQqH+n5WI7))d=N= zbX2@^t_6ck65o^SUFZCzPqH9*=So=UfK{nPMsDTrUXTIoE51 zazi>Q-Z|HUL9VlubEXP{cg|FeP;N*^#XDyz8030OIp+pJ@XonGBa|Cb58gR9fI+Ue zlyhzr1n-<1HA1-|t(u403~|oO6>Pc<0=t5z-9{ zHl(BCopV#BK~hRN=Vn3h&be75lpE4f@y@v!404mDoO6pHc<0=r5y}mz2k)F)z#unS z$~m_Rf_KiX8ll{fR?a);RxrrTmUPaxe^3w3IjMq=tK5)Q&N(L$m{QKUO%S|uZqo?m zhICZCb8Z8J+-fQ3+%5>-Ik#(sazi>Q-Z{5}L2k2@bM6oX@0>d{Lb)OJ;GJ^^800of zIp_iBW)Nm@DYoO{6_cU#Ii(*(ggXPQPRo1~TV&MAKLCDS?gfOAq0-Z^zbIVY{0 zcg{30$i3j40YUK28PEvjoOD#Ya|Xa5)4(|$LGaG$XoPZ3>cKmw0|uFv>6~-AyMo}H zlPdVQ$~kG}oO2R^Ddn8|1i?G!K8;Y$Nh{}_a~~L_1J1c$5WI8l*9hsH-uJ!o&bdF+ zIVq)_lX~#ZsT0aMY300g?gxY12hMpw5WI69&^2U`jft`|r1ZbIwT>B$RW~QE|>m1g4a89uWlZoJTZ5I;Z!2 z;k8N<; zJPrnV44m_XAb96Ip%KbCsR!?zC%_<&fpeY|1n-cJ zoRe10JLgF-$P?h4rv$+}=P8X)&PhkbJLf4d$dlllrvvzVP`HT0pnk5TdSlTH(VxQP`c z2Wj_q;w(DA?d8&vyL^f>(W6>-n@I%oC!;U-p)kUOc~ z#E8>6+4%hJVNTl*qcj3jo&S!rHwCgyozPQ;d>~W`X6Dvr_cQtQfq<@oh#+BmB!}hd~(g;j_ zpA=`mnDL>tw(94i$N6`&o9&05@LjdTO{^dx-_^W{k!eFt8LeAy@NG7tGy+riYQ@>@ zt~RjVxkA8-rnlotefbO zd+2#%)6Ff0+a%n?3KDWB)teYO8n@7>(rc;_6c?otnA#oI$1eL_7whY9x{DrNo^3R? zcfDZz-CI1*p@M|mN%ba1p0yZZ_)D!Z0*T^z4g{v&`l7epaC=W{c=Mj3M?$Ab#(<^w zjg0Q$CRUJ;JE`8pNcsAWjHcsv86S6v(g;jFTF}cbJS@uUbvr`z80geDK8t+Cyzo)D zi4`Q|PO3LC5_>zh@l)zy<(|LyDM!dl@bR*;Z8 zsouoMw=-w?n*4U!Xe`bvBrw(LQjGnvSVNt*F`~!!Plts4GCQZaUG%^T5^^Win;6NO z5WVN&jdMoz22mP;sf|G~cD9M#EH`^E(c_A}D)86K>}G?8;U-p)kUOc~#EAdS{6NXH zQ$}P|lty4`o-f)iSL`!u*}~qU$E7kgoZx3--X}8L#0nB}C)Jx6Dc3l^lfUahW4}1B zkigW=SyA>o&stk~-{>oPoIgL>XX@^yeZXiXUQ4iogxpE>CPx0qSnM48c#2U^oL5L-YI#Vc{j5L@Yj~ak zqQ|+Dx16^t%roM|Ya&*VkUOc~#K_rgTb;bGd}cJN8>JDL>U%%J?(=DgRsX<1(W6S* zOXqm0_Qr?x!cD9oA$L-}iIH*@4?4MP7dGm4jnW8A?foIbZa1c&RindT(WB_KZ0;u; zpZQvJ4L7lZgxpE>CPp?EJmsWBFZI45 zk9ci|3KDWB)teaks?a%SO_Q*&qkY6{I}n(Znry8fj?V> zn^-|Y?xcDXBj?MUb?*P#I#61?e;|RWebXZC8_mA+=gC2{88cE}bEnP8>x>bfeXxRr z+)4E&MmAJC=48wJIB-LpS4d#$;G0qQPmd4##~(}-J%&~N%X#-sw38}6!(jypxs&Qm zjLaU9=FHjbb6zo{Gy+roHbvQa&TsLL@r@8Yk~jS1B==wHED)bXv4Vu$N%ba1zRtGR z*}6W#ncE>sBQSNfhj_i(vci8d*GSQ$&xiw#`{bY#)iK<}3KD83m5yq_-&38Uvllpd zM?`4^re3cQV|RVaq6eBIoeZ>rR$|;U-p)P9XhIse_alYe)WV?MSN~Y0#o((_OeGzpX#sW z8zYFkBN782?9JguiSr68NT|Da=%_BG4~W+;{>tgc_-t*ju%eSu<%TSqzV#hCzX2C zZ(Gw?(B6t9W+SeTM#c{^&nAYPRE%GmhpEoWwj@JxfG3KG%{y@?UdIf=lOG|QuP zCWs!Kb5aEf>4x6K20>B19556(HMf`oKKZ(@XVP9iWR&9de1)Pr+QsvsfV z(3=?HoRbJlNwb`hF-i2`oRca@NH_E*MmXmr0#ni~J5QM`dT`E36(pn^dJ`j@a}t3m zX_iwOP7ysg=cEb}(ha?d5zaY@z?3x0uM15TJvis23KG%{y@?UdIf=lOG|K{ysR!qr zR6#GiM7~!0g2uw+{tdTTb^x&M6Do98-^d?3) z=OhAC(i5Y5%@92}=cEb}(ha?d5zaY@z?3x0edTFxf^$x)AR*n*n;7AolL$;nv#j-m zdT`E36(pn^dJ`j@a}t3m>4`;8(S!o$oK!(Vx}i5Q!Z{}qn385$V*PBoRca@NH_E* zMmXmr0#ni~$NH9t9-MPh1qtbf-oyy!oJ3$snI%mR@XonZBa|D`QSr{X6z=g^Vkxtv z9=vnvgmOdb!8_+txW{LSB|Y)z&3vLHC; zqzXQ+azi>Q&N+#|lyc4#LGaF*q7ljs>8N<;OaX&Twv=oh{SAsrR(oa?|K zQ!M42)Pr|UoltH_1n->dz#!LI$~kF5fp^aJ8ll{fdhpJ<9t?7wrJOTW5WI7yYJ_q_ zIx5~dQ^6qDThckBdTkH{=bTi*$5n1fN5wfO5tvfWNfQdZb8gfK<%V=rymM{@gWO;# z=cFFIbLxb0Ln3(R+z1A_(NfMy6AHX@Zqf+lhSY<1&P`yD8!hFWG@-yd=VpyiZb(PP zJLhIF$W4}VPMT2QopXyuC^w{|;+=B~802P4IVVjh@XonaBa|D`QSr{X6%2BVrJR$d z2YBb)rV+{w>8N<;+y(}@)soKn=Nan3IVV-{aitr26C<2+5`ih@oHU`pJLh(dP;N*^ z#XIMAFvx9|a!#61;GJ`aMkqI=qvD-&2N>jbOF1V^DDcj?QzMic(oylwxf2X>hb5hJ zer1{-;GB~x__)dq>8Lp8Bmz^)IjINloI0W0kO z8aSsT2;MmzjZkh#N5wm*0|ptelyka*;GNUe2xXIWRJ?P#V33ZboO7Qbc<0=w5z;xm zi4op8_hlL+rId5-7d?3A+^-SJIq9f)=iCp@xzAG0Nj-Sy)CuLBMDWhJ9}IFoIOhRD z@XmQaBb0Me58gQsfI;pD=S&v_@0{rxq1=#;ig(U*FvtVooCgKLJLf@-P|it5#XILg zFv#>w=PXnBkRUkcqzXQ+a!xub&N+#|lyuHkzf%v+IjMq#bWU$#gmX?JFeROHW(G|t zaL!2;B%~X96C<2+5`ih{oSml}5j{BPqzV$!CcTLf&N+#|lyXj*P~e^Os75H~q@&`U z^C%eP5pd27LGaF*p%KbC>8N<;%mC*+3eHJAc<0m!>73rg2=AO3nFdKI<(xF3K+d`D z|J+-9?#wZbP|it5#XILQFvtvW&f|jMo%6UxC^w{|;+^w2804``=Zx+}6AGMjQUxDZ z*(4nm=bS`fN;&6ALGaFbQX`ae(oylwc@muS1UM)4;GI(^lyefnJLgF-$dlllrv$+} z=P8X)&PhFZ=R5@lc@muSv>kb0f`r^j^(ID2cL@m;tsLaEKa!vkm^wEl&Th2xf&YB$r=myyyVHD~I@NRrw2U{g zf`r^j^(ID!1inlwR5qKFV_$+sV9GfcXAkT8npLBGThU{0z2m;nXJwtKZQ@O=AR*t? zyor%*c^B3xKRv5+_ELgIV5;BaID693yw=9k?L?2K4}*+1s^)Pz4vaUkf`oim^Cm|2 zrCbgxckgN7Y|ccDz|^t(ady6^C9P&{I*1;9zA9+EoBCZ~@rHO4D@e$9HE&|%$9`eH zMW0;{lO08m+RMuuFRQE%Y+n{{Vg(8LuI5dQY#2Sx_i^~O zK;7RHGy+paM#R}|qH0^UVm}u>ieIg1j2k~RFgY&X#0nB}C)Jx6shhmPmv7SXz?|a= z8iA>MdE@MPjp|#wN_Q4LMjSAW+KsaZHhdCqVnrjgiIHiC&iKk@OAWl~CTN7*Z>71C zg5$(&*45@#4KX_r6!iIpy2in&P4}E=6>nk%3Hh$(O^nRGbIW%&eRSaD*#wQiRHYyK z*maZIT8}1m6Fo}x@EP5bbNcf3i8rx=gxpE>CPu#g`GIdn^@@SrL5UiHsTCFb*v)%( zvbq%NA$r9AUd4!-I?4BNWxRnk%3Hh$(O^h_W^p9`p%F4T!y-d&uOr4qA%dU~$)A}nUQuO$F zM?T|5zbC#tL*h-WAR%{By@`?6F1>2Z3tk(x{7iyIV5-vISbJyH2y6f4DAA*A?N^K< z-QO~He=7bzpn`tSWgi4i^g4Nm#m#FsU$ zwTL&df`r^j^(IEj=ls=Ib=wHv>=OwZfvGcZ#n`XE+Qn*GznADStkP89^&RgSgCoV? z3Mxp*om6jPBwN3uz8`*B?)%`G_*(&iDPNmtyWolT!l8SM9uphB?mPCpwvjeJ-oy$L zawpZB7%@Iw;cL2RudhS#M2*1ITjIX(Q}$U0qMUM}2cM076p|&xreY}YkB;-!2H!<>H;iIr| zd9oS@#OoCjn5x+<(tcE{x|O>z&3}~Yl^R&&Rx$QBk2kS`gxpE>CPq$N{l3n#R@sbq zk0xjYrcM+UGbVS-Sm$336g~2;zZDqxRxx9K*LV{vNXVU3Z(^k8lu>E!&p}3;-x4$e zQ*&}f+W(tb(AxLaVA12o(p=8X?Em<3%!oI!f`r^j^(ICZ)GZL07kAHByJ(_DV5&o@ zNW1;Y99C?up`wS;x1>{M!9ia$@m`A+B;-!2H!(8*T(`hGpMLKvoG(!$FqNxar2Wm7 z=l*N+;zf_#g{nHe>&^8&ofvOo1qr#6>P?Ki`p<$uA@_o>$hQd^fvIELBJCwPe)KP@ zpCEcv8C%D>XV&w**GYV4fC>_FC)Jx6`R3HVK-jkdU+n$_jlk4^8say21|IVlcxAZg zG4G?g&L<_NhYb_w6;_atJE`8p$nB@!2DS{E@0))xK_f7A@Na3rr~6&R61Qf<|Df{IFTA=alcoQo~$h&vE ziIJbvvN+=>mP-5LMuJ9QYU-6(JL{mC{^p6JMUT+F|8x3h$>x07J>J9$5^^Win;3bs z(5uduxn2qUo}Qo)n98%gm!0xrmOr7x7|~-)Ur zyTEmE?jnJyTa$X*m1@oRU;bdMAbu^fF;HPxWv6(%coQo~sGU?I-YR}Ike)m%F#o#* zjlk45E&JHpoR$7vIcPQ`U+q?bJ->b6G)s&(v4Vu!Nu?gYFWwq>nQKF!Ux7r8z?AgF zCr7Er*7C7w=MU6&cI=MNG)Sr-q3+%xBDwDLK(7sl19K`SY6PaFSyr7eUJ%Zj?qQ+t zg*oLG$7dQORgjQw=uM1p&PfEOq*=bveuC)1IVV++kZ$NrjBw6L1g4}}M%9`qdT`E3 z6(pn^dJ`j@a}t3mX_oWyO%gpg=cEb}(ha?d5zaY@z?3x0OSh;8=bThQLb{kOFcN} zqzV$!4ZVpG&N+#|lr+ok$7YKjoO4nI3F(I3#0ck{L|{sKV$zB^q6g=kR6#cKfDRgjQw=uM1p&PfEOq$iF(Lh~P-b5aEf>4x6K2z?5=M>cKmw zPAE4df_KhUV34aauX9$Nuv!qjbFS71<%UG?&bb;4ai*~Ig`L3lPu+&YX!kO=URV$GbB6#Oq3kJE?QqGwy2;Mo9HA1?fH!;FHXL6=NQc5{zis->RXNpEBHzb00&J-}n z6iYg1v0Cc{!8s>Y@NtzJ62Unq5tvfWNmCHKbFSBkOy{H?ymPJxgIovBNj-Sy)CuK= zMDWhJ9t?85rJOTW5WI7yYJ_q_B6#Oa1%phrlyhzn1n-<1G(x(eH!;FH=Y~v!q?B~d z*Bj6j1m~Po!N*l@NCfAcL|{reCrv@{&bdh=lp9hH-Z?jcL2k5^b5al9Idww0ArZWD zZUTecWJ%}jaqQno3+6f}Rq%0@8xp}eClQ!Z&PkINymM~R2<3)E@Xomf404O5oRcOk zc<0=z5y}mT;GJ_T801ziIOF1V^TJX-f zQzMic62Uv?PB6%wmU2#-g5aHVmqti8^d?4l=iHTPkd#u+NmCHKbMDp%<%V=rymRgb zgWP2)=cFFIbLxb0Ln3(R+zkdPWS~J(hCLy@KGK zbFW4yHzb00&b?redoAUhGzGysXPQPRn835-D zfO8VTJEu-4=Olu6&Hxx>Ak#VDNTEp!&N-=qkE`5}2+lc)z?5=MR}j2&x*DNuk_g^8 zT`)-3QqD<}7QA!r(+K69MDWhJ4-9f2IOl#r@XonkBa|Bw!8_-EFv$JjoHPZ&JLdt7 zP&P?Dc;^(qw2}G!dHXHpoYaGNPMuKBNd)hl2f!c?fODn`f_KhzjZn@>1n->bV36tH zoCgKLJLf@-P|iuj|6}W{!=t#mIJ{82KyfV%THKvvM;HnecefBoc9Rf6f~2^+l;U23 z1b0bxE(EvWuBAYL;?h!D;Jc^8Fu(gf_rE;PIq#m?&CZ#9XXeb6JLf?#$b;aVhd3d> z&Ur{6Z0EElM&!vg@3^kDnF@$0mu8JLhRI$kV#xoM$*8cg`~c;W#G|vHZEX7aA^63V+j8 z&B^co?l63pmc3^SebB>5BeUO5t@Qd9dQ$%=qn&Y78-J%ICye#Kn%!smD`!9SQ89vq zefN$vF)}gBKC@Ms!pg1`uRvhdzBf_EPa|$<4ac` zVr0rcC(J?{H@nXq;LnbR*TSr%4$(%5DX+B;0d0AWGw&vuTV~`+ywxK{#RwAinN(|H zp54YOuCz4Kq~c#TzsCzx9GAm0RD10zV-M>T6=#QPxG zY;vou@9j~qKw#F1z0rn$nwoqJ!#RwAiQO%kd`F-ILGxw2) zzDF;-0)bggcSRe&FYwa`mgvN5^tcgWe*Zd+Ic`UciV-C2qnb4_(jz3nyzr`$IU#ST zKwwtxpQDX3SIg>W7I)?~CVXsTjw)T&+`cPD#RwAiQO%kd@nl=epHJP_JpSA(5SX>F zNwl%@aZSBPKv!O)^u;RXj}=>)6~@P?7(v25lWI+j)ZIVBtgg;6%kcjP5}4KUUX*dd zF!Z~xXvU;Up-kqk3eo2CpcoY+NZ3cU-TzID=&>Gi;j9hjGyc6o0<(^EjWQ;5ZmM_L z*n`*b&Pnw3x;x5@=oX`51PS}@9cyA_|Hm@sffd(m$!lEH z8vC;5m|zYb7^7kY3HwZ{H8FDH=~dsir;eKEA9@7>v;N2yX-u!yMW37!#B2C=l}gJx0X{ z682Heni!e0JlUP{^>MT6DX&0aR&z7lNL(4D|FOoyYxsqvQQY74H?M@ms2D-QK9g!q zjPxH=URj;qG?(u23It}AeimkwI~u6J?iI>wEEr#2x%hKOvtrj66(dO4XHu<+k+4sp z%J0+Gn{1y~ATaBF$uMJ&*;OByJDk@zaH^@YU}J5wNpy^g5hU!Rnl&-f^6fOGL8rN9 zz2Ce7fmv7jg&H|dx7RzY>BDPGywFQ2wjr;Xyevk=2om<0RBK|SM6Q)e`*%ale=>#& z1ZHKsBT|J51ZE{R z@){FTH_+oZM)4X)dW}`Kv>NN%G%rTQ2om<0RBK{n$>YOHjaq;EQqFk=0<)f8=5rH8 z1M~{r`|=ve!zU>_Y7I@C6&|Bv1PS|0sx>i^q?}f={nFg`O#)x92wn@bGLG>Wh4WO> zYZmO!Ys@P?Ny!+S&Yj#PM#Tsc_L)>`VkF1hGm3BP!hr2QzSb7J7G^zbMV?VKFL3kg(6BS`#DwS57ENd)K+^UGoYAW_9?%V~ks#M}HhLkk^RI zJy^NpdE~A;H%7$>684!?YhuJ*BuS~9A*b^0t5AW!tjc^gBc(wm{g)eqc#VO7^;8y_ zd6kU`F)Buou+OAg6C*haZBs^cZK*uT6e^q-cvi3Ui`a@1ZItS=`}iqC2C3Ihw~cUm(Fk(%RNqM$onovkg(6BS`#A$&ws5f z?{rYPdEP4!n3Z;ZsF82{2CdZ3BY2Iuxn2hJemg;FH7!QP2olbj)RCO%G;X20RO*w; z;E!H`z^rCX!i=xiuh7~yC!#>j?-Ij1Pf(uuVpNPE;oQAL#MpbK1K!s>t(?mhDiD}8 zH%qv2_veLL@f@Q#aU;O%Gf#|F=C6-YF@l71_YM&=K92UCn0-pAe8(#gnAP@rxbbY- zJT2$}5$?>_d?}&BlwN~kRE!{DpGmbQMrJhn+MIsopi+h(qmaO?uQv2C)UOt3vkr{r zH5z@)Z{FP%qO9V-uP}myb0&2RC*lS*H80-Yp`7E#S|l*5(clQ9*4w4plchu~zMzV_BA7o@6*O>$~F6?V3zHP87hzCH8L0IW3D)vPFcKOz%1JnhcB7HYsj3FB1qV7XibdBoRbL5vdwa1>_lEe=A0Bk z!gfPzVnpVgL|~R}mQR~c;x%N>Nf9J$H?$^3WX?$hX4z($m}4@pA#+ZOAYr?qH8CP{ zP9iYNHp@rJR72*R6hXpvLu+D0=A1-emhFj^mQ3L_WX?$uBy2adCPrk=Nd#uuo)|rN zDz71PPKqF5yP-8PB6Ch6Fv~W}3hk%y8Zzgk2okm%S`#BO=OhBNY_ptJembuqb54pN zVY{IS+-dwWSY%u$efcRNZ4*@O^nE#lL*YR&9dADsv&buiXdUT zp*1lgb50^K%QnkA#+ZOAYr?q zH8CP{P9iYNHp@}f7V;W0=cEV{wi{X#BQobC0<&ySyqk&UKV;5H5hQFkv?fMm&PfDj z*`B!UA=QvMCq)LK;O^nE#lL*Xm%yK2KA$QJ|0^ztJ5pw5T z3HSJ{{BoVsctM2RIYq*8!#GaJol~4Eah#I~xpT&WbN>Ith}=2FEXO%l@fvdHTm{bg z{}Ur}=M=LX=cH*4xpS@t=luVP5xH}US&nnA;WgyWxdxnb4Y(l@a_1DY9Oqoi3AuBw z6<*hI!~Y1$bb7$}OeR9+oD{*=b=)wX6Ef!{0<#?FBtq_-@d9DHp*1lg zcTRDx#Bt7byoTI4*L`tLdR@m2X*NUdoMM*aoJ7c-lh1#Ae&Sx2?CZe|iI6*|nB_R< z22RMGbA#}@jvEpocg_u9kQ;QzIf;-vr${(%xRDcb=M?8k9OooL?wlLJIsboRMDCno zmgAh8cn!I8Zu;V!G(FJLljkG|eG% zPKw~`+HPn~jL4jm2+VSvlcqW3&bd_}95*CF?wnh}Ah+s{a}ptUPLXijkmf(+&MD57 z*v@%>DiJd0qzJyQ@YdbFV-+Zb*dOIr)kqFjwL@ClPYz6bZ)-Y5qg*oZ?)G_5oclN- zcTRDx#CFc7ONo#*r7<{r&|fy zs-aDFmKWZ`&%e!<|`^jkg$(x*2G9?Qe8GOBtVI4<0lZ9 zl^hjqq})iSKhM#I*J#nQG;4fgue;eVii!~=?4z1BG4kqh1GY$O=Wfy7ParVs(X?n| zNtK*>pMT6=d~zWY7>1Ol@rO^!CIxAD`n z=U zbz#=8Zy(eDsG?#73HzvKO^kf_P@QdPyxPnb;U^H7wVSUiQ#7fD{VGI7@DS&m7a$ParU>=DsN7#TH#3n6(S9@#C#jY;T!cX4!>` ziV-C2qnb4_;%<_aZOER56>aM$5STSxi87vrHP&AoqdAt#L08S+9)876&sJ27AYmWX ztcj72ogSKhtHoHYc76hZS?A*T%-7h~`j(jPyhhWE@uuOQi~YDnQ89vqeN?k1MoNTk zGHZWVjfMB{69~*Y{2{_flh9Ew%-4h9YdbB8GN)ejW7l^mDn^j7&!k!tBg@hUo4qfo z?3V$40)bhz8%G!$GIrBX4(!QmYz|0k9_&++B^**zj38kj)vSq;K39``O;6TmeWU#Z z0<+Rg>SHLQdgyzy_2M-S&K;0g(pQGn=I;X|NZ3a;Yhom8yRz;%SsJnf-TedtvwZu) zjrD85nr49Bw|6U=1S;gOl8Mg{_ z*C&h!;WaMh>#7*OBJ2SFUSR|Y`>1A3jC^u0QeKU&#d`1>NMKgU+F{0n8lCm8D|>m3 z6Jvf=vS!c2R`LAlEfmu^0hZ;?Wwbh><2<0`Z?K!KI zIG2v)+oGr#LBc+hYE6vf2~Dd$3(U>_i1HH%%o_39Ydlq(>D_9E^BQqY-YemC9-3PZ zC@Myfu+OAg6C+JM->Ttd-<$9H`w0YQ)$ZdpQaAfS*N*q$HU4pbquzYD$85>_E=G{B z&!k!tBhfc2s(0=%)1UWtBrt3CM~~6#d>#G3kVsx*)X+le@L6NbJ3elmgS=*GejLOI684!?Yhq+_uKMcK z3om^q`LPxW%<>HL7!%(Y)n`5K%WGVYFQZ;w_>C`uAI~v@gncH}niwh5x}lnJezSml zUHk+Bvsy%Zj9MG>=)*_%=QWldEUmuiIoG{%y`o|S3HwZ{H8Il1?+3M`Ush#HxSv2^ zRy3b)>2M^IUiRGpUgJ${arNz=HI#x$ii!~=>@%s>#KTxPFvrCEyB zx$Tv#hcQF56A%R)1vxFMC7w^;B|N0ZJ5mYWo znXo3ax@4}RVgw2MOsX|8()q`eN|UbT)Owx#1Ol^qYzj3}8(Xyp`Y>LjP4k&bg(U^l z(Q6bHBS<)BQb%wi?~$2`dv+Z)#p5Rsm{qzGb~ z!akE~O^j5}|GjeczM=N~$xk3KDhy z6P>@k5%6P`hU$?JKY_rk9XG;_^;wo^75b0l#OrI-e2oT{QLn95RE!|uoJpk`_vZfQ zE7P^Uy1S#FKw#FfReg*W{g-N8TM|*AXmRu5qY`Rk{y)bE63&^_(VUprd5~FRw4#Rd z?-df5wJI#a__ku4wyQi5SB_3JpM`#_D*U^P5hUz0sn*2Eo%p@xq{fxi^?d(80<%sP zjWj0wwo#k=iE31wl3+eOn^jHV`yfV;u+OAg6C?N6y)^F~@>8ev_7e!qvOV#;YO7R{t8Bm4vcvuv}>I&3T_8hF#O5+Uc5>L-*h z21yYlY&WzfMr6)O1ZLT0`K&o@mCQLQf`sjc*2IX+If=k5+bn-9H=fs!IVVMsu-(v_ z7?C+A5twD0<)Dlccnz6zQUnRx4Xue0nR60>S+-g3x=A%;&Pfp@Y&WzfMr6)O1ZLT0 zId0iRUPI=b6hXpvLu+D0=A1-emTi_>yG-IWWX?$uBy2adCPrk=Nd#uuX8BLq$-IWl zIVpmK?S|IGh|D>Oz%1J=1JY07HDu075hQFkv?fMm&PfDj*=G6f9@UUJCq@y(Hx7+IVpmK?S|IGh|D>Oz%1J=$IY9?Ysj3FB1qV7XibdB zoRbL5vd!|(K$>HbIVVMsu-(v_7?C+A5twD0<)(tOc@3F!QUnRx4Xue0nR60>S+*zo z-KQEd=cEV{wi{X#BQobC0<&yS?CJZ3*N{0UMUb%F(3%*LIVTaAWqV@qLYiZdIVVMs zu-(v_7?C+A5twD0<&OjA@)|PdqzDqW8(I@1GUp@$vuv~6r_+py%sDB7gzbjb#E8r} ziNGw|EOY-$HDu075hQFkv?fMm&PfDj*=E@^iRM^j&Pfp@Y&WzfMr6)O1ZLT0xnbS{ zUPI=b6hXpvLu+D0=A1-emhFjQF*L^_b54pNVY{IO zz%0isX{+SUxk4ZuH(bdHxpS@ngIxLLI%n2lzj8wEoWBZ$9 zO75KN1;TMdsv&pI^Eg_6(LIUo2FA#+ZO;OjbWxRDbw=OhBN9OooL?wlJ1!g0e* zoRB-`Mli@ty5pQwL++d+;ke;uPRN~eBN*gn-FD7;`)I3V&Pfq`UE2+pSvB;fsi$FMTNHyfnxdjYztL``_5pw4gCsAxS zv?fO6&bjrAK~k3EoK!>ZoFd`4;dV~QopUP~oHmE1YE3xwl_G|eG*&h223J9Wo7X{+SUxkDfvH>4VJ=iC7Xxl?zXlL)zUijydg z8`8vx+&OoGLGIEW=cF2P=M)Ls4Xue0xpVIPVvv;OI45nD+&Om%gzbjb#E9HEcYQHP z%5t1@H?JXg&fNmxxFJn*$enXH8022vaZZ{_kvr!efpFZAYRH{)4;bWL-EmGLiO_LhhUi0^ztJO^nE$GXV@TQFok^YRH{aBy5|sCPw7WnefFR zDa&zA+A6toCJKb(oHWfLcg{pGNE4is=2+y;DNdp|&Pg@o&glc^G{HHEkUOV1iQ+gX zMeubU=RCp*nR60>S&nnkR>__7us}G@Nj2ooc^I7Y z2skGZa_1B$Q5@$y$_cr19sz?q3eHJ{+&RTb6vsJ_aYF8#N5MIdfpby~xpRtyGVZT)aQ3D9~$7V*83+vLjtqDY7=JsTRKjAotcOu2Zk$sZ=_c@v}?{Vg2eUo z;YOQ0^R!X7FL2_XK3KVs@rZIcHb@{aD}7!5S#?~hZT*&rB1eiS>$^O5Kg|`(FoML~ zf5MEv7the*6NzY~-E(IisrWh+9wrc&m9boy5gIU0yZ-liPNY|z$pf1~TxUfKAR$S&Vqfzc@+JsyP38W_Kl+Whi^h z#0U~?9)uZ9;zw)io6vXnNWaPEcNHU8^U|>bfmsjJh8dMoCTlk)(l_xyr*Y=_@iA=b zgCTB=Ad&7N|0Zr5qwOzwjT1SO;>@hG!q~EQfeI3s^(I4@vF!IL+RI+F4_4SW+x%{G zCpK@-4Fw}eR9hToxFRQLxffE6)o)grx6?IY*Gi^Vk-)67rNWF{%cp7|gNg8uUZl)h z-atKf`)jrQ+fbuat94pLX|WqPc1K$^|K=8@Zu=hUp6l@nMzBlZzRCZCTW%^X5B5~6 z{ZU3BFl*kfP$QRXyY{pKeY$_WxvVU28LYk>@W6)=Byiv4XS|YMDf8}kRI`N#n@C{R z@7qF+?`v+;Dqf>+Nufs#ia&U8o5hQSL=AHV=LM7*rO-jtzAc4TFag#!g{sZE*aXo0S z^>0~Gxp;G%yIIXxh7lxiZ{}`r^_;ui%(1>9d4~xEW{nC9H74KtRom#M8fjO&OZ<7) zIBk! zAc1?c%QY-;j(K`QE%yDc!UBO=ZZ*^>GIoJBA_x7?&*j-*j(FaQ6)SSg#0V0&Z@OIS zpv&g=+1*)-0HLPxNo{#nb-?6?a5B8 zQI|jk3Czk+C)7v@ov$5QL;dQq_mcV3!v?Hni>C@kkofyXsL}49nOgB5Xg}}Y>$>^) zNi~+MP&O3_%xW|{)Oav+j&`{i5v5w5Q}*Vos&-$WTb))T)aYJdx0cR#70&fsg>y@^ zRjv*1l-C!UsogKfE6!P`D*}Q0rpxv2O%8Qw&8BKXN*RH`tl)g1Mz@klT3mPfblV-u zrmid1QtdVPfe#}{;J(S9y%YVd>Z@N@JsS~hB7s?(a)uhc2JF`!W}^lk6^?KvgKfJ=&Bx8@8Z zNZ{V=a<#3$N15`~Ol3>AAc4TFT(`Z()NOk-W#&0vqeY6Qy2y**tl!w3?%H@jR{ z%>(Y9Yd8Ax-y13rn6+Y;*Jylqn-&~FHO7~Y^W|>2#_aWb6vGG-xHr38g@@NOlhWQc zZx#y_2+S%x+iUEO+o)wJOP|&9Nz2TmJHKPC3fE#7K?3(?mupwAGv?mArP=eY@yPc72=%%BS_%B$%(NAS&p6td)X~eK?1XO4C3!&LA*BXDjhkWyw1Qr zj<3k_C;qEo1c^+Qc;6kgM63Lgj_0bDhUMFrn|ZPoR*}H0i4VNS;RSKpog+jn(HAKb z*j?r2+4gG6daqHX$wBR6@2mRotzP5R!2{YL?^QUTOr2re(j!X3vrKB+e#)2iSe8A! zA`sXy#53E@Iqxe%$Fa|zhsMx5f6%3nI`pp^>YR)53P$jCasTJfDLPSAy;HKXT9bDl zBrvP~6tB_Y?0K#C82S%(?N&uy(Yd;+4|?Fk2okve^L2Qq`>X3BimRpj1e-`;*1Bx`zX zqP^BE^j2y0Y=iP%ZO$-)1a=I*f5e?pUi9m%e4_;k1ZI_O=rzLkoYX$-ILmAF@7Guv zUwuwMoohoFMv%ac!H*xO*SM#*IPY^M4HXE?YL?$?th;HYP80-2T&`vg|&&qq|ocXTVH>_cvS_~sd;Qr4& z>c_8G&)2!x{rJKHfmxxKJjVOm`?Pl<)Zr$#$j?TsslpZ(I%Z-73Ecl(uF5+qvaR(i zve0j11p>1&ALXk-^RjGj2DBI$p zwt5wHpJ%S-YSBwM)rv6>d>BCjdyLC9==-*6{b{Mxm!ZKX5}0)(r`LFUJwjbEA=K?1vy%eAO_4K>yKJ<5 z$c|EK{ejH{mpeZW|^lFq8LVyz^=qC_0TGF zbgHf9)?9%Cfmw$<9wYFV>sq$H^jY=p>|%kP|1@9ZuEj8d1a>92vYvM7U&AzJnPoge5##fy+iObC<`yDeef&}&$-gjF!W_pXP?1^8jKwwsUfXB!c zc0~*Qfxf$owlrhMYUg3)Q--)Pf&_LYzSpj7!(P5f&1QEFRFJ@|Plm_1^74u{yfE#9 z9UIqS*>^uSdoM_>Vgw27N-kHvy%pG+UE9pG-xe1L%YK?3(?eop4QM~X6JynB4(Ac4TFh5bB6 z{KNO!om5n#^uZsL=24A&V{Z&$7(oK}W`6b~u8jMR>%DLCjiCa8S&iy=j2cbeX&G+Q zbpy|%FtcHq;buZ|6vGG-xHt3jaQzOL%X`i=N0ki}2+Z1&&SR{4^;X-wklshGOF7x7 zBZthPezh1zkifl}|4y7*fnBPz&wRGCus~o|?86YF)2uhzwQbaW%B3`62QH+TzZW}Z zVgw1?H~Dkb&h}uH+~-WSc&tER)}u=y#+XB|wM>!p-OV?sHw!;?$DDb8h#MnF;NI+V zHNPLiX1CsBw(A(EAc0xeZ-p3{i@wncH=^HHe=lv!`ix&~#?4QyVgw1?n_aF8LH_J< z;c&CNUvYuJtmB_Tj9e?;YGW@__nEOFEt@twhdHKBdle%{?Bi>I-fMPC8$X8j^Yg{d zn$P}d<15<8D-f7%HSmrtj39x(qWIaU&riQd;ZMIn0<*AJ z@^ku?TB*Mmd#Zfm=fW|91olUM9K6v_-KLCEroSztICsij(6K+Zo$WF5|CveuCKG*k zPcG}P9vVDZnai(|VFU^6eEfKxx4)V$vZ?Z#UnN5Vvr0|n{&6Rh-s(SBYtXif`mV|k z%G;JNO^hIcy^^0pp4v#=-s7%&|GWGQ3CyY%;W18(&7?mnOTFZe2D#PVYeu`vwrtKY zf&}(TzSq8ftXwUJcbh*+i zivk)}`pfrQu3-X!S*22WjFI&+>Syy&jbd9TnP2_T%>3hB6vGG-*ehMGevhy6HSgP- z*INY&1ZI^u5n{BC%b*XsNHsQ{EXooeOf#b^*J2n!0(&L@oj5jtoj52#R>#w6`dbq{F^<4 zer^pN&r?+xz)Ge}H#L5h3?oQjuXMRa~Xv|CS7_%j#Xf>HE2Kae=_BCkH}|+%q!hO~0YOn{!)67WByL zd*7nHiV-BRSMq1X=RIexY7!7|G}0>&m{t4F5TilyjQaBws*xpcMKiMAFYZ4l#;O=W z0y`hS`g$(NSGL`4cfOp%1Ol_1XP{G0#3!X=1PSbX+;L#lX(TYqxqp}52i}c~5hSoz z@;f=;$wo+E7WPV)t3yPP`l0)B#rQp5=%Pqqf8@PAAXa@?JITHENg2ht3;KeN{c+Gp zk8xvb9)0hB=Y6Ui{7G#edC#r#-@6z=0z03}wX)h^l~pL~ZsiR&k-)49L-_CA&3W{H z-_t($G$>H5dcCRpzUQTh5hSoz@^gLRP1L@nRwf?)ssKX*vvzj!7|T}Y(Pu|fFBx$* zw;I3nS>nmQ%^60Jz+TDkzbcucv^u`R*JezRKw#G8QXZrB{5*QAk#t9j|H4v=cik!9 zg37TBBS>Jcbh*9{Jid3M`OcSEV3%3|HnXqz^oVBLyXk}^XNqj(r2}Bayiy?L|JokrCJOlNMNtz_Z0n7 zj~&aF+I+pIus~qevDqO;kBB^a)2j48KYuZV4ck)8G>RTGF@gkkK7Q5mUJNTz{J8H) z!B~O7th}Q_j8xt{`p{?eo4Uuwp{$kp#`o#T5I07Uz+TDkHjEt1N-WTP$NBGFBrt38 zq!6QTSRQ@WG5TH7d4Fd%=0Ypq>s9<*A4HJAUdhiucB;qjzMdSws`7JvKw#F~4I#$t z0eSRyZRj_(Cr>8!$IB-HXCvFI7(oJiCBIiKPqG;wy3}1|IA3WTUJJ7l?t~Z}$K=uH zm#2Q^j`A~$EjZ|IwlP-42ol)&c;Bs?+cz)zsk?T8VFH0!_WBlg8dD8i1p^~UVCUmo zRU}ENoFS+3?yFE03Cwb4Gw8E=&7Uau`tuXzFoJ~GMQNI&1Al7WX8zPVBrpqmB|k^D zrH|V6;`hq=8}ULHMFRUHzZ>^Nth#Of6kq;_WfW(^<-Cslu_rf{UFVDH#%TKPR!Tig zeV?|IuRp)SixDKS^SNBv1`bpU)_(8%Dl*ta0<+4F_ZW@u7uCmB`0uw**BH3hLA%R(0`B}C1m5S+w;;3I0^5jtOr%hvy?$w-O1PSbw zd<})oH2~mx8IckMo4Fcg;#9F638uF@gkkK9?(D!$4ND?ojuK{ILRoSvO~f7`5t@(9;#A z?{2s@oOMX;@BZfH5I07Uz|P0_s3!y2vEI+!1-l0-NMKg&1tG@85+(G4ALuuA{+pec zH=XH@UY%OS2ol)&_|%q9W21ZLRW6k;E)bY?Co#l`JzHEKF@b(l7r2p*wcPZVyG76T zDn^jNUdivXEPc?-Tsxmqx2IPiFe~bLh!NSYxL!1n`qjOqnaz|8pWGQ|#HtuU0y`gn zYQ&ULiROKm()QUZ*F1PSbX{0i2U6Uu?T>)iFOc?ANq z?76$)DfC$_<4+5H`T1#~7(qhpqNVv0Ni*;#lIG`6Bt-(VuvhY{;Vq)oC%Fp*{Kc>Q zU<3*5kNjBs{Qz}vaFm&kU)y%37tiU~AG7-SQ%~aoV5<|Csy!w3@CD_yR=uZ}B?*F~Ch zj39x)tW;i)QDSu^{oOUXll;);w{AV5sJZ9%5QY&XuvhY5WJV2N^L-zD^9~Ia2+S(S z&%^b-Sy?ZqA4`E%Mf47(oJirOUNvd_CqGpGNtIU)x3kvlib7FPt5Mca0_Sqj{=GC#6ok_9{k@z+UNco!!38 z%#o_A(x|RiATVoragXs=?kc)Ap88eJ^(nrX>;;wiJ!4gjAc4J-pMku7+yAdt>6CIu zhYAE{Rd41oUe&0qkB_4ow0hm^jEmj(!eUg6Ac38a|Aw1;MoHMZFkrjSD-f9F%v4hi znvlN2p9CGwp9GB&B(PWV6^{7RrYG~KO&{k^Z$$#LuvhZCyjw)5w{zz+SMz&{FoFd3 zM}F}>cpj@Cs9lgs5>WMdFL)El351GI4EAALU0z03} zm9cm?HC4)8vwc{wi3DbKPv%Xp z^9(>>)-BUxEcrJ;fAcR*B9)o3+udkVO>;57;*Jp{uvhZ$Ri<&iKfZh78|@n^5SXP+ z|A;|L&&vvpg5aC^`8ZjYweD9)3044A%AM8>zSdcAy)p z*=(MYm0xkk2ol)&_=MZFAeO;*P^rtWxFdmCKbG?t(QkF#FO$?xpX(wznTd`EfCuec+DS-Y!xj9c4vz1k1-n>zjaAJ})V_bYe#6?cpvfxVL7 zL07I6OIzuLQiWe}M*_3PxAGX?wVJ-*4E6T&r&7#sOU+ZFtG8D%f&}(Tem?QoV)OWq zQI4e=YTPzdjp$i&zC^fAd%sBS>Jcbh%zEd=)S@YZ@hq4HXE? za@I1X8n`kkMv%bHC$4^q1ZFwU%b*(c^ozL9Px;3P64)!nCu|^rS=cMNu^7G7fHjNE zjhEtuE{X*9M{e7NTd5DOe9e-cmQn1djugIsM#uhmf3VjWx}lz)|26f*y&u}DRmW#! zuKo{v7(oI%A78PsPXkpsmz(|0?`J>)v&!}N8lT?Q)4MLAeK4p-4fRaBv@Dw6&wvpm zu=DZnRoMdS;OKO$(3AWO3CtSa*=zKuP+xzOi+V|_m>bIQJ||6Ijphs^NMNsYxsKhO zqeP|NVP2~rBoLStSj}rJF4R!pTAX^~FV&*mk0K0n_~juCBS>K91XQghTS_~sdVCQqWru8q+GFCdMK9#w&D-KJdi>H%zd4h>yTx;L zVAldOsO$Ot3>ZNIJ0G9m8QGA%xsglV!_V&`fmwBSdyFx9GyPRK{ia@>zY2RiAeB0r z-_L*%B(PWVdx{3-V*jjnsZGBtE)bZt^F055+;5_Hct^c`+Nk3u>*P~f)oQO|1PSbw zE?0cvG3KbAE0x_pcm)Ep&i>;uHa=>kzyGhd*U1v-dvd3?GOJUpiV-BR^YOC=?Hapt z2fcLNG}>z|P0-p?`c>sZr~1U&=YJiUejk&qAUaqd%|UvYW5q zf)OOdE{ac2LISg}SMv9vwpRab_sINoEneuNNML{DPeS;irW!f5JnQtPjN&{|>Wq&4 zvH3@@@o0EceQjy_?i#=NtHV#1WqG3?_%MP5c0PXHd3ss3Z}#e}M{ux-1ZGA2?KNg! zYN|iEK>J{H=R#`l$3^)4gD*{tAc4Ko<*Jc6wYvIxA=dlP{0s@q>UPg->}}FqAJdq6 zNseN>l}3S2%`8otGmIdCy^>!AI2xs_czn#992O)HnDuXx*Dx2i)a!Pp>Hgc%&jV^^ zX<&9q70WP!1oldo>tVKizUn(x`krSTCJ>ladV$yYvu_(cv=-Hc_&m={qD zBS>Jc4ipH?3K`%v{`k~R&+(ROoNbna_0N7>`MZ2Ah7lyNSGrtN z59Vjjx_(d&>@O@3nDu*iub~Xf!e@Ac0vK zI`X-hzdGonex={k-}5Ps58;K>lM7R;7(oJiB|qb}>AksD&#MkBSzI76YiN|$Xw|;G zo>GDOZv4G9X7B0Om6}c3s~AB7dnNy$S8iz@?7LHG;qeLtX6>5gHOlxfm#2S z2sOHRyXzhO>9f+WeK0@0f2Vxp_mN=)3G9{JSZ1eYS%>9OOZoVD26!#ZTAeG@*jXS@ zAJdwSgRkp<%T8shq(0`qcQJwlc0QM@{E<9tPLUt@@5ESvz^tD$g&OgBdg|M=(s#G@ z?eEwDzlN&DXO}R71oldP4*5=IcA|1K^(F7SNMKfxZ$gbjD+BdokLY(v>X?7c`0mxz zS}Rkl7(oJiCEq_99X9JtDXpHaTwEY9D}7P^|2WxQuP}gqQ=dOS+H6+iwUR5ey^0Ye zuvhY#{lmNhfm!q1{J91NyXt3}QolN!p+KFpd;FCqYhzW6Ac4KoQ2%)(yD?_o(*SWUIM8VkM^FLY5Pus`xE zasND0*01T#Ci43k@Tol5A7j)o~qUSHBH2 z;(B)1^IxH-axHk5$ro0qo|&p(EW-#A*em&Yh6XQu%bNuFmcAV-5SW#YKe?sa{hqqM zgKC_QA7x%#*HgLmDvDtQ3G96QZo_XEn2i=BDi6yC3It~T@;uZilQmd>7)_tm>_+Fz zQQ_aHlS5U-6fDcXW3(^{XLnj39x% zl3!iQbJpyAtf%VF?`J>)v(n!VH8u?M=p71E-yL7YXYM^(Urkw)TE&P!2wgPS%ZcWS zl$vUArQ!mC9d+lEP$POsux_rS-_)0iRWS?ym0BI`;pZ73f&}(Te&l>K-{+T@ta!cr zJOdDzwaFD`q?;I|_ZUO{YGT9m?&E*gRubpOsu)26d!@^jq3==m?~j+eYyLG|3UP`eIdClZyF)Buoz|P0-#d$kTY0zn|S?@QmKwy^mtgxz|SJlnSSJlM`5@Hv{ zCt4$cS=cN2^^Xvj`m{|G7I!6H=%Pqqf8?Llyprs;S5uq*yVAWhA=0=p*rzR+|D)b$ zU!-wnN21oHe`Ebw!zklV&nYcizQ+9jadK8AcE4-|wdKa43PzBy*B`XjykFhn2bR>e zkox3~_g~vk6Ujjs9&Lve8r0sa5##10zV-Ye86R-e-;I%9^)$rTFn@ zAt8ZTONvAr?6cUZZq{P?n~aSMl-doESmEUJJrn^L|k9U=|fwQ1RzAkie|t!=jBj zMozuw<(9n0;tf$OX5&mv<2Bky6F%$neX*4@8i#*MhLtysy*0E<5zJFw4z<`yhc?d8KWkd21^@ZdPYrO_0QEiIZ?Qt;ce`CATX=Qgg%C6WOsdIxgNa6mJu&~h5AIY6}$#Ukg%W2X{~v`eqm-`Z~Z5B zmd{NffmzG>R!0+d*&;REbLBd`O!dmmb;ll-r*FTD7<=-nLFw6d} z?P}Va*CX*7=;leY~QigyvK9;NMM$IHmd3aFRu~I&tKi<=dYge^H&%_ z!akQ}t$F|5=j*ix`1M*OFw4HuuzOAzuW^cBoA|`9O}O~1B}S02uTxlS-p78v7bgeb z&ym0^`zrFjR(*I4y6)`$eBBu%NZ8k)tu^oIKFfih@3TY#v+O&B#-@wpHRztAJD=|< z!Uz)f{YBQA_jnII5}0M*{n>A66t98zi(&)```%G&&HKOkd{hdbkJ`fbb0jd!zO(Bng!^_X8|toSpbY6Vb29vYu@ARD-xJxPi;+K){ob~IWLSLVb6S7Yu@8?4UoVr zdm^`4(*e8&&hTOc345N`TJs*Cs)7V&+0RQkmSG^TflqG12om;FT&y+k@!3>JV3z&V zsYYxNuW_G0|7sY2{?%OGuP}my{VXhN&HF$3)AyEte)=8~m}Ng#?`qc}yaqnu4}Lv}?L3s%xcd3& z#w+>LjWL3Rvlhe%PW)!RcE6cEL_P7mj6h&k&70vy{T$1*=4pm=;%t_z05g@z%1Jn zjXGm_4ViON1PR*>tu^mu&PfDj*`C-p?>JsV=A0Bk!gfPz&3l=15`kH^CvN$JYRH_E zB1qV7XsvlKb50^K%l5<(8^`k+GUucS61E#!Yu?M8lL*YR&2mHN1YSetoD@OAc0+5; zdzo_*fmyaEzO6lx*N{0UMUb%F&|33e=A1-emhFkvb5G(mWX?$uBy2ad*1VTFClQ!s zd*Z8CR72*R6hXpvLu<`@nR60>S+*y(IyRZtkU1wskg(m*TJv7!oJ3%jZI+X!PvJFW z&Pfp@Y&W#lyq7sA5twD0<((g=@)|PdqzDqW8(M4L%bb%4%(6YPeV%E&hRiuBf`sjc z)|&S+=OhBNY)`EHf@;W|lOjmiZfLD}FLO>JFw6EtC3!lpA#+ZOAYr?qwdTFdIf=k5 z+Y?8un!#(xoRcC**luX8c`tKLA~4JL#FvpXc@3F!QUnRx4XrirWzIJ zFw6GDz0K$F8Zzgk2okm%T5I0RoRbL5vOO_drn$U^%sDB7gzbjbn)fp2Bm%Q+Pi%08 zYRH_EB1qV7XsvlKb50^K%l5?8tLE_CjRlL*YR&9c;} z#hj2iCq9-LhhW)z#vzA zxz3qk3cYigb5aCf*KxyNIU#dSA~4HwPTDHDbFL5w#|>9wo2}tD+R)KLu<`@xpS`kVvv;OI49MRJEut4ZfLD}FL%zB zUksA69OtBWE_cp2fpFY#H7DfG83zWrT6dgt6({7*xk?}$H(bLBxpS@pgIuFK&PiJ( zch1!U;ke;iPRN~eH5lYt-FD6zxoN9p&Pfq`UB?aMIU#dSA~4HwPO2eyPLXijkZQ=C za}5||yzV$By>q#9t`!K!4cBo(?wo7EAlK=RbJAAHoikn_95-Cg3AuB|gF&v>9p|L2 zk~`-*fw0}sTJv7+oa??ABxO0yNn0g%&h-M}xZy@l$enXN801FXaZaiscTSOT+>mO> zopU`H&0vsQVUCGv$emLp z959O75Jy1j2E{J)Dp`=PoeFJ-XwZv{iEF+$|7}8}8+V+&OoHLGINZ=cKKY zJLevOaNIC~6LRO=0|uF(JI+Zp6;kY5Kc`tX) zy6#IhjB>Ho2b@a_3}Vko$GVIcclp&bdz@9Oq2pgxopzfk7sLbJAAH zopZlHIL>*16LRO=4+ePvoRhXn?wm;i;W+0(PRN}z37qpFI49MRJEurE&Pg@o&Y1)T zc@UhF-nra44+w%A#+Y5Fw1eyL!6L1 z=OKY`+>qA1mpkVnFvug|oU~PP=R7PBj!horgxom~gL59$9p|JPa_1BY$2qBn+&K?} zK^_I?q<1cN&LaZhIOj1=$er^D800Z54$2pI4LhhVL!61)=bJAAHo%5JL zIL>*36LRM~1_pTooRhXn?wrR3!gfw;&3n0X9{=K;lw~_-oflL?=A0D4*LB?RBqwCf zNd#s&&PnfF?wltC!m&x3&Xhan2{6c0y5pR*RdVM%DG-huCUfG%mQ-p?!goyTlArlC zjxwsfjMD-)U(d^-Gj-XWmY2PDTE=Yw3|L{(tRF??3d@a8{Z>)1^wY z8`_2+HV{0#t0J0y!McEEBRL4;6yv` zcj~J$^;z(P3H-=dLj>(g=9;^M8>#vm%WJBW7#4 z`uzV^oqU>3Jv6){`}Nl10IY#TpI4E_kd_OzNegMKidM>|vO29N@?|^;heCRTf1U`_oO( zM!dVO;}#~hi7@VL8mm?L?|(i}9jzSCI*^@P-_?x~Br@cVFcu|_{`~*={`nGR#n!&8 z$i-akdY&kRB z(5jEpmS(uF&%79JR2V-}8(NZoR@1_bJXuG6-l~V+R`WH;8_BXS*kNJ>iOT#A(|i3! zYA?%Bjp~g@B<>FE&w?Ay69~)_Ki$eXb_M)CJ&J`UZWKN%Bz~*b#~2tqQaj&@YE+*6 zgS&c4G%K|?P9QJ~|Nnd+O#Oq|s#+jxv+9<)`b?OSI(eLyf9o~9#^W&K{l~G|MBg?2 zkCS1>l6_-7zjObNHO=Y$gIKE8S4@l`5uZEU*tBGf_Wlg@_Lo!gnnB4CtYGCe0)bih z8S=GE3n%;5#e3Q6ZO4Vr3W@I1!;LiRD2=73cRnG{0^f!%;jG%VeFA}5_@Cu&Fl2^# z?P*UId?~@yvxgb$j!ypX9hNN>X5?BvRr?tH|L=VHw0`FGDIM9Fi!X%tfkd^%VTLPm zf|h$Bz4OF;ZOntIyR)aSe-{YM!cUz);jhy&Gt2d6Z1PW^%yOSXjRohXYp2^>(>s3? zW;}T_P5Za=H66Fs=W`t+Hm_2@xcbvWZ9v)!u}Y-h`V z1Ol`0J@Nlw_y+Sx!-}k8wGs^1pl=ZtYOFjs@4sWXxE{S{&~|f2jnZt_oYD*|`}aoWt= zHaDAIuNuP$61Xllf6C3iQ|7L`McKU$r3C`Ba0~fUBV38*yFUxFBZDe3j3D7_7;2m! zyGUF2fqs`vh}dl&izv=YR4OkJm?ggRf4{zMs{J3CXExMlxXSIw5nf|Tl`UG8iC6W( zHN8f?$Q_^GdBv)~nfo{WY34{v=P0#tbay0Jrd2A@R)_uhH$;YE4a`8naTJH_x`t!VXWXEfAQ6|5<*XdS@zD zW5Qi?R=At><iq0rqt)in=i|+*)ja<_O?P+OgIb~TSM@d5Jx2JoY4`$C!Wnx~8A{A6I7`7sd1c@da$fZm|Wy#zKYLxx29t0Z~zu zG&wr#!tUE#*Aco4)BNjTU%MD}n)BpWcq{J9)d{$LHAE3WY1`@V=na+Q^ zOncO}qvmxo&W1o29yh+i#>1(a-xPmsA7A4a6(n%)RDM6Nxlp^2(nouJEY5~Nm+krZ z{SvCD4^N4$qHRM=&{BIW%%Mvb3m{7Zc2UXK>4 zCF!=|TdScq8AwbxZ=pp?-8DYBtY=t$)>Ut%oi@DBGt7oSS5dy3c_y#O-idGG$fKK8 zxARlg9e?_=3caG}$-3u_D;uSoTJrVU&i{A8xS#)u@EGzH9geM3f8HOi7T<1rbdkWl zzWI)~T^Ff`(<9Z}@o_fi16_Ee`7V|AxyU}>x2ki^X3VKe6!jW^Q(S!>@>TuDJN~^A z?M;oMGp?O5`UdO2+Obt1se6~aQ$MRMS?h06bYW|&u_3>{j@-%DggbuBI5;ZZgfzd` zIz3R+{T{1J_O)fGAn{^L6m8i4xbcSA|NKzDd+MAE_f&ISI~xLBwx7!W^?B9nadnb? zza|@eHkw`^y-l>EW_v_SQ@9~RAcE@Ko=ener4EMR$cNclFWR2*5+6t(bYGWo_(>x zxHUu1I3LwWHID2}{10BYA<*SmI+m6^veKBqD%8TPO4YmaPoTgV;cfpcs6-| z$qcu&9`^>2$x~)%6ZVOLM;D1} zKV#|Voy(19J@m@!#;x*(%{vmv^kX}12z23hfsY(W3(#tGPbNE7q-a~q#?xO{))?J+ z-%I9`IQp~CYNLf$@dcj7(K%gL%Wp~Jsr9wvQ)`UW!`f4;j2Y|Qr^gTdf@YVV|CtZ zq$uR#49(DR0EzdXVL%0m+9TuX@e3PdZ&Z^R>$HbQlgRb~1FT4(>rqNPb$YeIct!Lr z{V-kD*37dIN z>LDc1g~yGr@HeOo+jz*AH2E>c@Opm&{or9W*5*CUb+#watUhVR$0zQZY};|$w-g&1 z<4>}3#~V;VqSDd?+HTxIV^iLL&G*6DU7V%%3?L(818fL%;W6YZF8Y>bON;rEn1vH< zJ{9Ku|GRBHgZFGR-m^{go^4c+=u|F|_WXTPo{y$AtFeTltx0HwzG+CH>$H|Y3w=p5 zHci)mgAU0h8F6n+9yngrqAn)T^Suum)A-wkf_$Z^;)m0WMF-z8RVklH+derduO*9) zU)7TRf2nS7DZBDAf%YxB*VxLOZmM*RAD`R?fdyf394*zYT zE#JN{Hfr?1G`n~db?W*`wAPE)yL(f9ivQ=UY%U5W4xf*!zou?eQ9)wI1q+=tB}*Qw z+>bhw%ZAx%1kXSMU0wJ-iVq9rHR;)kvc@fv9Dg-l&E^@XAaQsZ-`%lCUen*V84j;Q zNQSeU$Up*JEY?CF)GH=4+IYs3$&>PlcA$d9wy_rawnH(QLDokQhf)mxd6|B!kU-bk z6;agnxwp)4IoXWFH7d{a3{;Sq!&jSb`(Im`(Q#oV@_1xrrvC$c)=gc}aiQHX;KR zBpPpure)U$%8Z%cZmXB`wGzh)33N57A48ii43-&H-L9(@^8|?uRFLS@EQa1_*g5KmuLe zVq)narH9P;xZ6#w{VZ0Tb5xLM8y`#W%?Xzo#ytxSCo4yYb|8VS&?0d(X;Dtb(LF^C zvr-b7{u@LEi87pcRWm|n6iIDu%|Aavv;zrrRoE3r_aBLn?fA#(xOGibf;d*FAhGh_ zI65#eryaz-o<{!(5gACJt7oTp+HX|O`54=yuXgI6C~>S%LE>clcpA%BNc($jKmN~L z?c;#XA_EC@mClT(*$=wQcJy@Gr7h|aE;3L-V$hR#>O8xf%qSCnLHk{?tvDY@psVSK z1lsarpv;&&^_>=~br2b-AaOD=ftE_^EHh?Iwqq|JdWd!)fv&GgBE5deUuMkMSc2IX zRK+<*1&NRR-X68zPi9oSUydy)QbS}Qfvyt+5^2YUZDq!yf9kOPYio*jpn}BU-h6e+ zwQXcZcBA_2Y9U8)tdKxgNO~gGVvRDx+|kUOvK&PQDo9j3nMk{@CNkq*6%$KZ@LXKm zkwDi4wr`Q2P6GEhNcqCd|VT32RNi0j6pBl?OAB+wN+HHp4{Rb6J(X%)j_x3m)(s35Vj ze-drJt-8#J>=e$nHn=IC8IVBNoFz$g`1W!#!;~+PrS+d`)$bpuATe!h5-qZ^oXmLj zFoHd(HOEW84ejh{y31xT^-M_eq%y{D%#&WeSqUsq) zpeu&AT8H*vl>~{O~xDfdslvlO$^P{3f4w zAB6Q}pDb%c1}aEQs+B|&yMC9?yG`c#u$FC@$Uwrz^)-j-@02XThSjMhGLS%5?#&6b z;gfwbqtw=tjIRz)^kanz5?HtKT`)2~Y1^{BLO-iqm8G}ae(b%&v(GFCQz#a=l>FhH`Thq3y$Up*J zfiL6e2)Hg_*)c1`_CsXcb4x7h0BcK6+iWmTZ$C zjuk3M6y&{lAKt8x->Wy3JEm=X9w9Q2Kv%g{v9yd&PDcAm-@VFBNfhls1&J))TRX@t zXLMV`-VY4{wZlaQ66o6TJBFU^y;8Pg?(!Pyyh?FIf4)KmiNn1AI$z^8vK`J{W7O<2 z-9!cw=nCMy&K=sVml-q0%vGnB>LZR7DoFI_ec{KmHp+~XpSG)+XZ=J566h*$KAPUY zw@qeTxp_q`xG+d$pn^o%ThVlJ?;SFu)!CQo&_PC`*B?lr>$oYJW_>;&GY%KXLjoVQ z5gDi;F~L8Y7HY}+fW&CSs6vH_eV=-w9Y~<7{)s5sBIuONXgH$^+1#d)$Up^&o;RXs z&E98Z#>;m#$lT1bA_EC@?GK8gUyk3D8EZaxkR1&wi0>6DNaT-+qG@Aq%Z%yEni1#W zipW3$UD%JpM_C;9AxR|_(GFCQz`hejsq?L`wzSb;vUk}ro4!}`PuV^&mBuS-!YA-R z(xxvRNtW{rB+!MwF8=*B|1l)GB% z?NE_{3KF*OKjuVERF9?%6zxC)UHI$b?`sb&Q?vb(#j!#K34F7~_XgZ~R-LpZTC@WR zbm6Z{Q68>+pvL{|EizC+V)9Ks>WS`<{fT#T=O#bfb{82)pbLLpit>4JVUk(DlgK~? ziR*sRG?z=7%$Qf98ackMmB>H>UHI!#l*}cyNHuSR$Up^&nb)J}6z?-KV@7^2a?q`= z$Up*J`0L{P#CcOvcUN_hfeI2%(NQ#C+-;e$$gd;0>sL%eL1Zc)y{!K} zP(fl^F+Pf*bQ5gACJ3wu2IUX9uP$pX)5A_Em9mZkFDnnUxN{*FDb-eMSea@9-Kf9FV`3wu2I z`1X+DWI%UEk%0;lRj7QewQ9K|fYVpbL9E`P{y%Ddh5e`-9?I0)4DV zTu$Nb=vhH#>>r&%dVJNadItV2bYYJtzb1AXPD+Os*7OWikXSI=LU;9cmKpAQ29u|r zv6`NN1iG-tQ&BFz?oXT!OcNQXATf}Srt+&%UuHxXizkQO4~h&V(1ksoigMg)At@6s zY5MmH6(rVux6m1h&16R3b7AD%x}TbU&XGVD_IUE0Hu49NH#PFIsyqV~B;K}*qV+16 zWQM7}4;kcCf$7Hz33OqPCm(B2nG*MB)tTN7RFK&FFCX>vy{*jHy}S`|e$+%{Ab~FI z@#NJ+bS-kVzk%uJ92F$;^1j!@kNssvjhSW1oC>}o0||6tkEfzs?^T#2cJ3rHP(fnx z#%NkN~BA+5SiikHkfT}YcI|R z66nGnPhL$F?!i0?yc72*RFKHeccLl#q^ZoP^Khey2h`ydiF zF6i;(zjOB#_N&=UgMN>~-cuxMjYy&s78a2iTC?G-IdxI>3?$HnJ)V3NQi~z1N^ECU z&p-uYaVer7D^!q3nwUuKci)g1tM3z5?WHTx&j%9d!X8h)o{WbF>tDg0=-(?;kgy$J z5@B*>U&06(I?|Rvm+csqey&a|Vx~&c%TLu%K?29KC`w}cYIA$x;L4Ta8yGAU0AX5XVJ3X)EY~gkb0vW7%E8Mh-NIQ2s32iG4%zKMJyP>tWs!jdy0Bv9a}=+*5|6Qk zLS?H02FXTw4x4Al# zQMs?F`uRWtU0AX5X9jz3l2&|&$Up^&x_c~iWzbKV@n}s1Q9jQX8AzZDD^^7*8qtZY zIUg@FP(i|FoQ0lM@|yn6CLjI8LYBR)Ei#Zm7gnr%{gRd4$gQQB2K`u}g2d1$3;pF* zOlIs}5=-hNS2IlK#|jB_Va3YVtXUgOJ~W6pq-UUl#I8OTst%|iGrsYW(I@}xwd&^s z33Oq_%IBZ=>_&bK%d+Yjs37rZFdw({ud~e9=hc_=xgM(N8AzZDD^^7r^0XuQchUe& z&p-uALzd!_+2(oO`oXWFUbqtXLJLc>A{Gd#l|d0~I9dJ?4EG&dp^;<9vSP z^psa30||6t#mdLSU1&~%TD=w-s32i#8bymLW|=Ydq$erpUzF*`3JG*!#mZ+7?5Ih0 zWjHeZSfPT1=dvhzA%8oWLGC$|wfWsd1`_DPik0tQ8&I6Qyi{Fepn^oXQqeSD`2d-b za-b0TF+^oEc{`9m7gnr_(%b#B`e0sDk%0;l6PHHQ8;)INM#&wI)W%IZhzumqg%vAb z!R)uDmO0-_WT1k?tGY2X{#3BcSUP2$`s;D1I95oY3oBMWE576e^?+M|$Up^&o@ZjH zseZW3nBAqlT8l)A3?$Hn6|16Hol2>$1A;^bDoDJI=I_-S_mCOmJ?9$ARfrWCNT3TV zR^H$4o$i%?N-(R-zgMUr5y@-kx94**l50j==Y{>vKmuJ@vGTQE)@W9xTX)e8RFGK0 zM>;L}5+U1he!4;P&Sw$rKmuJ@vGSE}KXlcUmz_lhDoAwV>oaIO!(_(t#O2zJy5S-N z33Oq_swlVWt=Fn|^br}TAkqJAJY85M=X-TO*Bz~ER)EMr0$o_K@^vO$?`ic<8AJvu zNMxlX(7;MvWILX3&d+A-G>Qx)(1jJNqJ+NA%TlM*5gDi;QQjeuuKeaNGc3;4S?Z?R zA_EC@Va3Yle=M!Ud_R^E8K@xPH8_!GA80Exlzz=w2k#Oh0||6t#mZN?Y0{8A>8*$i zRFEitH<3=CY?K*OYP4s@((lE!9SL+{#i}UzgUl@c-}B+qdoXL`ttr+2%v zd6~OK1`_DPid9iucKWe~i|75lM?sB@#0Cqm2fx*o8M`|6VP{fe|K6j3Ko?f5d_HHM zuFTQUNMxXb#G)BVw9CipG9x1(hUF=GLp(DefiA3A`Dl^a!E8{iNb$^o3KAL1lIZRo zz#>~;;`3e;zsx3&O>n%lO#;~bTtYo2zs-A%a zy0BtZl**gBuwG?asQSGY6(kl8;$w>1<(3&2F7iF%kIxVpNT3TVR$d#F^<$5oEEE~2 zAaTi@MAM3Ylh32Bi`uFybD(p8AzZDD^@-`vsXoS zyKy;EpJ$+ggzZd=5AnsA^Q0PN_Iz6cT{z1_UmN$6cF(mW>9^I5p@Ia?>`;_{S3gx% zc0?UM%b(#qTAY`R6_TP9vOH2B{If%S^ShJHJYghkXD=H@6eeS*9Z{?IGT0F4!U~D6 z2QcfSx~9fFb?V#B3>747=WV;rDNh{i7Kscb(1jHeUx6mdo@kGIhzwMact6!bhX;O_ z^H?6QtxlRLT}1{G=)ww#KbI)^$-kw`hzwMaDAvtFcZcRN{ax3tPA1fr# zg%uKC&+@-QWd5!>hAI45p@KwTgM}u(EGjcDRjNZ4eZS(RXCQ$ttdR8g28Bs>@q>r- z^MMKyLz`P@@`4I7<79AclCoi{RnI^IU05OUHJ!#6B6ew;ta=72NJRKr=<0?pGUK_q zCRsbBhNfpAfiA3&6s2mTd}KH>1DUb(Wo2?b&nS_B1iG+7;^Q(} z*pVq?VnqfjNUY-TQUiOnkQoz_N|ESx|A-7E(1jHee_uQ7otnSIVv&Ig5*d6PK#jRn zW?U?mkBn+|O=KW}F07Dvjgx*$E&h7H$Up^&?Zcz!%U3=!qjuT%YSjYYLVU<0MFuKJ?6AhrVHrJS#;(4_)IFiDA_EC@VTHt3V*7Hy@Va3kk%0;l zK7C?o*2i8l!;sJ05Ok)t$Up*JSRwIw+c6Pd=Zh5<8K@xfme*?aXZMyFx%+!q9q#?j zKmuJ@A@TJY`i!xjs^cg!P(i}`U>rTaBc~lx%Q$MC7yUg}NT3TVB)*C|0Y(9}U>pn}8)h0hq78!C@g=#iCL z->zjv1`_DP3Q19>ub8Ek+V)xeK2Sm8$$|trAvs89G+cB>tG?y$Zx9J|VTGh9r&{jN zF4n#;GEhO{OXWnGRtg%uJX@3ZEG_H5VMzwLmU42g1fNpxXhv&@+Gv?M#;aO>Z80D&&7 zka)k3U$(aF?ii7Q3KFL~C()1AW-=oyr83)6Y>dc20$o@kDN10zJZ$PmFOh)?60i77 zi!NvD$&Bs4UD$`qt|9{obYX?0C=tE|*@^6j;(m?_60Hv=(XYL0$P8b#Hq)Z#iDw2R z(1jHeUmN$XBfH)=ugE|J38%A3^!<@?GGo1K9k!Wm6VELmJLK`xo$kj?ut zE_GD(`ydkN!U~D^$>h(?>OX9w>g_-Ui48GHH0b?j`Mi6?u>z}`XMxB-0$o@kDN3Gs zKeVsECyESIka$)piS|r?Br{%?FTxxSFp+@-y0Ajx>pC}ks<~S>i40VbSY=J5*V+;b8K@v(JICF}*{Uu3d`-2_>dcTp7tXKe!8*Z~U z6%x3n7hkhKV}kn5nXee}w7(63F05YoitlX;s-1dvGwd{tV5lH*E675p-TER|9^Mo^ zL#?`KhsZzzU0A&+%Kj0>)FOxSiwsnd*j}BF9h{rn^mldR9Zlw{*K3(X1`_DP>V-eU z-7l#YToCG|w*wU<&g8Ms>I;j?43Fyb)h1=`cV>Z-^SZcN`uM#xJp&aahL*9=?l)Xy#wp)f>XnuY zMFtY+!s>;uEwai{9lwxR^$b*yU@iGd53Af|#`D#aRoAM|MFtY+!s>fv-NKV66nI} zh3`a@x;t&xxe_7+6(nXKjicR4`tI{0)u77DMLf8n>j&bAb~EdUKC}}+oRT*?6Jr| z1&RGMk5jr7>c4*QMe}}sTim0NKo?dod{?Wq!rJy88kkU$q!FN)&3vZ&U1X&Hll|3C$a!MAu_yWc@(4D2vnYgCJg z3?$Hn)e9f1_94G^bZuXefeI4l<-Csa`6!=vw|I}&re^0>^>!eEF05Yo7?!z;HgwS< zk%0;lMg5ZK>TdUCMoQoSE#kDB$Up*JSiSK1I8m>xUe6DT3{;Rvewj!&{yrx&8U+Mv z&04n;8AzZDs~0}Lz3K()zFFxa0~I8~6B6l<`G;giwZQY%iDPdY9<>?4kU$r%I;JS^ z@)tG~>)yip@4S&V>yaVRrF0@~xp6%Gk>VfDhFcdO6Wc;$6S|3#sK#Pf5JbpOko_ffp^ z(sx~d5H`p(1q0t-*KwlD2-QM;>v&u66^L^Xn~<^WCpLiti19P8AzZDs~0|>^QlGS zm6yms1&Km+qUiUT9b^WtysW(P5*bLK3#%7J;gy%hD=(3O3KG+HMbZ4za{9t~G%FD_tFOh)+y0CiTd$_&Kr}4^5WT1k? z_xI8C=(3!5EWGlv^2$rqe;-Jo3#%7J;gy$_S6(6m6(shrjG^5JS!6qSi40VbP>aRU z2C*?RgI8WHc;zKBkU$q!FMJ&G=c8V{@)8-SAdzu4j=mV2(+*yFdGX3iWFUbqtX_CK z@{Kj{%1dORg2d!e@pS3yNZAfvc^P=+B{Gme7gjHd!YeNWue?MCDo7lymq34C$a$~E zD=!1DyhH{P=)&rS_vtq&qVmd1WT1jX)vF2gibu}7R9<-*c;zL2A4s4Js~3LVH8fOt z;uYfyZQ$}2CCfeI3z z_a)I8TRde3ue?-Vd5H`p(1q2DqVUQ~<&~GXN1=kmx~wF+^?J^@3|@Juyz&wmNT3U= z7ru*9t=THCyhH{nNKA4`rZq-8%XaX}OXZc9xSu0|F05V@g;!oGue?N6gbEU;J(6kj z*E#Q_c;%(?%1b<#Ab~EdUig074)axBd5P){6(ow(Po^)t3(I!!%1h;ymw3KH0$o_W z@bB)zIV!Kbtorj6Do9K!luR?z?PUh9yi{I!S@rt|66nI}h0p)!FkR)9m&iZ`iTjt6 z=z{g{{o<4 z)F{f4jSsY~Oa9d=Jn3w+6AkWHggYPcmN$8+oqfJW)8AU+-$EBwNW5P(xERZGZNH|! z8ASz&lYabJbnzWImeb>Cw$|p?Xpw;gy0Ajx^HMK3vCp$+hzwMa7?mAK_jUOoGhVpo zVHL}IiVP&sg%uLt7rCJ`%Uz6$3{;RX9E+qKU2@6syZQSTWDl#|6K}(jKo?d>iZVW; z77MnV6>r>8L89#1NLnjbQJFFCi6dK9=}($|K9E2cR!Dq2oS_ao^yr^M`uRWwiLEOl z`J5jonNfAQBeSkHh_~TLpbIM`UTq()#Wq#lBi^{9f<(!^ku)Z&rp(B@umJloJ4<9B zfiA3&_;~8~&aA(+nRttg3KAL5BWb5)jbui|yS11&NW3qv`ZDIrEB| z9h#yg75gqSYzS~+g~Z){%;lOo6*ph;x9Y~-HDuQ#cmZT7n7^RUMOP){71@V`P)N zYO7tlLg$fegdCeK(VlOia70E}+ zxzy0~?-dg0!U~D6m*HQHv|rd)WT1k?z8^`n(YQ?cy!$J+9qH&3FEWro7gk98+PfvzO)B_@*qFl-itY-s33vopO1)72q1gQ-4pXtkwDk0qRI5R?|(Am_FN?KcQuO) zB+&JzUou^N+EHfg%LwA@Sr!x-s33vY6-6=l#1h{(!^QksB+ylNL^4ftC@(YE;$Skc z;IuS-t|cl+;PsKOVCEi667Ebk=<_*|Kv&+FWO}`^i_Dl+ygLcHenrf$MFk1G&hruR zBO}QLt&NzMiUhh|8Iq}5xuMKB)xI;y<I7Ppbt7P?3QO68LNz8Zj$fa1 zKAw-G+QVvHL(hSQuoi*V(oi~3?$Gs@xY#0()%d7X?J@Bc8K@wE{Q-PN z?(55Zr}54r0||7+*NmpVSv_TjSMKXt-7urbKm`fx*HDx;xpOm@cT{8`fv(vTqiDMq z!7_s!c3_{Z^+g6MNMQdAAI18+65BPlzR0j4pm!(_-}UYJs7^AYZ)SN`XlDhHfeQXz z>}OJx^aoAY-mPUs1`_C+%~yg}K6=ZH`K9Z#?#pxiZ3iewV1JpSoNnsPo}Kz3?jQKK z(6z8U-yttLXO+!vw+P$)=7zYoqk;tX`|&qFYl7JEu1sVgfv$X)BB^Jk#Do9}eB_Dx(yBBL-Z?woj0$pLtBB@<#SD6v;G>~09+(u-ef&})%D$0^&(JYs} zoyb4}U9%=c(gRLTGGoKh?yTRCW#X9u6(q1fnUCbS8p{@5YcdsSZzd{9x@H0_#(UEmBqs~nSw)jv> zk%0udNH|}?%zlAvN6UIov@5?nMLSSIqC*Vd3*z`9nejU4qBgHqpvXW1U8Z6&^qVRTHSeu*2tf(N7uT(ruO&goD+fBc6YW$mFV$EeF&^4@M9IbY2l+0)sc*Bs|;_rIl zs30+&6Q`Grk{Kk)(`)g?zw3n~fvyEJVrl8Zqh&_Kq9WFSK_kVQ%cvkRf)i;kb23H{ zd#y^^aIvm466kt!K87woJWghOJ?5^JKQv6N9gPYSn>nGTj+5<}baR5%RU06V6%y#e z?*d=tzw~l#PT78<9jG92t7r^8x^Ak>NX|T?mG~Yd+JOYR@Egik7;pMeJ9@B>Xa_1t z{2LZcD?OesGn}U8V#?ZXq8&(}3x8>R1a@{|MxS;P8K@w!@jw*yt(3DHRMDwb*{~9= z#Qp|IpbM`Uit?aTZT2Qz-bkPe??ikpB)-O0x7(LAeLZAUkoff^lFq8}US{~jC$Wcx)`+#dkw6#T zQTeLCX#-gLihE^J3gk)^viG$Up*J_+-GJ8EWv^4`m9A3{;SK zHaU_uzn8Ns;?8L)%uvx_)z^+j0$uooqbM6!jAYX%1vl5%Bu52_KI0?lyoye;9jo?@ zV1XyCV!d!A(1lNGd&<4ds2aH~<4eU0IJZu1QMTj;{dQc-e0FU*#H>LfByLE@@QG;LR~ zm&~{s^I2=WG+bmLfiA3&`J12I54E!=`-o$O3KIEweSUwlMP>}VuuE&57%$ET66nH8 zpTF&Uv`llX+E26t6(maVeuhE&V`WD7uyC!_s=?xXAb~FIvEaXtuI}1>HcVuof<#x| zUsAM6g3MSnd!4m!)(DY-1iG;2h0k_+K-LC-I zj!W6C$+>!!MFtY+!X9r$xqHKpgf%HGGEhO{@WLc|MQtlH1~(2S%ir6HV}%5|u;-rd zJ#erGdHm*`xPPF6#F1}FbkIzL%y?QehWrdXF7AU!pbOtX@ZWj!L^AKlHgO+B1&O?b zzsIT3P-ZNcIFQ7AA0_TlNT3Vfq$tYBLPN=)h|VGd6(s7#CeueAE;8du`4J>D;y;7F z-vkoq!Z$*EB%s|$(yaLmgMN=f1&MAcd<1r`@-idukrXoIxt6A9Ab~D?v!y6Le^Q7? z$(dpgH&l>t8<0#BPCCkr^GU-<{eI4xevd)|UHFEMuS}6=C<#5^S<~<5s338%Lo%Iq z$WCT#HS{C%UM>{RiAbOe-!$@>-VG9o%a?5;0~I8G72_j0$ba&Ace-z1vaVW&c&0`I zUHHb7zk}S`gLHLzFEUU;;@yEH+OFG8nepgRXY#yoA*P=XB+!L#eih}=2|qI1r!>=# z6)H#sw@ae;-H*zQp#g*}>FCPz=Mp5)g>SGGK@TP zXOH!0LOwk!M%)H(vmwxhS0Y8R_&4W!vi(ud@C;Ot7{hlTitFD-W)zF|Cux;Fi@nK_ zKo?$#_)bkfS`*XJD`Nk1RFHW0IEg;|;3YFE_6#G>?DvZdB+!LdB3?VM?nHb77l{m1 zkSO4mOe^hkml-AVM3JDii6R3Dbm5hVUrXwSka>?iLXlNWJ}F- zgT6O866nG!k)o`Mk09;J#T)cJ)=@#CV`MVjmQ_w>w4awq23|Oyrtjm91iJ7_#8=r2 zh#*COjkW3-s374TmQ34zaFiL(gW|}VHkCEK9Y~-HuSER!aWj}qYoTfpJOdRZCbUSV zh0EE?jJqj)$dAlfn%)j1(1lkbzB*;eP9(U;QjviQ64vY_x+OSM?(ghdw;TD{=aR@k z0$q3|;-e-#S`&{I*ERiEp@Kw}^+|N>m0L1n$*Q)*`*kj+w*v`u;gyJwVHwecT)CTz z=^3aX5z&l~1NePRW_Z+VOxjPaEHaQl7hZ`J<$z~ZVt3t1WT1k?iam++eXE@^BVThT z(zTce)6Y2)=sHk0kv3bOv&Z_FoB7ERt2@*84Mzous49tc%AeITBd)m}X_D7RWFUdA zrV|pV*Q>emO8srz1NFW;6&a`?v36Jj%{_R5%(xSCN{!DSERGct=yJXqPj5DvA~R|^ zY*53~JBVY23KA2~#?#)J(_}{Dv6EEe>As>JNT3UQhZUvQm@cYUVt0{&3KCgEmsBXj_Ahl2zd=-xsMREjUaYZ4W)vCi z&J5$Ki3}vrg}uXkrp47dO!-nov;!3+Zt~r^3L8(!jNE-%vwEKSLxDO(MF6KOfe;|P_>>XB==>H;EnMwYh z`h5@;B>M6`>XB=b=h56vkJph{aB%bgvQTo?QM-@#*Rnfto)+wA_EC@Vec@1 zrsh`#|9<;b{hXtMM3s6L>TyAp8HJ()SOfP=@w|%!y0CYcuSnWKWgm{b6B(!=F?E)O z=Be#1Gv41px8iGHk*Ko|B7^BU(=ZT6*MF`~Bv6(q{?IjZ~Sc9a>%Q(c+mKy8tM z1iG+ySWy-|FU9)v-OTjw6)H%?%#WfQZ+Dj&{fZZ1pT?O;Hg5+K=)&G%MR92IQ;Ybo z1<}trDoC7b7)^&f9T_kjeuuyZ#k%0;lZu4SjrN9`O;qlF1YmpT#GLS$Q_73x% zPx6=3wyp~m8K@x9n$JF4urp3(v^6iV)_$8HjujH>cKPWRs5?eE6FN{d-%0sGh<5@^Z&5i+CD&4T30 zeJV1LKo|B7^Hql`79`EI1|kC$B(Ud&k1t7cCVNKJ6B$UL3wvG^WzNVZFYbYDmq4eak@a?fi|_XUMf=M-PlkWTh=YQAv#{D&X!_i^$q%a++USI3NMOSF>q zbYMUjy*|p%^s}x#{X)a2rDq3I^%3^e@-vLO-VfkJ$=MdI=9z+NAKMQhE-mb7q9KfW zZs}ku5MfVU-NNXX*#V{(JNds~hS5Eaoj6f&>|?{mcCK3U%%NmUls#2ygwZ!+0!(u! z*waZR!{~*;0F%#Mds-nQjLx{ykrPw0veexT*Jx|P{mHdO_VieRFnV)+2h)yS_B0|p zlr~%EZ#rDafo?hzMt@Y%KUM0uw&Z;M>)It#rg~Jfrvtu*(#R=(rnOh?>E$<}G-5`3 z)9<7OcoS5acQk(V^wRh3QYW={h*^`hhc^D_mx*wfZedeM#b{7sV^+tUwkd(kRWJ8TP=a-HvvP2%}3Ddz;)^+EeBjPP>=#;lwT1++N`rngOgn9GC&({G9CreW28m_1qq)2YvHaU!$JX2TPohwAU@eMoHl zH}h!{LhBYxH=X+Y&D^tg2u-M;ZVLMI&77}k2yOCJUm36JZEu#*--+yLHN((lkR2Vc zJd|$ga@VwPwjC{UG?XrgyK4%WW5>slh0^~D>phTTD|Tl;bLAn{pG`f>e6*uSJB885 zC+?a$eY2w>p<%T4x&I~VJn&-|%%#cL!9E83yN#`O^f3RHgwOq7VoHO~tX6>{WTE{t zFHA?G-Ca9+yKWdAyj}lP9m)l<^&a`jplB}}0$uoN6=gObC)40a3sR+cDfReeg--ky zLi6#FVChBd=&c5!bV=^JrZ0u<=vntrx>&u#Gd47JXG(Sx(s|Wy11d;7tZ7I8X&p+t zl+iy`Qbsd2ETBF)viP(Ofi67iisEii*v#7{>5vg)4H;+BV#hBX(eWgq@FzpE2MTYt+i?VIt(T&ZISolxtJ zY4?Ob=2`qN<({O^B|CoLy4I#r80mU(s)`B{n5`&3yB1)6Z99<48-i8*BuA1IdUSgT zT|57OKUI0nk=@-ruKt=oBKM2(D)4fSe*%-q6IgNB-zI|tEeDR zr~Gg8$HF1B=mwqe8+^{%*xrwPx?YNuJ&%vE!!u0A)NFIu z$6$KyseW|39nP}e+}DA`WfUc-ATfA-w)r}zFZR$g>N{4@Iy~t}T<#RKA<&gP>zBDo zb}((7suTa(57dfw=t%B|Q%Ony)+yrj8HNP577i z+Em*jyynj~lQw}aHW^5iI{ni;?MX1*o~fUYp}+k+FEnjMjLoat5a_~B$TQAdF&O#% zJZw;N^6uPsb9$i=+Ab>Hv~0=`^NMf5^!w6ula~6!{GefCYRck`a&{5KK&zgOylo@s_$Z*r5|FM|kP!;!#G zt0;$?H&kD1HAwl(sttjzRW-hwABBd{lH>IINBNUu41H^_RBta%CShy7nn!YF@6Fq$ z1sPw>jk<e?0ousoN33am zhmh5)zM9v$hR|sKchC0wYHrddgxi-!w9dnP^}zD{YPhFu1`=~7eKoh@^u5darwZ6z#Bku)M77qIfi~?x z7k(EMWzDN{hFK$~sP9`2wE31Gae4Mv^I)E#@$=80!dnx=-c7SrQ`G@B1iJ7W%KI#* zrD|X7o@ifob|pJ%e>d+)4W|EeO*gGu_|07NR4{GFpM9>Rd^2y@5=@sZ)H9;ar)p=s zuW8*=g9$1~Y@7MboOC9bR;;UEOOBR{(kjIl*76(}X!G60?^xkeU(Kvc2#tELXOz!e zp*={Sq@4+kBB&to=EWCtt!g2(`62x`7`AA&RxNe0mbXn`8vGRND7K-bgE@8+$E!8CfZPHZbeS?hmrfFDnMqjgc9qp#9nAME>tx{O-K`V79qjpEGD{weq{DnKQ!Ke}*@z^O@h~pK35|dL_dYJMy=gGz+F* z_}%j7*x%+(_4t!Pef`e4{&7ClzfBnPU;J4`1&Q4^ewmND2Gc1^b>iUp)#{qfAuQeH zth&fqq0NT{(=D~{n0{7MXse<8i1KH+YtwYAO-G$Lz4x%%KcX+2GNOly3KGsW z6`IJ;dB2+a(M`B|QEjlT7xQWnY(t=H&;o@v-4;w8dg~dJGYgT<%{#L2kL7HtBCLdd zS?p+)Mj=$6v!N*V3+j{T+`KA!ztzx1v8R^~hR`_;?wUFtw4z5cO`08b8_1vM z@9Rf*L693M;;J&w*lPwOg zL%78RfkZ6`_Pg7Dt`L{$TGG`~S&KGy82gXoq ziQ4w`>xD47zF0e(IgwKvt6XiuBYkDzbzw*Q}YB%}^ygTp&}@d{GI zb|CST|D`^><%@V95bw(vGK{U;+`w>cW(ykvU3d%?#p`eaOa4C1`pka2c4?eFJ#jjM z-Y~W|#q#f1W|tn+cet;K@uQnks0Up%RnN$87svj@owYW~ zcXzmV;yH6sK_WEFBxbe?660cZ;#mn_HN5c@nHupyZsI1frFgKo;NtB*t)oeFEfp+g z(rnbt9wzZODM)W;yvgyypFf1=!y2v$|%`pIMY zRg2z23RqPLO|Q6(&g+Sgh8SUl%yQE1B zTN5mHw(@eX_{%8rUkDbSyY+dv!KXdc+qh%0eaB3R3KC;0nZ%l@!Qxyc{qLh|@jmL@ znZwd6`Mw>2F8gnH?8~0&*6GDEb8dp&cZI|rx{Hpl7Ay)}(7)XrPW@DP=UFnu{MC*? z7ykZ~%)HlJ^=p4ib_*!1radx>Pem*u=Xv{2yJM44ID}e6tgAQGxG}P|y4>cEEZO9T zL{BhZDvtiiBuPhFL>nWL(o9WPxn3_^aj zh+HSTySJK2Gii$~qHuR_cl*zwe%DaPW`31Xwvq}JB$}-=ip=2_(Trwp>1_oKYO6)& zFS7XoCp!XN_#M*oJa@LtUGafD(oU#+C5_@~UaJVq@OE!q$0*(;T7==bx4Wd7!a$={ z_-@x*;=`_aRLRW`<>R|<3Kb-dPcVuN>n$S1qF+_TosR0x7CJwnb2B>vUDjzvF=LrU zJnXF#uXZSTDk@f99okD(TVN0kBCNvYTo?Brp$73H%qj}^>gL{khCz&3W)%ss`c?g@ z6(egezbZe}=%Y|UqCmJoY+7vGqZ4Q* z+?P=fkLBq~-U|O;B&ysoh>R{)QO~N^*yi?KR#@^)7QCg|5$MA2kWTS1{gPi_-j?Bq zI@*0#NL0vc6q`$0#ePSRf(ecd2;t5fprm?W7rtg}J|iHiNRwM!3)DAa?9$iu7T*SFEqp;)jTfvzh} z45HXwtC-e6uW{&dIeE&_$2MnqxT^jjTWeY&M1-&F>R#}Ewsx~zh!{)%9u$$Sxj2M~ zq}ux5IZvr=Thy}~d*L-vnMxYOxvC-J>!_~oPL9-KTth_TiCx|ApUl=iv@)L>yVG*D%aDVH?xxjd{RWdjehgAJQCo#Sk%rz6Dw< z%28QfN}6N)RV!TK_fw9(tEro#n)`DaqbXtb@u;W z)w&DqWo+Y;vUT$bb~TW2aWIGtX;$%yepz}tckL!io~$ihV#nDL=<1W#AkHLO#oGy|LxwYx?$5pUxRX1YL>G_O9-;j~YZ)idCdO>Eiy5K8N%05K+ZfUmq-$_R!pJ z@E10FL9jvviQ;r8T2eGbBvjICjCTq#k0^GNx%CaTBhb~cqCvP(3k~@1s=~sTv!hYD z_@iu3yQ}&)+9a0*{KiDV^F0hIS zx*Oo@t13BlQ{{?>e%r&gpE(`o4Aqx;9)hh-Tld zVm#fCDGBIWi)|em&sP5OQ>bh|X%N9lRx$s<|6bLu3a)HQ>Mu5FslQzfBsNAF#22Es z{CB5zkFCOrE&Ih(v^{|?{B7thuJK>k#goN&_Z@XqiQ`7mw1-th#dy1C(rTZgCqUb( z-Q27GGm83!t-{f&KXHEN%FCT^mf~3^XN3w9_A8@xCgtQMH{|2&adkTaT|M)eM25*K zo^;b|sPTEZ|ChYn(!f=rf&{L_QjTnVEzUcBXO=Ebs`eq1m{#8+W>Y_L)fVc7wYP}X z^S#_lMw!Iq#ul-lgkHn=tQrr!@{3(`D5X%bBO**?8#jkSgC zh?3yKE2Q^9jx5XH?KSa+?@B9FkcgaM60@gRgqiwwv_6=t6t%(}{F!e#I|5y}9!>oc zhgQ7RhdAcqkxz}x;~;j=2^RhCb#`y~#w6Z74;IZ`{`Zq-j%mtMQ(iE)B?aw12NDH| zZulZt%p#i7B1aqWS0mrE@(xAp2z24MZZL%88OEL7bYnSdZIpR~9K_mTL1Gh)e&+Z( zi2XByL{l0MbQ$O%;%5bk+`;rzkhpV1uhGBb zaDJmtdsfrD){a0I{<5@6)_Ed#i%qh9np0nH974&8?E&IzH4pbAV;scLuL1wf6f_#{ zAogtw5HFMTS%cCz^KyjDmHE55?$8c`lIMVhhXE8ehUHBau z4Bg62;!fA!#5^tC*6zDPB9>~n77P>_bM+cwt0wYK9>1cmS-RR0=)&BI!7yv$cs}Iy zP?>+va~pmR*QO3)f$|qQd^)+`=;9!9mk1Ci_UQ9I`&UiipVPX^Voft_sI2JWAo5iY z5DBL{x#RytDT~=*y!MX<@@=ldcAp%HQK1f^)zSd*wuJsUa=A?8+R7rbe=8R|0$un! z(K{{51@b!%NwVRP9p?WxXQ}5_tS?L=?wg-jNO_i-aVF88{vAF=udyhvmCx?=NtQo7 z(~Jrd!yFyN*`EHQJe@m0yZgHib_BY%lyVRaXm-$*<}#_5F)ft8-+WV+ z3M*(vB_Abu)MkIN$lU3Fu4)&pJqGW*Am%gsMndy;aV@%YDS1e1&RA>Q#G$KRr+`aU&8qJqS9hcqpfdNS|cUn3%^>TEV@_E<_tf3zWiuB55y z+JWCzv22ijRZSB(8~bpKnmRc|qJqTS$?4i1>NC2O&}%$fbSGAL=@I*lzUrS9of`U9j11L1iFg&)A)R{MdV$f z6M0)TRrCATRE8-b5)~xEEYu61VG$enMIwGr@2D!aDWh&syFvn85APU7*H6Jhd#Dqe zc6qC4>M5DoC86l;(N&U~&KAc_NM{j8HY}Y?qCxT_J%k7YnUA%?=Wa+Ur+!ar{Wd z(kIIMR09V%ra)VV>Te9}20)_YG<>&};xNz|^8Kv&3A>V=;V6gh|LS2c3y1U2&1 zc3at*ArciNBK7(93xQ&dvtHwK-zka>nCJGK+7%M$+DCKYwu}IJuZ2!rn=nCneLHUc zOzjF4B%aaA#+P*JKbRE}S3ZO(F_1BB{zn@U=sHbnEVo((2rrvXTrDqNyKPHNSQ_Ix(AD^!qp5or*i zw|&Ku_R&P_v^uE$5Bl$D7NmcEIZGiTc(FdRFG)!Ia}*9 z$XApae3po~{-tX6YZE-GNQNEI1<4g_**}TVizLwe*DoFUJ{nLE2 zeZ=8gr-}Gnqm*rBlPUZ%)j$GW!P7Ie2S!S14%DxzPHKi*RlhJ^fc`#EL1Njo3~gOH zRFKGLOxKn<`HG32 zr-+!daV7iQX*AzJ?FtEWxi0#vO`v4eoohM~%TBPQ?F0E|YFDTrv1aaH?K&mIg2tXC zBIN8x)-^qt-=%hi1iC8MN!7Fylyv){6Yru8d_q)D{({;SDoFTMP1UL&@)dDwqlh?I zuoQ3o$Aeqw?;HtqT}({Y^49hfDaG^}|2olInzp#{S=6pjK_ch3WbH8J4(6RZLBy2q z&G{xu6>p;790_!N_>rV7I^!n{9rdg7pWK=cJYAkUQy&f$B&NMh(n>_p-+A(JA{OrJ z#`muogV5eamSDxaj~>*X&}mgraI7u}oJ+?LKbwOv$@xKJcXThh&6%yrXi6m%NE zOGZCrA=IvrK$pYJL@g#qfT$a*6SGDQ;(62v> z>cb&{uIPn{T6~^h5j#@9s%0yN@Twy>%eB<5P(h-?)I@Di{$Sx-UaygB(m=jr;cYpM z`fx~~YkQ3(&GAIA@HnXxi>CYXg+so|@zjSy1&N&HlC%w{g2jvALqzOZ--FLPoL}{( zc7+7Gnq(zu!CfulT(V9q324Xnd6rZgsa>Ih#Lt8z?ORWa=(_D75lP-HxoliV6{Q+T zpzBut6z$S0i`Y?FuaWVi27kZ5sai$t3Kb-pno_j-A1tED-2+7AEK-_h4C$oyQM*C{ zT@^Z|YL93Zw_ykUs;)WZ;nAhLs>{@_P(fmzmZ}+itm0zQej?VE`o@eeg47u5!y$pL z5(oZj&ktHf@(}&1x=y*oD)$IcGpJpmg2b6!f3=k-tYVI{UZeQcb*%Q}Q7V?&6%y!L zSc#q=pR8i&2A#;ib|A~#G)k4GXA~+(%qgF)9sg++h7S9PNIzGQmHRSDeWP}T1iCh? z%h2v-S;eL2IbLUYv13F;`dD^!q3T$`cg&qXUg^Y#+qRpDIByDn4I9Qr+wKv&nI zncCk}t5{G$uTk#T8QX{c6Vyj~Mxla4uHutT`@kn1-o5bWcPAU8}OQ zwNvw~qWL)estPCGlQ+8us|NHrP(dQwWDrf3SVgRhUL(uHsNNRyQK{6fkU*DZuR%Pl zWEGXy>%>c5NEJ!(R7QH%qJqSpgR}-+%_>f`+eJk7%_?fvb$8`YeK;i0RmW@;MYmeS z)5|(B`$t{1`a=V?k=hk1NCav|QD&D#gpS%tME{?f3LRZp&7tQY66mUM(kQwWw1|&J zy~g&p9o3uFMO6cO4x)mD6Xg?!Qo>{0p&djdX7*EcM;g^9`W#50YboXL4u(=%sDpl0 zUGoJf+sfCn75xpOf<)QUCUIeCuqd9qorv}xLsj{{r(_>$S4f~Mp_fUFj0zHQ;rdlM zEFY%AGnUB;bWcPDiSK?U5qv6045*>kI1wDClCN}-{?x9JK-Z*6l#NOZ6t#EgMD=;& zRboJzZ7sDcRFF70!z5Tzps;n>MntIR6m@FBqnOduheHBg9#c#rU!6d)`>IX^HwjaN z54f2pQ@cV1i5atLRi<{JXfb9h5zfaZsh*L=*l+qhkU-bq02MvHuMG_Gc6{I>J_{REC4J6PNbe;D0Ir@uLBlN4v{jG;m`AvL1 zJLFabK2UQ01P1LSXLE`28 zEUj`wU(xIO1|mFGjg=WM$MG2Y&5=M?cF#<0742y%*;T))5}Rwu8JEZMhV+}Gf<(nW zncC2tzG6@2dLsT5kF>qmFqyxnXDt%wI`}$6t77mKQET+8>N}xiOyh}R+(>N~6(q(G z@#Qb=aBHL2SP*c~%*RdU7HU^WplgdIU3)@%rOrLjiJm3Ou;pXM@fp;vP(dO`P`Y+D zzpv;vZ5BzT zBHBcb;<3NhvNBWy33SzIoT#-}9w2ts)@w{YKZ-v$_h;MnJ{%}WC+WN zBshojkdk>=47DpH(3LkwqV~F1pcv3qzp4|t!}zetBhAmLU7>=+^5g_hY71Wmi6LE<5ix1b z5MIASw9H3+I3&Qs_8ubxE&JzPRW{fX{8 zy+&0fs9hm}t|1qbwca+12Zg9c0tJbHGs)Vb3l@=@Q?D^*s|#Pg zQK-^%PecM;n^RJ>7cHz}$W)yeoVP=yRZg#I#>2+EY#|ShW@t(Wz%9d$qw= zInsB91iH#}{i`ipZxzk9>%@`t$86u{KvjyKwWuIb+vBh1y45PKc`qU&H$TKq8iuQh z)Q3X?T^%o`X>*>_=eVsCBbUu%)l-J66V$FyLE@lF)8@XT&oOZ!5hXh`W7#bxs-4uX zkU&=}w+t;N!zy;<)oYAc_|oi8Z!G9U&p}j>$Y`0NC741)lamXGXcQ6Qwu{zTJn3^F zfv)Pu|7nr`D4E+uzbe0UZ(BvzFtwTb45%O>PW;mzQ(m-YW&{zr(w*eF4U?1)wJRjh zHM)M57X8vHw$IkDs-dN?yfJ08szvuiRFFt+l%<{fU=>Xo>NTomZYbF7-DDNL59-AGmQtqd=&ue^yFvwtVf(W+%MPpf(sw=)dB^{j+eQVd2x?bIpzGQ+ z8l^HCrQX$vWnMW|_PcIsCABM5khnR^AX>Jel=tL$M7Rc*RZVtuP=%-uhXlITls1Z9 z7cJswnoityuco$^Z=ssg?|}*uD=HYps%sV@cFiT?P*N+EHMo{?r#>7K=vuMfC?XqC zlDxiNCT*~f}fz+;0K_beVGJcjT8vs{dWpj7cBhW*Z>K1l^tUgzc%;@j~6--TUDqcBg*gv z)UHrLVo#V+bXemjUd@|E#QN1u)s~74cp|kcB+!-h)gX!&p;ehY|6NsTRkf#GOKzoh zg$fe;e^EM`df|;ir&5iT`<>LXW1ab6>cb&{uEre>SXEoUDr2yNW{}Z3AQII!})S*S4g1C+5ArnrZMNi2>q&xHttCK0K)i4YFDTr zF`fw5G#_#A{RASCpEop@s4|6n)BOqwbd|Z7u2rTHWTk@oRUOOs-kk7~@|@JJP(h;f z`E>2CgRc<%#}l!kM^APtdIGOZHIP8p>vn0{U^<~m4A!rz(2fOc=B(lT1hp$vkeH}Z zPo|!)=znP}5#ol8wa+z#-=lVg1iD&2P1P39pfd-e#u2f2|8wST3gmyNU7>=+{QId| z<#1o&TWAas6aMAoappdJFSRQq&~-T?MKk>L6{(pzk$Y27{_I6ZIw>tgqJl)m^c0PM zrk2=y6cKgbRp)+Y#&c8O2MKhI8-&#H9ff`SEUzSWUVoB7v^6G`ize14XMM`c*BeI)M*Zf7|R!eK=H*=$w(D9jp>4 z{6j;D@Ccs5bJp0{sv13OkwDk30*Tsz@ARzgGnk0zj}v&c`txlKsSk$=66UM~t-Bo?$u)a0Qc zQ8)JhA|5v!!3Ra`mKUjAA%U)U4->UFfx+ULi+)u@I<3dWDym)y zB*M=z5AXh`m)c703JG*=N=?-m?J;_LJcx*=6~41U1%1^)YFDTrQSMKwc9QlOE}m8 z-?%_F%Xxwdq&^%H=xXzdRz@j}`(~s+5jQ%QWJlJIQy-{Zp@PJ)7wOvDO!{_XeTc|k zb+EZ#%4D^J+Ab34n%U!@){#~%j~Vorna4u%lU8hA!2i# z2-*C>7JikX#q6S48# zbNRi0h$=zPS|rf*xtBq_?qd~e9QCU@-QcgRNoQ?Wp?f5k0Uc5dk}k zsaw^&)hTLMNT4e?#UMITa^RhBFCyl#3Q8-~THT{|g$fe5*P7l4y}q%^c5S5oQoBL| zUCkyNMXA0PAusfx8trPDRnh$}Y5?`&P(cEBXA^P4TWxt=RBfO>91`ey_Sq`J&garlF68nr7V(1oXBP*1-?m`cy+XUo|o#P0M9B=C$2ns5IRrtU7@8~x(A zpB;fNJgb9NWyTj)^(sG~%xrl)F-R>t7%x#l0-p?YD%Zrh=F_D- zmDhS_g#^0tdZ%d}X!mkA5B>RZs(Nwu@vFZ&OTPyyNZ=EWe)EbQSfj{xYU@&Gg#@}1 z9;Rw%c3Xu{y8gs*a9_c)cJx$}s9m9g1U{*0cJSOzX71Wbom}j!kU-ZuItv9am8AD9U&eIdxk?_Cmp8{tRFJ?PxxvtuhOF}|Pm%?e zJ1Zp6bz3E9?S2P}5|Mfj`53(cY)z<#{6g&t6(n$EL958B6VKQ9t8F;7D1#bzgHC;J450{Qh( z(f+}KyutVT<`vth1}I42NRMW==XT(ZPOhv?B-H={T^lIz+i!!vSg=bU5B{CqhsRZ& z&h{OPm#83tBUYLN7|!_b(ABK)erJUQx;nBX?R~tT(8}uL+E!~j@sqi)u?{iu5)~wH z#a|U)`#{@jA*0JGhBX9fk&zeJZf#cLF)9iFH#=yjFN~-jr&fVn^7`6b;XFhb^(y=R=n{DDdlV?W8OH`1+nJG$tZePqk|K+^yMrVZtx(1z2*S>%75$n6_vr&W2 zk6=@-_vNn-#Yz!^50XBb|b746rNmptgKkU*Cs|EJw~>LXn5>GN^cC}Zhf|GPEfVFA(Ttzo6faRh0%y`GDZ4C9<_mG*zU!P766iWiXJ=HN=_d+j z>oeQeBTFfl&91!D{&%uT2U z66o5t!6Z7=3=-a1dW{h&L8{%_ztK17bD)9*uKdwz_*)M({^`m0t8D$C!y<0UFc;0h+aCoZ_H>i4^^97X+hB+zxBqDeUJ4i=|3=qrkA ze{@&H4sMjc&csVpkieB#+J!x^g^G(kDC^Vs0||5uKVuZvJ6S}-9{TEQ`vz@PnVN6p zGrI4hf&{K8)7aUuhT2m5vwTKl10>K@vkC3`eQgmx%j&Dhr>56am3kFY<>>Dm6(n$F zoSr!Uim4+T3##{YFF^ubO;#I(m%mlyNz!W=205uo^J=Jh)UHrL0$2EHeEus@-d$2f zZKZo666m^mDO)Q-yUADH)mPkSMgEZCb6TtVG&Vp52}~*&3_TW|lBUwl)P|ML3JG*o z5m{O-%6`1rqbCRQ9o{9c=I*AR(DMToBrtJ7r#dbVl}QcTs2^LM6%yzwa)!=au1s@% zqxF=9wS05ArLmuS7!@y3K?0K_v?KS)Mcb^79%?6z4UjLwXlT{I3b(x+@b zTmP#;>Mhkk1qn>R(A?|B0%q$vPj#Ng21uaG;YgbH!4M+${LyRVtM}UMYz|aSs9%B# z5}4$nmFf?!?ADwP%AdvtNT6#(gTI>1W))+u=*gPug{HF)OZ%w2)W1Rn2}~r>y4r$O zZ1*vyLaALLfv!HWDcYUBR537 zNGo14BvWSD;w36bU}BH%aQ+SXi+b1PM;aR-fv%=i5;enTI(6u(UgJ=q&ivnVn_Nd@ z15}W}-p`!T74Hvq`0i18ab*xU}bK!=ibz3Km`d*;L|h8Es}|&Zaj|qyGWqx zOwV-f{SP0JnWER|S7ZTOo7s!6-$(Pipdf)e325g_p=NC7iuOE|o`XoBYuc*}Z842G z|D0V*HHNxpndct~;NEn=U>N|KUwJ)OH6|TcQX>5QB61elpV0ar>SUpjN`5F4nkwDj-uSRhw z-A~+Gv59Kbx>8%MTU&%X)7StNBya~8jV7vAQ_C0qU|VTyfCRc++nPj|o&LhzQ{T0< z%A%=bKA%|aBk>XyBycAh?PJN)Tsa>(&O+(ljs&`1&!V>s1_g-b#UrW4v~k_kfVn%^ zO!_-V1qs|yN2ejSY@@or4rSHo8HEJ8uI?}iQ8Q3{_@>wBPJP`x7n-vT)UHrL0(S-y z(cMG!?0?0)n4YyrpzHNkldz-)ih)YxQnTPuAs33tmPU#nX?53u)-z=NbdUSmwnCaPJX z+-e{7OHe@qcK{O+~M{(%j+_|gu8j11Ac3yIWiqu+ z;{9k`>!T{r*Z>tIaECn2M$K@L;Uzk$q11;%0$n9nXJ~%3mTJh>Ym8pB z$kxvsq|U2&i3$?9)1SUw|5mN0U-486>F)yxbPX?(uK5-S5&PsGs$m(u+T5USkSa&x zC{&QZ6ANg?UH z!?)_Q*_tSKwVm1(66o4dDOEc<)+&Y%-bXb$S3SiZul77IxR5_p0H_4-C!W>v;F zQm<)F1_^ZSeUhy0&#;I$?e zycd$Rg@Y{OU#SCBqeZ>4yg`S`DwNi?Q9%Mv^q|wMJ~{J=`Esl2H0DGCUA;dgYDrgu z#oVWQje5tL@Z}wHsf*|IzR&+xkie5kD0x=9E`QMPv7An010>K@hw_QeC4xonRR^iY z#QYuk%TBlDV_FkN1&IoFC%0^^Z02KKHpvUrFF^ubi=QWGJ$eL*QI+6D1TuhF8DA9syu%D(T7m#83tClJv}gKHb^kQU1J?sis4 zpzGSRL@k`&4&CthQK~VqaW{T`-%d6*CSIa~1fHZsXCWa`C=F1Ki=GEz5f&{vbIHYP(D}2RN#}ib;^=c8mZC`D! zXNpik0#E3owgZ&w&aOc+wcn zEzLX378Gp3KhxSB66mUyn5JdYdsM4ljG`LF7Hnc)uXX1KcEw9nkiZkuC|?rRm(3j9 zmR1y<6%yzwI5|V}cIwu!a8C>E4b6x(?3H()Q80 z1`+vBQ;nL>jq*!m0RK*715}W}llW-GeMU2RU~_vug2o0&psSeCAo6zh6_?)XH5S*3 zkYB6O8!D+?p@IaSC`k8`1DoW@f@VIQ+7%LZu44xA_yq0dkY}jI$U*mHm)0HlE_$9D zKtTdeMx^vk&v;gM1n zL-MKkFD3X&nioX^T|I9bMdCd=55N*lHG(a!%Iifb?nZeZRFJ@vDh-CCrCik2dg<&o zjSY}MS6qFQC?4i7hLnq;8e*kc)p(T5vZ?K&f&`wpNxASYja6Wk3oL{BqDY|Y+<24t zQ$Ii~c%#<{{_Uk+&x>L%TjC`uNZ`q#bXM_ZcS;)0W(Dc@K*G+o#U#8_>D1E`HmdQp zkdG?!-H-LAe!Bq_B=7`O+F4w@lPdfvC(|=UNTBQcPLpVGDNtxjCDpjmDM)4dEi^Br z8mJ(FC%Mw^ao1D5ihCTLpVkeKK-Wpy2N}6INL&w9RO4HGpvs-F-Ykpu1%dx;z#FTF}dYAs-eB?tCnmWE(2(u0Tm?hWL?^olEBr3DT`%Q z%6=e$t_kr*@i9GEOik5m99ZP3hP+gA0nP8Cf&`urOyBPI1}Z8#RyL)~9TMpJG|?#9 ztg(o8C(l!jgX3GOyIQu~Mq>k1kie6U4Ti?GDyZTg4JwPq21uam)E9$Dp;Nh<%)LN0 z#<^5h{rtM=T^0-Z*`X16%yzg#SCKc3ae-te35Fn56z`E?`Wd# z(mfFsB=F>E$`0;&B>#=6t2WW|90_!l&y}tD(}{A=&6lXgxsf+yVD3(84dwb!K>|}HYMECYg}yk#J18qP`#%yCn`wbiRRQV8JrN~xz$r$ps@iG z=rWE@*G|(Lj&3cyLN&s-ls2C@7o_e`p8*vl@MLycV`*{SywBZ3xlz^`33Ofj^;cW; z-YORLyGk`Iam`s+LpsHr#s;V$fhWw<37DRPSXAFODwx_966g|iF3w>(gRXhwYgD6S z=bda^*KTSgwJTJRz?1SR-4-3i`0{3IKGi@1UE5q!v=e2mVqW3vR6~CM#tix0)hrqt zpn?RR_)n{^$+S1Ie`h(V{1}CAWWu+8;hU%oh62ME%de5q(&k~Yd$$u3m@uav!0zet z-1W=yazT3nU1yUrwTe7MOnRd4v^W|$L-vi%t-fS=DO8ZaggK?D&NP#L9iPg?#uhsQ zT{rvv(>C;`Gy6mIeEa#VigIsaVYS7@TcLskCd}!*$cguD_xF61AKO{%2y{KVnyv+S zg@`ea^qnu2d?(o|?Ql{v%6ThPkidjFjqWNLZ8@fWmmO*`8Fb$wR9cTT0KjFR~cf+?K^u z`d2T73KEzwrxo}5zs(Iwe3bt(g6#-&xx1xkrL9)6`ktO|f7Z>yMr_Hi+J5m;s33s} zb6WYS*Om<|^jJ2h&w&KG+GizcGau9WiPQCbd)e7rSZPDHY@X(&P(cC{=Jd|V@^e|> z;`6c<{T@i5D=95e+tGyPeVhWQ#=;vnSe4*cvTkW_g$fdwFsG51+{Idk?~-HNTkHsQ z2|9=A;_P5CY;GXcFc0|2hTJ$UOIP()s33s}a~elQD0c7UeEE(3K9E4y``roJuZuxq zbJ1X`QRt5YPj0$Q7R}+UP(cC{=Cnqib)Plb)>9_Y-#HTK+UH9(=)}ePHVf5=%Pz=` zH9N`UKfDwwNMOR8-o59-b zg$fdwFsGI3t>0MZ<>PDz94vMOy1GRsXuh5SqFRjsRKxdh3GVpTr=>Z`OQC`UCd_Gt z_uF^&;d_)@2N#Py0Xg(t)e|+Rx&C73C4EQkpo+!$gQAbj&5C*}RPg`BggNyS7kp%S zMn5!P>0q%V&{gR>?WvCQ6MilAeEZ#U1$mE$-fU7GZ-ojHm@uc2@YSbm){4fg1-IA{ z=z9A(NgLYOPc*RUJEXnZJ8-YjE7+5K-U<~YFkwzTTBA=nr;yKs0L@@1;;d0u$!+LN|M>oycmDg&|9H`1SZUBFIm@eLEkwDk}xJ>Py%}2B!r03h0HjH!23@pL#7V%c7Ab|;UnlF*tTZy(m*vm2&I|5y$ z2W4wBX#VP89zEZFXwp1ekyB254E>#>f&?baDVH&Qk?mOSZ|pPu=18FH#~6dC+Ku)b z*d|bou#T>>*w@0m4Bf9#K>`!zw9Xk{T&A3Q!;WVL+Y#uhP}wMU-SQRN$Ljg^ikoN3 zAM0}SS#;k;1qn=;(`ihpUiVqemRuLemi(8 zRFJ@gIo)?-SIDX-PqF4^iyeV3QP(71=JOW=w(I%!V27u2V#mAeXbpM}f`SAl%xQOK z))ASuXah^5J{%J0;`Cmbd*}Rxq2yGmQMcw_Ikn3^mQ~VQp@IY^%&BMD`l`&DH<^{I zVzDF8b>o~#Jex;3vfk6EM$V#nRE0j%*-+}2pn?P@%<0M5?5SK4(~9lQVX-67RpqHk z)ew0&gyfJs7XDt%w`gYSK`Zov?eg$Vx z4c`||N~<)(97p{`RFJ@gIVJmZ|B#P+Cb+FCV6h|6^=6|Fl`!zG}kx#f-D$0M-Iztu_Ms+ zl-|jEn%;Qp*JEa4)D#cEJ>On^M@#v!sH0j?%3Gm= z1SZT4hFv?-Y=@h?mwV_rhy=PE>SSowyVK`rrRUp6H9Ba^@wB))`!z)RS4! z-j=rLoBYv~zAN~@(B--&O)K3XL_`_%?D;E0Znt79OQ^t{-U<~YFk!AI`%k+4Zumpi zb+p(K=vtBIuU3`bSv);Xud#C9J#+D)#Z|ALUJ4Z?FkwzLa$GY%82DMnQoBL|UDH>j zXnAH@#mS?3zC9qX2kVty!kkuRwuiGd>#oW*6)koIx*9i0()I*cgmXVV-(K_TIaadu zXL+Qsw?YL8OqkPt&P9=|yw5@D($Qi^po<44YW0o>i*-(VzTN%7M^-)cylh>Mo`awu zfeCZ!Wz;##POn%hecb6e2n4#shcH^{aH=y?tb5|}Wj6U@SI zv)!fo%U4eHJO=_@?*=Al_o@ep)_e4Pd-H4gxmTwknN4E@RFJ@gIjzb>y<%%7Rg}AF zY=8v1EZu1@a`!-Sbf%tfH*3Xsvsy-ZgxVDY%8;a?Fe+WoSUF! zObrmf{FhOU?kh_0J;{9xl7Mz`En%3?>LYpNkpyMEGNjH|Eb z+j}*0;-lJaHT&iDR;VC>33KWp@B7ROY(8NA*4AQ2pzB0bqV_V|PgIK6Ys@I)$V<&` z&WsJb6)H$z!kkV|N_)ZL*H&iXbWcPAU0=2(X$^e*M4tnCzI|)XTs%*n`7D#h&UOl9 z-7#TK&-2LJ>`|2vHmaP(jzHI#o5|XrtG;63Bt74LepDiB8F`dhlf4uwNMOR8=0&s4 zu^X_LRa>S4DHHpACYxk zuTi&Xah688iBEJ^5h_Sv!kjX~1C`nF>?ih>`fx~~EANO*t!9*u2%Nc=YIF)ZTz2|hiY<}5)$ z0u$!6@^iei?RB&7Y<^CfvjhTNjoZ;XS)2QcGu8Bbd*34k<)Jx6`B@qppn?P@%&CUe zC~vCwtQI|MkwDkUG|IOh@D*-3^z8YXfZ@`~Cm#=?u>mSbV8Wcn&bz(j?n@8Z@cb4# z0$qNqj6$~Z6Q7^yHTsp_B|UsH*usBa3Kb+UVQw%K8N5Kc2TGP!-(p9gYd5{^=ICob z@%q2_X0+LHM-IRKlr^Z}tx!P%6Xvw$<+e|KEj9*Ey^}J&PTIu0~NN5!N$6w5zP=+XwpQR7G+wWStD& z3Kb+UVNUZ`RpaE!>YdrNd=@(bT_YdSn}J*dMM9chV|*@0^~#5_zce;L1qn=;(+D!~ zy{wq+z?`UEA%U*Y2PP5tFHnqqr03f&=5kW^)1%Bs=$?oQ5|}WjeUQz*%f-gd=JvTP zb_BYLA25kJw}M24!&|7v)h#8|sL8=Gl~cVGDo9|$oRVj=zRP?OIc-a-S?maO&7rsI zc3T=OZcfzm?NcWdQ+K@LZNEx*D^!rcggL#zCHRA^dE>L~1GOt8(DjW@%^txmqHg1D zRAX?70&3j9e$uD9w?YL8Oqf%Tti}`BeV3a|ZcgKK_`lF~B-|+G(wpTf|J7?8cx+TI z5o_hiT;2*5BrsuaFuXW$RqpbdEJqf$*b(Sj`jXyuGl)*dzp3Zjmo)eyx3xGYO~1Sp zDo9|$oK`Jo9g(LmZIZ?5Ifw+hl3WcUf!<3tbB~^H&vpKioI2ryyh(jHRFJ@gIkonS z%jLxVXJi!`8z6x$^Z6`o4P~}3&)7*drc_xkk4-VE(FtA(6(lfWPS3$5{<4hauKZcv zVn?8>R<%qm+MD(}ch&Rl!xFp8I$sK?+K%1|6(lfWPP0)j9A)FaZ{!>r8z6zMCCf6j z(zKRZu#lcTk9K%rv)nJH3Q!*o6(lfWPC4Ytb8Ia;eU-C?#g0JN&VOl|qd7#JzNOb_ zJ91des%a(Ese;}L6(lfWPA39An%OF=_Yc{nq{WUv*Zk1G+HX2Jl11wI_P#f^n2Yyw zQg{D&DO8ZaggL#Q|iKc2ttu6)H$z z!kqe|hsv`~xn9fsR09cg?O&a&C0DeHpFQ<_`^=g1S?}_>)C~IjKm`d*nA42cqEJ?# z$t~$h-xU(*>OUq)J3Eiwm|k7aw=W4e$xiP1EmL!QD^!rcggL#1@8ue{qSXm`oPKj8 z&^2R8qSotmuvqy;uTg96OV-vJE34C(6BQ&dVNUz#-A}MD=hn!sbWcPAUCTcuXin9F zMe!YazCCV51`F}pDeD*aR;VC>33J-7cKSLC`7l;GRrR%`Sx}` zdATuWy!1`+Qm7z-33FPzb9v56+-xX2(7gl+biL`CptYJGC?&^2{5ofUQ>Kpd>D=i5KkD#1@AdfWQY*Z>tIFkwz- zI<@}6X8hO`Bk10a1iH$-NYJ)__7@W}^%@6^CHV3_eawDFZ-ojHm@uatz{;`!z)XRvu&s-9Eux-?5KmuJi!jrWF-+YC8 zJ3Zg-&@G+C9Nf(|X3)9;C`e$!oSx^`6zjDtf{miS4-)8VayvzfqIZ)oDzE3;^W1&T zhV{A4%2K}_6(lfWPAl%Ecd>7$_OQa#heHBgEj#|z-qM@Koip?rdlp2oJSXDWKN^3a zf&?baXd{(SR17S|>hA4K03Do9|$oK_Uq zyR+jhAG18vr$z!@33D1pEv;f+QRF+zpfL^-=vuxd zOFJ9qBi5GI^X>Ihx5fm_Ey3r~-ykYTV8Wcf-6lrcr?l^E6OGl7K-a_)^oELxzT#fI zUL&H>H{1Fb#rQ0`m!N_KCd}y_JZqoZMtgl?4X9lqfv#J(4Wju%U(x=*_tCpI=`AB3 z6yPK1o`?z(m@ucF%#K#lq2*KNPh)2!(3NMTQEYIczw=#szTNV2yLw|0DJhJr?yG(NcNT4fss!?e4{_}&Q^nCl9xXZHV>vycTlea-qLvyT8izLv1W?O=?%5Ab|;UgJJKR7&*B9B9@cp zWRO7DTsr^imkYfm=C@v>-z1ZY_g>A4iPCx-wG(NJ3Uzx^?gu50u$!+MrhwRGGF76;~Ojqisj1PmKx^ zm@ubY#@bJ^Qlaye0)fvz?5uHR8k7O^Ooo;{CnDx{X}Xd~ZI_5&3pFkw#TI(t5s z1LxG1C)!%<2y~U%ViZ27EuzO|y+-xjIn>!ci)B3;_nF9UDNDlLY}Segq* z0$q1<8^!YuR-vud^X*&i|CZI}pOpJ(tcD5_m@qdOR>z-|ADXO|$Ee?q1iC_d8AL;6 z741h}pc)@~+?MgrpUXIESEwL?33JN(T>n3+&N{A&=56DLgNogSiCtg^3Og%13SxI1 z>Hx^$@P!8LF;O$Ab|;U%Fs8C5}qv+#Q|DlK>}Uh=KR&B zw{Y+!WsQ7$#Qg!nG9ss3L3048Ab|;Ux(D}E5Z1g;#1vX9LIPcf(|&8A-5oshxl!YC zF*h-IMnTzuvTCRxfeCZU8l2dvXW#cuc+tBS33Rm%&(N;;JNUymBj0W4&r>GoA z&s|iIz=S!S*25zc7L@ob4%6Bl66m^i<)=2Ipo6dMYvkKEF9=h5yB3u_X>JJ>Brsu4 zf8A!om20~{itLn6L;_t2f$3WH_(<;0&r^*Hf8E);69wcMdJm$41SZTW-|m@aS8gsJy(?Dt72rX+nHK7 z4+o#PqJv-6TbWwJvJO6${`=NoJ=Cpc~jX(9J zg_!NjFY6&d`JB-1A-bC&ome zt9xp8HSCB|4SOFCueBOH`1+Ogf#cI^&0)zxN@Ze&u6L1iC`$OxasA z>2EmK$eug5J=d4CtRyZKik7G#fthrAJAePJ?^!x3VQ;or6M?S7d4Fks!E|lP8QJq3 z`!z zG?y{{zTPQnt)6fp#zdgYbqnp)cZuX<8XMX3{=r3jU6eM$k?54DAb|;UN?CM0sLOiC z^>5!}Oa!{#ET-@9c8lO&uY^#Ifn60P^fwok|2icqNMI(N)*xNy=;^sG>nlsgnh12o z(z<$swe;mhHH>Qfe7;^eRI{NdTq0Vcf&?baY5wYFC%r<(OFetxSQCLR@4Cs_{abdv z>yn*n>dI`w?M#e`K$mZ|WQ{4IyupiJ#`P#xkL{nDs0W{MN>q@*OuEHV zaoiu@fWrUu4sT;j1iIQEqj{e}A^hN2BYU3nrpkohME%Nlr$hw_%%sz)r>&YR8xFtL z$GOLv2z2$BlA@&?2!n4Bz3h~zAc2{5Iu*F_U8P>TO?qCs=18E+qg}dI`JatHx-p1q%!zNt z0=rC5?ozu#1qsZg)A>FZzA2sNN9+5j?IM9Lug^cVij>)YGtJ1J|9I1Y)%H5AtQJm* z3KEz}r|%+{`>os^T0y@>_aGAJI=CW3YdXrtPgOIr=lT4~u)yP)%Ahw+i3$>!FsC{F zwdqP)?qvx-3&olUbnR*OM=R0a#@lZlMm5G2|EJVgTAbCZ7%fpj0u$!+y}QDx%FO&( zea?Btnh12Q`TSQ)onYf#${E@78ZlRtDgK_U2ffcxK>{=BlODIE3c(9`@M|p`M6RM zzP+2bWwnkwB`Qc@CY{cic$ui=`n5xuOnn9<&^7z53;#zsfW~*CsYXbEo)Gh_B`f*J zDN#WJGwF2hVAah^_H!qcb=3Dk0$qvWR-W=Hn2)d-+4B`khwGdt*r)VN1O*Aqq*FTK$z5NUOe?!aeQG4o zRiLOV59k@jzvP}kHR>w)#n!)t*t~eBL~mv0VNUZ#ni zM}9DBSi4sdK3h|il1J!02nrIINv8zFp2Z2LmtLL^^lyVK~1s)ySR?4%Wn>ErH4| zw`hq95|}Wjly{ymy>`9Filbbti9lCo0V{7lhxY2LM)q7O6Cl{WSl_>eqa`XxU?!dV z3@JWkv;EztflBSyK6$_4^D{+5|~M+m7g{z^tRoP zDCO?PmkZ=0B=-)dx2_MMM05$HNM`k%IXkb|c# zGP37NwwmJN-G}(U=>;sOW%7-D44J9a4~ z;y>jOt1_Gt6(lfWZn3;;nXaqPYWf~66>B2UHKqJ-ZQ^|TJ&GCGbIZ)nx_=K3F`#6$ zL}c&~;?=FRknV2Tyox)TrX2>#q~*io2;!i3$>!NvGX_ z!!z}ZgRT1Br!gi1U32fIYsYC%_4NOY?783Q8G89lKe7ItQ=)N( zCu2+mx~jDMp^ZNj$@Mu#_Ppwng8JI$tweEZSEwL?nRJ>XEB9RIkCy69Psf-Dbd^g@ z)$UcLe0y&rdp@IRg=04hw-u#MJ0&VeU?$yS(F+QFX~IFh%j*~ufv!BaQnag+BDhCG zBYQsMcrj&$SAZD$)hSUy0yF7!_Gh!D`uZ2=^fSd{O$53&rO>%*SHtO$54f(E52q_HgdG-^iZV?0s2r_VyAZT%si^ zNMOR8($Trf>Z{-W)cd`UF%jr0^F2u`P5Yw)CL7uFj3yRVO!E+ht~wq@*Ogi;mm)BD|FaD_e7Kk+w=xWs_MeF-Km{+}Q z)M&Gcv+bMm=#6R2i3$>?gt=wz-qFgwVK?CZ0Gm=g$e?fv{itK}ZV_t!D9=XrAlu!4*1${HFQpn?P@%xOh& z^GBs&rRn+v>cb&{uDFRmwZ_M7{6Zchd!BE26ZY%Jer4n_r$hw_%%szP&V#>{es3G= zF1KP#1iJ2eWoSRf*?57MMvc`;71_iANs8wK>cfG81SZVs8|!y|DNE0vOvsmo`d2`p ztIDI_+UOPKlR~2K>{=Bw7<6aU!{M&g}x;+V@w3Ps?^BT3h%V>A~lTc zd5xf*%IjorHtjjRqd-9d6Xq66$(;X`KV>Q@p4aIe1q8ZIgj;xHYY;!-YGlv%4RI(f zM)|Wr2~LR$5|}WzSn8yFQ`~#SC{3tcA%U*KWnK8E=pfFY8#Tt9IPSaSU>mlbo{6X+ zfths5Mh(5KWFNCpse3ubM4&6|6z!=l7|g#Oj-whk_SzGYmbYg0uRA3wNMI(NR^qzv zRTi&GP_CuNm{=B7E6Wut(34F@03ruVoe0Pg1*yP z-u|JyO{P)f-??XcKxj4A_mfkif&^yLX_f4xMXCCqg^7DHCIVf)gKPIZp=nw10>LuH@_<%Yqj&S`;F}Rnm^^l++r@w zm-=w1Ac2{5+W+yieZs9=+1P*QVoU_OF1@w#*-z}e%B*!%qiNX&qV|VV%AgBQi3$>! zNvHjTZ`^3C_FI|zImSewYv)QU58M&XZ*^TyH5OiLDxCSE6!)J_i3$>!FsCfeptkz> ztS^;kC1Xtlx=Pova%*@5Z;;=}g@?-KV)CDO-z%k}B`Qc@!kqT@eVV23$bMCcqd8q@*OuEGqGyAX}5~nLOp2wI7bj@<1tij4i zK5UzjJ)b(ErKlX2U(ZU{0~I7NVNPc>mU^h?%vh_ups@iG=t}pq@Fn!^<(ZR>?D?k< zF79ubq1UB$g$fdwFsCt2mSjEh%MfMSsTdQ1uCuTHX}QB3{Bp=hJ0P zKm`fRq|?lH%y0dDqvA^V%NP@Zu9*$~YJRgFwEkga&j%haA*Qx-73DrVB`Qc@!kkjx zoznGrPbc{1qp<-J=yI9;Tl>4n!3%#hYB=_!>kS%~6vb(N7ZoHhlTI^URnzpQ{}#s= ztQu<~&{gNvFKzp12bbH8?D>Ib=k;aLHAOLc?xKPOX42{F5e+i+x0~)J#D0u15$Nio zP!7PG&LfL9vgZ%CEYsCxOdPr9l&Bzq33KWpkIm4x2L$Nn&&HStbUAnb&@yh(o`$YQ z_B?c7ef@i`mSPsY2T?%+6XrB3%Jojay=IP{K+i-Z(DkNynzpiSBu}klWY72ADxToi zqpjFW?{id;z=S!CwtJn|`Jg>|(1REgfv%t;soLv35j=kuBNr})z4A@D7$|DIp!WwT zNMOR8#%h1o>ei{J^l5oxO$53cS4z>m{?c6E8KXw-Hj|X9FMUL_GSLzhBrsu4yBdcN z(?4~)t+%WmYa-BZ9F#mpNqCIVg7zRB9cTOoYh1EWU3*e2}1 z+}rfPdrpZ85|}WjuOb$%pe##B(r38Dnh10)E1shHNlW$cFo`ck?c zNT5rf{X=WrFo-YCFlrpU-hz2vZmRU8c?MLFz=Sz{_jS{2X+s+%f=h;F|y~M zJZiAx<6kOsY2F7F6JbiL_w@R$OrP~7VGP~pNMH_qa&AioDvlzFkw#lMDI-H zdX~IOA9{Zvfv(-PEj;%J8^3?q$e#ZzG*Q{Lh_lnDXx#u5Brsu4Bd}Zl?&fQ z`#(BPG_vR0CoGJg5#NSoJMWaJAb|;UdR{d>rc7RRL>Wx|5+u-dud0<-SQyL?wl%Wn zzRRoYZd;qPb!kqC3KEzwr)T@_1xkV07nM9THb4Sh;}%=_^%fy~eD-*%;l5#|zQECl z)uVSUDo9|$oc78Lu_bE0-E@xp^KK)V{?;5RBjWZoe3Hg#nsno7eK>`!zv<4abIsQs6H};6eA4s5U zPO6nBZng8LU5xDcmXzA!eCjRbB(1BVf&?baEtaA?-X{#{X<=h&9EAkB_UyCrm!re^ zf=WjAJboV&jb6@D9?|+BDo9|$oceI7K6*macS=Mt%4NXMLRXcxR-Q~}u`YgT)F|%O zOl-XI!*^pPnuh}g3CyI^9d%*69{m2Al85GZkwDkxD=z%;^9XKRe}ZaMe%eB;oPD$L zscg{_6(lfWPQCCRyY#BrDOp3~b0pC9#LI<`939C6hn}PwNm*NoFUMXc^rCfVRFJ@g zIqmtWdQ&gz+@>6*c?KlVb!wP}uSt#MZQB^x^TgEVVt28j`fqv5J~? zI!WnH&qO59^{P##R-X1Ef2(R_&wn#-QNCono=7SvUg8;z4M0Hx6XrA*e&?son(gv^O!HSrpsNsN&pRz~ z@NBw~J>T5YRh)QHM0BNfPE?S2Jkb&rBrsu4r`)*x)A!%qmhhD36Olky^yZ&hp4JY&zWF(-k!0DdA9~$H zOnK;(s33s}bBo1Z?5{p&d2QW?=0%Y}SJ%AhTIBag-lnXPJ#Rm~i+<*GfXJY+0V+sf z!kiY7Ykkq@UYVpD^Sel(t884Fc6ewcU-jFlvAxIAgm!t`3NIQPpn?Qu(rKQ0!yVtu zX@^;Qk-;+1!@_-OPkv~>4t~~R7Jh>M`@_%La8c`AzBruasnLF*ZzPI!z z7Pi`MBG5IE&Xf&0>EIi)8oBVF4RVOue^xPtMM+eUz)U*LCw6Ws_IN#IhZovS1iH@C znf*^G&#-#AkqfVXM-~0VTsFWXN}_@UX3}XMZsAlB{p=#M4z`;JbmeQBu3e=42AczH zR3po_C^0?DC^r805Qz#Bm@ua+n17qN-fb_t7GyUO=qkEDO{;q{lApB%Q;l-xW{XOl z1KGB(LnJClU?!brgxj7Lt2@tUe?sgg0$q_^Q?=1mBKgXFMlRf?PMkRQycl~%zXvKv zU?!b1kVo!`g8PG6_7Qdyfv)(*DVlR6&B-(mqZ%6;Z4!MdUsm4H^*{v)%%s!5>ggNN zY;`f#X{p^rpliN8S*vO#FI-RGzvfthsLsdxE{2q|(_|4G*z33Si|L!~CIVe=lvHi;n;;(cc>vWI+Oei6cX*N5-XKb%f&?ba=|2B&qjx2?vhG(|Fkf2;m>OI)z{A4As&ApB2hsC6Xx_b*tAbS_Ta0SW3!tGbX~agQ#&<`*3UDe zsK)8~iyJ$B>=I2=hDcP9z=Sz{eP~Lyg!$W&#mc^R6M?Q_Gih&MQyYK1&d7z&4zej# zs_zgl^F~QjkibkjUBPctlv3}$iK8>@CIVe!0{&>_>)Uu#86y`yr|VVaYWIzzg&HMM zK>{=BbfQCa9@en(J8^BN-9(_Pqsu=nt(A?BTt1R&IDeF4tNoV?ot}xPAb|;Ui={+? z5SD1aCl*e!n+SA`KAx$i%&_q%jf`A){yCl4g*?+m?)*^_6(lfWPG4|IT*T5BoDd%z zb`ycFC3`Kr%2ylz{CN!3nDlKtYcQvm*g@AE6(lfWP6_OM2Uu#kO`4TQQ9%MT=`@pi_5&;XD_x(w(QYEpWly&9EXzW8@d`#Ryj1)SHfPPNgj&?DP(cC{ z=5!WP$0Rm)Uq$`oEP8*y&q9}@t}8zg70R98j2dm*>}1nY-IOcEqa-RwV8Wb|XK_g^ zv~xpcQ$M?jKv%Xlu6%FzFdlnh0@av7r;!wxDU~JkjzR?qOqkQTALTx>M;%?*acWmc zplh4z$}{}zJavoaLi;Eh~<4@uClpYdG8A0 zyk_(ys?l=SY<9YN3pUXbB~d{FGwHP7pbeeLxpF!i;Ix|vbS*ky<)>4^d9Y^W!i%jO z$*TAaW?8C5NmP))Ogim%uDg$|yR(^nr2dtOfK2-@#mWO{?e1QNQDdFfhBfz^!8%gA zLIr;=X3{A^cV+>7q3tA_xY%wY&=t7Vg^%qP$rqkBa^W*~xU=@xR{63QJUOAO&Osyo9ge+Uw(mz8aDo9`^omQ8ux!BPo z?^%styNN(o&q@})mG-zd9%bahi&xFBlq|c8?V_;(Do9`^-C}uJrjPQnbP{t?KM@IZ z^>3+2(rzNqHE4Uf_Jq!ecOPiv!ejIH5(STrXPc~15)~vclTNG1 zzU#!s(TCZ@P`imh*VqC-v}~_vt}oEYg>0$a544*IbWL%l zX#F-t@O}Twg~txwATC{at?VrlB~d{FGwJkfKlxIOORmPw&9$2dbnRG>tlfMU&TH>B za^b7JwuxPY=8<9m`SG$OVKZ)`bS-vwAF4R&{gMsl9paPoF@!4a^dv{?-UCb z=sw>XMM+eUz)U*Ls)ZzrBH45JI%Di60$nvHC27mO?fjl<xcO*|hKOf{_c)A2wCA`PWSZGY zGr{!j3?mo5_<0}U*FRb$`9?`pkibkj%|QOzEbgA)D~j*1n+SA`O-|8%(YMLJb0Zg? zwXKiHKWv^@Nbg!ykibkj?GlmSbU?!dNSG%7l z91l(wYNXvnpeuWc4DETKjc-_OhsiIS)wfeCXu&Fa4&%E%WV#P{`f6M?Qe3;$~4 zG#md_!pMa$dzp{*9~&pCQoBM03CyI^EKZM>>`k`EV&oipUct{oR|i@vx-rtmx4boK z6q)YNtjlJLZ6%^4Do9|$++r!1e-_*Ss-)pNmP))Ogi1QEs|N8JSTj^qU{Xfsxt&={?mBt20pzB0QSKjfnogeWxa^dfH&1YxxD(vd7ArciNFq2Mc zk!4p{#6Xx_i`bH~RF8guz-&(tgK$pvP z7hZ|>JIBx4NHrQytHS==Uc&y=jFPAzfthrgv+OdE-5GU@T_0sP5$Lj(ci{==B6*g` zO;qE^$;V3YjEyYAHA?N%+z0tdWdh3Q#>1iCu+wD9Nj?d6h9ja>Nmeyx=H z)poKYG&Vp53CyHhEY~PIcSK`(uPP> zkibm3#p1SU`*HUz$?Wg|yNN*8B<-*E=oEby`GZm8g6jy~XTo;&wNR8q1qn=;(>Ut% za=mQDZ)^>{qmV$?zp1~q50_|taI=vMA3x-g-c;GZp3>L=6(lf|PQ7qPG4U$y4V$># zZX(d-d-<0(Xpe)pa~QesS|2Nj%d?g;wMmpj1qsZgTP)2^^cEvt-)28z?Ir?UvkOz- zr@w>WYiQ)c2R-f~0(VbgzPX|#Do9`^oo2SPFBiK5bv8P}ZX(cidDsu_l9h7$1&v&I zz?ezm!ILodfW`)>Ab|;UdPhw;EPgd#$6C|77728@{Y}-*kBa0|z8E$9_be9Q9@J)e zXl#HA5|~M+RuXbml$|w>?dxqf5$IYgQ?!mZBKUe~v!GjtUZ(NvE}mXCK9@>2H+2 z+w3L+U8{2^YwOyE^W8p1F1+>M9pd)z?Y@KQU5g45m`SHO%fuuxZep_UIr=@2K-YjJ zN!p7jJ1>^g$b~ojy+hQDtD;BIJ%|btm`SHO{US-CT|>Kmkgf+3=*rSBNh>}xjOTl8 z)L5E(vzXQ8s_stD5>$}DggKoQ^51)LIy4u3DaLLh&~tk{6(gwcg9;LuFsJw6D~l*t>!YYg??EKcRrY(j_JFd^`xY9x@K=N1 zBxE18OPr=Y94bg)CY^egmZti>O-Z6Sz0Z+ASHkvRT0|EcPwab$YW#Te!uMmPU83Z_ zArciNFkw#bD8KK%!?GodUDPi@0$ro}{nqX@u<@yNjm-89u~wPpxmCQSJ~b*xU?!dB zmNwl`Qnb$^-wL~lKv%~Kf3-e7HlF#>sBw9im38X7h7v!t&It+yO=BEXkidkw#d6wZBCC4gvRFy|T_n)e zu7!p7Ib!2|ryIHOhhO`%1A$}3E4m)2Ab|;UBZs_+9Z%XXGHGmp1iGFSaN*m$g7~w@ zV^pKi;+bq+hj!vFwJTJRz=S!?Y&So_+Jr9_OQ;4C=;Ehc_>0p){FP$l!iWF2f_+Eb?*=cBf>!umv|2hA;^f&?baX^kcEE1Oe$pR$*pB}kwvq!q2D zUJ2vx8ydOrossL=r8&QpyfjCK3KEzwr#{2USFGlhsw{=xwMd|=cy(9a@}Qj$E?{J~ zFU2foYn#b7^`eKtn&hh9c5d{==C}u{Pi3$>!Ft=DdD%4|bH@{%U zyeJarYBJZtuT^yLXW5O+_Jj$OlyA4Tv%b`CM+FH?m{WfD^BLvn<1ef+wJRjhH90C% zt2D{M$G+DVAT2PR{Ogeo7bYvEBdG335atn=Xfk0P;Pli_Pn1c_kcaCZ}M;8_SKdxY% z=v|8n5|}V2f_D}dPd#9LX#E2Tbd{X&Q~N&7!Rxvhne7@S+lUXgnXE3Y-Jya6Cd_Fi zZuC5{^z>=Ah1PM9K-a1JKeXO-j`)*@Mvd?5#)_2{2e6kkHb4alOqkPb)VRIk>({NU zH?=Dy(DkTGn$~Z1Bwh0hRHMYZ`QnS0!e-Fe02L%KlTP1h$ajl<`BF$-)3LrRdccJ@ z>>SAtCA9PVLEq6^9vjJf{%+^@cYzC+OCx#nN*$@jd7lfc#PC9D{WFauDoFep=EB!a ziR2<{dm^s&y~S!iuc~G}zb44{(p&FXfETTk#8?Qdrd<6_&TcW)S20Do9|qp4JD8?-mWC>Zx7Nc$f%uy)91}ddjfyvB6YhVb?<$3Mm1KR%P!mRd&z2c^OmR}f!TUW%66$BBWu5A zGo*)!K-Wjt6m1=SQ*Y0haH`RutGjGh{Qzqc;Vn@?0<-m$nV4BmE?&Be{kr5~BG9$4 zatbU63@6hSpwud5`->>0;)5Al|$Ac5I>;{;4q23-qbhi`e92z2$CLFWN{wDW-@ z9aJMRTTMA?bZ*v|YM_DyCgmxgXz`b+TlOl8&e8RNpM|bk4U)7gE_R;j(VJ@AnNvqj zPoLpCKEzw1f&?bzjnfwVW%E2O^+&pgi9px(I!W5nf?<6110&ylb89WxA?Iz~yNkC( z1qoA9-jZ>`PukNOi%-WrOa!{Fk4w_#R-u0T?0!_^$;zs-jtmu7sRk-Yn6mYjH(Ddv zCUli3FFZ^Hx)!=8Yr9*9@ZnXB?0HJ5(z4W=%_4gkU2{;7z-&FO<20%&H$~kM{m;`i z2LfFk>5RsE^u4?4YX(w{jj4I$BX&o$8BEVzP>{fEJ@qVi7MAU&Ws$e;(sLIGbhXKw zs!g~SMAv*U)rjewDsm@UnG~RsqqK3Ra%3Gp>1ZL}LZ(ofmtg7&lYZ5(71iILbOl@v| z8;>5~q#B`b7P7?M<>bFeZ;1*Ln5{R)QD<0(fnM_d2@ey2E-UrOs@}BmndQb(jkM1f z*p}FW@*BOQP(cEd@|4ES_`~w2y2}V^S4f~M_aqlSI4FomJ&2(i$qjz8A&vftuGFqj zK?0NV#!l~|DzjN-0cuxBplfb5E5GR)%zup^M>T#;%csUSyCL@V^p>a~f!TWMm!wrw z8^6CM;;6ri1iC8kvGNr%n8!^rvgh-{KUMJ4=^_Hk0f!TU``tJtiy)I%8J+Dwf0+aG|1&3&AwqKqi;;M&n)bEeVAH5u^;P4Z5Ii2{j286qrAd-%n~De-r`I}bxizZwuHt8s33vadb;MN z>#CMn``Hb;2a!Nm&+Arx(Hg;b2N~IO`=erN(c(v0R%2`c3KE!F?8fv!Q+&5Mk%#us5h;?{=b3*X6vb^-|nH9wx_aMlKRw0psVPYH0|wQ zI&&bx$hWVX`$(MFo=fdZ{dQE4z@$9w$Ss*&22ClTexR`d66li7RP9plNWN4tvge^6 zU1e0t7q*ycpn?Qu>!~j~xs1&0m&9Jt7zYV-HT6%?wjYV$mfS}6yzYh~GO(*;gXwRD z3KE#DrxlZTwdA90@$3SP)sR5fjc&=>ydU9w{CT6s*xTi$ebO9Og2o1@Ac5I>x(B!U zO5e`o*ob=`CIVfpb|h&h%ZKw^(~W$4_V%7qSy7$s9^oxfK?1Y&w5tEGnVjaAs!XA= z0TSqXrX^{v3Z2E;)5xATu31MO^YBxA=pIA`2~5h<=&o*nEZ=rq!gRXNkwDj#>PcF^ zwqbllgN0P%{`%UorQ0%nGd)XCK?0NV)UM`n+2TNPQGlLTNTBO(WRhmHhw{7mjqG{f z8`b5nQd}IRXCf*{V78u4l^m>&(E9@kbd5iftOe3H!`wC)`F5vgLHTs_g)X1G^!>rEbXJ&`kv$)?_qr&xFP}W(@Rq0`f!TVRb-sLAY8+s0O?EpT_n&o;r?%}7mYdJMjP34_k3>3x1c)GLSq9|kicv` zorN^%iej7GTqaZh3JG+bi2JKWmbdX14UFu0+U&xt>M}1`ez>bQ?h1dU$$>B zlWEjXL;_vW_DtRF8mIi16lsC zk#GOw@r9jlnMJmuc7+NOn60N-&LRcWeG9Y8j?}J@Kv$ZTa>)0B_|@4)_I!+cF4dX* zSTvyf0~I7NTTgod)>cxL=qDnY#s)~B%QoN2`Mh9$uCtLnZ&bLX+S6^fXhZioDo9{b zo@P0f25Od;n}y?whlxPfn+z*&-8F%6JX&SMPhx(HorgFcIh) z*3XsyEg8li>@@Q2H&@kBJ9K<}{4TveP(cEd^7Li7ss8Gp;nS4L)b~LGU3q)E@}{}$ zJZQR+Z=aK^mRhM*vZ7PFLInv-%2RUSXj8RXL`(LE`fx~~D~pdS&yi;5+3Xvr#*)Y? zs^_hNYze*3Q9%N;_4H&|)j-XBx{)PQUla*+UHD+-Q?G^dgPt3y#`wM^)eA3ovJW(8 zi3$>!t+!bESu3mOydSeM)b~LGUFFAE`Lab3yy#n_Mz4dp)DP~DSRNW1pn?Qu>uH7e zY611_9yc|a#s)~BtMfY-ex!LM&$+|Mw>Q}Pm8~4;s=Cm)78N8gTTgQtTfejYXUeG4 zXl#H4x@t6V;oqJ|@=mcvzCFI5&ORwc)qT|8MFj~=%F`Z`Qis{|Ms?Isx*kZN>qs99 z{}trm{dyYN^Wbq)*{l8))pgWwM+FH?%G23Ytp>8GjhOnG+7%M$YEvXrdw0OWch%oY zH5%7)XW^r~)KIE{3KE#Dr>9TpJIdDK&DBkGe;|P_&z66+qOTlWcQvx-?{^eZh6LA9 zAJ7^LDo9{bp1#O-{6NC+3IVDojSY}MSI)`5wXU?5nktPN&pIsA$4#rPejem4Q9%N; z^)z-~UsTLpz}4b3zl#LAc8gz{*Hs5!JI=_rkNBpFzHh6mYesrYRFJ@IJ>5|ObHrM$ ziJG0p&PbqZ%%5~k%y96^9gOU`HED&Iozp{oOJf66kicv`ofp17QGE2Pp+2Co0TSqv zlt~>}#=#>zjqLeA^_ut^kYD{y&k|ISz@$9AqfWa>wSF!pvyWZMceWwf`5Nt)QH$vK=$dD z$STmY9Tg-nTTjnKi>LI+bCI2=ehCuj60?)Fe^nxQ^hzV&Ui4X6SzydcR*l96s33va zdiu?uG?wAz=CPc#9)$$DmR?KJ_V)@G>#j!|~*sAy!*+mEU(^A201jG*~MRFJ@=JniQ23XuDpOMK_i*Z>K1 zxmQclx>ANd^q)~9Yd{?t__MCQoBBSeAc5I>TD!~AT+U1TqOYQMg#@}zv`y09#)b05 z4~=|#QQcGKe_KiTQM*C~2~5gU51^bPr<`z#b5sKfbUiD=2eCp+4JizMPQ@T^^%TwCPoXd0j6fdp>_@7P-5~XR&ISw?qXAOv+Pc`%HG( z_RkuDyt{ zam(&QRO9mxyC^-ds_a4S3Kb+UDNo|VSibb#s)~B>sGJd+Q1?c|ze zK8Okun60PT+Cy`c*?s)we0r83fiBz@$9A zKjyVy2TwPZ<7mwb33MI*{!e@0Z{y=G8#PAM7{KJmoCdIQ>hP!1iAtqx=_0f;`O>4+4G6^ zY-)n-y=X`8b5xMPq&&@jq7MG1aa4G0~jH z2B;u`NqKrlovNdLyK_LCzTjaZ&{dZ*&vIEFUgK8?k6mx%+fOy{Qui(?Dc;lA02L%KDNiH%G0oMlS#IiC z==VSZT~8xj`P}EBTpMBJ+kf<-UVdR$y$$7LP(cEd^3;wyHi&i8la zGp~j5h8-l;=u)e;x@grQy1 z1qn>b(^`?Ox;lB@RkoDwb0pAJcDa==ij3gHj~e;*(-rfplUrY7XXsgi3KE!k;ni zJQ^Dyfv%B}F8owNB(K)uG}Xu*bcyv!DxfZ!e!hSL*K~ zfvz&gerVE{_B5pZug17jV%Vm_Y9Z=Vqk;q`<>@r`RzF1G#!{+I?FtEW{qRiF)*gh>uPfdsmWFL&WydN7ZTe@H}djJN#T*Get%yFdkr)DrY{m9`-~=l2IhY&%m*Uf$=b zzTWLFkw91SJ{O*UM=-Be*C4KZej#@EKF37;b`ljN9?(}qH#H35#WL>`QSnin$k?`z z^=cVmBGA?Mz6(DvE0{O(GYD3DwqAO2W7e=rv_u7oCA6pMg?k7u^T;6DoLi}M$a6*! z^c{C3&~-GsmCxuE%vouJu=m@_h8LQzZ=wBBs34Jdx0Qd(4CZ^68ozn@+%MRL0`)}r zEZV~hKMP&0>sz^N^I(4UzELB%Q#m!4-(sCnjo5~&AtEzrpWt6U?T=p6n1vpzCQN7w+^7<~2SUf88xR%E}VY z%c^Vleix`9fp-CY?Izw;vdg8^^Q+t?66mT}&4ou53Fde0Mk|S28!yI9`otRNZYNPe z0^2m59JzIvm_6bWJ5n;jM4;uhqlQ6i2` z(?tSZ%T~DXLvcYoI=k_=s<5k&dN=5-I6@;YRFJ^CfM(DClvLM!Nf))LXNd&5*6gLf z)ubSPsl0K`j~;2PzD~?94_v$;P(cFQw8gUbXe0I8r^>SLK&Od7S3rUbuQoD>XMbwk z=Tn#Zscv1X$n67D6Hq~7SVt@0Oy@cu=w;j=IZHQDw=}IK*ZTBOkU&>g3*G0(gZRSQ z1`#x{tX$qCKrI-sSvhmv!l$KE^?Q%}u;ou5YT?6<2Jssa#=ojzL>XBue}MXG&Kn&S zB(P1>7tzAW2RYn&gDTo&orYY+HCVg+Wai)h3{=8DoEg6K+h|CRgtIR6L#Jb zVIt5qZUcQcoX#CAx%4j8*!&{SM-6Ptwo9i(1qp1^)O+3iO1ap6p`y}vu#iC4;?oxH z=0oewLya2hkfp5t#_HlDok@-g64<6Gk@EZ)%M!FoB+&jrB+%9Gg@r%J9mMy08Goxj zb{DnM$Q0p9V>MKez`KA>f%=(69Tizv{-W_966ngFV&O}ZY~0$yxND~+mQlyP^^&1< zN1=iQwrSd_rx#bJ?d0;{V5f;dSM|RZ{^^B{H+41IZig!6)OGLt<&hodd{9B6+7=gH z%n`(Wei`qN8iB>tq2pS~{XHlY)ZnXC3Gbv(tV5oX#)*BraB(P0W;@AJGI8!4+y*l0@kU*Dh zHm$^U4&qDe8-LxwzoclmsI?lp{JTH}3A_tvcV@^Ok*+pXN6mGYNTBP{rc5oDcM$j6 zX|%*MH<);2&8O~u+g7521h#3)i;g^~$2s1!^MAul1iDToW@-&`2JyDX?@*1@3l)@R zSzECM^kq3zkia%g3GCZHmCaEd75~%p1u*zo=(7LL)Jo6}g)U2t8Y90 z02L&#P18zT%~fnAebJ*cos^CQx;zV6ctR_7Up2wT8w@b++H$@Avb*E`<%Yxy0u>~%P1Bb)E`DGGGkVH^ zVNMf)u1Zxbe8>K?R9i85Vx=t&O)^ZrmTf8(*+W3&UjC zPmLjgu2D-Zyx|@jca1a%=hhx-u_MRW!|tcW)MBnYw>SVm_N&CUr_kci6e%C}Ap=RI$!AfP}RBT9`o(zG!f`( zMrU$dRw8(|ImUkHTm@RI1*?2w{r6rFs31}7kd?>OkKnV4wj-itt=8(z%6U}pQBD(q zt_;n}Ph>>!IG4^u)DLf@+Kv}eFWK1dUl6Duf%~~>-MM)Ov2F8E zwXf4@BG6Ur#!u}$oo#rShfS+G!%t72%-0$lvVz{pUVZW5x4ud9>qL*5b|ufeI41JDWxmLBnOYi8a~FkxmnV zF1P$i+ALQ)cP=ybJ3Bh|lUrKFEA6jc5U3!5`?=|4?#82K`o6h7tLYv@0$n3=CuwC0 zgz@6-2T+YVkNe5TpJ(WW>FtaP61bn6_8aKKrT_g(q7hvWB+#|fmZW_tAIb;24x$?W zjgFLMIz$SU+7&8D;C^meE2`g5E{NSEYS1VZ33SDzQ-+?0@Na7dQ;k0H-DKfM3F05s zKm`fholRdFAKgRhJ-!JC)j$GWRc_Na@5co5Erp|~hVRnmvSC?^{7Umzs33v6v+1o? ziOZ6`-DQ=rP7{HyBsx3(#;G8>=Ei>K8i`)A@tZPo``rry6(n#!H$55FRF?678_8Sr zK1Tvwy*j69rOOBLTfWAA=ZlTbALeoNJf4b(VAc4EH>0F$+9-=^

  • yIHgERaU=JNy7=q=;-jo7etgJi>{^i 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­1b1ri#7y-f4`n@X-6bylLTqFUm5RTM1i+O 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